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 "base/prefs/pref_service.h" | 5 #include "base/prefs/pref_service.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <utility> |
8 | 9 |
9 #include "base/bind.h" | 10 #include "base/bind.h" |
10 #include "base/files/file_path.h" | 11 #include "base/files/file_path.h" |
11 #include "base/location.h" | 12 #include "base/location.h" |
12 #include "base/logging.h" | 13 #include "base/logging.h" |
13 #include "base/metrics/histogram.h" | 14 #include "base/metrics/histogram.h" |
14 #include "base/prefs/default_pref_store.h" | 15 #include "base/prefs/default_pref_store.h" |
15 #include "base/prefs/pref_notifier_impl.h" | 16 #include "base/prefs/pref_notifier_impl.h" |
16 #include "base/prefs/pref_registry.h" | 17 #include "base/prefs/pref_registry.h" |
17 #include "base/prefs/pref_value_store.h" | 18 #include "base/prefs/pref_value_store.h" |
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
190 const Preference* pref = FindPreference(path); | 191 const Preference* pref = FindPreference(path); |
191 return pref && !pref->IsDefaultValue(); | 192 return pref && !pref->IsDefaultValue(); |
192 } | 193 } |
193 | 194 |
194 scoped_ptr<base::DictionaryValue> PrefService::GetPreferenceValues() const { | 195 scoped_ptr<base::DictionaryValue> PrefService::GetPreferenceValues() const { |
195 DCHECK(CalledOnValidThread()); | 196 DCHECK(CalledOnValidThread()); |
196 scoped_ptr<base::DictionaryValue> out(new base::DictionaryValue); | 197 scoped_ptr<base::DictionaryValue> out(new base::DictionaryValue); |
197 for (const auto& it : *pref_registry_) { | 198 for (const auto& it : *pref_registry_) { |
198 out->Set(it.first, GetPreferenceValue(it.first)->CreateDeepCopy()); | 199 out->Set(it.first, GetPreferenceValue(it.first)->CreateDeepCopy()); |
199 } | 200 } |
200 return out.Pass(); | 201 return out; |
201 } | 202 } |
202 | 203 |
203 scoped_ptr<base::DictionaryValue> PrefService::GetPreferenceValuesOmitDefaults() | 204 scoped_ptr<base::DictionaryValue> PrefService::GetPreferenceValuesOmitDefaults() |
204 const { | 205 const { |
205 DCHECK(CalledOnValidThread()); | 206 DCHECK(CalledOnValidThread()); |
206 scoped_ptr<base::DictionaryValue> out(new base::DictionaryValue); | 207 scoped_ptr<base::DictionaryValue> out(new base::DictionaryValue); |
207 for (const auto& it : *pref_registry_) { | 208 for (const auto& it : *pref_registry_) { |
208 const Preference* pref = FindPreference(it.first); | 209 const Preference* pref = FindPreference(it.first); |
209 if (pref->IsDefaultValue()) | 210 if (pref->IsDefaultValue()) |
210 continue; | 211 continue; |
211 out->Set(it.first, pref->GetValue()->CreateDeepCopy()); | 212 out->Set(it.first, pref->GetValue()->CreateDeepCopy()); |
212 } | 213 } |
213 return out.Pass(); | 214 return out; |
214 } | 215 } |
215 | 216 |
216 scoped_ptr<base::DictionaryValue> | 217 scoped_ptr<base::DictionaryValue> |
217 PrefService::GetPreferenceValuesWithoutPathExpansion() const { | 218 PrefService::GetPreferenceValuesWithoutPathExpansion() const { |
218 DCHECK(CalledOnValidThread()); | 219 DCHECK(CalledOnValidThread()); |
219 scoped_ptr<base::DictionaryValue> out(new base::DictionaryValue); | 220 scoped_ptr<base::DictionaryValue> out(new base::DictionaryValue); |
220 for (const auto& it : *pref_registry_) { | 221 for (const auto& it : *pref_registry_) { |
221 const base::Value* value = GetPreferenceValue(it.first); | 222 const base::Value* value = GetPreferenceValue(it.first); |
222 DCHECK(value); | 223 DCHECK(value); |
223 out->SetWithoutPathExpansion(it.first, value->CreateDeepCopy()); | 224 out->SetWithoutPathExpansion(it.first, value->CreateDeepCopy()); |
224 } | 225 } |
225 return out.Pass(); | 226 return out; |
226 } | 227 } |
227 | 228 |
228 const PrefService::Preference* PrefService::FindPreference( | 229 const PrefService::Preference* PrefService::FindPreference( |
229 const std::string& pref_name) const { | 230 const std::string& pref_name) const { |
230 DCHECK(CalledOnValidThread()); | 231 DCHECK(CalledOnValidThread()); |
231 PreferenceMap::iterator it = prefs_map_.find(pref_name); | 232 PreferenceMap::iterator it = prefs_map_.find(pref_name); |
232 if (it != prefs_map_.end()) | 233 if (it != prefs_map_.end()) |
233 return &(it->second); | 234 return &(it->second); |
234 const base::Value* default_value = NULL; | 235 const base::Value* default_value = NULL; |
235 if (!pref_registry_->defaults()->GetValue(pref_name, &default_value)) | 236 if (!pref_registry_->defaults()->GetValue(pref_name, &default_value)) |
(...skipping 256 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
492 NOTREACHED() << "Trying to write an unregistered pref: " << path; | 493 NOTREACHED() << "Trying to write an unregistered pref: " << path; |
493 return; | 494 return; |
494 } | 495 } |
495 if (pref->GetType() != new_value->GetType()) { | 496 if (pref->GetType() != new_value->GetType()) { |
496 NOTREACHED() << "Trying to set pref " << path | 497 NOTREACHED() << "Trying to set pref " << path |
497 << " of type " << pref->GetType() | 498 << " of type " << pref->GetType() |
498 << " to value of type " << new_value->GetType(); | 499 << " to value of type " << new_value->GetType(); |
499 return; | 500 return; |
500 } | 501 } |
501 | 502 |
502 user_pref_store_->SetValue(path, owned_value.Pass(), GetWriteFlags(pref)); | 503 user_pref_store_->SetValue(path, std::move(owned_value), GetWriteFlags(pref)); |
503 } | 504 } |
504 | 505 |
505 void PrefService::UpdateCommandLinePrefStore(PrefStore* command_line_store) { | 506 void PrefService::UpdateCommandLinePrefStore(PrefStore* command_line_store) { |
506 pref_value_store_->UpdateCommandLinePrefStore(command_line_store); | 507 pref_value_store_->UpdateCommandLinePrefStore(command_line_store); |
507 } | 508 } |
508 | 509 |
509 /////////////////////////////////////////////////////////////////////////////// | 510 /////////////////////////////////////////////////////////////////////////////// |
510 // PrefService::Preference | 511 // PrefService::Preference |
511 | 512 |
512 PrefService::Preference::Preference(const PrefService* service, | 513 PrefService::Preference::Preference(const PrefService* service, |
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
606 DCHECK(found_value->IsType(default_type)); | 607 DCHECK(found_value->IsType(default_type)); |
607 return found_value; | 608 return found_value; |
608 } else { | 609 } else { |
609 // Every registered preference has at least a default value. | 610 // Every registered preference has at least a default value. |
610 NOTREACHED() << "no valid value found for registered pref " << path; | 611 NOTREACHED() << "no valid value found for registered pref " << path; |
611 } | 612 } |
612 } | 613 } |
613 | 614 |
614 return NULL; | 615 return NULL; |
615 } | 616 } |
OLD | NEW |