Intent to Experiment: WebAssembly Exception Handling

220 views
Skip to first unread message

Lutz Vahl

unread,
Feb 2, 2021, 11:24:10 AM2/2/21
to blink-dev

Contact emails

thib...@chromium.org, ah...@chromium.org, va...@chromium.org, ahe...@chromium.org


Explainer

Current spec explainer


Specification

Details: https://github.com/WebAssembly/exception-handling


Design docs

https://github.com/WebAssembly/exception-handling/blob/master/proposals/Exceptions.md


Summary

This feature is adding exception support to WebAssembly. Exception handling allows code to break control flow when an exception is thrown. The exception can be any exception known by the WebAssembly module, or it may be an unknown exception that was thrown by a called imported function.


Blink component

Blink>JavaScript>WebAssembly


Search tags

wasm, webassembly, exceptions


TAG review

Not required for WebAssembly feature launches


TAG review status

Not applicable


Risks

Interoperability and Compatibility


Gecko: Positive (https://bugzilla.mozilla.org/show_bug.cgi?id=1335652)


Edge: Positive (https://github.com/Microsoft/ChakraCore/issues/3483)


WebKit: No signal


Web developers: Positive (https://github.com/WebAssembly/exception-handling) This feature is one of the last bits missing to port legacy c++ apps to the web



Goals for experimentation

Need to verify if the scope of the current spec is sufficient for WebAssembly users and if the handling is comparable to the native environment.


Reason this experiment is being extended

N/A


Debuggability

Liftoff support will ensure debuggability via DevTools in general. Additional work is planned for M91 to allow inspection of a thrown exception, break on throw, break on catch etc.



Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, Chrome OS, Android, and Android WebView)?

No (only Windows, Linux, Mac, Chrome)


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

No.

Currently only internal tests are implemented.  

Fuzzer support is planned to land before the M90 branch cut.


Tracking bug

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


Launch bug

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



Link to entry on the Chrome Platform Status

https://chromestatus.com/feature/4756734233018368


yo...@yoav.ws

unread,
Feb 4, 2021, 3:43:42 AM2/4/21
to blink-dev, va...@chromium.org
On Tuesday, February 2, 2021 at 5:24:10 PM UTC+1 va...@chromium.org wrote:

Contact emails

thib...@chromium.org, ah...@chromium.org, va...@chromium.org, ahe...@chromium.org


Explainer

Current spec explainer


Specification

Details: https://github.com/WebAssembly/exception-handling


Design docs

https://github.com/WebAssembly/exception-handling/blob/master/proposals/Exceptions.md


Summary

This feature is adding exception support to WebAssembly. Exception handling allows code to break control flow when an exception is thrown. The exception can be any exception known by the WebAssembly module, or it may be an unknown exception that was thrown by a called imported function.


Blink component

Blink>JavaScript>WebAssembly


Search tags

wasm, webassembly, exceptions


TAG review

Not required for WebAssembly feature launches


TAG review status

Not applicable


Risks

Interoperability and Compatibility


Gecko: Positive (https://bugzilla.mozilla.org/show_bug.cgi?id=1335652)


Edge: Positive (https://github.com/Microsoft/ChakraCore/issues/3483)


WebKit: No signal


Would be good to reach out: https://bit.ly/blink-signals 

yo...@yoav.ws

unread,
Feb 4, 2021, 3:44:37 AM2/4/21
to blink-dev, yo...@yoav.ws, va...@chromium.org
What's would be the experiment's timeline? Do you have partners lined up to try the API?

Lutz Vahl

unread,
Feb 4, 2021, 4:18:36 AM2/4/21
to yo...@yoav.ws, blink-dev
Hi Yoav,

Thanks for the feedback, see my comments below.

On Thu, Feb 4, 2021 at 9:44 AM yo...@yoav.ws <yo...@yoav.ws> wrote:
What's would be the experiment's timeline? Do you have partners lined up to try the API?
We're planning to run the OT for 4x milestones (90-94) to give partners enough time to verify their use cases and prepare for the stable launch. 
Yes partners (incl. one WebPlatform top partner) requested this OT to verify the current scope of the spec. We're confident to receive sufficient feedback based on the OT.
Will do! 
 


Web developers: Positive (https://github.com/WebAssembly/exception-handling) This feature is one of the last bits missing to port legacy c++ apps to the web



Goals for experimentation

Need to verify if the scope of the current spec is sufficient for WebAssembly users and if the handling is comparable to the native environment.


Reason this experiment is being extended

N/A


Debuggability

Liftoff support will ensure debuggability via DevTools in general. Additional work is planned for M91 to allow inspection of a thrown exception, break on throw, break on catch etc.



Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, Chrome OS, Android, and Android WebView)?

No (only Windows, Linux, Mac, Chrome)


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

No.

Currently only internal tests are implemented.  

Fuzzer support is planned to land before the M90 branch cut.


Tracking bug

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


Launch bug

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



Link to entry on the Chrome Platform Status

https://chromestatus.com/feature/4756734233018368


--
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+...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/ed5b81ba-aa2d-420f-a47f-6e68705a1953n%40chromium.org.

Yoav Weiss

unread,
Feb 4, 2021, 4:26:35 AM2/4/21
to Lutz Vahl, blink-dev
LGTM to experiment M90-94

Joe Medley

unread,
Feb 22, 2021, 10:24:05 AM2/22/21
to Lutz Vahl, blink-dev
Lutz,

Is this really only on desktop?

Joe
Joe Medley | Technical Writer, Chrome DevRel | jme...@google.com | 816-678-7195
If an API's not documented it doesn't exist.


--
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+...@chromium.org.

Lutz Vahl

unread,
Feb 22, 2021, 10:28:42 AM2/22/21
to Joe Medley, blink-dev
Hi Joe,

it's available as well on Android (as the code base is the same) but the partners are looking into the Desktop implementation explicitly during the OT.

Thomas Nattestad

unread,
Sep 7, 2021, 9:47:29 AM9/7/21
to blink-dev, va...@chromium.org, blink-dev, Joe Medley, Emanuel Ziegler, Thomas Nattestad
Hi blink-dev API owners, 

Per the guidance shared by the Origin Trials team, we'd like to request an exception to the 1 week of breakage between the end of the trial and the launch of the feature on stable. We've seen good engagement from developers on the explainer and have a P0 partner who is leveraging the functionality successfully (the partner is confidential but ping me internally if anyone needs to know). Let us know if you'd like an additional validation material from us before granting the exception. 

Let us know if this is a question for the OT team, but we also wanted to understand if we could risk breakage for stragglers on older Chrome versions. Even if we extend the OT by a week until the stable launch of the feature, wouldn't there still be stragglers on the old version when the OT expires? We have a partner that is currently using this functionality for an ongoing beta of theirs so would like to avoid breaking their users. 

Cheers,
Thomas 

Chris Harrelson

unread,
Sep 7, 2021, 11:22:13 AM9/7/21
to Thomas Nattestad, blink-dev, va...@chromium.org, Joe Medley, Emanuel Ziegler
LGTM for gapless. I agree there is evidence of developer engagement.

On Tue, Sep 7, 2021 at 6:47 AM 'Thomas Nattestad' via blink-dev <blin...@chromium.org> wrote:
Hi blink-dev API owners, 

Per the guidance shared by the Origin Trials team, we'd like to request an exception to the 1 week of breakage between the end of the trial and the launch of the feature on stable. We've seen good engagement from developers on the explainer and have a P0 partner who is leveraging the functionality successfully (the partner is confidential but ping me internally if anyone needs to know). Let us know if you'd like an additional validation material from us before granting the exception. 

Let us know if this is a question for the OT team, but we also wanted to understand if we could risk breakage for stragglers on older Chrome versions. Even if we extend the OT by a week until the stable launch of the feature, wouldn't there still be stragglers on the old version when the OT expires? We have a partner that is currently using this functionality for an ongoing beta of theirs so would like to avoid breaking their users.

This question has come up before. It's ok to extend the OT for those older versions to avoid this problem.
 
Reply all
Reply to author
Forward
0 new messages