Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 69f3eff63c325620f325690fb398a92226724c58
https://github.com/WebKit/WebKit/commit/69f3eff63c325620f325690fb398a92226724c58
Author: Yijia Huang <[email protected]>
Date: 2026-01-30 (Fri, 30 Jan 2026)
Changed paths:
M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml
M Source/WebKit/Shared/WebProcessCreationParameters.h
M Source/WebKit/Shared/WebProcessCreationParameters.serialization.in
M Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm
M Source/WebKit/UIProcess/WebPageProxy.cpp
M Source/WebKit/UIProcess/WebProcessPool.cpp
M Source/WebKit/UIProcess/WebProcessPool.h
M Source/WebKit/UIProcess/WebProcessProxy.cpp
M Source/WebKit/UIProcess/WebProcessProxy.h
M Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm
Log Message:
-----------
[JSC][WASM][Debugger] Add preference to enable WebAssembly debugger
https://bugs.webkit.org/show_bug.cgi?id=306378
rdar://169042255
Reviewed by Matthew Finkel.
Add WebAssemblyDebuggerEnabled preference to control LLDB debugging support
for WebAssembly. When enabled, JSC::Options::enableWasmDebugger() is set
before VM creation, and a WasmDebuggerDebuggable RWI target is created to
expose WebAssembly instances for debugging.
The implementation propagates the preference from UIProcess to WebProcess
via IPC parameters, ensuring JSC options are configured before any VM is
created. Prewarmed processes cannot be used when the debugger is enabled
because they were already initialized without the required configuration.
The preference is marked as 'internal' status, making it available only
for WebKit internal development and debugging.
* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:
Added WebAssemblyDebuggerEnabled preference with internal status.
* Source/WebKit/Shared/WebProcessCreationParameters.h:
* Source/WebKit/Shared/WebProcessCreationParameters.serialization.in:
Added shouldEnableWebAssemblyDebugger IPC parameter.
* Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeWebProcess):
Set IPC parameter based on process flag.
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::triggerBrowsingContextGroupSwitchForNavigation):
Fixed missing pageConfiguration parameter in COOP isolated process creation.
* Source/WebKit/UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::createNewWebProcess):
Added pageConfiguration parameter; set debugger flag before initialization.
(WebKit::WebProcessPool::tryTakePrewarmedProcess):
Prevent prewarmed process reuse when debugger is needed.
(WebKit::WebProcessPool::prewarmProcess):
(WebKit::WebProcessPool::processForSite):
Updated call sites with new signature.
(WebKit::WebProcessPool::createWebPage):
* Source/WebKit/UIProcess/WebProcessPool.h:
Updated createNewWebProcess signature.
* Source/WebKit/UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::create):
(WebKit::WebProcessProxy::WebProcessProxy):
(WebKit::m_createWasmDebuggerDebuggable):
(WebKit::WebProcessProxy::didFinishLaunching):
Create RWI target when preference or environment variable enables debugger.
(WebKit::m_webPermissionController): Deleted.
* Source/WebKit/UIProcess/WebProcessProxy.h:
Added m_createWasmDebuggerDebuggable flag with accessors.
* Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::accessibilityFocusedUIElement):
Canonical link: https://commits.webkit.org/306525@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications