 Chromium Code Reviews
 Chromium Code Reviews Issue 811033002:
  Add device policy to disallow shutdown - ash UI modifications  (Closed) 
  Base URL: https://chromium.googlesource.com/chromium/src.git@master
    
  
    Issue 811033002:
  Add device policy to disallow shutdown - ash UI modifications  (Closed) 
  Base URL: https://chromium.googlesource.com/chromium/src.git@master| Index: ash/system/date/date_default_view.cc | 
| diff --git a/ash/system/date/date_default_view.cc b/ash/system/date/date_default_view.cc | 
| index 6b07e25e06177de0ea8ce46f09cb884a86092d5a..5568f0d2a9857d79a2b20e6fd2f9c103ecd29f02 100644 | 
| --- a/ash/system/date/date_default_view.cc | 
| +++ b/ash/system/date/date_default_view.cc | 
| @@ -12,6 +12,7 @@ | 
| #include "ash/system/tray/system_tray_delegate.h" | 
| #include "ash/system/tray/tray_constants.h" | 
| #include "ash/system/tray/tray_popup_header_button.h" | 
| +#include "ash/wm/lock_state_controller.h" | 
| #include "grit/ash_resources.h" | 
| #include "grit/ash_strings.h" | 
| #include "ui/base/l10n/l10n_util.h" | 
| @@ -32,7 +33,8 @@ DateDefaultView::DateDefaultView(ash::user::LoginStatus login) | 
| : help_(NULL), | 
| shutdown_(NULL), | 
| lock_(NULL), | 
| - date_view_(NULL) { | 
| + date_view_(NULL), | 
| + weak_factory_(this) { | 
| SetLayoutManager(new views::FillLayout); | 
| date_view_ = new tray::DateView(); | 
| @@ -84,10 +86,20 @@ DateDefaultView::DateDefaultView(ash::user::LoginStatus login) | 
| lock_->SetTooltipText(l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_LOCK)); | 
| view->AddButton(lock_); | 
| } | 
| + SystemTrayDelegate* system_tray_delegate = | 
| + Shell::GetInstance()->system_tray_delegate(); | 
| + system_tray_delegate->AddShutdownPolicyObserver(this); | 
| + system_tray_delegate->ShouldRebootOnShutdown(base::Bind( | 
| + &DateDefaultView::OnShutdownPolicyChanged, weak_factory_.GetWeakPtr())); | 
| #endif // !defined(OS_WIN) | 
| } | 
| DateDefaultView::~DateDefaultView() { | 
| + // We need the check as on shell destruction, the delegate is destroyed first. | 
| + SystemTrayDelegate* system_tray_delegate = | 
| + Shell::GetInstance()->system_tray_delegate(); | 
| + if (system_tray_delegate) | 
| + system_tray_delegate->RemoveShutdownPolicyObserver(this); | 
| } | 
| views::View* DateDefaultView::GetHelpButtonView() { | 
| @@ -111,7 +123,9 @@ void DateDefaultView::ButtonPressed(views::Button* sender, | 
| tray_delegate->ShowHelp(); | 
| } else if (sender == shutdown_) { | 
| shell->metrics()->RecordUserMetricsAction(ash::UMA_TRAY_SHUT_DOWN); | 
| - tray_delegate->ShutDown(); | 
| + ash::Shell::GetInstance() | 
| + ->lock_state_controller() | 
| + ->RequestShutdownOrRestart(); | 
| } else if (sender == lock_) { | 
| shell->metrics()->RecordUserMetricsAction(ash::UMA_TRAY_LOCK_SCREEN); | 
| tray_delegate->RequestLockScreen(); | 
| @@ -120,4 +134,17 @@ void DateDefaultView::ButtonPressed(views::Button* sender, | 
| } | 
| } | 
| +void DateDefaultView::OnShutdownPolicyChanged(bool reboot_on_shutdown) { | 
| + if (!shutdown_) | 
| + return; | 
| + | 
| + if (reboot_on_shutdown) { | 
| 
Daniel Erat
2015/01/07 16:18:40
just do:
shutdown_->SetTooltipText(l10n_util::Get
 
cschuet (SLOW)
2015/01/13 10:38:28
Done.
 | 
| + shutdown_->SetTooltipText( | 
| + l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_REBOOT)); | 
| + return; | 
| + } | 
| + shutdown_->SetTooltipText( | 
| + l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_SHUTDOWN)); | 
| +} | 
| + | 
| } // namespace ash |