| 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 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/files/file_path.h" | 10 #include "base/files/file_path.h" |
| (...skipping 453 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 464 base::Value* value = NULL; | 464 base::Value* value = NULL; |
| 465 if (!user_pref_store_->GetMutableValue(path, &value) || | 465 if (!user_pref_store_->GetMutableValue(path, &value) || |
| 466 !value->IsType(type)) { | 466 !value->IsType(type)) { |
| 467 if (type == base::Value::TYPE_DICTIONARY) { | 467 if (type == base::Value::TYPE_DICTIONARY) { |
| 468 value = new base::DictionaryValue; | 468 value = new base::DictionaryValue; |
| 469 } else if (type == base::Value::TYPE_LIST) { | 469 } else if (type == base::Value::TYPE_LIST) { |
| 470 value = new base::ListValue; | 470 value = new base::ListValue; |
| 471 } else { | 471 } else { |
| 472 NOTREACHED(); | 472 NOTREACHED(); |
| 473 } | 473 } |
| 474 user_pref_store_->SetValueSilently(path, value, GetWriteFlags(pref)); | 474 user_pref_store_->SetValueSilently(path, make_scoped_ptr(value), |
| 475 GetWriteFlags(pref)); |
| 475 } | 476 } |
| 476 return value; | 477 return value; |
| 477 } | 478 } |
| 478 | 479 |
| 479 void PrefService::ReportUserPrefChanged(const std::string& key) { | 480 void PrefService::ReportUserPrefChanged(const std::string& key) { |
| 480 DCHECK(CalledOnValidThread()); | 481 DCHECK(CalledOnValidThread()); |
| 481 user_pref_store_->ReportValueChanged(key, GetWriteFlags(FindPreference(key))); | 482 user_pref_store_->ReportValueChanged(key, GetWriteFlags(FindPreference(key))); |
| 482 } | 483 } |
| 483 | 484 |
| 484 void PrefService::SetUserPrefValue(const std::string& path, | 485 void PrefService::SetUserPrefValue(const std::string& path, |
| 485 base::Value* new_value) { | 486 base::Value* new_value) { |
| 486 scoped_ptr<base::Value> owned_value(new_value); | 487 scoped_ptr<base::Value> owned_value(new_value); |
| 487 DCHECK(CalledOnValidThread()); | 488 DCHECK(CalledOnValidThread()); |
| 488 | 489 |
| 489 const Preference* pref = FindPreference(path); | 490 const Preference* pref = FindPreference(path); |
| 490 if (!pref) { | 491 if (!pref) { |
| 491 NOTREACHED() << "Trying to write an unregistered pref: " << path; | 492 NOTREACHED() << "Trying to write an unregistered pref: " << path; |
| 492 return; | 493 return; |
| 493 } | 494 } |
| 494 if (pref->GetType() != new_value->GetType()) { | 495 if (pref->GetType() != new_value->GetType()) { |
| 495 NOTREACHED() << "Trying to set pref " << path | 496 NOTREACHED() << "Trying to set pref " << path |
| 496 << " of type " << pref->GetType() | 497 << " of type " << pref->GetType() |
| 497 << " to value of type " << new_value->GetType(); | 498 << " to value of type " << new_value->GetType(); |
| 498 return; | 499 return; |
| 499 } | 500 } |
| 500 | 501 |
| 501 user_pref_store_->SetValue(path, owned_value.release(), GetWriteFlags(pref)); | 502 user_pref_store_->SetValue(path, owned_value.Pass(), GetWriteFlags(pref)); |
| 502 } | 503 } |
| 503 | 504 |
| 504 void PrefService::UpdateCommandLinePrefStore(PrefStore* command_line_store) { | 505 void PrefService::UpdateCommandLinePrefStore(PrefStore* command_line_store) { |
| 505 pref_value_store_->UpdateCommandLinePrefStore(command_line_store); | 506 pref_value_store_->UpdateCommandLinePrefStore(command_line_store); |
| 506 } | 507 } |
| 507 | 508 |
| 508 /////////////////////////////////////////////////////////////////////////////// | 509 /////////////////////////////////////////////////////////////////////////////// |
| 509 // PrefService::Preference | 510 // PrefService::Preference |
| 510 | 511 |
| 511 PrefService::Preference::Preference(const PrefService* service, | 512 PrefService::Preference::Preference(const PrefService* service, |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 605 DCHECK(found_value->IsType(default_type)); | 606 DCHECK(found_value->IsType(default_type)); |
| 606 return found_value; | 607 return found_value; |
| 607 } else { | 608 } else { |
| 608 // Every registered preference has at least a default value. | 609 // Every registered preference has at least a default value. |
| 609 NOTREACHED() << "no valid value found for registered pref " << path; | 610 NOTREACHED() << "no valid value found for registered pref " << path; |
| 610 } | 611 } |
| 611 } | 612 } |
| 612 | 613 |
| 613 return NULL; | 614 return NULL; |
| 614 } | 615 } |
| OLD | NEW |