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 817756c296f27528bf9760a94e42b36057b6b35d..4cbc15c4f2291790837459591c5efde53a02fec6 100644 |
--- a/chrome/browser/search_engines/template_url_service.cc |
+++ b/chrome/browser/search_engines/template_url_service.cc |
@@ -976,12 +976,10 @@ void TemplateURLService::Load() { |
service_ = WebDataService::FromBrowserContext(profile_); |
} |
- if (service_.get()) { |
+ if (service_) |
load_handle_ = service_->GetKeywords(this); |
- } else { |
- ChangeToLoadedState(); |
- on_loaded_callbacks_.Notify(); |
- } |
+ else |
+ OnFailedLoad(); |
} |
scoped_ptr<TemplateURLService::Subscription> |
@@ -1003,8 +1001,7 @@ void TemplateURLService::OnWebDataServiceRequestDone( |
// Results are null if the database went away or (most likely) wasn't |
// loaded. |
load_failed_ = true; |
erikwright (departed)
2014/05/03 01:01:54
Shouldn't this also be set in the '!service_' case
Peter Kasting
2014/05/05 18:46:24
Yes. Moved to OnFailedLoad().
|
- ChangeToLoadedState(); |
- on_loaded_callbacks_.Notify(); |
+ OnFailedLoad(); |
return; |
} |
@@ -1785,6 +1782,15 @@ void TemplateURLService::ChangeToLoadedState() { |
loaded_ = true; |
} |
+void TemplateURLService::OnFailedLoad() { |
+ TemplateURL* default_search_provider = |
+ initial_default_search_provider_.release(); |
+ AddNoNotify(default_search_provider, true); |
+ SetDefaultSearchProviderNoNotify(default_search_provider); |
+ ChangeToLoadedState(); |
+ on_loaded_callbacks_.Notify(); |
+} |
+ |
void TemplateURLService::ClearDefaultProviderFromPrefs() { |
// We overwrite user preferences. If the default search engine is managed, |
// there is no effect. |