Title: [234302] branches/safari-606-branch/Source/WebKit
Revision
234302
Author
[email protected]
Date
2018-07-26 23:02:12 -0700 (Thu, 26 Jul 2018)

Log Message

Cherry-pick r234081. rdar://problem/42490080

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

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

Modified Paths

Diff

Modified: branches/safari-606-branch/Source/WebKit/ChangeLog (234301 => 234302)


--- branches/safari-606-branch/Source/WebKit/ChangeLog	2018-07-27 06:02:10 UTC (rev 234301)
+++ branches/safari-606-branch/Source/WebKit/ChangeLog	2018-07-27 06:02:12 UTC (rev 234302)
@@ -1,5 +1,46 @@
 2018-07-26  Babak Shafiei  <[email protected]>
 
+        Cherry-pick r234081. rdar://problem/42490080
+
+    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):
+    
+    
+    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234081 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+    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-26  Babak Shafiei  <[email protected]>
+
         Cherry-pick r233926. rdar://problem/42354941
 
     PiP from Element Fullscreen should match AVKit's behavior

Modified: branches/safari-606-branch/Source/WebKit/UIProcess/Cocoa/VideoFullscreenManagerProxy.mm (234301 => 234302)


--- branches/safari-606-branch/Source/WebKit/UIProcess/Cocoa/VideoFullscreenManagerProxy.mm	2018-07-27 06:02:10 UTC (rev 234301)
+++ branches/safari-606-branch/Source/WebKit/UIProcess/Cocoa/VideoFullscreenManagerProxy.mm	2018-07-27 06:02:12 UTC (rev 234302)
@@ -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