Title: [234081] trunk/Source/WebKit
Revision
234081
Author
[email protected]
Date
2018-07-20 20:50:46 -0700 (Fri, 20 Jul 2018)

Log Message

REGRESSION(r233925): Can't go into PiP twice
https://bugs.webkit.org/show_bug.cgi?id=187876
<rdar://problem/42444520>

Reviewed by Jon Lee.

We fail to enter PiP the second time because the video fullscreen interface no longer has a
model, and so gives a contentSize of 0x0. This happens because we disassociate the
interface from the model in didCleanupFullscreen. However, the interface and model can still
be re-used if they're kept alive by another client. We should delay disassociating the model
from the interface until just before the model is destroyed in removeClientForContext.

* UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:
(WebKit::VideoFullscreenManagerProxy::removeClientForContext):
(WebKit::VideoFullscreenManagerProxy::didCleanupFullscreen):

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (234080 => 234081)


--- trunk/Source/WebKit/ChangeLog	2018-07-21 03:10:53 UTC (rev 234080)
+++ trunk/Source/WebKit/ChangeLog	2018-07-21 03:50:46 UTC (rev 234081)
@@ -1,3 +1,21 @@
+2018-07-20  Jer Noble  <[email protected]>
+
+        REGRESSION(r233925): Can't go into PiP twice
+        https://bugs.webkit.org/show_bug.cgi?id=187876
+        <rdar://problem/42444520>
+
+        Reviewed by Jon Lee.
+
+        We fail to enter PiP the second time because the video fullscreen interface no longer has a
+        model, and so gives a contentSize of 0x0. This happens because we disassociate the
+        interface from the model in didCleanupFullscreen. However, the interface and model can still
+        be re-used if they're kept alive by another client. We should delay disassociating the model
+        from the interface until just before the model is destroyed in removeClientForContext.
+
+        * UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:
+        (WebKit::VideoFullscreenManagerProxy::removeClientForContext):
+        (WebKit::VideoFullscreenManagerProxy::didCleanupFullscreen):
+
 2018-07-20  John Wilander  <[email protected]>
 
         Resource Load Statistics: Enable basic functionality in experimental debug mode

Modified: trunk/Source/WebKit/UIProcess/Cocoa/VideoFullscreenManagerProxy.mm (234080 => 234081)


--- trunk/Source/WebKit/UIProcess/Cocoa/VideoFullscreenManagerProxy.mm	2018-07-21 03:10:53 UTC (rev 234080)
+++ trunk/Source/WebKit/UIProcess/Cocoa/VideoFullscreenManagerProxy.mm	2018-07-21 03:50:46 UTC (rev 234081)
@@ -449,6 +449,7 @@
     clientCount--;
 
     if (clientCount <= 0) {
+        ensureInterface(contextId).setVideoFullscreenModel(nullptr);
         m_playbackSessionManagerProxy->removeClientForContext(contextId);
         m_clientCounts.remove(contextId);
         m_contextMap.remove(contextId);
@@ -646,7 +647,6 @@
     m_page->send(Messages::VideoFullscreenManager::DidCleanupFullscreen(contextId), m_page->pageID());
 
     interface->setMode(HTMLMediaElementEnums::VideoFullscreenModeNone);
-    interface->setVideoFullscreenModel(nullptr);
     removeClientForContext(contextId);
 }
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to