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..ee607273172e9be067fcf18c65c2b061b9ac03dd 100644 |
--- a/chrome/browser/webdata/autocomplete_syncable_service.cc |
+++ b/chrome/browser/webdata/autocomplete_syncable_service.cc |
@@ -79,6 +79,15 @@ bool MergeTimestamps(const sync_pb::AutofillSpecifics& autofill, |
} |
} |
+// See |UserDataKey| below. |
+int user_data_key = 0; |
dhollowa
2013/03/20 21:47:37
nit: this could be pulled into the body of UserDat
Jói
2013/03/20 22:03:16
Done. I've also added it to my TODO list to update
|
+ |
+void* UserDataKey() { |
+ // Use the address of a static that COMDAT folding won't ever fold |
+ // with something else. |
+ return reinterpret_cast<void*>(&user_data_key); |
+} |
+ |
} // namespace |
AutocompleteSyncableService::AutocompleteSyncableService( |
@@ -96,6 +105,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) { |