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