| // Copyright 2017 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| 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/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; |
| string registry_seed; |
| 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(); |
| }; |