New issue
Advanced search Search tips

Issue 800776 link

Starred by 1 user

Issue metadata

Status: WontFix
Owner: ----
Closed: Jan 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 3
Type: Bug



Sign in to add a comment

[Chrome OS] Content area session is not merged with the OS user session under certain conditions

Project Member Reported by sinhak@chromium.org, Jan 10 2018

Issue description

Chrome Version: 65.0.3318.0
OS: Chrome OS

What steps will reproduce the problem?
(1) Download, flash and install a Chrome OS test image from GoldenEye
(2) Complete the OOBE and user sign in flow
(3) Build simple Chrome on your workstation and deploy it on the target device
(4) Sign into the OS as the previously created user
(5) Open any Google property and Sign Out of this account from the content area
(6) Sign in with a Google account that is NOT the OS account
(7) Sign out from the OS
(8) Sign into the OS again
(9) Open any Google property and check your accounts

What is the expected result?
You should see 2 accounts: both these accounts should be merged now

What happens instead?
Only the second account (the non-OS account) is shown
 

Comment 1 by sinhak@chromium.org, Jan 10 2018

What is essentially happening is:

1. The test image from GoldenEye has GOOGLE_CHROME_BUILD https://cs.chromium.org/chromium/src/build/config/BUILD.gn?l=122&rcl=a1f97b49eabdff3d27109ea7f5bf319dbecdd960 as undefined
2. This causes the Network Portal Detector to be disabled https://cs.chromium.org/chromium/src/chrome/browser/chromeos/chrome_browser_main_chromeos.cc?l=1031&rcl=06fe18603074a83ecfc576aa215a4e0bc5559737 
3. This causes delayed network calls to be queued forever https://cs.chromium.org/chromium/src/chrome/browser/chromeos/net/delay_network_call.cc?l=40&rcl=62a5de4bc81283b79edcd9e6d8edffd925f44f9f 
4. This causes a number of things to mysteriously not work, one of which is that https://cs.chromium.org/chromium/src/chrome/browser/signin/chrome_signin_client.cc?l=396&rcl=6a25443bd599a4d2ee91d250cbcae71eb7a2a2d6 does not work and https://cs.chromium.org/chromium/src/components/signin/core/browser/gaia_cookie_manager_service.cc?l=419&rcl=353219b1d808a8980af93eff5412ec2863557e35 never completes

This puts the device in a weird, unpredictable, hard to debug state and can be reached by any developer that downloads a pre-built Chrome OS test image and then starts developing on his own on top of it.

Comment 2 by sinhak@chromium.org, Jan 10 2018

Components: Services>SignIn UI>Shell>StartScreen

Comment 3 by sinhak@chromium.org, Jan 10 2018

Note that in Comment 1, Step 1: Test images do not have an EULA screen and hence |IsEulaAccepted()| returns |false| every time but since OOBE has been completed, we never show the EULA again, even when the device "transitions" to an official build built by developers.

Comment 4 by sinhak@chromium.org, Jan 10 2018

Cc: pmarko@chromium.org

Comment 5 by sinhak@chromium.org, Jan 10 2018

Description: Show this description
> 2. This causes the Network Portal Detector to be disabled ...

- This is wrong. The code you pointed to, does exactly the opposite.
Re #3: Test images do have EULA screen.


Comment 8 by pmarko@chromium.org, Jan 12 2018

Labels: OS-Chrome
Re Comment #7: Are you sure?
In Kushagra's testing, he flashed a test image, didn't get an Eula screen (probably GOOGLE_CHROME_BUILD not defined, see [1]), but finished Oobe.

This left the device in a state with EulaAccepted=<unset> but OobeCompleted=true.

Then he deploy_chrome'd a build which has the EULA screen (with GOOGLE_CHROME_BUILD defined).
So now we're not showing Eula (or any OOBE, because OobeCompleted=true), but the NetworkPortalDetector doesn't get started because is_official_build=true but EulaAccepted=false.

I agree that this is basically broken state and you can only get here if you re-deploy a chrome binary with different #defines (without wiping state, which could break random other things too I guess), but if the 'fix' for this is as simple as Kushagra's testing suggest, I'd be in favor of doing it. Especially since I'd assume many developers test Chrome OS changes like this (i.e. cros flash a test version from xbuddy, then chrome_deploy own chrome binary over it).

Another fix may be a CHECK-fail if the device is in the is_official_build && OobeCompleted() && !EulaAccepted() state (though that sounds drastic).

[1] https://cs.chromium.org/chromium/src/chrome/browser/chromeos/login/wizard_controller.cc?l=729&gs=kythe%253A%252F%252Fchromium%253Flang%253Dc%25252B%25252B%253Fpath%253Dsrc%252Fchrome%252Fbrowser%252Fchromeos%252Flogin%252Fwizard_controller.cc%2523zR6xNbQxcbhqqNxjVrRVPvsWRW3D8OP1TRsd8cM8V38%25253D&gsn=OnNetworkConnected&ct=xref_usages

Comment 9 by pmarko@chromium.org, Jan 17 2018

FWIW, I just flashed a M-65 test image and got the EULA screen. Kushagra, are you sure you used test images?
Status: WontFix (was: Untriaged)
I am not so sure anymore. I havent been able to repro the issue since. Closing it as invalid for now.

Sign in to add a comment