Title: [234239] branches/safari-606-branch/Source/WebKit
Revision
234239
Author
[email protected]
Date
2018-07-26 00:14:53 -0700 (Thu, 26 Jul 2018)

Log Message

Cherry-pick r234124. rdar://problem/42604550

    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]):

    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234124 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Modified Paths

Diff

Modified: branches/safari-606-branch/Source/WebKit/ChangeLog (234238 => 234239)


--- branches/safari-606-branch/Source/WebKit/ChangeLog	2018-07-26 07:14:50 UTC (rev 234238)
+++ branches/safari-606-branch/Source/WebKit/ChangeLog	2018-07-26 07:14:53 UTC (rev 234239)
@@ -1,5 +1,48 @@
 2018-07-25  Babak Shafiei  <[email protected]>
 
+        Cherry-pick r234124. rdar://problem/42604550
+
+    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]):
+    
+    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234124 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+    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-25  Babak Shafiei  <[email protected]>
+
         Cherry-pick r234111. rdar://problem/42604691
 
     WebResourceLoadStatisticsStore fails to unregister itself as a MessageReceiver in its destructor

Modified: branches/safari-606-branch/Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenViewController.mm (234238 => 234239)


--- branches/safari-606-branch/Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenViewController.mm	2018-07-26 07:14:50 UTC (rev 234238)
+++ branches/safari-606-branch/Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenViewController.mm	2018-07-26 07:14:53 UTC (rev 234239)
@@ -150,6 +150,7 @@
     [NSObject cancelPreviousPerformRequestsWithTarget:self];
     [[NSNotificationCenter defaultCenter] removeObserver:self];
 
+    _playbackClient.setParent(nullptr);
     _playbackClient.setInterface(nullptr);
 
     [_target release];
@@ -233,6 +234,10 @@
         return;
 
     _playing = isPlaying;
+
+    if (![self viewIfLoaded])
+        return;
+
     if (!_playing)
         [self showUI];
     else {
@@ -256,6 +261,10 @@
     if (_animating == animating)
         return;
     _animating = animating;
+
+    if (![self viewIfLoaded])
+        return
+
     [self setNeedsStatusBarAppearanceUpdate];
 
     if (_animating)

Modified: branches/safari-606-branch/Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm (234238 => 234239)


--- branches/safari-606-branch/Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm	2018-07-26 07:14:50 UTC (rev 234238)
+++ branches/safari-606-branch/Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm	2018-07-26 07:14:53 UTC (rev 234239)
@@ -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

Reply via email to