Index: ash/common/wm_shell.cc |
diff --git a/ash/common/wm_shell.cc b/ash/common/wm_shell.cc |
index 4aa534e580fcae74d6ff84b133f6cdcfbf9defcb..89170590799b781dbc5eff5cf3f1300ccdccabd5 100644 |
--- a/ash/common/wm_shell.cc |
+++ b/ash/common/wm_shell.cc |
@@ -6,10 +6,12 @@ |
#include "ash/common/focus_cycler.h" |
#include "ash/common/shell_window_ids.h" |
+#include "ash/common/system/chromeos/session/logout_confirmation_controller.h" |
#include "ash/common/system/tray/system_tray_delegate.h" |
#include "ash/common/system/tray/system_tray_notifier.h" |
#include "ash/common/wm/overview/window_selector_controller.h" |
#include "ash/common/wm_window.h" |
+#include "base/bind.h" |
#include "base/logging.h" |
namespace ash { |
@@ -34,6 +36,10 @@ WmShell::WmShell() |
WmShell::~WmShell() {} |
+WmRootWindowController* WmShell::GetPrimaryRootWindowController() { |
+ return GetPrimaryRootWindow()->GetRootWindowController(); |
+} |
+ |
bool WmShell::IsSystemModalWindowOpen() { |
if (simulate_modal_window_open_for_testing_) |
return true; |
@@ -56,16 +62,24 @@ bool WmShell::IsSystemModalWindowOpen() { |
void WmShell::SetSystemTrayDelegate( |
std::unique_ptr<SystemTrayDelegate> delegate) { |
- if (delegate) { |
- DCHECK(!system_tray_delegate_); |
- // TODO(jamescook): Create via ShellDelegate once it moves to //ash/common. |
- system_tray_delegate_ = std::move(delegate); |
- system_tray_delegate_->Initialize(); |
- } else { |
- DCHECK(system_tray_delegate_); |
- system_tray_delegate_->Shutdown(); |
- system_tray_delegate_.reset(); |
- } |
+ DCHECK(delegate); |
+ DCHECK(!system_tray_delegate_); |
+ // TODO(jamescook): Create via ShellDelegate once it moves to //ash/common. |
+ system_tray_delegate_ = std::move(delegate); |
+ system_tray_delegate_->Initialize(); |
+#if defined(OS_CHROMEOS) |
+ logout_confirmation_controller_.reset(new LogoutConfirmationController( |
+ base::Bind(&SystemTrayDelegate::SignOut, |
+ base::Unretained(system_tray_delegate_.get())))); |
+#endif |
+} |
+ |
+void WmShell::DeleteSystemTrayDelegate() { |
+#if defined(OS_CHROMEOS) |
+ logout_confirmation_controller_.reset(); |
+#endif |
+ DCHECK(system_tray_delegate_); |
msw
2016/06/28 21:09:16
optional nit: DCHECK at top?
James Cook
2016/06/28 21:41:02
Done.
|
+ system_tray_delegate_.reset(); |
} |
void WmShell::DeleteWindowSelectorController() { |