// 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_PROFILE_TOKEN_QUALITY_H_ #define COMPONENTS_AUTOFILL_CORE_BROWSER_PROFILE_TOKEN_QUALITY_H_ #include <stddef.h> #include <stdint.h> #include <string> #include <string_view> #include <type_traits> #include <utility> #include <vector> #include "base/containers/circular_deque.h" #include "base/containers/flat_map.h" #include "base/containers/span.h" #include "base/memory/raw_ref.h" #include "base/types/strong_alias.h" #include "components/autofill/core/browser/field_types.h" #include "components/autofill/core/common/form_data.h" #include "components/autofill/core/common/signatures.h" namespace autofill { class AutofillField; class AutofillProfile; class FormStructure; class PersonalDataManager; // `ProfileTokenQuality` is associated with one `AutofillProfile` and tracks if // the supported types of that profile are accepted or edited after filling. // It is intended to collect observations on form submission using // `AddObservationsForFilledForm()`. // // The observations (accessible via `GetObservationsForFieldType()`) can be used // to understand of the quality of a supported type. This has applications for // e.g. voting ("high quality votes") and detection of quasi-duplicate profiles. // No applications are implemented yet. // // Observations are only stored for stored types. The observations of derived // types use the observations of the corresponding stored type. When collecting // an observation for a derived type, it is stored as an observation for the // corresponding stored type. // See `components/autofill/README.md` for details on stored and derived types. class ProfileTokenQuality { … }; } // namespace autofill #endif // COMPONENTS_AUTOFILL_CORE_BROWSER_PROFILE_TOKEN_QUALITY_H_