Index: chrome/renderer/chrome_content_renderer_client.cc |
=================================================================== |
--- chrome/renderer/chrome_content_renderer_client.cc (revision 112673) |
+++ chrome/renderer/chrome_content_renderer_client.cc (working copy) |
@@ -573,26 +573,32 @@ |
// TODO(erikkay) This is happening inside of a check to is_content_initiated |
// which means that things like the back button won't trigger it. Is that |
// OK? |
- if (!CrossesExtensionExtents(frame, url, is_initial_navigation)) |
- return false; |
+ if (CrossesExtensionExtents(frame, 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; |
- // 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; |
- |
- if (is_content_initiated) { |
- const Extension* extension = |
- extension_dispatcher_->extensions()->GetByURL(ExtensionURLInfo(url)); |
- if (extension && extension->is_app()) { |
- UMA_HISTOGRAM_ENUMERATION( |
- extension_misc::kAppLaunchHistogram, |
- extension_misc::APP_LAUNCH_CONTENT_NAVIGATION, |
- extension_misc::APP_LAUNCH_BUCKET_BOUNDARY); |
+ if (is_content_initiated) { |
+ const Extension* extension = |
+ extension_dispatcher_->extensions()->GetByURL(ExtensionURLInfo(url)); |
+ if (extension && extension->is_app()) { |
+ UMA_HISTOGRAM_ENUMERATION( |
+ extension_misc::kAppLaunchHistogram, |
+ extension_misc::APP_LAUNCH_CONTENT_NAVIGATION, |
+ extension_misc::APP_LAUNCH_BUCKET_BOUNDARY); |
+ } |
} |
+ return true; |
} |
- return true; |
+ // Navigating to a new chrome:// scheme (in a new tab) from within a |
+ // chrome:// page must be a browser navigation so that the browser can |
+ // register the new associated data source. |
+ if (is_content_initiated && url.SchemeIs(kChromeUIScheme)) |
+ return true; |
+ |
+ return false; |
} |
bool ChromeContentRendererClient::WillSendRequest(WebKit::WebFrame* frame, |