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 = |