Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 3febba3bf25a780da0665130a8bd14df6975fe65
      
https://github.com/WebKit/WebKit/commit/3febba3bf25a780da0665130a8bd14df6975fe65
  Author: Andy Estes <[email protected]>
  Date:   2023-10-06 (Fri, 06 Oct 2023)

  Changed paths:
    M Source/WebCore/Modules/mediacontrols/MediaControlsHost.cpp
    M Source/WebCore/PAL/pal/cocoa/AVFoundationSoftLink.h
    M Source/WebCore/PAL/pal/cocoa/AVFoundationSoftLink.mm
    M Source/WebCore/PAL/pal/spi/cocoa/AVKitSPI.h
    M Source/WebCore/PAL/pal/spi/cocoa/FoundationSPI.h
    M Source/WebCore/platform/cocoa/WebAVPlayerLayer.h
    M Source/WebCore/platform/cocoa/WebAVPlayerLayer.mm
    M Source/WebCore/platform/ios/VideoFullscreenInterfaceAVKit.mm
    M Source/WebCore/platform/ios/WebAVPlayerController.h
    M Source/WebCore/platform/ios/WebAVPlayerController.mm
    M Source/WebKit/UIProcess/WebPageProxy.cpp

  Log Message:
  -----------
  [tvOS] Add experimental runtime support for AVKit fullscreen
https://bugs.webkit.org/show_bug.cgi?id=262814
rdar://116599008

Reviewed by Jer Noble.

Added experimental support for AVKit fullscreen on tvOS. Full support cannot be 
implemented until
new APIs are available (see rdar://116592344), but this provides a 
proof-of-concept implementation
by implementing the AVPlayerController interface expected by tvOS's 
AVPlayerViewController and
injecting a custom AVPlayerLayerView into AVPlayerViewController's view 
hierarchy.

This change also opts tvOS into iOS media controls layout traits and works 
around an issue related
to WKWebView visibility when AVPlayerViewController is modally presented on top 
of it.

* Source/WebCore/Modules/mediacontrols/MediaControlsHost.cpp:
(WebCore::MediaControlsHost::layoutTraitsClassName const):
* Source/WebCore/PAL/pal/cocoa/AVFoundationSoftLink.h:
* Source/WebCore/PAL/pal/cocoa/AVFoundationSoftLink.mm:
* Source/WebCore/PAL/pal/spi/cocoa/AVKitSPI.h:
* Source/WebCore/PAL/pal/spi/cocoa/FoundationSPI.h:
* Source/WebCore/platform/cocoa/WebAVPlayerLayer.h:
* Source/WebCore/platform/cocoa/WebAVPlayerLayer.mm:
(-[WebAVPlayerLayer legibleContentInsets]):
(-[WebAVPlayerLayer setLegibleContentInsets:]):
* Source/WebCore/platform/ios/VideoFullscreenInterfaceAVKit.mm:
(-[WebAVPlayerViewController initWithFullscreenInterface:]):
(-[WebAVPlayerViewController 
configurePlayerViewControllerWithFullscreenInterface:]):
* Source/WebCore/platform/ios/WebAVPlayerController.h:
* Source/WebCore/platform/ios/WebAVPlayerController.mm:
(-[WebAVPlayerController init]):
(-[WebAVPlayerController player]):
(-[WebAVPlayerController currentItem]):
(+[WebAVPlayerController keyPathsForValuesAffectingEffectiveRateNonZero]):
(-[WebAVPlayerController effectiveRateNonZero]):
(-[WebAVPlayerController forwardPlaybackEndTime]):
(-[WebAVPlayerController backwardPlaybackEndTime]):
(+[WebAVPlayerController keyPathsForValuesAffectingIsSeekingTV]):
(-[WebAVPlayerController isSeekingTV]):
(-[WebAVPlayerController hasStartAndEndDates]):
(-[WebAVPlayerController timeRangeSeekable]):
(-[WebAVPlayerController hasItem]):
(-[WebAVPlayerController isPlaybackLikelyToKeepUp]):
(-[WebAVPlayerController overrideForForwardPlaybackEndTime]):
(-[WebAVPlayerController overrideForReversePlaybackEndTime]):
(-[WebAVPlayerController timebaseRate]):
(-[WebAVPlayerController externalMetadata]):
(+[WebAVPlayerController keyPathsForValuesAffectingTimeControlStatus]):
(-[WebAVPlayerController timeControlStatus]):
(+[WebAVPlayerController keyPathsForValuesAffectingDisplayedDuration]):
(-[WebAVPlayerController displayedDuration]):
(-[WebAVPlayerController contentDurationCached]):
(-[WebAVPlayerController currentDisplayTime]):
(-[WebAVPlayerController currentOrEstimatedDate]):
(+[WebAVPlayerController keyPathsForValuesAffectingCurrentTime]):
(-[WebAVPlayerController currentTime]):
(-[WebAVPlayerController displayTimeRangeForNavigation]):
(-[WebAVPlayerController isAtMaxTime]):
(-[WebAVPlayerController isContentDurationIndefinite]):
(-[WebAVPlayerController timeRangeForNavigation]):
(-[WebAVPlayerController timeFromDisplayTime:]):
(-[WebAVPlayerController displayTimeFromTime:]):
(-[WebAVPlayerController activeRate]):
(-[WebAVPlayerController setActiveRate:]):
(-[WebAVPlayerController 
requestNavigateToTime:fromTime:reason:playWhenReady:permissionHandler:seekCompleti
(-[WebAVPlayerController seekToTime:seekReason:completionHandler:]):
(-[WebAVPlayerController 
requestSeekToTime:seekReason:permissionHandler:completionHandler:]):
(-[WebAVPlayerController requestPauseWithCompletion:]):
(-[WebAVPlayerController requestPlayWithCompletion:]):
(-[WebAVPlayerController requestSeekToTime:reason:playWhenReady:]):
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::viewDidLeaveWindow):

Canonical link: https://commits.webkit.org/269032@main


_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to