LGTM1, very exciting to see this ship! There are some apparent failures in https://wpt.fyi/results/wasm/jsapi/jspi, but this seems to be because of https://github.com/web-platform-tests/wpt.fyi/issues/4216, not real failures.
On Tue, Apr 8, 2025 at 6:32 PM Chromestatus <ad...@cr-status.appspotmail.com> wrote: > Contact emails f...@chromium.org, thiba...@chromium.org, > irez...@chromium.org > > Explainer > https://github.com/WebAssembly/js-promise-integration/blob/main/proposals/js-promise-integration/Overview.md > > Specification > https://github.com/WebAssembly/js-promise-integration/blob/main/proposals/js-promise-integration/Overview.md > > Design docs > > https://docs.google.com/document/d/16Us-pyte2-9DECJDfGm5tnUpfngJJOc8jbj54HMqE9Y/edit#heading=h.n1atlriavj6v > > Summary > > JavaScript Promise Integration (JSPI) is an API that allows WebAssembly > applications to integrate with JavaScript Promises. It allows a WebAssembly > program to act as the generator of a Promise, and it allows the WebAssembly > program to interact with Promise-bearing APIs. In particular, when an > application uses JSPI to call a Promise-bearing (JavaScript) API, the > WebAssembly code is suspended; and the original caller to the WebAssembly > program is given a Promise that will be fulfilled when the WebAssembly > program finally completes. JSPI is described in more detail in > https://github.com/WebAssembly/js-promise-integration which is part of > the W3C WebAssembly standards track. See also > https://github.com/WebAssembly/stack-switching and > https://github.com/WebAssembly/meetings/tree/main/stack. > > > Blink component Blink>JavaScript>WebAssembly > <https://issues.chromium.org/issues?q=customfield1222907:%22Blink%3EJavaScript%3EWebAssembly%22> > > Search tags stack switching <http:///features#tags:stack%20switching>, > Promise <http:///features#tags:Promise>, JSPI <http:///features#tags:JSPI> > > TAG review https://github.com/w3ctag/design-reviews/issues/809 Review was > declined, deferring to W3C WebAssembly CG > > TAG review status Issues addressed > > Origin Trial Name WebAssembly JavaScript Promise Integration > > Chromium Trial Name WebAssemblyJSPromiseIntegration > > Origin Trial documentation link > https://github.com/WebAssembly/js-promise-integration > > WebFeature UseCounter name kV8WasmJavaScriptPromiseIntegration > > Risks > > > Interoperability and Compatibility > > This spec is backed by a standardization effort. We do not plan to ship > the JSPI until it has been standardized by the W3C Wasm WG. However, post > standardization, we will depend on all browsers implementing the standard. > > > *Gecko*: Positive (https://bugzilla.mozilla.org/show_bug.cgi?id=1850627) > Mozilla have started their own imlementation > > *WebKit*: No signal ( > https://github.com/WebKit/standards-positions/issues/422) > > *Web developers*: No signals > > *Other signals*: > > Activation > > Making use of JSPI requires some changes by WebAssembly-based developers > (no impact on JavaScript developers). Depending on their toolchain usage a > developer will need to modify their code. For Emscripten users, this is > likely to be minimal as support for JSPI exists in Emscripten. > > > Security > > 1. Control flow integrity. 2. Ensuring that JavaScript programs cannot > suspend via JSPI. 3. Ensuring that heap sandbox escapes are not possible. > > > 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? > > No. > > > Debuggability > > Developers can piggyback on existing DevTools support for Promises to help > with debugging JSPI applications. In particular the existing mechanisms for > constructing extended stack traces from so-called Promise chains will also > include stack traces from JSPI applications. > > > Will this feature be supported on all six Blink platforms (Windows, Mac, > Linux, ChromeOS, Android, and Android WebView)? Yes > > Is this feature fully tested by web-platform-tests > <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md> > ? Yes > > https://wpt.fyi/results/wasm/jsapi/jspi > > > Flag name on about://flags > enable-experimental-webassembly-stack-switching > > Finch feature name None > > Non-finch justification None > > Rollout plan Will ship enabled for all users > > Requires code in //chrome? False > > Tracking bug > https://bugs.chromium.org/p/v8/issues/detail?id=12191&q=owner%3Ame&can=2 > > Measurement > https://chromestatus.com/metrics/feature/timeline/popularity/4760 > > Availability expectation JSPI will be available on Chrome (including > Edge) and on FireFox at launch. No specific indication about availability > on Safari. > > Adoption expectation 1. We expect that JSPI will be used by both 1P and > 3P partners within a few months of launch. > > Adoption plan 1. There has been an origin trial running for one year. > This OT has > 300 registrants at time of writing. 2. We will be publishing > V8.dev blog posts both about the feature (see > https://v8.dev/blog/jspi-newapi) and its implementation. We believe that > this will further increase awareness of JSPI. 3. We will also benefit from > awareness of WebAssembly and the W3C wasm CG. > > Non-OSS dependencies > > Does the feature depend on any code or APIs outside the Chromium open > source repository and its open-source dependencies to function? > no. > > Estimated milestones > Shipping on desktop 137 > Origin trial desktop first 123 > Origin trial desktop last 131 > Origin trial extension 1 end milestone 131 > Origin trial extension 2 end milestone 133 > Origin trial extension 3 end milestone 136 > DevTrial on desktop 109 > Shipping on Android 137 > Origin trial Android first 123 > Origin trial Android last 131 > Shipping on WebView 137 > Origin trial WebView first 123 > Origin trial WebView last 131 > > Anticipated spec changes > > Open questions about a feature may be a source of future web compat or > interop issues. Please list open issues (e.g. links to known github issues > in the project for the feature specification) whose resolution may > introduce web compat/interop risk (e.g., changing to naming or structure of > the API in a non-backward-compatible way). > No spec changes anticipated. JSPI is part of a W3C standards process (see > https://github.com/WebAssembly). We plan to ship after this spec reaches > 'stage 4' which represents a completed specification. > > Link to entry on the Chrome Platform Status > https://chromestatus.com/feature/5674874568704000?gate=5851957764292608 > > Links to previous Intent discussions Intent to Prototype: > https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAAdKk6BGFseZ6pBO2qEW_xeovVw1_guVq26rcNM1nWY442Y5Ng%40mail.gmail.com > Intent to Experiment: > https://groups.google.com/a/chromium.org/g/blink-dev/c/Fu79zrp7MoE > Intent to Extend Experiment 1: > https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CALi9WK-JJNTYSeNdSuai827Qg5%3D2vZo-emYP2z-5vJOfE%2B8Nng%40mail.gmail.com > Intent to Extend Experiment 2: > https://groups.google.com/a/chromium.org/d/msgid/blink-dev/67103777.2b0a0220.137ef7.0e4c.GAE%40google.com > Intent to Extend Experiment 3: > https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAE65UWDsoPqTePz3S42YsV2_Wr3OGL6yY2YdsS6oOYw3Rh8%2Bww%40mail.gmail.com > > > This intent message was generated by Chrome Platform Status > <https://chromestatus.com>. > > -- > You received this message because you are subscribed to the Google Groups > "blink-dev" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to blink-dev+unsubscr...@chromium.org. > To view this discussion visit > https://groups.google.com/a/chromium.org/d/msgid/blink-dev/67f54f82.170a0220.374483.0000.GAE%40google.com > <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/67f54f82.170a0220.374483.0000.GAE%40google.com?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "blink-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscr...@chromium.org. To view this discussion visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAARdPYcnDkdpAWDeod8YB853RKTDD6G%2BccXbfG4eWwCpsx%3DLyw%40mail.gmail.com.