[webkit-changes] [WebKit/WebKit] 3febba: [tvOS] Add experimental runtime support for AVKit ...
aestes
noreply at github.com
Fri Oct 6 22:48:08 PDT 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 3febba3bf25a780da0665130a8bd14df6975fe65
https://github.com/WebKit/WebKit/commit/3febba3bf25a780da0665130a8bd14df6975fe65
Author: Andy Estes <aestes at apple.com>
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
More information about the webkit-changes
mailing list