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