Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "components/search_engines/template_url_service.h" | 5 #include "components/search_engines/template_url_service.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "base/auto_reset.h" | 10 #include "base/auto_reset.h" |
| (...skipping 674 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 685 // notified of the new (fallback-provided) value in | 685 // notified of the new (fallback-provided) value in |
| 686 // ClearUserSelectedDefaultSearchEngine() above. Since we are here, the | 686 // ClearUserSelectedDefaultSearchEngine() above. Since we are here, the |
| 687 // value was presumably originally a fallback value (which may have been | 687 // value was presumably originally a fallback value (which may have been |
| 688 // repaired). | 688 // repaired). |
| 689 DefaultSearchManager::Source source; | 689 DefaultSearchManager::Source source; |
| 690 const TemplateURLData* new_dse = | 690 const TemplateURLData* new_dse = |
| 691 default_search_manager_.GetDefaultSearchEngine(&source); | 691 default_search_manager_.GetDefaultSearchEngine(&source); |
| 692 // ApplyDefaultSearchChange will notify observers once it is done. | 692 // ApplyDefaultSearchChange will notify observers once it is done. |
| 693 ApplyDefaultSearchChange(new_dse, source); | 693 ApplyDefaultSearchChange(new_dse, source); |
| 694 } else { | 694 } else { |
| 695 // Set fallback engine as user selected, because repair is considered a user | |
| 696 // action and we are expected to sync new fallback engine to other devices. | |
| 697 const TemplateURLData* fallback_engine_data = | |
| 698 default_search_manager_.GetFallbackSearchEngine(); | |
| 699 if (fallback_engine_data) { | |
| 700 TemplateURL* fallback_engine = | |
| 701 FindPrepopulatedTemplateURL(fallback_engine_data->prepopulate_id); | |
| 702 // We expect that fallback engine always exists after repair. | |
|
Peter Kasting
2017/02/16 00:12:11
Nit: Maybe: "The fallback engine is created from b
Alexander Yashkin
2017/02/16 07:26:30
Thanks, done.
| |
| 703 DCHECK(fallback_engine); | |
| 704 // Write fallback engine guid to sync pref. This will also set fallback | |
| 705 // engine as new user selected in | |
| 706 // OnSyncedDefaultSearchProviderGUIDChanged. | |
|
Peter Kasting
2017/02/16 00:12:11
Nit: Maybe: "Write the fallback engine's GUID to p
Alexander Yashkin
2017/02/16 07:26:30
Thanks done.
| |
| 707 prefs_->SetString(prefs::kSyncedDefaultSearchProviderGUID, | |
| 708 fallback_engine->sync_guid()); | |
| 709 } | |
| 695 NotifyObservers(); | 710 NotifyObservers(); |
| 696 } | 711 } |
| 697 } | 712 } |
| 698 | 713 |
| 699 void TemplateURLService::AddObserver(TemplateURLServiceObserver* observer) { | 714 void TemplateURLService::AddObserver(TemplateURLServiceObserver* observer) { |
| 700 model_observers_.AddObserver(observer); | 715 model_observers_.AddObserver(observer); |
| 701 } | 716 } |
| 702 | 717 |
| 703 void TemplateURLService::RemoveObserver(TemplateURLServiceObserver* observer) { | 718 void TemplateURLService::RemoveObserver(TemplateURLServiceObserver* observer) { |
| 704 model_observers_.RemoveObserver(observer); | 719 model_observers_.RemoveObserver(observer); |
| (...skipping 679 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1384 if (prefs_) { | 1399 if (prefs_) { |
| 1385 pref_change_registrar_.Init(prefs_); | 1400 pref_change_registrar_.Init(prefs_); |
| 1386 pref_change_registrar_.Add( | 1401 pref_change_registrar_.Add( |
| 1387 prefs::kSyncedDefaultSearchProviderGUID, | 1402 prefs::kSyncedDefaultSearchProviderGUID, |
| 1388 base::Bind( | 1403 base::Bind( |
| 1389 &TemplateURLService::OnSyncedDefaultSearchProviderGUIDChanged, | 1404 &TemplateURLService::OnSyncedDefaultSearchProviderGUIDChanged, |
| 1390 base::Unretained(this))); | 1405 base::Unretained(this))); |
| 1391 } | 1406 } |
| 1392 | 1407 |
| 1393 DefaultSearchManager::Source source = DefaultSearchManager::FROM_USER; | 1408 DefaultSearchManager::Source source = DefaultSearchManager::FROM_USER; |
| 1394 TemplateURLData* dse = | 1409 const TemplateURLData* dse = |
| 1395 default_search_manager_.GetDefaultSearchEngine(&source); | 1410 default_search_manager_.GetDefaultSearchEngine(&source); |
| 1396 ApplyDefaultSearchChange(dse, source); | 1411 ApplyDefaultSearchChange(dse, source); |
| 1397 | 1412 |
| 1398 if (num_initializers > 0) { | 1413 if (num_initializers > 0) { |
| 1399 // This path is only hit by test code and is used to simulate a loaded | 1414 // This path is only hit by test code and is used to simulate a loaded |
| 1400 // TemplateURLService. | 1415 // TemplateURLService. |
| 1401 ChangeToLoadedState(); | 1416 ChangeToLoadedState(); |
| 1402 | 1417 |
| 1403 // Add specific initializers, if any. | 1418 // Add specific initializers, if any. |
| 1404 KeywordWebDataService::BatchModeScoper scoper(web_data_service_.get()); | 1419 KeywordWebDataService::BatchModeScoper scoper(web_data_service_.get()); |
| (...skipping 525 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1930 KeywordWebDataService::BatchModeScoper scoper(web_data_service_.get()); | 1945 KeywordWebDataService::BatchModeScoper scoper(web_data_service_.get()); |
| 1931 if (default_search_provider_source_ == DefaultSearchManager::FROM_POLICY || | 1946 if (default_search_provider_source_ == DefaultSearchManager::FROM_POLICY || |
| 1932 source == DefaultSearchManager::FROM_POLICY) { | 1947 source == DefaultSearchManager::FROM_POLICY) { |
| 1933 // We do this both to remove any no-longer-applicable policy-defined DSE as | 1948 // We do this both to remove any no-longer-applicable policy-defined DSE as |
| 1934 // well as to add the new one, if appropriate. | 1949 // well as to add the new one, if appropriate. |
| 1935 UpdateProvidersCreatedByPolicy( | 1950 UpdateProvidersCreatedByPolicy( |
| 1936 &template_urls_, | 1951 &template_urls_, |
| 1937 source == DefaultSearchManager::FROM_POLICY ? data : nullptr); | 1952 source == DefaultSearchManager::FROM_POLICY ? data : nullptr); |
| 1938 } | 1953 } |
| 1939 | 1954 |
| 1955 // |default_search_provider_source_| must be set before calling | |
| 1956 // UpdateNoNotify(), since that function needs to know the source of the | |
| 1957 // update in question. | |
| 1958 default_search_provider_source_ = source; | |
| 1959 | |
| 1940 if (!data) { | 1960 if (!data) { |
| 1941 default_search_provider_ = nullptr; | 1961 default_search_provider_ = nullptr; |
| 1942 } else if (source == DefaultSearchManager::FROM_EXTENSION) { | 1962 } else if (source == DefaultSearchManager::FROM_EXTENSION) { |
| 1943 default_search_provider_ = FindMatchingExtensionTemplateURL( | 1963 default_search_provider_ = FindMatchingExtensionTemplateURL( |
| 1944 *data, TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION); | 1964 *data, TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION); |
| 1945 } else if (source == DefaultSearchManager::FROM_FALLBACK) { | 1965 } else if (source == DefaultSearchManager::FROM_FALLBACK) { |
| 1946 default_search_provider_ = | 1966 default_search_provider_ = |
| 1947 FindPrepopulatedTemplateURL(data->prepopulate_id); | 1967 FindPrepopulatedTemplateURL(data->prepopulate_id); |
| 1948 if (default_search_provider_) { | 1968 if (default_search_provider_) { |
| 1949 TemplateURLData update_data(*data); | 1969 TemplateURLData update_data(*data); |
| (...skipping 30 matching lines...) Expand all Loading... | |
| 1980 std::unique_ptr<TemplateURL> new_dse_ptr = | 2000 std::unique_ptr<TemplateURL> new_dse_ptr = |
| 1981 base::MakeUnique<TemplateURL>(new_data); | 2001 base::MakeUnique<TemplateURL>(new_data); |
| 1982 TemplateURL* new_dse = new_dse_ptr.get(); | 2002 TemplateURL* new_dse = new_dse_ptr.get(); |
| 1983 if (AddNoNotify(std::move(new_dse_ptr), true)) | 2003 if (AddNoNotify(std::move(new_dse_ptr), true)) |
| 1984 default_search_provider_ = new_dse; | 2004 default_search_provider_ = new_dse; |
| 1985 } | 2005 } |
| 1986 if (default_search_provider_ && prefs_) { | 2006 if (default_search_provider_ && prefs_) { |
| 1987 prefs_->SetString(prefs::kSyncedDefaultSearchProviderGUID, | 2007 prefs_->SetString(prefs::kSyncedDefaultSearchProviderGUID, |
| 1988 default_search_provider_->sync_guid()); | 2008 default_search_provider_->sync_guid()); |
| 1989 } | 2009 } |
| 1990 | |
| 1991 } | 2010 } |
| 1992 | 2011 |
| 1993 default_search_provider_source_ = source; | |
| 1994 | |
| 1995 bool changed = default_search_provider_ != previous_default_search_engine; | 2012 bool changed = default_search_provider_ != previous_default_search_engine; |
| 1996 if (changed) | 2013 if (changed) |
| 1997 RequestGoogleURLTrackerServerCheckIfNecessary(); | 2014 RequestGoogleURLTrackerServerCheckIfNecessary(); |
| 1998 | 2015 |
| 1999 NotifyObservers(); | 2016 NotifyObservers(); |
| 2000 | 2017 |
| 2001 return changed; | 2018 return changed; |
| 2002 } | 2019 } |
| 2003 | 2020 |
| 2004 TemplateURL* TemplateURLService::AddNoNotify( | 2021 TemplateURL* TemplateURLService::AddNoNotify( |
| (...skipping 472 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2477 | 2494 |
| 2478 if (most_recently_intalled_default) { | 2495 if (most_recently_intalled_default) { |
| 2479 base::AutoReset<DefaultSearchChangeOrigin> change_origin( | 2496 base::AutoReset<DefaultSearchChangeOrigin> change_origin( |
| 2480 &dsp_change_origin_, DSP_CHANGE_OVERRIDE_SETTINGS_EXTENSION); | 2497 &dsp_change_origin_, DSP_CHANGE_OVERRIDE_SETTINGS_EXTENSION); |
| 2481 default_search_manager_.SetExtensionControlledDefaultSearchEngine( | 2498 default_search_manager_.SetExtensionControlledDefaultSearchEngine( |
| 2482 most_recently_intalled_default->data()); | 2499 most_recently_intalled_default->data()); |
| 2483 } else { | 2500 } else { |
| 2484 default_search_manager_.ClearExtensionControlledDefaultSearchEngine(); | 2501 default_search_manager_.ClearExtensionControlledDefaultSearchEngine(); |
| 2485 } | 2502 } |
| 2486 } | 2503 } |
| OLD | NEW |