Skip to content

Commit a40ed6b

Browse files
author
probe
committed
test(webui): wait for the page's state in the isolated Chromium suite
The suite slept 750ms after every navigation, every frame and every repaint. The case that walks a page's history spent five of those sleeps — 3750ms of its 4412ms — asleep, so it blew through the 5000ms budget on a runner a little slower than the one it was measured on. Nothing in the product had changed: the case failed on mainline on its own arithmetic. Every sleep is now a wait for the state the case asserts: the title the page shows, the generation the provider holds for it, the page's place in the target list, the frame that has arrived. A wait that never comes true fails the case at its own deadline with the state it waited for named, so the cases fail faster and say more than they did — the sleeps only ever guessed, and several of them guessed about something the provider already reports exactly. The streaming case opens each page's stream while that page is the one on screen, because Chrome renders the front page and throttles the ones behind it. Before, the second stream took the front and the first page produced no picture at all: the case passed on CI by luck and failed here every time. The four cases that drive a real browser and measured over 700ms are given a 30s budget, the number the repository's other real-browser suites use (browser-panel-live-navigation and workspace-browser-tab-acceptance; webui-dependency-check uses 60s for its own gate). The eight that measured under 250ms keep the default budget, so a case that suddenly takes seconds still says something. The teeth are in the waits: a broken navigation fails at the 3s wait deadline with the state it waited for named, not by running a budget out. Checked against a real Chromium: the case that failed on mainline went from 4412ms (4503ms here) to 1075ms, and the file from 39910ms to about 5200ms. Breaking the provider's back/forward on purpose fails the case in 3767ms with "timed out waiting for the back navigation to land"; breaking its generation counter fails two more, at 3851ms and 4146ms. The suite's Chrome discovery now knows about macOS, the way the provider's own candidate list does, so the suite runs — and can be checked — on a developer machine at all.
1 parent 90e0dce commit a40ed6b

1 file changed

Lines changed: 249 additions & 53 deletions

File tree

0 commit comments

Comments
 (0)