| 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/lock/webui_screen_locker.h" | 5 #include "chrome/browser/chromeos/login/lock/webui_screen_locker.h" |
| 6 | 6 |
| 7 #include "ash/shell.h" | 7 #include "ash/shell.h" |
| 8 #include "ash/system/chromeos/power/power_event_observer.h" | 8 #include "ash/system/chromeos/power/power_event_observer.h" |
| 9 #include "ash/wm/lock_state_controller.h" | 9 #include "ash/wm/lock_state_controller.h" |
| 10 #include "ash/wm/lock_state_observer.h" | 10 #include "ash/wm/lock_state_observer.h" |
| (...skipping 13 matching lines...) Expand all Loading... |
| 24 #include "chromeos/dbus/dbus_thread_manager.h" | 24 #include "chromeos/dbus/dbus_thread_manager.h" |
| 25 #include "components/user_manager/user.h" | 25 #include "components/user_manager/user.h" |
| 26 #include "content/public/browser/browser_thread.h" | 26 #include "content/public/browser/browser_thread.h" |
| 27 #include "content/public/browser/notification_service.h" | 27 #include "content/public/browser/notification_service.h" |
| 28 #include "content/public/browser/notification_types.h" | 28 #include "content/public/browser/notification_types.h" |
| 29 #include "content/public/browser/render_widget_host_view.h" | 29 #include "content/public/browser/render_widget_host_view.h" |
| 30 #include "content/public/browser/web_ui.h" | 30 #include "content/public/browser/web_ui.h" |
| 31 #include "ui/aura/client/capture_client.h" | 31 #include "ui/aura/client/capture_client.h" |
| 32 #include "ui/aura/window_event_dispatcher.h" | 32 #include "ui/aura/window_event_dispatcher.h" |
| 33 #include "ui/base/x/x11_util.h" | 33 #include "ui/base/x/x11_util.h" |
| 34 #include "ui/gfx/screen.h" | 34 #include "ui/display/screen.h" |
| 35 #include "ui/keyboard/keyboard_controller.h" | 35 #include "ui/keyboard/keyboard_controller.h" |
| 36 #include "ui/keyboard/keyboard_util.h" | 36 #include "ui/keyboard/keyboard_util.h" |
| 37 #include "ui/views/controls/webview/webview.h" | 37 #include "ui/views/controls/webview/webview.h" |
| 38 | 38 |
| 39 namespace { | 39 namespace { |
| 40 | 40 |
| 41 // URL which corresponds to the login WebUI. | 41 // URL which corresponds to the login WebUI. |
| 42 const char kLoginURL[] = "chrome://oobe/lock"; | 42 const char kLoginURL[] = "chrome://oobe/lock"; |
| 43 | 43 |
| 44 // Disables virtual keyboard overscroll. Login UI will scroll user pods | 44 // Disables virtual keyboard overscroll. Login UI will scroll user pods |
| (...skipping 18 matching lines...) Expand all Loading... |
| 63 WebUIScreenLocker::WebUIScreenLocker(ScreenLocker* screen_locker) | 63 WebUIScreenLocker::WebUIScreenLocker(ScreenLocker* screen_locker) |
| 64 : ScreenLockerDelegate(screen_locker), | 64 : ScreenLockerDelegate(screen_locker), |
| 65 lock_ready_(false), | 65 lock_ready_(false), |
| 66 webui_ready_(false), | 66 webui_ready_(false), |
| 67 network_state_helper_(new login::NetworkStateHelper), | 67 network_state_helper_(new login::NetworkStateHelper), |
| 68 is_observing_keyboard_(false), | 68 is_observing_keyboard_(false), |
| 69 weak_factory_(this) { | 69 weak_factory_(this) { |
| 70 set_should_emit_login_prompt_visible(false); | 70 set_should_emit_login_prompt_visible(false); |
| 71 ash::Shell::GetInstance()->lock_state_controller()->AddObserver(this); | 71 ash::Shell::GetInstance()->lock_state_controller()->AddObserver(this); |
| 72 ash::Shell::GetInstance()->delegate()->AddVirtualKeyboardStateObserver(this); | 72 ash::Shell::GetInstance()->delegate()->AddVirtualKeyboardStateObserver(this); |
| 73 gfx::Screen::GetScreen()->AddObserver(this); | 73 display::Screen::GetScreen()->AddObserver(this); |
| 74 DBusThreadManager::Get()->GetPowerManagerClient()->AddObserver(this); | 74 DBusThreadManager::Get()->GetPowerManagerClient()->AddObserver(this); |
| 75 | 75 |
| 76 if (keyboard::KeyboardController::GetInstance()) { | 76 if (keyboard::KeyboardController::GetInstance()) { |
| 77 keyboard::KeyboardController::GetInstance()->AddObserver(this); | 77 keyboard::KeyboardController::GetInstance()->AddObserver(this); |
| 78 is_observing_keyboard_ = true; | 78 is_observing_keyboard_ = true; |
| 79 } | 79 } |
| 80 } | 80 } |
| 81 | 81 |
| 82 void WebUIScreenLocker::LockScreen() { | 82 void WebUIScreenLocker::LockScreen() { |
| 83 gfx::Rect bounds = gfx::Screen::GetScreen()->GetPrimaryDisplay().bounds(); | 83 gfx::Rect bounds = display::Screen::GetScreen()->GetPrimaryDisplay().bounds(); |
| 84 | 84 |
| 85 lock_time_ = base::TimeTicks::Now(); | 85 lock_time_ = base::TimeTicks::Now(); |
| 86 LockWindow* lock_window = LockWindow::Create(); | 86 LockWindow* lock_window = LockWindow::Create(); |
| 87 lock_window->set_observer(this); | 87 lock_window->set_observer(this); |
| 88 lock_window->set_initially_focused_view(this); | 88 lock_window->set_initially_focused_view(this); |
| 89 lock_window_ = lock_window->GetWidget(); | 89 lock_window_ = lock_window->GetWidget(); |
| 90 lock_window_->AddObserver(this); | 90 lock_window_->AddObserver(this); |
| 91 WebUILoginView::Init(); | 91 WebUILoginView::Init(); |
| 92 content::WebContentsObserver::Observe(webui_login_->GetWebContents()); | 92 content::WebContentsObserver::Observe(webui_login_->GetWebContents()); |
| 93 lock_window_->SetContentsView(this); | 93 lock_window_->SetContentsView(this); |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 157 | 157 |
| 158 void WebUIScreenLocker::ResetAndFocusUserPod() { | 158 void WebUIScreenLocker::ResetAndFocusUserPod() { |
| 159 if (!webui_ready_) | 159 if (!webui_ready_) |
| 160 return; | 160 return; |
| 161 GetWebUI()->CallJavascriptFunction("cr.ui.Oobe.clearUserPodPassword"); | 161 GetWebUI()->CallJavascriptFunction("cr.ui.Oobe.clearUserPodPassword"); |
| 162 FocusUserPod(); | 162 FocusUserPod(); |
| 163 } | 163 } |
| 164 | 164 |
| 165 WebUIScreenLocker::~WebUIScreenLocker() { | 165 WebUIScreenLocker::~WebUIScreenLocker() { |
| 166 DBusThreadManager::Get()->GetPowerManagerClient()->RemoveObserver(this); | 166 DBusThreadManager::Get()->GetPowerManagerClient()->RemoveObserver(this); |
| 167 gfx::Screen::GetScreen()->RemoveObserver(this); | 167 display::Screen::GetScreen()->RemoveObserver(this); |
| 168 ash::Shell::GetInstance()-> | 168 ash::Shell::GetInstance()-> |
| 169 lock_state_controller()->RemoveObserver(this); | 169 lock_state_controller()->RemoveObserver(this); |
| 170 | 170 |
| 171 ash::Shell::GetInstance()->delegate()-> | 171 ash::Shell::GetInstance()->delegate()-> |
| 172 RemoveVirtualKeyboardStateObserver(this); | 172 RemoveVirtualKeyboardStateObserver(this); |
| 173 // In case of shutdown, lock_window_ may be deleted before WebUIScreenLocker. | 173 // In case of shutdown, lock_window_ may be deleted before WebUIScreenLocker. |
| 174 if (lock_window_) { | 174 if (lock_window_) { |
| 175 lock_window_->RemoveObserver(this); | 175 lock_window_->RemoveObserver(this); |
| 176 lock_window_->Close(); | 176 lock_window_->Close(); |
| 177 } | 177 } |
| (...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 400 if (GetOobeUI()) | 400 if (GetOobeUI()) |
| 401 GetOobeUI()->GetCoreOobeActor()->ShowControlBar(true); | 401 GetOobeUI()->GetCoreOobeActor()->ShowControlBar(true); |
| 402 } else { | 402 } else { |
| 403 // Keyboard has been shown. | 403 // Keyboard has been shown. |
| 404 if (GetOobeUI()) | 404 if (GetOobeUI()) |
| 405 GetOobeUI()->GetCoreOobeActor()->ShowControlBar(false); | 405 GetOobeUI()->GetCoreOobeActor()->ShowControlBar(false); |
| 406 } | 406 } |
| 407 } | 407 } |
| 408 | 408 |
| 409 //////////////////////////////////////////////////////////////////////////////// | 409 //////////////////////////////////////////////////////////////////////////////// |
| 410 // gfx::DisplayObserver: | 410 // display::DisplayObserver: |
| 411 | 411 |
| 412 void WebUIScreenLocker::OnDisplayAdded(const gfx::Display& new_display) { | 412 void WebUIScreenLocker::OnDisplayAdded(const display::Display& new_display) {} |
| 413 } | |
| 414 | 413 |
| 415 void WebUIScreenLocker::OnDisplayRemoved(const gfx::Display& old_display) { | 414 void WebUIScreenLocker::OnDisplayRemoved(const display::Display& old_display) {} |
| 416 } | |
| 417 | 415 |
| 418 void WebUIScreenLocker::OnDisplayMetricsChanged(const gfx::Display& display, | 416 void WebUIScreenLocker::OnDisplayMetricsChanged(const display::Display& display, |
| 419 uint32_t changed_metrics) { | 417 uint32_t changed_metrics) { |
| 420 gfx::Display primary_display = gfx::Screen::GetScreen()->GetPrimaryDisplay(); | 418 display::Display primary_display = |
| 419 display::Screen::GetScreen()->GetPrimaryDisplay(); |
| 421 if (display.id() != primary_display.id() || | 420 if (display.id() != primary_display.id() || |
| 422 !(changed_metrics & DISPLAY_METRIC_BOUNDS)) { | 421 !(changed_metrics & DISPLAY_METRIC_BOUNDS)) { |
| 423 return; | 422 return; |
| 424 } | 423 } |
| 425 | 424 |
| 426 if (GetOobeUI()) { | 425 if (GetOobeUI()) { |
| 427 const gfx::Size& size = primary_display.size(); | 426 const gfx::Size& size = primary_display.size(); |
| 428 GetOobeUI()->GetCoreOobeActor()->SetClientAreaSize(size.width(), | 427 GetOobeUI()->GetCoreOobeActor()->SetClientAreaSize(size.width(), |
| 429 size.height()); | 428 size.height()); |
| 430 } | 429 } |
| 431 } | 430 } |
| 432 | 431 |
| 433 } // namespace chromeos | 432 } // namespace chromeos |
| OLD | NEW |