| Index: chrome/browser/search_engines/template_url_service.cc
|
| diff --git a/chrome/browser/search_engines/template_url_service.cc b/chrome/browser/search_engines/template_url_service.cc
|
| index 8f9f277de112ba564c95b8432560e34a862ea921..b75082390bdc5a2acaace0cad8a21288e22b1eaf 100644
|
| --- a/chrome/browser/search_engines/template_url_service.cc
|
| +++ b/chrome/browser/search_engines/template_url_service.cc
|
| @@ -675,17 +675,9 @@ bool TemplateURLService::CanMakeDefault(const TemplateURL* url) {
|
| (url->GetType() == TemplateURL::NORMAL);
|
| }
|
|
|
| -void TemplateURLService::SetDefaultSearchProvider(TemplateURL* url) {
|
| - DCHECK(!is_default_search_managed_);
|
| - // Omnibox keywords cannot be made default. Extension-controlled search
|
| - // engines can be made default only by the extension itself because they
|
| - // aren't persisted.
|
| - DCHECK(!url || (url->GetType() == TemplateURL::NORMAL));
|
| -
|
| - // Always persist the setting in the database, that way if the backup
|
| - // signature has changed out from under us it gets reset correctly.
|
| - if (SetDefaultSearchProviderNoNotify(url))
|
| - NotifyObservers();
|
| +void TemplateURLService::SetUserSelectedDefaultSearchProvider(
|
| + TemplateURL* url) {
|
| + SetDefaultSearchProvider(url);
|
| }
|
|
|
| TemplateURL* TemplateURLService::GetDefaultSearchProvider() {
|
| @@ -928,7 +920,7 @@ void TemplateURLService::OnSyncedDefaultSearchProviderGUIDChanged() {
|
| if (new_default_search != GetDefaultSearchProvider()) {
|
| base::AutoReset<DefaultSearchChangeOrigin> change_origin(
|
| &dsp_change_origin_, DSP_CHANGE_SYNC_PREF);
|
| - SetDefaultSearchProvider(new_default_search);
|
| + SetUserSelectedDefaultSearchProvider(new_default_search);
|
| pending_synced_default_search_ = false;
|
| }
|
| } else {
|
| @@ -1206,7 +1198,7 @@ syncer::SyncMergeResult TemplateURLService::MergeDataAndStartSyncing(
|
| if (pending_default) {
|
| base::AutoReset<DefaultSearchChangeOrigin> change_origin(
|
| &dsp_change_origin_, DSP_CHANGE_SYNC_ADD);
|
| - SetDefaultSearchProvider(pending_default);
|
| + SetUserSelectedDefaultSearchProvider(pending_default);
|
| }
|
|
|
| // The remaining SyncData in local_data_map should be everything that needs to
|
| @@ -2129,6 +2121,20 @@ void TemplateURLService::UpdateDefaultSearch() {
|
| NotifyObservers();
|
| }
|
|
|
| +void TemplateURLService::SetDefaultSearchProvider(
|
| + TemplateURL* url) {
|
| + DCHECK(!is_default_search_managed_);
|
| + // Omnibox keywords cannot be made default. Extension-controlled search
|
| + // engines can be made default only by the extension itself because they
|
| + // aren't persisted.
|
| + DCHECK(!url || (url->GetType() == TemplateURL::NORMAL));
|
| +
|
| + // Always persist the setting in the database, that way if the backup
|
| + // signature has changed out from under us it gets reset correctly.
|
| + if (SetDefaultSearchProviderNoNotify(url))
|
| + NotifyObservers();
|
| +}
|
| +
|
| bool TemplateURLService::SetDefaultSearchProviderNoNotify(TemplateURL* url) {
|
| if (url) {
|
| if (std::find(template_urls_.begin(), template_urls_.end(), url) ==
|
|
|