⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 185727 in webkit


Ignore:
Timestamp:
Jun 18, 2015, 4:42:22 PM (11 years ago)
Author:
jonlee@apple.com
Message:

Update AVKit usage of pip
https://bugs.webkit.org/show_bug.cgi?id=146095
<rdar://problem/21386853>

Reviewed by Eric Carlson.

Source/WebCore:

  • Rename enum VideoFullscreenModeOptimized to VideoFullscreenModePictureInPicture
  • Rename MediaElementSession::allowsAlternateFullscreen to allowsPictureInPicture
  • Rename Settings::allowsAlternateFullscreen to allowsPictureInPictureMediaPlayback
  • Update AVKit calls and AVKitSPI.h
  • Rename WebVideoFullscreenInterfaceAVKit delegate functions and member variables
  • html/HTMLMediaElement.cpp:
  • html/HTMLVideoElement.cpp:
  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::allowsPictureInPicture): Renamed.
(WebCore::MediaElementSession::allowsAlternateFullscreen): Deleted.

  • html/MediaElementSession.h:
  • page/Settings.cpp:
  • page/Settings.in:
  • platform/graphics/MediaPlayerEnums.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
  • platform/ios/WebVideoFullscreenControllerAVKit.mm:
  • platform/ios/WebVideoFullscreenInterfaceAVKit.h: Remove unused setIsOptimized.
  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
  • platform/spi/cocoa/AVKitSPI.h: Remove unused typedef.
  • platform/spi/mac/AVFoundationSPI.h:

Source/WebKit/mac:

  • Rename preference key
  • Rename shouldAllowAlternateFullscreen to shouldAllowPictureInPictureMediaPlayback
  • WebCoreSupport/WebSystemInterface.mm:
  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(-[WebPreferences allowsAlternateFullscreen]): Call allowsPictureInPictureMediaPlayback.
(-[WebPreferences setAllowsAlternateFullscreen:]):
(-[WebPreferences allowsPictureInPictureMediaPlayback]): Added.
(-[WebPreferences setAllowsPictureInPictureMediaPlayback:]):

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

Source/WebKit2:

  • Rename preference key
  • Rename shouldAllowAlternateFullscreen to shouldAllowPictureInPictureMediaPlayback
  • Shared/WebPreferencesDefinitions.h:
  • UIProcess/API/C/WKPreferences.cpp: Remove unused preference calls.

(WKPreferencesSetAllowsAlternateFullscreen): Deleted.
(WKPreferencesGetAllowsAlternateFullscreen): Deleted.

  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _isShowingVideoPictureInPicture]): Renamed.
(-[WKWebView _isShowingVideoOptimized]): Deleted.
(-[WKWebView _mayAutomaticallyShowVideoPictureInPicture]): Renamed.
(-[WKWebView _mayAutomaticallyShowVideoOptimized]): Deleted.
(shouldAllowPictureInPictureMediaPlayback): Renamed.
(shouldAllowAlternateFullscreen): Deleted.

  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/ios/PageClientImplIOS.mm:
  • UIProcess/ios/WebVideoFullscreenManagerProxy.h: Rename local variables.
  • UIProcess/ios/WebVideoFullscreenManagerProxy.messages.in:
  • UIProcess/ios/WebVideoFullscreenManagerProxy.mm:

(WebKit::WebVideoFullscreenManagerProxy::mayAutomaticallyShowVideoPictureInPicture): Renamed.
(WebKit::WebVideoFullscreenManagerProxy::mayAutomaticallyShowVideoOptimized): Deleted.

  • WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
  • WebProcess/WebPage/WebPage.cpp:
  • WebProcess/ios/WebVideoFullscreenManager.mm:
Location:
trunk/Source
Files:
31 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r185726 r185727  
     12015-06-18  Jon Lee  <jonlee@apple.com>
     2
     3        Update AVKit usage of pip
     4        https://bugs.webkit.org/show_bug.cgi?id=146095
     5        <rdar://problem/21386853>
     6
     7        Reviewed by Eric Carlson.
     8
     9        - Rename enum VideoFullscreenModeOptimized to VideoFullscreenModePictureInPicture
     10        - Rename MediaElementSession::allowsAlternateFullscreen to allowsPictureInPicture
     11        - Rename Settings::allowsAlternateFullscreen to allowsPictureInPictureMediaPlayback
     12        - Update AVKit calls and AVKitSPI.h
     13        - Rename WebVideoFullscreenInterfaceAVKit delegate functions and member variables
     14
     15        * html/HTMLMediaElement.cpp:
     16        * html/HTMLVideoElement.cpp:
     17        * html/MediaElementSession.cpp:
     18        (WebCore::MediaElementSession::allowsPictureInPicture): Renamed.
     19        (WebCore::MediaElementSession::allowsAlternateFullscreen): Deleted.
     20        * html/MediaElementSession.h:
     21        * page/Settings.cpp:
     22        * page/Settings.in:
     23        * platform/graphics/MediaPlayerEnums.h:
     24        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
     25        * platform/ios/WebVideoFullscreenControllerAVKit.mm:
     26        * platform/ios/WebVideoFullscreenInterfaceAVKit.h: Remove unused setIsOptimized.
     27        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
     28        * platform/spi/cocoa/AVKitSPI.h: Remove unused typedef.
     29        * platform/spi/mac/AVFoundationSPI.h:
     30
    1312015-06-18  Jeremy Jones  <jeremyj@apple.com>
    232
  • trunk/Source/WebCore/html/HTMLMediaElement.cpp

    r185514 r185727  
    62136213    if (m_videoFullscreenMode == VideoFullscreenModeStandard)
    62146214        return PlatformMediaSession::Fullscreen;
    6215     if (m_videoFullscreenMode & VideoFullscreenModeOptimized)
     6215    if (m_videoFullscreenMode & VideoFullscreenModePictureInPicture)
    62166216        return PlatformMediaSession::Optimized;
    62176217    if (m_videoFullscreenMode == VideoFullscreenModeNone)
     
    62866286        return true;
    62876287#endif
    6288     if (m_videoFullscreenMode & VideoFullscreenModeOptimized)
     6288    if (m_videoFullscreenMode & VideoFullscreenModePictureInPicture)
    62896289        return true;
    62906290#if PLATFORM(IOS)
  • trunk/Source/WebCore/html/HTMLVideoElement.cpp

    r185446 r185727  
    370370
    371371    if (mode == presentationModePictureInPicture())
    372         return wkIsOptimizedFullscreenSupported() && mediaSession().allowsAlternateFullscreen(*this) && supportsFullscreen();
     372        return wkIsOptimizedFullscreenSupported() && mediaSession().allowsPictureInPicture(*this) && supportsFullscreen();
    373373
    374374    if (mode == presentationModeInline())
     
    393393        enterFullscreen(VideoFullscreenModeStandard);
    394394    else if (mode == presentationModePictureInPicture())
    395         enterFullscreen(VideoFullscreenModeOptimized);
     395        enterFullscreen(VideoFullscreenModePictureInPicture);
    396396}
    397397
     
    403403        return presentationModeFullscreen();
    404404
    405     if (mode & VideoFullscreenModeOptimized)
     405    if (mode & VideoFullscreenModePictureInPicture)
    406406        return presentationModePictureInPicture();
    407407
  • trunk/Source/WebCore/html/MediaElementSession.cpp

    r185223 r185727  
    380380}
    381381
    382 bool MediaElementSession::allowsAlternateFullscreen(const HTMLMediaElement& element) const
     382bool MediaElementSession::allowsPictureInPicture(const HTMLMediaElement& element) const
    383383{
    384384    Settings* settings = element.document().settings();
    385     return settings && settings->allowsAlternateFullscreen();
     385    return settings && settings->allowsPictureInPictureMediaPlayback();
    386386}
    387387
  • trunk/Source/WebCore/html/MediaElementSession.h

    r185120 r185727  
    7070
    7171    bool requiresFullscreenForVideoPlayback(const HTMLMediaElement&) const;
    72     WEBCORE_EXPORT bool allowsAlternateFullscreen(const HTMLMediaElement&) const;
     72    WEBCORE_EXPORT bool allowsPictureInPicture(const HTMLMediaElement&) const;
    7373    MediaPlayer::Preload effectivePreloadForElement(const HTMLMediaElement&) const;
    7474
  • trunk/Source/WebCore/page/Settings.cpp

    r185333 r185727  
    148148#endif
    149149
    150 static const bool defaultAllowsAlternateFullscreen = true;
     150static const bool defaultAllowsPictureInPictureMediaPlayback = true;
    151151
    152152static const double defaultIncrementalRenderingSuppressionTimeoutInSeconds = 5;
  • trunk/Source/WebCore/page/Settings.in

    r184813 r185727  
    129129audioPlaybackRequiresUserGesture initial=defaultAudioPlaybackRequiresUserGesture
    130130allowsInlineMediaPlayback initial=defaultAllowsInlineMediaPlayback
    131 allowsAlternateFullscreen initial=defaultAllowsAlternateFullscreen
     131allowsPictureInPictureMediaPlayback initial=defaultAllowsPictureInPictureMediaPlayback
    132132passwordEchoEnabled initial=false
    133133suppressesIncrementalRendering initial=false
  • trunk/Source/WebCore/platform/graphics/MediaPlayerEnums.h

    r184670 r185727  
    3939        VideoFullscreenModeNone = 0,
    4040        VideoFullscreenModeStandard = 1 << 0,
    41         VideoFullscreenModeOptimized = 1 << 1,
     41        VideoFullscreenModePictureInPicture = 1 << 1,
    4242    };
    4343    typedef uint32_t VideoFullscreenMode;
  • trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm

    r185580 r185727  
    694694        [m_videoLayer setFrame:m_videoInlineLayer.get().bounds];
    695695    }
    696     if ([m_videoLayer respondsToSelector:@selector(setEnterOptimizedFullscreenModeEnabled:)])
    697         [m_videoLayer setEnterOptimizedFullscreenModeEnabled:(player()->fullscreenMode() & MediaPlayer::VideoFullscreenModeOptimized)];
     696    if ([m_videoLayer respondsToSelector:@selector(setPIPModeEnabled:)])
     697        [m_videoLayer setPIPModeEnabled:(player()->fullscreenMode() & MediaPlayer::VideoFullscreenModePictureInPicture)];
    698698#else
    699699    [m_videoLayer setFrame:CGRectMake(0, 0, defaultSize.width(), defaultSize.height())];
     
    11871187void MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenMode(MediaPlayer::VideoFullscreenMode mode)
    11881188{
    1189     if (m_videoLayer && [m_videoLayer respondsToSelector:@selector(setEnterOptimizedFullscreenModeEnabled:)])
    1190         [m_videoLayer setEnterOptimizedFullscreenModeEnabled:(mode & MediaPlayer::VideoFullscreenModeOptimized)];
     1189    if (m_videoLayer && [m_videoLayer respondsToSelector:@selector(setPIPModeEnabled:)])
     1190        [m_videoLayer setPIPModeEnabled:(mode & MediaPlayer::VideoFullscreenModePictureInPicture)];
    11911191}
    11921192
  • trunk/Source/WebCore/platform/ios/WebVideoFullscreenControllerAVKit.mm

    r185726 r185727  
    519519        m_videoFullscreenLayer = [CALayer layer];
    520520       
    521         bool allowsAlternateFullscreen = m_videoElement->mediaSession().allowsAlternateFullscreen(*m_videoElement.get());
     521        bool allowsPictureInPicture = m_videoElement->mediaSession().allowsPictureInPicture(*m_videoElement.get());
    522522        IntRect videoElementClientRect = m_videoElement->clientRect();
    523523       
    524         dispatch_async(dispatch_get_main_queue(), [strongThis, this, videoElementClientRect, viewRef, mode, allowsAlternateFullscreen] {
    525             m_interface->setupFullscreen(*m_videoFullscreenLayer.get(), videoElementClientRect, viewRef.get(), mode, allowsAlternateFullscreen);
     524        dispatch_async(dispatch_get_main_queue(), [strongThis, this, videoElementClientRect, viewRef, mode, allowsPictureInPicture] {
     525            m_interface->setupFullscreen(*m_videoFullscreenLayer.get(), videoElementClientRect, viewRef.get(), mode, allowsPictureInPicture);
    526526        });
    527527    });
  • trunk/Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.h

    r184922 r185727  
    9292    WEBCORE_EXPORT virtual void setExternalPlayback(bool enabled, ExternalPlaybackTargetType, WTF::String localizedDeviceName) override;
    9393   
    94     WEBCORE_EXPORT virtual void setupFullscreen(PlatformLayer&, const IntRect& initialRect, UIView *, HTMLMediaElementEnums::VideoFullscreenMode, bool allowOptimizedFullscreen);
     94    WEBCORE_EXPORT virtual void setupFullscreen(PlatformLayer&, const IntRect& initialRect, UIView *, HTMLMediaElementEnums::VideoFullscreenMode, bool allowsPictureInPicturePlayback);
    9595    WEBCORE_EXPORT virtual void enterFullscreen();
    9696    WEBCORE_EXPORT virtual void exitFullscreen(const IntRect& finalRect);
     
    101101
    102102    HTMLMediaElementEnums::VideoFullscreenMode mode() const { return m_mode; }
    103     bool allowOptimizedFullscreen() const { return m_allowOptimizedFullscreen; }
    104     void setIsOptimized(bool);
    105     WEBCORE_EXPORT bool mayAutomaticallyShowVideoOptimized() const;
     103    bool allowsPictureInPicturePlayback() const { return m_allowsPictureInPicturePlayback; }
     104    WEBCORE_EXPORT bool mayAutomaticallyShowVideoPictureInPicture() const;
    106105    void fullscreenMayReturnToInline(std::function<void(bool)> callback);
    107106
    108     void willStartOptimizedFullscreen();
    109     void didStartOptimizedFullscreen();
    110     void failedToStartOptimizedFullscreen();
    111     void willStopOptimizedFullscreen();
    112     void didStopOptimizedFullscreen();
    113     void prepareForOptimizedFullscreenStopWithCompletionHandler(void (^)(BOOL));
     107    void willStartPictureInPicture();
     108    void didStartPictureInPicture();
     109    void failedToStartPictureInPicture();
     110    void willStopPictureInPicture();
     111    void didStopPictureInPicture();
     112    void prepareForPictureInPictureStopWithCompletionHandler(void (^)(BOOL));
    114113
    115114    void setMode(HTMLMediaElementEnums::VideoFullscreenMode);
     
    121120    WEBCORE_EXPORT WebVideoFullscreenInterfaceAVKit();
    122121    void beginSession();
    123     void enterFullscreenOptimized();
     122    void enterPictureInPicture();
    124123    void enterFullscreenStandard();
    125124
     
    139138    HTMLMediaElementEnums::VideoFullscreenMode m_mode { HTMLMediaElementEnums::VideoFullscreenModeNone };
    140139    std::function<void(bool)> m_prepareToInlineCallback;
    141     bool m_allowOptimizedFullscreen { false };
     140    bool m_allowsPictureInPicturePlayback { false };
    142141    bool m_exitRequested { false };
    143142    bool m_exitCompleted { false };
  • trunk/Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm

    r184922 r185727  
    192192}
    193193
    194 - (void)playerViewControllerWillStartOptimizedFullscreen:(AVPlayerViewController *)playerViewController
     194- (void)playerViewControllerWillStartPictureInPicture:(AVPlayerViewController *)playerViewController
    195195{
    196196    UNUSED_PARAM(playerViewController);
    197     self.fullscreenInterface->willStartOptimizedFullscreen();
    198 }
    199 
    200 - (void)playerViewControllerDidStartOptimizedFullscreen:(AVPlayerViewController *)playerViewController
     197    self.fullscreenInterface->willStartPictureInPicture();
     198}
     199
     200- (void)playerViewControllerDidStartPictureInPicture:(AVPlayerViewController *)playerViewController
    201201{
    202202    UNUSED_PARAM(playerViewController);
    203     self.fullscreenInterface->didStartOptimizedFullscreen();
    204 }
    205 
    206 - (void)playerViewControllerFailedToStartOptimizedFullscreen:(AVPlayerViewController *)playerViewController withError:(NSError *)error
     203    self.fullscreenInterface->didStartPictureInPicture();
     204}
     205
     206- (void)playerViewControllerFailedToStartPictureInPicture:(AVPlayerViewController *)playerViewController withError:(NSError *)error
    207207{
    208208    UNUSED_PARAM(playerViewController);
    209209    UNUSED_PARAM(error);
    210     self.fullscreenInterface->failedToStartOptimizedFullscreen();
    211 }
    212 
    213 - (void)playerViewControllerWillStopOptimizedFullscreen:(AVPlayerViewController *)playerViewController
     210    self.fullscreenInterface->failedToStartPictureInPicture();
     211}
     212
     213- (void)playerViewControllerWillStopPictureInPicture:(AVPlayerViewController *)playerViewController
    214214{
    215215    UNUSED_PARAM(playerViewController);
    216     self.fullscreenInterface->willStopOptimizedFullscreen();
    217 }
    218 
    219 - (void)playerViewControllerDidStopOptimizedFullscreen:(AVPlayerViewController *)playerViewController
     216    self.fullscreenInterface->willStopPictureInPicture();
     217}
     218
     219- (void)playerViewControllerDidStopPictureInPicture:(AVPlayerViewController *)playerViewController
    220220{
    221221    UNUSED_PARAM(playerViewController);
    222     self.fullscreenInterface->didStopOptimizedFullscreen();
     222    self.fullscreenInterface->didStopPictureInPicture();
    223223}
    224224
     
    237237}
    238238
    239 - (void)playerViewController:(AVPlayerViewController *)playerViewController restoreUserInterfaceForOptimizedFullscreenStopWithCompletionHandler:(void (^)(BOOL restored))completionHandler
     239- (void)playerViewController:(AVPlayerViewController *)playerViewController restoreUserInterfaceForPictureInPictureStopWithCompletionHandler:(void (^)(BOOL restored))completionHandler
    240240{
    241241    UNUSED_PARAM(playerViewController);
    242     self.fullscreenInterface->prepareForOptimizedFullscreenStopWithCompletionHandler(completionHandler);
     242    self.fullscreenInterface->prepareForPictureInPictureStopWithCompletionHandler(completionHandler);
    243243}
    244244
     
    548548}
    549549
    550 - (BOOL)isOptimizedFullscreenPossible
    551 {
    552     return self.fullscreenInterface->allowOptimizedFullscreen();
     550- (BOOL)isPictureInPicturePossible
     551{
     552    return self.fullscreenInterface->allowsPictureInPicturePlayback();
    553553}
    554554@end
     
    877877}
    878878
    879 void WebVideoFullscreenInterfaceAVKit::setupFullscreen(PlatformLayer& videoLayer, const WebCore::IntRect& initialRect, UIView* parentView, HTMLMediaElementEnums::VideoFullscreenMode mode, bool allowOptimizedFullscreen)
     879void WebVideoFullscreenInterfaceAVKit::setupFullscreen(PlatformLayer& videoLayer, const WebCore::IntRect& initialRect, UIView* parentView, HTMLMediaElementEnums::VideoFullscreenMode mode, bool allowsPictureInPicturePlayback)
    880880{
    881881    ASSERT(mode != HTMLMediaElementEnums::VideoFullscreenModeNone);
    882882    LOG(Fullscreen, "WebVideoFullscreenInterfaceAVKit::setupFullscreen(%p)", this);
    883883
    884     m_allowOptimizedFullscreen = allowOptimizedFullscreen;
     884    m_allowsPictureInPicturePlayback = allowsPictureInPicturePlayback;
    885885
    886886    [CATransaction begin];
     
    920920    [m_playerViewController setPlayerController:(AVPlayerController *)m_playerController.get()];
    921921    [m_playerViewController setDelegate:m_playerController.get()];
    922     [m_playerViewController setAllowsOptimizedFullscreen:allowOptimizedFullscreen];
     922    [m_playerViewController setAllowsPictureInPicturePlayback:m_allowsPictureInPicturePlayback];
    923923
    924924    [m_videoLayerContainer setPlayerViewController:m_playerViewController.get()];
     
    952952
    953953    [m_videoLayerContainer setBackgroundColor:[[getUIColorClass() blackColor] CGColor]];
    954     if (mode() == HTMLMediaElementEnums::VideoFullscreenModeOptimized)
    955         enterFullscreenOptimized();
     954    if (mode() == HTMLMediaElementEnums::VideoFullscreenModePictureInPicture)
     955        enterPictureInPicture();
    956956    else if (mode() == HTMLMediaElementEnums::VideoFullscreenModeStandard)
    957957        enterFullscreenStandard();
     
    960960}
    961961
    962 void WebVideoFullscreenInterfaceAVKit::enterFullscreenOptimized()
    963 {
    964     LOG(Fullscreen, "WebVideoFullscreenInterfaceAVKit::enterFullscreenOptimized(%p)", this);
    965    
    966     if ([m_playerViewController isOptimizedFullscreenPossible])
    967         [m_playerViewController startOptimizedFullscreen];
     962void WebVideoFullscreenInterfaceAVKit::enterPictureInPicture()
     963{
     964    LOG(Fullscreen, "WebVideoFullscreenInterfaceAVKit::enterPictureInPicture(%p)", this);
     965   
     966    if ([m_playerViewController isPictureInPicturePossible])
     967        [m_playerViewController startPictureInPicture];
    968968    else
    969         failedToStartOptimizedFullscreen();
     969        failedToStartPictureInPicture();
    970970}
    971971
     
    10051005
    10061006
    1007     if (isMode(HTMLMediaElementEnums::VideoFullscreenModeOptimized)) {
     1007    if (isMode(HTMLMediaElementEnums::VideoFullscreenModePictureInPicture)) {
    10081008        [m_window setHidden:NO];
    1009         [m_playerViewController stopOptimizedFullscreen];
    1010     } else if (isMode(HTMLMediaElementEnums::VideoFullscreenModeOptimized | HTMLMediaElementEnums::VideoFullscreenModeStandard)) {
     1009        [m_playerViewController stopPictureInPicture];
     1010    } else if (isMode(HTMLMediaElementEnums::VideoFullscreenModePictureInPicture | HTMLMediaElementEnums::VideoFullscreenModeStandard)) {
    10111011        RefPtr<WebVideoFullscreenInterfaceAVKit> strongThis(this);
    10121012        [m_playerViewController exitFullScreenAnimated:NO completionHandler:[strongThis, this] (BOOL, NSError*) {
    10131013            [m_window setHidden:NO];
    1014             [m_playerViewController stopOptimizedFullscreen];
     1014            [m_playerViewController stopPictureInPicture];
    10151015        }];
    10161016    } else if (isMode(HTMLMediaElementEnums::VideoFullscreenModeStandard)) {
     
    10551055    [m_playerViewController setPlayerController:nil];
    10561056   
    1057     if (hasMode(HTMLMediaElementEnums::VideoFullscreenModeOptimized))
    1058         [m_playerViewController stopOptimizedFullscreen];
     1057    if (hasMode(HTMLMediaElementEnums::VideoFullscreenModePictureInPicture))
     1058        [m_playerViewController stopPictureInPicture];
    10591059    if (hasMode(HTMLMediaElementEnums::VideoFullscreenModeStandard))
    10601060        [m_playerViewController exitFullScreenAnimated:NO completionHandler:[] (BOOL, NSError *) { }];
     
    11001100        return;
    11011101   
    1102     if (hasMode(HTMLMediaElementEnums::VideoFullscreenModeOptimized))
     1102    if (hasMode(HTMLMediaElementEnums::VideoFullscreenModePictureInPicture))
    11031103        return;
    11041104   
     
    11281128}
    11291129
    1130 bool WebVideoFullscreenInterfaceAVKit::mayAutomaticallyShowVideoOptimized() const
     1130bool WebVideoFullscreenInterfaceAVKit::mayAutomaticallyShowVideoPictureInPicture() const
    11311131{
    11321132    return [m_playerController isPlaying] && m_mode == HTMLMediaElementEnums::VideoFullscreenModeStandard && wkIsOptimizedFullscreenSupported();
     
    11401140}
    11411141
    1142 void WebVideoFullscreenInterfaceAVKit::willStartOptimizedFullscreen()
    1143 {
    1144     LOG(Fullscreen, "WebVideoFullscreenInterfaceAVKit::willStartOptimizedFullscreen(%p)", this);
    1145     setMode(HTMLMediaElementEnums::VideoFullscreenModeOptimized);
     1142void WebVideoFullscreenInterfaceAVKit::willStartPictureInPicture()
     1143{
     1144    LOG(Fullscreen, "WebVideoFullscreenInterfaceAVKit::willStartPictureInPicture(%p)", this);
     1145    setMode(HTMLMediaElementEnums::VideoFullscreenModePictureInPicture);
    11461146
    11471147    if (!hasMode(HTMLMediaElementEnums::VideoFullscreenModeStandard))
     
    11501150    RefPtr<WebVideoFullscreenInterfaceAVKit> strongThis(this);
    11511151    fullscreenMayReturnToInline([strongThis, this](bool visible) {
    1152         LOG(Fullscreen, "WebVideoFullscreenInterfaceAVKit::willStartOptimizedFullscreen - lambda(%p) - visible(%s)", this, boolString(visible));
     1152        LOG(Fullscreen, "WebVideoFullscreenInterfaceAVKit::willStartPictureInPicture - lambda(%p) - visible(%s)", this, boolString(visible));
    11531153
    11541154        if (!visible) {
     
    11681168}
    11691169
    1170 void WebVideoFullscreenInterfaceAVKit::didStartOptimizedFullscreen()
    1171 {
    1172     LOG(Fullscreen, "WebVideoFullscreenInterfaceAVKit::didStartOptimizedFullscreen(%p)", this);
     1170void WebVideoFullscreenInterfaceAVKit::didStartPictureInPicture()
     1171{
     1172    LOG(Fullscreen, "WebVideoFullscreenInterfaceAVKit::didStartPictureInPicture(%p)", this);
    11731173    [m_playerViewController setShowsPlaybackControls:YES];
    11741174    [m_window setHidden:YES];
     
    11781178}
    11791179
    1180 void WebVideoFullscreenInterfaceAVKit::failedToStartOptimizedFullscreen()
    1181 {
    1182     LOG(Fullscreen, "WebVideoFullscreenInterfaceAVKit::failedToStartOptimizedFullscreen(%p)", this);
     1180void WebVideoFullscreenInterfaceAVKit::failedToStartPictureInPicture()
     1181{
     1182    LOG(Fullscreen, "WebVideoFullscreenInterfaceAVKit::failedToStartPictureInPicture(%p)", this);
    11831183    [m_playerViewController setShowsPlaybackControls:YES];
    11841184
     
    11951195}
    11961196
    1197 void WebVideoFullscreenInterfaceAVKit::willStopOptimizedFullscreen()
    1198 {
    1199     LOG(Fullscreen, "WebVideoFullscreenInterfaceAVKit::willStopOptimizedFullscreen(%p)", this);
     1197void WebVideoFullscreenInterfaceAVKit::willStopPictureInPicture()
     1198{
     1199    LOG(Fullscreen, "WebVideoFullscreenInterfaceAVKit::willStopPictureInPicture(%p)", this);
    12001200    [m_window setHidden:NO];
    12011201
     
    12041204}
    12051205
    1206 void WebVideoFullscreenInterfaceAVKit::didStopOptimizedFullscreen()
    1207 {
    1208     LOG(Fullscreen, "WebVideoFullscreenInterfaceAVKit::didStopOptimizedFullscreen(%p)", this);
     1206void WebVideoFullscreenInterfaceAVKit::didStopPictureInPicture()
     1207{
     1208    LOG(Fullscreen, "WebVideoFullscreenInterfaceAVKit::didStopPictureInPicture(%p)", this);
    12091209    if (hasMode(HTMLMediaElementEnums::VideoFullscreenModeStandard))
    12101210        return;
     
    12151215    [[m_playerViewController view] setBackgroundColor:[getUIColorClass() clearColor]];
    12161216
    1217     clearMode(HTMLMediaElementEnums::VideoFullscreenModeOptimized);
     1217    clearMode(HTMLMediaElementEnums::VideoFullscreenModePictureInPicture);
    12181218    [m_window setHidden:YES];
    12191219   
     
    12221222}
    12231223
    1224 void WebVideoFullscreenInterfaceAVKit::prepareForOptimizedFullscreenStopWithCompletionHandler(void (^completionHandler)(BOOL restored))
    1225 {
    1226     LOG(Fullscreen, "WebVideoFullscreenInterfaceAVKit::prepareForOptimizedFullscreenStopWithCompletionHandler(%p)", this);
     1224void WebVideoFullscreenInterfaceAVKit::prepareForPictureInPictureStopWithCompletionHandler(void (^completionHandler)(BOOL restored))
     1225{
     1226    LOG(Fullscreen, "WebVideoFullscreenInterfaceAVKit::prepareForPictureInPictureStopWithCompletionHandler(%p)", this);
    12271227    RefPtr<WebVideoFullscreenInterfaceAVKit> strongThis(this);
    12281228    RetainPtr<id> strongCompletionHandler = adoptNS([completionHandler copy]);
    12291229    fullscreenMayReturnToInline([strongThis, strongCompletionHandler](bool restored)  {
    1230         LOG(Fullscreen, "WebVideoFullscreenInterfaceAVKit::prepareForOptimizedFullscreenStopWithCompletionHandler lambda(%p) - restored(%s)", strongThis.get(), boolString(restored));
     1230        LOG(Fullscreen, "WebVideoFullscreenInterfaceAVKit::prepareForPictureInPictureStopWithCompletionHandler lambda(%p) - restored(%s)", strongThis.get(), boolString(restored));
    12311231        void (^completionHandler)(BOOL restored) = strongCompletionHandler.get();
    12321232        completionHandler(restored);
  • trunk/Source/WebCore/platform/spi/cocoa/AVKitSPI.h

    r184907 r185727  
    7979};
    8080- (BOOL)playerViewController:(AVPlayerViewController *)playerViewController shouldExitFullScreenWithReason:(AVPlayerViewControllerExitFullScreenReason)reason;
    81 - (void)playerViewController:(AVPlayerViewController *)playerViewController restoreUserInterfaceForOptimizedFullscreenStopWithCompletionHandler:(void (^)(BOOL restored))completionHandler;
     81- (void)playerViewController:(AVPlayerViewController *)playerViewController restoreUserInterfaceForPictureInPictureStopWithCompletionHandler:(void (^)(BOOL restored))completionHandler;
    8282@end
    83 
    84 typedef NSInteger AVPlayerViewControllerOptimizedFullscreenStopReason;
    8583
    8684@interface AVPlayerViewController (Details)
     
    8987- (void)exitFullScreenAnimated:(BOOL)animated completionHandler:(void (^)(BOOL success, NSError *))completionHandler;
    9088
    91 - (BOOL)isOptimizedFullscreenPossible;
    92 - (void)startOptimizedFullscreen;
    93 - (void)stopOptimizedFullscreen;
    94 - (void)setAllowsOptimizedFullscreen:(BOOL)allowsOptimizedFullscreen;
     89- (BOOL)isPictureInPicturePossible;
     90- (void)startPictureInPicture;
     91- (void)stopPictureInPicture;
     92- (void)setAllowsPictureInPicturePlayback:(BOOL)allow;
    9593
    9694@property (nonatomic, strong) AVPlayerController *playerController;
  • trunk/Source/WebCore/platform/spi/mac/AVFoundationSPI.h

    r185153 r185727  
    6767#if !HAVE(AVKIT) || !USE(APPLE_INTERNAL_SDK) || __IPHONE_OS_VERSION_MIN_REQUIRED < 90000
    6868
    69 @interface AVPlayerLayer (AVPlayerLayerOptimizedFullscreenModeSupportPrivate)
    70 - (void)setEnterOptimizedFullscreenModeEnabled:(BOOL)flag;
     69@interface AVPlayerLayer (AVPlayerLayerPictureInPictureModeSupportPrivate)
     70- (void)setPIPModeEnabled:(BOOL)flag;
    7171@end
    7272
  • trunk/Source/WebKit/mac/ChangeLog

    r185721 r185727  
     12015-06-18  Jon Lee  <jonlee@apple.com>
     2
     3        Update AVKit usage of pip
     4        https://bugs.webkit.org/show_bug.cgi?id=146095
     5        <rdar://problem/21386853>
     6
     7        Reviewed by Eric Carlson.
     8
     9        - Rename preference key
     10        - Rename shouldAllowAlternateFullscreen to shouldAllowPictureInPictureMediaPlayback
     11
     12        * WebCoreSupport/WebSystemInterface.mm:
     13        * WebView/WebPreferenceKeysPrivate.h:
     14        * WebView/WebPreferences.mm:
     15        (-[WebPreferences allowsAlternateFullscreen]): Call allowsPictureInPictureMediaPlayback.
     16        (-[WebPreferences setAllowsAlternateFullscreen:]):
     17        (-[WebPreferences allowsPictureInPictureMediaPlayback]): Added.
     18        (-[WebPreferences setAllowsPictureInPictureMediaPlayback:]):
     19        * WebView/WebPreferencesPrivate.h:
     20        * WebView/WebView.mm:
     21
    1222015-06-18  Anders Carlsson  <andersca@apple.com>
    223
  • trunk/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h

    r184946 r185727  
    122122#define WebKitRequiresUserGestureForMediaPlaybackPreferenceKey @"WebKitMediaPlaybackRequiresUserGesture"
    123123#define WebKitAllowsInlineMediaPlaybackPreferenceKey @"WebKitMediaPlaybackAllowsInline"
    124 #define WebKitAllowsAlternateFullscreenPreferenceKey @"WebKitAllowsAlternateFullscreen"
     124#define WebKitAllowsPictureInPictureMediaPlaybackPreferenceKey @"WebKitAllowsPictureInPictureMediaPlayback"
    125125#define WebKitAllowsAirPlayForMediaPlaybackPreferenceKey @"WebKitMediaPlaybackAllowsAirPlay"
    126126#define WebKitMockScrollbarsEnabledPreferenceKey @"WebKitMockScrollbarsEnabled"
  • trunk/Source/WebKit/mac/WebView/WebPreferences.mm

    r185308 r185727  
    547547        [NSNumber numberWithBool:YES],  WebKitAllowsAirPlayForMediaPlaybackPreferenceKey,
    548548#endif
    549         [NSNumber numberWithBool:YES],  WebKitAllowsAlternateFullscreenPreferenceKey,
     549        [NSNumber numberWithBool:YES],  WebKitAllowsPictureInPictureMediaPlaybackPreferenceKey,
    550550        [NSNumber numberWithBool:YES],  WebKitRequestAnimationFrameEnabledPreferenceKey,
    551551        [NSNumber numberWithBool:NO],   WebKitWantsBalancedSetDefersLoadingBehaviorKey,
     
    21982198- (BOOL)allowsAlternateFullscreen
    21992199{
    2200     return [self _boolValueForKey:WebKitAllowsAlternateFullscreenPreferenceKey];
     2200    return [self allowsPictureInPictureMediaPlayback];
    22012201}
    22022202
    22032203- (void)setAllowsAlternateFullscreen:(BOOL)flag
    22042204{
    2205     [self _setBoolValue:flag forKey:WebKitAllowsAlternateFullscreenPreferenceKey];
     2205    [self setAllowsPictureInPictureMediaPlayback:flag];
     2206}
     2207
     2208- (BOOL)allowsPictureInPictureMediaPlayback
     2209{
     2210    return [self _boolValueForKey:WebKitAllowsPictureInPictureMediaPlaybackPreferenceKey];
     2211}
     2212
     2213- (void)setAllowsPictureInPictureMediaPlayback:(BOOL)flag
     2214{
     2215    [self _setBoolValue:flag forKey:WebKitAllowsPictureInPictureMediaPlaybackPreferenceKey];
    22062216}
    22072217
  • trunk/Source/WebKit/mac/WebView/WebPreferencesPrivate.h

    r183682 r185727  
    254254- (BOOL)allowsAlternateFullscreen;
    255255
     256- (void)setAllowsPictureInPictureMediaPlayback:(BOOL)flag;
     257- (BOOL)allowsPictureInPictureMediaPlayback;
     258
    256259- (NSString *)pictographFontFamily;
    257260- (void)setPictographFontFamily:(NSString *)family;
  • trunk/Source/WebKit/mac/WebView/WebView.mm

    r185487 r185727  
    852852}
    853853
    854 static bool shouldAllowAlternateFullscreen()
     854static bool shouldAllowPictureInPictureMediaPlayback()
    855855{
    856856#if PLATFORM(IOS) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 90000
    857     static bool shouldAllowAlternateFullscreen = iosExecutableWasLinkedOnOrAfterVersion(wkIOSSystemVersion_9_0);
    858     return shouldAllowAlternateFullscreen;
     857    static bool shouldAllowPictureInPictureMediaPlayback = iosExecutableWasLinkedOnOrAfterVersion(wkIOSSystemVersion_9_0);
     858    return shouldAllowPictureInPictureMediaPlayback;
    859859#else
    860860    return false;
     
    22952295    settings.setRequiresUserGestureForMediaPlayback([preferences mediaPlaybackRequiresUserGesture]);
    22962296    settings.setAllowsInlineMediaPlayback([preferences mediaPlaybackAllowsInline]);
    2297     settings.setAllowsAlternateFullscreen([preferences allowsAlternateFullscreen] && shouldAllowAlternateFullscreen());
     2297    settings.setAllowsPictureInPictureMediaPlayback([preferences allowsPictureInPictureMediaPlayback] && shouldAllowPictureInPictureMediaPlayback());
    22982298    settings.setSuppressesIncrementalRendering([preferences suppressesIncrementalRendering]);
    22992299    settings.setBackspaceKeyNavigationEnabled([preferences backspaceKeyNavigationEnabled]);
  • trunk/Source/WebKit2/ChangeLog

    r185726 r185727  
     12015-06-18  Jon Lee  <jonlee@apple.com>
     2
     3        Update AVKit usage of pip
     4        https://bugs.webkit.org/show_bug.cgi?id=146095
     5        <rdar://problem/21386853>
     6
     7        Reviewed by Eric Carlson.
     8
     9        - Rename preference key
     10        - Rename shouldAllowAlternateFullscreen to shouldAllowPictureInPictureMediaPlayback
     11
     12        * Shared/WebPreferencesDefinitions.h:
     13        * UIProcess/API/C/WKPreferences.cpp: Remove unused preference calls.
     14        (WKPreferencesSetAllowsAlternateFullscreen): Deleted.
     15        (WKPreferencesGetAllowsAlternateFullscreen): Deleted.
     16        * UIProcess/API/C/WKPreferencesRefPrivate.h:
     17        * UIProcess/API/Cocoa/WKWebView.mm:
     18        (-[WKWebView _isShowingVideoPictureInPicture]): Renamed.
     19        (-[WKWebView _isShowingVideoOptimized]): Deleted.
     20        (-[WKWebView _mayAutomaticallyShowVideoPictureInPicture]): Renamed.
     21        (-[WKWebView _mayAutomaticallyShowVideoOptimized]): Deleted.
     22        (shouldAllowPictureInPictureMediaPlayback): Renamed.
     23        (shouldAllowAlternateFullscreen): Deleted.
     24        * UIProcess/API/Cocoa/WKWebViewInternal.h:
     25        * UIProcess/ios/PageClientImplIOS.mm:
     26        * UIProcess/ios/WebVideoFullscreenManagerProxy.h: Rename local variables.
     27        * UIProcess/ios/WebVideoFullscreenManagerProxy.messages.in:
     28        * UIProcess/ios/WebVideoFullscreenManagerProxy.mm:
     29        (WebKit::WebVideoFullscreenManagerProxy::mayAutomaticallyShowVideoPictureInPicture): Renamed.
     30        (WebKit::WebVideoFullscreenManagerProxy::mayAutomaticallyShowVideoOptimized): Deleted.
     31        * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
     32        * WebProcess/WebPage/WebPage.cpp:
     33        * WebProcess/ios/WebVideoFullscreenManager.mm:
     34
    1352015-06-18  Jeremy Jones  <jeremyj@apple.com>
    236
  • trunk/Source/WebKit2/Shared/WebPreferencesDefinitions.h

    r184813 r185727  
    131131    macro(RequiresUserGestureForMediaPlayback, requiresUserGestureForMediaPlayback, Bool, bool, DEFAULT_REQUIRES_USER_GESTURE_FOR_MEDIA_PLAYBACK) \
    132132    macro(AllowsInlineMediaPlayback, allowsInlineMediaPlayback, Bool, bool, DEFAULT_ALLOWS_INLINE_MEDIA_PLAYBACK) \
    133     macro(AllowsAlternateFullscreen, allowsAlternateFullscreen, Bool, bool, true) \
     133    macro(AllowsPictureInPictureMediaPlayback, allowsPictureInPictureMediaPlayback, Bool, bool, true) \
    134134    macro(AllowsAirPlayForMediaPlayback, allowsAirPlayForMediaPlayback, Bool, bool, true) \
    135135    macro(InspectorStartsAttached, inspectorStartsAttached, Bool, bool, true) \
  • trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp

    r185016 r185727  
    749749}
    750750
    751 void WKPreferencesSetAllowsAlternateFullscreen(WKPreferencesRef preferencesRef, bool flag)
    752 {
    753     toImpl(preferencesRef)->setAllowsAlternateFullscreen(flag);
    754 }
    755 
    756 bool WKPreferencesGetAllowsAlternateFullscreen(WKPreferencesRef preferencesRef)
    757 {
    758     return toImpl(preferencesRef)->allowsAlternateFullscreen();
    759 }
    760 
    761751void WKPreferencesSetShowsToolTipOverTruncatedText(WKPreferencesRef preferencesRef, bool flag)
    762752{
  • trunk/Source/WebKit2/UIProcess/API/C/WKPreferencesRefPrivate.h

    r184231 r185727  
    180180WK_EXPORT bool WKPreferencesGetMediaPlaybackAllowsInline(WKPreferencesRef preferencesRef);
    181181
    182 // Defaults to true.
    183 WK_EXPORT void WKPreferencesSetAllowsAlternateFullscreen(WKPreferencesRef preferencesRef, bool flag);
    184 WK_EXPORT bool WKPreferencesGetAllowsAlternateFullscreen(WKPreferencesRef preferencesRef);
    185 
    186182// Defaults to false.
    187183WK_EXPORT void WKPreferencesSetShowsToolTipOverTruncatedText(WKPreferencesRef preferencesRef, bool flag);
  • trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm

    r185576 r185727  
    243243}
    244244
    245 - (BOOL)_isShowingVideoOptimized
     245- (BOOL)_isShowingVideoPictureInPicture
    246246{
    247247    if (!_page || !_page->videoFullscreenManager())
    248248        return false;
    249249   
    250     return _page->videoFullscreenManager()->hasMode(WebCore::HTMLMediaElementEnums::VideoFullscreenModeOptimized);
    251 }
    252 
    253 - (BOOL)_mayAutomaticallyShowVideoOptimized
     250    return _page->videoFullscreenManager()->hasMode(WebCore::HTMLMediaElementEnums::VideoFullscreenModePictureInPicture);
     251}
     252
     253- (BOOL)_mayAutomaticallyShowVideoPictureInPicture
    254254{
    255255#if (__IPHONE_OS_VERSION_MIN_REQUIRED <= 80200) || !HAVE(AVKIT)
     
    259259        return false;
    260260
    261     return _page->videoFullscreenManager()->mayAutomaticallyShowVideoOptimized();
    262 #endif
    263 }
    264 
    265 static bool shouldAllowAlternateFullscreen()
     261    return _page->videoFullscreenManager()->mayAutomaticallyShowVideoPictureInPicture();
     262#endif
     263}
     264
     265static bool shouldAllowPictureInPictureMediaPlayback()
    266266{
    267267#if __IPHONE_OS_VERSION_MIN_REQUIRED >= 90000
    268     static bool shouldAllowAlternateFullscreen = iosExecutableWasLinkedOnOrAfterVersion(wkIOSSystemVersion_9_0);
    269     return shouldAllowAlternateFullscreen;
     268    static bool shouldAllowPictureInPictureMediaPlayback = iosExecutableWasLinkedOnOrAfterVersion(wkIOSSystemVersion_9_0);
     269    return shouldAllowPictureInPictureMediaPlayback;
    270270#else
    271271    return false;
     
    324324
    325325    webPageConfiguration.preferenceValues.set(WebKit::WebPreferencesKey::allowsInlineMediaPlaybackKey(), WebKit::WebPreferencesStore::Value(!![_configuration allowsInlineMediaPlayback]));
    326     webPageConfiguration.preferenceValues.set(WebKit::WebPreferencesKey::allowsAlternateFullscreenKey(), WebKit::WebPreferencesStore::Value(!![_configuration allowsPictureInPictureMediaPlayback] && shouldAllowAlternateFullscreen()));
     326    webPageConfiguration.preferenceValues.set(WebKit::WebPreferencesKey::allowsPictureInPictureMediaPlaybackKey(), WebKit::WebPreferencesStore::Value(!![_configuration allowsPictureInPictureMediaPlayback] && shouldAllowPictureInPictureMediaPlayback()));
    327327    webPageConfiguration.preferenceValues.set(WebKit::WebPreferencesKey::requiresUserGestureForMediaPlaybackKey(), WebKit::WebPreferencesStore::Value(!![_configuration requiresUserActionForMediaPlayback]));
    328328#endif
  • trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewInternal.h

    r182260 r185727  
    9999- (void)_didSameDocumentNavigationForMainFrame:(WebKit::SameDocumentNavigationType)navigationType;
    100100
    101 - (BOOL)_isShowingVideoOptimized;
    102 - (BOOL)_mayAutomaticallyShowVideoOptimized;
     101- (BOOL)_isShowingVideoPictureInPicture;
     102- (BOOL)_mayAutomaticallyShowVideoPictureInPicture;
    103103
    104104- (void)_updateScrollViewBackground;
  • trunk/Source/WebKit2/UIProcess/ios/PageClientImplIOS.mm

    r183517 r185727  
    186186        return true;
    187187   
    188     if ([m_webView _isShowingVideoOptimized])
     188    if ([m_webView _isShowingVideoPictureInPicture])
    189189        return true;
    190190   
    191     if ([m_webView _mayAutomaticallyShowVideoOptimized])
     191    if ([m_webView _mayAutomaticallyShowVideoPictureInPicture])
    192192        return true;
    193193   
  • trunk/Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.h

    r184670 r185727  
    109109    void requestHideAndExitFullscreen();
    110110    bool hasMode(WebCore::HTMLMediaElementEnums::VideoFullscreenMode) const;
    111     bool mayAutomaticallyShowVideoOptimized() const;
     111    bool mayAutomaticallyShowVideoPictureInPicture() const;
    112112
    113113private:
     
    124124
    125125    // Messages from WebVideoFullscreenManager
    126     void setupFullscreenWithID(uint64_t contextId, uint32_t videoLayerID, const WebCore::IntRect& initialRect, float hostingScaleFactor, WebCore::HTMLMediaElementEnums::VideoFullscreenMode, bool allowOptimizedFullscreen);
     126    void setupFullscreenWithID(uint64_t contextId, uint32_t videoLayerID, const WebCore::IntRect& initialRect, float hostingScaleFactor, WebCore::HTMLMediaElementEnums::VideoFullscreenMode, bool allowsPictureInPicture);
    127127    void resetMediaState(uint64_t contextId);
    128128    void setCurrentTime(uint64_t contextId, double currentTime, double hostTime);
  • trunk/Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.messages.in

    r184670 r185727  
    3434    SetDuration(uint64_t contextId, double duration)
    3535    SetRate(uint64_t contextId, bool isPlaying, double rate)
    36     SetupFullscreenWithID(uint64_t contextId, uint32_t videoLayerID, WebCore::IntRect initialRect, float hostingScaleFactor, WebCore::HTMLMediaElementEnums::VideoFullscreenMode videoFullscreenMode, bool allowOptimizedFullscreen)
     36    SetupFullscreenWithID(uint64_t contextId, uint32_t videoLayerID, WebCore::IntRect initialRect, float hostingScaleFactor, WebCore::HTMLMediaElementEnums::VideoFullscreenMode videoFullscreenMode, bool allowsPictureInPicture)
    3737    EnterFullscreen(uint64_t contextId)
    3838    ExitFullscreen(uint64_t contextId, WebCore::IntRect finalRect)
  • trunk/Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.mm

    r184670 r185727  
    6363}
    6464
    65 bool WebVideoFullscreenManagerProxy::mayAutomaticallyShowVideoOptimized() const
     65bool WebVideoFullscreenManagerProxy::mayAutomaticallyShowVideoPictureInPicture() const
    6666{
    6767    return false;
     
    267267}
    268268
    269 bool WebVideoFullscreenManagerProxy::mayAutomaticallyShowVideoOptimized() const
     269bool WebVideoFullscreenManagerProxy::mayAutomaticallyShowVideoPictureInPicture() const
    270270{
    271271    for (auto& tuple : m_contextMap.values()) {
    272         if (std::get<1>(tuple)->mayAutomaticallyShowVideoOptimized())
     272        if (std::get<1>(tuple)->mayAutomaticallyShowVideoPictureInPicture())
    273273            return true;
    274274    }
     
    307307#pragma mark Messages from WebVideoFullscreenManager
    308308
    309 void WebVideoFullscreenManagerProxy::setupFullscreenWithID(uint64_t contextId, uint32_t videoLayerID, const WebCore::IntRect& initialRect, float hostingDeviceScaleFactor, HTMLMediaElementEnums::VideoFullscreenMode videoFullscreenMode, bool allowOptimizedFullscreen)
     309void WebVideoFullscreenManagerProxy::setupFullscreenWithID(uint64_t contextId, uint32_t videoLayerID, const WebCore::IntRect& initialRect, float hostingDeviceScaleFactor, HTMLMediaElementEnums::VideoFullscreenMode videoFullscreenMode, bool allowsPictureInPicture)
    310310{
    311311    ASSERT(videoLayerID);
     
    324324
    325325    UIView *parentView = downcast<RemoteLayerTreeDrawingAreaProxy>(*m_page->drawingArea()).remoteLayerTreeHost().rootLayer();
    326     interface->setupFullscreen(*model->layerHost(), initialRect, parentView, videoFullscreenMode, allowOptimizedFullscreen);
     326    interface->setupFullscreen(*model->layerHost(), initialRect, parentView, videoFullscreenMode, allowsPictureInPicture);
    327327}
    328328
  • trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp

    r185661 r185727  
    28002800    settings.setRequiresUserGestureForMediaPlayback(store.getBoolValueForKey(WebPreferencesKey::requiresUserGestureForMediaPlaybackKey()));
    28012801    settings.setAllowsInlineMediaPlayback(store.getBoolValueForKey(WebPreferencesKey::allowsInlineMediaPlaybackKey()));
    2802     settings.setAllowsAlternateFullscreen(store.getBoolValueForKey(WebPreferencesKey::allowsAlternateFullscreenKey()));
     2802    settings.setAllowsPictureInPictureMediaPlayback(store.getBoolValueForKey(WebPreferencesKey::allowsPictureInPictureMediaPlaybackKey()));
    28032803    settings.setMockScrollbarsEnabled(store.getBoolValueForKey(WebPreferencesKey::mockScrollbarsEnabledKey()));
    28042804    settings.setHyperlinkAuditingEnabled(store.getBoolValueForKey(WebPreferencesKey::hyperlinkAuditingEnabledKey()));
  • trunk/Source/WebKit2/WebProcess/ios/WebVideoFullscreenManager.mm

    r185726 r185727  
    241241    interface->setIsAnimating(true);
    242242
    243     bool allowOptimizedFullscreen = videoElement.mediaSession().allowsAlternateFullscreen(videoElement);
    244    
    245     m_page->send(Messages::WebVideoFullscreenManagerProxy::SetupFullscreenWithID(contextId, interface->layerHostingContext()->contextID(), clientRectForElement(&videoElement), m_page->deviceScaleFactor(), interface->fullscreenMode(), allowOptimizedFullscreen), m_page->pageID());
     243    bool allowsPictureInPicture = videoElement.mediaSession().allowsPictureInPicture(videoElement);
     244   
     245    m_page->send(Messages::WebVideoFullscreenManagerProxy::SetupFullscreenWithID(contextId, interface->layerHostingContext()->contextID(), clientRectForElement(&videoElement), m_page->deviceScaleFactor(), interface->fullscreenMode(), allowsPictureInPicture), m_page->pageID());
    246246}
    247247
Note: See TracChangeset for help on using the changeset viewer.