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

Unified Diff: services/preferences/public/cpp/persistent_pref_store_client.cc

Issue 2777483002: Pref service: Add initial support for pref registration. (Closed)
Patch Set: rebase 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 side-by-side diff with in-line comments
Download patch
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() {

Powered by Google App Engine
This is Rietveld 408576698