| OLD | NEW |
| 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 Loading... |
| 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 |
| OLD | NEW |