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 34ee044bb0c95869961b4de2c882d3ddaa164ebe..4a87dfd10b637f1f2f4f3c95a6084908a8f18ab6 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* extension_registry = |
+ extensions::RendererExtensionRegistry::Get(); |
// Determine if the new URL is an extension (excluding bookmark apps). |
const Extension* new_url_extension = extensions::GetNonBookmarkAppExtension( |
- *extensions, url); |
+ *extension_registry->GetMainThreadExtensionSet(), url); |
bool is_extension_url = !!new_url_extension; |
// If the navigation would cross an app extent boundary, we also need |
@@ -1248,15 +1249,15 @@ 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); |
+ extension_registry->GetExtensionOrAppByURL(url); |
if (extension && extension->is_app()) { |
extensions::RecordAppLaunchType( |
extension_misc::APP_LAUNCH_CONTENT_NAVIGATION, extension->GetType()); |
@@ -1290,11 +1291,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 +1369,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* extension_registry = |
+ 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. |
@@ -1388,9 +1388,9 @@ bool ChromeContentRendererClient::CrossesExtensionExtents( |
// opener to script it. |
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; |
+ bool opener_is_extension_url = !opener_origin.isUnique() && |
+ extension_registry->GetExtensionOrAppByURL( |
+ opener_document.url()) != NULL; |
if (!is_extension_url && |
!opener_is_extension_url && |
IsStandaloneExtensionProcess() && |
@@ -1416,7 +1416,8 @@ bool ChromeContentRendererClient::CrossesExtensionExtents( |
bool should_consider_workaround = !!frame->opener(); |
return extensions::CrossesExtensionProcessBoundary( |
- extensions, old_url, new_url, should_consider_workaround); |
+ *extension_registry->GetMainThreadExtensionSet(), old_url, new_url, |
+ should_consider_workaround); |
} |
#endif // defined(ENABLE_EXTENSIONS) |
@@ -1464,7 +1465,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); |
} |