Changeset 251834 in webkit


Ignore:
Timestamp:
Oct 30, 2019 10:13:33 PM (4 years ago)
Author:
commit-queue@webkit.org
Message:

[Picture-in-Picture Web API] Enable the support for iOS
https://bugs.webkit.org/show_bug.cgi?id=202618

Patch by Peng Liu <Peng Liu> on 2019-10-30
Reviewed by Jer Noble.

Source/JavaScriptCore:

Enable the Picture-in-Picture API support for iOS (iPad only).

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

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:

Source/WebCore/PAL:

Enable the Picture-in-Picture API support for iOS (iPad only).

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit:

Enable the Picture-in-Picture API support for iOS (iPad only).

  • Configurations/FeatureDefines.xcconfig:
  • WebProcess/cocoa/VideoFullscreenManager.mm:

Source/WebKitLegacy/mac:

Enable the Picture-in-Picture API support for iOS (iPad only).

  • Configurations/FeatureDefines.xcconfig:

Tools:

Enable the Picture-in-Picture API support for iOS (iPad only).

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:

LayoutTests:

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:
Location:
trunk
Files:
29 edited
1 copied

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r251833 r251834  
     12019-10-30  Peng Liu  <peng.liu6@apple.com>
     2
     3        [Picture-in-Picture Web API] Enable the support for iOS
     4        https://bugs.webkit.org/show_bug.cgi?id=202618
     5
     6        Reviewed by Jer Noble.
     7
     8        We do not need to play the video before entering the picture-in-picture mode,
     9        so remove the code to start video playback in the test pages.
     10        Also, enable the layout test cases of the Picture-in-Picture API for iPad.
     11
     12        * media/picture-in-picture-api-pip-events-expected.txt:
     13        * media/picture-in-picture-api-pip-events.html:
     14        * media/picture-in-picture-api-pip-window-expected.txt:
     15        * media/picture-in-picture-api-pip-window.html:
     16        * platform/ipad/TestExpectations:
     17
    1182019-10-30  Yury Semikhatsky  <yurys@chromium.org>
    219
  • trunk/LayoutTests/media/picture-in-picture-api-pip-events-expected.txt

    r251745 r251834  
    44RUN(video.src = findMediaFile("video", "content/test"))
    55EVENT(canplaythrough)
    6 RUN(video.play())
    7 EVENT(playing)
    86EVENT(enterpictureinpicture)
    97EVENT(leavepictureinpicture)
  • trunk/LayoutTests/media/picture-in-picture-api-pip-events.html

    r251745 r251834  
    1212            run('video.src = findMediaFile("video", "content/test")');
    1313            await waitFor(video, 'canplaythrough');
    14 
    15             run('video.play()');
    16             await waitFor(video, 'playing');
    1714
    1815            runWithKeyDown(function() { video.requestPictureInPicture(); });
  • trunk/LayoutTests/media/picture-in-picture-api-pip-window-expected.txt

    r251745 r251834  
    44RUN(video.src = findMediaFile("video", "content/test"))
    55EVENT(canplaythrough)
    6 RUN(video.play())
    7 EVENT(playing)
    86EXPECTED (pipWindow.width > '0') OK
    97EXPECTED (pipWindow.height > '0') OK
  • trunk/LayoutTests/media/picture-in-picture-api-pip-window.html

    r251745 r251834  
    1212            run('video.src = findMediaFile("video", "content/test")');
    1313            await waitFor(video, 'canplaythrough');
    14 
    15             run('video.play()');
    16             await waitFor(video, 'playing');
    1714
    1815            runWithKeyDown(function() {
  • trunk/LayoutTests/platform/ipad/TestExpectations

    r251773 r251834  
    6565webkit.org/b/203264 editing/pasteboard/smart-paste-paragraph-004.html [ Pass ]
    6666
     67media/picture-in-picture-api-element-attributes.html [ Pass ]
     68media/picture-in-picture-api-enter-pip-1.html [ Pass ]
     69media/picture-in-picture-api-enter-pip-2.html [ Pass ]
     70media/picture-in-picture-api-enter-pip-3.html [ Pass ]
     71webkit.org/b/203614 media/picture-in-picture-api-enter-pip-4.html [ Pass Timeout ]
     72webkit.org/b/203614 media/picture-in-picture-api-exit-pip-1.html [ Pass Timeout ]
     73media/picture-in-picture-api-exit-pip-2.html [ Pass ]
     74webkit.org/b/203614 media/picture-in-picture-api-pip-events.html [ Pass Timeout ]
     75webkit.org/b/203614 media/picture-in-picture-api-pip-window.html [ Pass Timeout ]
  • trunk/Source/JavaScriptCore/ChangeLog

    r251826 r251834  
     12019-10-30  Peng Liu  <peng.liu6@apple.com>
     2
     3        [Picture-in-Picture Web API] Enable the support for iOS
     4        https://bugs.webkit.org/show_bug.cgi?id=202618
     5
     6        Reviewed by Jer Noble.
     7
     8        Enable the Picture-in-Picture API support for iOS (iPad only).
     9
     10        * Configurations/FeatureDefines.xcconfig:
     11
    1122019-10-30  Yusuke Suzuki  <ysuzuki@apple.com>
    213
  • trunk/Source/JavaScriptCore/Configurations/FeatureDefines.xcconfig

    r251630 r251834  
    317317
    318318ENABLE_PICTURE_IN_PICTURE_API = $(ENABLE_PICTURE_IN_PICTURE_API_$(WK_PLATFORM_NAME));
     319ENABLE_PICTURE_IN_PICTURE_API_iphoneos = ENABLE_PICTURE_IN_PICTURE_API;
     320ENABLE_PICTURE_IN_PICTURE_API_iphonesimulator = ENABLE_PICTURE_IN_PICTURE_API;
    319321ENABLE_PICTURE_IN_PICTURE_API_macosx = ENABLE_PICTURE_IN_PICTURE_API;
    320322
  • trunk/Source/WebCore/ChangeLog

    r251832 r251834  
     12019-10-30  Peng Liu  <peng.liu6@apple.com>
     2
     3        [Picture-in-Picture Web API] Enable the support for iOS
     4        https://bugs.webkit.org/show_bug.cgi?id=202618
     5
     6        Reviewed by Jer Noble.
     7
     8        Enable the Picture-in-Picture API support for iOS (iPad only).
     9        Add a file WebCore/platform/PictureInPictureSupport.h to define supportsPictureInPicture()
     10        and provide a default implementation of that function if a configuration does not provide it (just return false).
     11        The original definition of this function in platform/cocoa/VideoFullscreenModel.h is removed,
     12        and the usage of this function is cleaned up.
     13        Also fix a build error related to including header file (pal/spi/cg/CoreGraphicsSPI.h).
     14
     15        Covered by existing test cases.
     16
     17        * Configurations/FeatureDefines.xcconfig:
     18        * Modules/pictureinpicture/DocumentPictureInPicture.cpp:
     19        (WebCore::DocumentPictureInPicture::pictureInPictureEnabled):
     20        * Modules/pictureinpicture/DocumentPictureInPicture.h:
     21        (WebCore::DocumentPictureInPicture::pictureInPictureEnabled): Deleted.
     22        * Modules/pictureinpicture/HTMLVideoElementPictureInPicture.cpp:
     23        (WebCore::HTMLVideoElementPictureInPicture::requestPictureInPicture):
     24
     25        * Configurations/FeatureDefines.xcconfig:
     26        * Modules/pictureinpicture/DocumentPictureInPicture.cpp:
     27        (WebCore::DocumentPictureInPicture::pictureInPictureEnabled):
     28        * Modules/pictureinpicture/DocumentPictureInPicture.h:
     29        (WebCore::DocumentPictureInPicture::pictureInPictureEnabled): Deleted.
     30        * Modules/pictureinpicture/HTMLVideoElementPictureInPicture.cpp:
     31        (WebCore::HTMLVideoElementPictureInPicture::requestPictureInPicture):
     32        * WebCore.xcodeproj/project.pbxproj:
     33        * html/HTMLMediaElement.cpp:
     34        * html/HTMLVideoElement.cpp:
     35        (WebCore::HTMLVideoElement::webkitSupportsPresentationMode const):
     36        * platform/PictureInPictureSupport.h: Copied from Source/WebCore/Modules/pictureinpicture/DocumentPictureInPicture.h.
     37        (WebCore::supportsPictureInPicture):
     38        * platform/cocoa/VideoFullscreenModel.h:
     39        * platform/graphics/cg/PathCG.cpp:
     40        * platform/ios/VideoFullscreenInterfaceAVKit.mm:
     41        * platform/mac/VideoFullscreenInterfaceMac.mm:
     42
    1432019-10-30  Devin Rousso  <drousso@apple.com>
    244
  • trunk/Source/WebCore/Configurations/FeatureDefines.xcconfig

    r251630 r251834  
    317317
    318318ENABLE_PICTURE_IN_PICTURE_API = $(ENABLE_PICTURE_IN_PICTURE_API_$(WK_PLATFORM_NAME));
     319ENABLE_PICTURE_IN_PICTURE_API_iphoneos = ENABLE_PICTURE_IN_PICTURE_API;
     320ENABLE_PICTURE_IN_PICTURE_API_iphonesimulator = ENABLE_PICTURE_IN_PICTURE_API;
    319321ENABLE_PICTURE_IN_PICTURE_API_macosx = ENABLE_PICTURE_IN_PICTURE_API;
    320322
  • trunk/Source/WebCore/Modules/pictureinpicture/DocumentPictureInPicture.cpp

    r251160 r251834  
    3333#include "HTMLVideoElementPictureInPicture.h"
    3434#include "JSDOMPromiseDeferred.h"
     35#include "PictureInPictureSupport.h"
    3536#include <wtf/IsoMallocInlines.h>
    3637
     
    4041
    4142DocumentPictureInPicture::~DocumentPictureInPicture() = default;
     43
     44bool DocumentPictureInPicture::pictureInPictureEnabled(Document&)
     45{
     46    return supportsPictureInPicture();
     47}
    4248
    4349void DocumentPictureInPicture::exitPictureInPicture(Document& document, Ref<DeferredPromise>&& promise)
  • trunk/Source/WebCore/Modules/pictureinpicture/DocumentPictureInPicture.h

    r251160 r251834  
    4343    virtual ~DocumentPictureInPicture();
    4444
    45     static bool pictureInPictureEnabled(Document&) { return true; }
     45    static bool pictureInPictureEnabled(Document&);
    4646    static void exitPictureInPicture(Document&, Ref<DeferredPromise>&&);
    4747
  • trunk/Source/WebCore/Modules/pictureinpicture/HTMLVideoElementPictureInPicture.cpp

    r251745 r251834  
    3434#include "JSPictureInPictureWindow.h"
    3535#include "Logging.h"
     36#include "PictureInPictureSupport.h"
    3637#include "PictureInPictureWindow.h"
    3738#include "VideoTrackList.h"
     
    7374void HTMLVideoElementPictureInPicture::requestPictureInPicture(HTMLVideoElement& videoElement, Ref<DeferredPromise>&& promise)
    7475{
     76    if (!supportsPictureInPicture()) {
     77        promise->reject(NotSupportedError, "The Picture-in-Picture mode is not supported.");
     78        return;
     79    }
     80
    7581    if (videoElement.readyState() == HTMLMediaElementEnums::HAVE_NOTHING) {
    7682        promise->reject(InvalidStateError, "The video element is not ready to enter the Picture-in-Picture mode.");
  • trunk/Source/WebCore/PAL/ChangeLog

    r251630 r251834  
     12019-10-30  Peng Liu  <peng.liu6@apple.com>
     2
     3        [Picture-in-Picture Web API] Enable the support for iOS
     4        https://bugs.webkit.org/show_bug.cgi?id=202618
     5
     6        Reviewed by Jer Noble.
     7
     8        Enable the Picture-in-Picture API support for iOS (iPad only).
     9
     10        * Configurations/FeatureDefines.xcconfig:
     11
    1122019-10-26  Chris Lord  <clord@igalia.com>
    213
  • trunk/Source/WebCore/PAL/Configurations/FeatureDefines.xcconfig

    r251630 r251834  
    317317
    318318ENABLE_PICTURE_IN_PICTURE_API = $(ENABLE_PICTURE_IN_PICTURE_API_$(WK_PLATFORM_NAME));
     319ENABLE_PICTURE_IN_PICTURE_API_iphoneos = ENABLE_PICTURE_IN_PICTURE_API;
     320ENABLE_PICTURE_IN_PICTURE_API_iphonesimulator = ENABLE_PICTURE_IN_PICTURE_API;
    319321ENABLE_PICTURE_IN_PICTURE_API_macosx = ENABLE_PICTURE_IN_PICTURE_API;
    320322
  • trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj

    r251796 r251834  
    627627                1CCDF5BE1990332400BCEBAD /* SVGToOTFFontConversion.h in Headers */ = {isa = PBXBuildFile; fileRef = 1CCDF5BC1990332400BCEBAD /* SVGToOTFFontConversion.h */; };
    628628                1CFAE3230A6D6A3F0032593D /* libobjc.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 1CFAE3220A6D6A3F0032593D /* libobjc.dylib */; };
     629                1D2C82B7236A3F6A0055D6C5 /* PictureInPictureSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 1D2C82B6236A3F6A0055D6C5 /* PictureInPictureSupport.h */; settings = {ATTRIBUTES = (Private, ); }; };
    629630                1D2F8E03234474EF00993B68 /* DocumentPictureInPicture.h in Headers */ = {isa = PBXBuildFile; fileRef = 1DEF06DD233D2E1C00EE228D /* DocumentPictureInPicture.h */; settings = {ATTRIBUTES = (Private, ); }; };
    630631                1D2F8E042344751600993B68 /* EnterPictureInPictureEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 1DEF06CA233C3D0B00EE228D /* EnterPictureInPictureEvent.h */; settings = {ATTRIBUTES = (Private, ); }; };
     
    64606461                1CF0BFD42298706800ED2074 /* TextSizeAdjustment.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TextSizeAdjustment.cpp; sourceTree = "<group>"; };
    64616462                1CFAE3220A6D6A3F0032593D /* libobjc.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libobjc.dylib; path = /usr/lib/libobjc.dylib; sourceTree = "<absolute>"; };
     6463                1D2C82B6236A3F6A0055D6C5 /* PictureInPictureSupport.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PictureInPictureSupport.h; sourceTree = "<group>"; };
    64626464                1DBC1B552347B3D200B901AF /* PictureInPictureObserver.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PictureInPictureObserver.h; sourceTree = "<group>"; };
    64636465                1DC553FD211BA12A004B780E /* NavigatorShare.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = NavigatorShare.idl; sourceTree = "<group>"; };
     
    1214412146                AACC83D72316576A00EB6BF5 /* JSHTMLOrForeignElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = JSHTMLOrForeignElement.h; sourceTree = "<group>"; };
    1214512147                AACC83D82316576B00EB6BF5 /* JSHTMLOrForeignElement.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = JSHTMLOrForeignElement.cpp; sourceTree = "<group>"; };
    12146                 AAD9D0B121DFA80C001B11C7 /* LazyLoadImageObserver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LazyLoadImageObserver.cpp; sourceTree = "<group>"; };
    12147                 AAD9D0B321DFA80E001B11C7 /* LazyLoadImageObserver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LazyLoadImageObserver.h; sourceTree = "<group>"; };
    1214812148                AAE27B7416CBFC0D00623043 /* PlatformSpeechSynthesizerMock.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PlatformSpeechSynthesizerMock.cpp; sourceTree = "<group>"; };
    1214912149                AAE27B7516CBFC0D00623043 /* PlatformSpeechSynthesizerMock.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlatformSpeechSynthesizerMock.h; sourceTree = "<group>"; };
     
    2573725737                                1AF5E4D31E56735A004A1F01 /* PasteboardWriterData.h */,
    2573825738                                1DBC1B552347B3D200B901AF /* PictureInPictureObserver.h */,
     25739                                1D2C82B6236A3F6A0055D6C5 /* PictureInPictureSupport.h */,
    2573925740                                A14978701ABAF3A500CEF7E4 /* PlatformContentFilter.h */,
    2574025741                                BC5C76291497FE1400BC4775 /* PlatformEvent.h */,
     
    2902029021                                07B7116F1D899E63009F0FFB /* CaptureDeviceManager.h in Headers */,
    2902129022                                CDC734151977896D0046BFC5 /* CARingBuffer.h in Headers */,
     29023                                E4ABABF52368C6EF00FA4345 /* CascadeLevel.h in Headers */,
    2902229024                                57303BBB2006C6EE00355965 /* CBORBinary.h in Headers */,
    2902329025                                57303BC12006E00C00355965 /* CBORReader.h in Headers */,
     
    3022430226                                57D1352A2294AA3900827401 /* JSAuthenticationExtensionsClientInputs.h in Headers */,
    3022530227                                57303C2F2009B7E100355965 /* JSAuthenticatorAssertionResponse.h in Headers */,
    30226                                 E4ABABF32368B95900FA4345 /* StyleBuilderState.h in Headers */,
    3022730228                                57303C222009AF0300355965 /* JSAuthenticatorAttestationResponse.h in Headers */,
    3022830229                                57303BE120095D6100355965 /* JSAuthenticatorResponse.h in Headers */,
     
    3148931490                                49D5DC2E0F423A73008F20FD /* PerspectiveTransformOperation.h in Headers */,
    3149031491                                1DBC1B562347B3D200B901AF /* PictureInPictureObserver.h in Headers */,
     31492                                1D2C82B7236A3F6A0055D6C5 /* PictureInPictureSupport.h in Headers */,
    3149131493                                1D2F8E062344752300993B68 /* PictureInPictureWindow.h in Headers */,
    3149231494                                D0FF2A5E11F8C45A007E74E0 /* PingLoader.h in Headers */,
     
    3155331555                                37F567CE165358F400DDE92B /* PopupOpeningObserver.h in Headers */,
    3155431556                                93F199DE08245E59001E9ABC /* Position.h in Headers */,
    31555                                 E4ABABF52368C6EF00FA4345 /* CascadeLevel.h in Headers */,
    3155631557                                9746AF2C14F4DDE6003E7A70 /* PositionCallback.h in Headers */,
    3155731558                                9746AF3014F4DDE6003E7A70 /* PositionErrorCallback.h in Headers */,
     
    3214532146                                83B9687B19F8AB83004EF7AF /* StyleBuilderConverter.h in Headers */,
    3214632147                                835D363719FF6193004C93AB /* StyleBuilderCustom.h in Headers */,
     32148                                E4ABABF32368B95900FA4345 /* StyleBuilderState.h in Headers */,
    3214732149                                BCEF444D0E674628001C1287 /* StyleCachedImage.h in Headers */,
    3214832150                                E401E0A41C3C0B8300F34D10 /* StyleChange.h in Headers */,
  • trunk/Source/WebCore/html/HTMLMediaElement.cpp

    r251768 r251834  
    7575#include "Page.h"
    7676#include "PageGroup.h"
     77#include "PictureInPictureSupport.h"
    7778#include "PlatformMediaSessionManager.h"
    7879#include "ProgressTracker.h"
  • trunk/Source/WebCore/html/HTMLVideoElement.cpp

    r251745 r251834  
    4040#include "Logging.h"
    4141#include "Page.h"
     42#include "PictureInPictureSupport.h"
    4243#include "RenderImage.h"
    4344#include "RenderVideo.h"
     
    415416
    416417    if (mode == VideoPresentationMode::PictureInPicture) {
    417 #if PLATFORM(COCOA)
    418418        if (!supportsPictureInPicture())
    419419            return false;
    420 #endif
    421420
    422421        return supportsFullscreen(HTMLMediaElementEnums::VideoFullscreenModePictureInPicture);
  • trunk/Source/WebCore/platform/PictureInPictureSupport.h

    r251833 r251834  
    11/*
    2  * Copyright (C) 2019 Carlos Eduardo Ramalho <cadubentzen@gmail.com>.
    32 * Copyright (C) 2019 Apple Inc. All rights reserved.
    43 *
     
    2726#pragma once
    2827
    29 #if ENABLE(PICTURE_IN_PICTURE_API)
    30 
    31 #include "HTMLVideoElement.h"
    32 #include "Supplementable.h"
    33 #include <wtf/IsoMalloc.h>
    34 
    3528namespace WebCore {
    3629
    37 class DeferredPromise;
    38 class Document;
     30#if PLATFORM(IOS_FAMILY) || (PLATFORM(MAC) && ENABLE(VIDEO_PRESENTATION_MODE))
     31WEBCORE_EXPORT bool supportsPictureInPicture();
     32#else
     33constexpr bool supportsPictureInPicture() { return false; }
     34#endif
    3935
    40 class DocumentPictureInPicture : public Supplement<Document> {
    41     WTF_MAKE_ISO_ALLOCATED(DocumentPictureInPicture);
    42 public:
    43     virtual ~DocumentPictureInPicture();
    44 
    45     static bool pictureInPictureEnabled(Document&) { return true; }
    46     static void exitPictureInPicture(Document&, Ref<DeferredPromise>&&);
    47 
    48     static DocumentPictureInPicture* from(Document&);
    49 
    50 private:
    51     static const char* supplementName() { return "DocumentPictureInPicture"; };
    52 };
    53 
    54 } // namespace WebCore
    55 
    56 #endif // ENABLE(PICTURE_IN_PICTURE_API)
     36}
  • trunk/Source/WebCore/platform/cocoa/VideoFullscreenModel.h

    r247417 r251834  
    8686    virtual void modelDestroyed() { }
    8787};
    88 
    89 WEBCORE_EXPORT bool supportsPictureInPicture();
    9088   
    9189}
  • trunk/Source/WebCore/platform/graphics/cg/PathCG.cpp

    r249090 r251834  
    3636#include "StrokeStyleApplier.h"
    3737#include <CoreGraphics/CoreGraphics.h>
     38#include <pal/spi/cg/CoreGraphicsSPI.h>
    3839#include <wtf/MathExtras.h>
    3940#include <wtf/RetainPtr.h>
  • trunk/Source/WebCore/platform/ios/VideoFullscreenInterfaceAVKit.mm

    r247417 r251834  
    3333#import "GeometryUtilities.h"
    3434#import "Logging.h"
     35#import "PictureInPictureSupport.h"
    3536#import "PlaybackSessionInterfaceAVKit.h"
    3637#import "RuntimeApplicationChecks.h"
  • trunk/Source/WebCore/platform/mac/VideoFullscreenInterfaceMac.mm

    r243337 r251834  
    3131#import "IntRect.h"
    3232#import "Logging.h"
     33#import "PictureInPictureSupport.h"
    3334#import "PlaybackSessionInterfaceMac.h"
    3435#import "TimeRanges.h"
  • trunk/Source/WebKit/ChangeLog

    r251831 r251834  
     12019-10-30  Peng Liu  <peng.liu6@apple.com>
     2
     3        [Picture-in-Picture Web API] Enable the support for iOS
     4        https://bugs.webkit.org/show_bug.cgi?id=202618
     5
     6        Reviewed by Jer Noble.
     7
     8        Enable the Picture-in-Picture API support for iOS (iPad only).
     9
     10        * Configurations/FeatureDefines.xcconfig:
     11        * WebProcess/cocoa/VideoFullscreenManager.mm:
     12
    1132019-10-30  Alex Christensen  <achristensen@webkit.org>
    214
  • trunk/Source/WebKit/Configurations/FeatureDefines.xcconfig

    r251630 r251834  
    317317
    318318ENABLE_PICTURE_IN_PICTURE_API = $(ENABLE_PICTURE_IN_PICTURE_API_$(WK_PLATFORM_NAME));
     319ENABLE_PICTURE_IN_PICTURE_API_iphoneos = ENABLE_PICTURE_IN_PICTURE_API;
     320ENABLE_PICTURE_IN_PICTURE_API_iphonesimulator = ENABLE_PICTURE_IN_PICTURE_API;
    319321ENABLE_PICTURE_IN_PICTURE_API_macosx = ENABLE_PICTURE_IN_PICTURE_API;
    320322
  • trunk/Source/WebKit/WebProcess/cocoa/VideoFullscreenManager.mm

    r251445 r251834  
    4444#import <WebCore/FrameView.h>
    4545#import <WebCore/HTMLVideoElement.h>
     46#import <WebCore/PictureInPictureSupport.h>
    4647#import <WebCore/PlatformCALayer.h>
    4748#import <WebCore/RenderLayer.h>
  • trunk/Source/WebKitLegacy/mac/ChangeLog

    r251765 r251834  
     12019-10-30  Peng Liu  <peng.liu6@apple.com>
     2
     3        [Picture-in-Picture Web API] Enable the support for iOS
     4        https://bugs.webkit.org/show_bug.cgi?id=202618
     5
     6        Reviewed by Jer Noble.
     7
     8        Enable the Picture-in-Picture API support for iOS (iPad only).
     9
     10        * Configurations/FeatureDefines.xcconfig:
     11
    1122019-10-29  Andy Estes  <aestes@apple.com>
    213
  • trunk/Source/WebKitLegacy/mac/Configurations/FeatureDefines.xcconfig

    r251630 r251834  
    317317
    318318ENABLE_PICTURE_IN_PICTURE_API = $(ENABLE_PICTURE_IN_PICTURE_API_$(WK_PLATFORM_NAME));
     319ENABLE_PICTURE_IN_PICTURE_API_iphoneos = ENABLE_PICTURE_IN_PICTURE_API;
     320ENABLE_PICTURE_IN_PICTURE_API_iphonesimulator = ENABLE_PICTURE_IN_PICTURE_API;
    319321ENABLE_PICTURE_IN_PICTURE_API_macosx = ENABLE_PICTURE_IN_PICTURE_API;
    320322
  • trunk/Tools/ChangeLog

    r251831 r251834  
     12019-10-30  Peng Liu  <peng.liu6@apple.com>
     2
     3        [Picture-in-Picture Web API] Enable the support for iOS
     4        https://bugs.webkit.org/show_bug.cgi?id=202618
     5
     6        Reviewed by Jer Noble.
     7
     8        Enable the Picture-in-Picture API support for iOS (iPad only).
     9
     10        * TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
     11
    1122019-10-30  Alex Christensen  <achristensen@webkit.org>
    213
  • trunk/Tools/TestWebKitAPI/Configurations/FeatureDefines.xcconfig

    r251630 r251834  
    317317
    318318ENABLE_PICTURE_IN_PICTURE_API = $(ENABLE_PICTURE_IN_PICTURE_API_$(WK_PLATFORM_NAME));
     319ENABLE_PICTURE_IN_PICTURE_API_iphoneos = ENABLE_PICTURE_IN_PICTURE_API;
     320ENABLE_PICTURE_IN_PICTURE_API_iphonesimulator = ENABLE_PICTURE_IN_PICTURE_API;
    319321ENABLE_PICTURE_IN_PICTURE_API_macosx = ENABLE_PICTURE_IN_PICTURE_API;
    320322
Note: See TracChangeset for help on using the changeset viewer.