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

Unified Diff: chrome/browser/pref_value_store.cc

Issue 3032058: Move creation of the PrefStores into the PrefValueStore, to reduce the knowle... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Comment-only changes Created 10 years, 4 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: chrome/browser/pref_value_store.cc
===================================================================
--- chrome/browser/pref_value_store.cc (revision 55061)
+++ chrome/browser/pref_value_store.cc (working copy)
@@ -3,21 +3,43 @@
// found in the LICENSE file.
#include "chrome/browser/pref_value_store.h"
+
+#include "chrome/browser/chrome_thread.h"
+#include "chrome/browser/command_line_pref_store.h"
+#include "chrome/browser/configuration_policy_pref_store.h"
+#include "chrome/browser/extensions/extension_pref_store.h"
+#include "chrome/common/json_pref_store.h"
#include "chrome/common/notification_service.h"
-PrefValueStore::PrefValueStore(PrefStore* managed_prefs,
- PrefStore* extension_prefs,
- PrefStore* command_line_prefs,
- PrefStore* user_prefs,
- PrefStore* recommended_prefs) {
- pref_stores_[MANAGED].reset(managed_prefs);
- pref_stores_[EXTENSION].reset(extension_prefs);
- pref_stores_[COMMAND_LINE].reset(command_line_prefs);
- pref_stores_[USER].reset(user_prefs);
- pref_stores_[RECOMMENDED].reset(recommended_prefs);
+// static
+PrefValueStore* PrefValueStore::CreatePrefValueStore(
+ const FilePath& pref_filename,
+ Profile* profile,
+ bool user_only) {
+ ConfigurationPolicyPrefStore* managed = NULL;
+ ExtensionPrefStore* extension = NULL;
+ CommandLinePrefStore* command_line = NULL;
+ JsonPrefStore* user = NULL;
+ ConfigurationPolicyPrefStore* recommended = NULL;
+
+ if (!pref_filename.empty()) {
+ user = new JsonPrefStore(
+ pref_filename,
+ ChromeThread::GetMessageLoopProxyForThread(ChromeThread::FILE));
+ }
+
+ if (!user_only) {
+ managed = ConfigurationPolicyPrefStore::CreateManagedPolicyPrefStore();
+ extension = new ExtensionPrefStore(profile);
+ command_line = new CommandLinePrefStore(CommandLine::ForCurrentProcess());
+ recommended =
+ ConfigurationPolicyPrefStore::CreateRecommendedPolicyPrefStore();
+ }
+ return new PrefValueStore(managed, extension, command_line, user,
+ recommended);
}
-PrefValueStore::~PrefValueStore() { }
+PrefValueStore::~PrefValueStore() {}
bool PrefValueStore::GetValue(const std::wstring& name,
Value** out_value) const {
@@ -211,3 +233,15 @@
new_recommended_pref_store,
callback));
}
+
+PrefValueStore::PrefValueStore(PrefStore* managed_prefs,
+ PrefStore* extension_prefs,
+ PrefStore* command_line_prefs,
+ PrefStore* user_prefs,
+ PrefStore* recommended_prefs) {
+ pref_stores_[MANAGED].reset(managed_prefs);
+ pref_stores_[EXTENSION].reset(extension_prefs);
+ pref_stores_[COMMAND_LINE].reset(command_line_prefs);
+ pref_stores_[USER].reset(user_prefs);
+ pref_stores_[RECOMMENDED].reset(recommended_prefs);
+}
Mattias Nissler (ping if slow) 2010/08/06 07:29:42 nit: Order of definitions doesn't correspond to or

Powered by Google App Engine
This is Rietveld 408576698