Chromium Code Reviews| Index: components/search_engines/default_search_manager.cc |
| diff --git a/components/search_engines/default_search_manager.cc b/components/search_engines/default_search_manager.cc |
| index f7b4740deb125b1fd32f2b32babc218339475b97..1a7f73b5e0887c78a3a778af3f4b2637954846c2 100644 |
| --- a/components/search_engines/default_search_manager.cc |
| +++ b/components/search_engines/default_search_manager.cc |
| @@ -15,7 +15,6 @@ |
| #include "base/compiler_specific.h" |
| #include "base/i18n/case_conversion.h" |
| #include "base/logging.h" |
| -#include "base/strings/string_number_conversions.h" |
| #include "base/strings/string_split.h" |
| #include "base/strings/string_util.h" |
| #include "base/strings/utf_string_conversions.h" |
| @@ -140,7 +139,6 @@ TemplateURLData* DefaultSearchManager::GetDefaultSearchEngine( |
| *source = FROM_USER; |
| return prefs_default_search_.get(); |
| } |
| - |
| if (source) |
| *source = FROM_FALLBACK; |
| return g_fallback_search_engines_disabled ? |
| @@ -167,20 +165,6 @@ void DefaultSearchManager::SetUserSelectedDefaultSearchEngine( |
| *TemplateURLDataToDictionary(data)); |
| } |
| -void DefaultSearchManager::SetExtensionControlledDefaultSearchEngine( |
| - const TemplateURLData& data) { |
| - extension_default_search_.reset(new TemplateURLData(data)); |
| - if (GetDefaultSearchEngineSource() == FROM_EXTENSION) |
| - NotifyObserver(); |
| -} |
| - |
| -void DefaultSearchManager::ClearExtensionControlledDefaultSearchEngine() { |
| - Source old_source = GetDefaultSearchEngineSource(); |
| - extension_default_search_.reset(); |
| - if (old_source == FROM_EXTENSION) |
| - NotifyObserver(); |
| -} |
| - |
| void DefaultSearchManager::ClearUserSelectedDefaultSearchEngine() { |
| if (pref_service_) { |
| pref_service_->ClearPref(kDefaultSearchProviderDataPrefName); |
| @@ -194,10 +178,10 @@ void DefaultSearchManager::OnDefaultSearchPrefChanged() { |
| Source source = GetDefaultSearchEngineSource(); |
|
Peter Kasting
2016/12/22 20:49:03
Nit: I found this function unclear for a while unt
Alexander Yashkin
2016/12/23 19:44:08
Done, much clearer.
|
| LoadDefaultSearchEngineFromPrefs(); |
| - // If we were/are FROM_USER or FROM_POLICY the effective DSE may have changed. |
| - if (source != FROM_USER && source != FROM_POLICY) |
| + if (source == FROM_FALLBACK) |
| source = GetDefaultSearchEngineSource(); |
| - if (source == FROM_USER || source == FROM_POLICY) |
| + // The effective DSE may have changed if it was/become non fallback. |
| + if (source != FROM_FALLBACK) |
| NotifyObserver(); |
| } |
| @@ -246,6 +230,7 @@ void DefaultSearchManager::LoadDefaultSearchEngineFromPrefs() { |
| return; |
| prefs_default_search_.reset(); |
| + extension_default_search_.reset(); |
| const PrefService::Preference* pref = |
| pref_service_->FindPreference(kDefaultSearchProviderDataPrefName); |
| DCHECK(pref); |
| @@ -267,8 +252,13 @@ void DefaultSearchManager::LoadDefaultSearchEngineFromPrefs() { |
| if (!turl_data) |
| return; |
| - prefs_default_search_ = std::move(turl_data); |
| - MergePrefsDataWithPrepopulated(); |
| + // Check if default search preference is overriden by extension. |
| + if (pref->IsExtensionControlled()) { |
| + extension_default_search_ = TemplateURLDataFromDictionary(*url_dict); |
| + } else { |
| + prefs_default_search_ = TemplateURLDataFromDictionary(*url_dict); |
| + MergePrefsDataWithPrepopulated(); |
| + } |
| } |
| void DefaultSearchManager::LoadPrepopulatedDefaultSearch() { |