Chromium Code Reviews| Index: chrome/renderer/content_settings_observer.cc |
| diff --git a/chrome/renderer/content_settings_observer.cc b/chrome/renderer/content_settings_observer.cc |
| index ba6eb9eb9274e90464924162befb1aad415803fc..57de0757f4b3e8869a2f264e1855cbefe7a370b1 100644 |
| --- a/chrome/renderer/content_settings_observer.cc |
| +++ b/chrome/renderer/content_settings_observer.cc |
| @@ -13,10 +13,6 @@ |
| #include "content/public/renderer/navigation_state.h" |
| #include "content/public/renderer/render_frame.h" |
| #include "content/public/renderer/render_view.h" |
| -#include "extensions/common/constants.h" |
| -#include "extensions/common/extension.h" |
| -#include "extensions/common/permissions/permissions_data.h" |
| -#include "extensions/renderer/dispatcher.h" |
| #include "third_party/WebKit/public/platform/WebPermissionCallbacks.h" |
| #include "third_party/WebKit/public/platform/WebURL.h" |
| #include "third_party/WebKit/public/web/WebDataSource.h" |
| @@ -28,6 +24,9 @@ |
| #if defined(ENABLE_EXTENSIONS) |
| #include "chrome/common/extensions/chrome_extension_messages.h" |
| +#include "extensions/common/constants.h" |
| +#include "extensions/common/extension.h" |
| +#include "extensions/renderer/dispatcher.h" |
| #endif |
| using blink::WebDataSource; |
| @@ -40,7 +39,6 @@ using blink::WebURL; |
| using blink::WebView; |
| using content::DocumentState; |
| using content::NavigationState; |
| -using extensions::APIPermission; |
| namespace { |
| @@ -154,7 +152,9 @@ ContentSettingsObserver::ContentSettingsObserver( |
| : content::RenderFrameObserver(render_frame), |
| content::RenderFrameObserverTracker<ContentSettingsObserver>( |
| render_frame), |
| +#if defined(ENABLE_EXTENSIONS) |
| extension_dispatcher_(extension_dispatcher), |
| +#endif |
| allow_displaying_insecure_content_(false), |
| allow_running_insecure_content_(false), |
| content_setting_rules_(NULL), |
| @@ -429,19 +429,11 @@ bool ContentSettingsObserver::allowWriteToClipboard(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()) |
| - return false; |
| - return default_value; |
| + return IsPlatformApp() ? false : default_value; |
| } |
| 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(); |
| + return !IsPlatformApp(); |
| } |
| static void SendInsecureContentSignal(int signal) { |
| @@ -635,6 +627,18 @@ void ContentSettingsObserver::ClearBlockedContentSettings() { |
| cached_script_permissions_.clear(); |
| } |
| +bool ContentSettingsObserver::IsPlatformApp() { |
| +#if defined(ENABLE_EXTENSIONS) |
| + WebFrame* frame = render_frame()->GetWebFrame(); |
| + WebSecurityOrigin origin = frame->document().securityOrigin(); |
| + const extensions::Extension* extension = GetExtension(origin); |
|
Devlin
2014/08/12 23:16:12
Any reason to not save a couple ifdefs and just in
Lei Zhang
2014/08/12 23:18:06
It's already there and it's very obvious what it d
Devlin
2014/08/12 23:20:47
Yeah. I just think that ifdefs in general make co
|
| + return extension && extension->is_platform_app(); |
| +#else |
| + return false; |
| +#endif |
| +} |
| + |
| +#if defined(ENABLE_EXTENSIONS) |
| const extensions::Extension* ContentSettingsObserver::GetExtension( |
| const WebSecurityOrigin& origin) const { |
| if (!EqualsASCII(origin.protocol(), extensions::kExtensionScheme)) |
| @@ -646,6 +650,7 @@ const extensions::Extension* ContentSettingsObserver::GetExtension( |
| return extension_dispatcher_->extensions()->GetByID(extension_id); |
| } |
| +#endif |
| bool ContentSettingsObserver::IsWhitelistedForContentSettings( |
| content::RenderFrame* frame) { |
| @@ -678,8 +683,10 @@ bool ContentSettingsObserver::IsWhitelistedForContentSettings( |
| if (EqualsASCII(origin.protocol(), content::kChromeDevToolsScheme)) |
| return true; // DevTools UI elements should still work. |
| +#if defined(ENABLE_EXTENSIONS) |
| if (EqualsASCII(origin.protocol(), extensions::kExtensionScheme)) |
| return true; |
| +#endif |
| // TODO(creis, fsamuel): Remove this once the concept of swapped out |
| // RenderFrames goes away. |