summaryrefslogtreecommitdiffstats
path: root/chrome/browser/chromeos/settings/cros_settings.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/chromeos/settings/cros_settings.cc')
-rw-r--r--chrome/browser/chromeos/settings/cros_settings.cc20
1 files changed, 16 insertions, 4 deletions
diff --git a/chrome/browser/chromeos/settings/cros_settings.cc b/chrome/browser/chromeos/settings/cros_settings.cc
index 211b5d5..08a6866 100644
--- a/chrome/browser/chromeos/settings/cros_settings.cc
+++ b/chrome/browser/chromeos/settings/cros_settings.cc
@@ -39,7 +39,7 @@ bool CrosSettings::IsInitialized() {
// static
void CrosSettings::Shutdown() {
- DCHECK(g_cros_settings);
+ CHECK(g_cros_settings);
delete g_cros_settings;
g_cros_settings = NULL;
}
@@ -328,12 +328,24 @@ void CrosSettings::FireObservers(const std::string& path) {
}
}
-ScopedTestCrosSettings::ScopedTestCrosSettings() {
- CrosSettings::Initialize();
+ScopedTestCrosSettings::ScopedTestCrosSettings()
+ : initialized_device_settings_service_(false),
+ initialized_cros_settings_(false) {
+ if (!DeviceSettingsService::IsInitialized()) {
+ DeviceSettingsService::Initialize();
+ initialized_device_settings_service_ = true;
+ }
+ if (!CrosSettings::IsInitialized()) {
+ CrosSettings::Initialize();
+ initialized_cros_settings_ = true;
+ }
}
ScopedTestCrosSettings::~ScopedTestCrosSettings() {
- CrosSettings::Shutdown();
+ if (initialized_cros_settings_)
+ CrosSettings::Shutdown();
+ if (initialized_device_settings_service_)
+ DeviceSettingsService::Shutdown();
}
} // namespace chromeos