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 cfb68bf1308749ea7256b5468f71e29d27643311..db63d09a29d87a5e9a97deb0202afe9f6dce0688 100644 |
| --- a/chrome/renderer/chrome_content_renderer_client.cc |
| +++ b/chrome/renderer/chrome_content_renderer_client.cc |
| @@ -126,6 +126,7 @@ |
| #include "extensions/renderer/guest_view/extensions_guest_view_container.h" |
| #include "extensions/renderer/guest_view/extensions_guest_view_container_dispatcher.h" |
| #include "extensions/renderer/guest_view/mime_handler_view/mime_handler_view_container.h" |
| +#include "extensions/renderer/renderer_extension_registry.h" |
| #include "extensions/renderer/script_context.h" |
| #endif |
| @@ -616,7 +617,7 @@ const Extension* ChromeContentRendererClient::GetExtensionByOrigin( |
| return NULL; |
| const std::string extension_id = origin.host().utf8().data(); |
| - return extension_dispatcher_->extensions()->GetByID(extension_id); |
| + return extensions::RendererExtensionRegistry::Get()->GetByID(extension_id); |
| } |
| #endif |
| @@ -811,8 +812,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin( |
| app_url = manifest_url; |
| } |
| const Extension* extension = |
| - g_current_client->extension_dispatcher_->extensions()-> |
| - GetExtensionOrAppByURL(manifest_url); |
| + extensions::RendererExtensionRegistry::Get() |
| + ->GetExtensionOrAppByURL(manifest_url); |
| if (!IsNaClAllowed(manifest_url, |
| app_url, |
| is_nacl_unrestricted, |
| @@ -1234,12 +1235,12 @@ bool ChromeContentRendererClient::ShouldFork(blink::WebLocalFrame* frame, |
| } |
| #if defined(ENABLE_EXTENSIONS) |
| - const extensions::ExtensionSet* extensions = |
| - extension_dispatcher_->extensions(); |
| + const extensions::RendererExtensionRegistry* extensions = |
| + extensions::RendererExtensionRegistry::Get(); |
| // Determine if the new URL is an extension (excluding bookmark apps). |
| const Extension* new_url_extension = extensions::GetNonBookmarkAppExtension( |
| - *extensions, url); |
| + *(extensions->GetMainThreadExtensionSet()), url); |
|
not at google - send to devlin
2015/08/18 18:42:49
*extensions->GetMainThreadExtensionSet() is fine,
annekao
2015/08/18 20:21:12
Done.
|
| bool is_extension_url = !!new_url_extension; |
| // If the navigation would cross an app extent boundary, we also need |
| @@ -1248,15 +1249,14 @@ bool ChromeContentRendererClient::ShouldFork(blink::WebLocalFrame* frame, |
| // browser process when they are ready to commit. It is necessary for client |
| // redirects, which won't be transferred in the same way. |
| if (!is_server_redirect && |
| - CrossesExtensionExtents(frame, url, *extensions, is_extension_url, |
| - is_initial_navigation)) { |
| + CrossesExtensionExtents(frame, url, is_extension_url, |
| + is_initial_navigation)) { |
| // Include the referrer in this case since we're going from a hosted web |
| // page. (the packaged case is handled previously by the extension |
| // navigation test) |
| *send_referrer = true; |
| - const Extension* extension = |
| - extension_dispatcher_->extensions()->GetExtensionOrAppByURL(url); |
| + const Extension* extension = extensions->GetExtensionOrAppByURL(url); |
| if (extension && extension->is_app()) { |
| extensions::RecordAppLaunchType( |
| extension_misc::APP_LAUNCH_CONTENT_NAVIGATION, extension->GetType()); |
| @@ -1290,11 +1290,8 @@ bool ChromeContentRendererClient::WillSendRequest( |
| // URL to something invalid to prevent the request and cause an error. |
| #if defined(ENABLE_EXTENSIONS) |
| if (url.SchemeIs(extensions::kExtensionScheme) && |
| - !extensions::ResourceRequestPolicy::CanRequestResource( |
| - url, |
| - frame, |
| - transition_type, |
| - extension_dispatcher_->extensions())) { |
| + !extensions::ResourceRequestPolicy::CanRequestResource(url, frame, |
| + transition_type)) { |
| *new_url = GURL(chrome::kExtensionInvalidRequestURL); |
| return true; |
| } |
| @@ -1371,12 +1368,14 @@ ChromeContentRendererClient::GetExtensionDispatcherForTest() { |
| bool ChromeContentRendererClient::CrossesExtensionExtents( |
| blink::WebLocalFrame* frame, |
| const GURL& new_url, |
| - const extensions::ExtensionSet& extensions, |
| bool is_extension_url, |
| bool is_initial_navigation) { |
| DCHECK(!frame->parent()); |
| GURL old_url(frame->document().url()); |
| + extensions::RendererExtensionRegistry* extensions = |
| + extensions::RendererExtensionRegistry::Get(); |
| + |
| // If old_url is still empty and this is an initial navigation, then this is |
| // a window.open operation. We should look at the opener URL. Note that the |
| // opener is a local frame in this case. |
| @@ -1389,8 +1388,8 @@ bool ChromeContentRendererClient::CrossesExtensionExtents( |
| WebDocument opener_document = opener_frame->document(); |
| WebSecurityOrigin opener_origin = opener_document.securityOrigin(); |
| bool opener_is_extension_url = |
| - !opener_origin.isUnique() && extensions.GetExtensionOrAppByURL( |
| - opener_document.url()) != NULL; |
| + !opener_origin.isUnique() && |
| + extensions->GetExtensionOrAppByURL(opener_document.url()) != NULL; |
| if (!is_extension_url && |
| !opener_is_extension_url && |
| IsStandaloneExtensionProcess() && |
| @@ -1416,7 +1415,8 @@ bool ChromeContentRendererClient::CrossesExtensionExtents( |
| bool should_consider_workaround = !!frame->opener(); |
| return extensions::CrossesExtensionProcessBoundary( |
| - extensions, old_url, new_url, should_consider_workaround); |
| + *(extensions->GetMainThreadExtensionSet()), old_url, new_url, |
|
not at google - send to devlin
2015/08/18 18:42:49
Ditto.
|
| + should_consider_workaround); |
| } |
| #endif // defined(ENABLE_EXTENSIONS) |
| @@ -1464,7 +1464,7 @@ bool ChromeContentRendererClient::IsExternalPepperPlugin( |
| bool ChromeContentRendererClient::IsExtensionOrSharedModuleWhitelisted( |
| const GURL& url, const std::set<std::string>& whitelist) { |
| const extensions::ExtensionSet* extension_set = |
| - g_current_client->extension_dispatcher_->extensions(); |
| + extensions::RendererExtensionRegistry::Get()->GetMainThreadExtensionSet(); |
| return chrome::IsExtensionOrSharedModuleWhitelisted(url, extension_set, |
| whitelist); |
| } |