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

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: Also filter 'empty loads' as in new run or corrupted pref file scenarios. Created 7 years 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
« no previous file with comments | « chrome/browser/prefs/chrome_pref_service_factory.h ('k') | chrome/browser/prefs/pref_hash_calculator.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 7fe3d3c947d24913855ca66b4802b3d26ccde97b..a459ea8c81cc042e0218861a0c7f5332495f89fb 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_hash_filter.h"
+#include "chrome/browser/prefs/pref_hash_store.h"
#include "chrome/browser/prefs/pref_model_associator.h"
#include "chrome/browser/prefs/pref_service_syncable.h"
#include "chrome/browser/prefs/pref_service_syncable_factory.h"
@@ -80,6 +82,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)
@@ -122,8 +125,14 @@ void PrepareBuilder(
make_scoped_refptr(
new CommandLinePrefStore(CommandLine::ForCurrentProcess())));
factory->set_read_error_callback(base::Bind(&HandleReadError));
+ scoped_ptr<PrefFilter> pref_filter;
+ if (pref_hash_store)
+ pref_filter.reset(new PrefHashFilter(pref_hash_store.Pass()));
factory->set_user_prefs(
- new JsonPrefStore(pref_filename, pref_io_task_runner));
+ new JsonPrefStore(
+ pref_filename,
+ pref_io_task_runner,
+ pref_filter.Pass()));
}
} // namespace
@@ -142,6 +151,7 @@ scoped_ptr<PrefService> CreateLocalState(
pref_io_task_runner,
policy_service,
NULL,
+ scoped_ptr<PrefHashStore>(),
NULL,
async);
return factory.Create(pref_registry.get());
@@ -152,6 +162,7 @@ scoped_ptr<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) {
@@ -162,6 +173,7 @@ scoped_ptr<PrefServiceSyncable> CreateProfilePrefs(
pref_io_task_runner,
policy_service,
managed_user_settings,
+ pref_hash_store.Pass(),
extension_prefs,
async);
return factory.CreateSyncable(pref_registry.get());
« no previous file with comments | « chrome/browser/prefs/chrome_pref_service_factory.h ('k') | chrome/browser/prefs/pref_hash_calculator.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698