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

Side by Side Diff: chrome/browser/prefs/pref_service_builder.cc

Issue 12211105: Move remaining non-test, non-Chrome-specific Prefs code to base/prefs/. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address review comments, merge to LKGR. Created 7 years, 10 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/browser/prefs/pref_service_builder.h"
6
7 #include "base/bind.h"
8 #include "base/prefs/default_pref_store.h"
9 #include "base/prefs/json_pref_store.h"
10 #include "chrome/browser/prefs/pref_notifier_impl.h"
11 #include "chrome/browser/prefs/pref_service.h"
12
13 #include "chrome/browser/prefs/pref_value_store.h"
14
15 namespace {
16
17 // Do-nothing default implementation.
18 void DoNothingHandleReadError(PersistentPrefStore::PrefReadError error) {
19 }
20
21 } // namespace
22
23 PrefServiceBuilder::PrefServiceBuilder() {
24 ResetDefaultState();
25 }
26
27 PrefServiceBuilder::~PrefServiceBuilder() {
28 }
29
30 PrefServiceBuilder& PrefServiceBuilder::WithManagedPrefs(PrefStore* store) {
31 managed_prefs_ = store;
32 return *this;
33 }
34
35 PrefServiceBuilder& PrefServiceBuilder::WithExtensionPrefs(PrefStore* store) {
36 extension_prefs_ = store;
37 return *this;
38 }
39
40 PrefServiceBuilder& PrefServiceBuilder::WithCommandLinePrefs(PrefStore* store) {
41 command_line_prefs_ = store;
42 return *this;
43 }
44
45 PrefServiceBuilder& PrefServiceBuilder::WithUserPrefs(
46 PersistentPrefStore* store) {
47 user_prefs_ = store;
48 return *this;
49 }
50
51 PrefServiceBuilder& PrefServiceBuilder::WithRecommendedPrefs(PrefStore* store) {
52 recommended_prefs_ = store;
53 return *this;
54 }
55
56 PrefServiceBuilder& PrefServiceBuilder::WithReadErrorCallback(
57 const base::Callback<void(PersistentPrefStore::PrefReadError)>&
58 read_error_callback) {
59 read_error_callback_ = read_error_callback;
60 return *this;
61 }
62
63 PrefServiceBuilder& PrefServiceBuilder::WithUserFilePrefs(
64 const base::FilePath& prefs_file,
65 base::SequencedTaskRunner* task_runner) {
66 user_prefs_ = new JsonPrefStore(prefs_file, task_runner);
67 return *this;
68 }
69
70 PrefServiceBuilder& PrefServiceBuilder::WithAsync(bool async) {
71 async_ = async;
72 return *this;
73 }
74
75 PrefService* PrefServiceBuilder::Create(PrefRegistry* pref_registry) {
76 PrefNotifierImpl* pref_notifier = new PrefNotifierImpl();
77 PrefService* pref_service = new PrefService(
78 pref_notifier,
79 new PrefValueStore(
80 managed_prefs_.get(),
81 extension_prefs_.get(),
82 command_line_prefs_.get(),
83 user_prefs_.get(),
84 recommended_prefs_.get(),
85 pref_registry->defaults(),
86 pref_notifier),
87 user_prefs_.get(),
88 pref_registry,
89 read_error_callback_,
90 async_);
91 ResetDefaultState();
92 return pref_service;
93 }
94
95 void PrefServiceBuilder::ResetDefaultState() {
96 managed_prefs_ = NULL;
97 extension_prefs_ = NULL;
98 command_line_prefs_ = NULL;
99 user_prefs_ = NULL;
100 recommended_prefs_ = NULL;
101 read_error_callback_ = base::Bind(&DoNothingHandleReadError);
102 async_ = false;
103 }
OLDNEW
« no previous file with comments | « chrome/browser/prefs/pref_service_builder.h ('k') | chrome/browser/prefs/pref_service_simple.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698