Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(394)

Side by Side Diff: services/preferences/public/interfaces/preferences.mojom

Issue 2635153002: Pref service: expose all read-only PrefStores through Mojo (Closed)
Patch Set: Create and register service Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 module prefs.mojom; 5 module prefs.mojom;
6 6
7 import "mojo/common/values.mojom"; 7 import "mojo/common/values.mojom";
8 8
9 const string kServiceName = "preferences"; 9 const string kServiceName = "preferences";
10 10
11 // Used for the creation of a PreferencesService and to ensure that the 11 // Used for the creation of a PreferencesService and to ensure that the
12 // PreferencesServiceClient is bound at creation time. 12 // PreferencesServiceClient is bound at creation time.
13 interface PreferencesServiceFactory { 13 interface PreferencesServiceFactory {
14 // Creates a PreferencesService bound to the provided |observer|. 14 // Creates a PreferencesService bound to the provided |observer|.
15 Create(PreferencesServiceClient observer, PreferencesService& service); 15 Create(PreferencesServiceClient observer, PreferencesService& service);
16 }; 16 };
17 17
18 // Used to subscribe to preference changes within PreferenceManager. After 18 // Used to subscribe to preference changes within PreferenceManager. After
19 // requesting to observe, the current values for all requested keys are sent. 19 // requesting to observe, the current values for all requested keys are sent.
20 interface PreferencesServiceClient { 20 interface PreferencesServiceClient {
21 OnPreferencesChanged(mojo.common.mojom.DictionaryValue preferences); 21 OnPreferencesChanged(mojo.common.mojom.DictionaryValue preferences);
22 }; 22 };
23 23
24 // Manages actual read/write of preference data. Accepts observers who subscribe 24 // Manages actual read/write of preference data. Accepts observers who subscribe
25 // to preferences, notifying them of changes. 25 // to preferences, notifying them of changes.
26 interface PreferencesService { 26 interface PreferencesService {
27 SetPreferences(mojo.common.mojom.DictionaryValue preferences); 27 SetPreferences(mojo.common.mojom.DictionaryValue preferences);
28 Subscribe(array<string> preferences); 28 Subscribe(array<string> preferences);
29 }; 29 };
30
31 const string kPrefStoreServiceName = "preferences2";
32
33 [Native]
34 enum PrefStoreType;
35
36 // Allows observing changes to prefs stored in a |PrefStore|.
37 interface PrefStoreObserver {
38 OnPreferencesChanged(mojo.common.mojom.DictionaryValue preferences);
39 OnInitializationCompleted(bool succeeded);
40 };
41
42 // Captures the connections to a PrefStore by supplying the initial state of the
43 // store and a handle to receive notifications on.
44 struct PrefStoreConnection {
45 PrefStoreObserver& observer;
46 mojo.common.mojom.DictionaryValue initial_prefs;
47 bool is_initialized;
48 };
49
50 // Manages actual read of preference data. Accepts observers who subscribe to
51 // preferences, notifying them of changes.
52 interface PrefStore {
53 // Add an observer of changes. This current values of all prefs will not be
54 // communicated through a call to |observer| but instead be returned in
55 // |initial_prefs|.
56 AddObserver() => (PrefStoreConnection connection);
57 };
58
59 // Manages a registry of all pref stores. Registered pref stores can be
60 // connected to through the |PrefStoreConnector| interface.
61 interface PrefStoreRegistry {
62 // Register a pref store.
63 Register(PrefStore pref_store, PrefStoreType type);
64 };
65
66 // Allows connections to pref stores registered with |PrefStoreRegistry|.
67 interface PrefStoreConnector {
68 // Connect to all registered pref stores, retrieving the current values of all
69 // prefs in each store and an |observer| interfaces through which updates can
70 // be received.
71 Connect() => (map<PrefStoreType, PrefStoreConnection> connections);
72 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698