Index: ios/web/web_state/ui/crw_web_controller.mm |
diff --git a/ios/web/web_state/ui/crw_web_controller.mm b/ios/web/web_state/ui/crw_web_controller.mm |
index 31356fbb2a44a2876d05b1a63083384a7cc2d317..4db5b1c4143f46969394f1d6b91a4797d0127aed 100644 |
--- a/ios/web/web_state/ui/crw_web_controller.mm |
+++ b/ios/web/web_state/ui/crw_web_controller.mm |
@@ -1201,6 +1201,8 @@ const NSTimeInterval kSnapshotOverlayTransition = 0.5; |
// Don't create the web view; let it be lazy created as needed. |
} else { |
[self clearTransientContentView]; |
+ if ([self.nativeController respondsToSelector:@selector(willBeDismissed)]) |
+ [self.nativeController willBeDismissed]; |
[self removeWebViewAllowingCachedReconstruction:YES]; |
_touchTrackingRecognizer.get().touchTrackingDelegate = nil; |
_touchTrackingRecognizer.reset(); |
@@ -1278,6 +1280,8 @@ const NSTimeInterval kSnapshotOverlayTransition = 0.5; |
self.nativeProvider = nil; |
self.swipeRecognizerProvider = nil; |
+ if ([self.nativeController respondsToSelector:@selector(willBeDismissed)]) |
+ [self.nativeController willBeDismissed]; |
if ([self.nativeController respondsToSelector:@selector(close)]) |
[self.nativeController close]; |
@@ -2018,6 +2022,9 @@ const NSTimeInterval kSnapshotOverlayTransition = 0.5; |
// addPendingEntry is called. |
[_delegate webWillInitiateLoadWithParams:params]; |
+ if ([self.nativeController respondsToSelector:@selector(willBeDismissed)]) { |
+ [self.nativeController willBeDismissed]; |
+ } |
GURL navUrl = params.url; |
ui::PageTransition transition = params.transition_type; |
@@ -2076,6 +2083,9 @@ const NSTimeInterval kSnapshotOverlayTransition = 0.5; |
// Reset current WebUI if one exists. |
[self clearWebUI]; |
+ if ([self.nativeController respondsToSelector:@selector(willBeDismissed)]) |
+ [self.nativeController willBeDismissed]; |
Eugene But (OOO till 7-30)
2016/12/19 18:47:05
It looks like |willBeDismissed| should be called o
Olivier
2016/12/20 12:29:47
Done.
|
+ |
// Abort any outstanding page load. This ensures the delegate gets informed |
// about the outgoing page, and further messages from the page are suppressed. |
if (_loadPhase != web::PAGE_LOADED) |
@@ -2279,6 +2289,9 @@ const NSTimeInterval kSnapshotOverlayTransition = 0.5; |
if (!_webStateImpl->IsShowingWebInterstitial()) |
[self recordStateInHistory]; |
+ if ([self.nativeController respondsToSelector:@selector(willBeDismissed)]) |
Eugene But (OOO till 7-30)
2016/12/19 18:47:05
|goToItemAtIndex:| calls |loadCurrentURL| or |load
Olivier
2016/12/20 12:29:47
Done.
|
+ [self.nativeController willBeDismissed]; |
+ |
CRWSessionEntry* fromEntry = self.sessionController.currentEntry; |
NSUserDefaults* userDefaults = [NSUserDefaults standardUserDefaults]; |
@@ -4863,6 +4876,8 @@ const NSTimeInterval kSnapshotOverlayTransition = 0.5; |
- (void)loadHTML:(NSString*)HTML forURL:(const GURL&)URL { |
// Remove the transient content view. |
[self clearTransientContentView]; |
+ if ([self.nativeController respondsToSelector:@selector(willBeDismissed)]) |
+ [self.nativeController willBeDismissed]; |
_loadPhase = web::LOAD_REQUESTED; |