Index: services/preferences/public/cpp/pref_store_manager_impl.h |
diff --git a/services/preferences/public/cpp/pref_store_manager_impl.h b/services/preferences/public/cpp/pref_store_manager_impl.h |
index 3310090d89448dc675ec72d279f4e93742889834..b0c989949653eab4998b193eebed3b3454ffe113 100644 |
--- a/services/preferences/public/cpp/pref_store_manager_impl.h |
+++ b/services/preferences/public/cpp/pref_store_manager_impl.h |
@@ -14,6 +14,10 @@ |
#include "services/service_manager/public/cpp/interface_factory.h" |
#include "services/service_manager/public/cpp/service.h" |
+namespace base { |
+class SequencedWorkerPool; |
+} |
+ |
namespace prefs { |
// This class mediates the connection of clients who wants to read preferences |
@@ -25,13 +29,18 @@ class PrefStoreManagerImpl |
public mojom::PrefStoreConnector, |
public service_manager::InterfaceFactory<mojom::PrefStoreConnector>, |
public service_manager::InterfaceFactory<mojom::PrefStoreRegistry>, |
+ public service_manager::InterfaceFactory< |
+ mojom::PersistentPrefStoreConnector>, |
+ public mojom::PersistentPrefStoreInit, |
+ public service_manager::InterfaceFactory<mojom::PersistentPrefStoreInit>, |
public service_manager::Service { |
public: |
using PrefStoreTypes = std::set<PrefValueStore::PrefStoreType>; |
// Only replies to Connect calls when all |expected_pref_stores| have |
// registered. |
- explicit PrefStoreManagerImpl(PrefStoreTypes expected_pref_stores); |
+ PrefStoreManagerImpl(PrefStoreTypes expected_pref_stores, |
+ scoped_refptr<base::SequencedWorkerPool> worker_pool); |
~PrefStoreManagerImpl() override; |
private: |
@@ -53,6 +62,18 @@ class PrefStoreManagerImpl |
void Create(const service_manager::Identity& remote_identity, |
prefs::mojom::PrefStoreRegistryRequest request) override; |
+ // service_manager::InterfaceFactory<PersistentPrefStoreConnector>: |
+ void Create( |
+ const service_manager::Identity& remote_identity, |
+ prefs::mojom::PersistentPrefStoreConnectorRequest request) override; |
+ |
+ // service_manager::InterfaceFactory<PersistentPrefStoreInit>: |
+ void Create(const service_manager::Identity& remote_identity, |
+ prefs::mojom::PersistentPrefStoreInitRequest request) override; |
+ |
+ // PersistentPrefStoreInit: |
+ void Init(mojom::UserPrefsConfigurationPtr configuration) override; |
+ |
// service_manager::Service: |
void OnStart() override; |
bool OnConnect(const service_manager::ServiceInfo& remote_info, |
@@ -72,6 +93,14 @@ class PrefStoreManagerImpl |
mojo::BindingSet<mojom::PrefStoreConnector> connector_bindings_; |
mojo::BindingSet<mojom::PrefStoreRegistry> registry_bindings_; |
+ std::unique_ptr<mojom::PersistentPrefStoreConnector> user_prefs_connector_; |
+ mojo::BindingSet<mojom::PersistentPrefStoreConnector> |
+ user_prefs_connector_bindings_; |
+ mojo::Binding<mojom::PersistentPrefStoreInit> init_binding_; |
+ std::vector<mojom::PersistentPrefStoreConnectorRequest> |
+ user_prefs_connector_requests_; |
+ |
+ scoped_refptr<base::SequencedWorkerPool> worker_pool_; |
// We hold on to the connection request callbacks until all expected |
// PrefStores have registered. |