Index: chrome/browser/chromeos/login/ui/webui_login_view.cc |
diff --git a/chrome/browser/chromeos/login/ui/webui_login_view.cc b/chrome/browser/chromeos/login/ui/webui_login_view.cc |
index 172bd19d8e15d36c1a9a46d82d756bc011a578a8..83d3f3022d7919a18f973b8264b73c5a8c1635dd 100644 |
--- a/chrome/browser/chromeos/login/ui/webui_login_view.cc |
+++ b/chrome/browser/chromeos/login/ui/webui_login_view.cc |
@@ -5,7 +5,6 @@ |
#include "chrome/browser/chromeos/login/ui/webui_login_view.h" |
#include "ash/common/focus_cycler.h" |
-#include "ash/common/system/status_area_widget_delegate.h" |
#include "ash/common/system/tray/system_tray.h" |
#include "ash/common/wm_shell.h" |
#include "ash/shell.h" |
@@ -60,8 +59,6 @@ |
#include "ui/gfx/geometry/rect.h" |
#include "ui/gfx/geometry/size.h" |
#include "ui/views/controls/webview/webview.h" |
-#include "ui/views/focus/focus_manager.h" |
-#include "ui/views/focus/focus_search.h" |
#include "ui/views/widget/widget.h" |
using content::NativeWebKeyboardEvent; |
@@ -108,15 +105,6 @@ class ScopedArrowKeyTraversal { |
DISALLOW_COPY_AND_ASSIGN(ScopedArrowKeyTraversal); |
}; |
-// A helper method returns status area widget delegate if exists, |
-// otherwise nullptr. |
-ash::StatusAreaWidgetDelegate* GetStatusAreaWidgetDelegate() { |
- ash::SystemTray* tray = ash::Shell::GetInstance()->GetPrimarySystemTray(); |
- return tray ? static_cast<ash::StatusAreaWidgetDelegate*>( |
- tray->GetWidget()->GetContentsView()) |
- : nullptr; |
-} |
- |
} // namespace |
namespace chromeos { |
@@ -125,59 +113,6 @@ namespace chromeos { |
const char WebUILoginView::kViewClassName[] = |
"browser/chromeos/login/WebUILoginView"; |
-// WebUILoginView::CycleFocusTraversable --------------------------------------- |
-class WebUILoginView::CycleFocusTraversable : public views::FocusTraversable { |
- public: |
- explicit CycleFocusTraversable(WebUILoginView* webui_login_view) |
- : cycle_focus_search_(webui_login_view, true, false) {} |
- ~CycleFocusTraversable() override {} |
- |
- // views::FocusTraversable |
- views::FocusSearch* GetFocusSearch() override { return &cycle_focus_search_; } |
- |
- views::FocusTraversable* GetFocusTraversableParent() override { |
- return nullptr; |
- } |
- |
- views::View* GetFocusTraversableParentView() override { return nullptr; } |
- |
- private: |
- views::FocusSearch cycle_focus_search_; |
- |
- DISALLOW_COPY_AND_ASSIGN(CycleFocusTraversable); |
-}; |
- |
-// WebUILoginView::StatusAreaFocusTraversable ---------------------------------- |
-class WebUILoginView::StatusAreaFocusTraversable |
- : public views::FocusTraversable { |
- public: |
- StatusAreaFocusTraversable( |
- ash::StatusAreaWidgetDelegate* status_area_widget_delegate, |
- WebUILoginView* webui_login_view) |
- : webui_login_view_(webui_login_view), |
- status_area_focus_search_(status_area_widget_delegate, false, false) {} |
- ~StatusAreaFocusTraversable() override {} |
- |
- // views::FocusTraversable |
- views::FocusSearch* GetFocusSearch() override { |
- return &status_area_focus_search_; |
- } |
- |
- views::FocusTraversable* GetFocusTraversableParent() override { |
- return webui_login_view_->cycle_focus_traversable_.get(); |
- } |
- |
- views::View* GetFocusTraversableParentView() override { |
- return webui_login_view_->status_area_widget_host_; |
- } |
- |
- private: |
- WebUILoginView* const webui_login_view_; |
- views::FocusSearch status_area_focus_search_; |
- |
- DISALLOW_COPY_AND_ASSIGN(StatusAreaFocusTraversable); |
-}; |
- |
// WebUILoginView public: ------------------------------------------------------ |
WebUILoginView::WebUILoginView(const WebViewSettings& settings) |
@@ -247,13 +182,8 @@ WebUILoginView::~WebUILoginView() { |
if (!chrome::IsRunningInMash() && |
ash::Shell::GetInstance()->HasPrimaryStatusArea()) { |
- views::Widget* tray_widget = |
- ash::Shell::GetInstance()->GetPrimarySystemTray()->GetWidget(); |
- ash::StatusAreaWidgetDelegate* status_area_widget_delegate = |
- static_cast<ash::StatusAreaWidgetDelegate*>( |
- tray_widget->GetContentsView()); |
- status_area_widget_delegate->set_custom_focus_traversable(nullptr); |
- status_area_widget_delegate->set_default_last_focusable_child(false); |
+ ash::Shell::GetInstance()->GetPrimarySystemTray()->SetNextFocusableView( |
+ nullptr); |
} else { |
NOTIMPLEMENTED(); |
} |
@@ -325,9 +255,6 @@ void WebUILoginView::Init() { |
WebContentsModalDialogManager::FromWebContents(web_contents) |
->SetDelegate(this); |
web_contents->SetDelegate(this); |
- |
- status_area_widget_host_ = new views::View; |
- AddChildView(status_area_widget_host_); |
} |
const char* WebUILoginView::GetClassName() const { |
@@ -400,15 +327,6 @@ void WebUILoginView::LoadURL(const GURL& url) { |
// There is no Shell instance while running in mash. |
if (chrome::IsRunningInMash()) |
return; |
- |
- ash::StatusAreaWidgetDelegate* status_area_widget_delegate = |
- GetStatusAreaWidgetDelegate(); |
- DCHECK(status_area_widget_delegate); |
- cycle_focus_traversable_.reset(new CycleFocusTraversable(this)); |
- status_area_focus_traversable_.reset( |
- new StatusAreaFocusTraversable(status_area_widget_delegate, this)); |
- status_area_widget_delegate->set_custom_focus_traversable( |
- status_area_focus_traversable_.get()); |
} |
content::WebUI* WebUILoginView::GetWebUI() { |
@@ -546,11 +464,9 @@ bool WebUILoginView::TakeFocus(content::WebContents* source, bool reverse) { |
if (chrome::IsRunningInMash()) |
return true; |
- ash::StatusAreaWidgetDelegate* status_area_widget_delegate = |
- GetStatusAreaWidgetDelegate(); |
- if (status_area_widget_delegate && |
- status_area_widget_delegate->GetWidget()->IsVisible()) { |
- status_area_widget_delegate->set_default_last_focusable_child(reverse); |
+ ash::SystemTray* tray = ash::Shell::GetInstance()->GetPrimarySystemTray(); |
+ if (tray && tray->GetWidget()->IsVisible()) { |
+ tray->SetNextFocusableView(this); |
ash::WmShell::Get()->focus_cycler()->RotateFocus( |
reverse ? ash::FocusCycler::BACKWARD : ash::FocusCycler::FORWARD); |
} |