1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
|
// Copyright 2016 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "components/sync/base/hash_util.h"
#include "base/logging.h"
#include "base/strings/strcat.h"
#include "base/strings/string_number_conversions.h"
#include "components/sync/base/data_type.h"
#include "components/sync/protocol/autofill_offer_specifics.pb.h"
#include "components/sync/protocol/autofill_specifics.pb.h"
#include "components/sync/protocol/autofill_valuable_specifics.pb.h"
namespace syncer {
std::string GetUnhashedClientTagFromAutofillWalletSpecifics(
const sync_pb::AutofillWalletSpecifics& specifics) {
switch (specifics.type()) {
case sync_pb::AutofillWalletSpecifics::MASKED_CREDIT_CARD:
return specifics.masked_card().id();
case sync_pb::AutofillWalletSpecifics::POSTAL_ADDRESS:
return specifics.address().id();
case sync_pb::AutofillWalletSpecifics::CUSTOMER_DATA:
return specifics.customer_data().id();
case sync_pb::AutofillWalletSpecifics::CREDIT_CARD_CLOUD_TOKEN_DATA:
return specifics.cloud_token_data().instrument_token();
case sync_pb::AutofillWalletSpecifics::PAYMENT_INSTRUMENT:
// Append a string to the instrument ID, since the same ID may be used for
// a MASKED_CREDIT_CARD entry.
return base::StrCat(
{"payment_instrument:",
base::NumberToString(
specifics.payment_instrument().instrument_id())});
case sync_pb::AutofillWalletSpecifics::PAYMENT_INSTRUMENT_CREATION_OPTION:
// Append a string to the ID since the ID is randomly generated without
// restrictions so it could be a duplicate ID of another type.
return base::StrCat(
{"payment_instrument_creation_option:",
specifics.payment_instrument_creation_option().id()});
case sync_pb::AutofillWalletSpecifics::MASKED_IBAN:
return std::string();
case sync_pb::AutofillWalletSpecifics::UNKNOWN:
DVLOG(1) << "New or unknown Autofill Wallet Specifics type is sent from "
"the sync server side while not handled by Chrome. This is "
"expected when the new type is not yet supported on current "
"chrome version.";
return std::string();
}
return std::string();
}
std::string GetUnhashedClientTagFromAutofillOfferSpecifics(
const sync_pb::AutofillOfferSpecifics& specifics) {
return base::NumberToString(specifics.id());
}
std::string GetUnhashedClientTagFromAutofillValuableSpecifics(
const sync_pb::AutofillValuableSpecifics& specifics) {
return specifics.id();
}
} // namespace syncer
|