OLD | NEW |
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_value_store.h" | 5 #include "chrome/browser/prefs/pref_value_store.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "base/prefs/pref_notifier.h" | 8 #include "base/prefs/pref_notifier.h" |
9 #include "base/prefs/pref_observer.h" | 9 #include "base/prefs/pref_observer.h" |
| 10 #include "chrome/browser/prefs/pref_registry.h" |
10 | 11 |
11 PrefValueStore::PrefStoreKeeper::PrefStoreKeeper() | 12 PrefValueStore::PrefStoreKeeper::PrefStoreKeeper() |
12 : pref_value_store_(NULL), | 13 : pref_value_store_(NULL), |
13 type_(PrefValueStore::INVALID_STORE) { | 14 type_(PrefValueStore::INVALID_STORE) { |
14 } | 15 } |
15 | 16 |
16 PrefValueStore::PrefStoreKeeper::~PrefStoreKeeper() { | 17 PrefValueStore::PrefStoreKeeper::~PrefStoreKeeper() { |
17 if (pref_store_.get()) { | 18 if (pref_store_.get()) { |
18 pref_store_->RemoveObserver(this); | 19 pref_store_->RemoveObserver(this); |
19 pref_store_ = NULL; | 20 pref_store_ = NULL; |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
58 InitPrefStore(MANAGED_STORE, managed_prefs); | 59 InitPrefStore(MANAGED_STORE, managed_prefs); |
59 InitPrefStore(EXTENSION_STORE, extension_prefs); | 60 InitPrefStore(EXTENSION_STORE, extension_prefs); |
60 InitPrefStore(COMMAND_LINE_STORE, command_line_prefs); | 61 InitPrefStore(COMMAND_LINE_STORE, command_line_prefs); |
61 InitPrefStore(USER_STORE, user_prefs); | 62 InitPrefStore(USER_STORE, user_prefs); |
62 InitPrefStore(RECOMMENDED_STORE, recommended_prefs); | 63 InitPrefStore(RECOMMENDED_STORE, recommended_prefs); |
63 InitPrefStore(DEFAULT_STORE, default_prefs); | 64 InitPrefStore(DEFAULT_STORE, default_prefs); |
64 | 65 |
65 CheckInitializationCompleted(); | 66 CheckInitializationCompleted(); |
66 } | 67 } |
67 | 68 |
| 69 PrefValueStore::PrefValueStore(PrefStore* managed_prefs, |
| 70 PrefStore* extension_prefs, |
| 71 PrefStore* command_line_prefs, |
| 72 PrefStore* user_prefs, |
| 73 PrefStore* recommended_prefs, |
| 74 PrefRegistry* pref_registry, |
| 75 PrefNotifier* pref_notifier) |
| 76 : pref_notifier_(pref_notifier), |
| 77 initialization_failed_(false) { |
| 78 InitPrefStore(MANAGED_STORE, managed_prefs); |
| 79 InitPrefStore(EXTENSION_STORE, extension_prefs); |
| 80 InitPrefStore(COMMAND_LINE_STORE, command_line_prefs); |
| 81 InitPrefStore(USER_STORE, user_prefs); |
| 82 InitPrefStore(RECOMMENDED_STORE, recommended_prefs); |
| 83 InitPrefStore(DEFAULT_STORE, pref_registry->default_prefs_.get()); |
| 84 |
| 85 CheckInitializationCompleted(); |
| 86 } |
| 87 |
68 PrefValueStore::~PrefValueStore() {} | 88 PrefValueStore::~PrefValueStore() {} |
69 | 89 |
70 PrefValueStore* PrefValueStore::CloneAndSpecialize( | 90 PrefValueStore* PrefValueStore::CloneAndSpecialize( |
71 PrefStore* managed_prefs, | 91 PrefStore* managed_prefs, |
72 PrefStore* extension_prefs, | 92 PrefStore* extension_prefs, |
73 PrefStore* command_line_prefs, | 93 PrefStore* command_line_prefs, |
74 PrefStore* user_prefs, | 94 PrefStore* user_prefs, |
75 PrefStore* recommended_prefs, | 95 PrefStore* recommended_prefs, |
76 PrefStore* default_prefs, | 96 PrefStore* default_prefs, |
77 PrefNotifier* pref_notifier) { | 97 PrefNotifier* pref_notifier) { |
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
267 if (initialization_failed_) | 287 if (initialization_failed_) |
268 return; | 288 return; |
269 for (size_t i = 0; i <= PREF_STORE_TYPE_MAX; ++i) { | 289 for (size_t i = 0; i <= PREF_STORE_TYPE_MAX; ++i) { |
270 scoped_refptr<PrefStore> store = | 290 scoped_refptr<PrefStore> store = |
271 GetPrefStore(static_cast<PrefStoreType>(i)); | 291 GetPrefStore(static_cast<PrefStoreType>(i)); |
272 if (store && !store->IsInitializationComplete()) | 292 if (store && !store->IsInitializationComplete()) |
273 return; | 293 return; |
274 } | 294 } |
275 pref_notifier_->OnInitializationCompleted(true); | 295 pref_notifier_->OnInitializationCompleted(true); |
276 } | 296 } |
OLD | NEW |