| Index: services/preferences/public/interfaces/preferences_configuration.mojom
|
| diff --git a/services/preferences/public/interfaces/preferences_configuration.mojom b/services/preferences/public/interfaces/preferences_configuration.mojom
|
| index 3ddd8234cb02a8b30b0960e423cfa8bccaf0fb33..3cdd000664a98af5ab82696e30a9b8fa1dacf845 100644
|
| --- a/services/preferences/public/interfaces/preferences_configuration.mojom
|
| +++ b/services/preferences/public/interfaces/preferences_configuration.mojom
|
| @@ -5,11 +5,57 @@
|
| module prefs.mojom;
|
|
|
| import "mojo/common/file_path.mojom";
|
| +import "mojo/common/string16.mojom";
|
| +import "services/preferences/public/interfaces/tracked_preference_validation_delegate.mojom";
|
|
|
| union PersistentPrefStoreConfiguration {
|
| SimplePersistentPrefStoreConfiguration simple_configuration;
|
| + TrackedPersistentPrefStoreConfiguration tracked_configuration;
|
| };
|
|
|
| struct SimplePersistentPrefStoreConfiguration {
|
| mojo.common.mojom.FilePath pref_filename;
|
| };
|
| +
|
| +// These parameters are passed to prefs::CreateTrackedPersistentPrefStore() in
|
| +// services/preferences/public/cpp/tracked_persistent_pref_store_factory.cc.
|
| +struct TrackedPersistentPrefStoreConfiguration {
|
| + mojo.common.mojom.FilePath unprotected_pref_filename;
|
| + mojo.common.mojom.FilePath protected_pref_filename;
|
| + array<TrackedPreferenceMetadata> tracking_configuration;
|
| + uint64 reporting_ids_count;
|
| + string seed;
|
| + string legacy_device_id;
|
| + mojo.common.mojom.String16 registry_path;
|
| + TrackedPreferenceValidationDelegate? validation_delegate;
|
| + ResetOnLoadObserver? reset_on_load_observer;
|
| +};
|
| +
|
| +struct TrackedPreferenceMetadata {
|
| + enum EnforcementLevel { NO_ENFORCEMENT, ENFORCE_ON_LOAD };
|
| +
|
| + enum PrefTrackingStrategy {
|
| + // Atomic preferences are tracked as a whole.
|
| + ATOMIC,
|
| + // Split preferences are dictionaries for which each top-level entry is
|
| + // tracked independently. Note: preferences using this strategy must be kept
|
| + // in sync with TrackedSplitPreferences in histograms.xml.
|
| + SPLIT,
|
| + };
|
| +
|
| + enum ValueType {
|
| + IMPERSONAL,
|
| + // The preference value may contain personal information.
|
| + PERSONAL,
|
| + };
|
| +
|
| + uint64 reporting_id;
|
| + string name;
|
| + EnforcementLevel enforcement_level;
|
| + PrefTrackingStrategy strategy;
|
| + ValueType value_type;
|
| +};
|
| +
|
| +interface ResetOnLoadObserver {
|
| + OnResetOnLoad();
|
| +};
|
|
|