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 15class Profile; 16 17// Implementation of SearchTermsData that is only usable on the UI thread. 18class 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