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 11edecd56ce8fcc8a8d20162b6f3545382f9326d..342a8671f11300353937eca75cbaa7de0c6ad95c 100644 |
--- a/chrome/browser/webdata/autocomplete_syncable_service.cc |
+++ b/chrome/browser/webdata/autocomplete_syncable_service.cc |
@@ -7,6 +7,7 @@ |
#include "base/location.h" |
#include "base/logging.h" |
#include "base/utf_string_conversions.h" |
+#include "components/autofill/browser/webdata/autofill_backend_delegate.h" |
#include "components/autofill/browser/webdata/autofill_table.h" |
#include "components/autofill/browser/webdata/autofill_webdata_service.h" |
#include "components/webdata/common/web_database.h" |
@@ -23,6 +24,7 @@ using autofill::AutofillEntry; |
using autofill::AutofillKey; |
using autofill::AutofillTable; |
using autofill::AutofillWebDataService; |
+using autofill::AutofillBackendDelegate; |
using content::BrowserThread; |
namespace { |
@@ -92,14 +94,16 @@ void* UserDataKey() { |
} // namespace |
AutocompleteSyncableService::AutocompleteSyncableService( |
+ AutofillBackendDelegate* web_data_delegate, |
AutofillWebDataService* web_data_service) |
- : web_data_service_(web_data_service), |
+ : web_data_delegate_(web_data_delegate), |
+ web_data_service_(web_data_service), |
ALLOW_THIS_IN_INITIALIZER_LIST(scoped_observer_(this)), |
cull_expired_entries_(false) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::DB)); |
- DCHECK(web_data_service_); |
+ DCHECK(web_data_delegate_); |
- scoped_observer_.Add(web_data_service_); |
+ scoped_observer_.Add(web_data_delegate_); |
} |
AutocompleteSyncableService::~AutocompleteSyncableService() { |
@@ -108,9 +112,11 @@ AutocompleteSyncableService::~AutocompleteSyncableService() { |
// static |
void AutocompleteSyncableService::CreateForWebDataService( |
- AutofillWebDataService* web_data_service) { |
+ AutofillWebDataService* web_data_service, |
+ AutofillBackendDelegate* delegate) { |
web_data_service->GetDBUserData()->SetUserData( |
- UserDataKey(), new AutocompleteSyncableService(web_data_service)); |
+ UserDataKey(), |
+ new AutocompleteSyncableService(delegate, web_data_service)); |
} |
// static |
@@ -121,7 +127,7 @@ AutocompleteSyncableService* AutocompleteSyncableService::FromWebDataService( |
} |
AutocompleteSyncableService::AutocompleteSyncableService() |
- : web_data_service_(NULL), |
+ : web_data_delegate_(NULL), |
ALLOW_THIS_IN_INITIALIZER_LIST(scoped_observer_(this)), |
cull_expired_entries_(false) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::DB)); |
@@ -174,7 +180,8 @@ syncer::SyncMergeResult AutocompleteSyncableService::MergeDataAndStartSyncing( |
return merge_result; |
} |
- AutofillWebDataService::NotifyOfMultipleAutofillChanges(web_data_service_); |
+ if (web_data_delegate_) |
+ web_data_delegate_->NotifyOfMultipleAutofillChanges(web_data_service_); |
syncer::SyncChangeList new_changes; |
for (AutocompleteEntryMap::iterator i = new_db_entries.begin(); |
@@ -188,7 +195,7 @@ syncer::SyncMergeResult AutocompleteSyncableService::MergeDataAndStartSyncing( |
if (cull_expired_entries_) { |
// This will schedule a deletion operation on the DB thread, which will |
// trigger a notification to propagate the deletion to Sync. |
- web_data_service_->RemoveExpiredFormElements(); |
+ web_data_delegate_->RemoveExpiredFormElements(); |
} |
merge_result.set_error( |
@@ -291,12 +298,13 @@ syncer::SyncError AutocompleteSyncableService::ProcessSyncChanges( |
"Failed to update webdata."); |
} |
- AutofillWebDataService::NotifyOfMultipleAutofillChanges(web_data_service_); |
+ if (web_data_delegate_) |
+ web_data_delegate_->NotifyOfMultipleAutofillChanges(web_data_service_); |
if (cull_expired_entries_) { |
// This will schedule a deletion operation on the DB thread, which will |
// trigger a notification to propagate the deletion to Sync. |
- web_data_service_->RemoveExpiredFormElements(); |
+ web_data_delegate_->RemoveExpiredFormElements(); |
} |
return list_processing_error; |
@@ -315,7 +323,7 @@ void AutocompleteSyncableService::AutofillEntriesChanged( |
bool AutocompleteSyncableService::LoadAutofillData( |
std::vector<AutofillEntry>* entries) const { |
return AutofillTable::FromWebDatabase( |
- web_data_service_->GetDatabase())->GetAllAutofillEntries(entries); |
+ web_data_delegate_->GetDatabase())->GetAllAutofillEntries(entries); |
} |
bool AutocompleteSyncableService::SaveChangesToWebData( |
@@ -324,7 +332,7 @@ bool AutocompleteSyncableService::SaveChangesToWebData( |
if (!new_entries.empty() && |
!AutofillTable::FromWebDatabase( |
- web_data_service_->GetDatabase())->UpdateAutofillEntries( |
+ web_data_delegate_->GetDatabase())->UpdateAutofillEntries( |
new_entries)) { |
return false; |
} |
@@ -398,7 +406,7 @@ void AutocompleteSyncableService::WriteAutofillEntry( |
syncer::SyncError AutocompleteSyncableService::AutofillEntryDelete( |
const sync_pb::AutofillSpecifics& autofill) { |
if (!AutofillTable::FromWebDatabase( |
- web_data_service_->GetDatabase())->RemoveFormElement( |
+ web_data_delegate_->GetDatabase())->RemoveFormElement( |
UTF8ToUTF16(autofill.name()), UTF8ToUTF16(autofill.value()))) { |
return error_handler_->CreateAndUploadError( |
FROM_HERE, |
@@ -418,7 +426,7 @@ void AutocompleteSyncableService::ActOnChanges( |
case AutofillChange::UPDATE: { |
std::vector<base::Time> timestamps; |
if (!AutofillTable::FromWebDatabase( |
- web_data_service_->GetDatabase())->GetAutofillTimestamps( |
+ web_data_delegate_->GetDatabase())->GetAutofillTimestamps( |
change->key().name(), |
change->key().value(), |
×tamps)) { |