| 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 a3c33ea39d4992561c60de925c81ef2156909ca2..7213015a6f929e1d46c53b29c677e1310589dd85 100644
|
| --- a/chrome/browser/chrome_content_browser_client.cc
|
| +++ b/chrome/browser/chrome_content_browser_client.cc
|
| @@ -63,8 +63,6 @@
|
| #include "chrome/browser/renderer_host/chrome_render_view_host_observer.h"
|
| #include "chrome/browser/renderer_host/pepper/chrome_browser_pepper_host_factory.h"
|
| #include "chrome/browser/search_engines/search_provider_install_state_message_filter.h"
|
| -#include "chrome/browser/search_engines/template_url_service.h"
|
| -#include "chrome/browser/search_engines/template_url_service_factory.h"
|
| #include "chrome/browser/speech/chrome_speech_recognition_manager_delegate.h"
|
| #include "chrome/browser/spellchecker/spellcheck_message_filter.h"
|
| #include "chrome/browser/ssl/ssl_add_certificate.h"
|
| @@ -73,6 +71,7 @@
|
| #include "chrome/browser/tab_contents/tab_util.h"
|
| #include "chrome/browser/toolkit_extra_parts.h"
|
| #include "chrome/browser/ui/chrome_select_file_policy.h"
|
| +#include "chrome/browser/ui/search/search.h"
|
| #include "chrome/browser/ui/tab_contents/chrome_web_contents_view_delegate.h"
|
| #include "chrome/browser/ui/webui/chrome_web_ui_controller_factory.h"
|
| #include "chrome/browser/user_style_sheet_watcher.h"
|
| @@ -407,66 +406,22 @@ int GetCrashSignalFD(const CommandLine& command_line) {
|
| }
|
| #endif // defined(OS_POSIX) && !defined(OS_MACOSX)
|
|
|
| -// TODO(dhollowa): http://crbug.com/170390 This test exists in different places
|
| -// in Chrome. Follow-up to consolidate these various Instant URL checks.
|
| -// Returns true if |url| has the same scheme, host, and path as the instant URL
|
| -// set via --instant-url.
|
| -bool IsForcedInstantURL(const GURL& url) {
|
| - CommandLine* command_line = CommandLine::ForCurrentProcess();
|
| - if (command_line->HasSwitch(switches::kInstantURL)) {
|
| - GURL instant_url(command_line->GetSwitchValueASCII(switches::kInstantURL));
|
| - if (url.scheme() == instant_url.scheme() &&
|
| - url.host() == instant_url.host() &&
|
| - url.path() == instant_url.path()) {
|
| - return true;
|
| - }
|
| - }
|
| - return false;
|
| -}
|
| -
|
| -// Determines whether the |url| is an Instant url for the default search
|
| -// provider (set for the |profile|).
|
| -// Also returns true if an Instant "effective url" (see below) is passed in.
|
| -bool IsInstantURL(const GURL& url, Profile* profile) {
|
| - // Handle the command-line URL.
|
| - if (IsForcedInstantURL(url))
|
| - return true;
|
| -
|
| - // A URL of this form has already be determined to be an Instant url,
|
| - // this is its "effective url". So trivially return true.
|
| - if (url.SchemeIs(chrome::kChromeSearchScheme))
|
| - return true;
|
| -
|
| - TemplateURLService* template_url_service =
|
| - TemplateURLServiceFactory::GetForProfile(profile);
|
| - if (!template_url_service)
|
| - return false;
|
| -
|
| - TemplateURL* template_url = template_url_service->GetDefaultSearchProvider();
|
| - if (!template_url)
|
| - return false;
|
| -
|
| - if (template_url->instant_url().empty())
|
| - return false;
|
| -
|
| - return template_url->IsInstantURL(url);
|
| -}
|
| -
|
| -// Transforms the input |url| into its "effective url". The returned url
|
| +// 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
|
| +// 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 GetEffectiveInstantURL(const GURL& url, Profile* profile) {
|
| - CHECK(IsInstantURL(url, profile)) << "Error granting Instant access.";
|
| +//
|
| +// If the input is already an effective URL then that same URL is returned.
|
| +GURL GetEffectiveURLForInstant(const GURL& url, Profile* profile) {
|
| + CHECK(chrome::search::ShouldAssignURLToInstantRenderer(url, profile))
|
| + << "Error granting Instant access.";
|
|
|
| if (url.SchemeIs(chrome::kChromeSearchScheme))
|
| return url;
|
| @@ -728,10 +683,10 @@ GURL ChromeContentBrowserClient::GetEffectiveURL(
|
| if (!profile)
|
| return url;
|
|
|
| - // If the input |url| is an Instant url, make its effective url distinct from
|
| - // other urls on the search provider's domain.
|
| - if (IsInstantURL(url, profile))
|
| - return GetEffectiveInstantURL(url, profile);
|
| + // 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::search::ShouldAssignURLToInstantRenderer(url, profile))
|
| + return GetEffectiveURLForInstant(url, profile);
|
|
|
| // If the input |url| is part of an installed app, the effective URL is an
|
| // extension URL with the ID of that extension as the host. This has the
|
| @@ -767,7 +722,7 @@ bool ChromeContentBrowserClient::ShouldUseProcessPerSite(
|
| if (!profile)
|
| return false;
|
|
|
| - if (IsInstantURL(effective_url, profile))
|
| + if (chrome::search::ShouldAssignURLToInstantRenderer(effective_url, profile))
|
| return true;
|
|
|
| if (!effective_url.SchemeIs(extensions::kExtensionScheme))
|
| @@ -865,7 +820,7 @@ bool ChromeContentBrowserClient::IsSuitableHost(
|
| InstantServiceFactory::GetForProfile(profile);
|
| if (instant_service &&
|
| instant_service->IsInstantProcess(process_host->GetID()))
|
| - return IsInstantURL(site_url, profile);
|
| + return chrome::search::ShouldAssignURLToInstantRenderer(site_url, profile);
|
|
|
| ExtensionService* service =
|
| extensions::ExtensionSystem::Get(profile)->extension_service();
|
| @@ -955,7 +910,8 @@ void ChromeContentBrowserClient::SiteInstanceGotProcess(
|
|
|
| // Remember the ID of the Instant process to signal the renderer process
|
| // on startup in |AppendExtraCommandLineSwitches| below.
|
| - if (IsInstantURL(site_instance->GetSiteURL(), profile)) {
|
| + if (chrome::search::ShouldAssignURLToInstantRenderer(
|
| + site_instance->GetSiteURL(), profile)) {
|
| InstantService* instant_service =
|
| InstantServiceFactory::GetForProfile(profile);
|
| if (instant_service)
|
|
|