DescriptionPostpone loading about:flags ui until the certificates have been loaded
FlagsUI assumes that when
DeviceSettingsService::GetOwnershipStatusAsync is done, it is known
whether the current user is the owner. Since the certificates
are loaded asynchronously it is possible that a SessionManagerOperation
is completed (which triggers GetOwnershipStatusAsync callbacks) before
the certs are loaded. In that case, the owner private key will not be
known even it the current user is the owner, so FlagsUI could be created
with a wrong FlagsDOMHandler.
This is very likely to happen if the about:flags is opened during session restore.
This CL changes GetOwnershipStatusAsync to only report ownership status
(not whether the current user is the owner).
HasPrivateOwnerKeyAsync is added. This method should be used to check whether
the current user is the owner. It is guaranteed to trigger callback after
the certificates have been loaded.
Also, to avoid showing "This webpage is not available" for the FlagsUI on
session restore (due to cert loading taking too long), change flags UI
to load but not to show anything untli the ownership status is determined.
BUG=280935
TEST=open chrome://flags and reboot. In the chrome://flags page opened
during session restore (make sure 'Continue where I left off' setting is set),
change enable-nacl flag and reboot. On the next login, there should be no
black screen.
Note: test steps assume usage of the owner account.
Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=222104
Patch Set 1 #Patch Set 2 : tests #Patch Set 3 : . #Patch Set 4 : . #Patch Set 5 : . #Patch Set 6 : . #
Total comments: 6
Patch Set 7 : . #
Total comments: 2
Patch Set 8 : rebase #Messages
Total messages: 10 (0 generated)
|