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

Side by Side Diff: base/prefs/json_pref_store.cc

Issue 1265363002: Cleanup nits in ImportantFileWriter and JsonPrefStore. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: self review Created 5 years, 4 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
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 "base/prefs/json_pref_store.h" 5 #include "base/prefs/json_pref_store.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/callback.h" 10 #include "base/callback.h"
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
76 base::FilePath bad = path.ReplaceExtension(kBadExtension); 76 base::FilePath bad = path.ReplaceExtension(kBadExtension);
77 77
78 // If they've ever had a parse error before, put them in another bucket. 78 // If they've ever had a parse error before, put them in another bucket.
79 // TODO(erikkay) if we keep this error checking for very long, we may 79 // TODO(erikkay) if we keep this error checking for very long, we may
80 // want to differentiate between recent and long ago errors. 80 // want to differentiate between recent and long ago errors.
81 bool bad_existed = base::PathExists(bad); 81 bool bad_existed = base::PathExists(bad);
82 base::Move(path, bad); 82 base::Move(path, bad);
83 return bad_existed ? PersistentPrefStore::PREF_READ_ERROR_JSON_REPEAT 83 return bad_existed ? PersistentPrefStore::PREF_READ_ERROR_JSON_REPEAT
84 : PersistentPrefStore::PREF_READ_ERROR_JSON_PARSE; 84 : PersistentPrefStore::PREF_READ_ERROR_JSON_PARSE;
85 } 85 }
86 } else if (!value->IsType(base::Value::TYPE_DICTIONARY)) { 86 }
87 if (!value->IsType(base::Value::TYPE_DICTIONARY))
87 return PersistentPrefStore::PREF_READ_ERROR_JSON_TYPE; 88 return PersistentPrefStore::PREF_READ_ERROR_JSON_TYPE;
88 }
89 return PersistentPrefStore::PREF_READ_ERROR_NONE; 89 return PersistentPrefStore::PREF_READ_ERROR_NONE;
90 } 90 }
91 91
92 // Records a sample for |size| in the Settings.JsonDataReadSizeKilobytes 92 // Records a sample for |size| in the Settings.JsonDataReadSizeKilobytes
93 // histogram suffixed with the base name of the JSON file under |path|. 93 // histogram suffixed with the base name of the JSON file under |path|.
94 void RecordJsonDataSizeHistogram(const base::FilePath& path, size_t size) { 94 void RecordJsonDataSizeHistogram(const base::FilePath& path, size_t size) {
95 std::string spaceless_basename; 95 std::string spaceless_basename;
96 base::ReplaceChars(path.BaseName().MaybeAsASCII(), " ", "_", 96 base::ReplaceChars(path.BaseName().MaybeAsASCII(), " ", "_",
97 &spaceless_basename); 97 &spaceless_basename);
98 98
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
136 const base::FilePath& filename, 136 const base::FilePath& filename,
137 base::SequencedWorkerPool* worker_pool) { 137 base::SequencedWorkerPool* worker_pool) {
138 std::string token("json_pref_store-"); 138 std::string token("json_pref_store-");
139 token.append(filename.AsUTF8Unsafe()); 139 token.append(filename.AsUTF8Unsafe());
140 return worker_pool->GetSequencedTaskRunnerWithShutdownBehavior( 140 return worker_pool->GetSequencedTaskRunnerWithShutdownBehavior(
141 worker_pool->GetNamedSequenceToken(token), 141 worker_pool->GetNamedSequenceToken(token),
142 base::SequencedWorkerPool::BLOCK_SHUTDOWN); 142 base::SequencedWorkerPool::BLOCK_SHUTDOWN);
143 } 143 }
144 144
145 JsonPrefStore::JsonPrefStore( 145 JsonPrefStore::JsonPrefStore(
146 const base::FilePath& filename, 146 const base::FilePath& pref_filename,
147 const scoped_refptr<base::SequencedTaskRunner>& sequenced_task_runner, 147 const scoped_refptr<base::SequencedTaskRunner>& sequenced_task_runner,
148 scoped_ptr<PrefFilter> pref_filter) 148 scoped_ptr<PrefFilter> pref_filter)
149 : JsonPrefStore(filename, 149 : JsonPrefStore(pref_filename,
150 base::FilePath(), 150 base::FilePath(),
151 sequenced_task_runner, 151 sequenced_task_runner,
152 pref_filter.Pass()) { 152 pref_filter.Pass()) {
153 } 153 }
154 154
155 JsonPrefStore::JsonPrefStore( 155 JsonPrefStore::JsonPrefStore(
156 const base::FilePath& filename, 156 const base::FilePath& pref_filename,
157 const base::FilePath& alternate_filename, 157 const base::FilePath& pref_alternate_filename,
158 const scoped_refptr<base::SequencedTaskRunner>& sequenced_task_runner, 158 const scoped_refptr<base::SequencedTaskRunner>& sequenced_task_runner,
159 scoped_ptr<PrefFilter> pref_filter) 159 scoped_ptr<PrefFilter> pref_filter)
160 : path_(filename), 160 : path_(pref_filename),
161 alternate_path_(alternate_filename), 161 alternate_path_(pref_alternate_filename),
162 sequenced_task_runner_(sequenced_task_runner), 162 sequenced_task_runner_(sequenced_task_runner),
163 prefs_(new base::DictionaryValue()), 163 prefs_(new base::DictionaryValue()),
164 read_only_(false), 164 read_only_(false),
165 writer_(filename, sequenced_task_runner), 165 writer_(pref_filename, sequenced_task_runner),
166 pref_filter_(pref_filter.Pass()), 166 pref_filter_(pref_filter.Pass()),
167 initialized_(false), 167 initialized_(false),
168 filtering_in_progress_(false), 168 filtering_in_progress_(false),
169 pending_lossy_write_(false), 169 pending_lossy_write_(false),
170 read_error_(PREF_READ_ERROR_NONE), 170 read_error_(PREF_READ_ERROR_NONE),
171 write_count_histogram_(writer_.commit_interval(), path_) { 171 write_count_histogram_(writer_.commit_interval(), path_) {
172 DCHECK(!path_.empty()); 172 DCHECK(!path_.empty());
173 } 173 }
174 174
175 bool JsonPrefStore::GetValue(const std::string& key, 175 bool JsonPrefStore::GetValue(const std::string& key,
176 const base::Value** result) const { 176 const base::Value** result) const {
177 DCHECK(CalledOnValidThread()); 177 DCHECK(CalledOnValidThread());
178 178
179 base::Value* tmp = NULL; 179 base::Value* tmp = nullptr;
180 if (!prefs_->Get(key, &tmp)) 180 if (!prefs_->Get(key, &tmp))
181 return false; 181 return false;
182 182
183 if (result) 183 if (result)
184 *result = tmp; 184 *result = tmp;
185 return true; 185 return true;
186 } 186 }
187 187
188 void JsonPrefStore::AddObserver(PrefStore::Observer* observer) { 188 void JsonPrefStore::AddObserver(PrefStore::Observer* observer) {
189 DCHECK(CalledOnValidThread()); 189 DCHECK(CalledOnValidThread());
(...skipping 25 matching lines...) Expand all
215 215
216 return prefs_->Get(key, result); 216 return prefs_->Get(key, result);
217 } 217 }
218 218
219 void JsonPrefStore::SetValue(const std::string& key, 219 void JsonPrefStore::SetValue(const std::string& key,
220 scoped_ptr<base::Value> value, 220 scoped_ptr<base::Value> value,
221 uint32 flags) { 221 uint32 flags) {
222 DCHECK(CalledOnValidThread()); 222 DCHECK(CalledOnValidThread());
223 223
224 DCHECK(value); 224 DCHECK(value);
225 base::Value* old_value = NULL; 225 base::Value* old_value = nullptr;
226 prefs_->Get(key, &old_value); 226 prefs_->Get(key, &old_value);
227 if (!old_value || !value->Equals(old_value)) { 227 if (!old_value || !value->Equals(old_value)) {
228 prefs_->Set(key, value.Pass()); 228 prefs_->Set(key, value.Pass());
229 ReportValueChanged(key, flags); 229 ReportValueChanged(key, flags);
230 } 230 }
231 } 231 }
232 232
233 void JsonPrefStore::SetValueSilently(const std::string& key, 233 void JsonPrefStore::SetValueSilently(const std::string& key,
234 scoped_ptr<base::Value> value, 234 scoped_ptr<base::Value> value,
235 uint32 flags) { 235 uint32 flags) {
236 DCHECK(CalledOnValidThread()); 236 DCHECK(CalledOnValidThread());
237 237
238 DCHECK(value); 238 DCHECK(value);
239 base::Value* old_value = NULL; 239 base::Value* old_value = nullptr;
240 prefs_->Get(key, &old_value); 240 prefs_->Get(key, &old_value);
241 if (!old_value || !value->Equals(old_value)) { 241 if (!old_value || !value->Equals(old_value)) {
242 prefs_->Set(key, value.Pass()); 242 prefs_->Set(key, value.Pass());
243 ScheduleWrite(flags); 243 ScheduleWrite(flags);
244 } 244 }
245 } 245 }
246 246
247 void JsonPrefStore::RemoveValue(const std::string& key, uint32 flags) { 247 void JsonPrefStore::RemoveValue(const std::string& key, uint32 flags) {
248 DCHECK(CalledOnValidThread()); 248 DCHECK(CalledOnValidThread());
249 249
250 if (prefs_->RemovePath(key, NULL)) 250 if (prefs_->RemovePath(key, nullptr))
251 ReportValueChanged(key, flags); 251 ReportValueChanged(key, flags);
252 } 252 }
253 253
254 void JsonPrefStore::RemoveValueSilently(const std::string& key, uint32 flags) { 254 void JsonPrefStore::RemoveValueSilently(const std::string& key, uint32 flags) {
255 DCHECK(CalledOnValidThread()); 255 DCHECK(CalledOnValidThread());
256 256
257 prefs_->RemovePath(key, NULL); 257 prefs_->RemovePath(key, nullptr);
258 ScheduleWrite(flags); 258 ScheduleWrite(flags);
259 } 259 }
260 260
261 bool JsonPrefStore::ReadOnly() const { 261 bool JsonPrefStore::ReadOnly() const {
262 DCHECK(CalledOnValidThread()); 262 DCHECK(CalledOnValidThread());
263 263
264 return read_only_; 264 return read_only_;
265 } 265 }
266 266
267 PersistentPrefStore::PrefReadError JsonPrefStore::GetReadError() const { 267 PersistentPrefStore::PrefReadError JsonPrefStore::GetReadError() const {
(...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after
526 DCHECK_EQ(31, num_buckets); 526 DCHECK_EQ(31, num_buckets);
527 527
528 // The histogram below is an expansion of the UMA_HISTOGRAM_CUSTOM_COUNTS 528 // The histogram below is an expansion of the UMA_HISTOGRAM_CUSTOM_COUNTS
529 // macro adapted to allow for a dynamically suffixed histogram name. 529 // macro adapted to allow for a dynamically suffixed histogram name.
530 // Note: The factory creates and owns the histogram. 530 // Note: The factory creates and owns the histogram.
531 base::HistogramBase* histogram = base::Histogram::FactoryGet( 531 base::HistogramBase* histogram = base::Histogram::FactoryGet(
532 histogram_name, min_value, max_value, num_buckets, 532 histogram_name, min_value, max_value, num_buckets,
533 base::HistogramBase::kUmaTargetedHistogramFlag); 533 base::HistogramBase::kUmaTargetedHistogramFlag);
534 return histogram; 534 return histogram;
535 } 535 }
OLDNEW
« no previous file with comments | « base/files/important_file_writer_unittest.cc ('k') | components/bookmarks/browser/bookmark_storage.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698