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 653 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
664 i < actions.added_engines.end(); | 664 i < actions.added_engines.end(); |
665 ++i) { | 665 ++i) { |
666 AddNoNotify(base::MakeUnique<TemplateURL>(*i), true); | 666 AddNoNotify(base::MakeUnique<TemplateURL>(*i), true); |
667 } | 667 } |
668 | 668 |
669 base::AutoReset<DefaultSearchChangeOrigin> change_origin( | 669 base::AutoReset<DefaultSearchChangeOrigin> change_origin( |
670 &dsp_change_origin_, DSP_CHANGE_PROFILE_RESET); | 670 &dsp_change_origin_, DSP_CHANGE_PROFILE_RESET); |
671 | 671 |
672 default_search_manager_.ClearUserSelectedDefaultSearchEngine(); | 672 default_search_manager_.ClearUserSelectedDefaultSearchEngine(); |
673 | 673 |
674 if (!default_search_provider_) { | 674 if (default_search_provider_) { |
675 // If the default search provider came from a user pref we would have been | |
676 // notified of the new (fallback-provided) value in | |
677 // ClearUserSelectedDefaultSearchEngine() above. Since we are here, the | |
678 // value was presumably originally a fallback value (which may have been | |
679 // repaired). | |
680 DefaultSearchManager::Source source; | |
681 const TemplateURLData* new_dse = | |
682 default_search_manager_.GetDefaultSearchEngine(&source); | |
683 // ApplyDefaultSearchChange will notify observers once it is done. | |
684 ApplyDefaultSearchChange(new_dse, source); | |
685 } else { | |
686 // Set fallback engine as user selected, because repair is considered a user | 675 // Set fallback engine as user selected, because repair is considered a user |
687 // action and we are expected to sync new fallback engine to other devices. | 676 // action and we are expected to sync new fallback engine to other devices. |
688 const TemplateURLData* fallback_engine_data = | 677 const TemplateURLData* fallback_engine_data = |
689 default_search_manager_.GetFallbackSearchEngine(); | 678 default_search_manager_.GetFallbackSearchEngine(); |
690 if (fallback_engine_data) { | 679 if (fallback_engine_data) { |
691 TemplateURL* fallback_engine = | 680 TemplateURL* fallback_engine = |
692 FindPrepopulatedTemplateURL(fallback_engine_data->prepopulate_id); | 681 FindPrepopulatedTemplateURL(fallback_engine_data->prepopulate_id); |
693 // The fallback engine is created from built-in/override data that should | 682 // The fallback engine is created from built-in/override data that should |
694 // always have a prepopulate ID, so this engine should always exist after | 683 // always have a prepopulate ID, so this engine should always exist after |
695 // a repair. | 684 // a repair. |
696 DCHECK(fallback_engine); | 685 DCHECK(fallback_engine); |
697 // Write the fallback engine's GUID to prefs, which will cause | 686 // Write the fallback engine's GUID to prefs, which will cause |
698 // OnSyncedDefaultSearchProviderGUIDChanged() to set it as the new | 687 // OnSyncedDefaultSearchProviderGUIDChanged() to set it as the new |
699 // user-selected engine. | 688 // user-selected engine. |
700 prefs_->SetString(prefs::kSyncedDefaultSearchProviderGUID, | 689 prefs_->SetString(prefs::kSyncedDefaultSearchProviderGUID, |
701 fallback_engine->sync_guid()); | 690 fallback_engine->sync_guid()); |
702 } | 691 } |
703 NotifyObservers(); | 692 NotifyObservers(); |
| 693 RequestGoogleURLTrackerServerCheckIfNecessary(); |
| 694 } else { |
| 695 // If the default search provider came from a user pref we would have been |
| 696 // notified of the new (fallback-provided) value in |
| 697 // ClearUserSelectedDefaultSearchEngine() above. Since we are here, the |
| 698 // value was presumably originally a fallback value (which may have been |
| 699 // repaired). |
| 700 DefaultSearchManager::Source source; |
| 701 const TemplateURLData* new_dse = |
| 702 default_search_manager_.GetDefaultSearchEngine(&source); |
| 703 // ApplyDefaultSearchChange will notify observers once it is done. |
| 704 ApplyDefaultSearchChange(new_dse, source); |
704 } | 705 } |
705 } | 706 } |
706 | 707 |
707 void TemplateURLService::AddObserver(TemplateURLServiceObserver* observer) { | 708 void TemplateURLService::AddObserver(TemplateURLServiceObserver* observer) { |
708 model_observers_.AddObserver(observer); | 709 model_observers_.AddObserver(observer); |
709 } | 710 } |
710 | 711 |
711 void TemplateURLService::RemoveObserver(TemplateURLServiceObserver* observer) { | 712 void TemplateURLService::RemoveObserver(TemplateURLServiceObserver* observer) { |
712 model_observers_.RemoveObserver(observer); | 713 model_observers_.RemoveObserver(observer); |
713 } | 714 } |
(...skipping 1127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1841 | 1842 |
1842 // Synthesize a visit for the keyword. This ensures the url for the keyword is | 1843 // Synthesize a visit for the keyword. This ensures the url for the keyword is |
1843 // autocompleted even if the user doesn't type the url in directly. | 1844 // autocompleted even if the user doesn't type the url in directly. |
1844 client_->AddKeywordGeneratedVisit(url); | 1845 client_->AddKeywordGeneratedVisit(url); |
1845 } | 1846 } |
1846 | 1847 |
1847 void TemplateURLService::RequestGoogleURLTrackerServerCheckIfNecessary() { | 1848 void TemplateURLService::RequestGoogleURLTrackerServerCheckIfNecessary() { |
1848 if (default_search_provider_ && | 1849 if (default_search_provider_ && |
1849 default_search_provider_->HasGoogleBaseURLs(search_terms_data()) && | 1850 default_search_provider_->HasGoogleBaseURLs(search_terms_data()) && |
1850 google_url_tracker_) | 1851 google_url_tracker_) |
1851 google_url_tracker_->RequestServerCheck(false); | 1852 google_url_tracker_->RequestServerCheck(); |
1852 } | 1853 } |
1853 | 1854 |
1854 void TemplateURLService::GoogleBaseURLChanged() { | 1855 void TemplateURLService::GoogleBaseURLChanged() { |
1855 if (!loaded_) { | 1856 if (!loaded_) { |
1856 if (initial_default_search_provider_.get() && | 1857 if (initial_default_search_provider_.get() && |
1857 initial_default_search_provider_->HasGoogleBaseURLs( | 1858 initial_default_search_provider_->HasGoogleBaseURLs( |
1858 search_terms_data())) { | 1859 search_terms_data())) { |
1859 initial_default_search_provider_->InvalidateCachedValues(); | 1860 initial_default_search_provider_->InvalidateCachedValues(); |
1860 initial_default_search_provider_->ResetKeywordIfNecessary( | 1861 initial_default_search_provider_->ResetKeywordIfNecessary( |
1861 search_terms_data(), false); | 1862 search_terms_data(), false); |
(...skipping 652 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2514 if (keyword_to_template_url.find(template_url->keyword()) != | 2515 if (keyword_to_template_url.find(template_url->keyword()) != |
2515 keyword_to_template_url.end()) { | 2516 keyword_to_template_url.end()) { |
2516 return true; | 2517 return true; |
2517 } | 2518 } |
2518 keyword_to_template_url[template_url->keyword()] = template_url.get(); | 2519 keyword_to_template_url[template_url->keyword()] = template_url.get(); |
2519 } | 2520 } |
2520 } | 2521 } |
2521 return false; | 2522 return false; |
2522 } | 2523 } |
2523 #endif | 2524 #endif |
OLD | NEW |