From 6506f2aee4619a49f4ac32e729f7a01e34b9d8e8 Mon Sep 17 00:00:00 2001 From: "levin@chromium.org" Date: Fri, 27 Aug 2010 06:23:57 +0000 Subject: 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 --- chrome/browser/webdata/web_data_service.cc | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'chrome/browser/webdata') 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* request = new GenericRequest(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* request = new GenericRequest(this, GetNextRequestHandle(), NULL, url); RegisterRequest(request); -- cgit v1.1