| Index: chrome/browser/chromeos/settings/cros_settings.cc
|
| diff --git a/chrome/browser/chromeos/settings/cros_settings.cc b/chrome/browser/chromeos/settings/cros_settings.cc
|
| index 050bef9cfb1bcfa58d8fc0f85b6e4525618b5f58..799d925b1f68302a96b5169f41ed633149e73151 100644
|
| --- a/chrome/browser/chromeos/settings/cros_settings.cc
|
| +++ b/chrome/browser/chromeos/settings/cros_settings.cc
|
| @@ -28,7 +28,7 @@ static CrosSettings* g_cros_settings = NULL;
|
| // static
|
| void CrosSettings::Initialize() {
|
| CHECK(!g_cros_settings);
|
| - g_cros_settings = new CrosSettings();
|
| + g_cros_settings = new CrosSettings(DeviceSettingsService::Get());
|
| }
|
|
|
| // static
|
| @@ -49,6 +49,27 @@ CrosSettings* CrosSettings::Get() {
|
| return g_cros_settings;
|
| }
|
|
|
| +CrosSettings::CrosSettings(DeviceSettingsService* device_settings_service) {
|
| + CrosSettingsProvider::NotifyObserversCallback notify_cb(
|
| + base::Bind(&CrosSettings::FireObservers,
|
| + // This is safe since |this| is never deleted.
|
| + base::Unretained(this)));
|
| + if (CommandLine::ForCurrentProcess()->HasSwitch(
|
| + switches::kStubCrosSettings)) {
|
| + AddSettingsProvider(new StubCrosSettingsProvider(notify_cb));
|
| + } else {
|
| + AddSettingsProvider(
|
| + new DeviceSettingsProvider(notify_cb, device_settings_service));
|
| + }
|
| + // System settings are not mocked currently.
|
| + AddSettingsProvider(new SystemSettingsProvider(notify_cb));
|
| +}
|
| +
|
| +CrosSettings::~CrosSettings() {
|
| + STLDeleteElements(&providers_);
|
| + STLDeleteValues(&settings_observers_);
|
| +}
|
| +
|
| bool CrosSettings::IsCrosSettings(const std::string& path) {
|
| return StartsWithASCII(path, kCrosSettingsPrefix, true);
|
| }
|
| @@ -298,27 +319,6 @@ CrosSettingsProvider* CrosSettings::GetProvider(
|
| return NULL;
|
| }
|
|
|
| -CrosSettings::CrosSettings() {
|
| - CrosSettingsProvider::NotifyObserversCallback notify_cb(
|
| - base::Bind(&CrosSettings::FireObservers,
|
| - // This is safe since |this| is never deleted.
|
| - base::Unretained(this)));
|
| - if (CommandLine::ForCurrentProcess()->HasSwitch(
|
| - switches::kStubCrosSettings)) {
|
| - AddSettingsProvider(new StubCrosSettingsProvider(notify_cb));
|
| - } else {
|
| - AddSettingsProvider(
|
| - new DeviceSettingsProvider(notify_cb, DeviceSettingsService::Get()));
|
| - }
|
| - // System settings are not mocked currently.
|
| - AddSettingsProvider(new SystemSettingsProvider(notify_cb));
|
| -}
|
| -
|
| -CrosSettings::~CrosSettings() {
|
| - STLDeleteElements(&providers_);
|
| - STLDeleteValues(&settings_observers_);
|
| -}
|
| -
|
| void CrosSettings::FireObservers(const std::string& path) {
|
| DCHECK(CalledOnValidThread());
|
| SettingsObserverMap::iterator observer_iterator =
|
|
|