Index: chrome/browser/chromeos/settings/shutdown_policy_handler.cc |
diff --git a/chrome/browser/chromeos/settings/shutdown_policy_handler.cc b/chrome/browser/chromeos/settings/shutdown_policy_handler.cc |
index 095a9868d84cce4f332619a9c3e8a951f020e7cf..0dc0d7963092b2f29e1db4b455df5c364e9f7bf8 100644 |
--- a/chrome/browser/chromeos/settings/shutdown_policy_handler.cc |
+++ b/chrome/browser/chromeos/settings/shutdown_policy_handler.cc |
@@ -14,44 +14,30 @@ namespace chromeos { |
ShutdownPolicyHandler::ShutdownPolicyHandler(CrosSettings* cros_settings, |
Delegate* delegate) |
: cros_settings_(cros_settings), delegate_(delegate), weak_factory_(this) { |
- if (delegate_) { |
- shutdown_policy_subscription_ = cros_settings_->AddSettingsObserver( |
- kRebootOnShutdown, |
- base::Bind(&ShutdownPolicyHandler::OnShutdownPolicyChanged, |
- weak_factory_.GetWeakPtr())); |
- } |
+ DCHECK(cros_settings_); |
+ DCHECK(delegate_); |
+ // Notify the delegate if the setting changes. |
+ shutdown_policy_subscription_ = cros_settings_->AddSettingsObserver( |
+ kRebootOnShutdown, |
+ base::Bind(&ShutdownPolicyHandler::CheckIfRebootOnShutdown, |
+ weak_factory_.GetWeakPtr())); |
} |
ShutdownPolicyHandler::~ShutdownPolicyHandler() {} |
-void ShutdownPolicyHandler::Shutdown() { |
- shutdown_policy_subscription_.reset(); |
- delegate_ = nullptr; |
-} |
- |
-void ShutdownPolicyHandler::CallDelegate(bool reboot_on_shutdown) { |
- if (delegate_) |
- delegate_->OnShutdownPolicyChanged(reboot_on_shutdown); |
-} |
- |
-void ShutdownPolicyHandler::OnShutdownPolicyChanged() { |
- CheckIfRebootOnShutdown(base::Bind(&ShutdownPolicyHandler::CallDelegate, |
- weak_factory_.GetWeakPtr())); |
-} |
- |
-void ShutdownPolicyHandler::CheckIfRebootOnShutdown( |
- const RebootOnShutdownCallback& callback) { |
+void ShutdownPolicyHandler::CheckIfRebootOnShutdown() { |
+ // Only notify the delegate after trusted settings are loaded. |
CrosSettingsProvider::TrustedStatus status = |
cros_settings_->PrepareTrustedValues( |
base::Bind(&ShutdownPolicyHandler::CheckIfRebootOnShutdown, |
- weak_factory_.GetWeakPtr(), callback)); |
+ weak_factory_.GetWeakPtr())); |
if (status != CrosSettingsProvider::TRUSTED) |
return; |
// Get the updated policy. |
bool reboot_on_shutdown = false; |
cros_settings_->GetBoolean(kRebootOnShutdown, &reboot_on_shutdown); |
- callback.Run(reboot_on_shutdown); |
+ delegate_->OnShutdownPolicyChanged(reboot_on_shutdown); |
} |
} // namespace chromeos |