LGTM2

On Wed, Apr 9, 2025 at 8:26 AM Philip Jägenstedt <foo...@chromium.org>
wrote:

> 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
> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAARdPYcnDkdpAWDeod8YB853RKTDD6G%2BccXbfG4eWwCpsx%3DLyw%40mail.gmail.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/CAOMQ%2Bw8BHA-bsxy50tGX4Krt1SVwt7%2BrADBM4RWbhHXYiHUO8w%40mail.gmail.com.

Reply via email to