From 6f144ac99ef0e7aa43af33a2291223db666831cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miguel=20=C3=81ngel?= Date: Fri, 6 Nov 2026 22:09:49 -0500 Subject: [PATCH 1/2] test(player): a Safari perf run that fails says which wait timed out --- packages/player/tests/perf/browsers/run.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/player/tests/perf/browsers/run.ts b/packages/player/tests/perf/browsers/run.ts index 305d02540c1..a6b026e4476 100644 --- a/packages/player/tests/perf/browsers/run.ts +++ b/packages/player/tests/perf/browsers/run.ts @@ -262,7 +262,7 @@ async function runFilm(base: string, browser: Browser, origin: string, fixture: window.__bench = null; window.__hfBench(arguments[0]).then( (r) => { window.__bench = { ok: r }; }, - (e) => { window.__bench = { error: String(e && e.stack || e) }; });`, + (e) => { window.__bench = { error: [String(e), e && e.stack].filter(Boolean).join("\\n") }; });`, args: [{ playMs: PLAY_MS, seekFractions: SEEK_FRACTIONS }], }); const deadline = Date.now() + 180_000; From 157d6e4a7ee3bb6153afd35cfe790dc1b975f922 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miguel=20=C3=81ngel?= Date: Sat, 7 Nov 2026 06:39:53 -0500 Subject: [PATCH 2/2] test(player): a Safari run that never starts loading a video says so --- packages/player/tests/perf/browsers/bench-page.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/player/tests/perf/browsers/bench-page.js b/packages/player/tests/perf/browsers/bench-page.js index 6b0591e34e1..032fb6372b3 100644 --- a/packages/player/tests/perf/browsers/bench-page.js +++ b/packages/player/tests/perf/browsers/bench-page.js @@ -116,7 +116,14 @@ export async function bench(cfg) { const idle = await recordFrames(1000); host.play(); - await until(() => runtime.isPlaying(), 5_000, "isPlaying"); + await until(() => runtime.isPlaying(), 5_000, "isPlaying").catch((e) => { + // Safari sometimes reports a source as loading and never requests it; a reload does not help. + const unstarted = videos() + .filter((v) => v.readyState === 0 && v.networkState === 2) + .map((v) => v.currentSrc.split("/").pop()); + if (unstarted.length === 0) throw e; + throw new Error(`${e.message}: the browser never started loading ${unstarted.join(", ")}`); + }); countOps = true; const decodedBefore = decoded(); const droppedTimeline = [];