| Index: chrome/renderer/content_settings_observer.cc
|
| ===================================================================
|
| --- chrome/renderer/content_settings_observer.cc (revision 260883)
|
| +++ chrome/renderer/content_settings_observer.cc (working copy)
|
| @@ -233,10 +233,104 @@
|
| !url.SchemeIs(content::kDataScheme));
|
| }
|
|
|
| -bool ContentSettingsObserver::allowDatabase(WebFrame* frame,
|
| - const WebString& name,
|
| +bool ContentSettingsObserver::allowDatabase(
|
| + blink::WebFrame* frame,
|
| + const blink::WebString& name,
|
| + const blink::WebString& display_name,
|
| + unsigned long estimated_size) {
|
| + return allowDatabase(name, display_name, estimated_size);
|
| +}
|
| +
|
| +bool ContentSettingsObserver::allowFileSystem(blink::WebFrame* frame) {
|
| + return allowFileSystem();
|
| +}
|
| +
|
| +bool ContentSettingsObserver::allowImage(blink::WebFrame* frame,
|
| + bool enabled_per_settings,
|
| + const blink::WebURL& image_url) {
|
| + return allowImage(enabled_per_settings, image_url);
|
| +}
|
| +
|
| +bool ContentSettingsObserver::allowIndexedDB(
|
| + blink::WebFrame* frame,
|
| + const blink::WebString& name,
|
| + const blink::WebSecurityOrigin& origin) {
|
| + return allowIndexedDB(name, origin);
|
| +}
|
| +
|
| +bool ContentSettingsObserver::allowPlugins(blink::WebFrame* frame,
|
| + bool enabled_per_settings) {
|
| + return allowPlugins(enabled_per_settings);
|
| +}
|
| +
|
| +bool ContentSettingsObserver::allowScript(blink::WebFrame* frame,
|
| + bool enabled_per_settings) {
|
| + return allowScript(enabled_per_settings);
|
| +}
|
| +
|
| +bool ContentSettingsObserver::allowScriptFromSource(
|
| + blink::WebFrame* frame,
|
| + bool enabled_per_settings,
|
| + const blink::WebURL& script_url) {
|
| + return allowScriptFromSource(enabled_per_settings, script_url);
|
| +}
|
| +
|
| +bool ContentSettingsObserver::allowStorage(blink::WebFrame* frame, bool local) {
|
| + return allowStorage(local);
|
| +}
|
| +
|
| +bool ContentSettingsObserver::allowReadFromClipboard(blink::WebFrame* frame,
|
| + bool default_value) {
|
| + return allowReadFromClipboard(default_value);
|
| +}
|
| +
|
| +bool ContentSettingsObserver::allowWriteToClipboard(blink::WebFrame* frame,
|
| + bool default_value) {
|
| + return allowWriteToClipboard(default_value);
|
| +}
|
| +
|
| +bool ContentSettingsObserver::allowWebComponents(blink::WebFrame* frame,
|
| + bool default_value) {
|
| + return allowWebComponents(default_value);
|
| +}
|
| +
|
| +bool ContentSettingsObserver::allowMutationEvents(blink::WebFrame* frame,
|
| + bool default_value) {
|
| + return allowMutationEvents(default_value);
|
| +}
|
| +
|
| +bool ContentSettingsObserver::allowPushState(blink::WebFrame* frame) {
|
| + return allowPushState();
|
| +}
|
| +
|
| +void ContentSettingsObserver::didNotAllowPlugins(blink::WebFrame* frame) {
|
| + return didNotAllowPlugins();
|
| +}
|
| +
|
| +void ContentSettingsObserver::didNotAllowScript(blink::WebFrame* frame) {
|
| + return didNotAllowScript();
|
| +}
|
| +
|
| +bool ContentSettingsObserver::allowDisplayingInsecureContent(
|
| + blink::WebFrame* frame,
|
| + bool allowed_per_settings,
|
| + const blink::WebSecurityOrigin& context,
|
| + const blink::WebURL& url) {
|
| + return allowDisplayingInsecureContent(allowed_per_settings, context, url);
|
| +}
|
| +
|
| +bool ContentSettingsObserver::allowRunningInsecureContent(
|
| + blink::WebFrame* frame,
|
| + bool allowed_per_settings,
|
| + const blink::WebSecurityOrigin& context,
|
| + const blink::WebURL& url) {
|
| + return allowRunningInsecureContent(allowed_per_settings, context, url);
|
| +}
|
| +
|
| +bool ContentSettingsObserver::allowDatabase(const WebString& name,
|
| const WebString& display_name,
|
| unsigned long estimated_size) {
|
| + WebFrame* frame = render_frame()->GetWebFrame();
|
| if (frame->document().securityOrigin().isUnique() ||
|
| frame->top()->document().securityOrigin().isUnique())
|
| return false;
|
| @@ -249,7 +343,8 @@
|
| return result;
|
| }
|
|
|
| -bool ContentSettingsObserver::allowFileSystem(WebFrame* frame) {
|
| +bool ContentSettingsObserver::allowFileSystem() {
|
| + WebFrame* frame = render_frame()->GetWebFrame();
|
| if (frame->document().securityOrigin().isUnique() ||
|
| frame->top()->document().securityOrigin().isUnique())
|
| return false;
|
| @@ -261,13 +356,14 @@
|
| return result;
|
| }
|
|
|
| -bool ContentSettingsObserver::allowImage(WebFrame* frame,
|
| - bool enabled_per_settings,
|
| +bool ContentSettingsObserver::allowImage(bool enabled_per_settings,
|
| const WebURL& image_url) {
|
| bool allow = enabled_per_settings;
|
| if (enabled_per_settings) {
|
| if (is_interstitial_page_)
|
| return true;
|
| +
|
| + WebFrame* frame = render_frame()->GetWebFrame();
|
| if (IsWhitelistedForContentSettings(frame))
|
| return true;
|
|
|
| @@ -283,9 +379,9 @@
|
| return allow;
|
| }
|
|
|
| -bool ContentSettingsObserver::allowIndexedDB(WebFrame* frame,
|
| - const WebString& name,
|
| +bool ContentSettingsObserver::allowIndexedDB(const WebString& name,
|
| const WebSecurityOrigin& origin) {
|
| + WebFrame* frame = render_frame()->GetWebFrame();
|
| if (frame->document().securityOrigin().isUnique() ||
|
| frame->top()->document().securityOrigin().isUnique())
|
| return false;
|
| @@ -298,18 +394,17 @@
|
| return result;
|
| }
|
|
|
| -bool ContentSettingsObserver::allowPlugins(WebFrame* frame,
|
| - bool enabled_per_settings) {
|
| +bool ContentSettingsObserver::allowPlugins(bool enabled_per_settings) {
|
| return enabled_per_settings;
|
| }
|
|
|
| -bool ContentSettingsObserver::allowScript(WebFrame* frame,
|
| - bool enabled_per_settings) {
|
| +bool ContentSettingsObserver::allowScript(bool enabled_per_settings) {
|
| if (!enabled_per_settings)
|
| return false;
|
| if (is_interstitial_page_)
|
| return true;
|
|
|
| + WebFrame* frame = render_frame()->GetWebFrame();
|
| std::map<WebFrame*, bool>::const_iterator it =
|
| cached_script_permissions_.find(frame);
|
| if (it != cached_script_permissions_.end())
|
| @@ -333,7 +428,6 @@
|
| }
|
|
|
| bool ContentSettingsObserver::allowScriptFromSource(
|
| - WebFrame* frame,
|
| bool enabled_per_settings,
|
| const blink::WebURL& script_url) {
|
| if (!enabled_per_settings)
|
| @@ -342,6 +436,7 @@
|
| return true;
|
|
|
| bool allow = true;
|
| + WebFrame* frame = render_frame()->GetWebFrame();
|
| if (content_setting_rules_) {
|
| ContentSetting setting = GetContentSettingFromRules(
|
| content_setting_rules_->script_rules,
|
| @@ -352,7 +447,8 @@
|
| return allow || IsWhitelistedForContentSettings(frame);
|
| }
|
|
|
| -bool ContentSettingsObserver::allowStorage(WebFrame* frame, bool local) {
|
| +bool ContentSettingsObserver::allowStorage(bool local) {
|
| + WebFrame* frame = render_frame()->GetWebFrame();
|
| if (frame->document().securityOrigin().isUnique() ||
|
| frame->top()->document().securityOrigin().isUnique())
|
| return false;
|
| @@ -373,28 +469,28 @@
|
| return result;
|
| }
|
|
|
| -bool ContentSettingsObserver::allowReadFromClipboard(WebFrame* frame,
|
| - bool default_value) {
|
| +bool ContentSettingsObserver::allowReadFromClipboard(bool default_value) {
|
| bool allowed = false;
|
| + WebFrame* frame = render_frame()->GetWebFrame();
|
| // TODO(dcheng): Should we consider a toURL() method on WebSecurityOrigin?
|
| Send(new ChromeViewHostMsg_CanTriggerClipboardRead(
|
| GURL(frame->document().securityOrigin().toString()), &allowed));
|
| return allowed;
|
| }
|
|
|
| -bool ContentSettingsObserver::allowWriteToClipboard(WebFrame* frame,
|
| - bool default_value) {
|
| +bool ContentSettingsObserver::allowWriteToClipboard(bool default_value) {
|
| bool allowed = false;
|
| + WebFrame* frame = render_frame()->GetWebFrame();
|
| Send(new ChromeViewHostMsg_CanTriggerClipboardWrite(
|
| GURL(frame->document().securityOrigin().toString()), &allowed));
|
| return allowed;
|
| }
|
|
|
| -bool ContentSettingsObserver::allowWebComponents(WebFrame* frame,
|
| - bool defaultValue) {
|
| - if (defaultValue)
|
| +bool ContentSettingsObserver::allowWebComponents(bool default_value) {
|
| + if (default_value)
|
| return true;
|
|
|
| + WebFrame* frame = render_frame()->GetWebFrame();
|
| WebSecurityOrigin origin = frame->document().securityOrigin();
|
| if (EqualsASCII(origin.protocol(), content::kChromeUIScheme))
|
| return true;
|
| @@ -407,8 +503,8 @@
|
| return false;
|
| }
|
|
|
| -bool ContentSettingsObserver::allowMutationEvents(WebFrame* frame,
|
| - bool default_value) {
|
| +bool ContentSettingsObserver::allowMutationEvents(bool default_value) {
|
| + WebFrame* frame = render_frame()->GetWebFrame();
|
| WebSecurityOrigin origin = frame->document().securityOrigin();
|
| const extensions::Extension* extension = GetExtension(origin);
|
| if (extension && extension->is_platform_app())
|
| @@ -416,7 +512,8 @@
|
| return default_value;
|
| }
|
|
|
| -bool ContentSettingsObserver::allowPushState(WebFrame* frame) {
|
| +bool ContentSettingsObserver::allowPushState() {
|
| + WebFrame* frame = render_frame()->GetWebFrame();
|
| WebSecurityOrigin origin = frame->document().securityOrigin();
|
| const extensions::Extension* extension = GetExtension(origin);
|
| return !extension || !extension->is_platform_app();
|
| @@ -428,13 +525,13 @@
|
| }
|
|
|
| bool ContentSettingsObserver::allowDisplayingInsecureContent(
|
| - blink::WebFrame* frame,
|
| bool allowed_per_settings,
|
| const blink::WebSecurityOrigin& origin,
|
| const blink::WebURL& resource_url) {
|
| SendInsecureContentSignal(INSECURE_CONTENT_DISPLAY);
|
|
|
| std::string origin_host(origin.host().utf8());
|
| + WebFrame* frame = render_frame()->GetWebFrame();
|
| GURL frame_gurl(frame->document().url());
|
| if (IsHostInDomain(origin_host, kGoogleDotCom)) {
|
| SendInsecureContentSignal(INSECURE_CONTENT_DISPLAY_HOST_GOOGLE);
|
| @@ -484,11 +581,11 @@
|
| }
|
|
|
| bool ContentSettingsObserver::allowRunningInsecureContent(
|
| - blink::WebFrame* frame,
|
| bool allowed_per_settings,
|
| const blink::WebSecurityOrigin& origin,
|
| const blink::WebURL& resource_url) {
|
| std::string origin_host(origin.host().utf8());
|
| + WebFrame* frame = render_frame()->GetWebFrame();
|
| GURL frame_gurl(frame->document().url());
|
| DCHECK_EQ(frame_gurl.host(), origin_host);
|
|
|
| @@ -549,11 +646,11 @@
|
| return true;
|
| }
|
|
|
| -void ContentSettingsObserver::didNotAllowPlugins(WebFrame* frame) {
|
| +void ContentSettingsObserver::didNotAllowPlugins() {
|
| DidBlockContentType(CONTENT_SETTINGS_TYPE_PLUGINS);
|
| }
|
|
|
| -void ContentSettingsObserver::didNotAllowScript(WebFrame* frame) {
|
| +void ContentSettingsObserver::didNotAllowScript() {
|
| DidBlockContentType(CONTENT_SETTINGS_TYPE_JAVASCRIPT);
|
| }
|
|
|
|
|