[CI] Remove --enable-experimental-web-platform-features from chrome flags - #27615
Conversation
… flags This flag was originally added in emscripten-core#16813 to test WasmFS OPFS support, which has shipped in stable Chrome since version 102. In Chrome 154, `--enable-experimental-web-platform-features` enables `AudioWorklet.port` (https://crbug.com/446920095). However, Chrome cannot deserialize `WebAssembly.Module` over a `MessagePort` into `AudioWorkletGlobalScope` (https://crbug.com/40210558). This causes Emscripten's feature check in `src/lib/libwebaudio.js` to skip the `em-bootstrap` AudioWorkletProcessor and attempt to transfer the Wasm module over `audioWorklet.port`, triggering a `messageerror` and breaking all audio worklet tests in Chrome 154.
|
I tried to fix the deserialization issue in Chromium and merged this patch, so it should no longer break emscripten tests. https://chromium-review.googlesource.com/c/chromium/src/+/8334848 |
|
Thanks @gz83 I'll give it a try and see if can confirm once that change is in canary. |
Add `--enable-blink-features=AudioWorkletSharedPort` to Chrome default flags to enable `AudioWorklet.port` (the spec-defined shared `MessagePort` between `AudioWorklet` and `AudioWorkletGlobalScope`). Add `get_chrome_version()` in `test/browser_common.py` and `requires_chrome_version` in `test/test_browser.py`. Add `test/webaudio/test_audio_worklet_port.c` and test `test_audio_worklet_port` to verify that when native `AudioWorklet.port` is present, the worklet uses it directly without falling back to the `em-bootstrap` `AudioWorkletProcessor`. See: emscripten-core#27615
|
I added a specific test for this that we can land once the fix lands in a chrome release: #27679 |
Add `--enable-blink-features=AudioWorkletSharedPort` to Chrome default flags to enable `AudioWorklet.port` (the spec-defined shared `MessagePort` between `AudioWorklet` and `AudioWorkletGlobalScope`). Add `get_chrome_version()` in `test/browser_common.py` and `requires_chrome_version` in `test/test_browser.py`. Add `test/webaudio/test_audio_worklet_port.c` and test `test_audio_worklet_port` to verify that when native `AudioWorklet.port` is present, the worklet uses it directly without falling back to the `em-bootstrap` `AudioWorkletProcessor`. See: emscripten-core#27615
Add `--enable-blink-features=AudioWorkletSharedPort` to Chrome default flags to enable `AudioWorklet.port` (the spec-defined shared `MessagePort` between `AudioWorklet` and `AudioWorkletGlobalScope`). Add `get_chrome_version()` in `test/browser_common.py` and `requires_chrome_version` in `test/test_browser.py`. Add `test/webaudio/test_audio_worklet_port.c` and test `test_audio_worklet_port` to verify that when native `AudioWorklet.port` is present, the worklet uses it directly without falling back to the `em-bootstrap` `AudioWorkletProcessor`. See: emscripten-core#27615
|
Sorry, the previous patch broke the test cases for component builds, which led to it being reverted. I'm currently working on fixing this issue and have uploaded a new patch. It's currently awaiting review and merge, so please check back later. https://chromium-review.googlesource.com/c/chromium/src/+/8364650 |
The patch has been released in version 155.0.8048.0. |
This flag was originally added in #16813 to test WasmFS OPFS support, which has shipped in stable Chrome since version 102.
In Chrome 154,
--enable-experimental-web-platform-featuresenablesAudioWorklet.port(https://crbug.com/446920095). However, Chrome cannot deserializeWebAssembly.Moduleover aMessagePortintoAudioWorkletGlobalScope(https://crbug.com/40210558).This causes Emscripten's feature check in
src/lib/libwebaudio.jsto skip theem-bootstrapAudioWorkletProcessor and attempt to transfer the Wasm module overaudioWorklet.port, triggering amessageerrorand breaking all audio worklet tests in Chrome 154.