| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 "chrome/browser/prefs/pref_model_associator.h" | 7 #include "chrome/browser/prefs/pref_model_associator.h" |
| 8 #include "chrome/browser/prefs/pref_notifier.h" | 8 #include "chrome/browser/prefs/pref_notifier.h" |
| 9 | 9 |
| 10 PrefValueStore::PrefStoreKeeper::PrefStoreKeeper() | 10 PrefValueStore::PrefStoreKeeper::PrefStoreKeeper() |
| (...skipping 20 matching lines...) Expand all Loading... |
| 31 pref_store_ = pref_store; | 31 pref_store_ = pref_store; |
| 32 if (pref_store_.get()) | 32 if (pref_store_.get()) |
| 33 pref_store_->AddObserver(this); | 33 pref_store_->AddObserver(this); |
| 34 } | 34 } |
| 35 | 35 |
| 36 void PrefValueStore::PrefStoreKeeper::OnPrefValueChanged( | 36 void PrefValueStore::PrefStoreKeeper::OnPrefValueChanged( |
| 37 const std::string& key) { | 37 const std::string& key) { |
| 38 pref_value_store_->OnPrefValueChanged(type_, key); | 38 pref_value_store_->OnPrefValueChanged(type_, key); |
| 39 } | 39 } |
| 40 | 40 |
| 41 void PrefValueStore::PrefStoreKeeper::OnInitializationCompleted() { | 41 void PrefValueStore::PrefStoreKeeper::OnInitializationCompleted( |
| 42 pref_value_store_->OnInitializationCompleted(type_); | 42 bool succeeded) { |
| 43 pref_value_store_->OnInitializationCompleted(type_, succeeded); |
| 43 } | 44 } |
| 44 | 45 |
| 45 PrefValueStore::PrefValueStore(PrefStore* managed_platform_prefs, | 46 PrefValueStore::PrefValueStore(PrefStore* managed_platform_prefs, |
| 46 PrefStore* managed_cloud_prefs, | 47 PrefStore* managed_cloud_prefs, |
| 47 PrefStore* extension_prefs, | 48 PrefStore* extension_prefs, |
| 48 PrefStore* command_line_prefs, | 49 PrefStore* command_line_prefs, |
| 49 PrefStore* user_prefs, | 50 PrefStore* user_prefs, |
| 50 PrefStore* recommended_platform_prefs, | 51 PrefStore* recommended_platform_prefs, |
| 51 PrefStore* recommended_cloud_prefs, | 52 PrefStore* recommended_cloud_prefs, |
| 52 PrefStore* default_prefs, | 53 PrefStore* default_prefs, |
| 53 PrefModelAssociator* pref_sync_associator, | 54 PrefModelAssociator* pref_sync_associator, |
| 54 PrefNotifier* pref_notifier) | 55 PrefNotifier* pref_notifier) |
| 55 : pref_sync_associator_(pref_sync_associator), | 56 : pref_sync_associator_(pref_sync_associator), |
| 56 pref_notifier_(pref_notifier) { | 57 pref_notifier_(pref_notifier), |
| 58 initialization_failed_(false) { |
| 57 InitPrefStore(MANAGED_PLATFORM_STORE, managed_platform_prefs); | 59 InitPrefStore(MANAGED_PLATFORM_STORE, managed_platform_prefs); |
| 58 InitPrefStore(MANAGED_CLOUD_STORE, managed_cloud_prefs); | 60 InitPrefStore(MANAGED_CLOUD_STORE, managed_cloud_prefs); |
| 59 InitPrefStore(EXTENSION_STORE, extension_prefs); | 61 InitPrefStore(EXTENSION_STORE, extension_prefs); |
| 60 InitPrefStore(COMMAND_LINE_STORE, command_line_prefs); | 62 InitPrefStore(COMMAND_LINE_STORE, command_line_prefs); |
| 61 InitPrefStore(USER_STORE, user_prefs); | 63 InitPrefStore(USER_STORE, user_prefs); |
| 62 InitPrefStore(RECOMMENDED_PLATFORM_STORE, recommended_platform_prefs); | 64 InitPrefStore(RECOMMENDED_PLATFORM_STORE, recommended_platform_prefs); |
| 63 InitPrefStore(RECOMMENDED_CLOUD_STORE, recommended_cloud_prefs); | 65 InitPrefStore(RECOMMENDED_CLOUD_STORE, recommended_cloud_prefs); |
| 64 InitPrefStore(DEFAULT_STORE, default_prefs); | 66 InitPrefStore(DEFAULT_STORE, default_prefs); |
| 65 | 67 |
| 66 CheckInitializationCompleted(); | 68 CheckInitializationCompleted(); |
| (...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 238 *out_value = NULL; | 240 *out_value = NULL; |
| 239 return false; | 241 return false; |
| 240 } | 242 } |
| 241 | 243 |
| 242 void PrefValueStore::OnPrefValueChanged(PrefValueStore::PrefStoreType type, | 244 void PrefValueStore::OnPrefValueChanged(PrefValueStore::PrefStoreType type, |
| 243 const std::string& key) { | 245 const std::string& key) { |
| 244 NotifyPrefChanged(key.c_str(), type); | 246 NotifyPrefChanged(key.c_str(), type); |
| 245 } | 247 } |
| 246 | 248 |
| 247 void PrefValueStore::OnInitializationCompleted( | 249 void PrefValueStore::OnInitializationCompleted( |
| 248 PrefValueStore::PrefStoreType type) { | 250 PrefValueStore::PrefStoreType type, bool succeeded) { |
| 251 if (initialization_failed_) |
| 252 return; |
| 253 if (!succeeded) { |
| 254 initialization_failed_ = true; |
| 255 pref_notifier_->OnInitializationCompleted(false); |
| 256 return; |
| 257 } |
| 249 CheckInitializationCompleted(); | 258 CheckInitializationCompleted(); |
| 250 } | 259 } |
| 251 | 260 |
| 252 void PrefValueStore::InitPrefStore(PrefValueStore::PrefStoreType type, | 261 void PrefValueStore::InitPrefStore(PrefValueStore::PrefStoreType type, |
| 253 PrefStore* pref_store) { | 262 PrefStore* pref_store) { |
| 254 pref_stores_[type].Initialize(this, pref_store, type); | 263 pref_stores_[type].Initialize(this, pref_store, type); |
| 255 } | 264 } |
| 256 | 265 |
| 257 void PrefValueStore::CheckInitializationCompleted() { | 266 void PrefValueStore::CheckInitializationCompleted() { |
| 267 if (initialization_failed_) |
| 268 return; |
| 258 for (size_t i = 0; i <= PREF_STORE_TYPE_MAX; ++i) { | 269 for (size_t i = 0; i <= PREF_STORE_TYPE_MAX; ++i) { |
| 259 scoped_refptr<PrefStore> store = | 270 scoped_refptr<PrefStore> store = |
| 260 GetPrefStore(static_cast<PrefStoreType>(i)); | 271 GetPrefStore(static_cast<PrefStoreType>(i)); |
| 261 if (store && !store->IsInitializationComplete()) | 272 if (store && !store->IsInitializationComplete()) |
| 262 return; | 273 return; |
| 263 } | 274 } |
| 264 pref_notifier_->OnInitializationCompleted(); | 275 pref_notifier_->OnInitializationCompleted(true); |
| 265 } | 276 } |
| OLD | NEW |