Title: [252240] trunk/Source/WebCore
- Revision
- 252240
- Author
- commit-qu...@webkit.org
- Date
- 2019-11-08 10:06:43 -0800 (Fri, 08 Nov 2019)
Log Message
Picture-in-Picture events are not fired when enter/exit the Picture-in-Picture mode through modern media controls
https://bugs.webkit.org/show_bug.cgi?id=203933
Patch by Peng Liu <peng.l...@apple.com> on 2019-11-08
Reviewed by Eric Carlson.
Covered by existing layout test cases. No new test is required.
* Modules/modern-media-controls/media/pip-support.js:
(PiPSupport.prototype.buttonWasPressed):
* Modules/pictureinpicture/HTMLVideoElementPictureInPicture.cpp:
(WebCore::HTMLVideoElementPictureInPicture::didEnterPictureInPicture):
(WebCore::HTMLVideoElementPictureInPicture::didExitPictureInPicture):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (252239 => 252240)
--- trunk/Source/WebCore/ChangeLog 2019-11-08 16:58:49 UTC (rev 252239)
+++ trunk/Source/WebCore/ChangeLog 2019-11-08 18:06:43 UTC (rev 252240)
@@ -1,3 +1,18 @@
+2019-11-08 Peng Liu <peng.l...@apple.com>
+
+ Picture-in-Picture events are not fired when enter/exit the Picture-in-Picture mode through modern media controls
+ https://bugs.webkit.org/show_bug.cgi?id=203933
+
+ Reviewed by Eric Carlson.
+
+ Covered by existing layout test cases. No new test is required.
+
+ * Modules/modern-media-controls/media/pip-support.js:
+ (PiPSupport.prototype.buttonWasPressed):
+ * Modules/pictureinpicture/HTMLVideoElementPictureInPicture.cpp:
+ (WebCore::HTMLVideoElementPictureInPicture::didEnterPictureInPicture):
+ (WebCore::HTMLVideoElementPictureInPicture::didExitPictureInPicture):
+
2019-11-08 Carlos Garcia Campos <cgar...@igalia.com>
'Strikethrough' editing command reported as 'formatUnderline'
Modified: trunk/Source/WebCore/Modules/modern-media-controls/media/pip-support.js (252239 => 252240)
--- trunk/Source/WebCore/Modules/modern-media-controls/media/pip-support.js 2019-11-08 16:58:49 UTC (rev 252239)
+++ trunk/Source/WebCore/Modules/modern-media-controls/media/pip-support.js 2019-11-08 18:06:43 UTC (rev 252240)
@@ -49,7 +49,10 @@
buttonWasPressed(control)
{
const media = this.mediaController.media;
- media.webkitSetPresentationMode(media.webkitPresentationMode === PiPMode ? InlineMode : PiPMode);
+ if (!document.pictureInPictureElement)
+ media.requestPictureInPicture();
+ else
+ document.exitPictureInPicture();
}
syncControl()
Modified: trunk/Source/WebCore/Modules/pictureinpicture/HTMLVideoElementPictureInPicture.cpp (252239 => 252240)
--- trunk/Source/WebCore/Modules/pictureinpicture/HTMLVideoElementPictureInPicture.cpp 2019-11-08 16:58:49 UTC (rev 252239)
+++ trunk/Source/WebCore/Modules/pictureinpicture/HTMLVideoElementPictureInPicture.cpp 2019-11-08 18:06:43 UTC (rev 252240)
@@ -152,11 +152,12 @@
m_videoElement.document().setPictureInPictureElement(&m_videoElement);
m_pictureInPictureWindow->setSize(windowSize);
+ EnterPictureInPictureEvent::Init initializer;
+ initializer.bubbles = true;
+ initializer.pictureInPictureWindow = m_pictureInPictureWindow;
+ m_videoElement.scheduleEvent(EnterPictureInPictureEvent::create(eventNames().enterpictureinpictureEvent, WTFMove(initializer)));
+
if (m_enterPictureInPicturePromise) {
- EnterPictureInPictureEvent::Init initializer;
- initializer.bubbles = true;
- initializer.pictureInPictureWindow = m_pictureInPictureWindow;
- m_videoElement.scheduleEvent(EnterPictureInPictureEvent::create(eventNames().enterpictureinpictureEvent, WTFMove(initializer)));
m_enterPictureInPicturePromise->resolve<IDLInterface<PictureInPictureWindow>>(*m_pictureInPictureWindow);
m_enterPictureInPicturePromise = nullptr;
}
@@ -167,9 +168,9 @@
INFO_LOG(LOGIDENTIFIER);
m_pictureInPictureWindow->close();
m_videoElement.document().setPictureInPictureElement(nullptr);
+ m_videoElement.scheduleEvent(Event::create(eventNames().leavepictureinpictureEvent, Event::CanBubble::Yes, Event::IsCancelable::No));
if (m_exitPictureInPicturePromise) {
- m_videoElement.scheduleEvent(Event::create(eventNames().leavepictureinpictureEvent, Event::CanBubble::Yes, Event::IsCancelable::No));
m_exitPictureInPicturePromise->resolve();
m_exitPictureInPicturePromise = nullptr;
}
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes