Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(726)

Unified Diff: chrome/browser/webdata/autocomplete_syncable_service.cc

Issue 14081043: Hook up Autofill Backend interface to SyncableServices (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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(),
&timestamps)) {

Powered by Google App Engine
This is Rietveld 408576698