Possible. Here's how I use a Web extension to stream real-time audio captured using a Native Messaging host to any arbitrary Web site using Transferable Streams with an iframe https://github.com/guest271314/native-messaging-piper/blob/main/background.js#L140-L291, and another example using SharedArrayBuffer to work with the same underlying data in an AudioWorklet with a Blob URL https://github.com/guest271314/AudioWorkletStream/blob/shared-memory-audio-worklet-stream/index.html.
On Tuesday, November 26, 2024 at 8:00:56 AM UTC-8 Kevin O'Dwyer wrote: > Yes, it is possible - I have multithreaded WASM running successfully > inside an iframe inside an iframe > In addition to COEP, COOP and CORS headers as per article you linked, you > will need to allow cross-origin-isolated on the iframe. > This is only required on Chrome as Firefox, Safari do not implement the > 'cross-origin-isolated' directive. > Documentation link for this experimental directive (table entry added June > 2024): > https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy#directives > > > > On Tuesday, 14 May 2024 at 06:47:25 UTC+1 J W wrote: > >> Same question here, I've been using SAB between a web worker and main >> thread. Works great out side of iframe, but in an iframe, SAB is not >> available. I have >> >> Cross-Origin-Opener-Policy: same-origin >> Cross-Origin-Embedder-Policy: require-corp >> >> set in the response header as well. >> >> On Friday, March 1, 2024 at 12:37:48 PM UTC-8 [email protected] wrote: >> >>> Hi, >>> >>> This isn't probably quite the right place to ask this, but here goes... >>> >>> I've got a multithreaded emscripten/webgpu app that therefore requires >>> the use of the JS sharedArrayBuffer class. >>> >>> To enable this, I have learned I have to add the follow headers to my >>> server responses: >>> >>> Cross-Origin-Opener-Policy: same-origin >>> Cross-Origin-Embedder-Policy: require-corp >>> >>> I have done this and it works great, eg: >>> >>> https://skirmish-dev.net/orkland/ >>> >>> This is running 2 background threads, one for the aerial image texture, >>> one for the height map texture. They each first unzip and then mipmap the >>> incoming data. It works fantastic and I'm still kind of amazed emscripten >>> can do this! >>> >>> BUT! If I try to place this inside an HTML iframe element, it doesn't >>> work - I get the same 'class sharedArrayBuffer not found' error I would get >>> if I left out the above headers. >>> >>> I have tried adding the same headers to the page that contains the >>> iframe but still nothing. I've tried a bunch of allow="" and sandbox="" >>> settings and nada. >>> >>> Is this even possible? I'm beginning to think it isn't. It's a question >>> that's often asked, but the answer always seems to be 'it should work if >>> you do blah blah!', never 'Yes, I've done that!'. >>> >>> There is also the Cross-Origin-Resource-Policy header, but my >>> understanding of that is it's intended for resources from a different >>> origin? All my resources are from the same origin, and it doesn't seem to >>> make a difference. >>> >>> The page I've been able to make the most sense of regarding all this is >>> here: >>> https://blog.stackblitz.com/posts/cross-browser-with-coop-coep/ >>> >>> Any corrections or more info would be most appreciated! >>> >>> Bye. >>> Mark >>> >>> -- You received this message because you are subscribed to the Google Groups "emscripten-discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion visit https://groups.google.com/d/msgid/emscripten-discuss/722361b5-6d43-4894-ae0d-02cf64386386n%40googlegroups.com.
