| Index: chrome/browser/search_engines/default_search_manager.h
|
| diff --git a/chrome/browser/search_engines/default_search_manager.h b/chrome/browser/search_engines/default_search_manager.h
|
| index c8f08a4c30acb983bb88f40c7e22fd5e1d93a7ef..661cbc39a21a8f641927b5eff50bccd816e419eb 100644
|
| --- a/chrome/browser/search_engines/default_search_manager.h
|
| +++ b/chrome/browser/search_engines/default_search_manager.h
|
| @@ -5,6 +5,7 @@
|
| #ifndef CHROME_BROWSER_SEARCH_ENGINES_DEFAULT_SEARCH_MANAGER_H_
|
| #define CHROME_BROWSER_SEARCH_ENGINES_DEFAULT_SEARCH_MANAGER_H_
|
|
|
| +#include "base/callback.h"
|
| #include "base/macros.h"
|
| #include "base/memory/scoped_ptr.h"
|
| #include "base/prefs/pref_change_registrar.h"
|
| @@ -27,9 +28,10 @@ struct TemplateURLData;
|
|
|
| // DefaultSearchManager handles the loading and writing of the user's default
|
| // search engine selection to and from prefs.
|
| -
|
| class DefaultSearchManager {
|
| public:
|
| + static const char kDefaultSearchProviderDataPrefName[];
|
| +
|
| static const char kID[];
|
| static const char kShortName[];
|
| static const char kKeyword[];
|
| @@ -68,7 +70,11 @@ class DefaultSearchManager {
|
| FROM_POLICY,
|
| };
|
|
|
| - explicit DefaultSearchManager(PrefService* pref_service);
|
| + typedef base::Callback<void(const TemplateURLData*, Source)> ObserverCallback;
|
| +
|
| + DefaultSearchManager(PrefService* pref_service,
|
| + const ObserverCallback& change_observer);
|
| +
|
| ~DefaultSearchManager();
|
|
|
| // Register prefs needed for tracking the default search provider.
|
| @@ -78,16 +84,19 @@ class DefaultSearchManager {
|
| static void AddPrefValueToMap(base::DictionaryValue* value,
|
| PrefValueMap* pref_value_map);
|
|
|
| - // Gets a pointer to the current DefaultSearchEngine. If NULL, indicates that
|
| - // Default Search is explicitly disabled.
|
| - TemplateURLData* GetDefaultSearchEngine() const;
|
| + // Gets a pointer to the current Default Search Engine. If NULL, indicates
|
| + // that Default Search is explicitly disabled. |source|, if not NULL, will be
|
| + // filled in with the source of the result.
|
| + TemplateURLData* GetDefaultSearchEngine(Source* source) const;
|
| +
|
| + // Gets the source of the current Default Search Engine value.
|
| + Source GetDefaultSearchEngineSource() const;
|
|
|
| // Write default search provider data to |pref_service_|.
|
| void SetUserSelectedDefaultSearchEngine(const TemplateURLData& data);
|
|
|
| - // Override the default search provider with an extension. Takes ownership of
|
| - // |data|.
|
| - void SetExtensionControlledDefaultSearchEngine(TemplateURLData* data);
|
| + // Override the default search provider with an extension.
|
| + void SetExtensionControlledDefaultSearchEngine(const TemplateURLData& data);
|
|
|
| // Clear the extension-provided default search engine. Does not explicitly
|
| // disable Default Search.The new current default search engine will be
|
| @@ -99,28 +108,36 @@ class DefaultSearchManager {
|
| // engine will be defined by policy, extensions, or pre-populated data.
|
| void ClearUserSelectedDefaultSearchEngine();
|
|
|
| - // Determines the source of the current default search provider value.
|
| - Source GetDefaultSearchEngineSource() const;
|
| -
|
| private:
|
| - // Handle changes to kDefaultSearchProviderData pref. This includes sync and
|
| - // policy changes.
|
| + // Handles changes to kDefaultSearchProviderData pref. This includes sync and
|
| + // policy changes. Calls LoadDefaultSearchEngineFromPrefs() and
|
| + // NotifyObserver() if the effective DSE might have changed.
|
| void OnDefaultSearchPrefChanged();
|
|
|
| - // Handle changes to kSearchProviderOverrides pref, and update necessary
|
| - // members.
|
| + // Handles changes to kSearchProviderOverrides pref. Calls
|
| + // LoadPrepopulatedDefaultSearch() and NotifyObserver() if the effective DSE
|
| + // might have changed.
|
| void OnOverridesPrefChanged();
|
|
|
| - // Update |default_search_controlled_by_policy_|.
|
| - void UpdatePolicyStatus();
|
| -
|
| - // Merge data from prefs with prepopulated data.
|
| + // Updates |prefs_default_search_| with values from its corresponding
|
| + // pre-populated search provider record, if any.
|
| void MergePrefsDataWithPrepopulated();
|
|
|
| - // Read default search provider data from |pref_service_|.
|
| - bool ReadDefaultSearchEngineFromPrefs(TemplateURLData** data);
|
| + // Reads default search provider data from |pref_service_|, updating
|
| + // |prefs_default_search_| and |default_search_controlled_by_policy_|.
|
| + // Invokes MergePrefsDataWithPrepopulated().
|
| + void LoadDefaultSearchEngineFromPrefs();
|
| +
|
| + // Reads pre-populated search providers, which may be built-in or overridden
|
| + // by kSearchProviderOverrides. Updates |fallback_default_search_|. Invoke
|
| + // MergePrefsDataWithPrepopulated().
|
| + void LoadPrepopulatedDefaultSearch();
|
| +
|
| + // Invokes |change_observer_| if it is not NULL.
|
| + void NotifyObserver();
|
|
|
| PrefService* pref_service_;
|
| + const ObserverCallback change_observer_;
|
| PrefChangeRegistrar pref_change_registrar_;
|
|
|
| scoped_ptr<TemplateURLData> fallback_default_search_;
|
|
|