// Copyright 2023 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef COMPONENTS_AUTOFILL_CORE_BROWSER_WEBDATA_ADDRESSES_ADDRESS_AUTOFILL_TABLE_H_ #define COMPONENTS_AUTOFILL_CORE_BROWSER_WEBDATA_ADDRESSES_ADDRESS_AUTOFILL_TABLE_H_ #include <stddef.h> #include <memory> #include <optional> #include <string> #include <vector> #include "base/time/time.h" #include "components/autofill/core/browser/data_model/autofill_profile.h" #include "components/webdata/common/web_database_table.h" class WebDatabase; namespace autofill { // This class manages the various address Autofill tables within the SQLite // database passed to the constructor. It expects the following schemas: // // Note: The database stores time in seconds, UTC. // ----------------------------------------------------------------------------- // addresses This table contains Autofill profile metadata. // // guid A guid string to uniquely identify the profile. // record_type The AutofillProfile::RecordType of the profile, encoded // by the enum's underlying integer. // use_count The number of times this profile has been used to fill a // form. // use_date The last (use_date), second last (use_date2) and third // use_date2 last date (use_date3) at which this profile was used to // use_date3 fill a form, in time_t. // date_modified The date on which this profile was last modified, in // time_t. // language_code The BCP 47 language code used to format the address for // display. For example, a JP address with "ja" language // code starts with the postal code, but a JP address with // "ja-latn" language code starts with the recipient name. // label A label intended to be chosen by the user. This was // however never implemented and is currently unused. // initial_creator_id The application that initially created the profile. // Represented as an integer. See AutofillProfile. // last_modifier_id The application that performed the last non-metadata // modification of the profile. // Represented as an integer. See AutofillProfile. // ----------------------------------------------------------------------------- // address_type_tokens Contains the values for all relevant FieldTypes of an // addresses entry. At most one entry per (guid, type) // pair exists. // // guid The guid of the corresponding profile in addresses. // type The FieldType, represented by its integer value in // the FieldType enum. // value The string value of the type. // verification_status Each token has an additional validation status that // indicates if Autofill parsed the value out of an // unstructured token, or if Autofill formatted the token // from a structured subcomponent, or if the value was // observed in a form submission, or even validated by the // user in the settings. // observations An encoding of the observations stored for this `type`. // See `ProfileTokenConfidence:: // SerializeObservationsForStoredType()`. // ----------------------------------------------------------------------------- class AddressAutofillTable : public WebDatabaseTable { … }; } // namespace autofill #endif // COMPONENTS_AUTOFILL_CORE_BROWSER_WEBDATA_ADDRESSES_ADDRESS_AUTOFILL_TABLE_H_