Commit c931ed5a authored by Sergio Collazos's avatar Sergio Collazos Committed by Commit Bot

Revert "[ios] Prevents InfobarBanner from being dismissed twice."

This reverts commit 2472108d.

Reason for revert: A bad rebase broke reverted the change in https://crrev.com/c/2067642. Will land again with that fix.

Original change's description:
> [ios] Prevents InfobarBanner from being dismissed twice.
> 
> Bug: 1049088
> Change-Id: I435c8b4c0bbec9130cecf845321391914df529d2
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2071241
> Reviewed-by: Chris Lu <thegreenfrog@chromium.org>
> Commit-Queue: Sergio Collazos <sczs@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#744388}

TBR=sczs@chromium.org,thegreenfrog@chromium.org

Change-Id: I08e153ee5b79af6988cef1c36b36ffcf04769359
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 1049088
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2075139Reviewed-by: default avatarSergio Collazos <sczs@chromium.org>
Commit-Queue: Sergio Collazos <sczs@chromium.org>
Cr-Commit-Position: refs/heads/master@{#744737}
parent e1eda2a9
......@@ -51,8 +51,6 @@ const CGFloat kBannerOverlapWithOmnibox = 5.0;
InfobarModalTransitionDriver* modalTransitionDriver;
// Readwrite redefinition.
@property(nonatomic, assign, readwrite) BOOL bannerWasPresented;
// YES if the banner is currently being dismissed.
@property(nonatomic, assign) BOOL bannerIsBeingDismissed;
// Completion block used to dismiss the banner after a set period of time. This
// needs to be created by dispatch_block_create() since it may get cancelled.
@property(nonatomic, copy) dispatch_block_t dismissBannerBlock;
......@@ -444,24 +442,12 @@ const CGFloat kBannerOverlapWithOmnibox = 5.0;
// Make sure the banner is completely presented before trying to dismiss it.
[self.bannerTransitionDriver completePresentationTransitionIfRunning];
// The banner dismiss can be triggered concurrently due to different events
// like swiping it up, entering the TabSwitcher, presenting another VC or the
// InfobarDelelgate being destroyed. Trying to dismiss it twice might cause a
// UIKit crash on iOS12.
if (!self.bannerIsBeingDismissed &&
self.baseViewController.presentedViewController &&
if (self.baseViewController.presentedViewController &&
self.baseViewController.presentedViewController ==
self.bannerViewController) {
self.bannerIsBeingDismissed = YES;
[self infobarBannerWillBeDismissed:userInitiated];
__weak __typeof(self) weakSelf = self;
[self.baseViewController
dismissViewControllerAnimated:YES
completion:^{
weakSelf.bannerIsBeingDismissed = NO;
if (completion)
completion();
}];
[self.baseViewController dismissViewControllerAnimated:animated
completion:completion];
} else if (completion) {
completion();
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment