Chromium Code Reviews| 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 9d9f694437929fd9561e3f8cee54e6fdeb9a5fdc..dea4c9115bdeb991c94c5880b57e447568c01a69 100644 |
| --- a/chrome/browser/search_engines/template_url_service.cc |
| +++ b/chrome/browser/search_engines/template_url_service.cc |
| @@ -22,6 +22,8 @@ |
| #include "chrome/browser/prefs/pref_service.h" |
| #include "chrome/browser/prefs/pref_set_observer.h" |
| #include "chrome/browser/profiles/profile.h" |
| +#include "chrome/browser/protector/protector.h" |
| +#include "chrome/browser/protector/setting_change.h" |
| #include "chrome/browser/rlz/rlz.h" |
| #include "chrome/browser/search_engines/search_host_to_urls_map.h" |
| #include "chrome/browser/search_engines/search_terms_data.h" |
| @@ -442,6 +444,16 @@ void TemplateURLService::SetDefaultSearchProvider(const TemplateURL* url) { |
| NotifyObservers(); |
| } |
| +void TemplateURLService::ForceSetDefaultSearchProvider( |
|
sky
2011/10/21 21:34:11
Having to expose a method like this is icky. Can y
whywhat
2011/10/24 15:30:17
Done.
I think using the fact that setting dsp to N
|
| + const TemplateURL* url) { |
| + if (is_default_search_managed_) { |
| + NOTREACHED(); |
| + return; |
| + } |
| + SetDefaultSearchProviderNoNotify(url); |
| + NotifyObservers(); |
| +} |
| + |
| const TemplateURL* TemplateURLService::GetDefaultSearchProvider() { |
| if (loaded_ && !load_failed_) |
| return default_search_provider_; |
| @@ -506,6 +518,20 @@ void TemplateURLService::OnWebDataServiceRequestDone( |
| bool database_specified_a_default = NULL != default_search_provider; |
| + // Check if the default search provider has been changed and notify |
| + // Protector instance about it. |
| + const TemplateURL* backup_default_search_provider = NULL; |
| + if (DidDefaultSearchProviderChange( |
| + *result, |
| + template_urls, |
| + &backup_default_search_provider)) { |
| + // Protector will delete itself when it's needed no longer. |
| + protector::Protector* protector = new protector::Protector(profile()); |
| + protector->ShowChange(protector::CreateDefaultSearchProviderChange( |
| + default_search_provider, |
|
sky
2011/10/21 21:34:11
Should we ignore this if managed?
Protector seems
whywhat
2011/10/24 15:30:17
Done.
|
| + backup_default_search_provider)); |
| + } |
| + |
| // Check if default search provider is now managed. |
| scoped_ptr<TemplateURL> default_from_prefs; |
| LoadDefaultSearchProviderFromPrefs(&default_from_prefs, |