| Index: services/preferences/pref_store_manager_impl.cc
|
| diff --git a/services/preferences/pref_store_manager_impl.cc b/services/preferences/pref_store_manager_impl.cc
|
| index bc3e48772cbe41317e8c457f8a008e2c2fe6bbcc..8c428ee7f474c527fdc8e20e4e71be2a801ab38a 100644
|
| --- a/services/preferences/pref_store_manager_impl.cc
|
| +++ b/services/preferences/pref_store_manager_impl.cc
|
| @@ -30,9 +30,11 @@ class ConnectionBarrier : public base::RefCounted<ConnectionBarrier> {
|
| static void Create(
|
| const PrefStorePtrs& pref_store_ptrs,
|
| mojom::PersistentPrefStoreConnectionPtr persistent_pref_store_connection,
|
| + const std::vector<std::string>& observed_prefs,
|
| const ConnectCallback& callback);
|
|
|
| - void Init(const PrefStorePtrs& pref_store_ptrs);
|
| + void Init(const PrefStorePtrs& pref_store_ptrs,
|
| + const std::vector<std::string>& observed_prefs);
|
|
|
| private:
|
| friend class base::RefCounted<ConnectionBarrier>;
|
| @@ -62,16 +64,19 @@ class ConnectionBarrier : public base::RefCounted<ConnectionBarrier> {
|
| void ConnectionBarrier::Create(
|
| const PrefStorePtrs& pref_store_ptrs,
|
| mojom::PersistentPrefStoreConnectionPtr persistent_pref_store_connection,
|
| + const std::vector<std::string>& observed_prefs,
|
| const ConnectCallback& callback) {
|
| make_scoped_refptr(new ConnectionBarrier(
|
| pref_store_ptrs,
|
| std::move(persistent_pref_store_connection), callback))
|
| - ->Init(pref_store_ptrs);
|
| + ->Init(pref_store_ptrs, observed_prefs);
|
| }
|
|
|
| -void ConnectionBarrier::Init(const PrefStorePtrs& pref_store_ptrs) {
|
| +void ConnectionBarrier::Init(const PrefStorePtrs& pref_store_ptrs,
|
| + const std::vector<std::string>& observed_prefs) {
|
| for (const auto& ptr : pref_store_ptrs) {
|
| ptr.second->AddObserver(
|
| + observed_prefs,
|
| base::Bind(&ConnectionBarrier::OnConnect, this, ptr.first));
|
| }
|
| }
|
| @@ -212,9 +217,9 @@ void PrefStoreManagerImpl::ProcessPendingConnects() {
|
|
|
| void PrefStoreManagerImpl::ConnectImpl(mojom::PrefRegistryPtr pref_registry,
|
| const ConnectCallback& callback) {
|
| - PersistentPrefStoreImpl::ObservedPrefs observed_prefs;
|
| + std::vector<std::string> observed_prefs;
|
| for (auto& registration : pref_registry->registrations) {
|
| - observed_prefs.insert(registration.first);
|
| + observed_prefs.push_back(registration.first);
|
| const auto& key = registration.first;
|
| auto& default_value = registration.second->default_value;
|
| const base::Value* old_default = nullptr;
|
| @@ -227,8 +232,10 @@ void PrefStoreManagerImpl::ConnectImpl(mojom::PrefRegistryPtr pref_registry,
|
| }
|
| ConnectionBarrier::Create(
|
| pref_store_ptrs_,
|
| - persistent_pref_store_->CreateConnection(std::move(observed_prefs)),
|
| - callback);
|
| + persistent_pref_store_->CreateConnection(
|
| + PersistentPrefStoreImpl::ObservedPrefs(observed_prefs.begin(),
|
| + observed_prefs.end())),
|
| + observed_prefs, callback);
|
| }
|
|
|
| void PrefStoreManagerImpl::OnPersistentPrefStoreReady() {
|
|
|