commit 41656d690b521208189ed838c5ab474435b208c9
Author: Sam Clegg <sbc@chromium.org>
Date: Thu May 28 14:29:24 2026 -0700
[pthreads] Simplify message relaying code (#27018)
Historically, `targetThread` relaying was used to pass `objectTransfer`
messages (containing `OffscreenCanvas` objects) back to parent threads
on worker exit. This was introduced in commit 1b278917cd (2018/2019) and
required supporting `transferList` in the relaying code.
However, automatic canvas return on exit was later disabled in
6dcf7298e8 (2019) and the `objectTransfer` command was fully removed in
0f536c60bb (2021).
These days, the relaying mechanism is only used by `CMD_CHECK_MAILBOX`
(via `_emscripten_notify_mailbox_postmessage`) to send simple mailbox
notifications, which do not require a transfer list.
C:\emsdk\emscripten\main>test\runner browser.test_cross_origin
Running 1 tests
[1/1] test_cross_origin (test_browser.browser.test_cross_origin) ... FAIL
Stderr:
127.0.0.1 - - [31/May/2026 20:27:49] code 404, message File not found
127.0.0.1 - - [31/May/2026 20:27:49] "GET /hello.js HTTP/1.1" 200 -
127.0.0.1 - - [31/May/2026 20:27:49] "GET /hello.wasm HTTP/1.1" 200 -
127.0.0.1 - - [31/May/2026 20:27:49] "GET /hello.js HTTP/1.1" 200 -
======================================================================
FAIL: test_cross_origin (test_browser.browser.test_cross_origin)
----------------------------------------------------------------------
Traceback (most recent call last):
File "C:\emsdk\emscripten\main\test\common.py", line 380, in resulting_test
return func(self, *args)
File "C:\emsdk\emscripten\main\test\test_browser.py", line 5659, in test_cross_origin
self.run_browser('test.html', '/report_result?exit:0')
~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\emsdk\emscripten\main\test\browser_common.py", line 899, in run_browser
raise e
File "C:\emsdk\emscripten\main\test\browser_common.py", line 890, in run_browser
self.assertContained(expected, output)
~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
File "C:\emsdk\emscripten\main\test\common.py", line 1136, in assertContained
self.fail("Expected to find '%s' in '%s', diff:\n\n%s\n%s" % (
~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
limit_size(values[0]), limit_size(string), limit_size(diff),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
additional_info,
^^^^^^^^^^^^^^^^
))
^^
AssertionError: Expected to find '/report_result?exit:0
' in '/report_result?abort:Assertion failed
', diff:
--- expected
+++ actual
@@ -1 +1 @@
-/report_result?exit:0
+/report_result?abort:Assertion failed
Stderr:
127.0.0.1 - - [31/May/2026 20:27:49] code 404, message File not found
127.0.0.1 - - [31/May/2026 20:27:49] "GET /hello.js HTTP/1.1" 200 -
127.0.0.1 - - [31/May/2026 20:27:49] "GET /hello.wasm HTTP/1.1" 200 -
127.0.0.1 - - [31/May/2026 20:27:49] "GET /hello.js HTTP/1.1" 200 -
----------------------------------------------------------------------
Ran 1 test in 2.475s
FAILED (failures=1)
C:\emsdk\emscripten\main>
After PR #27018
the test
browser.test_cross_origin(and possibly several other tests, as the Firefox suites are now very red) are failing with