| Index: chrome/browser/ui/ash/system_tray_delegate_chromeos.h
 | 
| diff --git a/chrome/browser/ui/ash/system_tray_delegate_chromeos.h b/chrome/browser/ui/ash/system_tray_delegate_chromeos.h
 | 
| index 7a2ee9c3453637ed9ee8559b127bd3d8f809235e..8ead43942500ad43c9e0f1996ccf95488a4cce9a 100644
 | 
| --- a/chrome/browser/ui/ash/system_tray_delegate_chromeos.h
 | 
| +++ b/chrome/browser/ui/ash/system_tray_delegate_chromeos.h
 | 
| @@ -21,6 +21,7 @@
 | 
|  #include "base/observer_list.h"
 | 
|  #include "base/prefs/pref_change_registrar.h"
 | 
|  #include "chrome/browser/chromeos/accessibility/accessibility_manager.h"
 | 
| +#include "chrome/browser/chromeos/settings/shutdown_policy_handler.h"
 | 
|  #include "chrome/browser/profiles/profile.h"
 | 
|  #include "chrome/browser/supervised_user/supervised_user_service_observer.h"
 | 
|  #include "chrome/browser/ui/browser_list_observer.h"
 | 
| @@ -57,7 +58,8 @@ class SystemTrayDelegateChromeOS
 | 
|        public chrome::BrowserListObserver,
 | 
|        public extensions::AppWindowRegistry::Observer,
 | 
|        public user_manager::UserManager::UserSessionStateObserver,
 | 
| -      public SupervisedUserServiceObserver {
 | 
| +      public SupervisedUserServiceObserver,
 | 
| +      public ShutdownPolicyHandler::Delegate  {
 | 
|   public:
 | 
|    SystemTrayDelegateChromeOS();
 | 
|  
 | 
| @@ -98,7 +100,6 @@ class SystemTrayDelegateChromeOS
 | 
|    void ShowSupervisedUserInfo() override;
 | 
|    void ShowEnterpriseInfo() override;
 | 
|    void ShowUserLogin() override;
 | 
| -  void ShutDown() override;
 | 
|    void SignOut() override;
 | 
|    void RequestLockScreen() override;
 | 
|    void RequestRestartForUpdate() override;
 | 
| @@ -133,6 +134,12 @@ class SystemTrayDelegateChromeOS
 | 
|        ash::CustodianInfoTrayObserver* observer) override;
 | 
|    void RemoveCustodianInfoTrayObserver(
 | 
|        ash::CustodianInfoTrayObserver* observer) override;
 | 
| +  void AddShutdownPolicyObserver(
 | 
| +      ash::ShutdownPolicyObserver* observer) override;
 | 
| +  void RemoveShutdownPolicyObserver(
 | 
| +      ash::ShutdownPolicyObserver* observer) override;
 | 
| +  void ShouldRebootOnShutdown(
 | 
| +      const ash::RebootOnShutdownCallback& callback) override;
 | 
|  
 | 
|    // Overridden from user_manager::UserManager::UserSessionStateObserver:
 | 
|    void UserAddedToSession(const user_manager::User* active_user) override;
 | 
| @@ -253,6 +260,9 @@ class SystemTrayDelegateChromeOS
 | 
|    void OnAccessibilityStatusChanged(
 | 
|        const AccessibilityStatusEventDetails& details);
 | 
|  
 | 
| +  // Overridden from ShutdownPolicyObserver::Delegate.
 | 
| +  void OnShutdownPolicyChanged(bool reboot_on_shutdown) override;
 | 
| +
 | 
|    // helper methods used by GetSupervisedUserMessage.
 | 
|    const base::string16 GetLegacySupervisedUserMessage() const;
 | 
|    const base::string16 GetChildUserMessage() const;
 | 
| @@ -279,10 +289,13 @@ class SystemTrayDelegateChromeOS
 | 
|    scoped_ptr<AccessibilityStatusSubscription> accessibility_subscription_;
 | 
|    base::ScopedPtrHashMap<std::string, ash::tray::UserAccountsDelegate>
 | 
|        accounts_delegates_;
 | 
| +  scoped_ptr<ShutdownPolicyHandler> shutdown_policy_handler_;
 | 
|  
 | 
|    ObserverList<ash::CustodianInfoTrayObserver>
 | 
|        custodian_info_changed_observers_;
 | 
|  
 | 
| +  ObserverList<ash::ShutdownPolicyObserver> shutdown_policy_observers_;
 | 
| +
 | 
|    base::WeakPtrFactory<SystemTrayDelegateChromeOS> weak_ptr_factory_;
 | 
|  
 | 
|    DISALLOW_COPY_AND_ASSIGN(SystemTrayDelegateChromeOS);
 | 
| 
 |