| Index: components/prefs/public/interfaces/preferences.mojom
|
| diff --git a/components/prefs/public/interfaces/preferences.mojom b/components/prefs/public/interfaces/preferences.mojom
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..a3e4f0c11c3bb5f2d8ff982cccbba6c85c32e890
|
| --- /dev/null
|
| +++ b/components/prefs/public/interfaces/preferences.mojom
|
| @@ -0,0 +1,39 @@
|
| +// Copyright 2016 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;
|
| +
|
| +// A Preference could be one of several base types. PrefStore utilizes
|
| +// base::Value to encompass these. TODO(jonross): create struct traits so that
|
| +// we can pass base::Value via mojo.
|
| +struct Preference {
|
| + enum PreferenceType { INT, STRING };
|
| +
|
| + PreferenceType type;
|
| + uint32 integer_value_;
|
| + string? string_value_;
|
| +};
|
| +
|
| +// A list of preference keys.
|
| +struct PreferenceList {
|
| + array<string> preferences;
|
| +};
|
| +
|
| +// A key-value mapping of preferences.
|
| +struct PreferenceMap {
|
| + map<string, Preference> preferences;
|
| +};
|
| +
|
| +// Used to subscribe to preference changes within PreferenceManager. After
|
| +// requesting to observe, the current values for all requested keys are sent.
|
| +interface PreferenceObserver {
|
| + OnPreferencesChanged(PreferenceMap preferences);
|
| +};
|
| +
|
| +// Manages actual read/write of preference data. Accepts observers who subscribe
|
| +// to preferences, notifying them of changes.
|
| +interface PreferenceManager {
|
| + AddObserver(PreferenceList preferences, PreferenceObserver client);
|
| + SetPreferences(PreferenceMap preferences);
|
| +};
|
|
|