| Index: chrome/browser/search/search.cc
|
| diff --git a/chrome/browser/search/search.cc b/chrome/browser/search/search.cc
|
| index 52deac576ee352476a10c0ad78450254fad94b84..d48eae8e6bd65e800272e2aaec28cc827cd657f6 100644
|
| --- a/chrome/browser/search/search.cc
|
| +++ b/chrome/browser/search/search.cc
|
| @@ -149,34 +149,6 @@ void RecordInstantExtendedOptInState() {
|
| }
|
| }
|
|
|
| -// Helper for EmbeddedSearchPageVersion. Does not check if in incognito mode.
|
| -uint64 EmbeddedSearchPageVersionHelper() {
|
| - // No server-side changes if the local-only Instant Extended is enabled.
|
| - if (IsLocalOnlyInstantExtendedAPIEnabled())
|
| - return kEmbeddedPageVersionDisabled;
|
| -
|
| - // Check the command-line/about:flags setting first, which should have
|
| - // precedence and allows the trial to not be reported (if it's never queried).
|
| - const CommandLine* command_line = CommandLine::ForCurrentProcess();
|
| - if (command_line->HasSwitch(switches::kDisableInstantExtendedAPI))
|
| - return kEmbeddedPageVersionDisabled;
|
| - if (command_line->HasSwitch(switches::kEnableInstantExtendedAPI)) {
|
| - // The user has set the about:flags switch to Enabled - give the default
|
| - // UI version.
|
| - return kEmbeddedPageVersionDefault;
|
| - }
|
| -
|
| - FieldTrialFlags flags;
|
| - if (GetFieldTrialInfo(
|
| - base::FieldTrialList::FindFullName(kInstantExtendedFieldTrialName),
|
| - &flags, NULL)) {
|
| - return GetUInt64ValueForFlagWithDefault(kEmbeddedPageVersionFlagName,
|
| - kEmbeddedPageVersionDefault,
|
| - flags);
|
| - }
|
| - return kEmbeddedPageVersionDisabled;
|
| -}
|
| -
|
| // Returns true if |contents| is rendered inside the Instant process for
|
| // |profile|.
|
| bool IsRenderedInInstantProcess(const content::WebContents* contents,
|
| @@ -234,6 +206,9 @@ bool IsInstantURL(const GURL& url, Profile* profile) {
|
|
|
| string16 GetSearchTermsImpl(const content::WebContents* contents,
|
| const content::NavigationEntry* entry) {
|
| + if (!IsQueryExtractionEnabled())
|
| + return string16();
|
| +
|
| // For security reasons, don't extract search terms if the page is not being
|
| // rendered in the privileged Instant renderer process. This is to protect
|
| // against a malicious page somehow scripting the search results page and
|
| @@ -243,10 +218,6 @@ string16 GetSearchTermsImpl(const content::WebContents* contents,
|
| // Since iOS and Android doesn't use the instant framework, these checks are
|
| // disabled for the two platforms.
|
| Profile* profile = Profile::FromBrowserContext(contents->GetBrowserContext());
|
| -
|
| - if (!IsQueryExtractionEnabled(profile))
|
| - return string16();
|
| -
|
| #if !defined(OS_IOS) && !defined(OS_ANDROID)
|
| if (!IsRenderedInInstantProcess(contents, profile) &&
|
| (contents->GetController().GetLastCommittedEntry() == entry ||
|
| @@ -271,26 +242,43 @@ bool IsInstantExtendedAPIEnabled() {
|
| #if defined(OS_IOS) || defined(OS_ANDROID)
|
| return false;
|
| #else
|
| - // TODO(dougw): Switch to EmbeddedSearchPageVersion after the proper
|
| - // solution to Issue 232065 has been implemented.
|
| - return EmbeddedSearchPageVersionHelper() ||
|
| - IsLocalOnlyInstantExtendedAPIEnabled();
|
| + // On desktop, query extraction is part of Instant extended, so if one is
|
| + // enabled, the other is too.
|
| + return IsQueryExtractionEnabled() || IsLocalOnlyInstantExtendedAPIEnabled();
|
| #endif // defined(OS_IOS) || defined(OS_ANDROID)
|
| }
|
|
|
| // Determine what embedded search page version to request from the user's
|
| // default search provider. If 0, the embedded search UI should not be enabled.
|
| -uint64 EmbeddedSearchPageVersion(Profile* profile) {
|
| - // Disable for incognito. Temporary fix for Issue 232065.
|
| -#if !defined(OS_IOS) && !defined(OS_ANDROID)
|
| - if (!profile || profile->IsOffTheRecord())
|
| +uint64 EmbeddedSearchPageVersion() {
|
| + // No server-side changes if the local-only Instant Extended is enabled.
|
| + if (IsLocalOnlyInstantExtendedAPIEnabled())
|
| return kEmbeddedPageVersionDisabled;
|
| -#endif // !defined(OS_IOS) && !defined(OS_ANDROID)
|
| - return EmbeddedSearchPageVersionHelper();
|
| +
|
| + // Check the command-line/about:flags setting first, which should have
|
| + // precedence and allows the trial to not be reported (if it's never queried).
|
| + const CommandLine* command_line = CommandLine::ForCurrentProcess();
|
| + if (command_line->HasSwitch(switches::kDisableInstantExtendedAPI))
|
| + return kEmbeddedPageVersionDisabled;
|
| + if (command_line->HasSwitch(switches::kEnableInstantExtendedAPI)) {
|
| + // The user has set the about:flags switch to Enabled - give the default
|
| + // UI version.
|
| + return kEmbeddedPageVersionDefault;
|
| + }
|
| +
|
| + FieldTrialFlags flags;
|
| + if (GetFieldTrialInfo(
|
| + base::FieldTrialList::FindFullName(kInstantExtendedFieldTrialName),
|
| + &flags, NULL)) {
|
| + return GetUInt64ValueForFlagWithDefault(kEmbeddedPageVersionFlagName,
|
| + kEmbeddedPageVersionDefault,
|
| + flags);
|
| + }
|
| + return kEmbeddedPageVersionDisabled;
|
| }
|
|
|
| -bool IsQueryExtractionEnabled(Profile* profile) {
|
| - return EmbeddedSearchPageVersion(profile) != kEmbeddedPageVersionDisabled;
|
| +bool IsQueryExtractionEnabled() {
|
| + return EmbeddedSearchPageVersion() != kEmbeddedPageVersionDisabled;
|
| }
|
|
|
| bool IsLocalOnlyInstantExtendedAPIEnabled() {
|
|
|