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