Chromium Code Reviews| Index: components/search_engines/template_url_service.cc |
| diff --git a/components/search_engines/template_url_service.cc b/components/search_engines/template_url_service.cc |
| index 0e77d27379f265169564fc3bb4cf7eff964c7a4f..0be22bc8a57730c5ae421fa844503681a4f823cf 100644 |
| --- a/components/search_engines/template_url_service.cc |
| +++ b/components/search_engines/template_url_service.cc |
| @@ -678,6 +678,7 @@ void TemplateURLService::RepairPrepopulatedSearchEngines() { |
| base::AutoReset<DefaultSearchChangeOrigin> change_origin( |
| &dsp_change_origin_, DSP_CHANGE_PROFILE_RESET); |
| + DefaultSearchManager::Source old_source = default_search_provider_source_; |
| default_search_manager_.ClearUserSelectedDefaultSearchEngine(); |
| if (!default_search_provider_) { |
| @@ -692,7 +693,16 @@ void TemplateURLService::RepairPrepopulatedSearchEngines() { |
| // ApplyDefaultSearchChange will notify observers once it is done. |
| ApplyDefaultSearchChange(new_dse, source); |
| } else { |
| - NotifyObservers(); |
| + if (old_source == DefaultSearchManager::FROM_USER && |
|
Peter Kasting
2017/02/02 00:04:26
Nit: Hoist this up to the parent conditional:
i
Alexander Yashkin
2017/02/03 14:44:25
Done
|
| + default_search_provider_source_ == |
| + DefaultSearchManager::FROM_FALLBACK) { |
|
Peter Kasting
2017/02/02 00:04:26
If the old source was FROM_USER, will the new sour
Alexander Yashkin
2017/02/03 14:44:25
I have kept the old logic here - fallback engine w
Peter Kasting
2017/02/05 05:09:58
I guess the question is whether a user choice can
Alexander Yashkin
2017/02/05 13:57:04
I don't think that we can get from FROM_USER to an
|
| + // Set fallback engine as user selected, because repair is considered user |
|
Peter Kasting
2017/02/02 00:04:26
Nit: user -> a user
Alexander Yashkin
2017/02/03 14:44:25
Done
|
| + // action and new engine is expected to sync to other user devices. |
|
Peter Kasting
2017/02/02 00:04:26
Nit: new -> the new; eliminate "user"
Alexander Yashkin
2017/02/03 14:44:25
arghh, this articles, done.
|
| + default_search_manager_.SetUserSelectedDefaultSearchEngine( |
| + default_search_provider_->data()); |
| + } else { |
| + NotifyObservers(); |
| + } |
| } |
| } |
| @@ -1937,6 +1947,9 @@ bool TemplateURLService::ApplyDefaultSearchChangeNoMetrics( |
| source == DefaultSearchManager::FROM_POLICY ? data : nullptr); |
| } |
| + // Set new DSE source as current before calling UpdateNoNotify below which |
| + // is checking it to update user selected engine. |
|
Peter Kasting
2017/02/02 00:04:26
Nit: Maybe "|default_search_provider_source_| must
Alexander Yashkin
2017/02/03 14:44:25
Done
|
| + default_search_provider_source_ = source; |
|
Alexander Yashkin
2017/01/30 11:48:32
Problem in https://bugs.chromium.org/p/chromium/is
|
| if (!data) { |
| default_search_provider_ = nullptr; |
| } else if (source == DefaultSearchManager::FROM_EXTENSION) { |
| @@ -1987,11 +2000,8 @@ bool TemplateURLService::ApplyDefaultSearchChangeNoMetrics( |
| prefs_->SetString(prefs::kSyncedDefaultSearchProviderGUID, |
| default_search_provider_->sync_guid()); |
| } |
| - |
| } |
| - default_search_provider_source_ = source; |
| - |
| bool changed = default_search_provider_ != previous_default_search_engine; |
| if (changed) |
| RequestGoogleURLTrackerServerCheckIfNecessary(); |