| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/renderer/extensions/chrome_extensions_renderer_client.h" | 5 #include "chrome/renderer/extensions/chrome_extensions_renderer_client.h" |
| 6 | 6 |
| 7 #include <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
| 10 #include "base/lazy_instance.h" | 10 #include "base/lazy_instance.h" |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 78 // process. Use the URL of the opener's local frame root, which will | 78 // process. Use the URL of the opener's local frame root, which will |
| 79 // correctly handle any site isolation modes (--site-per-process and | 79 // correctly handle any site isolation modes (--site-per-process and |
| 80 // --isolate-extensions). | 80 // --isolate-extensions). |
| 81 blink::WebLocalFrame* local_root = opener_frame->localRoot(); | 81 blink::WebLocalFrame* local_root = opener_frame->localRoot(); |
| 82 old_url = local_root->document().url(); | 82 old_url = local_root->document().url(); |
| 83 | 83 |
| 84 // If we're about to open a normal web page from a same-origin opener stuck | 84 // If we're about to open a normal web page from a same-origin opener stuck |
| 85 // in an extension process (other than the Chrome Web Store), we want to | 85 // in an extension process (other than the Chrome Web Store), we want to |
| 86 // keep it in process to allow the opener to script it. | 86 // keep it in process to allow the opener to script it. |
| 87 blink::WebDocument opener_document = opener_frame->document(); | 87 blink::WebDocument opener_document = opener_frame->document(); |
| 88 blink::WebSecurityOrigin opener_origin = opener_document.securityOrigin(); | 88 blink::WebSecurityOrigin opener_origin = |
| 89 opener_document.getSecurityOrigin(); |
| 89 bool opener_is_extension_url = !opener_origin.isUnique() && | 90 bool opener_is_extension_url = !opener_origin.isUnique() && |
| 90 extension_registry->GetExtensionOrAppByURL( | 91 extension_registry->GetExtensionOrAppByURL( |
| 91 opener_document.url()) != nullptr; | 92 opener_document.url()) != nullptr; |
| 92 const Extension* opener_top_extension = | 93 const Extension* opener_top_extension = |
| 93 extension_registry->GetExtensionOrAppByURL(old_url); | 94 extension_registry->GetExtensionOrAppByURL(old_url); |
| 94 bool opener_is_web_store = | 95 bool opener_is_web_store = |
| 95 opener_top_extension && | 96 opener_top_extension && |
| 96 opener_top_extension->id() == extensions::kWebStoreAppId; | 97 opener_top_extension->id() == extensions::kWebStoreAppId; |
| 97 if (!is_extension_url && !opener_is_extension_url && !opener_is_web_store && | 98 if (!is_extension_url && !opener_is_extension_url && !opener_is_web_store && |
| 98 IsStandaloneExtensionProcess() && | 99 IsStandaloneExtensionProcess() && |
| (...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 296 content::BrowserPluginDelegate* | 297 content::BrowserPluginDelegate* |
| 297 ChromeExtensionsRendererClient::CreateBrowserPluginDelegate( | 298 ChromeExtensionsRendererClient::CreateBrowserPluginDelegate( |
| 298 content::RenderFrame* render_frame, | 299 content::RenderFrame* render_frame, |
| 299 const std::string& mime_type, | 300 const std::string& mime_type, |
| 300 const GURL& original_url) { | 301 const GURL& original_url) { |
| 301 if (mime_type == content::kBrowserPluginMimeType) | 302 if (mime_type == content::kBrowserPluginMimeType) |
| 302 return new extensions::ExtensionsGuestViewContainer(render_frame); | 303 return new extensions::ExtensionsGuestViewContainer(render_frame); |
| 303 return new extensions::MimeHandlerViewContainer(render_frame, mime_type, | 304 return new extensions::MimeHandlerViewContainer(render_frame, mime_type, |
| 304 original_url); | 305 original_url); |
| 305 } | 306 } |
| OLD | NEW |