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