summaryrefslogtreecommitdiffstats
path: root/chrome/browser/webdata
diff options
context:
space:
mode:
authorlevin@chromium.org <levin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-27 06:23:57 +0000
committerlevin@chromium.org <levin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-27 06:23:57 +0000
commit6506f2aee4619a49f4ac32e729f7a01e34b9d8e8 (patch)
tree60904021b970035586afd0fbe47ae18c652d396d /chrome/browser/webdata
parent33bb14c339d53c34ca1da327f983d7abb8b6fd5a (diff)
downloadchromium_src-6506f2aee4619a49f4ac32e729f7a01e34b9d8e8.zip
chromium_src-6506f2aee4619a49f4ac32e729f7a01e34b9d8e8.tar.gz
chromium_src-6506f2aee4619a49f4ac32e729f7a01e34b9d8e8.tar.bz2
Need to ensure that the autogenerated keyword is generated on the UI thread.
This was broken by r57563. BUG=53557 TEST=unit_test --gtest_filter=TemplateURLModelTest.LoadDoesAutoKeywordUpdate Review URL: http://codereview.chromium.org/3243001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@57641 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/webdata')
-rw-r--r--chrome/browser/webdata/web_data_service.cc12
1 files changed, 12 insertions, 0 deletions
diff --git a/chrome/browser/webdata/web_data_service.cc b/chrome/browser/webdata/web_data_service.cc
index b889d10..fc91bb2 100644
--- a/chrome/browser/webdata/web_data_service.cc
+++ b/chrome/browser/webdata/web_data_service.cc
@@ -92,6 +92,12 @@ WebDatabase* WebDataService::GetDatabase() {
//////////////////////////////////////////////////////////////////////////////
void WebDataService::AddKeyword(const TemplateURL& url) {
+ // Ensure that the keyword is already generated (and cached) before caching
+ // the TemplateURL for use on another keyword. (keyword generation may involve
+ // a call to GoogleURLTracker::GoogleURL(), which may only be done on the
+ // UI thread.)
+ if (url.autogenerate_keyword())
+ url.keyword();
GenericRequest<TemplateURL>* request =
new GenericRequest<TemplateURL>(this, GetNextRequestHandle(), NULL, url);
RegisterRequest(request);
@@ -109,6 +115,12 @@ void WebDataService::RemoveKeyword(const TemplateURL& url) {
}
void WebDataService::UpdateKeyword(const TemplateURL& url) {
+ // Ensure that the keyword is already generated (and cached) before caching
+ // the TemplateURL for use on another keyword. (keyword generation may involve
+ // a call to GoogleURLTracker::GoogleURL(), which may only be done on the
+ // UI thread.)
+ if (url.autogenerate_keyword())
+ url.keyword();
GenericRequest<TemplateURL>* request =
new GenericRequest<TemplateURL>(this, GetNextRequestHandle(), NULL, url);
RegisterRequest(request);