Chromium Code Reviews| 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) { |