diff options
Diffstat (limited to 'chrome/browser/chromeos/settings/cros_settings.cc')
-rw-r--r-- | chrome/browser/chromeos/settings/cros_settings.cc | 20 |
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 |