Title: [233331] trunk/Source/WebKit
Revision
233331
Author
[email protected]
Date
2018-06-28 14:55:04 -0700 (Thu, 28 Jun 2018)

Log Message

Fullscreen exits when placeholder is removed then added during a single runloop.
https://bugs.webkit.org/show_bug.cgi?id=187079

Patch by Jeremy Jones <[email protected]> on 2018-06-28
Reviewed by Jer Noble.

Instead of closing fullscreen as soon as the placeholder is removed from the view hierarchy,
give the placeholder until the next runloop to be re-added to the view hierarchy.

* UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm:
(-[WKFullScreenWindowController placeholderWillMoveToSuperview:]):

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (233330 => 233331)


--- trunk/Source/WebKit/ChangeLog	2018-06-28 21:54:26 UTC (rev 233330)
+++ trunk/Source/WebKit/ChangeLog	2018-06-28 21:55:04 UTC (rev 233331)
@@ -1,3 +1,16 @@
+2018-06-28  Jeremy Jones  <[email protected]>
+
+        Fullscreen exits when placeholder is removed then added during a single runloop.
+        https://bugs.webkit.org/show_bug.cgi?id=187079
+
+        Reviewed by Jer Noble.
+
+        Instead of closing fullscreen as soon as the placeholder is removed from the view hierarchy,
+        give the placeholder until the next runloop to be re-added to the view hierarchy.
+
+        * UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm:
+        (-[WKFullScreenWindowController placeholderWillMoveToSuperview:]):
+
 2018-06-28  Youenn Fablet  <[email protected]>
 
         Handle the case of registerMDNSNameCallback called several times

Modified: trunk/Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm (233330 => 233331)


--- trunk/Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm	2018-06-28 21:54:26 UTC (rev 233330)
+++ trunk/Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm	2018-06-28 21:55:04 UTC (rev 233331)
@@ -762,8 +762,13 @@
 
 - (void)placeholderWillMoveToSuperview:(UIView *)superview
 {
-    if (!superview)
-        [self close];
+    if (superview)
+        return;
+
+    dispatch_async(dispatch_get_main_queue(), ^{
+        if ([_webViewPlaceholder superview] == nil && [_webViewPlaceholder parent] == self)
+            [self close];
+    });
 }
 
 #pragma mark -
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to