| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/tracked/segregated_pref_store.h" | 5 #include "chrome/browser/prefs/tracked/segregated_pref_store.h" |
| 6 | 6 |
| 7 #include "base/logging.h" | 7 #include "base/logging.h" |
| 8 #include "base/stl_util.h" | 8 #include "base/stl_util.h" |
| 9 #include "base/values.h" | 9 #include "base/values.h" |
| 10 | 10 |
| (...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 112 } | 112 } |
| 113 | 113 |
| 114 bool SegregatedPrefStore::ReadOnly() const { | 114 bool SegregatedPrefStore::ReadOnly() const { |
| 115 return selected_pref_store_->ReadOnly() || | 115 return selected_pref_store_->ReadOnly() || |
| 116 default_pref_store_->ReadOnly(); | 116 default_pref_store_->ReadOnly(); |
| 117 } | 117 } |
| 118 | 118 |
| 119 PersistentPrefStore::PrefReadError SegregatedPrefStore::GetReadError() const { | 119 PersistentPrefStore::PrefReadError SegregatedPrefStore::GetReadError() const { |
| 120 PersistentPrefStore::PrefReadError read_error = | 120 PersistentPrefStore::PrefReadError read_error = |
| 121 default_pref_store_->GetReadError(); | 121 default_pref_store_->GetReadError(); |
| 122 return read_error != PersistentPrefStore::PREF_READ_ERROR_NONE | 122 if (read_error == PersistentPrefStore::PREF_READ_ERROR_NONE) { |
| 123 ? read_error | 123 read_error = selected_pref_store_->GetReadError(); |
| 124 : selected_pref_store_->GetReadError(); | 124 // Ignore NO_FILE from selected_pref_store_. |
| 125 if (read_error == PersistentPrefStore::PREF_READ_ERROR_NO_FILE) |
| 126 read_error = PersistentPrefStore::PREF_READ_ERROR_NONE; |
| 127 } |
| 128 return read_error; |
| 125 } | 129 } |
| 126 | 130 |
| 127 PersistentPrefStore::PrefReadError SegregatedPrefStore::ReadPrefs() { | 131 PersistentPrefStore::PrefReadError SegregatedPrefStore::ReadPrefs() { |
| 128 PersistentPrefStore::PrefReadError unselected_read_error = | 132 default_pref_store_->ReadPrefs(); |
| 129 default_pref_store_->ReadPrefs(); | 133 selected_pref_store_->ReadPrefs(); |
| 130 PersistentPrefStore::PrefReadError selected_read_error = | |
| 131 selected_pref_store_->ReadPrefs(); | |
| 132 | 134 |
| 133 return unselected_read_error != PersistentPrefStore::PREF_READ_ERROR_NONE | 135 return GetReadError(); |
| 134 ? unselected_read_error | |
| 135 : selected_read_error; | |
| 136 } | 136 } |
| 137 | 137 |
| 138 void SegregatedPrefStore::ReadPrefsAsync(ReadErrorDelegate* error_delegate) { | 138 void SegregatedPrefStore::ReadPrefsAsync(ReadErrorDelegate* error_delegate) { |
| 139 read_error_delegate_.reset(error_delegate); | 139 read_error_delegate_.reset(error_delegate); |
| 140 default_pref_store_->ReadPrefsAsync(NULL); | 140 default_pref_store_->ReadPrefsAsync(NULL); |
| 141 selected_pref_store_->ReadPrefsAsync(NULL); | 141 selected_pref_store_->ReadPrefsAsync(NULL); |
| 142 } | 142 } |
| 143 | 143 |
| 144 void SegregatedPrefStore::CommitPendingWrite() { | 144 void SegregatedPrefStore::CommitPendingWrite() { |
| 145 default_pref_store_->CommitPendingWrite(); | 145 default_pref_store_->CommitPendingWrite(); |
| (...skipping 27 matching lines...) Expand all Loading... |
| 173 scoped_ptr<base::Value> migrated_value(value->DeepCopy()); | 173 scoped_ptr<base::Value> migrated_value(value->DeepCopy()); |
| 174 value = NULL; | 174 value = NULL; |
| 175 default_pref_store_->SetValue(key, migrated_value.release()); | 175 default_pref_store_->SetValue(key, migrated_value.release()); |
| 176 default_pref_store_->CommitPendingWrite(); | 176 default_pref_store_->CommitPendingWrite(); |
| 177 selected_pref_store_->RemoveValue(key); | 177 selected_pref_store_->RemoveValue(key); |
| 178 selected_pref_store_->CommitPendingWrite(); | 178 selected_pref_store_->CommitPendingWrite(); |
| 179 } | 179 } |
| 180 | 180 |
| 181 return default_pref_store_.get(); | 181 return default_pref_store_.get(); |
| 182 } | 182 } |
| OLD | NEW |