New issue
Advanced search Search tips

Issue 798443 link

Starred by 1 user

Issue metadata

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



Sign in to add a comment

DCHECK failure in Recent Tabs while using the sign-in promo

Project Member Reported by jlebel@chromium.org, Jan 2 2018

Issue description

Install Chrome
Don't sign-in
Open the "Recent Tabs"
Sign-in with "Continue as ..."

Result, in -[SigninPromoViewMediator signinPromoViewRemoved], this DCHECK fails:
  DCHECK(!self.signinInProgress);

(lldb) bt
* thread #1, name = 'CrWebMain', queue = 'com.apple.main-thread', stop reason = EXC_BREAKPOINT (code=EXC_I386_BPT, subcode=0x0)
  * frame #0: 0x000000010dfae9f4 Chromium`base::debug::BreakDebugger() at debugger_posix.cc:269
    frame #1: 0x000000010e012059 Chromium`logging::LogMessage::~LogMessage(this=0x00007fff53458d98) at logging.cc:844
    frame #2: 0x000000010e00e775 Chromium`logging::LogMessage::~LogMessage(this=0x00007fff53458d98) at logging.cc:575
    frame #3: 0x000000010d537dae Chromium`::-[SigninPromoViewMediator signinPromoViewRemoved](self=0x0000628000288b10, _cmd="signinPromoViewRemoved") at signin_promo_view_mediator.mm:475
    frame #4: 0x000000010dbee6a2 Chromium`::-[RecentTabsTableViewController refreshUserState:](self=0x00007ff6790786b0, _cmd="refreshUserState:", newSessionState=USER_SIGNED_IN_SYNC_IN_PROGRESS) at recent_tabs_table_view_controller.mm:555
    frame #5: 0x000000010dbea078 Chromium`::-[RecentTabsTableCoordinator refreshSessionsView](self=0x00006040000b5060, _cmd="refreshSessionsView") at recent_tabs_table_coordinator.mm:245
    frame #6: 0x000000010dbe863b Chromium`::-[RecentTabsTableCoordinator onSyncStateChanged](self=0x00006040000b5060, _cmd="onSyncStateChanged") at recent_tabs_table_coordinator.mm:104
    frame #7: 0x000000010d0132aa Chromium`synced_sessions::SyncedSessionsObserverBridge::OnStateChanged(this=0x00006040000f9980, sync=0x00007ff67e80a000) at synced_sessions_bridge.mm:49
    frame #8: 0x000000010fc63966 Chromium`syncer::SyncServiceBase::NotifyObservers(this=0x00007ff67e80a000) at sync_service_base.cc:105
    frame #9: 0x000000010fb4765b Chromium`browser_sync::ProfileSyncService::RequestStart(this=0x00007ff67e80a000) at profile_sync_service.cc:2147
    frame #10: 0x000000010cf2e8ff Chromium`AuthenticationService::SignIn(this=0x000060c000108c10, identity=0x00006280000117f0, hosted_domain="") at authentication_service.mm:369
    frame #11: 0x000000010d51437c Chromium`::-[AuthenticationFlowPerformer signInIdentity:withHostedDomain:toBrowserState:](self=0x000060c00024e640, _cmd="signInIdentity:withHostedDomain:toBrowserState:", identity=0x00006280000117f0, hostedDomain=0x0000000000000000, browserState=0x00006040001d7e80) at authentication_flow_performer.mm:174
    frame #12: 0x000000010d511020 Chromium`::-[AuthenticationFlow signInIdentity:](self=0x000060c0000c6040, _cmd="signInIdentity:", identity=0x00006280000117f0) at authentication_flow.mm:346
    frame #13: 0x000000010d5109ef Chromium`::-[AuthenticationFlow continueSignin](self=0x000060c0000c6040, _cmd="continueSignin") at authentication_flow.mm:294
    frame #14: 0x000000010d510908 Chromium`::-[AuthenticationFlow continueSignin](self=0x000060c0000c6040, _cmd="continueSignin") at authentication_flow.mm:276
    frame #15: 0x000000010d511d19 Chromium`::-[AuthenticationFlow didFetchManagedStatus:](self=0x000060c0000c6040, _cmd="didFetchManagedStatus:", hostedDomain=0x0000000000000000) at authentication_flow.mm:419
    frame #16: 0x000000010d513d18 Chromium`::-[AuthenticationFlowPerformer fetchManagedStatus:forIdentity:](self=0x000060c00024e640, _cmd="fetchManagedStatus:forIdentity:", browserState=0x00006040001d7e80, identity=0x00006280000117f0) at authentication_flow_performer.mm:140
    frame #17: 0x000000010d510822 Chromium`::-[AuthenticationFlow continueSignin](self=0x000060c0000c6040, _cmd="continueSignin") at authentication_flow.mm:262
    frame #18: 0x000000010d5107d8 Chromium`::-[AuthenticationFlow continueSignin](self=0x000060c0000c6040, _cmd="continueSignin") at authentication_flow.mm:258
    frame #19: 0x000000010d50fc64 Chromium`::-[AuthenticationFlow startSignInWithCompletion:](self=0x000060c0000c6040, _cmd="startSignInWithCompletion:", completion=0x000000010d51b410) at authentication_flow.mm:140
    frame #20: 0x000000010d51b303 Chromium`::-[ChromeSigninViewController signIntoIdentity:](self=0x00007ff67c8cfc00, _cmd="signIntoIdentity:", identity=0x00006280000117f0) at chrome_signin_view_controller.mm:335
    frame #21: 0x000000010d51d909 Chromium`::-[ChromeSigninViewController enterSigninPendingState](self=0x00007ff67c8cfc00, _cmd="enterSigninPendingState") at chrome_signin_view_controller.mm:548
    frame #22: 0x000000010d51c06a Chromium`::-[ChromeSigninViewController enterState:](self=0x00007ff67c8cfc00, _cmd="enterState:", state=SIGNIN_PENDING_STATE)::AuthenticationState) at chrome_signin_view_controller.mm:417
    frame #23: 0x000000010d51fa4c Chromium`::-[ChromeSigninViewController viewWillAppear:](self=0x00007ff67c8cfc00, _cmd="viewWillAppear:", animated=YES) at chrome_signin_view_controller.mm:709
    frame #24: 0x0000000118093150 UIKit`-[UIViewController _setViewAppearState:isAnimating:] + 444
    frame #25: 0x00000001180939e5 UIKit`-[UIViewController __viewWillAppear:] + 147
    frame #26: 0x000000011805e345 UIKit`__56-[UIPresentationController runTransitionForCurrentState]_block_invoke + 1088
    frame #27: 0x0000000117ef0d59 UIKit`_runAfterCACommitDeferredBlocks + 318
    frame #28: 0x0000000117edfbb1 UIKit`_cleanUpAfterCAFlushAndRunDeferredBlocks + 280
    frame #29: 0x0000000117f0f0e0 UIKit`_afterCACommitHandler + 137
    frame #30: 0x000000011a121c07 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23
    frame #31: 0x000000011a121b5e CoreFoundation`__CFRunLoopDoObservers + 430
    frame #32: 0x000000011a106124 CoreFoundation`__CFRunLoopRun + 1572
    frame #33: 0x000000011a105889 CoreFoundation`CFRunLoopRunSpecific + 409
    frame #34: 0x0000000120ab09c6 GraphicsServices`GSEventRunModal + 62
    frame #35: 0x0000000117ee55d6 UIKit`UIApplicationMain + 159
    frame #36: 0x000000010c7a3df2 Chromium`(anonymous namespace)::RunUIApplicationMain(argc=1, argv=0x00007fff5345d548) at chrome_exe_main.mm:56
    frame #37: 0x000000010c7a38c3 Chromium`main(argc=1, argv=0x00007fff5345d548) at chrome_exe_main.mm:80
    frame #38: 0x0000000121e7dd81 libdyld.dylib`start + 1
    frame #39: 0x0000000121e7dd81 libdyld.dylib`start + 1

 
Status: Fixed (was: Started)
Project Member

Comment 2 by bugdroid1@chromium.org, Jan 3 2018

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

commit 5ca4ade7bd117989da68f928c6f05b2c82ca08e0
Author: Jérôme Lebel <jlebel@chromium.org>
Date: Wed Jan 03 13:55:24 2018

[iOS][Signin] Fixing workflow when starting the sign-in in Recent Tabs

The SigninPromoViewMediator should not be deallocated until the sign-in
is finished. When the user clicks on "Continue as ...", the sign-in
is done as soon as the sign-in dialogs arrives.

RecentTabsTableViewController should not be updated as long as the
sign-in started by SigninPromoViewMediator is in progress.

Once the sign-in is done, the RecentTabsTableViewController can be
reloaded.

cronet;master.tryserver.chromium.mac:ios-simulator-full-configs

Bug:  798443 
Cq-Include-Trybots: master.tryserver.chromium.mac:ios-simulator-cronet;master.tryserver.chromium.mac:ios-simulator-full-configs
Change-Id: I4a0937986e236473a7c0314c056cf437a0088c36
Reviewed-on: https://chromium-review.googlesource.com/846995
Commit-Queue: Jérôme Lebel <jlebel@chromium.org>
Reviewed-by: Gauthier Ambard <gambard@chromium.org>
Cr-Commit-Position: refs/heads/master@{#526678}
[modify] https://crrev.com/5ca4ade7bd117989da68f928c6f05b2c82ca08e0/ios/chrome/browser/ui/ntp/recent_tabs/recent_tabs_table_coordinator.mm
[modify] https://crrev.com/5ca4ade7bd117989da68f928c6f05b2c82ca08e0/ios/chrome/browser/ui/ntp/recent_tabs/recent_tabs_table_view_controller.h
[modify] https://crrev.com/5ca4ade7bd117989da68f928c6f05b2c82ca08e0/ios/chrome/browser/ui/ntp/recent_tabs/recent_tabs_table_view_controller.mm

Sign in to add a comment