Title: [234124] trunk/Source/WebKit
- Revision
- 234124
- Author
- [email protected]
- Date
- 2018-07-23 17:27:13 -0700 (Mon, 23 Jul 2018)
Log Message
Crash when loadViewIfRequired called while WKFullScreenViewController is being deallocated.
https://bugs.webkit.org/show_bug.cgi?id=187920
rdar://problem/41324023
Patch by Jeremy Jones <[email protected]> on 2018-07-23
Reviewed by Eric Carlson.
Clear dangling weak-ref.
Prevent async playback state calls from instantiating the interface.
Release WKFullScreenViewController when it is no longer needed.
* UIProcess/ios/fullscreen/WKFullScreenViewController.mm:
(-[WKFullScreenViewController dealloc]):
(-[WKFullScreenViewController setPlaying:]):
(-[WKFullScreenViewController setAnimating:]):
* UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm:
(-[WKFullScreenWindowController _completedExitFullScreen]):
Modified Paths
Diff
Modified: trunk/Source/WebKit/ChangeLog (234123 => 234124)
--- trunk/Source/WebKit/ChangeLog 2018-07-24 00:09:47 UTC (rev 234123)
+++ trunk/Source/WebKit/ChangeLog 2018-07-24 00:27:13 UTC (rev 234124)
@@ -1,3 +1,22 @@
+2018-07-23 Jeremy Jones <[email protected]>
+
+ Crash when loadViewIfRequired called while WKFullScreenViewController is being deallocated.
+ https://bugs.webkit.org/show_bug.cgi?id=187920
+ rdar://problem/41324023
+
+ Reviewed by Eric Carlson.
+
+ Clear dangling weak-ref.
+ Prevent async playback state calls from instantiating the interface.
+ Release WKFullScreenViewController when it is no longer needed.
+
+ * UIProcess/ios/fullscreen/WKFullScreenViewController.mm:
+ (-[WKFullScreenViewController dealloc]):
+ (-[WKFullScreenViewController setPlaying:]):
+ (-[WKFullScreenViewController setAnimating:]):
+ * UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm:
+ (-[WKFullScreenWindowController _completedExitFullScreen]):
+
2018-07-23 Timothy Horton <[email protected]>
Try to fix the build.
Modified: trunk/Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenViewController.mm (234123 => 234124)
--- trunk/Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenViewController.mm 2018-07-24 00:09:47 UTC (rev 234123)
+++ trunk/Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenViewController.mm 2018-07-24 00:27:13 UTC (rev 234124)
@@ -199,6 +199,7 @@
[NSObject cancelPreviousPerformRequestsWithTarget:self];
[[NSNotificationCenter defaultCenter] removeObserver:self];
+ _playbackClient.setParent(nullptr);
_playbackClient.setInterface(nullptr);
_videoFullscreenClient.setParent(nullptr);
_videoFullscreenClient.setInterface(nullptr);
@@ -287,6 +288,10 @@
return;
_playing = isPlaying;
+
+ if (![self viewIfLoaded])
+ return;
+
if (!_playing)
[self showUI];
else {
@@ -310,6 +315,10 @@
if (_animating == animating)
return;
_animating = animating;
+
+ if (![self viewIfLoaded])
+ return
+
[self setNeedsStatusBarAppearanceUpdate];
if (_animating)
Modified: trunk/Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm (234123 => 234124)
--- trunk/Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm 2018-07-24 00:09:47 UTC (rev 234123)
+++ trunk/Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm 2018-07-24 00:27:13 UTC (rev 234124)
@@ -752,6 +752,7 @@
_repaintCallback->performCallback();
[_fullscreenViewController setPrefersStatusBarHidden:YES];
+ _fullscreenViewController = nil;
}
- (void)close
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes