Index: components/prefs/json_pref_store.cc |
diff --git a/components/prefs/json_pref_store.cc b/components/prefs/json_pref_store.cc |
index 779c2009730366aba4d8fae689d340b2fb81ad71..9df4f3ac87243055d12d530f5d96313e8d087b31 100644 |
--- a/components/prefs/json_pref_store.cc |
+++ b/components/prefs/json_pref_store.cc |
@@ -330,6 +330,14 @@ void JsonPrefStore::RegisterOnNextSuccessfulWriteCallback( |
writer_.RegisterOnNextSuccessfulWriteCallback(on_next_successful_write); |
} |
+void JsonPrefStore::RegisterOnNextSuccessfulWriteBlockingCallback( |
+ const base::Closure& on_next_successful_write) { |
+ DCHECK(CalledOnValidThread()); |
+ |
+ writer_.RegisterOnNextSuccessfulWriteBlockingCallback( |
+ on_next_successful_write); |
+} |
+ |
void JsonPrefStore::ClearMutableValues() { |
NOTIMPLEMENTED(); |
} |
@@ -401,8 +409,11 @@ bool JsonPrefStore::SerializeData(std::string* output) { |
write_count_histogram_.RecordWriteOccured(); |
- if (pref_filter_) |
+ if (pref_filter_) { |
+ RegisterOnNextSuccessfulWriteBlockingCallback( |
+ pref_filter_->GetPostSerializeCallback(prefs_.get())); |
pref_filter_->FilterSerializeData(prefs_.get()); |
+ } |
JSONStringValueSerializer serializer(output); |
// Not pretty-printing prefs shrinks pref file size by ~30%. To obtain |