#include "components/autofill/core/browser/webdata/addresses/autofill_profile_sync_bridge.h"
#include <memory>
#include <unordered_set>
#include <vector>
#include "base/functional/bind.h"
#include "base/functional/callback_helpers.h"
#include "base/strings/utf_string_conversions.h"
#include "components/autofill/core/browser/data_model/autofill_profile.h"
#include "components/autofill/core/browser/proto/autofill_sync.pb.h"
#include "components/autofill/core/browser/webdata/addresses/address_autofill_table.h"
#include "components/autofill/core/browser/webdata/addresses/autofill_profile_sync_difference_tracker.h"
#include "components/autofill/core/browser/webdata/addresses/autofill_profile_sync_util.h"
#include "components/autofill/core/browser/webdata/autofill_sync_metadata_table.h"
#include "components/autofill/core/browser/webdata/autofill_webdata_service.h"
#include "components/sync/base/deletion_origin.h"
#include "components/sync/model/client_tag_based_data_type_processor.h"
#include "components/sync/model/data_type_local_change_processor.h"
#include "components/sync/model/metadata_change_list.h"
#include "components/sync/model/model_error.h"
#include "components/sync/model/mutable_data_batch.h"
#include "components/sync/model/sync_metadata_store_change_list.h"
#include "components/sync/protocol/entity_data.h"
AutofillProfileSpecifics;
EntityData;
MetadataChangeList;
ModelError;
namespace autofill {
namespace {
#undef RETURN_IF_ERROR
#define RETURN_IF_ERROR(x) …
static int kAutofillProfileSyncBridgeUserDataKey = …;
}
void AutofillProfileSyncBridge::CreateForWebDataServiceAndBackend(
const std::string& app_locale,
AutofillWebDataBackend* web_data_backend,
AutofillWebDataService* web_data_service) { … }
syncer::DataTypeSyncBridge* AutofillProfileSyncBridge::FromWebDataService(
AutofillWebDataService* web_data_service) { … }
AutofillProfileSyncBridge::AutofillProfileSyncBridge(
std::unique_ptr<syncer::DataTypeLocalChangeProcessor> change_processor,
const std::string& app_locale,
AutofillWebDataBackend* backend)
: … { … }
AutofillProfileSyncBridge::~AutofillProfileSyncBridge() { … }
std::unique_ptr<MetadataChangeList>
AutofillProfileSyncBridge::CreateMetadataChangeList() { … }
std::optional<syncer::ModelError> AutofillProfileSyncBridge::MergeFullSyncData(
std::unique_ptr<MetadataChangeList> metadata_change_list,
syncer::EntityChangeList entity_data) { … }
std::optional<ModelError>
AutofillProfileSyncBridge::ApplyIncrementalSyncChanges(
std::unique_ptr<MetadataChangeList> metadata_change_list,
syncer::EntityChangeList entity_changes) { … }
std::unique_ptr<syncer::DataBatch> AutofillProfileSyncBridge::GetDataForCommit(
StorageKeyList storage_keys) { … }
std::unique_ptr<syncer::DataBatch>
AutofillProfileSyncBridge::GetAllDataForDebugging() { … }
void AutofillProfileSyncBridge::ActOnLocalChange(
const AutofillProfileChange& change) { … }
std::optional<syncer::ModelError> AutofillProfileSyncBridge::FlushSyncTracker(
std::unique_ptr<MetadataChangeList> metadata_change_list,
AutofillProfileSyncDifferenceTracker* tracker) { … }
void AutofillProfileSyncBridge::LoadMetadata() { … }
std::string AutofillProfileSyncBridge::GetClientTag(
const EntityData& entity_data) { … }
std::string AutofillProfileSyncBridge::GetStorageKey(
const EntityData& entity_data) { … }
void AutofillProfileSyncBridge::AutofillProfileChanged(
const AutofillProfileChange& change) { … }
AddressAutofillTable* AutofillProfileSyncBridge::GetAutofillTable() { … }
AutofillSyncMetadataTable* AutofillProfileSyncBridge::GetSyncMetadataStore() { … }
}