blob: 3d285d2a6c6516875e70904cd2fd41fa3ba96282 [file] [log] [blame]
// Copyright 2015 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 WebContentSettingsClient_h
#define WebContentSettingsClient_h
#include "public/platform/WebContentSettingCallbacks.h"
namespace blink {
class WebSecurityOrigin;
class WebString;
class WebURL;
class WebContentSettingsClient {
public:
// Controls whether access to Web Databases is allowed for this frame.
virtual bool allowDatabase(const WebString& name, const WebString& displayName, unsigned long estimatedSize) { return true; }
// Controls whether access to File System is allowed for this frame.
virtual bool requestFileSystemAccessSync() { return true; }
// Controls whether access to File System is allowed for this frame.
virtual void requestFileSystemAccessAsync(const WebContentSettingCallbacks& callbacks) { WebContentSettingCallbacks permissionCallbacks(callbacks); permissionCallbacks.doAllow(); }
// Controls whether images are allowed for this frame.
virtual bool allowImage(bool enabledPerSettings, const WebURL& imageURL) { return enabledPerSettings; }
// Controls whether access to Indexed DB are allowed for this frame.
virtual bool allowIndexedDB(const WebString& name, const WebSecurityOrigin&) { return true; }
// Controls whether HTML5 media elements (<audio>, <video>) are allowed for this frame.
virtual bool allowMedia(const WebURL& videoURL) { return true; }
// Controls whether plugins are allowed for this frame.
virtual bool allowPlugins(bool enabledPerSettings) { return enabledPerSettings; }
// Controls whether scripts are allowed to execute for this frame.
virtual bool allowScript(bool enabledPerSettings) { return enabledPerSettings; }
// Controls whether scripts loaded from the given URL are allowed to execute for this frame.
virtual bool allowScriptFromSource(bool enabledPerSettings, const WebURL& scriptURL) { return enabledPerSettings; }
// Controls whether insecrure content is allowed to display for this frame.
virtual bool allowDisplayingInsecureContent(bool enabledPerSettings, const WebSecurityOrigin&, const WebURL&) { return enabledPerSettings; }
// Controls whether insecrure scripts are allowed to execute for this frame.
virtual bool allowRunningInsecureContent(bool enabledPerSettings, const WebSecurityOrigin&, const WebURL&) { return enabledPerSettings; }
// Controls whether the given script extension should run in a new script
// context in this frame. If extensionGroup is 0, the script context is the
// frame's main context. Otherwise, it is a context created by
// WebLocalFrame::executeScriptInIsolatedWorld with that same extensionGroup
// value.
virtual bool allowScriptExtension(const WebString& extensionName, int extensionGroup) { return true; }
virtual bool allowScriptExtension(const WebString& extensionName, int extensionGroup, int worldId)
{
return allowScriptExtension(extensionName, extensionGroup);
}
// Controls whether HTML5 Web Storage is allowed for this frame.
// If local is true, then this is for local storage, otherwise it's for session storage.
virtual bool allowStorage(bool local) { return true; }
// Controls whether access to read the clipboard is allowed for this frame.
virtual bool allowReadFromClipboard(bool defaultValue) { return defaultValue; }
// Controls whether access to write the clipboard is allowed for this frame.
virtual bool allowWriteToClipboard(bool defaultValue) { return defaultValue; }
// Controls whether enabling Web Components API for this frame.
virtual bool allowWebComponents(bool defaultValue) { return defaultValue; }
// Controls whether to enable MutationEvents for this frame.
// The common use case of this method is actually to selectively disable MutationEvents,
// but it's been named for consistency with the rest of the interface.
virtual bool allowMutationEvents(bool defaultValue) { return defaultValue; }
// Notifies the client that the frame would have instantiated a plugin if plugins were enabled.
virtual void didNotAllowPlugins() { }
// Notifies the client that the frame would have executed script if script were enabled.
virtual void didNotAllowScript() { }
// Notifies the client that the frame instantiated a keygen element.
virtual void didUseKeygen() { }
virtual ~WebContentSettingsClient() { }
};
} // namespace blink
#endif // WebContentSettingsClient_h