| 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..6fb46d6c278681346b22fec179a164521de42ee2 100644
|
| --- a/chrome/renderer/chrome_content_renderer_client.cc
|
| +++ b/chrome/renderer/chrome_content_renderer_client.cc
|
| @@ -245,6 +245,14 @@ bool ShouldUseJavaScriptSettingForPlugin(const WebPluginInfo& plugin) {
|
| return false;
|
| }
|
|
|
| +void IsGuestViewApiAvailableToScriptContext(
|
| + bool* api_is_available,
|
| + extensions::ScriptContext* context) {
|
| + if (context->GetAvailability("guestViewInternal").is_available()) {
|
| + *api_is_available = true;
|
| + }
|
| +}
|
| +
|
| } // namespace
|
|
|
| ChromeContentRendererClient::ChromeContentRendererClient() {
|
| @@ -520,20 +528,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;
|
|
|