Index: ios/web/web_state/ui/crw_web_controller_container_view.mm |
diff --git a/ios/web/web_state/ui/crw_web_controller_container_view.mm b/ios/web/web_state/ui/crw_web_controller_container_view.mm |
index 25e31bdead7566ca9822665fe69d06cb203c3764..87e1363cd2070adcec77179444157a5e65e01167 100644 |
--- a/ios/web/web_state/ui/crw_web_controller_container_view.mm |
+++ b/ios/web/web_state/ui/crw_web_controller_container_view.mm |
@@ -172,6 +172,9 @@ |
- (void)setNativeController:(id<CRWNativeContent>)nativeController { |
if (![_nativeController isEqual:nativeController]) { |
base::WeakNSProtocol<id> oldController(_nativeController); |
+ if ([oldController respondsToSelector:@selector(willBeDismissed)]) { |
+ [oldController willBeDismissed]; |
+ } |
[[oldController view] removeFromSuperview]; |
_nativeController.reset([nativeController retain]); |
// TODO(crbug.com/503297): Re-enable this DCHECK once native controller |