Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: d7f902d5847303e26dabcecb529d0953a600c457
https://github.com/WebKit/WebKit/commit/d7f902d5847303e26dabcecb529d0953a600c457
Author: Zak Ridouh <[email protected]>
Date: 2026-05-11 (Mon, 11 May 2026)
Changed paths:
M Tools/TestWebKitAPI/InjectedBundle/cocoa/WebProcessPlugIn/Info.plist
M Tools/TestWebKitAPI/PlatformMac.cmake
Log Message:
-----------
[CMake] Build TestWebKitAPI.wkbundle on Mac
https://bugs.webkit.org/show_bug.cgi?id=314604
rdar://176847727
Reviewed by Richard Robinson and Pascoe.
The CMake Mac build produces InjectedBundleTestWebKitAPI.bundle (used by the
legacy WKPage C-API tests) but not TestWebKitAPI.wkbundle (the modern Cocoa
WKWebProcessPlugIn bundle loaded by
+[WKWebViewConfiguration _test_configurationWithTestPlugInClassName:]).
Without it, any test that opts into WebProcessPlugInWithInternals (including
every SiteIsolation.* case, InAppBrowserPrivacy, UIDelegate, WKAppHighlights,
TextPlaceholderTests, WKThumbnailView, AccessibilityIncreaseContrast,
AccessibilityReduceMotion, and others) silently loses its plug-in.
Add a new TestWebKitAPIWebProcessPlugIn MODULE target that mirrors the Xcode
WebProcessPlugIn target:
- Sources: InjectedBundle/cocoa/WebProcessPlugIn/WebProcessPlugIn.mm and
WebProcessPlugInWithInternals.mm (matching the two entries in the Xcode
project's Sources build phase).
- BUNDLE_EXTENSION wkbundle, OUTPUT_NAME TestWebKitAPI, so the product
path matches what WKWebViewConfigurationExtras.mm passes to
-[NSBundle URLForResource:withExtension:].
- Info.plist generated via configure_file() from the existing source plist
so PRODUCT_NAME / EXECUTABLE_NAME / PRODUCT_BUNDLE_IDENTIFIER are
populated and NSPrincipalClass = WebProcessPlugIn is preserved.
- -undefined dynamic_lookup: same rationale as TestWebKitAPIInjectedBundle
-- WebCoreTestSupport references WTF symbols provided by the hosting
WebContent process.
- TestWebKit takes an add_dependencies() on the new target so it is
staged next to the test executable before tests run.
Also switch $(EXECUTABLE_NAME) / $(PRODUCT_NAME) in the shared Info.plist
to the ${...} form so CMake's configure_file substitutes them. Xcode
accepts both variable-substitution syntaxes, so the Xcode build is
unaffected.
* Tools/TestWebKitAPI/InjectedBundle/cocoa/WebProcessPlugIn/Info.plist:
* Tools/TestWebKitAPI/PlatformMac.cmake:
Canonical link: https://commits.webkit.org/313060@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications