Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(132)

Side by Side Diff: chrome/browser/chromeos/login/ui/webui_login_view.h

Issue 2295843006: Signin screen and locked screen status area focus advancing (Closed)
Patch Set: create a helper GetStatusAreaWidgetDelegate Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_BROWSER_CHROMEOS_LOGIN_UI_WEBUI_LOGIN_VIEW_H_ 5 #ifndef CHROME_BROWSER_CHROMEOS_LOGIN_UI_WEBUI_LOGIN_VIEW_H_
6 #define CHROME_BROWSER_CHROMEOS_LOGIN_UI_WEBUI_LOGIN_VIEW_H_ 6 #define CHROME_BROWSER_CHROMEOS_LOGIN_UI_WEBUI_LOGIN_VIEW_H_
7 7
8 #include <map> 8 #include <map>
9 #include <string> 9 #include <string>
10 10
11 #include "base/macros.h" 11 #include "base/macros.h"
12 #include "base/observer_list.h" 12 #include "base/observer_list.h"
13 #include "chrome/browser/ui/chrome_web_modal_dialog_manager_delegate.h" 13 #include "chrome/browser/ui/chrome_web_modal_dialog_manager_delegate.h"
14 #include "components/web_modal/web_contents_modal_dialog_host.h" 14 #include "components/web_modal/web_contents_modal_dialog_host.h"
15 #include "content/public/browser/notification_observer.h" 15 #include "content/public/browser/notification_observer.h"
16 #include "content/public/browser/notification_registrar.h" 16 #include "content/public/browser/notification_registrar.h"
17 #include "content/public/browser/web_contents_delegate.h" 17 #include "content/public/browser/web_contents_delegate.h"
18 #include "ui/views/controls/webview/unhandled_keyboard_event_handler.h" 18 #include "ui/views/controls/webview/unhandled_keyboard_event_handler.h"
19 #include "ui/views/widget/widget.h" 19 #include "ui/views/widget/widget.h"
20 #include "ui/views/widget/widget_delegate.h" 20 #include "ui/views/widget/widget_delegate.h"
21 21
22 class GURL; 22 class GURL;
23 23
24 namespace ash {
25 class StatusAreaWidgetDelegate;
26 }
27
24 namespace content { 28 namespace content {
25 class WebUI; 29 class WebUI;
26 } 30 }
27 31
28 namespace views { 32 namespace views {
29 class View; 33 class View;
30 class WebView; 34 class WebView;
31 class Widget; 35 class Widget;
32 } 36 }
33 37
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
134 content::MediaStreamType type) override; 138 content::MediaStreamType type) override;
135 bool PreHandleGestureEvent(content::WebContents* source, 139 bool PreHandleGestureEvent(content::WebContents* source,
136 const blink::WebGestureEvent& event) override; 140 const blink::WebGestureEvent& event) override;
137 141
138 // Performs series of actions when login prompt is considered 142 // Performs series of actions when login prompt is considered
139 // to be ready and visible. 143 // to be ready and visible.
140 // 1. Emits LoginPromptVisible signal if needed 144 // 1. Emits LoginPromptVisible signal if needed
141 // 2. Notifies OOBE/sign classes. 145 // 2. Notifies OOBE/sign classes.
142 void OnLoginPromptVisible(); 146 void OnLoginPromptVisible();
143 147
148 // Return if status area widget delegate exists, otherwise nullptr.
149 ash::StatusAreaWidgetDelegate* GetStatusAreaWidgetDelegate();
xiyuan 2016/09/13 21:48:08 Move this to cc file in anonymous namespace since
Qiang(Joe) Xu 2016/09/13 21:54:57 done
150
144 content::NotificationRegistrar registrar_; 151 content::NotificationRegistrar registrar_;
145 152
146 // Converts keyboard events on the WebContents to accelerators. 153 // Converts keyboard events on the WebContents to accelerators.
147 views::UnhandledKeyboardEventHandler unhandled_keyboard_event_handler_; 154 views::UnhandledKeyboardEventHandler unhandled_keyboard_event_handler_;
148 155
149 // Maps installed accelerators to OOBE webui accelerator identifiers. 156 // Maps installed accelerators to OOBE webui accelerator identifiers.
150 AccelMap accel_map_; 157 AccelMap accel_map_;
151 158
152 // True when WebUI is being initialized hidden. 159 // True when WebUI is being initialized hidden.
153 bool is_hidden_; 160 bool is_hidden_;
154 161
155 // True when the WebUI has finished initializing and is visible. 162 // True when the WebUI has finished initializing and is visible.
156 bool webui_visible_; 163 bool webui_visible_;
157 164
158 // Should we emit the login-prompt-visible signal when the login page is 165 // Should we emit the login-prompt-visible signal when the login page is
159 // displayed? 166 // displayed?
160 bool should_emit_login_prompt_visible_; 167 bool should_emit_login_prompt_visible_;
161 168
162 // True to forward keyboard event. 169 // True to forward keyboard event.
163 bool forward_keyboard_event_; 170 bool forward_keyboard_event_;
164 171
172 // A FocusTraversable for StatusAreaWidget that uses
173 // |status_area_widget_host_| as placeholder in WebUiLoginView's focus chain.
174 class StatusAreaFocusTraversable;
175 std::unique_ptr<StatusAreaFocusTraversable> status_area_focus_traversable_;
176 views::View* status_area_widget_host_ = nullptr;
177
178 // A FocusTraversable for WebUILoginView that loops back at the end of its
179 // focus chain.
180 class CycleFocusTraversable;
181 std::unique_ptr<CycleFocusTraversable> cycle_focus_traversable_;
182
165 base::ObserverList<web_modal::ModalDialogHostObserver> observer_list_; 183 base::ObserverList<web_modal::ModalDialogHostObserver> observer_list_;
166 184
167 DISALLOW_COPY_AND_ASSIGN(WebUILoginView); 185 DISALLOW_COPY_AND_ASSIGN(WebUILoginView);
168 }; 186 };
169 187
170 } // namespace chromeos 188 } // namespace chromeos
171 189
172 #endif // CHROME_BROWSER_CHROMEOS_LOGIN_UI_WEBUI_LOGIN_VIEW_H_ 190 #endif // CHROME_BROWSER_CHROMEOS_LOGIN_UI_WEBUI_LOGIN_VIEW_H_
OLDNEW
« no previous file with comments | « ash/common/system/status_area_widget_delegate.cc ('k') | chrome/browser/chromeos/login/ui/webui_login_view.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698