| 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/common/shell_delegate.h" |
| 8 #include "ash/common/wm_shell.h" |
| 7 #include "ash/shell.h" | 9 #include "ash/shell.h" |
| 8 #include "ash/system/chromeos/power/power_event_observer.h" | 10 #include "ash/system/chromeos/power/power_event_observer.h" |
| 9 #include "ash/wm/lock_state_controller.h" | 11 #include "ash/wm/lock_state_controller.h" |
| 10 #include "ash/wm/lock_state_observer.h" | 12 #include "ash/wm/lock_state_observer.h" |
| 11 #include "base/command_line.h" | 13 #include "base/command_line.h" |
| 12 #include "base/metrics/histogram.h" | 14 #include "base/metrics/histogram.h" |
| 13 #include "base/strings/utf_string_conversions.h" | 15 #include "base/strings/utf_string_conversions.h" |
| 14 #include "base/values.h" | 16 #include "base/values.h" |
| 15 #include "chrome/browser/browser_shutdown.h" | 17 #include "chrome/browser/browser_shutdown.h" |
| 16 #include "chrome/browser/chrome_notification_types.h" | 18 #include "chrome/browser/chrome_notification_types.h" |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 60 | 62 |
| 61 //////////////////////////////////////////////////////////////////////////////// | 63 //////////////////////////////////////////////////////////////////////////////// |
| 62 // WebUIScreenLocker implementation. | 64 // WebUIScreenLocker implementation. |
| 63 | 65 |
| 64 WebUIScreenLocker::WebUIScreenLocker(ScreenLocker* screen_locker) | 66 WebUIScreenLocker::WebUIScreenLocker(ScreenLocker* screen_locker) |
| 65 : ScreenLockerDelegate(screen_locker), | 67 : ScreenLockerDelegate(screen_locker), |
| 66 network_state_helper_(new login::NetworkStateHelper), | 68 network_state_helper_(new login::NetworkStateHelper), |
| 67 weak_factory_(this) { | 69 weak_factory_(this) { |
| 68 set_should_emit_login_prompt_visible(false); | 70 set_should_emit_login_prompt_visible(false); |
| 69 ash::Shell::GetInstance()->lock_state_controller()->AddObserver(this); | 71 ash::Shell::GetInstance()->lock_state_controller()->AddObserver(this); |
| 70 ash::Shell::GetInstance()->delegate()->AddVirtualKeyboardStateObserver(this); | 72 ash::WmShell::Get()->delegate()->AddVirtualKeyboardStateObserver(this); |
| 71 display::Screen::GetScreen()->AddObserver(this); | 73 display::Screen::GetScreen()->AddObserver(this); |
| 72 DBusThreadManager::Get()->GetPowerManagerClient()->AddObserver(this); | 74 DBusThreadManager::Get()->GetPowerManagerClient()->AddObserver(this); |
| 73 | 75 |
| 74 if (keyboard::KeyboardController::GetInstance()) { | 76 if (keyboard::KeyboardController::GetInstance()) { |
| 75 keyboard::KeyboardController::GetInstance()->AddObserver(this); | 77 keyboard::KeyboardController::GetInstance()->AddObserver(this); |
| 76 is_observing_keyboard_ = true; | 78 is_observing_keyboard_ = true; |
| 77 } | 79 } |
| 78 } | 80 } |
| 79 | 81 |
| 80 void WebUIScreenLocker::LockScreen() { | 82 void WebUIScreenLocker::LockScreen() { |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 158 void WebUIScreenLocker::ResetAndFocusUserPod() { | 160 void WebUIScreenLocker::ResetAndFocusUserPod() { |
| 159 if (!webui_ready_) | 161 if (!webui_ready_) |
| 160 return; | 162 return; |
| 161 GetWebUI()->CallJavascriptFunctionUnsafe("cr.ui.Oobe.clearUserPodPassword"); | 163 GetWebUI()->CallJavascriptFunctionUnsafe("cr.ui.Oobe.clearUserPodPassword"); |
| 162 FocusUserPod(); | 164 FocusUserPod(); |
| 163 } | 165 } |
| 164 | 166 |
| 165 WebUIScreenLocker::~WebUIScreenLocker() { | 167 WebUIScreenLocker::~WebUIScreenLocker() { |
| 166 DBusThreadManager::Get()->GetPowerManagerClient()->RemoveObserver(this); | 168 DBusThreadManager::Get()->GetPowerManagerClient()->RemoveObserver(this); |
| 167 display::Screen::GetScreen()->RemoveObserver(this); | 169 display::Screen::GetScreen()->RemoveObserver(this); |
| 168 ash::Shell::GetInstance()-> | 170 ash::Shell::GetInstance()->lock_state_controller()->RemoveObserver(this); |
| 169 lock_state_controller()->RemoveObserver(this); | |
| 170 | 171 |
| 171 ash::Shell::GetInstance()->delegate()-> | 172 ash::WmShell::Get()->delegate()->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 } |
| 178 // If LockScreen() was called, we need to clear the signin screen handler | 178 // If LockScreen() was called, we need to clear the signin screen handler |
| 179 // delegate set in ShowSigninScreen so that it no longer points to us. | 179 // delegate set in ShowSigninScreen so that it no longer points to us. |
| 180 if (login_display_.get()) { | 180 if (login_display_.get()) { |
| 181 static_cast<OobeUI*>(GetWebUI()->GetController())-> | 181 static_cast<OobeUI*>(GetWebUI()->GetController())-> |
| 182 ResetSigninScreenHandlerDelegate(); | 182 ResetSigninScreenHandlerDelegate(); |
| (...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 403 } | 403 } |
| 404 | 404 |
| 405 if (GetOobeUI()) { | 405 if (GetOobeUI()) { |
| 406 const gfx::Size& size = primary_display.size(); | 406 const gfx::Size& size = primary_display.size(); |
| 407 GetOobeUI()->GetCoreOobeActor()->SetClientAreaSize(size.width(), | 407 GetOobeUI()->GetCoreOobeActor()->SetClientAreaSize(size.width(), |
| 408 size.height()); | 408 size.height()); |
| 409 } | 409 } |
| 410 } | 410 } |
| 411 | 411 |
| 412 } // namespace chromeos | 412 } // namespace chromeos |
| OLD | NEW |