Index: chrome/browser/webdata/autocomplete_syncable_service.cc |
diff --git a/chrome/browser/webdata/autocomplete_syncable_service.cc b/chrome/browser/webdata/autocomplete_syncable_service.cc |
index f039075cf83f2cfd69efb5373f1a1c92794ad1c5..c80993f55f1961b0d5b1ca60e2eb6740d8de66c0 100644 |
--- a/chrome/browser/webdata/autocomplete_syncable_service.cc |
+++ b/chrome/browser/webdata/autocomplete_syncable_service.cc |
@@ -79,6 +79,11 @@ bool MergeTimestamps(const sync_pb::AutofillSpecifics& autofill, |
} |
} |
+void* UserDataKey() { |
+ return reinterpret_cast<void*>( |
+ &AutocompleteSyncableService::CreateForWebDataService); |
+} |
+ |
} // namespace |
AutocompleteSyncableService::AutocompleteSyncableService( |
@@ -96,6 +101,20 @@ AutocompleteSyncableService::~AutocompleteSyncableService() { |
DCHECK(CalledOnValidThread()); |
} |
+// static |
+void AutocompleteSyncableService::CreateForWebDataService( |
+ WebDataService* web_data) { |
+ web_data->GetDBUserData()->SetUserData( |
+ UserDataKey(), new AutocompleteSyncableService(web_data)); |
+} |
+ |
+// static |
+AutocompleteSyncableService* AutocompleteSyncableService::FromWebDataService( |
+ WebDataService* web_data) { |
+ return static_cast<AutocompleteSyncableService*>( |
+ web_data->GetDBUserData()->GetUserData(UserDataKey())); |
+} |
+ |
AutocompleteSyncableService::AutocompleteSyncableService() |
: web_data_service_(NULL), |
cull_expired_entries_(false) { |