What happens
With the service active, a headed Chrome 154 session hangs on the first
navigation: browsingContext.navigate with wait: "complete" never returns and
the test dies at the 60 s timeout. The page itself loads and paints normally,
and nothing arrives on the BiDi channel for the whole minute.
Headless is unaffected, which is why CI and the mobile work never saw it. The
documented Chrome matrix for this repo stops at 152.
Cause, by bisection
The collector preload. session.ts registers the built @wdio/devtools-script
bundle, about 213 KB, via browser.scriptAddPreloadScript({ functionDeclaration })
with no browsing-context id. Skipping only that registration and changing
nothing else makes the same navigation complete in 4.66 s.
What that rules out, each by its own run rather than by argument:
| Excluded |
How |
| The dashboard window |
mode: 'trace' opens none, still hangs |
| The screencast |
filmstrip: false, and live mode starts none |
| Live vs trace mode |
both hang |
| The published build |
the workspace build behaves identically |
| Occluded-window throttling |
the page renders fully while hanging |
| The network |
the site answers in 0.9 s throughout |
| WebdriverIO or Chrome alone |
same spec, same browser, no service: passes in 5.7 s |
Reproducing
Any headed Chrome 154 run with the service on. examples/wdio/mocha does it with
its --headless line commented out, as it ships.
BIDI COMMAND browsingContext.navigate {"url":"…/login","wait":"complete"}
… 60 s of nothing …
Error: Timeout of 60000ms exceeded
What is not yet known
Why a preload of that size stalls the following navigation, and only headed. The
next cut is size against content: register a trivial preload, then progressively
larger ones, which separates a payload limit in the BiDi path from something the
collector does at document start. Until that is answered a fix would be a guess.
Worth noting the same mechanism is shared with the Selenium and Nightwatch
adapters through core/bidi-preload.ts, so this is unlikely to be
service-specific even though that is where it was found.
What happens
With the service active, a headed Chrome 154 session hangs on the first
navigation:
browsingContext.navigatewithwait: "complete"never returns andthe test dies at the 60 s timeout. The page itself loads and paints normally,
and nothing arrives on the BiDi channel for the whole minute.
Headless is unaffected, which is why CI and the mobile work never saw it. The
documented Chrome matrix for this repo stops at 152.
Cause, by bisection
The collector preload.
session.tsregisters the built@wdio/devtools-scriptbundle, about 213 KB, via
browser.scriptAddPreloadScript({ functionDeclaration })with no browsing-context id. Skipping only that registration and changing
nothing else makes the same navigation complete in 4.66 s.
What that rules out, each by its own run rather than by argument:
mode: 'trace'opens none, still hangsfilmstrip: false, and live mode starts noneReproducing
Any headed Chrome 154 run with the service on.
examples/wdio/mochadoes it withits
--headlessline commented out, as it ships.What is not yet known
Why a preload of that size stalls the following navigation, and only headed. The
next cut is size against content: register a trivial preload, then progressively
larger ones, which separates a payload limit in the BiDi path from something the
collector does at document start. Until that is answered a fix would be a guess.
Worth noting the same mechanism is shared with the Selenium and Nightwatch
adapters through
core/bidi-preload.ts, so this is unlikely to beservice-specific even though that is where it was found.