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

Unified Diff: chrome/browser/prefs/chrome_pref_service_factory.cc

Issue 90563003: Fix a race condition in preference metric reporting. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 1 month 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: chrome/browser/prefs/chrome_pref_service_factory.cc
diff --git a/chrome/browser/prefs/chrome_pref_service_factory.cc b/chrome/browser/prefs/chrome_pref_service_factory.cc
index 67e8d6fe19489ef3f5b8fa305baf3fc24039a977..595c74681ceb7bb9a2cfac473a0f0683c1d01cfc 100644
--- a/chrome/browser/prefs/chrome_pref_service_factory.cc
+++ b/chrome/browser/prefs/chrome_pref_service_factory.cc
@@ -17,6 +17,8 @@
#include "base/prefs/pref_value_store.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/prefs/command_line_pref_store.h"
+#include "chrome/browser/prefs/pref_change_reporter.h"
+#include "chrome/browser/prefs/pref_hash_store.h"
#include "chrome/browser/prefs/pref_model_associator.h"
#include "chrome/browser/prefs/pref_service_syncable_builder.h"
#include "chrome/browser/ui/profile_error_dialog.h"
@@ -77,6 +79,7 @@ void PrepareBuilder(
base::SequencedTaskRunner* pref_io_task_runner,
policy::PolicyService* policy_service,
ManagedUserSettingsService* managed_user_settings,
+ scoped_ptr<PrefHashStore> pref_hash_store,
const scoped_refptr<PrefStore>& extension_prefs,
bool async) {
#if defined(OS_LINUX)
@@ -116,7 +119,13 @@ void PrepareBuilder(
builder->WithCommandLinePrefs(
new CommandLinePrefStore(CommandLine::ForCurrentProcess()));
builder->WithReadErrorCallback(base::Bind(&HandleReadError));
- builder->WithUserPrefs(new JsonPrefStore(pref_filename, pref_io_task_runner));
+
+ scoped_refptr<JsonPrefStore> pref_store(
+ new JsonPrefStore(pref_filename, pref_io_task_runner));
+
+ ReportPrefStoreChangesToUMA(pref_store.get(), pref_hash_store.Pass());
gab 2013/11/27 23:43:27 Consider a more generic name; this could later be
+
+ builder->WithUserPrefs(pref_store.get());
gab 2013/11/27 23:43:27 FYI, looks like this changed in https://codereview
}
} // namespace
@@ -135,6 +144,7 @@ PrefService* CreateLocalState(
pref_io_task_runner,
policy_service,
NULL,
+ scoped_ptr<PrefHashStore>(),
NULL,
async);
return builder.Create(pref_registry.get());
@@ -145,6 +155,7 @@ PrefServiceSyncable* CreateProfilePrefs(
base::SequencedTaskRunner* pref_io_task_runner,
policy::PolicyService* policy_service,
ManagedUserSettingsService* managed_user_settings,
+ scoped_ptr<PrefHashStore> pref_hash_store,
const scoped_refptr<PrefStore>& extension_prefs,
const scoped_refptr<user_prefs::PrefRegistrySyncable>& pref_registry,
bool async) {
@@ -155,6 +166,7 @@ PrefServiceSyncable* CreateProfilePrefs(
pref_io_task_runner,
policy_service,
managed_user_settings,
+ pref_hash_store.Pass(),
extension_prefs,
async);
return builder.CreateSyncable(pref_registry.get());

Powered by Google App Engine
This is Rietveld 408576698