Live-room defect (2026-06-03): Will refreshed his browser; the supplant fired a SECOND ontrack for kind=camera pub=Will at +16s. The page swapped srcObject on the existing <video>, called play(), got 'fetching process for the media resource was aborted by the user agent at the user's request' — browser refused to start a new playback session on the same element after its autoplay grant had already been consumed. Tile sat black on the moderator's screen. Fix: swapFreshVideoElement() — on supplant, replace the <video> with a freshly-built one carrying the same attrs. A brand-new <video> is eligible for muted-autoplay even when the prior one had its play() rejected, so the supplant lands cleanly without needing a tap. Applied to both the thumbnail and the spotlight tile. Mesh test harness extracts the helper so renderVideoTile still runs end-to-end under the sandbox. |
||
|---|---|---|
| .. | ||
| functional.c | ||
| integration.c | ||
| multi-peer-mesh.test.js | ||
| test.h | ||
| unit.c | ||
| video-track-removal.test.js | ||
| web-protocol.test.js | ||
| zebra-fsm.test.js | ||
| zebra-spaces.test.js | ||