Chromium Code Reviews| Index: chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc |
| diff --git a/chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc b/chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc |
| index ef6ee6b46d3390770c47ec4b385629628cf736a9..4991a9e42119f5946462571b6bcff32b383e6bb8 100644 |
| --- a/chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc |
| +++ b/chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc |
| @@ -21,10 +21,12 @@ |
| #include "chrome/browser/sync_file_system/local/sync_file_system_backend.h" |
| #include "chrome/common/chrome_constants.h" |
| #include "chrome/common/chrome_switches.h" |
| +#include "chrome/common/extensions/extension_constants.h" |
| #include "chrome/common/extensions/extension_process_policy.h" |
| #include "components/guest_view/browser/guest_view_message_filter.h" |
| #include "content/public/browser/browser_thread.h" |
| #include "content/public/browser/browser_url_handler.h" |
| +#include "content/public/browser/page_navigator.h" |
| #include "content/public/browser/render_process_host.h" |
| #include "content/public/browser/render_view_host.h" |
| #include "content/public/browser/resource_dispatcher_host.h" |
| @@ -535,6 +537,31 @@ bool ChromeContentBrowserClientExtensionsPart::ShouldAllowOpenURL( |
| return false; |
| } |
| +void ChromeContentBrowserClientExtensionsPart::OverrideOpenURLParams( |
| + content::SiteInstance* site_instance, |
| + content::OpenURLParams* params) { |
| + const Extension* extension = |
| + ExtensionRegistry::Get(site_instance->GetBrowserContext()) |
| + ->enabled_extensions() |
| + .GetExtensionOrAppByURL(site_instance->GetSiteURL()); |
| + if (!extension) |
| + return; |
| + |
| + if (extension->id() == extension_misc::kBookmarkManagerId && |
| + ui::PageTransitionCoreTypeIs(params->transition, |
| + ui::PAGE_TRANSITION_LINK)) { |
| + // Link clicks in the bookmark manager count as bookmarks and as browser- |
| + // initiated navigations. |
| + params->transition = ui::PAGE_TRANSITION_AUTO_BOOKMARK; |
| + params->is_renderer_initiated = false; |
| + } |
| + |
| + // Hide the referrer for extension pages. We don't want sites to see a |
| + // referrer of chrome-extension://<...>. |
| + if (extension->is_extension()) |
|
Devlin
2016/11/02 22:01:43
Note: this was the behavior prior to https://chrom
Charlie Reis
2016/11/04 23:31:59
Agreed.
|
| + params->referrer = content::Referrer(); |
| +} |
| + |
| // static |
| std::unique_ptr<content::VpnServiceProxy> |
| ChromeContentBrowserClientExtensionsPart::GetVpnServiceProxy( |