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

Reply via email to