Index: chrome/browser/chromeos/login/lock/webui_screen_locker.cc |
diff --git a/chrome/browser/chromeos/login/lock/webui_screen_locker.cc b/chrome/browser/chromeos/login/lock/webui_screen_locker.cc |
index 6d8261046aac672b50082e34de99eb9952510e99..ef7cb8f3d41b0110d6fe52f0279de257d7274819 100644 |
--- a/chrome/browser/chromeos/login/lock/webui_screen_locker.cc |
+++ b/chrome/browser/chromeos/login/lock/webui_screen_locker.cc |
@@ -154,6 +154,14 @@ void WebUIScreenLocker::FocusUserPod() { |
GetWebUI()->CallJavascriptFunction("cr.ui.Oobe.forceLockedUserPodFocus"); |
} |
+void WebUIScreenLocker::ResetAndFocusUserPod() { |
+ if (!webui_ready_) |
+ return; |
+ GetWebUI()->CallJavascriptFunction("cr.ui.Oobe.clearUserPodPassword"); |
+ webui_login_->RequestFocus(); |
Nikita (slow)
2015/02/10 13:00:10
FocusUserPod()
Dmitry Polukhin
2015/02/10 13:05:33
Done.
|
+ GetWebUI()->CallJavascriptFunction("cr.ui.Oobe.forceLockedUserPodFocus"); |
+} |
+ |
WebUIScreenLocker::~WebUIScreenLocker() { |
DBusThreadManager::Get()->GetPowerManagerClient()->RemoveObserver(this); |
ash::Shell::GetScreen()->RemoveObserver(this); |
@@ -308,10 +316,19 @@ void WebUIScreenLocker::OnWidgetDestroying(views::Widget* widget) { |
void WebUIScreenLocker::LidEventReceived(bool open, |
const base::TimeTicks& time) { |
+ if (open) { |
+ content::BrowserThread::PostTask( |
+ content::BrowserThread::UI, FROM_HERE, |
+ base::Bind(&WebUIScreenLocker::FocusUserPod, |
+ weak_factory_.GetWeakPtr())); |
+ } |
+} |
+ |
+void WebUIScreenLocker::SuspendImminent() { |
content::BrowserThread::PostTask( |
- content::BrowserThread::UI, |
- FROM_HERE, |
- base::Bind(&WebUIScreenLocker::FocusUserPod, weak_factory_.GetWeakPtr())); |
+ content::BrowserThread::UI, FROM_HERE, |
+ base::Bind(&WebUIScreenLocker::ResetAndFocusUserPod, |
+ weak_factory_.GetWeakPtr())); |
} |
void WebUIScreenLocker::SuspendDone(const base::TimeDelta& sleep_duration) { |