| Index: components/prefs/json_pref_store.cc
|
| diff --git a/components/prefs/json_pref_store.cc b/components/prefs/json_pref_store.cc
|
| index 9dd313438ca3a7affa50ac5ec9504b6cc621d746..970c78e6602df804b0b92850f9880e0c452d6920 100644
|
| --- a/components/prefs/json_pref_store.cc
|
| +++ b/components/prefs/json_pref_store.cc
|
| @@ -330,6 +330,13 @@ void JsonPrefStore::RegisterOnNextSuccessfulWriteReply(
|
| writer_.RegisterOnNextSuccessfulWriteReply(on_next_successful_write_reply);
|
| }
|
|
|
| +void JsonPrefStore::RegisterOnNextWriteSynchronousCallback(
|
| + const base::Callback<void(bool success)>& on_next_write_callback) {
|
| + DCHECK(CalledOnValidThread());
|
| +
|
| + writer_.RegisterOnNextWriteSynchronousCallback(on_next_write_callback);
|
| +}
|
| +
|
| void JsonPrefStore::ClearMutableValues() {
|
| NOTIMPLEMENTED();
|
| }
|
| @@ -401,8 +408,12 @@ bool JsonPrefStore::SerializeData(std::string* output) {
|
|
|
| write_count_histogram_.RecordWriteOccured();
|
|
|
| - if (pref_filter_)
|
| - pref_filter_->FilterSerializeData(prefs_.get());
|
| + if (pref_filter_) {
|
| + base::Callback<void(bool)> pref_filter_post_write_callback =
|
| + pref_filter_->FilterSerializeData(prefs_.get());
|
| + if (!pref_filter_post_write_callback.is_null())
|
| + RegisterOnNextWriteSynchronousCallback(pref_filter_post_write_callback);
|
| + }
|
|
|
| JSONStringValueSerializer serializer(output);
|
| // Not pretty-printing prefs shrinks pref file size by ~30%. To obtain
|
|
|