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

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

Issue 11570009: Split PrefService into PrefService, PrefServiceSimple and PrefServiceSyncable. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: WIP, latest changes from kaiwang@ Created 8 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/prefs/pref_service_builder.h" 5 #include "chrome/browser/prefs/pref_service_builder.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/prefs/default_pref_store.h" 8 #include "base/prefs/default_pref_store.h"
9 #include "base/prefs/json_pref_store.h" 9 #include "base/prefs/json_pref_store.h"
10 #include "chrome/browser/prefs/pref_notifier_impl.h" 10 #include "chrome/browser/prefs/pref_notifier_impl.h"
11 #include "chrome/browser/prefs/pref_service.h" 11 #include "chrome/browser/prefs/pref_service.h"
12 #include "chrome/browser/prefs/pref_value_store.h" 12 #include "chrome/browser/prefs/pref_value_store.h"
13 13
14 namespace { 14 namespace {
15 15
16 // Do-nothing default implementation. 16 // Do-nothing default implementation.
17 void DoNothingHandleReadError(PersistentPrefStore::PrefReadError error) { 17 void DoNothingHandleReadError(PersistentPrefStore::PrefReadError error) {
18 } 18 }
19 19
20 // Dummy default implementation. 20 // Dummy default implementation.
21 std::string DummyGetLocalizedString(int id) { 21 std::string DummyGetLocalizedString(int id) {
22 return ""; 22 return "";
23 } 23 }
24 24
25 } // namespace 25 } // namespace
26 26
27 PrefServiceBuilder::PrefServiceBuilder() 27 PrefServiceBuilder::PrefServiceBuilder() {
28 : sync_associator_(NULL) {
29 ResetDefaultState(); 28 ResetDefaultState();
30 } 29 }
31 30
32 PrefServiceBuilder::~PrefServiceBuilder() { 31 PrefServiceBuilder::~PrefServiceBuilder() {
33 } 32 }
34 33
35 PrefServiceBuilder& PrefServiceBuilder::WithManagedPrefs(PrefStore* store) { 34 PrefServiceBuilder& PrefServiceBuilder::WithManagedPrefs(PrefStore* store) {
36 managed_prefs_ = store; 35 managed_prefs_ = store;
37 return *this; 36 return *this;
38 } 37 }
(...skipping 12 matching lines...) Expand all
51 PersistentPrefStore* store) { 50 PersistentPrefStore* store) {
52 user_prefs_ = store; 51 user_prefs_ = store;
53 return *this; 52 return *this;
54 } 53 }
55 54
56 PrefServiceBuilder& PrefServiceBuilder::WithRecommendedPrefs(PrefStore* store) { 55 PrefServiceBuilder& PrefServiceBuilder::WithRecommendedPrefs(PrefStore* store) {
57 recommended_prefs_ = store; 56 recommended_prefs_ = store;
58 return *this; 57 return *this;
59 } 58 }
60 59
61 PrefServiceBuilder& PrefServiceBuilder::WithSyncAssociator(
62 PrefModelAssociator* associator) {
63 sync_associator_ = associator;
64 return *this;
65 }
66
67 PrefServiceBuilder& PrefServiceBuilder::WithLocalizedStringMethod( 60 PrefServiceBuilder& PrefServiceBuilder::WithLocalizedStringMethod(
68 const base::Callback<std::string(int)>& localized_string_method) { 61 const base::Callback<std::string(int)>& localized_string_method) {
69 get_localized_string_method_ = localized_string_method; 62 get_localized_string_method_ = localized_string_method;
70 return *this; 63 return *this;
71 } 64 }
72 65
73 PrefServiceBuilder& PrefServiceBuilder::WithReadErrorCallback( 66 PrefServiceBuilder& PrefServiceBuilder::WithReadErrorCallback(
74 const base::Callback<void(PersistentPrefStore::PrefReadError)>& 67 const base::Callback<void(PersistentPrefStore::PrefReadError)>&
75 read_error_callback) { 68 read_error_callback) {
76 read_error_callback_ = read_error_callback; 69 read_error_callback_ = read_error_callback;
77 return *this; 70 return *this;
78 } 71 }
79 72
80 PrefServiceBuilder& PrefServiceBuilder::WithUserFilePrefs( 73 PrefServiceBuilder& PrefServiceBuilder::WithUserFilePrefs(
81 const FilePath& prefs_file, 74 const FilePath& prefs_file,
82 base::SequencedTaskRunner* task_runner) { 75 base::SequencedTaskRunner* task_runner) {
83 user_prefs_ = new JsonPrefStore(prefs_file, task_runner); 76 user_prefs_ = new JsonPrefStore(prefs_file, task_runner);
84 return *this; 77 return *this;
85 } 78 }
86 79
87 PrefServiceBuilder& PrefServiceBuilder::WithAsync(bool async) { 80 PrefServiceBuilder& PrefServiceBuilder::WithAsync(bool async) {
88 async_ = async; 81 async_ = async;
89 return *this; 82 return *this;
90 } 83 }
91 84
92 PrefService* PrefServiceBuilder::Create() { 85 PrefService* PrefServiceBuilder::Build(PrefService* pref_service) {
93 DefaultPrefStore* default_pref_store = new DefaultPrefStore(); 86 DefaultPrefStore* default_pref_store = new DefaultPrefStore();
94 PrefNotifierImpl* pref_notifier = new PrefNotifierImpl(); 87 PrefNotifierImpl* pref_notifier = new PrefNotifierImpl();
95 PrefService* pref_service = 88 pref_service->Initialize(
96 new PrefService( 89 new PrefService(
97 pref_notifier, 90 pref_notifier,
98 new PrefValueStore( 91 new PrefValueStore(
99 managed_prefs_.get(), 92 managed_prefs_.get(),
100 extension_prefs_.get(), 93 extension_prefs_.get(),
101 command_line_prefs_.get(), 94 command_line_prefs_.get(),
102 user_prefs_.get(), 95 user_prefs_.get(),
103 recommended_prefs_.get(), 96 recommended_prefs_.get(),
104 default_pref_store, 97 default_pref_store,
105 sync_associator_,
106 pref_notifier), 98 pref_notifier),
107 user_prefs_.get(), 99 user_prefs_.get(),
108 default_pref_store, 100 default_pref_store,
109 sync_associator_,
110 get_localized_string_method_, 101 get_localized_string_method_,
111 read_error_callback_, 102 read_error_callback_,
112 async_); 103 async_);
113 managed_prefs_ = NULL; 104 managed_prefs_ = NULL;
114 extension_prefs_ = NULL; 105 extension_prefs_ = NULL;
115 command_line_prefs_ = NULL; 106 command_line_prefs_ = NULL;
116 user_prefs_ = NULL; 107 user_prefs_ = NULL;
117 recommended_prefs_ = NULL; 108 recommended_prefs_ = NULL;
118 sync_associator_ = NULL;
119 ResetDefaultState(); 109 ResetDefaultState();
120 110
121 return pref_service; 111 return pref_service;
122 } 112 }
123 113
124 void PrefServiceBuilder::ResetDefaultState() { 114 void PrefServiceBuilder::ResetDefaultState() {
125 get_localized_string_method_ = base::Bind(&DummyGetLocalizedString); 115 get_localized_string_method_ = base::Bind(&DummyGetLocalizedString);
126 read_error_callback_ = base::Bind(&DoNothingHandleReadError); 116 read_error_callback_ = base::Bind(&DoNothingHandleReadError);
127 async_ = false; 117 async_ = false;
128 } 118 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698