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..0b558f7b0fe220666ebb9f87aabb568de6e4cbcb 100644 |
--- a/chrome/browser/chromeos/login/lock/webui_screen_locker.cc |
+++ b/chrome/browser/chromeos/login/lock/webui_screen_locker.cc |
@@ -154,6 +154,13 @@ void WebUIScreenLocker::FocusUserPod() { |
GetWebUI()->CallJavascriptFunction("cr.ui.Oobe.forceLockedUserPodFocus"); |
} |
+void WebUIScreenLocker::ResetAndFocusUserPod() { |
+ if (!webui_ready_) |
+ return; |
+ GetWebUI()->CallJavascriptFunction("cr.ui.Oobe.clearUserPodPassword"); |
+ FocusUserPod(); |
+} |
+ |
WebUIScreenLocker::~WebUIScreenLocker() { |
DBusThreadManager::Get()->GetPowerManagerClient()->RemoveObserver(this); |
ash::Shell::GetScreen()->RemoveObserver(this); |
@@ -308,10 +315,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( |
Chirantan Ekbote
2015/02/11 22:53:12
This can race with the system suspend if the messa
|
- 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) { |