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

Side by Side Diff: chrome/browser/prefs/tracked/segregated_pref_store.cc

Issue 218583003: Separate storage for protected preferences into Protected Preferences file. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Does this solve all known problems? Created 6 years, 8 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 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
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 if (read_error == PersistentPrefStore::PREF_READ_ERROR_NO_FILE)
gab 2014/04/01 20:19:52 Add a comment as to why you disregard PREF_READ_ER
erikwright (departed) 2014/04/02 15:03:17 Done. See also the class comments in the header.
125 read_error = PersistentPrefStore::PREF_READ_ERROR_NONE;
126 }
127 return read_error;
125 } 128 }
126 129
127 PersistentPrefStore::PrefReadError SegregatedPrefStore::ReadPrefs() { 130 PersistentPrefStore::PrefReadError SegregatedPrefStore::ReadPrefs() {
128 PersistentPrefStore::PrefReadError unselected_read_error = 131 default_pref_store_->ReadPrefs();
129 default_pref_store_->ReadPrefs(); 132 selected_pref_store_->ReadPrefs();
130 PersistentPrefStore::PrefReadError selected_read_error =
131 selected_pref_store_->ReadPrefs();
132 133
133 return unselected_read_error != PersistentPrefStore::PREF_READ_ERROR_NONE 134 return GetReadError();
134 ? unselected_read_error
135 : selected_read_error;
136 } 135 }
137 136
138 void SegregatedPrefStore::ReadPrefsAsync(ReadErrorDelegate* error_delegate) { 137 void SegregatedPrefStore::ReadPrefsAsync(ReadErrorDelegate* error_delegate) {
139 read_error_delegate_.reset(error_delegate); 138 read_error_delegate_.reset(error_delegate);
140 default_pref_store_->ReadPrefsAsync(NULL); 139 default_pref_store_->ReadPrefsAsync(NULL);
141 selected_pref_store_->ReadPrefsAsync(NULL); 140 selected_pref_store_->ReadPrefsAsync(NULL);
142 } 141 }
143 142
144 void SegregatedPrefStore::CommitPendingWrite() { 143 void SegregatedPrefStore::CommitPendingWrite() {
145 default_pref_store_->CommitPendingWrite(); 144 default_pref_store_->CommitPendingWrite();
(...skipping 27 matching lines...) Expand all
173 scoped_ptr<base::Value> migrated_value(value->DeepCopy()); 172 scoped_ptr<base::Value> migrated_value(value->DeepCopy());
174 value = NULL; 173 value = NULL;
175 default_pref_store_->SetValue(key, migrated_value.release()); 174 default_pref_store_->SetValue(key, migrated_value.release());
176 default_pref_store_->CommitPendingWrite(); 175 default_pref_store_->CommitPendingWrite();
177 selected_pref_store_->RemoveValue(key); 176 selected_pref_store_->RemoveValue(key);
178 selected_pref_store_->CommitPendingWrite(); 177 selected_pref_store_->CommitPendingWrite();
179 } 178 }
180 179
181 return default_pref_store_.get(); 180 return default_pref_store_.get();
182 } 181 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698