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 COMPONENTS_SEARCH_ENGINES_SEARCH_TERMS_DATA_H_ 6 #define COMPONENTS_SEARCH_ENGINES_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 14 // All data needed by TemplateURLRef::ReplaceSearchTerms which typically may 15 // only be accessed on the UI thread. 16 class SearchTermsData { 17 public: 18 SearchTermsData(); 19 virtual ~SearchTermsData(); 20 21 // Returns the value to use for replacements of type GOOGLE_BASE_URL. This 22 // implementation simply returns the default value. 23 virtual std::string GoogleBaseURLValue() const; 24 25 // Returns the value for the GOOGLE_BASE_SUGGEST_URL term. This 26 // implementation simply returns the default value. 27 std::string GoogleBaseSuggestURLValue() const; 28 29 // Returns the locale used by the application. This implementation returns 30 // "en" and thus should be overridden where the result is actually meaningful. 31 virtual std::string GetApplicationLocale() const; 32 33 // Returns the value for the Chrome Omnibox rlz. This implementation returns 34 // the empty string. 35 virtual base::string16 GetRlzParameterValue(bool from_app_list) const; 36 37 // The optional client parameter passed with Google search requests. This 38 // implementation returns the empty string. 39 virtual std::string GetSearchClient() const; 40 41 // The suggest client parameter ("client") passed with Google suggest 42 // requests. See GetSuggestRequestIdentifier() for more details. 43 // This implementation returns the empty string. 44 virtual std::string GetSuggestClient() const; 45 46 // The suggest request identifier parameter ("gs_ri") passed with Google 47 // suggest requests. Along with suggestclient (See GetSuggestClient()), 48 // this parameter controls what suggestion results are returned. 49 // This implementation returns the empty string. 50 virtual std::string GetSuggestRequestIdentifier() const; 51 52 // Returns true if the AnswersInSuggest feature should be enabled. 53 virtual bool EnableAnswersInSuggest() const; 54 55 // Returns true if search terms are shown in the omnibox on search results 56 // pages. 57 virtual bool IsShowingSearchTermsOnSearchResultsPages() const; 58 59 // Returns a string indicating whether InstantExtended is enabled. 60 virtual std::string InstantExtendedEnabledParam(bool for_search) const; 61 62 // Returns a string that will cause the search results page to update 63 // incrementally. 64 virtual std::string ForceInstantResultsParam(bool for_prerender) const; 65 66 // Returns the start-edge margin of the omnibox in pixels. 67 virtual int OmniboxStartMargin() const; 68 69 // Returns a string indicating whether a non-default theme is active, 70 // suitable for adding as a query string param to the homepage. This only 71 // applies if Instant Extended is enabled. Returns an empty string otherwise. 72 // Determining this requires accessing the Profile, so this can only ever be 73 // non-empty for UIThreadSearchTermsData. 74 virtual std::string NTPIsThemedParam() const; 75 76 // Returns the value to use for replacements of type 77 // GOOGLE_IMAGE_SEARCH_SOURCE. 78 virtual std::string GoogleImageSearchSource() const; 79 80 private: 81 DISALLOW_COPY_AND_ASSIGN(SearchTermsData); 82 }; 83 84 #endif // COMPONENTS_SEARCH_ENGINES_SEARCH_TERMS_DATA_H_ 85