Diff
Modified: trunk/LayoutTests/ChangeLog (251833 => 251834)
--- trunk/LayoutTests/ChangeLog 2019-10-31 04:54:46 UTC (rev 251833)
+++ trunk/LayoutTests/ChangeLog 2019-10-31 05:13:33 UTC (rev 251834)
@@ -1,3 +1,20 @@
+2019-10-30 Peng Liu <[email protected]>
+
+ [Picture-in-Picture Web API] Enable the support for iOS
+ https://bugs.webkit.org/show_bug.cgi?id=202618
+
+ Reviewed by Jer Noble.
+
+ We do not need to play the video before entering the picture-in-picture mode,
+ so remove the code to start video playback in the test pages.
+ Also, enable the layout test cases of the Picture-in-Picture API for iPad.
+
+ * media/picture-in-picture-api-pip-events-expected.txt:
+ * media/picture-in-picture-api-pip-events.html:
+ * media/picture-in-picture-api-pip-window-expected.txt:
+ * media/picture-in-picture-api-pip-window.html:
+ * platform/ipad/TestExpectations:
+
2019-10-30 Yury Semikhatsky <[email protected]>
inspector-protocol/debugger/setBreakpoint-dfg.html is flaky
Modified: trunk/LayoutTests/media/picture-in-picture-api-pip-events-expected.txt (251833 => 251834)
--- trunk/LayoutTests/media/picture-in-picture-api-pip-events-expected.txt 2019-10-31 04:54:46 UTC (rev 251833)
+++ trunk/LayoutTests/media/picture-in-picture-api-pip-events-expected.txt 2019-10-31 05:13:33 UTC (rev 251834)
@@ -3,8 +3,6 @@
RUN(internals.settings.setAllowsPictureInPictureMediaPlayback(true))
RUN(video.src = "" "content/test"))
EVENT(canplaythrough)
-RUN(video.play())
-EVENT(playing)
EVENT(enterpictureinpicture)
EVENT(leavepictureinpicture)
END OF TEST
Modified: trunk/LayoutTests/media/picture-in-picture-api-pip-events.html (251833 => 251834)
--- trunk/LayoutTests/media/picture-in-picture-api-pip-events.html 2019-10-31 04:54:46 UTC (rev 251833)
+++ trunk/LayoutTests/media/picture-in-picture-api-pip-events.html 2019-10-31 05:13:33 UTC (rev 251834)
@@ -12,9 +12,6 @@
run('video.src = "" "content/test")');
await waitFor(video, 'canplaythrough');
- run('video.play()');
- await waitFor(video, 'playing');
-
runWithKeyDown(function() { video.requestPictureInPicture(); });
await waitFor(video, 'enterpictureinpicture');
Modified: trunk/LayoutTests/media/picture-in-picture-api-pip-window-expected.txt (251833 => 251834)
--- trunk/LayoutTests/media/picture-in-picture-api-pip-window-expected.txt 2019-10-31 04:54:46 UTC (rev 251833)
+++ trunk/LayoutTests/media/picture-in-picture-api-pip-window-expected.txt 2019-10-31 05:13:33 UTC (rev 251834)
@@ -3,8 +3,6 @@
RUN(internals.settings.setAllowsPictureInPictureMediaPlayback(true))
RUN(video.src = "" "content/test"))
EVENT(canplaythrough)
-RUN(video.play())
-EVENT(playing)
EXPECTED (pipWindow.width > '0') OK
EXPECTED (pipWindow.height > '0') OK
END OF TEST
Modified: trunk/LayoutTests/media/picture-in-picture-api-pip-window.html (251833 => 251834)
--- trunk/LayoutTests/media/picture-in-picture-api-pip-window.html 2019-10-31 04:54:46 UTC (rev 251833)
+++ trunk/LayoutTests/media/picture-in-picture-api-pip-window.html 2019-10-31 05:13:33 UTC (rev 251834)
@@ -12,9 +12,6 @@
run('video.src = "" "content/test")');
await waitFor(video, 'canplaythrough');
- run('video.play()');
- await waitFor(video, 'playing');
-
runWithKeyDown(function() {
video.requestPictureInPicture()
.then(pipWindow => {
Modified: trunk/LayoutTests/platform/ipad/TestExpectations (251833 => 251834)
--- trunk/LayoutTests/platform/ipad/TestExpectations 2019-10-31 04:54:46 UTC (rev 251833)
+++ trunk/LayoutTests/platform/ipad/TestExpectations 2019-10-31 05:13:33 UTC (rev 251834)
@@ -64,3 +64,12 @@
webkit.org/b/203264 editing/pasteboard/smart-paste-paragraph-002.html [ Pass ]
webkit.org/b/203264 editing/pasteboard/smart-paste-paragraph-004.html [ Pass ]
+media/picture-in-picture-api-element-attributes.html [ Pass ]
+media/picture-in-picture-api-enter-pip-1.html [ Pass ]
+media/picture-in-picture-api-enter-pip-2.html [ Pass ]
+media/picture-in-picture-api-enter-pip-3.html [ Pass ]
+webkit.org/b/203614 media/picture-in-picture-api-enter-pip-4.html [ Pass Timeout ]
+webkit.org/b/203614 media/picture-in-picture-api-exit-pip-1.html [ Pass Timeout ]
+media/picture-in-picture-api-exit-pip-2.html [ Pass ]
+webkit.org/b/203614 media/picture-in-picture-api-pip-events.html [ Pass Timeout ]
+webkit.org/b/203614 media/picture-in-picture-api-pip-window.html [ Pass Timeout ]
\ No newline at end of file
Modified: trunk/Source/_javascript_Core/ChangeLog (251833 => 251834)
--- trunk/Source/_javascript_Core/ChangeLog 2019-10-31 04:54:46 UTC (rev 251833)
+++ trunk/Source/_javascript_Core/ChangeLog 2019-10-31 05:13:33 UTC (rev 251834)
@@ -1,3 +1,14 @@
+2019-10-30 Peng Liu <[email protected]>
+
+ [Picture-in-Picture Web API] Enable the support for iOS
+ https://bugs.webkit.org/show_bug.cgi?id=202618
+
+ Reviewed by Jer Noble.
+
+ Enable the Picture-in-Picture API support for iOS (iPad only).
+
+ * Configurations/FeatureDefines.xcconfig:
+
2019-10-30 Yusuke Suzuki <[email protected]>
[JSC] Date functions should have intrinsic
Modified: trunk/Source/_javascript_Core/Configurations/FeatureDefines.xcconfig (251833 => 251834)
--- trunk/Source/_javascript_Core/Configurations/FeatureDefines.xcconfig 2019-10-31 04:54:46 UTC (rev 251833)
+++ trunk/Source/_javascript_Core/Configurations/FeatureDefines.xcconfig 2019-10-31 05:13:33 UTC (rev 251834)
@@ -316,6 +316,8 @@
ENABLE_PAYMENT_REQUEST = ENABLE_PAYMENT_REQUEST;
ENABLE_PICTURE_IN_PICTURE_API = $(ENABLE_PICTURE_IN_PICTURE_API_$(WK_PLATFORM_NAME));
+ENABLE_PICTURE_IN_PICTURE_API_iphoneos = ENABLE_PICTURE_IN_PICTURE_API;
+ENABLE_PICTURE_IN_PICTURE_API_iphonesimulator = ENABLE_PICTURE_IN_PICTURE_API;
ENABLE_PICTURE_IN_PICTURE_API_macosx = ENABLE_PICTURE_IN_PICTURE_API;
ENABLE_PDFKIT_PLUGIN = $(ENABLE_PDFKIT_PLUGIN_$(WK_PLATFORM_NAME));
Modified: trunk/Source/WebCore/ChangeLog (251833 => 251834)
--- trunk/Source/WebCore/ChangeLog 2019-10-31 04:54:46 UTC (rev 251833)
+++ trunk/Source/WebCore/ChangeLog 2019-10-31 05:13:33 UTC (rev 251834)
@@ -1,3 +1,45 @@
+2019-10-30 Peng Liu <[email protected]>
+
+ [Picture-in-Picture Web API] Enable the support for iOS
+ https://bugs.webkit.org/show_bug.cgi?id=202618
+
+ Reviewed by Jer Noble.
+
+ Enable the Picture-in-Picture API support for iOS (iPad only).
+ Add a file WebCore/platform/PictureInPictureSupport.h to define supportsPictureInPicture()
+ and provide a default implementation of that function if a configuration does not provide it (just return false).
+ The original definition of this function in platform/cocoa/VideoFullscreenModel.h is removed,
+ and the usage of this function is cleaned up.
+ Also fix a build error related to including header file (pal/spi/cg/CoreGraphicsSPI.h).
+
+ Covered by existing test cases.
+
+ * Configurations/FeatureDefines.xcconfig:
+ * Modules/pictureinpicture/DocumentPictureInPicture.cpp:
+ (WebCore::DocumentPictureInPicture::pictureInPictureEnabled):
+ * Modules/pictureinpicture/DocumentPictureInPicture.h:
+ (WebCore::DocumentPictureInPicture::pictureInPictureEnabled): Deleted.
+ * Modules/pictureinpicture/HTMLVideoElementPictureInPicture.cpp:
+ (WebCore::HTMLVideoElementPictureInPicture::requestPictureInPicture):
+
+ * Configurations/FeatureDefines.xcconfig:
+ * Modules/pictureinpicture/DocumentPictureInPicture.cpp:
+ (WebCore::DocumentPictureInPicture::pictureInPictureEnabled):
+ * Modules/pictureinpicture/DocumentPictureInPicture.h:
+ (WebCore::DocumentPictureInPicture::pictureInPictureEnabled): Deleted.
+ * Modules/pictureinpicture/HTMLVideoElementPictureInPicture.cpp:
+ (WebCore::HTMLVideoElementPictureInPicture::requestPictureInPicture):
+ * WebCore.xcodeproj/project.pbxproj:
+ * html/HTMLMediaElement.cpp:
+ * html/HTMLVideoElement.cpp:
+ (WebCore::HTMLVideoElement::webkitSupportsPresentationMode const):
+ * platform/PictureInPictureSupport.h: Copied from Source/WebCore/Modules/pictureinpicture/DocumentPictureInPicture.h.
+ (WebCore::supportsPictureInPicture):
+ * platform/cocoa/VideoFullscreenModel.h:
+ * platform/graphics/cg/PathCG.cpp:
+ * platform/ios/VideoFullscreenInterfaceAVKit.mm:
+ * platform/mac/VideoFullscreenInterfaceMac.mm:
+
2019-10-30 Devin Rousso <[email protected]>
Web Inspector: Timelines: ResizeObserver callbacks are not labeled in the Events timeline
Modified: trunk/Source/WebCore/Configurations/FeatureDefines.xcconfig (251833 => 251834)
--- trunk/Source/WebCore/Configurations/FeatureDefines.xcconfig 2019-10-31 04:54:46 UTC (rev 251833)
+++ trunk/Source/WebCore/Configurations/FeatureDefines.xcconfig 2019-10-31 05:13:33 UTC (rev 251834)
@@ -316,6 +316,8 @@
ENABLE_PAYMENT_REQUEST = ENABLE_PAYMENT_REQUEST;
ENABLE_PICTURE_IN_PICTURE_API = $(ENABLE_PICTURE_IN_PICTURE_API_$(WK_PLATFORM_NAME));
+ENABLE_PICTURE_IN_PICTURE_API_iphoneos = ENABLE_PICTURE_IN_PICTURE_API;
+ENABLE_PICTURE_IN_PICTURE_API_iphonesimulator = ENABLE_PICTURE_IN_PICTURE_API;
ENABLE_PICTURE_IN_PICTURE_API_macosx = ENABLE_PICTURE_IN_PICTURE_API;
ENABLE_PDFKIT_PLUGIN = $(ENABLE_PDFKIT_PLUGIN_$(WK_PLATFORM_NAME));
Modified: trunk/Source/WebCore/Modules/pictureinpicture/DocumentPictureInPicture.cpp (251833 => 251834)
--- trunk/Source/WebCore/Modules/pictureinpicture/DocumentPictureInPicture.cpp 2019-10-31 04:54:46 UTC (rev 251833)
+++ trunk/Source/WebCore/Modules/pictureinpicture/DocumentPictureInPicture.cpp 2019-10-31 05:13:33 UTC (rev 251834)
@@ -32,6 +32,7 @@
#include "Document.h"
#include "HTMLVideoElementPictureInPicture.h"
#include "JSDOMPromiseDeferred.h"
+#include "PictureInPictureSupport.h"
#include <wtf/IsoMallocInlines.h>
namespace WebCore {
@@ -40,6 +41,11 @@
DocumentPictureInPicture::~DocumentPictureInPicture() = default;
+bool DocumentPictureInPicture::pictureInPictureEnabled(Document&)
+{
+ return supportsPictureInPicture();
+}
+
void DocumentPictureInPicture::exitPictureInPicture(Document& document, Ref<DeferredPromise>&& promise)
{
auto element = document.pictureInPictureElement();
Modified: trunk/Source/WebCore/Modules/pictureinpicture/DocumentPictureInPicture.h (251833 => 251834)
--- trunk/Source/WebCore/Modules/pictureinpicture/DocumentPictureInPicture.h 2019-10-31 04:54:46 UTC (rev 251833)
+++ trunk/Source/WebCore/Modules/pictureinpicture/DocumentPictureInPicture.h 2019-10-31 05:13:33 UTC (rev 251834)
@@ -42,7 +42,7 @@
public:
virtual ~DocumentPictureInPicture();
- static bool pictureInPictureEnabled(Document&) { return true; }
+ static bool pictureInPictureEnabled(Document&);
static void exitPictureInPicture(Document&, Ref<DeferredPromise>&&);
static DocumentPictureInPicture* from(Document&);
Modified: trunk/Source/WebCore/Modules/pictureinpicture/HTMLVideoElementPictureInPicture.cpp (251833 => 251834)
--- trunk/Source/WebCore/Modules/pictureinpicture/HTMLVideoElementPictureInPicture.cpp 2019-10-31 04:54:46 UTC (rev 251833)
+++ trunk/Source/WebCore/Modules/pictureinpicture/HTMLVideoElementPictureInPicture.cpp 2019-10-31 05:13:33 UTC (rev 251834)
@@ -33,6 +33,7 @@
#include "JSDOMPromiseDeferred.h"
#include "JSPictureInPictureWindow.h"
#include "Logging.h"
+#include "PictureInPictureSupport.h"
#include "PictureInPictureWindow.h"
#include "VideoTrackList.h"
#include <wtf/IsoMallocInlines.h>
@@ -72,6 +73,11 @@
void HTMLVideoElementPictureInPicture::requestPictureInPicture(HTMLVideoElement& videoElement, Ref<DeferredPromise>&& promise)
{
+ if (!supportsPictureInPicture()) {
+ promise->reject(NotSupportedError, "The Picture-in-Picture mode is not supported.");
+ return;
+ }
+
if (videoElement.readyState() == HTMLMediaElementEnums::HAVE_NOTHING) {
promise->reject(InvalidStateError, "The video element is not ready to enter the Picture-in-Picture mode.");
return;
Modified: trunk/Source/WebCore/PAL/ChangeLog (251833 => 251834)
--- trunk/Source/WebCore/PAL/ChangeLog 2019-10-31 04:54:46 UTC (rev 251833)
+++ trunk/Source/WebCore/PAL/ChangeLog 2019-10-31 05:13:33 UTC (rev 251834)
@@ -1,3 +1,14 @@
+2019-10-30 Peng Liu <[email protected]>
+
+ [Picture-in-Picture Web API] Enable the support for iOS
+ https://bugs.webkit.org/show_bug.cgi?id=202618
+
+ Reviewed by Jer Noble.
+
+ Enable the Picture-in-Picture API support for iOS (iPad only).
+
+ * Configurations/FeatureDefines.xcconfig:
+
2019-10-26 Chris Lord <[email protected]>
Put OffscreenCanvas behind a build flag
Modified: trunk/Source/WebCore/PAL/Configurations/FeatureDefines.xcconfig (251833 => 251834)
--- trunk/Source/WebCore/PAL/Configurations/FeatureDefines.xcconfig 2019-10-31 04:54:46 UTC (rev 251833)
+++ trunk/Source/WebCore/PAL/Configurations/FeatureDefines.xcconfig 2019-10-31 05:13:33 UTC (rev 251834)
@@ -316,6 +316,8 @@
ENABLE_PAYMENT_REQUEST = ENABLE_PAYMENT_REQUEST;
ENABLE_PICTURE_IN_PICTURE_API = $(ENABLE_PICTURE_IN_PICTURE_API_$(WK_PLATFORM_NAME));
+ENABLE_PICTURE_IN_PICTURE_API_iphoneos = ENABLE_PICTURE_IN_PICTURE_API;
+ENABLE_PICTURE_IN_PICTURE_API_iphonesimulator = ENABLE_PICTURE_IN_PICTURE_API;
ENABLE_PICTURE_IN_PICTURE_API_macosx = ENABLE_PICTURE_IN_PICTURE_API;
ENABLE_PDFKIT_PLUGIN = $(ENABLE_PDFKIT_PLUGIN_$(WK_PLATFORM_NAME));
Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (251833 => 251834)
--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2019-10-31 04:54:46 UTC (rev 251833)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2019-10-31 05:13:33 UTC (rev 251834)
@@ -626,6 +626,7 @@
1CCD81502231F83E0065FC2B /* WebCoreResourceHandleAsOperationQueueDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = E152551416FD234F003D7ADB /* WebCoreResourceHandleAsOperationQueueDelegate.mm */; };
1CCDF5BE1990332400BCEBAD /* SVGToOTFFontConversion.h in Headers */ = {isa = PBXBuildFile; fileRef = 1CCDF5BC1990332400BCEBAD /* SVGToOTFFontConversion.h */; };
1CFAE3230A6D6A3F0032593D /* libobjc.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 1CFAE3220A6D6A3F0032593D /* libobjc.dylib */; };
+ 1D2C82B7236A3F6A0055D6C5 /* PictureInPictureSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 1D2C82B6236A3F6A0055D6C5 /* PictureInPictureSupport.h */; settings = {ATTRIBUTES = (Private, ); }; };
1D2F8E03234474EF00993B68 /* DocumentPictureInPicture.h in Headers */ = {isa = PBXBuildFile; fileRef = 1DEF06DD233D2E1C00EE228D /* DocumentPictureInPicture.h */; settings = {ATTRIBUTES = (Private, ); }; };
1D2F8E042344751600993B68 /* EnterPictureInPictureEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 1DEF06CA233C3D0B00EE228D /* EnterPictureInPictureEvent.h */; settings = {ATTRIBUTES = (Private, ); }; };
1D2F8E052344751D00993B68 /* HTMLVideoElementPictureInPicture.h in Headers */ = {isa = PBXBuildFile; fileRef = 1DEF06CC233C3D2000EE228D /* HTMLVideoElementPictureInPicture.h */; settings = {ATTRIBUTES = (Private, ); }; };
@@ -6459,6 +6460,7 @@
1CECB3C721F59C8700F44542 /* WHLSLNativeTypeWriter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WHLSLNativeTypeWriter.h; sourceTree = "<group>"; };
1CF0BFD42298706800ED2074 /* TextSizeAdjustment.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TextSizeAdjustment.cpp; sourceTree = "<group>"; };
1CFAE3220A6D6A3F0032593D /* libobjc.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libobjc.dylib; path = /usr/lib/libobjc.dylib; sourceTree = "<absolute>"; };
+ 1D2C82B6236A3F6A0055D6C5 /* PictureInPictureSupport.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PictureInPictureSupport.h; sourceTree = "<group>"; };
1DBC1B552347B3D200B901AF /* PictureInPictureObserver.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PictureInPictureObserver.h; sourceTree = "<group>"; };
1DC553FD211BA12A004B780E /* NavigatorShare.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = NavigatorShare.idl; sourceTree = "<group>"; };
1DC553FF211BA841004B780E /* ShareData.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = ShareData.idl; sourceTree = "<group>"; };
@@ -12143,8 +12145,6 @@
AACC83D62316569E00EB6BF5 /* HTMLOrForeignElement.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = HTMLOrForeignElement.idl; sourceTree = "<group>"; };
AACC83D72316576A00EB6BF5 /* JSHTMLOrForeignElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = JSHTMLOrForeignElement.h; sourceTree = "<group>"; };
AACC83D82316576B00EB6BF5 /* JSHTMLOrForeignElement.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = JSHTMLOrForeignElement.cpp; sourceTree = "<group>"; };
- AAD9D0B121DFA80C001B11C7 /* LazyLoadImageObserver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LazyLoadImageObserver.cpp; sourceTree = "<group>"; };
- AAD9D0B321DFA80E001B11C7 /* LazyLoadImageObserver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LazyLoadImageObserver.h; sourceTree = "<group>"; };
AAE27B7416CBFC0D00623043 /* PlatformSpeechSynthesizerMock.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PlatformSpeechSynthesizerMock.cpp; sourceTree = "<group>"; };
AAE27B7516CBFC0D00623043 /* PlatformSpeechSynthesizerMock.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlatformSpeechSynthesizerMock.h; sourceTree = "<group>"; };
AAE3755D17429BCC006200C2 /* PlatformSpeechSynthesizerIOS.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = PlatformSpeechSynthesizerIOS.mm; sourceTree = "<group>"; };
@@ -25736,6 +25736,7 @@
1AF5E4D21E56735A004A1F01 /* PasteboardWriterData.cpp */,
1AF5E4D31E56735A004A1F01 /* PasteboardWriterData.h */,
1DBC1B552347B3D200B901AF /* PictureInPictureObserver.h */,
+ 1D2C82B6236A3F6A0055D6C5 /* PictureInPictureSupport.h */,
A14978701ABAF3A500CEF7E4 /* PlatformContentFilter.h */,
BC5C76291497FE1400BC4775 /* PlatformEvent.h */,
A723F77A1484CA4C008C6DBE /* PlatformExportMacros.h */,
@@ -29019,6 +29020,7 @@
07B7116D1D899E63009F0FFB /* CaptureDevice.h in Headers */,
07B7116F1D899E63009F0FFB /* CaptureDeviceManager.h in Headers */,
CDC734151977896D0046BFC5 /* CARingBuffer.h in Headers */,
+ E4ABABF52368C6EF00FA4345 /* CascadeLevel.h in Headers */,
57303BBB2006C6EE00355965 /* CBORBinary.h in Headers */,
57303BC12006E00C00355965 /* CBORReader.h in Headers */,
57303BB92006C6EE00355965 /* CBORValue.h in Headers */,
@@ -30223,7 +30225,6 @@
BE8EF045171C8FF9009B48C3 /* JSAudioTrackList.h in Headers */,
57D1352A2294AA3900827401 /* JSAuthenticationExtensionsClientInputs.h in Headers */,
57303C2F2009B7E100355965 /* JSAuthenticatorAssertionResponse.h in Headers */,
- E4ABABF32368B95900FA4345 /* StyleBuilderState.h in Headers */,
57303C222009AF0300355965 /* JSAuthenticatorAttestationResponse.h in Headers */,
57303BE120095D6100355965 /* JSAuthenticatorResponse.h in Headers */,
57DCED98214882160016B847 /* JSAuthenticatorTransport.h in Headers */,
@@ -31488,6 +31489,7 @@
FD581FB51520F93B003A7A75 /* PeriodicWave.h in Headers */,
49D5DC2E0F423A73008F20FD /* PerspectiveTransformOperation.h in Headers */,
1DBC1B562347B3D200B901AF /* PictureInPictureObserver.h in Headers */,
+ 1D2C82B7236A3F6A0055D6C5 /* PictureInPictureSupport.h in Headers */,
1D2F8E062344752300993B68 /* PictureInPictureWindow.h in Headers */,
D0FF2A5E11F8C45A007E74E0 /* PingLoader.h in Headers */,
CD7D33441C7A123F00041293 /* PixelBufferConformerCV.h in Headers */,
@@ -31552,7 +31554,6 @@
BC3BE12B0E98092F00835588 /* PopupMenuStyle.h in Headers */,
37F567CE165358F400DDE92B /* PopupOpeningObserver.h in Headers */,
93F199DE08245E59001E9ABC /* Position.h in Headers */,
- E4ABABF52368C6EF00FA4345 /* CascadeLevel.h in Headers */,
9746AF2C14F4DDE6003E7A70 /* PositionCallback.h in Headers */,
9746AF3014F4DDE6003E7A70 /* PositionErrorCallback.h in Headers */,
37919C240B7D188600A56998 /* PositionIterator.h in Headers */,
@@ -32144,6 +32145,7 @@
8386A96D19F61B2E00E1EC4A /* StyleBuilder.h in Headers */,
83B9687B19F8AB83004EF7AF /* StyleBuilderConverter.h in Headers */,
835D363719FF6193004C93AB /* StyleBuilderCustom.h in Headers */,
+ E4ABABF32368B95900FA4345 /* StyleBuilderState.h in Headers */,
BCEF444D0E674628001C1287 /* StyleCachedImage.h in Headers */,
E401E0A41C3C0B8300F34D10 /* StyleChange.h in Headers */,
9418278B1D8B244000492764 /* StyleColor.h in Headers */,
Modified: trunk/Source/WebCore/html/HTMLMediaElement.cpp (251833 => 251834)
--- trunk/Source/WebCore/html/HTMLMediaElement.cpp 2019-10-31 04:54:46 UTC (rev 251833)
+++ trunk/Source/WebCore/html/HTMLMediaElement.cpp 2019-10-31 05:13:33 UTC (rev 251834)
@@ -74,6 +74,7 @@
#include "NetworkingContext.h"
#include "Page.h"
#include "PageGroup.h"
+#include "PictureInPictureSupport.h"
#include "PlatformMediaSessionManager.h"
#include "ProgressTracker.h"
#include "Quirks.h"
Modified: trunk/Source/WebCore/html/HTMLVideoElement.cpp (251833 => 251834)
--- trunk/Source/WebCore/html/HTMLVideoElement.cpp 2019-10-31 04:54:46 UTC (rev 251833)
+++ trunk/Source/WebCore/html/HTMLVideoElement.cpp 2019-10-31 05:13:33 UTC (rev 251834)
@@ -39,6 +39,7 @@
#include "HTMLParserIdioms.h"
#include "Logging.h"
#include "Page.h"
+#include "PictureInPictureSupport.h"
#include "RenderImage.h"
#include "RenderVideo.h"
#include "ScriptController.h"
@@ -414,10 +415,8 @@
return supportsFullscreen(HTMLMediaElementEnums::VideoFullscreenModeStandard);
if (mode == VideoPresentationMode::PictureInPicture) {
-#if PLATFORM(COCOA)
if (!supportsPictureInPicture())
return false;
-#endif
return supportsFullscreen(HTMLMediaElementEnums::VideoFullscreenModePictureInPicture);
}
Copied: trunk/Source/WebCore/platform/PictureInPictureSupport.h (from rev 251833, trunk/Source/WebCore/Modules/pictureinpicture/DocumentPictureInPicture.h) (0 => 251834)
--- trunk/Source/WebCore/platform/PictureInPictureSupport.h (rev 0)
+++ trunk/Source/WebCore/platform/PictureInPictureSupport.h 2019-10-31 05:13:33 UTC (rev 251834)
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2019 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+namespace WebCore {
+
+#if PLATFORM(IOS_FAMILY) || (PLATFORM(MAC) && ENABLE(VIDEO_PRESENTATION_MODE))
+WEBCORE_EXPORT bool supportsPictureInPicture();
+#else
+constexpr bool supportsPictureInPicture() { return false; }
+#endif
+
+}
Modified: trunk/Source/WebCore/platform/cocoa/VideoFullscreenModel.h (251833 => 251834)
--- trunk/Source/WebCore/platform/cocoa/VideoFullscreenModel.h 2019-10-31 04:54:46 UTC (rev 251833)
+++ trunk/Source/WebCore/platform/cocoa/VideoFullscreenModel.h 2019-10-31 05:13:33 UTC (rev 251834)
@@ -85,8 +85,6 @@
virtual void didExitPictureInPicture() { }
virtual void modelDestroyed() { }
};
-
-WEBCORE_EXPORT bool supportsPictureInPicture();
}
Modified: trunk/Source/WebCore/platform/graphics/cg/PathCG.cpp (251833 => 251834)
--- trunk/Source/WebCore/platform/graphics/cg/PathCG.cpp 2019-10-31 04:54:46 UTC (rev 251833)
+++ trunk/Source/WebCore/platform/graphics/cg/PathCG.cpp 2019-10-31 05:13:33 UTC (rev 251834)
@@ -35,6 +35,7 @@
#include "IntRect.h"
#include "StrokeStyleApplier.h"
#include <CoreGraphics/CoreGraphics.h>
+#include <pal/spi/cg/CoreGraphicsSPI.h>
#include <wtf/MathExtras.h>
#include <wtf/RetainPtr.h>
#include <wtf/text/WTFString.h>
Modified: trunk/Source/WebCore/platform/ios/VideoFullscreenInterfaceAVKit.mm (251833 => 251834)
--- trunk/Source/WebCore/platform/ios/VideoFullscreenInterfaceAVKit.mm 2019-10-31 04:54:46 UTC (rev 251833)
+++ trunk/Source/WebCore/platform/ios/VideoFullscreenInterfaceAVKit.mm 2019-10-31 05:13:33 UTC (rev 251834)
@@ -32,6 +32,7 @@
#import "GeometryUtilities.h"
#import "Logging.h"
+#import "PictureInPictureSupport.h"
#import "PlaybackSessionInterfaceAVKit.h"
#import "RuntimeApplicationChecks.h"
#import "TimeRanges.h"
Modified: trunk/Source/WebCore/platform/mac/VideoFullscreenInterfaceMac.mm (251833 => 251834)
--- trunk/Source/WebCore/platform/mac/VideoFullscreenInterfaceMac.mm 2019-10-31 04:54:46 UTC (rev 251833)
+++ trunk/Source/WebCore/platform/mac/VideoFullscreenInterfaceMac.mm 2019-10-31 05:13:33 UTC (rev 251834)
@@ -30,6 +30,7 @@
#import "IntRect.h"
#import "Logging.h"
+#import "PictureInPictureSupport.h"
#import "PlaybackSessionInterfaceMac.h"
#import "TimeRanges.h"
#import "VideoFullscreenChangeObserver.h"
Modified: trunk/Source/WebKit/ChangeLog (251833 => 251834)
--- trunk/Source/WebKit/ChangeLog 2019-10-31 04:54:46 UTC (rev 251833)
+++ trunk/Source/WebKit/ChangeLog 2019-10-31 05:13:33 UTC (rev 251834)
@@ -1,3 +1,15 @@
+2019-10-30 Peng Liu <[email protected]>
+
+ [Picture-in-Picture Web API] Enable the support for iOS
+ https://bugs.webkit.org/show_bug.cgi?id=202618
+
+ Reviewed by Jer Noble.
+
+ Enable the Picture-in-Picture API support for iOS (iPad only).
+
+ * Configurations/FeatureDefines.xcconfig:
+ * WebProcess/cocoa/VideoFullscreenManager.mm:
+
2019-10-30 Alex Christensen <[email protected]>
Prevent Mac CMake build from bit rotting
Modified: trunk/Source/WebKit/Configurations/FeatureDefines.xcconfig (251833 => 251834)
--- trunk/Source/WebKit/Configurations/FeatureDefines.xcconfig 2019-10-31 04:54:46 UTC (rev 251833)
+++ trunk/Source/WebKit/Configurations/FeatureDefines.xcconfig 2019-10-31 05:13:33 UTC (rev 251834)
@@ -316,6 +316,8 @@
ENABLE_PAYMENT_REQUEST = ENABLE_PAYMENT_REQUEST;
ENABLE_PICTURE_IN_PICTURE_API = $(ENABLE_PICTURE_IN_PICTURE_API_$(WK_PLATFORM_NAME));
+ENABLE_PICTURE_IN_PICTURE_API_iphoneos = ENABLE_PICTURE_IN_PICTURE_API;
+ENABLE_PICTURE_IN_PICTURE_API_iphonesimulator = ENABLE_PICTURE_IN_PICTURE_API;
ENABLE_PICTURE_IN_PICTURE_API_macosx = ENABLE_PICTURE_IN_PICTURE_API;
ENABLE_PDFKIT_PLUGIN = $(ENABLE_PDFKIT_PLUGIN_$(WK_PLATFORM_NAME));
Modified: trunk/Source/WebKit/WebProcess/cocoa/VideoFullscreenManager.mm (251833 => 251834)
--- trunk/Source/WebKit/WebProcess/cocoa/VideoFullscreenManager.mm 2019-10-31 04:54:46 UTC (rev 251833)
+++ trunk/Source/WebKit/WebProcess/cocoa/VideoFullscreenManager.mm 2019-10-31 05:13:33 UTC (rev 251834)
@@ -43,6 +43,7 @@
#import <WebCore/EventNames.h>
#import <WebCore/FrameView.h>
#import <WebCore/HTMLVideoElement.h>
+#import <WebCore/PictureInPictureSupport.h>
#import <WebCore/PlatformCALayer.h>
#import <WebCore/RenderLayer.h>
#import <WebCore/RenderLayerBacking.h>
Modified: trunk/Source/WebKitLegacy/mac/ChangeLog (251833 => 251834)
--- trunk/Source/WebKitLegacy/mac/ChangeLog 2019-10-31 04:54:46 UTC (rev 251833)
+++ trunk/Source/WebKitLegacy/mac/ChangeLog 2019-10-31 05:13:33 UTC (rev 251834)
@@ -1,3 +1,14 @@
+2019-10-30 Peng Liu <[email protected]>
+
+ [Picture-in-Picture Web API] Enable the support for iOS
+ https://bugs.webkit.org/show_bug.cgi?id=202618
+
+ Reviewed by Jer Noble.
+
+ Enable the Picture-in-Picture API support for iOS (iPad only).
+
+ * Configurations/FeatureDefines.xcconfig:
+
2019-10-29 Andy Estes <[email protected]>
[Quick Look] Clean up LegacyPreviewLoaderClients
Modified: trunk/Source/WebKitLegacy/mac/Configurations/FeatureDefines.xcconfig (251833 => 251834)
--- trunk/Source/WebKitLegacy/mac/Configurations/FeatureDefines.xcconfig 2019-10-31 04:54:46 UTC (rev 251833)
+++ trunk/Source/WebKitLegacy/mac/Configurations/FeatureDefines.xcconfig 2019-10-31 05:13:33 UTC (rev 251834)
@@ -316,6 +316,8 @@
ENABLE_PAYMENT_REQUEST = ENABLE_PAYMENT_REQUEST;
ENABLE_PICTURE_IN_PICTURE_API = $(ENABLE_PICTURE_IN_PICTURE_API_$(WK_PLATFORM_NAME));
+ENABLE_PICTURE_IN_PICTURE_API_iphoneos = ENABLE_PICTURE_IN_PICTURE_API;
+ENABLE_PICTURE_IN_PICTURE_API_iphonesimulator = ENABLE_PICTURE_IN_PICTURE_API;
ENABLE_PICTURE_IN_PICTURE_API_macosx = ENABLE_PICTURE_IN_PICTURE_API;
ENABLE_PDFKIT_PLUGIN = $(ENABLE_PDFKIT_PLUGIN_$(WK_PLATFORM_NAME));
Modified: trunk/Tools/ChangeLog (251833 => 251834)
--- trunk/Tools/ChangeLog 2019-10-31 04:54:46 UTC (rev 251833)
+++ trunk/Tools/ChangeLog 2019-10-31 05:13:33 UTC (rev 251834)
@@ -1,3 +1,14 @@
+2019-10-30 Peng Liu <[email protected]>
+
+ [Picture-in-Picture Web API] Enable the support for iOS
+ https://bugs.webkit.org/show_bug.cgi?id=202618
+
+ Reviewed by Jer Noble.
+
+ Enable the Picture-in-Picture API support for iOS (iPad only).
+
+ * TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
+
2019-10-30 Alex Christensen <[email protected]>
Prevent Mac CMake build from bit rotting
Modified: trunk/Tools/TestWebKitAPI/Configurations/FeatureDefines.xcconfig (251833 => 251834)
--- trunk/Tools/TestWebKitAPI/Configurations/FeatureDefines.xcconfig 2019-10-31 04:54:46 UTC (rev 251833)
+++ trunk/Tools/TestWebKitAPI/Configurations/FeatureDefines.xcconfig 2019-10-31 05:13:33 UTC (rev 251834)
@@ -316,6 +316,8 @@
ENABLE_PAYMENT_REQUEST = ENABLE_PAYMENT_REQUEST;
ENABLE_PICTURE_IN_PICTURE_API = $(ENABLE_PICTURE_IN_PICTURE_API_$(WK_PLATFORM_NAME));
+ENABLE_PICTURE_IN_PICTURE_API_iphoneos = ENABLE_PICTURE_IN_PICTURE_API;
+ENABLE_PICTURE_IN_PICTURE_API_iphonesimulator = ENABLE_PICTURE_IN_PICTURE_API;
ENABLE_PICTURE_IN_PICTURE_API_macosx = ENABLE_PICTURE_IN_PICTURE_API;
ENABLE_PDFKIT_PLUGIN = $(ENABLE_PDFKIT_PLUGIN_$(WK_PLATFORM_NAME));