Hey Francis,

A few small questions...:

   - Is the OT documentation link correct?
   - Have we requested a position from WebKit? Seems like we're far enough 
   along to start on that.

...and a few larger questions:

   - If I understand this correctly, there was a *breaking* change in 129? 
   If so, that's helpful for requesting an end-to-end this long, as it would 
   reset the "burn in" clock.
   - Has there been feedback from the original OT that you can share?
   - Why shouldn't we just ship this now? I understand the WASM WG process 
   arguments, but if we've got good confidence in the current API shape and 
   the developer feedback on the M129+ API shape is positive, we might look to 
   send I2S before this OT ends (with a gapless OT). How are y'all thinking 
   about that?

Best,

Alex

On Thursday, October 17, 2024 at 3:30:33 AM UTC+5:30 Chromestatus wrote:

> Contact emails f...@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 
>
> Stack Switching denotes a technology that allows programs to suspend and 
> resume computation. This is an active area that is part of the WebAssembly 
> standards track. See https://github.com/WebAssembly/stack-switching and 
> https://github.com/WebAssembly/meetings/tree/main/stack. This particular 
> feature refers to the integration between JavaScript Promises and stack 
> switching. This is described in more detail in 
> https://docs.google.com/document/d/16Us-pyte2-9DECJDfGm5tnUpfngJJOc8jbj54HMqE9Y/edit#
>
>
> Blink component Blink>JavaScript>WebAssembly 
> <https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3EJavaScript%3EWebAssembly>
>  
>
> 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 Pending 
>
> 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 
>
> *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.
>
>
> 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?
>
>
>
> Goals for experimentation 
>
>
>
> Reason this experiment is being extended 
>
> JSPI is part of a standards track effort. We are currently in 'stage 3' of 
> a five stage process. The next stage (4) is when a specification is deemed 
> final. There was a change in the API which we soft launched in M126 but we 
> would like to formally switch to this new API in M129. (We had informed our 
> users that we would be maintaining the old API through the end of the OT.) 
> So, in summary there are two reasons for extending the origin trial: 1. We 
> are not quite ready to move the spec to phase 4. This is for 
> non-implementation reasons: we need to draft and review the specification 
> text; which, for a feature like JSPI is not completely trivial. 2. We would 
> like to allow sufficient time for users to fully experiment with the new 
> API. We anticipate being able to fully ship JSPI before the end of 2024.
>
>
> Reason this experiment is being extended 
>
> We wish to extend the OT for JSPI for a second time. Hopefully, this will 
> be the last extension before shipping. We have recently implemented one of 
> the key technology improvements that we believed necessary for shipping: 
> growable stacks. However, performance remains a blocker for some partners 
> and we would like to be able to continue performance improvements. The 
> specification itself should be moving to phase 4 in the standards process; 
> hopefully in the next few months. 
>
>
> Ongoing technical constraints 
>
> None.
>
>
> 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>
> ? No 
>
> Flag name on chrome://flags 
> enable-experimental-webassembly-stack-switching 
>
> Finch feature name None 
>
> Non-finch justification None 
>
> Requires code in //chrome? False 
>
> Tracking bug 
> https://bugs.chromium.org/p/v8/issues/detail?id=12191&q=owner%3Ame&can=2 
>
> Estimated milestones 
> Origin trial desktop first 123 
> Origin trial desktop last 131 
> Origin trial extension 1 end milestone 131 
> Origin trial extension 2 end milestone 133 
> DevTrial on desktop 109 
> Origin trial Android first 123 
> Origin trial Android last 131 
> Origin trial WebView first 123 
> Origin trial WebView last 131 
>
> Link to entry on the Chrome Platform Status 
> https://chromestatus.com/feature/5674874568704000?gate=5414230854205440 
>
> 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
>  
>
>
> 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 on the web visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/9d36516d-f41d-4235-9f4a-e948066ec48cn%40chromium.org.

Reply via email to