| OLD | NEW |
| 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 #include "chrome/browser/chromeos/login/ui/webui_login_view.h" | 5 #include "chrome/browser/chromeos/login/ui/webui_login_view.h" |
| 6 | 6 |
| 7 #include "ash/common/focus_cycler.h" | 7 #include "ash/common/focus_cycler.h" |
| 8 #include "ash/common/system/status_area_widget_delegate.h" | 8 #include "ash/common/system/status_area_widget_delegate.h" |
| 9 #include "ash/common/system/tray/system_tray.h" | 9 #include "ash/common/system/tray/system_tray.h" |
| 10 #include "ash/common/wm_shell.h" | 10 #include "ash/common/wm_shell.h" |
| (...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 165 | 165 |
| 166 private: | 166 private: |
| 167 WebUILoginView* const webui_login_view_; | 167 WebUILoginView* const webui_login_view_; |
| 168 views::FocusSearch status_area_focus_search_; | 168 views::FocusSearch status_area_focus_search_; |
| 169 | 169 |
| 170 DISALLOW_COPY_AND_ASSIGN(StatusAreaFocusTraversable); | 170 DISALLOW_COPY_AND_ASSIGN(StatusAreaFocusTraversable); |
| 171 }; | 171 }; |
| 172 | 172 |
| 173 // WebUILoginView public: ------------------------------------------------------ | 173 // WebUILoginView public: ------------------------------------------------------ |
| 174 | 174 |
| 175 WebUILoginView::WebUILoginView() | 175 WebUILoginView::WebUILoginView() { |
| 176 : webui_login_(NULL), | |
| 177 is_hidden_(false), | |
| 178 webui_visible_(false), | |
| 179 should_emit_login_prompt_visible_(true), | |
| 180 forward_keyboard_event_(true) { | |
| 181 registrar_.Add(this, | 176 registrar_.Add(this, |
| 182 chrome::NOTIFICATION_LOGIN_OR_LOCK_WEBUI_VISIBLE, | 177 chrome::NOTIFICATION_LOGIN_OR_LOCK_WEBUI_VISIBLE, |
| 183 content::NotificationService::AllSources()); | 178 content::NotificationService::AllSources()); |
| 184 registrar_.Add(this, | 179 registrar_.Add(this, |
| 185 chrome::NOTIFICATION_LOGIN_NETWORK_ERROR_SHOWN, | 180 chrome::NOTIFICATION_LOGIN_NETWORK_ERROR_SHOWN, |
| 186 content::NotificationService::AllSources()); | 181 content::NotificationService::AllSources()); |
| 187 | 182 |
| 188 accel_map_[ui::Accelerator(ui::VKEY_ESCAPE, ui::EF_NONE)] = | 183 accel_map_[ui::Accelerator(ui::VKEY_ESCAPE, ui::EF_NONE)] = |
| 189 kAccelNameCancel; | 184 kAccelNameCancel; |
| 190 accel_map_[ui::Accelerator(ui::VKEY_E, | 185 accel_map_[ui::Accelerator(ui::VKEY_E, |
| (...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 374 } | 369 } |
| 375 | 370 |
| 376 content::WebUI* WebUILoginView::GetWebUI() { | 371 content::WebUI* WebUILoginView::GetWebUI() { |
| 377 return webui_login_->web_contents()->GetWebUI(); | 372 return webui_login_->web_contents()->GetWebUI(); |
| 378 } | 373 } |
| 379 | 374 |
| 380 content::WebContents* WebUILoginView::GetWebContents() { | 375 content::WebContents* WebUILoginView::GetWebContents() { |
| 381 return webui_login_->web_contents(); | 376 return webui_login_->web_contents(); |
| 382 } | 377 } |
| 383 | 378 |
| 379 OobeUI* WebUILoginView::GetOobeUI() { |
| 380 return static_cast<OobeUI*>(GetWebUI()->GetController()); |
| 381 } |
| 382 |
| 384 void WebUILoginView::OpenProxySettings() { | 383 void WebUILoginView::OpenProxySettings() { |
| 385 const NetworkState* network = | 384 const NetworkState* network = |
| 386 NetworkHandler::Get()->network_state_handler()->DefaultNetwork(); | 385 NetworkHandler::Get()->network_state_handler()->DefaultNetwork(); |
| 387 if (!network) { | 386 if (!network) { |
| 388 LOG(ERROR) << "No default network found!"; | 387 LOG(ERROR) << "No default network found!"; |
| 389 return; | 388 return; |
| 390 } | 389 } |
| 391 ProxySettingsDialog* dialog = | 390 ProxySettingsDialog* dialog = |
| 392 new ProxySettingsDialog(ProfileHelper::GetSigninProfile(), | 391 new ProxySettingsDialog(ProfileHelper::GetSigninProfile(), |
| 393 *network, NULL, GetNativeWindow()); | 392 *network, NULL, GetNativeWindow()); |
| (...skipping 24 matching lines...) Expand all Loading... |
| 418 void WebUILoginView::SetUIEnabled(bool enabled) { | 417 void WebUILoginView::SetUIEnabled(bool enabled) { |
| 419 forward_keyboard_event_ = enabled; | 418 forward_keyboard_event_ = enabled; |
| 420 if (chrome::IsRunningInMash()) { | 419 if (chrome::IsRunningInMash()) { |
| 421 NOTIMPLEMENTED(); | 420 NOTIMPLEMENTED(); |
| 422 return; | 421 return; |
| 423 } | 422 } |
| 424 ash::SystemTray* tray = ash::Shell::GetInstance()->GetPrimarySystemTray(); | 423 ash::SystemTray* tray = ash::Shell::GetInstance()->GetPrimarySystemTray(); |
| 425 | 424 |
| 426 // We disable the UI to prevent user from interracting with UI elements, | 425 // We disable the UI to prevent user from interracting with UI elements, |
| 427 // particullary with the system tray menu. However, in case if the system tray | 426 // particullary with the system tray menu. However, in case if the system tray |
| 428 // bubble is opened at this point, it remains opened and interactictive even | 427 // bubble is opened at this point, it remains opened and interactive even |
| 429 // after SystemTray::SetEnabled(false) call, which can be dangerous | 428 // after SystemTray::SetEnabled(false) call, which can be dangerous |
| 430 // (http://crbug.com/497080). Close the menu to fix it. Calling | 429 // (http://crbug.com/497080). Close the menu to fix it. Calling |
| 431 // SystemTray::SetEnabled(false) guarantees, that the menu will not be opened | 430 // SystemTray::SetEnabled(false) guarantees, that the menu will not be opened |
| 432 // until the UI is enabled again. | 431 // until the UI is enabled again. |
| 433 if (!enabled && tray->HasSystemBubble()) | 432 if (!enabled && tray->HasSystemBubble()) |
| 434 tray->CloseSystemBubble(); | 433 tray->CloseSystemBubble(); |
| 435 | 434 |
| 436 tray->SetEnabled(enabled); | 435 tray->SetEnabled(enabled); |
| 437 } | 436 } |
| 438 | 437 |
| (...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 598 event.type == blink::WebGestureEvent::GesturePinchUpdate || | 597 event.type == blink::WebGestureEvent::GesturePinchUpdate || |
| 599 event.type == blink::WebGestureEvent::GesturePinchEnd; | 598 event.type == blink::WebGestureEvent::GesturePinchEnd; |
| 600 } | 599 } |
| 601 | 600 |
| 602 void WebUILoginView::OnLoginPromptVisible() { | 601 void WebUILoginView::OnLoginPromptVisible() { |
| 603 // If we're hidden than will generate this signal once we're shown. | 602 // If we're hidden than will generate this signal once we're shown. |
| 604 if (is_hidden_ || webui_visible_) { | 603 if (is_hidden_ || webui_visible_) { |
| 605 VLOG(1) << "Login WebUI >> not emitting signal, hidden: " << is_hidden_; | 604 VLOG(1) << "Login WebUI >> not emitting signal, hidden: " << is_hidden_; |
| 606 return; | 605 return; |
| 607 } | 606 } |
| 608 TRACE_EVENT0("chromeos", "WebUILoginView::OnLoginPromoptVisible"); | 607 TRACE_EVENT0("chromeos", "WebUILoginView::OnLoginPromptVisible"); |
| 609 if (should_emit_login_prompt_visible_) { | 608 if (should_emit_login_prompt_visible_) { |
| 610 VLOG(1) << "Login WebUI >> login-prompt-visible"; | 609 VLOG(1) << "Login WebUI >> login-prompt-visible"; |
| 611 chromeos::DBusThreadManager::Get()->GetSessionManagerClient()-> | 610 chromeos::DBusThreadManager::Get()->GetSessionManagerClient()-> |
| 612 EmitLoginPromptVisible(); | 611 EmitLoginPromptVisible(); |
| 613 } | 612 } |
| 614 | 613 |
| 615 webui_visible_ = true; | 614 webui_visible_ = true; |
| 616 } | 615 } |
| 617 | 616 |
| 618 } // namespace chromeos | 617 } // namespace chromeos |
| OLD | NEW |