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
|