Index: chrome/browser/webdata/web_data_service_factory.cc |
diff --git a/chrome/browser/webdata/web_data_service_factory.cc b/chrome/browser/webdata/web_data_service_factory.cc |
index e49c6b2634272962bb3333400fa146272ce8e077..b5d5dc32b1cc6d45fdff99de47cb540caea0d362 100644 |
--- a/chrome/browser/webdata/web_data_service_factory.cc |
+++ b/chrome/browser/webdata/web_data_service_factory.cc |
@@ -12,6 +12,7 @@ |
#include "chrome/browser/ui/profile_error_dialog.h" |
#include "chrome/browser/webdata/autocomplete_syncable_service.h" |
#include "chrome/browser/webdata/keyword_table.h" |
+#include "chrome/browser/webdata/keyword_web_data_service.h" |
#include "chrome/browser/webdata/logins_table.h" |
#include "chrome/browser/webdata/web_apps_table.h" |
#include "chrome/browser/webdata/web_data_service.h" |
@@ -105,6 +106,11 @@ WebDataServiceWrapper::WebDataServiceWrapper(Profile* profile) { |
&ProfileErrorCallback, PROFILE_ERROR_DB_AUTOFILL_WEB_DATA)); |
autofill_web_data_->Init(); |
+ keyword_web_data_ = new KeywordWebDataService( |
+ web_database_, ui_thread, base::Bind( |
+ &ProfileErrorCallback, PROFILE_ERROR_DB_KEYWORD_WEB_DATA)); |
+ keyword_web_data_->Init(); |
+ |
token_web_data_ = new TokenWebData( |
web_database_, ui_thread, db_thread, base::Bind( |
&ProfileErrorCallback, PROFILE_ERROR_DB_TOKEN_WEB_DATA)); |
@@ -127,6 +133,7 @@ WebDataServiceWrapper::~WebDataServiceWrapper() { |
void WebDataServiceWrapper::Shutdown() { |
autofill_web_data_->ShutdownOnUIThread(); |
+ keyword_web_data_->ShutdownOnUIThread(); |
token_web_data_->ShutdownOnUIThread(); |
web_data_->ShutdownOnUIThread(); |
web_database_->ShutdownDatabase(); |
@@ -137,6 +144,11 @@ WebDataServiceWrapper::GetAutofillWebData() { |
return autofill_web_data_.get(); |
} |
+scoped_refptr<KeywordWebDataService> |
+WebDataServiceWrapper::GetKeywordWebData() { |
+ return keyword_web_data_.get(); |
+} |
+ |
scoped_refptr<WebDataService> WebDataServiceWrapper::GetWebData() { |
return web_data_.get(); |
} |
@@ -207,6 +219,18 @@ WebDataServiceFactory::GetAutofillWebDataForProfile( |
} |
// static |
+scoped_refptr<KeywordWebDataService> |
+WebDataServiceFactory::GetKeywordWebDataForProfile( |
+ Profile* profile, |
+ Profile::ServiceAccessType access_type) { |
+ WebDataServiceWrapper* wrapper = |
+ WebDataServiceFactory::GetForProfile(profile, access_type); |
+ // |wrapper| can be NULL in Incognito mode. |
+ return wrapper ? |
+ wrapper->GetKeywordWebData() : scoped_refptr<KeywordWebDataService>(NULL); |
+} |
+ |
+// static |
scoped_refptr<TokenWebData> |
WebDataServiceFactory::GetTokenWebDataForProfile( |
Profile* profile, |