1 // Copyright 2014 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef CHROME_BROWSER_SEARCH_ENGINES_UI_THREAD_SEARCH_TERMS_DATA_H_ 6 #define CHROME_BROWSER_SEARCH_ENGINES_UI_THREAD_SEARCH_TERMS_DATA_H_ 7 8 #include <string> 9 10 #include "base/basictypes.h" 11 #include "base/compiler_specific.h" 12 #include "base/strings/string16.h" 13 #include "components/search_engines/search_terms_data.h" 14 15 class Profile; 16 17 // Implementation of SearchTermsData that is only usable on the UI thread. 18 class UIThreadSearchTermsData : public SearchTermsData { 19 public: 20 // If |profile_| is NULL, the Google base URL accessors will return default 21 // values, and NTPIsThemedParam() will return an empty string. 22 explicit UIThreadSearchTermsData(Profile* profile); 23 24 virtual std::string GoogleBaseURLValue() const OVERRIDE; 25 virtual std::string GetApplicationLocale() const OVERRIDE; 26 virtual base::string16 GetRlzParameterValue(bool from_app_list) const 27 OVERRIDE; 28 virtual std::string GetSearchClient() const OVERRIDE; 29 virtual std::string GetSuggestClient() const OVERRIDE; 30 virtual std::string GetSuggestRequestIdentifier() const OVERRIDE; 31 virtual bool EnableAnswersInSuggest() const OVERRIDE; 32 virtual bool IsShowingSearchTermsOnSearchResultsPages() const OVERRIDE; 33 virtual std::string InstantExtendedEnabledParam( 34 bool for_search) const OVERRIDE; 35 virtual std::string ForceInstantResultsParam( 36 bool for_prerender) const OVERRIDE; 37 virtual int OmniboxStartMargin() const OVERRIDE; 38 virtual std::string NTPIsThemedParam() const OVERRIDE; 39 virtual std::string GoogleImageSearchSource() const OVERRIDE; 40 41 // Used by tests to override the value for the Google base URL. Passing the 42 // empty string cancels this override. 43 static void SetGoogleBaseURL(const std::string& base_url); 44 45 private: 46 static std::string* google_base_url_; 47 Profile* profile_; 48 49 DISALLOW_COPY_AND_ASSIGN(UIThreadSearchTermsData); 50 }; 51 52 #endif // CHROME_BROWSER_SEARCH_ENGINES_UI_THREAD_SEARCH_TERMS_DATA_H_ 53