Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 39f4250d8cda9a29aab47a8c7782783e107dfaac
      
https://github.com/WebKit/WebKit/commit/39f4250d8cda9a29aab47a8c7782783e107dfaac
  Author: Elliott Williams <[email protected]>
  Date:   2026-07-11 (Sat, 11 Jul 2026)

  Changed paths:
    M Source/WebCore/Configurations/AllowedSPI-legacy.toml
    M Source/WebCore/Configurations/AllowedSPI.toml
    M Source/WebCore/PAL/PAL.xcodeproj/project.pbxproj
    M Source/WebCore/PAL/pal/PlatformCocoa.cmake
    M Source/WebCore/PAL/pal/SourcesCocoa.txt
    M Source/WebCore/PAL/pal/cf/CoreMediaSoftLink.h
    A Source/WebCore/PAL/pal/cocoa/AVKitSoftLink.h
    A Source/WebCore/PAL/pal/cocoa/AVKitSoftLink.mm
    M Source/WebCore/platform/cocoa/WebAVPlayerLayer.mm
    M Source/WebCore/platform/cocoa/WebAVPlayerLayerView.mm
    M 
Source/WebCore/platform/graphics/avfoundation/objc/AVOutputDeviceMenuControllerTargetPicker.mm
    M 
Source/WebCore/platform/graphics/avfoundation/objc/AVRoutePickerViewTargetPicker.mm
    M Source/WebCore/platform/ios/PlaybackSessionInterfaceAVKitLegacy.mm
    M Source/WebCore/platform/ios/VideoPresentationInterfaceAVKitLegacy.mm
    M Source/WebCore/platform/ios/WebAVPlayerController.mm
    M Source/WebCore/platform/mac/PlaybackSessionInterfaceMac.mm
    M Source/WebCore/platform/mac/WebPlaybackControlsManager.mm
    M Source/WebKit/Configurations/AllowedSPI-legacy.toml
    M Source/WebKit/Platform/ios/PlaybackSessionInterfaceAVKit.mm
    M Source/WebKit/Platform/ios/VideoPresentationInterfaceAVKit.mm
    M Source/WebKit/Platform/ios/WKAVContentSource.mm
    M Source/WebKit/UIProcess/ios/_WKCaptionStyleMenuControllerAVKit.mm
    M Source/WebKit/UIProcess/ios/_WKCaptionStyleMenuControllerIOS.mm
    M Source/WebKit/UIProcess/ios/fullscreen/WKFullscreenStackView.mm
    M Source/WebKit/UIProcess/mac/_WKCaptionStyleMenuControllerAVKitMac.mm
    M Source/WebKit/UIProcess/mac/_WKCaptionStyleMenuControllerMac.mm
    M Source/WebKitLegacy/mac/WebView/WebVideoFullscreenController.mm

  Log Message:
  -----------
  Consolidate AVKit soft-linking into a single source file
https://bugs.webkit.org/show_bug.cgi?id=319016
rdar://181862243

Reviewed by Zak Ridouh and Richard Robinson.

Replace the SOFTLINK_AVKIT_FRAMEWORK() macro and single-TU soft link
code with a <pal/cocoa/AVKitSoftLink.h> header and associated sources.

Revealed by the CMake build's jumbo unified sources, which compiles many
sources in a single TU. Needed for CMake internal SDK support.

* Source/WebCore/Configurations/AllowedSPI-legacy.toml: I think that
  some of the calls to dlsym() were getting stripped out of iOS
  binaries, but now that they are exported from PAL, they are always
  present. Update the allowlist as this SPI usage is longstanding.
* Source/WebCore/Configurations/AllowedSPI.toml: Ditto, with staged API.

* Source/WebCore/PAL/PAL.xcodeproj/project.pbxproj:
* Source/WebCore/PAL/pal/PlatformCocoa.cmake:
* Source/WebCore/PAL/pal/SourcesCocoa.txt:
* Source/WebCore/PAL/pal/cf/CoreMediaSoftLink.h:
* Source/WebCore/PAL/pal/cocoa/AVKitSoftLink.h: Added.
* Source/WebCore/PAL/pal/cocoa/AVKitSoftLink.mm: Added.
* Source/WebCore/platform/cocoa/WebAVPlayerLayer.mm:
* Source/WebCore/platform/cocoa/WebAVPlayerLayerView.mm:
(WebCore::WebAVPlayerLayerView_playerLayer):
(WebCore::WebAVPlayerLayerView_dealloc):
(WebCore::allocWebAVPlayerLayerViewInstance):
* 
Source/WebCore/platform/graphics/avfoundation/objc/AVOutputDeviceMenuControllerTargetPicker.mm:
(WebCore::AVOutputDeviceMenuControllerTargetPicker::devicePicker):
* 
Source/WebCore/platform/graphics/avfoundation/objc/AVRoutePickerViewTargetPicker.mm:
(WebCore::AVRoutePickerViewTargetPicker::isAvailable):
(WebCore::AVRoutePickerViewTargetPicker::devicePicker):
* Source/WebCore/platform/ios/PlaybackSessionInterfaceAVKitLegacy.mm:
(WebCore::PlaybackSessionInterfaceAVKitLegacy::currentTimeChanged):
* Source/WebCore/platform/ios/VideoPresentationInterfaceAVKitLegacy.mm:
(WebAVPictureInPictureContentViewController_initWithController):
(WebAVPictureInPictureContentViewController_viewWillLayoutSubviews):
(WebAVPictureInPictureContentViewController_dealloc):
(allocWebAVPictureInPictureContentViewControllerInstance):
(-[WebAVPlayerViewController initWithFullscreenInterface:]):
(WebCore::supportsPictureInPicture):
* Source/WebCore/platform/ios/WebAVPlayerController.mm:
(createWebAVPlayerControllerForwarderClassSingleton):
(-[WebAVPlayerController init]):
(-[WebAVPlayerController hasSeekableLiveStreamingContent]):
(-[WebAVPlayerController timeRangeSeekable]):
(-[WebAVPlayerController timeRangeForNavigation]):
* Source/WebCore/platform/mac/PlaybackSessionInterfaceMac.mm:
(WebCore::PlaybackSessionInterfaceMac::setPlayBackControlsManager):
(WebCore::PlaybackSessionInterfaceMac::updatePlaybackControlsManagerTiming):
* Source/WebCore/platform/mac/WebPlaybackControlsManager.mm:
(mediaSelectionOptions):
* Source/WebKit/Platform/ios/PlaybackSessionInterfaceAVKit.mm:
(WebKit::mediaSelectionOptionSource):
* Source/WebKit/Platform/ios/VideoPresentationInterfaceAVKit.mm:
(WebKit::VideoPresentationInterfaceAVKit::setupPlayerViewController):
* Source/WebKit/Platform/ios/WKAVContentSource.mm:
* Source/WebKit/UIProcess/ios/_WKCaptionStyleMenuControllerAVKit.mm:
(-[_WKCaptionStyleMenuControllerAVKit init]):
* Source/WebKit/UIProcess/ios/_WKCaptionStyleMenuControllerIOS.mm:
(+[WKCaptionStyleMenuController menuController]):
* Source/WebKit/UIProcess/ios/fullscreen/WKFullscreenStackView.mm:
(-[WKFullscreenStackView init]):
(SOFT_LINK_CLASS_OPTIONAL): Deleted.
* Source/WebKit/UIProcess/mac/_WKCaptionStyleMenuControllerAVKitMac.mm:
(-[_WKCaptionStyleMenuControllerAVKitMac init]):
* Source/WebKit/UIProcess/mac/_WKCaptionStyleMenuControllerMac.mm:
(+[WKCaptionStyleMenuController menuController]):
* Source/WebKitLegacy/mac/WebView/WebVideoFullscreenController.mm:
(allocWebAVPlayerViewInstance): Replace the non-optional soft-link +
  assertion with the (shared) optional soft-link + release assertion. I
  think the behavior is moot since AVPlayerView exists on all supported
  macOS releases.

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to