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

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: Merge to head again, previous had unrelated broken win_rel test. Created 7 years, 12 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
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_service_simple.h"
12 #include "chrome/browser/prefs/pref_value_store.h" 13 #include "chrome/browser/prefs/pref_value_store.h"
13 14
14 namespace { 15 namespace {
15 16
16 // Do-nothing default implementation. 17 // Do-nothing default implementation.
17 void DoNothingHandleReadError(PersistentPrefStore::PrefReadError error) { 18 void DoNothingHandleReadError(PersistentPrefStore::PrefReadError error) {
18 } 19 }
19 20
20 } // namespace 21 } // namespace
21 22
22 PrefServiceBuilder::PrefServiceBuilder() 23 PrefServiceBuilder::PrefServiceBuilder() {
23 : sync_associator_(NULL) {
24 ResetDefaultState(); 24 ResetDefaultState();
25 } 25 }
26 26
27 PrefServiceBuilder::~PrefServiceBuilder() { 27 PrefServiceBuilder::~PrefServiceBuilder() {
28 } 28 }
29 29
30 PrefServiceBuilder& PrefServiceBuilder::WithManagedPrefs(PrefStore* store) { 30 PrefServiceBuilder& PrefServiceBuilder::WithManagedPrefs(PrefStore* store) {
31 managed_prefs_ = store; 31 managed_prefs_ = store;
32 return *this; 32 return *this;
33 } 33 }
(...skipping 12 matching lines...) Expand all
46 PersistentPrefStore* store) { 46 PersistentPrefStore* store) {
47 user_prefs_ = store; 47 user_prefs_ = store;
48 return *this; 48 return *this;
49 } 49 }
50 50
51 PrefServiceBuilder& PrefServiceBuilder::WithRecommendedPrefs(PrefStore* store) { 51 PrefServiceBuilder& PrefServiceBuilder::WithRecommendedPrefs(PrefStore* store) {
52 recommended_prefs_ = store; 52 recommended_prefs_ = store;
53 return *this; 53 return *this;
54 } 54 }
55 55
56 PrefServiceBuilder& PrefServiceBuilder::WithSyncAssociator(
57 PrefModelAssociator* associator) {
58 sync_associator_ = associator;
59 return *this;
60 }
61
62 PrefServiceBuilder& PrefServiceBuilder::WithReadErrorCallback( 56 PrefServiceBuilder& PrefServiceBuilder::WithReadErrorCallback(
63 const base::Callback<void(PersistentPrefStore::PrefReadError)>& 57 const base::Callback<void(PersistentPrefStore::PrefReadError)>&
64 read_error_callback) { 58 read_error_callback) {
65 read_error_callback_ = read_error_callback; 59 read_error_callback_ = read_error_callback;
66 return *this; 60 return *this;
67 } 61 }
68 62
69 PrefServiceBuilder& PrefServiceBuilder::WithUserFilePrefs( 63 PrefServiceBuilder& PrefServiceBuilder::WithUserFilePrefs(
70 const FilePath& prefs_file, 64 const FilePath& prefs_file,
71 base::SequencedTaskRunner* task_runner) { 65 base::SequencedTaskRunner* task_runner) {
72 user_prefs_ = new JsonPrefStore(prefs_file, task_runner); 66 user_prefs_ = new JsonPrefStore(prefs_file, task_runner);
73 return *this; 67 return *this;
74 } 68 }
75 69
76 PrefServiceBuilder& PrefServiceBuilder::WithAsync(bool async) { 70 PrefServiceBuilder& PrefServiceBuilder::WithAsync(bool async) {
77 async_ = async; 71 async_ = async;
78 return *this; 72 return *this;
79 } 73 }
80 74
81 PrefService* PrefServiceBuilder::Create() { 75 PrefServiceSimple* PrefServiceBuilder::CreateSimple() {
82 DefaultPrefStore* default_pref_store = new DefaultPrefStore(); 76 DefaultPrefStore* default_pref_store = new DefaultPrefStore();
83 PrefNotifierImpl* pref_notifier = new PrefNotifierImpl(); 77 PrefNotifierImpl* pref_notifier = new PrefNotifierImpl();
84 PrefService* pref_service = 78 PrefServiceSimple* pref_service = new PrefServiceSimple(
85 new PrefService( 79 pref_notifier,
86 pref_notifier, 80 new PrefValueStore(
87 new PrefValueStore( 81 managed_prefs_.get(),
88 managed_prefs_.get(), 82 extension_prefs_.get(),
89 extension_prefs_.get(), 83 command_line_prefs_.get(),
90 command_line_prefs_.get(),
91 user_prefs_.get(),
92 recommended_prefs_.get(),
93 default_pref_store,
94 sync_associator_,
95 pref_notifier),
96 user_prefs_.get(), 84 user_prefs_.get(),
85 recommended_prefs_.get(),
97 default_pref_store, 86 default_pref_store,
98 sync_associator_, 87 pref_notifier),
99 read_error_callback_, 88 user_prefs_.get(),
100 async_); 89 default_pref_store,
90 read_error_callback_,
91 async_);
92 ResetDefaultState();
93 return pref_service;
94 }
95
96 void PrefServiceBuilder::ResetDefaultState() {
101 managed_prefs_ = NULL; 97 managed_prefs_ = NULL;
102 extension_prefs_ = NULL; 98 extension_prefs_ = NULL;
103 command_line_prefs_ = NULL; 99 command_line_prefs_ = NULL;
104 user_prefs_ = NULL; 100 user_prefs_ = NULL;
105 recommended_prefs_ = NULL; 101 recommended_prefs_ = NULL;
106 sync_associator_ = NULL;
107 ResetDefaultState();
108
109 return pref_service;
110 }
111
112 void PrefServiceBuilder::ResetDefaultState() {
113 read_error_callback_ = base::Bind(&DoNothingHandleReadError); 102 read_error_callback_ = base::Bind(&DoNothingHandleReadError);
114 async_ = false; 103 async_ = false;
115 } 104 }
OLDNEW
« no previous file with comments | « chrome/browser/prefs/pref_service_builder.h ('k') | chrome/browser/prefs/pref_service_mock_builder.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698