Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: d5f13fa851de3e8d6fe06ac475f1893e4347e3d2
https://github.com/WebKit/WebKit/commit/d5f13fa851de3e8d6fe06ac475f1893e4347e3d2
Author: Anne van Kesteren <[email protected]>
Date: 2026-10-13 (Tue, 13 Oct 2026)
Changed paths:
R JSTests/stress/exception-in-wrap-argument-for-shadow-realm.js
R JSTests/stress/remote-function-should-have-resolved-name-string.js
R
JSTests/stress/remoteFunctionCallForJSFunction-should-placate-overflow-check.js
R
JSTests/stress/remoteFunctionCallForJSFunction-should-placate-overflow-check2.js
R JSTests/stress/resources/shadow-realm-example-module.js
R JSTests/stress/shadow-realm-arguments.js
R JSTests/stress/shadow-realm-evaluate.js
R JSTests/stress/shadow-realm-globalThis-mutable-prototype.js
R JSTests/stress/shadow-realm-import-value.js
R JSTests/stress/shadow-realm-remote-function-copy-length-and-name.js
R JSTests/stress/shadow-realm-tag-registers.js
R JSTests/stress/shadow-realm.js
M JSTests/test262/config.yaml
R LayoutTests/http/tests/misc/iframe-shadow-realm-expected.txt
R LayoutTests/http/tests/misc/iframe-shadow-realm.html
R LayoutTests/http/tests/misc/resources/iframe-shadow-realm-subframe.html
R LayoutTests/http/tests/misc/resources/iframe-shadow-realm.js
R
LayoutTests/imported/w3c/web-platform-tests/performance-timeline/idlharness-shadowrealm.window-expected.txt
R
LayoutTests/imported/w3c/web-platform-tests/performance-timeline/idlharness-shadowrealm.window.html
R
LayoutTests/imported/w3c/web-platform-tests/performance-timeline/idlharness-shadowrealm.window.js
R
LayoutTests/imported/w3c/web-platform-tests/resources/testharness-shadowrealm-audioworkletprocessor.js
R
LayoutTests/imported/w3c/web-platform-tests/resources/testharness-shadowrealm-inner.js
R
LayoutTests/imported/w3c/web-platform-tests/resources/testharness-shadowrealm-outer.js
R
LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/shadowrealm-promise-rejection-test-worker.js
R
LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/shadowrealm-promise-rejection.https-expected.txt
R
LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/shadowrealm-promise-rejection.https.html
R
LayoutTests/imported/w3c/web-platform-tests/user-timing/idlharness-shadowrealm.window-expected.txt
R
LayoutTests/imported/w3c/web-platform-tests/user-timing/idlharness-shadowrealm.window.html
R
LayoutTests/imported/w3c/web-platform-tests/user-timing/idlharness-shadowrealm.window.js
R LayoutTests/inspector/shadow-realm-console-expected.txt
R LayoutTests/inspector/shadow-realm-console.html
R LayoutTests/js/ShadowRealm-evaluate-expected.txt
R LayoutTests/js/ShadowRealm-evaluate.html
R LayoutTests/js/ShadowRealm-globalThis-expected.txt
R LayoutTests/js/ShadowRealm-globalThis.html
R LayoutTests/js/ShadowRealm-iframe-detach-expected.txt
R LayoutTests/js/ShadowRealm-iframe-detach.html
R LayoutTests/js/ShadowRealm-iframe-sandboxed-expected.txt
R LayoutTests/js/ShadowRealm-iframe-sandboxed.html
R LayoutTests/js/ShadowRealm-importValue-expected.txt
R LayoutTests/js/ShadowRealm-importValue.html
R LayoutTests/js/ShadowRealm-worker-expected.txt
R LayoutTests/js/ShadowRealm-worker.html
R LayoutTests/js/resources/example-module.js
R LayoutTests/js/resources/shadow-realm-iframe.html
R LayoutTests/js/resources/shadow-realm-worker.js
M LayoutTests/platform/win/TestExpectations
M LayoutTests/platform/wpe/TestExpectations
M Source/JavaScriptCore/API/JSAPIGlobalObject.cpp
M Source/JavaScriptCore/API/JSAPIGlobalObject.mm
M Source/JavaScriptCore/CMakeLists.txt
M Source/JavaScriptCore/DerivedSources-input.xcfilelist
M Source/JavaScriptCore/DerivedSources-output.xcfilelist
M Source/JavaScriptCore/DerivedSources.make
M Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj
M Source/JavaScriptCore/SaferCPPExpectations/ForwardDeclCheckerExpectations
M
Source/JavaScriptCore/SaferCPPExpectations/MemoryUnsafeCastCheckerExpectations
M Source/JavaScriptCore/Sources.txt
M Source/JavaScriptCore/builtins/BuiltinNames.h
R Source/JavaScriptCore/builtins/ShadowRealmPrototype.js
M Source/JavaScriptCore/bytecode/BytecodeIntrinsicRegistry.h
M Source/JavaScriptCore/bytecode/LinkTimeConstant.h
M Source/JavaScriptCore/bytecompiler/BytecodeGenerator.h
M Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp
M Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp
M Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp
M Source/JavaScriptCore/heap/Heap.cpp
M Source/JavaScriptCore/heap/Heap.h
M Source/JavaScriptCore/heap/HeapSubspaceTypes.h
M Source/JavaScriptCore/inspector/JSInjectedScriptHost.cpp
M Source/JavaScriptCore/interpreter/Interpreter.cpp
M Source/JavaScriptCore/jit/JITOperations.cpp
M Source/JavaScriptCore/jit/JITOperations.h
M Source/JavaScriptCore/jit/ThunkGenerators.cpp
M Source/JavaScriptCore/jit/ThunkGenerators.h
M Source/JavaScriptCore/jsc.cpp
M Source/JavaScriptCore/lol/LOLJITOperations.cpp
M Source/JavaScriptCore/runtime/CommonIdentifiers.h
M Source/JavaScriptCore/runtime/FunctionPrototype.cpp
M Source/JavaScriptCore/runtime/GlobalObjectMethodTable.h
M Source/JavaScriptCore/runtime/InternalFunction.cpp
M Source/JavaScriptCore/runtime/Intrinsic.h
M Source/JavaScriptCore/runtime/JSCast.h
M Source/JavaScriptCore/runtime/JSFunction.cpp
M Source/JavaScriptCore/runtime/JSFunction.h
M Source/JavaScriptCore/runtime/JSFunctionInlines.h
M Source/JavaScriptCore/runtime/JSGlobalObject.cpp
M Source/JavaScriptCore/runtime/JSGlobalObject.h
M Source/JavaScriptCore/runtime/JSGlobalObjectInlines.h
M Source/JavaScriptCore/runtime/JSObject.cpp
R Source/JavaScriptCore/runtime/JSRemoteFunction.cpp
R Source/JavaScriptCore/runtime/JSRemoteFunction.h
R Source/JavaScriptCore/runtime/JSRemoteFunctionInlines.h
M Source/JavaScriptCore/runtime/JSType.cpp
M Source/JavaScriptCore/runtime/JSType.h
R Source/JavaScriptCore/runtime/ShadowRealmConstructor.cpp
R Source/JavaScriptCore/runtime/ShadowRealmConstructor.h
R Source/JavaScriptCore/runtime/ShadowRealmConstructorInlines.h
R Source/JavaScriptCore/runtime/ShadowRealmObject.cpp
R Source/JavaScriptCore/runtime/ShadowRealmObject.h
R Source/JavaScriptCore/runtime/ShadowRealmObjectInlines.h
R Source/JavaScriptCore/runtime/ShadowRealmPrototype.cpp
R Source/JavaScriptCore/runtime/ShadowRealmPrototype.h
R Source/JavaScriptCore/runtime/ShadowRealmPrototypeInlines.h
M Source/JavaScriptCore/runtime/VM.cpp
M Source/JavaScriptCore/runtime/VM.h
M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml
M Source/WebCore/CMakeLists.txt
M Source/WebCore/DerivedSources-input.xcfilelist
M Source/WebCore/DerivedSources-output.xcfilelist
M Source/WebCore/DerivedSources.make
M Source/WebCore/Headers.cmake
M Source/WebCore/PlatformCocoa.cmake
M Source/WebCore/Sources.txt
M Source/WebCore/WebCore.xcodeproj/project.pbxproj
M Source/WebCore/bindings/js/JSDOMGlobalObject.cpp
M Source/WebCore/bindings/js/JSDOMGlobalObject.h
M Source/WebCore/bindings/js/JSDOMWindowBase.cpp
R Source/WebCore/bindings/js/JSShadowRealmGlobalScopeBase.cpp
R Source/WebCore/bindings/js/JSShadowRealmGlobalScopeBase.h
M Source/WebCore/bindings/js/JSWorkerGlobalScopeBase.cpp
M Source/WebCore/bindings/js/JSWorkletGlobalScopeBase.cpp
M Source/WebCore/bindings/js/ScriptModuleLoader.cpp
M Source/WebCore/bindings/js/ScriptModuleLoader.h
M Source/WebCore/bindings/js/WebCoreBuiltinNames.h
M Source/WebCore/bindings/js/WebCoreJSClientData.cpp
M Source/WebCore/bindings/js/WebCoreJSClientData.h
M Source/WebCore/bindings/scripts/CodeGeneratorJS.pm
M Source/WebCore/bindings/scripts/preprocess-idls.pl
R Source/WebCore/bindings/scripts/test/JS/JSShadowRealmGlobalScope.cpp
R Source/WebCore/bindings/scripts/test/JS/JSShadowRealmGlobalScope.h
R
Source/WebCore/bindings/scripts/test/JS/JSShadowRealmGlobalScopeConstructors.cpp
R
Source/WebCore/bindings/scripts/test/JS/JSShadowRealmGlobalScopeConstructors.h
R Source/WebCore/bindings/scripts/test/ShadowRealmGlobalScope.idl
R
Source/WebCore/bindings/scripts/test/ShadowRealmGlobalScopeConstructors.idl
M Source/WebCore/bindings/scripts/test/SupplementalDependencies.dep
R Source/WebCore/page/ShadowRealmGlobalScope.cpp
R Source/WebCore/page/ShadowRealmGlobalScope.h
R Source/WebCore/page/ShadowRealmGlobalScope.idl
M Tools/Scripts/webkitpy/bindings/main.py
M Tools/Scripts/webkitpy/style/checker.py
Log Message:
-----------
Remove ShadowRealm
https://bugs.webkit.org/show_bug.cgi?id=327263
rdar://189822326
Reviewed by Yusuke Suzuki.
It never shipped and keeping it carries ongoing cost well beyond the code
itself, so remove it along with the JSRemoteFunction marshalling machinery
it depends on.
Removing it:
- Stops building a ShadowRealm prototype, object structure, and
constructor on every JSGlobalObject. These were created eagerly and
unconditionally in JSGlobalObject::init (not behind the option), so
every realm paid the allocation and initialization for a disabled
feature.
- Restores the invariant that every global object is an immutable
prototype exotic object. ShadowRealm global objects were the sole
exception (createStructureForShadowRealm cleared the bit), which forced
a global-object special case into JSObject::setPrototypeWithCycleCheck
and a hack into the JS bindings generator; both are gone, and the
assertion is tightened back accordingly.
- Shrinks GlobalObjectMethodTable by one slot
(deriveShadowRealmGlobalObject) and removes the cross-origin
parent-document walk it required in WebCore, which has been a recurring
source of site-isolation bugs. The now-unused
JSGlobalObject::createWithCustomMethodTable is removed with it.
- Removes JSRemoteFunction and its exception-unwinding, FunctionPrototype,
InternalFunction, DFG, FTL, thunk, and JIT-operation branches.
- Drops ShadowRealm as a WebIDL global context, so the
ShadowRealmGlobalScope partial-interface generation, the
WebAPIsInShadowRealmEnabled plumbing, and the related binding-generator
special cases go away.
createTypeErrorCopy is retained because JSModuleLoader also uses it.
This deletes the ShadowRealm JSC runtime classes, the WebCore
ShadowRealmGlobalScope wrapper, the ShadowRealmEnabled and
WebAPIsInShadowRealmEnabled preferences, the WebKit-owned ShadowRealm
layout tests, the imported ShadowRealm WPT tests, and the JSTests stress
coverage. The test262 ShadowRealm tests are kept but skipped via
JSTests/test262/config.yaml, since test262 is a vendored upstream suite.
Canonical link: https://commits.webkit.org/323565@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications