Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 1943e71ba52f0deab85f65560f308dadb7e685d3
https://github.com/WebKit/WebKit/commit/1943e71ba52f0deab85f65560f308dadb7e685d3
Author: Andy Estes <[email protected]>
Date: 2026-02-15 (Sun, 15 Feb 2026)
Changed paths:
M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml
M Source/WebCore/PAL/pal/spi/cocoa/AVKitSPI.h
M Source/WebCore/WebCore.xcodeproj/project.pbxproj
M Source/WebCore/platform/audio/cocoa/MediaSessionManagerCocoa.mm
M Source/WebCore/platform/graphics/PlatformTimeRanges.h
R Source/WebCore/platform/ios/PlaybackSessionInterfaceAVKit.h
R Source/WebCore/platform/ios/PlaybackSessionInterfaceAVKit.mm
M Source/WebCore/platform/ios/PlaybackSessionInterfaceIOS.h
M Source/WebCore/platform/ios/PlaybackSessionInterfaceIOS.mm
R Source/WebCore/platform/ios/VideoPresentationInterfaceAVKit.h
R Source/WebCore/platform/ios/VideoPresentationInterfaceAVKit.mm
M Source/WebCore/platform/mac/MediaRemoteSoftLink.h
M Source/WebCore/platform/mac/MediaRemoteSoftLink.mm
M Source/WebKit/Configurations/WebKitSwift.xcconfig
M Source/WebKit/DerivedSources-output.xcfilelist
M Source/WebKit/DerivedSources.make
A Source/WebKit/Platform/ios/PlaybackSessionInterfaceAVKit.h
A Source/WebKit/Platform/ios/PlaybackSessionInterfaceAVKit.mm
A Source/WebKit/Platform/ios/VideoPresentationInterfaceAVKit.h
A Source/WebKit/Platform/ios/VideoPresentationInterfaceAVKit.mm
A Source/WebKit/Platform/ios/WKAVContentSource.h
A Source/WebKit/Platform/ios/WKAVContentSource.mm
M Source/WebKit/SourcesCocoa.txt
M Source/WebKit/UIProcess/Cocoa/PlaybackSessionManagerProxy.mm
M Source/WebKit/UIProcess/Cocoa/VideoPresentationManagerProxy.mm
M Source/WebKit/UIProcess/Cocoa/WebKitSwiftSoftLink.h
M Source/WebKit/UIProcess/Cocoa/WebKitSwiftSoftLink.mm
M Source/WebKit/WebKit.xcodeproj/project.pbxproj
A Source/WebKit/WebKitSwift/AVKit/WKSExperienceController.h
A Source/WebKit/WebKitSwift/AVKit/WKSExperienceController.swift
M Source/WebKit/WebKitSwift/WebKitSwift.h
Log Message:
-----------
[iOS] Add an implementation of VideoPresentationInterface and
PlaybackSessionInterface based on AVExperienceController
https://bugs.webkit.org/show_bug.cgi?id=307852
rdar://170346982
Reviewed by Eric Carlson.
Moved PlaybackSessionInterfaceAVKit and VideoPresentationAVKit from WebCore to
WebKit and rewrote
them to be implemented in terms of AVExperienceController on iOS (their
previous implementations in
WebCore were dead code).
* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:
* Source/WebCore/PAL/pal/spi/cocoa/AVKitSPI.h:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/platform/audio/cocoa/MediaSessionManagerCocoa.mm:
(WebCore::MediaSessionManagerCocoa::setNowPlayingInfo):
* Source/WebCore/platform/graphics/PlatformTimeRanges.h:
* Source/WebCore/platform/ios/PlaybackSessionInterfaceAVKit.mm: Removed.
* Source/WebCore/platform/ios/PlaybackSessionInterfaceIOS.h:
* Source/WebCore/platform/ios/PlaybackSessionInterfaceIOS.mm:
(WebCore::PlaybackSessionInterfaceIOS::contentSource const):
* Source/WebCore/platform/mac/MediaRemoteSoftLink.h:
* Source/WebCore/platform/mac/MediaRemoteSoftLink.mm:
* Source/WebKit/Configurations/WebKitSwift.xcconfig:
* Source/WebKit/DerivedSources-output.xcfilelist:
* Source/WebKit/DerivedSources.make:
* Source/WebKit/Platform/ios/PlaybackSessionInterfaceAVKit.h: Renamed from
Source/WebCore/platform/ios/PlaybackSessionInterfaceAVKit.h.
* Source/WebKit/Platform/ios/PlaybackSessionInterfaceAVKit.mm: Added.
(WebKit::PlaybackSessionInterfaceAVKit::create):
(WebKit::nowPlayingMetadataObserver):
(WebKit::PlaybackSessionInterfaceAVKit::PlaybackSessionInterfaceAVKit):
(WebKit::PlaybackSessionInterfaceAVKit::~PlaybackSessionInterfaceAVKit):
(WebKit::PlaybackSessionInterfaceAVKit::durationChanged):
(WebKit::PlaybackSessionInterfaceAVKit::currentTimeChanged):
(WebKit::PlaybackSessionInterfaceAVKit::rateChanged):
(WebKit::PlaybackSessionInterfaceAVKit::seekableRangesChanged):
(WebKit::mediaSelectionOptionSource):
(WebKit::PlaybackSessionInterfaceAVKit::audioMediaSelectionOptionsChanged):
(WebKit::PlaybackSessionInterfaceAVKit::legibleMediaSelectionOptionsChanged):
(WebKit::PlaybackSessionInterfaceAVKit::audioMediaSelectionIndexChanged):
(WebKit::PlaybackSessionInterfaceAVKit::legibleMediaSelectionIndexChanged):
(WebKit::PlaybackSessionInterfaceAVKit::mutedChanged):
(WebKit::PlaybackSessionInterfaceAVKit::volumeChanged):
(WebKit::PlaybackSessionInterfaceAVKit::startObservingNowPlayingMetadata):
(WebKit::PlaybackSessionInterfaceAVKit::stopObservingNowPlayingMetadata):
(WebKit::PlaybackSessionInterfaceAVKit::nowPlayingMetadataChanged):
(WebKit::PlaybackSessionInterfaceAVKit::logClassName const):
* Source/WebKit/Platform/ios/VideoPresentationInterfaceAVKit.h: Renamed from
Source/WebCore/platform/ios/VideoPresentationInterfaceAVKit.h.
* Source/WebKit/Platform/ios/VideoPresentationInterfaceAVKit.mm: Added.
(WebKit::VideoPresentationInterfaceAVKit::create):
(WebKit::VideoPresentationInterfaceAVKit::VideoPresentationInterfaceAVKit):
(WebKit::VideoPresentationInterfaceAVKit::setupFullscreen):
(WebKit::VideoPresentationInterfaceAVKit::finalizeSetup):
(WebKit::VideoPresentationInterfaceAVKit::setupPlayerViewController):
(WebKit::VideoPresentationInterfaceAVKit::invalidatePlayerViewController):
(WebKit::VideoPresentationInterfaceAVKit::presentFullscreen):
(WebKit::VideoPresentationInterfaceAVKit::dismissFullscreen):
(WebKit::VideoPresentationInterfaceAVKit::setContentDimensions):
* Source/WebKit/Platform/ios/WKAVContentSource.h: Added.
* Source/WebKit/Platform/ios/WKAVContentSource.mm: Added.
(emptyTimelineSegment):
(-[WKAVContentSource initWithModel:]):
(-[WKAVContentSource setTimeRange:]):
(-[WKAVContentSource setSeekableTimeRanges:]):
(-[WKAVContentSource setReady:]):
(-[WKAVContentSource setBuffering:]):
(-[WKAVContentSource setSupportedSeekCapabilities:]):
(-[WKAVContentSource setCurrentAudioOptionIndex:]):
(-[WKAVContentSource setCurrentLegibleOptionIndex:]):
(-[WKAVContentSource setAudioOptions:]):
(-[WKAVContentSource setLegibleOptions:]):
(-[WKAVContentSource setHasAudio:]):
(-[WKAVContentSource setMetadata:]):
(-[WKAVContentSource setVideoLayer:]):
(-[WKAVContentSource setVideoSize:]):
(-[WKAVContentSource setCurrentPlaybackPositionInternal:]):
(-[WKAVContentSource setPlayingInternal:]):
(-[WKAVContentSource setPlaybackSpeedInternal:]):
(-[WKAVContentSource setMutedInternal:]):
(-[WKAVContentSource setVolumeInternal:]):
(-[WKAVContentSource timeRange]):
(-[WKAVContentSource currentValue]):
(-[WKAVContentSource setCurrentValue:]):
(-[WKAVContentSource currentPlaybackPosition]):
(-[WKAVContentSource setCurrentPlaybackPosition:]):
(-[WKAVContentSource segments]):
(-[WKAVContentSource currentSegment]):
(-[WKAVContentSource seekableTimeRanges]):
(-[WKAVContentSource isReady]):
(-[WKAVContentSource isPlaying]):
(-[WKAVContentSource setPlaying:]):
(-[WKAVContentSource isBuffering]):
(-[WKAVContentSource playbackSpeed]):
(-[WKAVContentSource setPlaybackSpeed:]):
(-[WKAVContentSource scanSpeed]):
(-[WKAVContentSource setScanSpeed:]):
(-[WKAVContentSource state]):
(-[WKAVContentSource setState:]):
(-[WKAVContentSource supportedSeekCapabilities]):
(-[WKAVContentSource containsLiveStreamingContent]):
(-[WKAVContentSource playbackError]):
(-[WKAVContentSource defaultPlaybackSpeed]):
(-[WKAVContentSource setDefaultPlaybackSpeed:]):
(-[WKAVContentSource currentAudioOption]):
(-[WKAVContentSource setCurrentAudioOption:]):
(-[WKAVContentSource currentLegibleOption]):
(-[WKAVContentSource setCurrentLegibleOption:]):
(-[WKAVContentSource audioOptions]):
(-[WKAVContentSource legibleOptions]):
(-[WKAVContentSource hasAudio]):
(-[WKAVContentSource isMuted]):
(-[WKAVContentSource setMuted:]):
(-[WKAVContentSource volume]):
(-[WKAVContentSource setVolume:]):
(-[WKAVContentSource metadata]):
(-[WKAVContentSource videoLayer]):
(-[WKAVContentSource videoSize]):
* Source/WebKit/SourcesCocoa.txt:
* Source/WebKit/UIProcess/Cocoa/PlaybackSessionManagerProxy.mm:
(WebKit::playbackSessionInterface):
* Source/WebKit/UIProcess/Cocoa/VideoPresentationManagerProxy.mm:
(WebKit::videoPresentationInterface):
* Source/WebKit/UIProcess/Cocoa/WebKitSwiftSoftLink.h:
* Source/WebKit/UIProcess/Cocoa/WebKitSwiftSoftLink.mm:
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Source/WebKit/WebKitSwift/AVKit/WKSExperienceController.h: Renamed from
Source/WebCore/platform/ios/VideoPresentationInterfaceAVKit.mm.
* Source/WebKit/WebKitSwift/AVKit/WKSExperienceController.swift: Added.
(WKSExperienceController.enterFullscreen(_:)):
(WKSExperienceController.exitFullscreen(_:)):
* Source/WebKit/WebKitSwift/WebKitSwift.h:
Canonical link: https://commits.webkit.org/307613@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications