| Index: services/preferences/public/cpp/persistent_pref_store_client.cc
|
| diff --git a/services/preferences/public/cpp/persistent_pref_store_client.cc b/services/preferences/public/cpp/persistent_pref_store_client.cc
|
| index 347db57772df7197b5016f4fefdd75540d8097bc..5b6d6f1b3e133c41db1b3834fd358dbed83f4335 100644
|
| --- a/services/preferences/public/cpp/persistent_pref_store_client.cc
|
| +++ b/services/preferences/public/cpp/persistent_pref_store_client.cc
|
| @@ -7,12 +7,16 @@
|
| #include <utility>
|
|
|
| #include "base/values.h"
|
| +#include "components/prefs/pref_registry.h"
|
| +#include "services/preferences/public/cpp/pref_registry_serializer.h"
|
|
|
| namespace prefs {
|
|
|
| PersistentPrefStoreClient::PersistentPrefStoreClient(
|
| - mojom::PrefStoreConnectorPtr connector)
|
| - : connector_(std::move(connector)) {
|
| + mojom::PrefStoreConnectorPtr connector,
|
| + scoped_refptr<PrefRegistry> pref_registry)
|
| + : connector_(std::move(connector)),
|
| + pref_registry_(std::move(pref_registry)) {
|
| DCHECK(connector_);
|
| }
|
|
|
| @@ -78,10 +82,11 @@ PersistentPrefStore::PrefReadError PersistentPrefStoreClient::ReadPrefs() {
|
| std::unordered_map<PrefValueStore::PrefStoreType,
|
| prefs::mojom::PrefStoreConnectionPtr>
|
| other_pref_stores;
|
| - if (!connector_->Connect(&connection, &other_pref_stores)) {
|
| + if (!connector_->Connect(SerializePrefRegistry(*pref_registry_), &connection,
|
| + &other_pref_stores)) {
|
| NOTREACHED();
|
| }
|
| -
|
| + pref_registry_ = nullptr;
|
| OnConnect(std::move(connection), std::move(other_pref_stores));
|
| return read_error_;
|
| }
|
| @@ -89,8 +94,10 @@ PersistentPrefStore::PrefReadError PersistentPrefStoreClient::ReadPrefs() {
|
| void PersistentPrefStoreClient::ReadPrefsAsync(
|
| ReadErrorDelegate* error_delegate) {
|
| error_delegate_.reset(error_delegate);
|
| - connector_->Connect(base::Bind(&PersistentPrefStoreClient::OnConnect,
|
| + connector_->Connect(SerializePrefRegistry(*pref_registry_),
|
| + base::Bind(&PersistentPrefStoreClient::OnConnect,
|
| base::Unretained(this)));
|
| + pref_registry_ = nullptr;
|
| }
|
|
|
| void PersistentPrefStoreClient::CommitPendingWrite() {
|
|
|