Closed Bug 1721686 Opened 4 years ago Closed 4 years ago

Improve the intrinsics framework

Categories

(Core :: JavaScript: WebAssembly, task, P2)

task

Tracking

()

RESOLVED FIXED
94 Branch
Tracking Status
firefox94 --- fixed

People

(Reporter: rhunt, Assigned: rhunt)

References

Details

Attachments

(6 files)

  • Support multiple intrinsics in a module
  • Support shared memory
  • Expose mozIntGemm() on WebAssembly when in privileged content
  • Add tests to ensure we don't expose this unwittingly to web content

Before this commit we would unconditionally define the constructors for
exception handling objects on the wasm namespace if the feature was
compile-time enabled. We should further restrict this to only
enable the feature if the runtime flag is also enabled.

Depends on D120662

This commit modifies test_interfaces.js to also test the exposed interfaces
in the WebAssembly namespace. We have conditional features that we'd like
to have confidence that we're not accidentally exposing to web content.

Currently there are:

  • WebAssembly exceptions, enabled only in nightly with a default-off pref
  • mozIntGemm accelerator function, available only in system or addon principals

Depends on D120731

Landing everything but the final test as I've verified that it passes and don't want to block the result of this work.

Keywords: leave-open
Pushed by rhunt@eqrion.net: https://hg.mozilla.org/integration/autoland/rev/7bbc69180316 wasm: Allow multiple intrinsics in an intrinsics module. r=yury https://hg.mozilla.org/integration/autoland/rev/226e4f35aa52 wasm: Allow requiring shared memory for an intrinsics module. r=yury https://hg.mozilla.org/integration/autoland/rev/7ff074e3a920 wasm: Add mozIntGemm() to WebAssembly namespace in privileged content. r=yury https://hg.mozilla.org/integration/autoland/rev/248879341368 wasm: Define exception handling constructors only if runtime enabled. r=yury

One of the commits changed the expected test results for wasm exception-handling WPT's. Updated patches update the expectations.

Flags: needinfo?(rhunt)
Pushed by rhunt@eqrion.net: https://hg.mozilla.org/integration/autoland/rev/55cc3ae54759 wasm: Allow multiple intrinsics in an intrinsics module. r=yury https://hg.mozilla.org/integration/autoland/rev/b24f7485b46c wasm: Allow requiring shared memory for an intrinsics module. r=yury https://hg.mozilla.org/integration/autoland/rev/c4541cb343ae wasm: Add mozIntGemm() to WebAssembly namespace in privileged content. r=yury https://hg.mozilla.org/integration/autoland/rev/a00942e4cb52 wasm: Define exception handling constructors only if runtime enabled. r=yury
Pushed by ydelendik@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/010ddecfd41c wasm: Generate intrinsics boilerplate code via yaml. r=rhunt
Pushed by rhunt@eqrion.net: https://hg.mozilla.org/integration/autoland/rev/482ce06ec0d2 Add test for exposed interfaces on WebAssembly namespace. r=smaug
Keywords: leave-open
Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → 94 Branch
Regressions: 1730152
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: