#54726: test: run more fullscreen specs serially
Description of Change
Like #54549, tag the remaining specs that move a window in or out of fullscreen (or kiosk) mode as serial.
Under the parallel runner, these transitions can overlap with another worker's, so one never finishes and the test times out.
A fullscreen window can also cover other workers' windows and change their visibility or focus.
Downstream CI on 42-x-y, 43-x-y and 44-x-y hits "BrowserWindow … remembers state before HTML fullscreen" (37 failures) and other fullscreen timeouts.
On 43-x-y and 44-x-y they still fail on builds that already have the earlier upstream fullscreen mitigations.
Tagged serial:
api-browser-window.spec.ts:- macOS and Windows:
- "correctly reports maximized state after maximizing then fullscreening"
restore()"should not break fullscreen state"
- macOS:
- the two
setWindowButtonVisibility()fullscreen tests - "BrowserWindow.setFullScreen(false) when HTML fullscreen"
- "does not open non-fullscreenable child windows in fullscreen if parent is fullscreen"
- "kiosk state"
- "fullscreen state with resizable set"
- the two
- Windows:
- "when fullscreen state is changed" and "fullscreen state", both under "window states (excluding Linux)"
getNormalBounds()"Fullscreen state"setFullScreen(false)"on windows"
- macOS and Windows:
chromium.spec.ts:navigator.keyboard"should lock the keyboard" (Linux and Windows).webview.spec.ts: "requestFullscreen from webview".api-web-contents-view.spec.ts: "can be fullscreened".
Only test code changes.
Most of the diff is the formatter rewrapping lines that the tag made too long.
Validation
Ran on a local Linux testing build of main:
e test --files spec/api-browser-window.spec.ts spec/webview.spec.ts spec/api-web-contents-view.spec.ts -g "when fullscreen state is changed|fullscreen state|requestFullscreen from webview|can be fullscreened": the tagged tests that run on Linux now run in the serial phase and pass.e test --files spec/chromium.spec.ts -g "navigator.keyboard": "should lock the keyboard" now runs in the serial phase and passes.- The macOS-only and Windows-only blocks aren't exercised on Linux, and only their tags change.
script/lint.js --jsandtsc -p tsconfig.spec.jsonpass.
🤖 Generated with Claude Code
Checklist
- I have built and tested this change
- I have filled out the PR description
- I have reviewed and verified the changes
-
npm testpasses - tests are changed or added
- PR release notes describe the change in a way relevant to app developers, and are capitalized, punctuated, and past tense.
Release Notes
Notes: none
Backports
Semver Impact
Semantic Versioning helps users understand the impact of updates:
- Major (X.y.z): Breaking changes that may require code modifications
- Minor (x.Y.z): New features that maintain backward compatibility
- Patch (x.y.Z): Bug fixes that don't change the API
- None: Changes that don't affect using facing parts of Electron