444 lines
15 KiB
Plaintext
Executable File
444 lines
15 KiB
Plaintext
Executable File
// Copyright 2015 The Chromium Authors
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
// Use the <code>chrome.autofillPrivate</code> API to add, remove, or update
|
|
// autofill data from the settings UI.
|
|
namespace autofillPrivate {
|
|
// Subset of properties from the user account (signin component, AccountInfo).
|
|
dictionary AccountInfo {
|
|
DOMString email;
|
|
boolean isSyncEnabledForAutofillProfiles;
|
|
boolean isEligibleForAddressAccountStorage;
|
|
|
|
// Controls whether the Autofill Sync toggle should be available (duplicated
|
|
// from the Sync Settings page) on the Autofill Settings page.
|
|
// TODO(crbug.com/40943238): Remove when toggle becomes available on the Sync
|
|
// page for non-syncing users.
|
|
boolean isAutofillSyncToggleAvailable;
|
|
|
|
// Represents the UserSelectableType::kAutofill state (enabled or not).
|
|
// TODO(crbug.com/40943238): Remove when toggle becomes available on the Sync
|
|
// page for non-syncing users.
|
|
boolean isAutofillSyncToggleEnabled;
|
|
};
|
|
|
|
// A copy of FieldType from
|
|
// chrome/common/extensions/api/autofill_private.idl
|
|
enum FieldType {
|
|
NO_SERVER_DATA,
|
|
UNKNOWN_TYPE,
|
|
EMPTY_TYPE,
|
|
NAME_FIRST,
|
|
NAME_MIDDLE,
|
|
NAME_LAST,
|
|
NAME_MIDDLE_INITIAL,
|
|
NAME_FULL,
|
|
NAME_SUFFIX,
|
|
EMAIL_ADDRESS,
|
|
PHONE_HOME_NUMBER,
|
|
PHONE_HOME_CITY_CODE,
|
|
PHONE_HOME_COUNTRY_CODE,
|
|
PHONE_HOME_CITY_AND_NUMBER,
|
|
PHONE_HOME_WHOLE_NUMBER,
|
|
ADDRESS_HOME_LINE1,
|
|
ADDRESS_HOME_LINE2,
|
|
ADDRESS_HOME_APT_NUM,
|
|
ADDRESS_HOME_CITY,
|
|
ADDRESS_HOME_STATE,
|
|
ADDRESS_HOME_ZIP,
|
|
ADDRESS_HOME_COUNTRY,
|
|
CREDIT_CARD_NAME_FULL,
|
|
CREDIT_CARD_NUMBER,
|
|
CREDIT_CARD_EXP_MONTH,
|
|
CREDIT_CARD_EXP_2_DIGIT_YEAR,
|
|
CREDIT_CARD_EXP_4_DIGIT_YEAR,
|
|
CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR,
|
|
CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR,
|
|
CREDIT_CARD_TYPE,
|
|
CREDIT_CARD_VERIFICATION_CODE,
|
|
COMPANY_NAME,
|
|
FIELD_WITH_DEFAULT_VALUE,
|
|
MERCHANT_EMAIL_SIGNUP,
|
|
MERCHANT_PROMO_CODE,
|
|
PASSWORD,
|
|
ACCOUNT_CREATION_PASSWORD,
|
|
ADDRESS_HOME_STREET_ADDRESS,
|
|
ADDRESS_HOME_SORTING_CODE,
|
|
ADDRESS_HOME_DEPENDENT_LOCALITY,
|
|
ADDRESS_HOME_LINE3,
|
|
NOT_ACCOUNT_CREATION_PASSWORD,
|
|
USERNAME,
|
|
USERNAME_AND_EMAIL_ADDRESS,
|
|
NEW_PASSWORD,
|
|
PROBABLY_NEW_PASSWORD,
|
|
NOT_NEW_PASSWORD,
|
|
CREDIT_CARD_NAME_FIRST,
|
|
CREDIT_CARD_NAME_LAST,
|
|
PHONE_HOME_EXTENSION,
|
|
CONFIRMATION_PASSWORD,
|
|
AMBIGUOUS_TYPE,
|
|
SEARCH_TERM,
|
|
PRICE,
|
|
NOT_PASSWORD,
|
|
SINGLE_USERNAME,
|
|
NOT_USERNAME,
|
|
UPI_VPA,
|
|
ADDRESS_HOME_STREET_NAME,
|
|
ADDRESS_HOME_HOUSE_NUMBER,
|
|
ADDRESS_HOME_SUBPREMISE,
|
|
ADDRESS_HOME_OTHER_SUBUNIT,
|
|
NAME_LAST_FIRST,
|
|
NAME_LAST_CONJUNCTION,
|
|
NAME_LAST_SECOND,
|
|
NAME_HONORIFIC_PREFIX,
|
|
ADDRESS_HOME_ADDRESS,
|
|
ADDRESS_HOME_ADDRESS_WITH_NAME,
|
|
ADDRESS_HOME_FLOOR,
|
|
PHONE_HOME_CITY_CODE_WITH_TRUNK_PREFIX,
|
|
PHONE_HOME_CITY_AND_NUMBER_WITHOUT_TRUNK_PREFIX,
|
|
PHONE_HOME_NUMBER_PREFIX,
|
|
PHONE_HOME_NUMBER_SUFFIX,
|
|
IBAN_VALUE,
|
|
CREDIT_CARD_STANDALONE_VERIFICATION_CODE,
|
|
NUMERIC_QUANTITY,
|
|
ONE_TIME_CODE,
|
|
DELIVERY_INSTRUCTIONS,
|
|
ADDRESS_HOME_OVERFLOW,
|
|
ADDRESS_HOME_LANDMARK,
|
|
ADDRESS_HOME_OVERFLOW_AND_LANDMARK,
|
|
ADDRESS_HOME_ADMIN_LEVEL2,
|
|
ADDRESS_HOME_STREET_LOCATION,
|
|
ADDRESS_HOME_BETWEEN_STREETS,
|
|
ADDRESS_HOME_BETWEEN_STREETS_OR_LANDMARK,
|
|
ADDRESS_HOME_STREET_LOCATION_AND_LOCALITY,
|
|
ADDRESS_HOME_STREET_LOCATION_AND_LANDMARK,
|
|
ADDRESS_HOME_DEPENDENT_LOCALITY_AND_LANDMARK,
|
|
ADDRESS_HOME_BETWEEN_STREETS_1,
|
|
ADDRESS_HOME_BETWEEN_STREETS_2,
|
|
SINGLE_USERNAME_FORGOT_PASSWORD,
|
|
ADDRESS_HOME_APT,
|
|
ADDRESS_HOME_APT_TYPE,
|
|
ADDRESS_HOME_HOUSE_NUMBER_AND_APT,
|
|
SINGLE_USERNAME_WITH_INTERMEDIATE_VALUES,
|
|
IMPROVED_PREDICTION,
|
|
MAX_VALID_FIELD_TYPE
|
|
};
|
|
|
|
// The address record type. Describes where the address is stored.
|
|
enum AddressRecordType {
|
|
// The address is stored in the Chrome infrastructure (locally and
|
|
// possibly synced between devices).
|
|
LOCAL_OR_SYNCABLE,
|
|
// The address is stored in a third party service that is tied
|
|
// to user's account.
|
|
ACCOUNT
|
|
};
|
|
|
|
// Metadata about an autofill entry (address or credit card) which is used to
|
|
// render a summary list of all entries.
|
|
dictionary AutofillMetadata {
|
|
// Short summary of the address/credit card which is displayed in the UI; an
|
|
// undefined value means that this entry has just been created on the client
|
|
// and has not yet been given a summary.
|
|
DOMString summaryLabel;
|
|
|
|
// Short, secondary summary of the address/credit card which is displayed
|
|
// in the UI; an undefined value means that this entry has just been created
|
|
// on the client and has not yet been given a summary.
|
|
DOMString? summarySublabel;
|
|
|
|
// For addresses. Describes where the address is stored.
|
|
AddressRecordType? recordType;
|
|
|
|
// For credit cards, whether the entry is locally owned by Chrome (as opposed to
|
|
// being synced down from the server). Non-local entries may not be editable.
|
|
boolean? isLocal;
|
|
|
|
// For credit cards, whether this is migratable (both the card number and
|
|
// expiration date valid and does not have the duplicated server card).
|
|
boolean? isMigratable;
|
|
|
|
// For credit cards. Indicates whether a card is eligible for virtual cards
|
|
// enrollment.
|
|
boolean? isVirtualCardEnrollmentEligible;
|
|
|
|
// For credit cards. Indicates whether a card has been enrolled in virtual
|
|
// cards if it is eligible.
|
|
boolean? isVirtualCardEnrolled;
|
|
};
|
|
|
|
// Represents single entry of the autofill profile, containing field type and
|
|
// the corresponding field value.
|
|
dictionary AddressField {
|
|
FieldType type;
|
|
DOMString value;
|
|
};
|
|
|
|
// An address entry which can be saved in the autofill section of the
|
|
// settings UI.
|
|
dictionary AddressEntry {
|
|
// Globally unique identifier for this entry.
|
|
DOMString? guid;
|
|
|
|
// Fields have to be stored in the array with every field style stored only
|
|
// once.
|
|
AddressField[] fields;
|
|
|
|
DOMString? languageCode;
|
|
|
|
AutofillMetadata? metadata;
|
|
};
|
|
|
|
// An entry representing a country and its code.
|
|
dictionary CountryEntry {
|
|
// The internationalized name of the country.
|
|
DOMString? name;
|
|
|
|
// A two-character string representing the country.
|
|
DOMString? countryCode;
|
|
};
|
|
|
|
// A component to be shown in an address editor. Different countries have
|
|
// different components to their addresses.
|
|
dictionary AddressComponent {
|
|
// The field type.
|
|
FieldType field;
|
|
|
|
// The name of the field.
|
|
DOMString fieldName;
|
|
|
|
// A hint for the UI regarding whether the input is likely to be long.
|
|
boolean isLongField;
|
|
|
|
// Whether this component is required or not.
|
|
boolean isRequired;
|
|
|
|
// A placeholder for the text field to be used when the user has not yet
|
|
// input a value for the field.
|
|
DOMString? placeholder;
|
|
};
|
|
|
|
// A row of address components. Each component in a row should be shown in the
|
|
// same row in the UI. For example, city, state, and zip code are all included
|
|
// on the same line for US addresses.
|
|
dictionary AddressComponentRow {
|
|
AddressComponent[] row;
|
|
};
|
|
|
|
// The address components for a given country code. Each entry in |components|
|
|
// constitutes a row in the UI, while each inner array contains the list of
|
|
// components to use in that row. For example, city, state, and zip code are
|
|
// all included on the same line for US addresses. This dictionary also
|
|
// includes the associated language code.
|
|
dictionary AddressComponents {
|
|
// The components.
|
|
AddressComponentRow[] components;
|
|
|
|
// The language code.
|
|
DOMString languageCode;
|
|
};
|
|
|
|
// A credit card entry which can be saved in the autofill section of the
|
|
// settings UI.
|
|
dictionary CreditCardEntry {
|
|
// Globally unique identifier for this entry.
|
|
DOMString? guid;
|
|
|
|
// The card's instrument ID from the GPay server, if applicable.
|
|
DOMString? instrumentId;
|
|
|
|
// Name of the person who owns the credit card.
|
|
DOMString? name;
|
|
|
|
// Credit card number.
|
|
DOMString? cardNumber;
|
|
|
|
// Month as 2-character string ("01" = January, "12" = December).
|
|
DOMString? expirationMonth;
|
|
|
|
// Year as a 4-character string (as in "2015").
|
|
DOMString? expirationYear;
|
|
|
|
// Credit card's nickname.
|
|
DOMString? nickname;
|
|
|
|
// Credit card's network.
|
|
DOMString? network;
|
|
|
|
// Credit card's image source.
|
|
DOMString? imageSrc;
|
|
|
|
// Credit card's masked cvc.
|
|
DOMString? cvc;
|
|
|
|
// Credit card's product terms URL.
|
|
DOMString? productTermsUrl;
|
|
|
|
AutofillMetadata? metadata;
|
|
};
|
|
|
|
// An IBAN entry which can be saved in the autofill section of the
|
|
// settings UI.
|
|
dictionary IbanEntry {
|
|
// Globally unique identifier for this entry.
|
|
DOMString? guid;
|
|
|
|
// IBAN value.
|
|
DOMString? value;
|
|
|
|
// IBAN's nickname.
|
|
DOMString? nickname;
|
|
|
|
AutofillMetadata? metadata;
|
|
};
|
|
|
|
// User annotations entry data. Corresponds to the eponymous message from
|
|
// components/optimization_guide/proto/features/common_quality_data.proto.
|
|
dictionary UserAnnotationsEntry {
|
|
long entryId;
|
|
DOMString key;
|
|
DOMString value;
|
|
};
|
|
|
|
callback GetAccountInfoCallback = void(optional AccountInfo accountInfo);
|
|
callback GetCountryListCallback = void(CountryEntry[] countries);
|
|
callback GetAddressComponentsCallback = void(AddressComponents components);
|
|
callback GetAddressListCallback = void(AddressEntry[] entries);
|
|
callback GetCreditCardListCallback = void(CreditCardEntry[] entries);
|
|
callback GetIbanListCallback = void(IbanEntry[] entries);
|
|
callback IsValidIbanCallback = void(boolean isValid);
|
|
callback GetCreditCardCallback = void(optional CreditCardEntry card);
|
|
callback CheckForDeviceAuthCallback = void(boolean isDeviceAuthAvailable);
|
|
callback GetUserAnnotationsEntriesCallback = void(UserAnnotationsEntry[] items);
|
|
|
|
interface Functions {
|
|
// Gets currently signed-in user profile info, no value is returned if
|
|
// the user is not signed-in.
|
|
// |callback|: Callback which will be called with the info.
|
|
static void getAccountInfo(
|
|
GetAccountInfoCallback callback);
|
|
|
|
// Saves the given address. If |address| has an empty string as its ID, it
|
|
// will be assigned a new one and added as a new entry.
|
|
// |address|: The address entry to save.
|
|
static void saveAddress(AddressEntry address);
|
|
|
|
// Gets the list of all countries.
|
|
// |forAccountAddressProfile|: whether the address profile opened in the
|
|
// editor originates in the user's profile.
|
|
// |callback|: Callback which will be called with the countries.
|
|
static void getCountryList(
|
|
boolean forAccountAddressProfile,
|
|
GetCountryListCallback callback);
|
|
|
|
// Gets the address components for a given country code.
|
|
// |countryCode|: A two-character string representing the address' country
|
|
// whose components should be returned. See autofill_country.cc for a
|
|
// list of valid codes.
|
|
// |callback|: Callback which will be called with components.
|
|
static void getAddressComponents(
|
|
DOMString countryCode,
|
|
GetAddressComponentsCallback callback);
|
|
|
|
// Gets the list of addresses.
|
|
// |callback|: Callback which will be called with the list of addresses.
|
|
static void getAddressList(
|
|
GetAddressListCallback callback);
|
|
|
|
// Saves the given credit card. If |card| has an empty string as its
|
|
// ID, it will be assigned a new one and added as a new entry.
|
|
// |card|: The card entry to save.
|
|
static void saveCreditCard(CreditCardEntry card);
|
|
|
|
// Saves the given IBAN. If `iban` has an empty string as its ID, it will be
|
|
// assigned a new one and added as a new entry.
|
|
// |iban|: The IBAN entry to save.
|
|
static void saveIban(IbanEntry iban);
|
|
|
|
// Removes the entry (address or credit card) with the given ID.
|
|
// |guid|: ID of the entry to remove.
|
|
static void removeEntry(DOMString guid);
|
|
|
|
// Gets the list of credit cards.
|
|
// |callback|: Callback which will be called with the list of credit cards.
|
|
static void getCreditCardList(
|
|
GetCreditCardListCallback callback);
|
|
|
|
// Gets the list of IBANs.
|
|
// `callback`: Callback which will be called with the list of IBANs.
|
|
static void getIbanList(
|
|
GetIbanListCallback callback);
|
|
|
|
// Returns true if the given `ibanValue` is a valid IBAN.
|
|
// `callback`: Callback which will be called with the result of IBAN
|
|
// validation.
|
|
static void isValidIban(
|
|
DOMString ibanValue, IsValidIbanCallback callback);
|
|
|
|
// Triggers local credit cards migration.
|
|
static void migrateCreditCards();
|
|
|
|
// Logs that the server cards edit link was clicked.
|
|
static void logServerCardLinkClicked();
|
|
|
|
// Enrolls a credit card into virtual cards.
|
|
// |cardId|: The server side id of the credit card to be enrolled. Note it
|
|
// refers to the legacy server id of credit cards, not the instrument ids.
|
|
static void addVirtualCard(DOMString cardId);
|
|
|
|
// Unenrolls a credit card from virtual cards.
|
|
// |cardId|: The server side id of the credit card to be unenrolled. Note
|
|
// it refers to the legacy server id of credit cards, not the instrument
|
|
// ids.
|
|
static void removeVirtualCard(DOMString cardId);
|
|
|
|
// Authenticates the user via device authentication and if successful, it
|
|
// will then flip the mandatory auth toggle.
|
|
static void authenticateUserAndFlipMandatoryAuthToggle();
|
|
|
|
// Returns the local card based on the `guid` provided. The user could
|
|
// also be challenged with a reauth if that is enabled. For a successful
|
|
// auth, the local card is returned otherwise return a null object.
|
|
static void getLocalCard(
|
|
DOMString guid, GetCreditCardCallback callback);
|
|
|
|
// Returns true if there is authentication available on this device
|
|
// (biometric or screen lock), false otherwise.
|
|
static void checkIfDeviceAuthAvailable(
|
|
CheckForDeviceAuthCallback callback);
|
|
|
|
// Bulk delete all the CVCs (server and local) from the local webdata
|
|
// database. For server CVCs, this will also clear them from the Chrome
|
|
// sync server and thus other devices.
|
|
static void bulkDeleteAllCvcs();
|
|
|
|
// Sets the Sync Autofill toggle value, which corresponds to
|
|
// `syncer::UserSelectableType::kAutofill` in `SyncUserSettings`.
|
|
static void setAutofillSyncToggleEnabled(boolean enabled);
|
|
|
|
// Returns the list of user annotations entries.
|
|
static void getUserAnnotationsEntries(
|
|
GetUserAnnotationsEntriesCallback callback);
|
|
|
|
// Deletes the user annotations entry by its id.
|
|
static void deleteUserAnnotationsEntry(long entryId);
|
|
|
|
// Deletes all user annotations entries.
|
|
static void deleteAllUserAnnotationsEntries();
|
|
};
|
|
|
|
interface Events {
|
|
// Fired when the personal data has changed, meaning that an entry has
|
|
// been added, removed, or changed.
|
|
// `addressEntries`: the updated list of addresses.
|
|
// `creditCardEntries`: the updated list of credit cards.
|
|
// `ibans`: the updated list of IBANs.
|
|
// `accountInfo`: account info if the user is signed-in or no value if not.
|
|
static void onPersonalDataChanged(AddressEntry[] addressEntries,
|
|
CreditCardEntry[] creditCardEntries,
|
|
IbanEntry[] ibans,
|
|
optional AccountInfo accountInfo);
|
|
};
|
|
};
|