Index: base/prefs/pref_service_factory.cc |
diff --git a/base/prefs/pref_service_factory.cc b/base/prefs/pref_service_factory.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..2380a86b5ace842d9920fbec450e302f3a3ca6b8 |
--- /dev/null |
+++ b/base/prefs/pref_service_factory.cc |
@@ -0,0 +1,65 @@ |
+// Copyright 2013 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "base/prefs/pref_service_factory.h" |
+ |
+#include "base/bind.h" |
+#include "base/prefs/default_pref_store.h" |
+#include "base/prefs/json_pref_store.h" |
+#include "base/prefs/pref_filter.h" |
+#include "base/prefs/pref_notifier_impl.h" |
+#include "base/prefs/pref_service.h" |
+#include "base/prefs/pref_value_store.h" |
+#include "base/sequenced_task_runner.h" |
+ |
+namespace base { |
+ |
+namespace { |
+ |
+// Do-nothing default implementation. |
+void DoNothingHandleReadError(PersistentPrefStore::PrefReadError error) { |
+} |
+ |
+} // namespace |
+ |
+PrefServiceFactory::PrefServiceFactory() |
+ : managed_prefs_(NULL), |
+ supervised_user_prefs_(NULL), |
+ extension_prefs_(NULL), |
+ command_line_prefs_(NULL), |
+ user_prefs_(NULL), |
+ recommended_prefs_(NULL), |
+ read_error_callback_(base::Bind(&DoNothingHandleReadError)), |
+ async_(false) {} |
+ |
+PrefServiceFactory::~PrefServiceFactory() {} |
+ |
+void PrefServiceFactory::SetUserPrefsFile( |
+ const base::FilePath& prefs_file, |
+ base::SequencedTaskRunner* task_runner) { |
+ user_prefs_ = new JsonPrefStore( |
+ prefs_file, task_runner, scoped_ptr<PrefFilter>()); |
+} |
+ |
+scoped_ptr<PrefService> PrefServiceFactory::Create( |
+ PrefRegistry* pref_registry) { |
+ PrefNotifierImpl* pref_notifier = new PrefNotifierImpl(); |
+ scoped_ptr<PrefService> pref_service( |
+ new PrefService(pref_notifier, |
+ new PrefValueStore(managed_prefs_.get(), |
+ supervised_user_prefs_.get(), |
+ extension_prefs_.get(), |
+ command_line_prefs_.get(), |
+ user_prefs_.get(), |
+ recommended_prefs_.get(), |
+ pref_registry->defaults().get(), |
+ pref_notifier), |
+ user_prefs_.get(), |
+ pref_registry, |
+ read_error_callback_, |
+ async_)); |
+ return pref_service; |
+} |
+ |
+} // namespace base |