| Index: services/preferences/public/interfaces/preferences.mojom
|
| diff --git a/services/preferences/public/interfaces/preferences.mojom b/services/preferences/public/interfaces/preferences.mojom
|
| index f3e140956b3e4c8788718fc2af0cc2ae3855cad2..fe32adc3a067f165abbde0eef97e9383718c8f55 100644
|
| --- a/services/preferences/public/interfaces/preferences.mojom
|
| +++ b/services/preferences/public/interfaces/preferences.mojom
|
| @@ -4,7 +4,10 @@
|
|
|
| module prefs.mojom;
|
|
|
| +import "mojo/common/file_path.mojom";
|
| +import "mojo/common/string16.mojom";
|
| import "mojo/common/values.mojom";
|
| +import "services/preferences/public/interfaces/tracked_preference_validation_delegate.mojom";
|
|
|
| const string kServiceName = "preferences";
|
|
|
| @@ -58,3 +61,57 @@ interface PersistentPrefStoreConnector {
|
| mojo.common.mojom.DictionaryValue? preferences,
|
| PersistentPrefStore? pref_store);
|
| };
|
| +
|
| +interface ResetOnLoadObserver {
|
| + OnResetOnLoad();
|
| +};
|
| +
|
| +interface PersistentPrefStoreInit {
|
| + Init(UserPrefsConfiguration configuration);
|
| +};
|
| +
|
| +union UserPrefsConfiguration {
|
| + SimpleUserPrefsConfiguration simple_configuration;
|
| + SegregatedUserPrefsConfiguration segregated_configuration;
|
| +};
|
| +
|
| +struct SimpleUserPrefsConfiguration {
|
| + mojo.common.mojom.FilePath pref_filename;
|
| +};
|
| +
|
| +struct SegregatedUserPrefsConfiguration {
|
| + 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;
|
| +};
|
|
|