| 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);
|
| }
|
|
|