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

Unified Diff: chrome/browser/chromeos/cros_settings.cc

Issue 8727037: Signed settings refactoring: Proper caching and more tests. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased to ToT and removed some debug output left. Created 9 years, 1 month 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chromeos/cros_settings.cc
diff --git a/chrome/browser/chromeos/cros_settings.cc b/chrome/browser/chromeos/cros_settings.cc
index bde3c314b96288302f55f26c8a0c51515974d155..de87fbe708d9a5b6e40114e4c1dfae49fe225287 100644
--- a/chrome/browser/chromeos/cros_settings.cc
+++ b/chrome/browser/chromeos/cros_settings.cc
@@ -8,7 +8,7 @@
#include "base/stl_util.h"
#include "base/string_util.h"
#include "base/values.h"
-#include "chrome/browser/chromeos/user_cros_settings_provider.h"
+#include "chrome/browser/chromeos/device_settings_provider.h"
#include "chrome/browser/ui/webui/options/chromeos/system_settings_provider.h"
#include "chrome/common/chrome_notification_types.h"
#include "content/public/browser/notification_details.h"
@@ -83,9 +83,9 @@ void CrosSettings::SetString(const std::string& path,
void CrosSettings::AppendToList(const std::string& path,
const base::Value* value) {
DCHECK(CalledOnValidThread());
- const base::Value* old_value = GetPref(path);
+ base::Value* old_value = GetPref(path);
scoped_ptr<base::Value> new_value(
- old_value ? old_value->DeepCopy() : new base::ListValue());
+ old_value ? old_value : new base::ListValue());
static_cast<base::ListValue*>(new_value.get())->Append(value->DeepCopy());
Set(path, *new_value);
}
@@ -93,9 +93,9 @@ void CrosSettings::AppendToList(const std::string& path,
void CrosSettings::RemoveFromList(const std::string& path,
const base::Value* value) {
DCHECK(CalledOnValidThread());
- const base::Value* old_value = GetPref(path);
+ base::Value* old_value = GetPref(path);
scoped_ptr<base::Value> new_value(
- old_value ? old_value->DeepCopy() : new base::ListValue());
+ old_value ? old_value : new base::ListValue());
static_cast<base::ListValue*>(new_value.get())->Remove(*value, NULL);
Set(path, *new_value);
}
@@ -104,9 +104,9 @@ bool CrosSettings::FindEmailInList(const std::string& path,
const std::string& email) const {
DCHECK(CalledOnValidThread());
base::StringValue email_value(email);
- const base::ListValue* value =
- static_cast<const base::ListValue*>(GetPref(path));
- if (value) {
+ scoped_ptr<base::ListValue> value(
+ static_cast<base::ListValue*>(GetPref(path)));
+ if (value.get()) {
if (value->Find(email_value) != value->end())
return true;
std::string::size_type at_pos = email.find('@');
@@ -195,7 +195,13 @@ CrosSettingsProvider* CrosSettings::GetProvider(
return NULL;
}
-const base::Value* CrosSettings::GetPref(const std::string& path) const {
+void CrosSettings::ReloadProviders() const {
+ for (size_t i = 0; i < providers_.size(); ++i) {
+ providers_[i]->Reload();
+ }
+}
+
+base::Value* CrosSettings::GetPref(const std::string& path) const {
DCHECK(CalledOnValidThread());
CrosSettingsProvider* provider = GetProvider(path);
if (provider)
@@ -217,8 +223,8 @@ bool CrosSettings::GetTrusted(const std::string& path,
bool CrosSettings::GetBoolean(const std::string& path,
bool* bool_value) const {
DCHECK(CalledOnValidThread());
- const base::Value* value = GetPref(path);
- if (value)
+ scoped_ptr<base::Value> value(GetPref(path));
+ if (value.get())
return value->GetAsBoolean(bool_value);
return false;
}
@@ -226,8 +232,8 @@ bool CrosSettings::GetBoolean(const std::string& path,
bool CrosSettings::GetInteger(const std::string& path,
int* out_value) const {
DCHECK(CalledOnValidThread());
- const base::Value* value = GetPref(path);
- if (value)
+ scoped_ptr<base::Value> value(GetPref(path));
+ if (value.get())
return value->GetAsInteger(out_value);
return false;
}
@@ -235,8 +241,8 @@ bool CrosSettings::GetInteger(const std::string& path,
bool CrosSettings::GetDouble(const std::string& path,
double* out_value) const {
DCHECK(CalledOnValidThread());
- const base::Value* value = GetPref(path);
- if (value)
+ scoped_ptr<base::Value> value(GetPref(path));
+ if (value.get())
return value->GetAsDouble(out_value);
return false;
}
@@ -244,8 +250,8 @@ bool CrosSettings::GetDouble(const std::string& path,
bool CrosSettings::GetString(const std::string& path,
std::string* out_value) const {
DCHECK(CalledOnValidThread());
- const base::Value* value = GetPref(path);
- if (value)
+ scoped_ptr<base::Value> value(GetPref(path));
+ if (value.get())
return value->GetAsString(out_value);
return false;
}
@@ -253,15 +259,15 @@ bool CrosSettings::GetString(const std::string& path,
bool CrosSettings::GetList(const std::string& path,
const base::ListValue** out_value) const {
DCHECK(CalledOnValidThread());
- const base::Value* value = GetPref(path);
- if (value)
+ scoped_ptr<base::Value> value(GetPref(path));
+ if (value.get())
return value->GetAsList(out_value);
return false;
}
CrosSettings::CrosSettings() {
AddSettingsProvider(new SystemSettingsProvider());
- AddSettingsProvider(new UserCrosSettingsProvider());
+ AddSettingsProvider(new DeviceSettingsProvider());
}
CrosSettings::~CrosSettings() {

Powered by Google App Engine
This is Rietveld 408576698