[email protected] | 0915b35 | 2014-06-25 19:58:14 | [diff] [blame] | 1 | // Copyright 2014 The Chromium Authors. All rights reserved. |
[email protected] | d82443b | 2009-01-15 19:54:56 | [diff] [blame] | 2 | // Use of this source code is governed by a BSD-style license that can be |
3 | // found in the LICENSE file. | ||||
4 | |||||
[email protected] | 0915b35 | 2014-06-25 19:58:14 | [diff] [blame] | 5 | #ifndef COMPONENTS_SEARCH_ENGINES_TEMPLATE_URL_PREPOPULATE_DATA_H_ |
6 | #define COMPONENTS_SEARCH_ENGINES_TEMPLATE_URL_PREPOPULATE_DATA_H_ | ||||
[email protected] | d82443b | 2009-01-15 19:54:56 | [diff] [blame] | 7 | |
[email protected] | d43f86e | 2011-05-16 01:22:46 | [diff] [blame] | 8 | #include <stddef.h> |
dcheng | d967d950 | 2016-04-21 22:36:51 | [diff] [blame^] | 9 | |
10 | #include <memory> | ||||
[email protected] | 333808db | 2011-11-21 19:19:56 | [diff] [blame] | 11 | #include <string> |
[email protected] | d82443b | 2009-01-15 19:54:56 | [diff] [blame] | 12 | #include <vector> |
13 | |||||
[email protected] | e937a970 | 2013-10-03 22:59:43 | [diff] [blame] | 14 | #include "base/memory/scoped_vector.h" |
[email protected] | 24a555b6 | 2013-06-10 22:01:17 | [diff] [blame] | 15 | #include "base/strings/string16.h" |
[email protected] | f92b15b | 2014-06-12 04:16:18 | [diff] [blame] | 16 | #include "components/search_engines/search_engine_type.h" |
[email protected] | 623de74f | 2012-03-14 21:36:02 | [diff] [blame] | 17 | |
[email protected] | 258ecdb | 2010-10-19 05:02:54 | [diff] [blame] | 18 | class GURL; |
[email protected] | d82443b | 2009-01-15 19:54:56 | [diff] [blame] | 19 | class PrefService; |
[email protected] | ce7ee5f | 2014-06-16 23:41:19 | [diff] [blame] | 20 | class SearchTermsData; |
[email protected] | d82443b | 2009-01-15 19:54:56 | [diff] [blame] | 21 | class TemplateURL; |
[email protected] | c6dea6b | 2014-04-30 18:06:04 | [diff] [blame] | 22 | struct TemplateURLData; |
[email protected] | d82443b | 2009-01-15 19:54:56 | [diff] [blame] | 23 | |
[email protected] | 443e931 | 2013-05-06 06:17:34 | [diff] [blame] | 24 | namespace user_prefs { |
25 | class PrefRegistrySyncable; | ||||
26 | } | ||||
27 | |||||
[email protected] | d82443b | 2009-01-15 19:54:56 | [diff] [blame] | 28 | namespace TemplateURLPrepopulateData { |
29 | |||||
fdoray | 95b217e | 2015-11-15 03:03:33 | [diff] [blame] | 30 | struct PrepopulatedEngine; |
31 | |||||
[email protected] | 542bce32 | 2011-10-10 01:18:11 | [diff] [blame] | 32 | extern const int kMaxPrepopulatedEngineID; |
33 | |||||
[email protected] | 37ca3fe0 | 2013-07-05 15:32:44 | [diff] [blame] | 34 | void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry); |
[email protected] | d82443b | 2009-01-15 19:54:56 | [diff] [blame] | 35 | |
36 | // Returns the current version of the prepopulate data, so callers can know when | ||||
[email protected] | af4d764 | 2010-07-13 21:57:18 | [diff] [blame] | 37 | // they need to re-merge. If the prepopulate data comes from the preferences |
38 | // file then it returns the version specified there. | ||||
39 | int GetDataVersion(PrefService* prefs); | ||||
[email protected] | d82443b | 2009-01-15 19:54:56 | [diff] [blame] | 40 | |
[email protected] | e937a970 | 2013-10-03 22:59:43 | [diff] [blame] | 41 | // Loads the set of TemplateURLs from the prepopulate data. On return, |
[email protected] | d82443b | 2009-01-15 19:54:56 | [diff] [blame] | 42 | // |default_search_provider_index| is set to the index of the default search |
43 | // provider. | ||||
[email protected] | c6dea6b | 2014-04-30 18:06:04 | [diff] [blame] | 44 | ScopedVector<TemplateURLData> GetPrepopulatedEngines( |
45 | PrefService* prefs, | ||||
[email protected] | 64cf60c1 | 2014-03-10 21:53:42 | [diff] [blame] | 46 | size_t* default_search_provider_index); |
[email protected] | d82443b | 2009-01-15 19:54:56 | [diff] [blame] | 47 | |
fdoray | 95b217e | 2015-11-15 03:03:33 | [diff] [blame] | 48 | // Returns a TemplateURLData for the specified prepopulated engine. |
dcheng | d967d950 | 2016-04-21 22:36:51 | [diff] [blame^] | 49 | std::unique_ptr<TemplateURLData> MakeTemplateURLDataFromPrepopulatedEngine( |
fdoray | 95b217e | 2015-11-15 03:03:33 | [diff] [blame] | 50 | const PrepopulatedEngine& engine); |
51 | |||||
[email protected] | 4a40facd | 2013-05-29 14:44:56 | [diff] [blame] | 52 | // Removes prepopulated engines and their version stored in user prefs. |
[email protected] | c6dea6b | 2014-04-30 18:06:04 | [diff] [blame] | 53 | void ClearPrepopulatedEnginesInPrefs(PrefService* prefs); |
[email protected] | 4a40facd | 2013-05-29 14:44:56 | [diff] [blame] | 54 | |
[email protected] | c6dea6b | 2014-04-30 18:06:04 | [diff] [blame] | 55 | // Returns the default search provider specified by the prepopulate data, which |
56 | // may be NULL. | ||||
57 | // If |prefs| is NULL, any search provider overrides from the preferences are | ||||
[email protected] | 623de74f | 2012-03-14 21:36:02 | [diff] [blame] | 58 | // not used. |
dcheng | d967d950 | 2016-04-21 22:36:51 | [diff] [blame^] | 59 | std::unique_ptr<TemplateURLData> GetPrepopulatedDefaultSearch( |
60 | PrefService* prefs); | ||||
[email protected] | b6fd1fa7 | 2010-10-05 23:49:31 | [diff] [blame] | 61 | |
[email protected] | 628392f | 2013-08-16 00:34:45 | [diff] [blame] | 62 | // Returns the type of the provided engine, or SEARCH_ENGINE_OTHER if no engines |
63 | // match. This checks the TLD+1 for the most part, but will report the type as | ||||
64 | // SEARCH_ENGINE_GOOGLE for any hostname that causes | ||||
65 | // google_util::IsGoogleHostname() to return true. | ||||
[email protected] | fe655231 | 2012-06-12 04:59:59 | [diff] [blame] | 66 | // |
67 | // NOTE: Must be called on the UI thread. | ||||
[email protected] | ce7ee5f | 2014-06-16 23:41:19 | [diff] [blame] | 68 | SearchEngineType GetEngineType(const TemplateURL& template_url, |
69 | const SearchTermsData& search_terms_data); | ||||
[email protected] | 333808db | 2011-11-21 19:19:56 | [diff] [blame] | 70 | |
[email protected] | 6fc30f0 | 2013-08-20 19:55:16 | [diff] [blame] | 71 | // Like the above, but takes a GURL which is expected to represent a search URL. |
72 | // This may be called on any thread. | ||||
73 | SearchEngineType GetEngineType(const GURL& url); | ||||
74 | |||||
sdefresne | 71c91039 | 2015-05-20 09:14:39 | [diff] [blame] | 75 | // Returns the identifier for the user current country. Used to update the list |
76 | // of search engines when user switches device region settings. For use on iOS | ||||
77 | // only. | ||||
78 | // TODO(ios): Once user can customize search engines ( http://crbug.com/153047 ) | ||||
79 | // this declaration should be removed and the definition in the .cc file be | ||||
80 | // moved back to the anonymous namespace. | ||||
81 | int GetCurrentCountryID(); | ||||
82 | |||||
[email protected] | d82443b | 2009-01-15 19:54:56 | [diff] [blame] | 83 | } // namespace TemplateURLPrepopulateData |
84 | |||||
[email protected] | 0915b35 | 2014-06-25 19:58:14 | [diff] [blame] | 85 | #endif // COMPONENTS_SEARCH_ENGINES_TEMPLATE_URL_PREPOPULATE_DATA_H_ |