summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/browser/autocomplete/autocomplete_provider_unittest.cc2
-rw-r--r--chrome/browser/autocomplete/history_url_provider.cc53
-rw-r--r--chrome/browser/autocomplete/keyword_provider_unittest.cc2
-rw-r--r--chrome/browser/autocomplete/search_provider_unittest.cc1
-rw-r--r--chrome/browser/search/search_unittest.cc1
-rw-r--r--chrome/browser/search_engines/DEPS7
-rw-r--r--chrome/browser/search_engines/template_url.cc30
-rw-r--r--chrome/browser/search_engines/template_url.h5
-rw-r--r--chrome/browser/search_engines/template_url_unittest.cc33
-rw-r--r--chrome/browser/search_engines/ui_thread_search_terms_data.cc19
-rw-r--r--chrome/browser/search_engines/ui_thread_search_terms_data.h6
-rw-r--r--chrome/common/chrome_switches.cc4
-rw-r--r--chrome/common/chrome_switches.h1
-rw-r--r--components/search_engines.gypi2
-rw-r--r--components/search_engines/search_engines_switches.cc13
-rw-r--r--components/search_engines/search_engines_switches.h14
-rw-r--r--components/search_engines/search_terms_data.cc18
-rw-r--r--components/search_engines/search_terms_data.h14
18 files changed, 189 insertions, 36 deletions
diff --git a/chrome/browser/autocomplete/autocomplete_provider_unittest.cc b/chrome/browser/autocomplete/autocomplete_provider_unittest.cc
index dc58fce..08a4852 100644
--- a/chrome/browser/autocomplete/autocomplete_provider_unittest.cc
+++ b/chrome/browser/autocomplete/autocomplete_provider_unittest.cc
@@ -22,10 +22,10 @@
#include "chrome/browser/search_engines/template_url.h"
#include "chrome/browser/search_engines/template_url_service.h"
#include "chrome/browser/search_engines/template_url_service_factory.h"
-#include "chrome/common/chrome_switches.h"
#include "chrome/test/base/testing_browser_process.h"
#include "chrome/test/base/testing_profile.h"
#include "components/metrics/proto/omnibox_event.pb.h"
+#include "components/search_engines/search_engines_switches.h"
#include "content/public/browser/notification_observer.h"
#include "content/public/browser/notification_registrar.h"
#include "content/public/browser/notification_source.h"
diff --git a/chrome/browser/autocomplete/history_url_provider.cc b/chrome/browser/autocomplete/history_url_provider.cc
index be8d744..e1320f6 100644
--- a/chrome/browser/autocomplete/history_url_provider.cc
+++ b/chrome/browser/autocomplete/history_url_provider.cc
@@ -284,14 +284,28 @@ class SearchTermsDataSnapshot : public SearchTermsData {
virtual base::string16 GetRlzParameterValue(
bool from_app_list) const OVERRIDE;
virtual std::string GetSearchClient() const OVERRIDE;
+ virtual bool EnableAnswersInSuggest() const OVERRIDE;
+ virtual bool IsShowingSearchTermsOnSearchResultsPages() const OVERRIDE;
+ virtual std::string InstantExtendedEnabledParam(
+ bool for_search) const OVERRIDE;
+ virtual std::string ForceInstantResultsParam(
+ bool for_prerender) const OVERRIDE;
virtual std::string NTPIsThemedParam() const OVERRIDE;
+ virtual std::string GoogleImageSearchSource() const OVERRIDE;
private:
std::string google_base_url_value_;
std::string application_locale_;
base::string16 rlz_parameter_value_;
std::string search_client_;
+ bool enable_answers_in_suggest_;
+ bool is_showing_search_terms_on_search_results_pages_;
+ std::string instant_extended_enabled_param_;
+ std::string instant_extended_enabled_param_for_search_;
+ std::string force_instant_results_param_;
+ std::string force_instant_results_param_for_prerender_;
std::string ntp_is_themed_param_;
+ std::string google_image_search_source_;
DISALLOW_COPY_AND_ASSIGN(SearchTermsDataSnapshot);
};
@@ -302,7 +316,20 @@ SearchTermsDataSnapshot::SearchTermsDataSnapshot(
application_locale_(search_terms_data.GetApplicationLocale()),
rlz_parameter_value_(search_terms_data.GetRlzParameterValue(false)),
search_client_(search_terms_data.GetSearchClient()),
- ntp_is_themed_param_(search_terms_data.NTPIsThemedParam()) {}
+ enable_answers_in_suggest_(search_terms_data.EnableAnswersInSuggest()),
+ is_showing_search_terms_on_search_results_pages_(
+ search_terms_data.IsShowingSearchTermsOnSearchResultsPages()),
+ instant_extended_enabled_param_(
+ search_terms_data.InstantExtendedEnabledParam(false)),
+ instant_extended_enabled_param_for_search_(
+ search_terms_data.InstantExtendedEnabledParam(true)),
+ force_instant_results_param_(
+ search_terms_data.ForceInstantResultsParam(false)),
+ force_instant_results_param_for_prerender_(
+ search_terms_data.ForceInstantResultsParam(true)),
+ ntp_is_themed_param_(search_terms_data.NTPIsThemedParam()),
+ google_image_search_source_(search_terms_data.GoogleImageSearchSource()) {
+}
SearchTermsDataSnapshot::~SearchTermsDataSnapshot() {
}
@@ -324,10 +351,34 @@ std::string SearchTermsDataSnapshot::GetSearchClient() const {
return search_client_;
}
+bool SearchTermsDataSnapshot::EnableAnswersInSuggest() const {
+ return enable_answers_in_suggest_;
+}
+
+bool SearchTermsDataSnapshot::IsShowingSearchTermsOnSearchResultsPages() const {
+ return is_showing_search_terms_on_search_results_pages_;
+}
+
+std::string SearchTermsDataSnapshot::InstantExtendedEnabledParam(
+ bool for_search) const {
+ return for_search ? instant_extended_enabled_param_ :
+ instant_extended_enabled_param_for_search_;
+}
+
+std::string SearchTermsDataSnapshot::ForceInstantResultsParam(
+ bool for_prerender) const {
+ return for_prerender ? force_instant_results_param_ :
+ force_instant_results_param_for_prerender_;
+}
+
std::string SearchTermsDataSnapshot::NTPIsThemedParam() const {
return ntp_is_themed_param_;
}
+std::string SearchTermsDataSnapshot::GoogleImageSearchSource() const {
+ return google_image_search_source_;
+}
+
// -----------------------------------------------------------------
// HistoryURLProvider
diff --git a/chrome/browser/autocomplete/keyword_provider_unittest.cc b/chrome/browser/autocomplete/keyword_provider_unittest.cc
index 4f396cf..7aa2f39 100644
--- a/chrome/browser/autocomplete/keyword_provider_unittest.cc
+++ b/chrome/browser/autocomplete/keyword_provider_unittest.cc
@@ -9,9 +9,9 @@
#include "chrome/browser/autocomplete/keyword_provider.h"
#include "chrome/browser/search_engines/template_url.h"
#include "chrome/browser/search_engines/template_url_service.h"
-#include "chrome/common/chrome_switches.h"
#include "chrome/test/base/testing_browser_process.h"
#include "components/metrics/proto/omnibox_event.pb.h"
+#include "components/search_engines/search_engines_switches.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "url/gurl.h"
diff --git a/chrome/browser/autocomplete/search_provider_unittest.cc b/chrome/browser/autocomplete/search_provider_unittest.cc
index 667f794..e80e6e7 100644
--- a/chrome/browser/autocomplete/search_provider_unittest.cc
+++ b/chrome/browser/autocomplete/search_provider_unittest.cc
@@ -39,6 +39,7 @@
#include "components/google/core/browser/google_switches.h"
#include "components/metrics/proto/omnibox_event.pb.h"
#include "components/search_engines/search_engine_type.h"
+#include "components/search_engines/search_engines_switches.h"
#include "components/signin/core/browser/signin_manager.h"
#include "components/sync_driver/pref_names.h"
#include "components/variations/entropy_provider.h"
diff --git a/chrome/browser/search/search_unittest.cc b/chrome/browser/search/search_unittest.cc
index be690d3..80ee842 100644
--- a/chrome/browser/search/search_unittest.cc
+++ b/chrome/browser/search/search_unittest.cc
@@ -25,6 +25,7 @@
#include "chrome/test/base/browser_with_test_window_test.h"
#include "chrome/test/base/ui_test_utils.h"
#include "components/google/core/browser/google_switches.h"
+#include "components/search_engines/search_engines_switches.h"
#include "components/variations/entropy_provider.h"
#include "content/public/browser/render_process_host.h"
#include "content/public/browser/render_view_host.h"
diff --git a/chrome/browser/search_engines/DEPS b/chrome/browser/search_engines/DEPS
new file mode 100644
index 0000000..c09cfcd
--- /dev/null
+++ b/chrome/browser/search_engines/DEPS
@@ -0,0 +1,7 @@
+specific_include_rules = {
+ "template_url(_unittest)?\.": [
+ "-chrome",
+ "-content",
+ "+chrome/browser/search_engines/template_url.h",
+ ],
+} \ No newline at end of file
diff --git a/chrome/browser/search_engines/template_url.cc b/chrome/browser/search_engines/template_url.cc
index 1bc9fae..5977a2d 100644
--- a/chrome/browser/search_engines/template_url.cc
+++ b/chrome/browser/search_engines/template_url.cc
@@ -20,11 +20,9 @@
#include "base/strings/string_util.h"
#include "base/strings/stringprintf.h"
#include "base/strings/utf_string_conversions.h"
-#include "chrome/browser/omnibox/omnibox_field_trial.h"
-#include "chrome/browser/search/search.h"
-#include "chrome/common/chrome_switches.h"
#include "components/google/core/browser/google_util.h"
#include "components/metrics/proto/omnibox_input_type.pb.h"
+#include "components/search_engines/search_engines_switches.h"
#include "components/search_engines/search_terms_data.h"
#include "extensions/common/constants.h"
#include "google_apis/google_api_keys.h"
@@ -173,11 +171,6 @@ bool IsTemplateParameterString(const std::string& param) {
(*(param.rbegin()) == kEndParameter);
}
-bool ShowingSearchTermsOnSRP() {
- return chrome::IsInstantExtendedAPIEnabled() &&
- chrome::IsQueryExtractionEnabled();
-}
-
} // namespace
@@ -240,8 +233,7 @@ TemplateURLRef::TemplateURLRef(TemplateURL* owner, Type type)
valid_(false),
supports_replacements_(false),
search_term_key_location_(url::Parsed::QUERY),
- prepopulated_(false),
- showing_search_terms_(ShowingSearchTermsOnSRP()) {
+ prepopulated_(false) {
DCHECK(owner_);
DCHECK_NE(INDEXED, type_);
}
@@ -254,8 +246,7 @@ TemplateURLRef::TemplateURLRef(TemplateURL* owner, size_t index_in_owner)
valid_(false),
supports_replacements_(false),
search_term_key_location_(url::Parsed::QUERY),
- prepopulated_(false),
- showing_search_terms_(ShowingSearchTermsOnSRP()) {
+ prepopulated_(false) {
DCHECK(owner_);
DCHECK_LT(index_in_owner_, owner_->URLCount());
}
@@ -613,8 +604,7 @@ bool TemplateURLRef::ParseParameter(size_t start,
} else if (parameter == kGoogleSearchFieldtrialParameter) {
replacements->push_back(Replacement(GOOGLE_SEARCH_FIELDTRIAL_GROUP, start));
} else if (parameter == kGoogleSearchVersion) {
- if (OmniboxFieldTrial::EnableAnswersInSuggest())
- url->insert(start, "gs_rn=42&");
+ replacements->push_back(Replacement(GOOGLE_SEARCH_VERSION, start));
} else if (parameter == kGoogleSessionToken) {
replacements->push_back(Replacement(GOOGLE_SESSION_TOKEN, start));
} else if (parameter == kGoogleSourceIdParameter) {
@@ -867,7 +857,7 @@ std::string TemplateURLRef::HandleReplacements(
break;
case GOOGLE_BOOKMARK_BAR_PINNED:
- if (showing_search_terms_) {
+ if (search_terms_data.IsShowingSearchTermsOnSearchResultsPages()) {
// Log whether the bookmark bar is pinned when the user is seeing
// InstantExtended on the SRP.
DCHECK(!i->is_post_param);
@@ -900,7 +890,7 @@ std::string TemplateURLRef::HandleReplacements(
case GOOGLE_FORCE_INSTANT_RESULTS:
DCHECK(!i->is_post_param);
HandleReplacement(std::string(),
- chrome::ForceInstantResultsParam(
+ search_terms_data.ForceInstantResultsParam(
search_terms_args.force_instant_results),
*i,
&url);
@@ -915,7 +905,8 @@ std::string TemplateURLRef::HandleReplacements(
case GOOGLE_INSTANT_EXTENDED_ENABLED:
DCHECK(!i->is_post_param);
HandleReplacement(std::string(),
- chrome::InstantExtendedEnabledParam(type_ == SEARCH),
+ search_terms_data.InstantExtendedEnabledParam(
+ type_ == SEARCH),
*i,
&url);
break;
@@ -1028,6 +1019,11 @@ std::string TemplateURLRef::HandleReplacements(
// url.insert(i->index, used_www ? "gcx=w&" : "gcx=c&");
break;
+ case GOOGLE_SEARCH_VERSION:
+ if (search_terms_data.EnableAnswersInSuggest())
+ HandleReplacement("gs_rn", "42", *i, &url);
+ break;
+
case GOOGLE_SESSION_TOKEN: {
std::string token = search_terms_args.session_token;
if (!token.empty())
diff --git a/chrome/browser/search_engines/template_url.h b/chrome/browser/search_engines/template_url.h
index 12084ab..8d909c9 100644
--- a/chrome/browser/search_engines/template_url.h
+++ b/chrome/browser/search_engines/template_url.h
@@ -303,6 +303,7 @@ class TemplateURLRef {
GOOGLE_RLZ,
GOOGLE_SEARCH_CLIENT,
GOOGLE_SEARCH_FIELDTRIAL_GROUP,
+ GOOGLE_SEARCH_VERSION,
GOOGLE_SESSION_TOKEN,
GOOGLE_SUGGEST_CLIENT,
GOOGLE_SUGGEST_REQUEST_ID,
@@ -431,10 +432,6 @@ class TemplateURLRef {
// Whether the contained URL is a pre-populated URL.
bool prepopulated_;
- // Whether search terms are shown in the omnibox on search results pages.
- // This is kept as a member so it can be overridden by tests.
- bool showing_search_terms_;
-
DISALLOW_COPY_AND_ASSIGN(TemplateURLRef);
};
diff --git a/chrome/browser/search_engines/template_url_unittest.cc b/chrome/browser/search_engines/template_url_unittest.cc
index 7f3abd1..0a9a343 100644
--- a/chrome/browser/search_engines/template_url_unittest.cc
+++ b/chrome/browser/search_engines/template_url_unittest.cc
@@ -8,9 +8,9 @@
#include "base/strings/string_util.h"
#include "base/strings/utf_string_conversions.h"
#include "chrome/browser/search_engines/template_url.h"
-#include "chrome/common/chrome_switches.h"
#include "components/metrics/proto/omnibox_event.pb.h"
#include "components/metrics/proto/omnibox_input_type.pb.h"
+#include "components/search_engines/search_engines_switches.h"
#include "components/search_engines/search_terms_data.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -28,6 +28,8 @@ class TestSearchTermsData : public SearchTermsData {
bool from_app_list) const OVERRIDE;
virtual std::string GetSearchClient() const OVERRIDE;
virtual std::string GoogleImageSearchSource() const OVERRIDE;
+ virtual bool EnableAnswersInSuggest() const OVERRIDE;
+ virtual bool IsShowingSearchTermsOnSearchResultsPages() const OVERRIDE;
void set_google_base_url(const std::string& google_base_url) {
google_base_url_ = google_base_url;
@@ -35,16 +37,26 @@ class TestSearchTermsData : public SearchTermsData {
void set_search_client(const std::string& search_client) {
search_client_ = search_client;
}
+ void set_enable_answers_in_suggest(bool enable_answers_in_suggest) {
+ enable_answers_in_suggest_ = enable_answers_in_suggest;
+ }
+ void set_is_showing_search_terms_on_search_results_pages(bool value) {
+ is_showing_search_terms_on_search_results_pages_ = value;
+ }
private:
std::string google_base_url_;
std::string search_client_;
+ bool enable_answers_in_suggest_;
+ bool is_showing_search_terms_on_search_results_pages_;
DISALLOW_COPY_AND_ASSIGN(TestSearchTermsData);
};
TestSearchTermsData::TestSearchTermsData(const std::string& google_base_url)
- : google_base_url_(google_base_url) {
+ : google_base_url_(google_base_url),
+ enable_answers_in_suggest_(false),
+ is_showing_search_terms_on_search_results_pages_(false) {
}
std::string TestSearchTermsData::GoogleBaseURLValue() const {
@@ -65,6 +77,14 @@ std::string TestSearchTermsData::GoogleImageSearchSource() const {
return "google_image_search_source";
}
+bool TestSearchTermsData::EnableAnswersInSuggest() const {
+ return enable_answers_in_suggest_;
+}
+
+bool TestSearchTermsData::IsShowingSearchTermsOnSearchResultsPages() const {
+ return is_showing_search_terms_on_search_results_pages_;
+}
+
// TemplateURLTest ------------------------------------------------------------
class TemplateURLTest : public testing::Test {
@@ -1375,19 +1395,19 @@ TEST_F(TemplateURLTest, ReflectsBookmarkBarPinned) {
TemplateURLRef::SearchTermsArgs search_terms_args(ASCIIToUTF16("foo"));
// Do not add the param when InstantExtended is suppressed on SRPs.
- url.url_ref_.showing_search_terms_ = false;
+ search_terms_data_.set_is_showing_search_terms_on_search_results_pages(false);
std::string result = url.url_ref().ReplaceSearchTerms(search_terms_args,
search_terms_data_);
EXPECT_EQ("http://www.google.com/?q=foo", result);
// Add the param when InstantExtended is not suppressed on SRPs.
- url.url_ref_.showing_search_terms_ = true;
+ search_terms_data_.set_is_showing_search_terms_on_search_results_pages(true);
search_terms_args.bookmark_bar_pinned = false;
result = url.url_ref().ReplaceSearchTerms(search_terms_args,
search_terms_data_);
EXPECT_EQ("http://www.google.com/?bmbp=0&q=foo", result);
- url.url_ref_.showing_search_terms_ = true;
+ search_terms_data_.set_is_showing_search_terms_on_search_results_pages(true);
search_terms_args.bookmark_bar_pinned = true;
result = url.url_ref().ReplaceSearchTerms(search_terms_args,
search_terms_data_);
@@ -1405,8 +1425,7 @@ TEST_F(TemplateURLTest, AnswersHasVersion) {
search_terms_data_);
EXPECT_EQ("http://bar/search?q=foo&xssi=t", result);
- CommandLine::ForCurrentProcess()->AppendSwitch(
- switches::kEnableAnswersInSuggest);
+ search_terms_data_.set_enable_answers_in_suggest(true);
TemplateURL url2(data);
result = url2.url_ref().ReplaceSearchTerms(search_terms_args,
search_terms_data_);
diff --git a/chrome/browser/search_engines/ui_thread_search_terms_data.cc b/chrome/browser/search_engines/ui_thread_search_terms_data.cc
index 248774d..5d6a81d 100644
--- a/chrome/browser/search_engines/ui_thread_search_terms_data.cc
+++ b/chrome/browser/search_engines/ui_thread_search_terms_data.cc
@@ -125,6 +125,25 @@ std::string UIThreadSearchTermsData::GetSuggestRequestIdentifier() const {
#endif
}
+bool UIThreadSearchTermsData::EnableAnswersInSuggest() const {
+ return OmniboxFieldTrial::EnableAnswersInSuggest();
+}
+
+bool UIThreadSearchTermsData::IsShowingSearchTermsOnSearchResultsPages() const {
+ return chrome::IsInstantExtendedAPIEnabled() &&
+ chrome::IsQueryExtractionEnabled();
+}
+
+std::string UIThreadSearchTermsData::InstantExtendedEnabledParam(
+ bool for_search) const {
+ return chrome::InstantExtendedEnabledParam(for_search);
+}
+
+std::string UIThreadSearchTermsData::ForceInstantResultsParam(
+ bool for_prerender) const {
+ return chrome::ForceInstantResultsParam(for_prerender);
+}
+
std::string UIThreadSearchTermsData::NTPIsThemedParam() const {
DCHECK(!BrowserThread::IsThreadInitialized(BrowserThread::UI) ||
BrowserThread::CurrentlyOn(BrowserThread::UI));
diff --git a/chrome/browser/search_engines/ui_thread_search_terms_data.h b/chrome/browser/search_engines/ui_thread_search_terms_data.h
index 7547bde..d407b12 100644
--- a/chrome/browser/search_engines/ui_thread_search_terms_data.h
+++ b/chrome/browser/search_engines/ui_thread_search_terms_data.h
@@ -28,6 +28,12 @@ class UIThreadSearchTermsData : public SearchTermsData {
virtual std::string GetSearchClient() const OVERRIDE;
virtual std::string GetSuggestClient() const OVERRIDE;
virtual std::string GetSuggestRequestIdentifier() const OVERRIDE;
+ virtual bool EnableAnswersInSuggest() const OVERRIDE;
+ virtual bool IsShowingSearchTermsOnSearchResultsPages() const OVERRIDE;
+ virtual std::string InstantExtendedEnabledParam(
+ bool for_search) const OVERRIDE;
+ virtual std::string ForceInstantResultsParam(
+ bool for_prerender) const OVERRIDE;
virtual std::string NTPIsThemedParam() const OVERRIDE;
virtual std::string GoogleImageSearchSource() const OVERRIDE;
diff --git a/chrome/common/chrome_switches.cc b/chrome/common/chrome_switches.cc
index 516847f..33a57a0 100644
--- a/chrome/common/chrome_switches.cc
+++ b/chrome/common/chrome_switches.cc
@@ -686,10 +686,6 @@ const char kExtensionsNotWebstore[] = "extensions-not-webstore";
// Frequency in seconds for Extensions auto-update.
const char kExtensionsUpdateFrequency[] = "extensions-update-frequency";
-// Additional query params to insert in the search and instant URLs. Useful for
-// testing.
-const char kExtraSearchQueryParams[] = "extra-search-query-params";
-
// Fakes the channel of the browser for purposes of Variations filtering. This
// is to be used for testing only. Possible values are "stable", "beta", "dev"
// and "canary". Note that this only applies if the browser's reported channel
diff --git a/chrome/common/chrome_switches.h b/chrome/common/chrome_switches.h
index 83410ba..9d5b0e3 100644
--- a/chrome/common/chrome_switches.h
+++ b/chrome/common/chrome_switches.h
@@ -200,7 +200,6 @@ extern const char kExtensionContentVerification[];
extern const char kExtensionsInstallVerification[];
extern const char kExtensionsNotWebstore[];
extern const char kExtensionsUpdateFrequency[];
-extern const char kExtraSearchQueryParams[];
extern const char kFakeVariationsChannel[];
extern const char kFastStart[];
extern const char kFlagSwitchesBegin[];
diff --git a/components/search_engines.gypi b/components/search_engines.gypi
index 5d6e409..4226f94 100644
--- a/components/search_engines.gypi
+++ b/components/search_engines.gypi
@@ -19,6 +19,8 @@
'search_engines/search_engine_type.h',
'search_engines/search_engines_pref_names.cc',
'search_engines/search_engines_pref_names.h',
+ 'search_engines/search_engines_switches.cc',
+ 'search_engines/search_engines_switches.h',
'search_engines/search_terms_data.cc',
'search_engines/search_terms_data.h',
'search_engines/template_url_data.cc',
diff --git a/components/search_engines/search_engines_switches.cc b/components/search_engines/search_engines_switches.cc
new file mode 100644
index 0000000..190662c
--- /dev/null
+++ b/components/search_engines/search_engines_switches.cc
@@ -0,0 +1,13 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/search_engines/search_engines_switches.h"
+
+namespace switches {
+
+// Additional query params to insert in the search and instant URLs. Useful for
+// testing.
+const char kExtraSearchQueryParams[] = "extra-search-query-params";
+
+} // namespace switches
diff --git a/components/search_engines/search_engines_switches.h b/components/search_engines/search_engines_switches.h
new file mode 100644
index 0000000..42b9253
--- /dev/null
+++ b/components/search_engines/search_engines_switches.h
@@ -0,0 +1,14 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_SEARCH_ENGINES_SEARCH_ENGINES_SWITCHES_H_
+#define COMPONENTS_SEARCH_ENGINES_SEARCH_ENGINES_SWITCHES_H_
+
+namespace switches {
+
+extern const char kExtraSearchQueryParams[];
+
+} // namespace switches
+
+#endif // COMPONENTS_SEARCH_ENGINES_SEARCH_ENGINES_SWITCHES_H_
diff --git a/components/search_engines/search_terms_data.cc b/components/search_engines/search_terms_data.cc
index c6c72ba..79daac0e 100644
--- a/components/search_engines/search_terms_data.cc
+++ b/components/search_engines/search_terms_data.cc
@@ -58,6 +58,24 @@ std::string SearchTermsData::GetSuggestRequestIdentifier() const {
return std::string();
}
+bool SearchTermsData::EnableAnswersInSuggest() const {
+ return false;
+}
+
+bool SearchTermsData::IsShowingSearchTermsOnSearchResultsPages() const {
+ return false;
+}
+
+std::string SearchTermsData::InstantExtendedEnabledParam(
+ bool for_search) const {
+ return std::string();
+}
+
+std::string SearchTermsData::ForceInstantResultsParam(
+ bool for_prerender) const {
+ return std::string();
+}
+
std::string SearchTermsData::NTPIsThemedParam() const {
return std::string();
}
diff --git a/components/search_engines/search_terms_data.h b/components/search_engines/search_terms_data.h
index a2ff8ed..1b70a10 100644
--- a/components/search_engines/search_terms_data.h
+++ b/components/search_engines/search_terms_data.h
@@ -49,6 +49,20 @@ class SearchTermsData {
// This implementation returns the empty string.
virtual std::string GetSuggestRequestIdentifier() const;
+ // Returns true if the AnswersInSuggest feature should be enabled.
+ virtual bool EnableAnswersInSuggest() const;
+
+ // Returns true if search terms are shown in the omnibox on search results
+ // pages.
+ virtual bool IsShowingSearchTermsOnSearchResultsPages() const;
+
+ // Returns a string indicating whether InstantExtended is enabled.
+ virtual std::string InstantExtendedEnabledParam(bool for_search) const;
+
+ // Returns a string that will cause the search results page to update
+ // incrementally.
+ virtual std::string ForceInstantResultsParam(bool for_prerender) const;
+
// Returns a string indicating whether a non-default theme is active,
// suitable for adding as a query string param to the homepage. This only
// applies if Instant Extended is enabled. Returns an empty string otherwise.