Chromium Code Reviews| Index: chrome/renderer/chrome_content_renderer_client.cc |
| diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer/chrome_content_renderer_client.cc |
| index d2a85a59fc0b156f0dd142ea6967843f8ed51c3b..0bdc9121ec49183e66ef2a1d8879b39c32eb24ea 100644 |
| --- a/chrome/renderer/chrome_content_renderer_client.cc |
| +++ b/chrome/renderer/chrome_content_renderer_client.cc |
| @@ -245,6 +245,15 @@ bool ShouldUseJavaScriptSettingForPlugin(const WebPluginInfo& plugin) { |
| return false; |
| } |
| +void IsGuestViewApiAvailableToScriptContext( |
| + bool* api_is_available, extensions::ScriptContext* context) { |
| + if (context->GetAvailability("appViewInternal").is_available() || |
| + context->GetAvailability("extensionOptionsInternal").is_available() || |
| + context->GetAvailability("guestViewInternal").is_available()) { |
|
not at google - send to devlin
2014/08/08 14:08:15
why is just the guestViewInternal check not enough
Fady Samuel
2014/08/08 14:12:13
I think it is enough.
|
| + *api_is_available = true; |
| + } |
| +} |
| + |
| } // namespace |
| ChromeContentRendererClient::ChromeContentRendererClient() { |
| @@ -520,20 +529,13 @@ bool ChromeContentRendererClient::OverrideCreatePlugin( |
| WebPlugin** plugin) { |
| std::string orig_mime_type = params.mimeType.utf8(); |
| if (orig_mime_type == content::kBrowserPluginMimeType) { |
| - WebDocument document = frame->document(); |
| - const Extension* extension = |
| - GetExtensionByOrigin(document.securityOrigin()); |
| - if (extension) { |
| - const extensions::APIPermission::ID perms[] = { |
| - extensions::APIPermission::kAppView, |
| - extensions::APIPermission::kEmbeddedExtensionOptions, |
| - extensions::APIPermission::kWebView, |
| - }; |
| - for (size_t i = 0; i < arraysize(perms); ++i) { |
| - if (extension->permissions_data()->HasAPIPermission(perms[i])) |
| - return false; |
| - } |
| - } |
| + bool guest_view_api_available = false; |
| + extension_dispatcher_->script_context_set().ForEach( |
| + render_frame->GetRenderView(), |
| + base::Bind(&IsGuestViewApiAvailableToScriptContext, |
| + &guest_view_api_available)); |
| + if (guest_view_api_available) |
| + return false; |
| } |
| ChromeViewHostMsg_GetPluginInfo_Output output; |