New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 772586 link

Starred by 4 users

Issue metadata

Status: Verified
Owner:
Last visit > 30 days ago
Closed: Oct 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Bug



Sign in to add a comment

Eve: Blank screen on Power button press while on Google TOS window

Project Member Reported by sdantul...@chromium.org, Oct 7 2017

Issue description

Build: 9765.77.0, 61.0.3163.115 eve

What steps will reproduce the problem?
(1) Click 'Add new user' from sign-in screen
(2) Enter username and password. While on this screen press power button once. See that nothing happens (expected behavior)
(3) Click Next
(4) Google Play TOS window is displayed. 
(5) Click on power button

What is the expected result?
Nothing should happen as TOS screen is part of sign-in flow.

What happens instead?
Blank screen is seen (All UI elements are missing. Only tinted wallpaper background is visible)

Attached screenshot. 

Issue also repro'd on M62. But here, uber tray is seen. Attached screenshot.
 
M61.jpg
2.9 MB View Download
M62.jpg
3.2 MB View Download
Description: Show this description
Cc: jdufault@chromium.org
Owner: alemate@chromium.org
Possibly related to  bug 767680 ?
Status: Assigned (was: Untriaged)
Cc: osh...@chromium.org
Cc: marc...@chromium.org
Cc: tbarzic@chromium.org
Owner: warx@chromium.org
What I think happens here is the following:
1. On power button down, power_button_controller calls StartLockThenShutdownAnimation (https://cs.chromium.org/chromium/src/ash/system/power/power_button_controller.cc?rcl=866a0da554ef7718740f3a83c9f0611da26c0275&l=93)
Note that at this point session state is LOGGED_IN_NOT_ACTIVE, which is note reported as blocked.

2. StartLockThenShutdownAnimation calls into LockStateController::StartImmediatePreLockAnimation, which hides lock screen container (i.e. sets its opacity to 0), so it can animate it to shown state, as part of screen lock (https://cs.chromium.org/chromium/src/ash/wm/lock_state_controller.cc?rcl=880af477a8b12b77e871c29cf0ea4e2515fba3d4&l=367)

3. On power button up event, assuming it happens before pre lock animation ends and screen lock is requested, the lock animation is cancelled by calling CancelLockAnimation
(https://cs.chromium.org/chromium/src/ash/system/power/power_button_controller.cc?rcl=514516aea3a1d41f6df0ef5b5bc5f15f7113d081&l=102)

CancelLockAnimation does not undo hide animation on lock containers, so lock containers (including oobe UI) remains invisible.
I can see two (not necessarily not exclusive) ways of fixing this:

* power button controller should not start lock animation if the session is in LOGGED_IN_NOT_ACTIVE state

* CancelLockAnimation should undo ANIMATION_HIDE_IMMEDIATELY animation started on  lock containers container.

Comment 9 by warx@chromium.org, Oct 19 2017

#7 explains the reason. Thanks!

I preferred the first way in #8. Actually we probably shouldn't use IsUserSessionBlocked in power_button_controller, instead just checking if session is active. Because it is only dealing with locking screen, not about session restore, window activation, etc. which are described in https://cs.chromium.org/chromium/src/ash/session/session_controller.cc?type=cs&q=isusersessionblocked&l=103

Comment 10 by warx@chromium.org, Oct 20 2017

Cc: xiy...@chromium.org
A different approach is used, the post logged in UI flow which is still on the login UI is still considered as part of login session state. Thanks to xiyuan's suggestion: https://chromium-review.googlesource.com/c/chromium/src/+/729748

Question: do we want back porting the fix?
Project Member

Comment 11 by bugdroid1@chromium.org, Oct 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4d137301a986a5cfd5cf3025500135774fef09b5

commit 4d137301a986a5cfd5cf3025500135774fef09b5
Author: Qiang Xu <warx@chromium.org>
Date: Fri Oct 20 21:23:02 2017

cros: make post logged in UI flow as part of login

changes:
After user sign in, there might be other session initialization or UI
flow which is still on the same login UI. Make this state part of login
session state.  And make LOGGED_IN_NOT_ACTIVE session state just used
for UserSessionManager::DoBrowserLaunch().

Bug:  772586 
Test: tested on eve for  crbug.com/775286 
Change-Id: Idb244e6970da552ace4bc8e16d8b2cad4ce0d491
Reviewed-on: https://chromium-review.googlesource.com/729748
Commit-Queue: Qiang(Joe) Xu <warx@chromium.org>
Reviewed-by: Xiyuan Xia <xiyuan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#510564}
[modify] https://crrev.com/4d137301a986a5cfd5cf3025500135774fef09b5/chrome/browser/chromeos/login/session/user_session_manager.cc
[modify] https://crrev.com/4d137301a986a5cfd5cf3025500135774fef09b5/components/session_manager/session_manager_types.h

Maybe merge to M63. I don't think we should go up to M62 unless this is a RBS.

Comment 13 by warx@chromium.org, Oct 20 2017

Labels: Merge-Request-63
ok
Project Member

Comment 14 by sheriffbot@chromium.org, Oct 21 2017

Labels: -Merge-Request-63 Hotlist-Merge-Approved Merge-Approved-63
Your change meets the bar and is auto-approved for M63. Please go ahead and merge the CL to branch 3239 manually. Please contact milestone owner if you have questions.
Owners: cmasso@(Android), cmasso@(iOS), gkihumba@(ChromeOS), govind@(Desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Project Member

Comment 15 by bugdroid1@chromium.org, Oct 22 2017

Labels: -merge-approved-63 merge-merged-3239
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/572e4b84370279a9c2de185245533c7757aceabf

commit 572e4b84370279a9c2de185245533c7757aceabf
Author: Qiang Xu <warx@chromium.org>
Date: Sun Oct 22 22:02:41 2017

m63 merge: cros: make post logged in UI flow as part of login

changes:
After user sign in, there might be other session initialization or UI
flow which is still on the same login UI. Make this state part of login
session state.  And make LOGGED_IN_NOT_ACTIVE session state just used
for UserSessionManager::DoBrowserLaunch().

TBR=xiyuan@chromium.org

(cherry picked from commit 4d137301a986a5cfd5cf3025500135774fef09b5)

Bug:  772586 
Test: tested on eve for  crbug.com/775286 
Change-Id: Idb244e6970da552ace4bc8e16d8b2cad4ce0d491
Reviewed-on: https://chromium-review.googlesource.com/729748
Commit-Queue: Qiang(Joe) Xu <warx@chromium.org>
Reviewed-by: Xiyuan Xia <xiyuan@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#510564}
Reviewed-on: https://chromium-review.googlesource.com/732616
Reviewed-by: Qiang(Joe) Xu <warx@chromium.org>
Cr-Commit-Position: refs/branch-heads/3239@{#140}
Cr-Branched-From: adb61db19020ed8ecee5e91b1a0ea4c924ae2988-refs/heads/master@{#508578}
[modify] https://crrev.com/572e4b84370279a9c2de185245533c7757aceabf/chrome/browser/chromeos/login/session/user_session_manager.cc
[modify] https://crrev.com/572e4b84370279a9c2de185245533c7757aceabf/components/session_manager/session_manager_types.h

Comment 16 by warx@chromium.org, Oct 22 2017

Status: Fixed (was: Assigned)
Status: Verified (was: Fixed)
10032.29.0, 63.0.3239.37

Sign in to add a comment