WICG / shared-storage

Explainer for proposed web platform Shared Storage API
Other
84 stars 18 forks source link

Consider supporting WebAssembly in Shared Storage worklets more robustly #153

Open pythagoraskitty opened 2 months ago

pythagoraskitty commented 2 months ago

Currently, shared storage worklets support use of WebAssembly if the WASM bytes are passed in e.g. as an Uint8Array member of the data object in a worklet operation, of if they are hard-coded inside the worklet operation's definition. Fetching the bytes cannot take place within the worklet, nor can importing any files.

Similarly, any accompanying JavaScript glue code needed to run the WASM cannot be imported into the shared storage module in a traditional sense and so must either be written in the shared storage module itself or else passed in as a string member of the data object in a worklet operation, then evaluated inside the operation.

We understand that the current support for WebAssembly in Shared Storage may not be ideal, and would like to know if there would be interest in us implementing a more robust solution.

For instance, Protected Audience allows developers to provide a biddingWasmHelperURL pointing to a WebAssembly binary, and the browser takes care of the fetch and instantiation of a WebAssembly.Module that it then makes available to the bidding worklet's JavaScript.

Please let us know what you think. Thank you.