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

Side by Side Diff: components/sync_preferences/pref_service_syncable_factory.cc

Issue 2767743003: Pref service: Merge connectors and send a PrefRegistry in Connect(). (Closed)
Patch Set: Created 3 years, 9 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 #include "components/sync_preferences/pref_service_syncable_factory.h" 5 #include "components/sync_preferences/pref_service_syncable_factory.h"
6 6
7 #include "base/trace_event/trace_event.h" 7 #include "base/trace_event/trace_event.h"
8 #include "build/build_config.h" 8 #include "build/build_config.h"
9 #include "components/pref_registry/pref_registry_syncable.h" 9 #include "components/pref_registry/pref_registry_syncable.h"
10 #include "components/prefs/default_pref_store.h" 10 #include "components/prefs/default_pref_store.h"
11 #include "components/prefs/pref_notifier_impl.h" 11 #include "components/prefs/pref_notifier_impl.h"
12 #include "components/prefs/pref_value_store.h" 12 #include "components/prefs/pref_value_store.h"
13 #include "components/sync_preferences/pref_service_syncable.h" 13 #include "components/sync_preferences/pref_service_syncable.h"
14 #include "services/preferences/public/cpp/persistent_pref_store_client.h"
14 #include "services/preferences/public/cpp/pref_store_adapter.h" 15 #include "services/preferences/public/cpp/pref_store_adapter.h"
15 #include "services/preferences/public/interfaces/preferences.mojom.h" 16 #include "services/preferences/public/interfaces/preferences.mojom.h"
16 #include "services/service_manager/public/cpp/connector.h" 17 #include "services/service_manager/public/cpp/connector.h"
17 18
18 #if !defined(OS_IOS) 19 #if !defined(OS_IOS)
19 #include "components/policy/core/browser/browser_policy_connector.h" 20 #include "components/policy/core/browser/browser_policy_connector.h"
20 #include "components/policy/core/browser/configuration_policy_pref_store.h" 21 #include "components/policy/core/browser/configuration_policy_pref_store.h"
21 #include "components/policy/core/common/policy_service.h" // nogncheck 22 #include "components/policy/core/common/policy_service.h" // nogncheck
22 #include "components/policy/core/common/policy_types.h" // nogncheck 23 #include "components/policy/core/common/policy_types.h" // nogncheck
23 #endif 24 #endif
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
76 } 77 }
77 78
78 } // namespace 79 } // namespace
79 80
80 std::unique_ptr<PrefServiceSyncable> PrefServiceSyncableFactory::CreateSyncable( 81 std::unique_ptr<PrefServiceSyncable> PrefServiceSyncableFactory::CreateSyncable(
81 user_prefs::PrefRegistrySyncable* pref_registry, 82 user_prefs::PrefRegistrySyncable* pref_registry,
82 service_manager::Connector* connector) { 83 service_manager::Connector* connector) {
83 TRACE_EVENT0("browser", "PrefServiceSyncableFactory::CreateSyncable"); 84 TRACE_EVENT0("browser", "PrefServiceSyncableFactory::CreateSyncable");
84 PrefNotifierImpl* pref_notifier = new PrefNotifierImpl(); 85 PrefNotifierImpl* pref_notifier = new PrefNotifierImpl();
85 86
87 if (!user_prefs_) {
88 prefs::mojom::PrefStoreConnectorPtr pref_connector;
89 connector->BindInterface(prefs::mojom::kPrefStoreServiceName,
90 &pref_connector);
91 user_prefs_ = new prefs::PersistentPrefStoreClient(
92 std::move(pref_connector), make_scoped_refptr(pref_registry));
93 }
94
86 // Expose all read-only stores through the prefs service. 95 // Expose all read-only stores through the prefs service.
87 auto managed = CreateRegisteredPrefStore(connector, managed_prefs_, 96 auto managed = CreateRegisteredPrefStore(connector, managed_prefs_,
88 PrefValueStore::MANAGED_STORE); 97 PrefValueStore::MANAGED_STORE);
89 auto supervised = CreateRegisteredPrefStore( 98 auto supervised = CreateRegisteredPrefStore(
90 connector, supervised_user_prefs_, PrefValueStore::SUPERVISED_USER_STORE); 99 connector, supervised_user_prefs_, PrefValueStore::SUPERVISED_USER_STORE);
91 auto extension = CreateRegisteredPrefStore(connector, extension_prefs_, 100 auto extension = CreateRegisteredPrefStore(connector, extension_prefs_,
92 PrefValueStore::EXTENSION_STORE); 101 PrefValueStore::EXTENSION_STORE);
93 auto command_line = CreateRegisteredPrefStore( 102 auto command_line = CreateRegisteredPrefStore(
94 connector, command_line_prefs_, PrefValueStore::COMMAND_LINE_STORE); 103 connector, command_line_prefs_, PrefValueStore::COMMAND_LINE_STORE);
95 auto recommended = CreateRegisteredPrefStore( 104 auto recommended = CreateRegisteredPrefStore(
96 connector, recommended_prefs_, PrefValueStore::RECOMMENDED_STORE); 105 connector, recommended_prefs_, PrefValueStore::RECOMMENDED_STORE);
97 106
98 // TODO(sammc): Register Mojo user pref store once implemented. 107 // TODO(sammc): Register Mojo user pref store once implemented.
99 std::unique_ptr<PrefServiceSyncable> pref_service(new PrefServiceSyncable( 108 std::unique_ptr<PrefServiceSyncable> pref_service(new PrefServiceSyncable(
100 pref_notifier, 109 pref_notifier,
101 new PrefValueStore(managed.get(), supervised.get(), extension.get(), 110 new PrefValueStore(managed.get(), supervised.get(), extension.get(),
102 command_line.get(), user_prefs_.get(), 111 command_line.get(), user_prefs_.get(),
103 recommended.get(), pref_registry->defaults().get(), 112 recommended.get(), pref_registry->defaults().get(),
104 pref_notifier), 113 pref_notifier),
105 user_prefs_.get(), pref_registry, pref_model_associator_client_, 114 user_prefs_.get(), pref_registry, pref_model_associator_client_,
106 read_error_callback_, async_)); 115 read_error_callback_, async_));
107 return pref_service; 116 return pref_service;
108 } 117 }
109 118
110 } // namespace sync_preferences 119 } // namespace sync_preferences
OLDNEW
« no previous file with comments | « chrome/browser/prefs/profile_pref_store_manager_unittest.cc ('k') | services/preferences/manifest.json » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698