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

Issue 766930 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Last visit 15 days ago
Closed: Sep 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: iOS
Pri: 2
Type: Bug



Sign in to add a comment

Backward History Menu Crashes in Clean Skeleton

Project Member Reported by gch...@chromium.org, Sep 20 2017

Issue description

Steps to reproduce: 
Open Clean Skeleton App
Open New Tab
Navigate to a web page.
Long press on back button.

Observed behavior: 
Crash.

Expected behavior: 
Backward history menu opens.


Additional comments: 
The cause is that the HistoryPopupCoordinator does not implement a viewController property, as required by the BrowserCoordinator API. This property is accessed in BrowserCoordinator's updateActivationStateAfterTransition method.

Note also that the CHECK that was intended to catch this case still passed: https://cs.chromium.org/chromium/src/ios/chrome/browser/ui/coordinators/browser_coordinator.mm?q=browsercoordinator&dr=C&l=156

Here is the stack trace:
2017-09-19 18:38:04.134 CSChromium[75095:81600699] -[HistoryPopupCoordinator viewController]: unrecognized selector sent to instance 0x6000000fed00

2017-09-19 18:38:04.152 CSChromium[75095:81600699] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[HistoryPopupCoordinator viewController]: unrecognized selector sent to instance 0x6000000fed00'

*** First throw call stack:

(

0   CoreFoundation                      0x000000011bfd234b __exceptionPreprocess + 171

1   libobjc.A.dylib                     0x00000001203ff21e objc_exception_throw + 48

2   CoreFoundation                      0x000000011c041f34 -[NSObject(NSObject) doesNotRecognizeSelector:] + 132

3   CoreFoundation                      0x000000011bf57c15 ___forwarding___ + 1013

4   CoreFoundation                      0x000000011bf57798 _CF_forwarding_prep_0 + 120

5   CSChromium                          0x000000010ed3ee6c -[BrowserCoordinator updateActivationStateAfterTransition] + 348

6   CSChromium                          0x000000010ed3e97d -[BrowserCoordinator start] + 189

7   CSChromium                          0x000000011048dca1 -[HistoryPopupCoordinator start] + 1409

8   CSChromium                          0x000000011047881c -[ToolbarCoordinator showTabHistoryPopupForBackwardHistory] + 1804

9   CSChromium                          0x000000011048023b -[ToolbarViewController handleLongPress:] + 299

10  UIKit                               0x000000011abd5289 -[UIGestureRecognizerTarget _sendActionWithGestureRecognizer:] + 57

11  UIKit                               0x000000011abdd028 _UIGestureRecognizerSendTargetActions + 109

12  UIKit                               0x000000011abdaaf7 _UIGestureRecognizerSendActions + 227

13  UIKit                               0x000000011abd9d83 -[UIGestureRecognizer _updateGestureWithEvent:buttonEvent:] + 891

14  UIKit                               0x000000011abc5e56 _UIGestureEnvironmentUpdate + 1395

15  CoreFoundation                      0x000000011bf76e17 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23

16  CoreFoundation                      0x000000011bf76d87 __CFRunLoopDoObservers + 391

17  CoreFoundation                      0x000000011bf5bb9e __CFRunLoopRun + 1198

18  CoreFoundation                      0x000000011bf5b494 CFRunLoopRunSpecific + 420

19  GraphicsServices                    0x0000000121604a6f GSEventRunModal + 161

20  UIKit                               0x000000011a692f34 UIApplicationMain + 159

21  CSChromium                          0x000000010ed38e89 main + 937

22  libdyld.dylib                       0x0000000123af068d start + 1

)

libc++abi.dylib: terminating with uncaught exception of type NSException
 

Comment 1 by sczs@chromium.org, Sep 20 2017

Status: Started (was: Assigned)
Thanks for filing this gchatz@! 
Project Member

Comment 2 by bugdroid1@chromium.org, Sep 20 2017

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

commit a07a41ca9b61c1c5f5e2b5300ee3631922d31361
Author: sczs <sczs@chromium.org>
Date: Wed Sep 20 13:28:12 2017

[ios] Fixes History popup crash and navigation list.

Adds a viewController property to historyPopupCoordinator, even though
its not used (because historyPopup is still "boxed"), its needed for
BrowserCoordinator (its super class).

It also fixes the History popup bug, where the navigation list wasn't
being updated. 

Bug:  766930 
Change-Id: I24ab75fc55ef57900eba518c5c248a5b14e935d8
Reviewed-on: https://chromium-review.googlesource.com/674927
Reviewed-by: Mark Cogan <marq@chromium.org>
Commit-Queue: Sergio Collazos <sczs@chromium.org>
Cr-Commit-Position: refs/heads/master@{#503124}
[modify] https://crrev.com/a07a41ca9b61c1c5f5e2b5300ee3631922d31361/ios/clean/chrome/browser/ui/history_popup/history_popup_coordinator.mm
[modify] https://crrev.com/a07a41ca9b61c1c5f5e2b5300ee3631922d31361/ios/clean/chrome/browser/ui/toolbar/toolbar_coordinator.mm

Comment 3 by sczs@chromium.org, Sep 20 2017

Status: Fixed (was: Started)

Sign in to add a comment