Chromium Code Reviews| Index: chrome/browser/chrome_content_browser_client.cc |
| diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc |
| index c51859e0ced7e6fcf7517e0c66d60202763e3211..0a3ea478af74e7b8cd4b747682ad23af8e0674f8 100644 |
| --- a/chrome/browser/chrome_content_browser_client.cc |
| +++ b/chrome/browser/chrome_content_browser_client.cc |
| @@ -434,37 +434,6 @@ int GetCrashSignalFD(const CommandLine& command_line) { |
| } |
| #endif // defined(OS_POSIX) && !defined(OS_MACOSX) |
| -// Transforms the input |url| into its "effective URL". The returned URL |
| -// facilitates grouping process-per-site. The |url| is transformed, for |
| -// example, from |
| -// |
| -// https://www.google.com/search?espv=1&q=tractors |
| -// |
| -// to the effective URL |
| -// |
| -// chrome-search://www.google.com/search?espv=1&q=tractors |
| -// |
| -// Notice the scheme change. |
| -// |
| -// If the input is already an effective URL then that same URL is returned. |
| -GURL GetEffectiveURLForInstant(const GURL& url, Profile* profile) { |
| - CHECK(chrome::ShouldAssignURLToInstantRenderer(url, profile)) |
| - << "Error granting Instant access."; |
| - |
| - if (url.SchemeIs(chrome::kChromeSearchScheme)) |
| - return url; |
| - |
| - GURL effective_url(url); |
| - |
| - // Replace the scheme with "chrome-search:". |
| - url_canon::Replacements<char> replacements; |
| - std::string search_scheme(chrome::kChromeSearchScheme); |
| - replacements.SetScheme(search_scheme.data(), |
| - url_parse::Component(0, search_scheme.length())); |
| - effective_url = effective_url.ReplaceComponents(replacements); |
| - return effective_url; |
| -} |
| - |
| #if !defined(OS_CHROMEOS) |
| GURL GetEffectiveURLForSignin(const GURL& url) { |
| CHECK(SigninManager::IsWebBasedSigninFlowURL(url)); |
| @@ -745,17 +714,43 @@ void ChromeContentBrowserClient::RenderProcessHostCreated( |
| host->Send(new ChromeViewMsg_SetContentSettingRules(rules)); |
| } |
| +GURL ChromeContentBrowserClient::GetPossiblyPrivilegedURL( |
| + content::BrowserContext* browser_context, |
| + const GURL& url, |
| + bool is_renderer_initiated, |
| + content::SiteInstance* current_instance) { |
| + Profile* profile = Profile::FromBrowserContext(browser_context); |
| + if (!profile) |
| + return url; |
| + |
| + // Only return the privileged instant URL if we are entering from a browser- |
| + // initiated navigation or if we are already in the instant process. |
| + bool is_instant_process = false; |
| + int process_id = current_instance->GetProcess()->GetID(); |
| + InstantService* instant_service = |
| + InstantServiceFactory::GetForProfile(profile); |
| + if (instant_service) |
| + is_instant_process = instant_service->IsInstantProcess(process_id); |
| + |
| + // TODO(shishir): Uncomment the followng DCHECK after tests are fixed. |
|
Charlie Reis
2013/05/02 17:25:20
Is the ReplaceSearchTerms CL difficult to fix? It
Shishir
2013/05/02 18:07:07
Fixed the test. Turns out the code that caused thi
Charlie Reis
2013/05/02 18:33:02
Fantastic! LGTM.
|
| + // DCHECK_EQ(is_instant_process, |
| + // chrome::IsPrivilegedURLForInstant(current_instance->GetSiteURL())); |
| + if (!is_renderer_initiated || is_instant_process) { |
| + // If the input |url| should be assigned to the Instant renderer, make its |
| + // privileged URL distinct from other URLs on the search provider's domain. |
| + if (chrome::ShouldAssignURLToInstantRenderer(url, profile)) |
| + return chrome::GetPrivilegedURLForInstant(url, profile); |
| + } |
| + |
| + return url; |
| +} |
| + |
| GURL ChromeContentBrowserClient::GetEffectiveURL( |
| content::BrowserContext* browser_context, const GURL& url) { |
| Profile* profile = Profile::FromBrowserContext(browser_context); |
| if (!profile) |
| return url; |
| - // If the input |url| should be assigned to the Instant renderer, make its |
| - // effective URL distinct from other URLs on the search provider's domain. |
| - if (chrome::ShouldAssignURLToInstantRenderer(url, profile)) |
| - return GetEffectiveURLForInstant(url, profile); |
| - |
| #if !defined(OS_CHROMEOS) |
| // If the input |url| should be assigned to the Signin renderer, make its |
| // effective URL distinct from other URLs on the signin service's domain. |