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