| 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..da3332c3d783bf36ba2e12e7f6718c0163941323 100644
|
| --- a/chrome/browser/search_engines/template_url_service.cc
|
| +++ b/chrome/browser/search_engines/template_url_service.cc
|
| @@ -106,6 +106,8 @@ TemplateURLService::TemplateURLService(Profile* profile)
|
| load_failed_(false),
|
| load_handle_(0),
|
| default_search_provider_(NULL),
|
| + backup_default_search_provider_(NULL),
|
| + is_default_search_provider_verified_(false),
|
| is_default_search_managed_(false),
|
| next_id_(1),
|
| time_provider_(&base::Time::Now),
|
| @@ -124,6 +126,8 @@ TemplateURLService::TemplateURLService(const Initializer* initializers,
|
| load_handle_(0),
|
| service_(NULL),
|
| default_search_provider_(NULL),
|
| + backup_default_search_provider_(NULL),
|
| + is_default_search_provider_verified_(false),
|
| is_default_search_managed_(false),
|
| next_id_(1),
|
| time_provider_(&base::Time::Now),
|
| @@ -450,6 +454,22 @@ const TemplateURL* TemplateURLService::GetDefaultSearchProvider() {
|
| return initial_default_search_provider_.get();
|
| }
|
|
|
| +void TemplateURLService::SetVerifiedDefaultSearchProvider(
|
| + const TemplateURL* url) {
|
| + if (is_default_search_managed_) {
|
| + NOTREACHED();
|
| + return;
|
| + }
|
| + if (default_search_provider_ == url &&
|
| + backup_default_search_provider_ == url &&
|
| + is_default_search_provider_verified_)
|
| + return;
|
| + SetDefaultSearchProviderNoNotify(url);
|
| + backup_default_search_provider_ = url;
|
| + is_default_search_provider_verified_ = true;
|
| + NotifyObservers();
|
| +}
|
| +
|
| void TemplateURLService::AddObserver(TemplateURLServiceObserver* observer) {
|
| model_observers_.AddObserver(observer);
|
| }
|
| @@ -506,6 +526,13 @@ void TemplateURLService::OnWebDataServiceRequestDone(
|
|
|
| bool database_specified_a_default = NULL != default_search_provider;
|
|
|
| + backup_default_search_provider_ = NULL;
|
| + is_default_search_provider_verified_ =
|
| + VerifyDefaultSearchProviderUsingKeywordResult(
|
| + *result,
|
| + template_urls,
|
| + &backup_default_search_provider_);
|
| +
|
| // Check if default search provider is now managed.
|
| scoped_ptr<TemplateURL> default_from_prefs;
|
| LoadDefaultSearchProviderFromPrefs(&default_from_prefs,
|
|
|