Chromium Code Reviews| Index: chrome/browser/search/search.cc |
| diff --git a/chrome/browser/search/search.cc b/chrome/browser/search/search.cc |
| index 9ab0cd7273148788fa9530e10d103377efbf49ea..0a0d3af17f7ceb86b1ece9067eff4fb505938885 100644 |
| --- a/chrome/browser/search/search.cc |
| +++ b/chrome/browser/search/search.cc |
| @@ -6,7 +6,6 @@ |
| #include "base/command_line.h" |
| #include "base/metrics/field_trial.h" |
| -#include "base/metrics/histogram.h" |
| #include "base/prefs/pref_service.h" |
| #include "base/rand_util.h" |
| #include "base/strings/string_number_conversions.h" |
| @@ -53,7 +52,6 @@ namespace { |
| // The first token is always GroupN for some integer N, followed by a |
| // space-delimited list of key:value pairs which correspond to these flags: |
| const char kEmbeddedPageVersionFlagName[] = "espv"; |
| -const uint64 kEmbeddedPageVersionDisabled = 0; |
| #if defined(OS_IOS) || defined(OS_ANDROID) |
| const uint64 kEmbeddedPageVersionDefault = 1; |
| #else |
| @@ -71,9 +69,11 @@ const char kRecentTabsOnNTPFlagName[] = "show_recent_tabs"; |
| const char kUseCacheableNTP[] = "use_cacheable_ntp"; |
| const char kPrefetchSearchResultsFlagName[] = "prefetch_results"; |
| const char kPrefetchSearchResultsOnSRP[] = "prefetch_results_srp"; |
| -const char kSuppressInstantExtendedOnSRPFlagName[] = "suppress_on_srp"; |
| const char kDisplaySearchButtonFlagName[] = "display_search_button"; |
| const char kEnableOriginChipFlagName[] = "origin_chip"; |
| +#if !defined(OS_IOS) && !defined(OS_ANDROID) |
|
Jered
2013/11/15 17:40:11
It's probably fine to keep the string constant aro
samarth
2013/11/18 01:45:00
Compiler doesn't like the unused variable.
|
| +const char kEnableQueryExtractionFlagName[] = "query_extraction"; |
| +#endif |
| // Constants for the field trial name and group prefix. |
| // Note in M30 and below this field trial was named "InstantExtended" and in |
| @@ -161,22 +161,6 @@ bool MatchesAnySearchURL(const GURL& url, TemplateURL* template_url) { |
| return false; |
| } |
| -void RecordInstantExtendedOptInState() { |
| - if (instant_extended_opt_in_state_gate) |
| - return; |
| - |
| - instant_extended_opt_in_state_gate = true; |
| - OptInState state = INSTANT_EXTENDED_NOT_SET; |
| - const CommandLine* command_line = CommandLine::ForCurrentProcess(); |
| - if (command_line->HasSwitch(switches::kDisableInstantExtendedAPI)) |
| - state = INSTANT_EXTENDED_OPT_OUT; |
| - else if (command_line->HasSwitch(switches::kEnableInstantExtendedAPI)) |
| - state = INSTANT_EXTENDED_OPT_IN; |
| - |
| - UMA_HISTOGRAM_ENUMERATION("InstantExtended.NewOptInState", state, |
|
Jered
2013/11/15 17:40:11
Also remove this from histograms.xml
Jered
2013/11/15 17:41:15
By remove I guess I mean "mark deprecated", since
samarth
2013/11/18 01:45:00
Done.
samarth
2013/11/18 01:45:00
Done.
|
| - INSTANT_EXTENDED_OPT_IN_STATE_ENUM_COUNT); |
| -} |
| - |
| // Returns true if |contents| is rendered inside the Instant process for |
| // |profile|. |
| bool IsRenderedInInstantProcess(const content::WebContents* contents, |
| @@ -236,8 +220,7 @@ bool IsInstantURL(const GURL& url, Profile* profile) { |
| if (search::MatchesOriginAndPath(url, instant_url)) |
| return true; |
| - return !ShouldSuppressInstantExtendedOnSRP() && |
| - MatchesAnySearchURL(url, template_url); |
| + return IsQueryExtractionEnabled() && MatchesAnySearchURL(url, template_url); |
| } |
| string16 GetSearchTermsImpl(const content::WebContents* contents, |
| @@ -292,32 +275,15 @@ bool IsInstantExtendedAPIEnabled() { |
| #if defined(OS_IOS) || defined(OS_ANDROID) |
| return false; |
| #else |
| - RecordInstantExtendedOptInState(); |
| - return EmbeddedSearchPageVersion() != kEmbeddedPageVersionDisabled; |
| + return true; |
| #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() { |
| - RecordInstantExtendedOptInState(); |
| - |
| - // 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; |
| - uint64 group_num = 0; |
| - if (GetFieldTrialInfo(&flags, &group_num)) { |
| - if (group_num == 0) |
| - return kEmbeddedPageVersionDefault; |
| + if (GetFieldTrialInfo(&flags, NULL)) { |
| return GetUInt64ValueForFlagWithDefault(kEmbeddedPageVersionFlagName, |
| kEmbeddedPageVersionDefault, |
| flags); |
| @@ -326,8 +292,20 @@ uint64 EmbeddedSearchPageVersion() { |
| } |
| bool IsQueryExtractionEnabled() { |
| - return EmbeddedSearchPageVersion() != kEmbeddedPageVersionDisabled && |
| - !ShouldSuppressInstantExtendedOnSRP(); |
| +#if defined(OS_IOS) || defined(OS_ANDROID) |
| + return true; |
| +#else |
| + if (!IsInstantExtendedAPIEnabled()) |
| + return false; |
| + |
| + const CommandLine* command_line = CommandLine::ForCurrentProcess(); |
| + if (command_line->HasSwitch(switches::kEnableQueryExtraction)) |
| + return true; |
| + |
| + FieldTrialFlags flags; |
| + return GetFieldTrialInfo(&flags, NULL) && GetBoolValueForFlagWithDefault( |
| + kEnableQueryExtractionFlagName, false, flags); |
| +#endif // defined(OS_IOS) || defined(OS_ANDROID) |
| } |
| string16 GetSearchTermsFromURL(Profile* profile, const GURL& url) { |
| @@ -519,13 +497,7 @@ GURL GetLocalInstantURL(Profile* profile) { |
| } |
| bool ShouldPreferRemoteNTPOnStartup() { |
| - // 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) || |
| - command_line->HasSwitch(switches::kEnableLocalFirstLoadNTP)) { |
| - return false; |
| - } |
| + CommandLine* command_line = CommandLine::ForCurrentProcess(); |
| if (command_line->HasSwitch(switches::kDisableLocalFirstLoadNTP)) |
| return true; |
| @@ -563,17 +535,6 @@ bool ShouldShowRecentTabsOnNTP() { |
| kRecentTabsOnNTPFlagName, false, flags); |
| } |
| -bool ShouldSuppressInstantExtendedOnSRP() { |
| - FieldTrialFlags flags; |
| - |
| - const CommandLine* command_line = CommandLine::ForCurrentProcess(); |
| - if (command_line->HasSwitch(switches::kEnableInstantExtendedAPI)) |
| - return false; |
| - |
| - return !GetFieldTrialInfo(&flags, NULL) || GetBoolValueForFlagWithDefault( |
| - kSuppressInstantExtendedOnSRPFlagName, true, flags); |
| -} |
| - |
| DisplaySearchButtonConditions GetDisplaySearchButtonConditions() { |
| FieldTrialFlags flags; |
| if (!GetFieldTrialInfo(&flags, NULL)) |
| @@ -713,27 +674,14 @@ InstantSupportState GetInstantSupportStateFromNavigationEntry( |
| } |
| bool ShouldPrefetchSearchResultsOnSRP() { |
| - // 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) || |
| - command_line->HasSwitch(switches::kEnableInstantExtendedAPI)) { |
| - return false; |
| - } |
| - |
| FieldTrialFlags flags; |
| return GetFieldTrialInfo(&flags, NULL) && GetBoolValueForFlagWithDefault( |
| kPrefetchSearchResultsOnSRP, false, flags); |
| } |
| -void EnableInstantExtendedAPIForTesting() { |
| - CommandLine* cl = CommandLine::ForCurrentProcess(); |
| - cl->AppendSwitch(switches::kEnableInstantExtendedAPI); |
| -} |
| - |
| -void DisableInstantExtendedAPIForTesting() { |
| +void EnableQueryExtractionForTesting() { |
| CommandLine* cl = CommandLine::ForCurrentProcess(); |
| - cl->AppendSwitch(switches::kDisableInstantExtendedAPI); |
| + cl->AppendSwitch(switches::kEnableQueryExtraction); |
| } |
| bool GetFieldTrialInfo(FieldTrialFlags* flags, |