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

Reply via email to