blob: dab51edc6c0552144720a069f8e8efd6faec088e [file] [log] [blame]
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef COMPONENTS_TEST_RUNNER_WEB_CONTENT_SETTINGS_H_
#define COMPONENTS_TEST_RUNNER_WEB_CONTENT_SETTINGS_H_
#include "base/macros.h"
#include "third_party/WebKit/public/web/WebContentSettingsClient.h"
namespace test_runner {
class WebTestDelegate;
class WebContentSettings : public blink::WebContentSettingsClient {
public:
WebContentSettings();
~WebContentSettings() override;
// blink::WebContentSettingsClient:
bool allowImage(bool enabledPerSettings,
const blink::WebURL& imageURL) override;
bool allowMedia(const blink::WebURL& mediaURL) override;
bool allowScriptFromSource(bool enabledPerSettings,
const blink::WebURL& scriptURL) override;
bool allowStorage(bool local) override;
bool allowPlugins(bool enabledPerSettings) override;
bool allowDisplayingInsecureContent(bool enabledPerSettings,
const blink::WebSecurityOrigin&,
const blink::WebURL&) override;
bool allowRunningInsecureContent(bool enabledPerSettings,
const blink::WebSecurityOrigin&,
const blink::WebURL&) override;
// Hooks to set the different policies.
void SetImagesAllowed(bool);
void SetMediaAllowed(bool);
void SetScriptsAllowed(bool);
void SetStorageAllowed(bool);
void SetPluginsAllowed(bool);
void SetDisplayingInsecureContentAllowed(bool);
void SetRunningInsecureContentAllowed(bool);
void SetDelegate(WebTestDelegate*);
void SetDumpCallbacks(bool);
// Resets the policy to allow everything, except for running insecure content.
void Reset();
private:
WebTestDelegate* delegate_;
bool dump_callbacks_;
bool images_allowed_;
bool media_allowed_;
bool scripts_allowed_;
bool storage_allowed_;
bool plugins_allowed_;
bool displaying_insecure_content_allowed_;
bool running_insecure_content_allowed_;
DISALLOW_COPY_AND_ASSIGN(WebContentSettings);
};
} // namespace test_runner
#endif // COMPONENTS_TEST_RUNNER_WEB_CONTENT_SETTINGS_H_