Groups keyboard shortcuts have been updated
Dismiss
See shortcuts

Intent to Prototype: ShadowRealm

263 views
Skip to first unread message

Chromestatus

unread,
Dec 9, 2024, 9:52:00 AM12/9/24
to blin...@chromium.org, lwa...@igalia.com, s...@chromium.org

Contact emails

s...@chromium.org, lwa...@igalia.com

Explainer

https://github.com/tc39/proposal-shadowrealm/blob/main/explainer.md

Specification

https://tc39.es/proposal-shadowrealm/

Design docs


https://docs.google.com/document/d/1SWFGpiSdrBwErDNot8rqMyBjKGC3WDArcLnGg7MX6SE/edit?usp=sharing
https://docs.google.com/document/d/1k9OZxtbKmzENOMzahmm2C0uBNRc_pVLXMSoKsrkJJBw/edit?usp=sharing

Summary

ShadowRealm is a TC39 proposal to add an in-process, synchronous way to create a new global environment with its own global object and its own set of built-ins and intrinsics. See the proposal explainer at https://github.com/tc39/proposal-shadowrealm/blob/main/explainer.md



Blink component

Blink>JavaScript>Language

Motivation

The ShadowRealm API provides a way to run trusted code in a fresh global environment, which has use cases for virtualization, virtual DOM, and other execution of trusted 3rd party code. Please note that because ShadowRealm is a synchronous, in-process (e.g. no separate address space protection) API, it is not a sufficient security boundary for many threat models. It is not a generic sandboxing primitive for security purposes.



Initial public proposal

None

TAG review

None

TAG review status

Not applicable

Risks



Interoperability and Compatibility

It is a new feature and a Stage 2 TC39 proposal. The the main risk is that it fails to become an interoperable part of the web platform if other browsers do not implement it.



Gecko: No signal (https://github.com/mozilla/standards-positions/issues/997) https://bugzilla.mozilla.org/show_bug.cgi?id=1566145

WebKit: No signal (https://github.com/WebKit/standards-positions/issues/433) https://bugs.webkit.org/show_bug.cgi?id=230602

Web developers: No signals

Other signals:

WebView application risks

Does this intent deprecate or change behavior of existing APIs, such that it has potentially high risk for Android WebView-based applications?

None



Debuggability

While a new way to execute JS code, it is purely synchronous, and thus the executed code is debugged like any other synchronous JS code. The ShadowRealm objects themselves have reasonable console output.



Is this feature fully tested by web-platform-tests?

Yes

Tested in test262: https://github.com/tc39/test262/tree/main/test/built-ins/ShadowRealm Various tests in WPT for shadow realms integration with other web standards.



Flag name on about://flags



Finch feature name

None

Non-finch justification

None

Requires code in //chrome?

False

Tracking bug

https://bugs.chromium.org/p/v8/issues/detail?id=11989

Estimated milestones

No milestones specified



Link to entry on the Chrome Platform Status

https://chromestatus.com/feature/5638053476433920?gate=5591276603310080

This intent message was generated by Chrome Platform Status.
Reply all
Reply to author
Forward
0 new messages