Skip to content

fix(ci): run the Firefox browser suites under a window manager - #154

Closed
NastMz wants to merge 1 commit into
mainfrom
fix/firefox-fullscreen-wm
Closed

NastMz wants to merge 1 commit into
mainfrom
fix/firefox-fullscreen-wm

Conversation

@NastMz

@NastMz NastMz commented Nov 13, 2026

Copy link
Copy Markdown
Owner

Problem

On ubuntu-24.04 runner images with Firefox 160 (image 20261103.629), the browser engine check fullscreen button and Alt+Enter fails with {"on":false,"w":960,"canvas":960}. This blocks CI result whenever the browser jobs run. Firefox 159 passes the same check.

Cause

I reproduced it in a container (Firefox 159.0 and 160.0 from ftp.mozilla.org, xvfb-run, puppeteer-core 25.13.0 over WebDriver BiDi):

Display Firefox 159 Firefox 160
Xvfb, no window manager enters fullscreen requestFullscreen() never settles (no fullscreenchange, no fullscreenerror, even after 6 s)
Xvfb with Openbox enters fullscreen enters fullscreen
Headless — enters fullscreen

The click carries user activation (navigator.userActivation.isActive is true). On X11, Firefox 160 waits for a window manager to make the window fullscreen, and xvfb-run starts none. The page's fullscreen button is correct: a real desktop always has a window manager.

Change

  • checks.yml: the browser engine job installs openbox, and the Firefox step starts it inside xvfb-run before the suites. Chrome's steps are unchanged.
  • docs/ci.md: says why Firefox runs under a window manager.

Evidence

The browser engine jobs of this PR should show Mozilla Firefox 160.0 and PASS firefox <Game>: fullscreen button and Alt+Enter. Jobs that land on an older runner image will still show Firefox 159.

🤖 Generated with Claude Code

Firefox 160 (ubuntu-24.04 runner image 20261103.629) fails the check
"fullscreen button and Alt+Enter" with {"on":false,"w":960}. Reproduced
in a container with Firefox 159.0 and 160.0 from ftp.mozilla.org under
xvfb-run and puppeteer-core 25.13.0 (WebDriver BiDi): the button's click
carries user activation (navigator.userActivation.isActive is true) and
calls requestFullscreen(), but on Firefox 160 on a bare Xvfb the promise
never settles and neither fullscreenchange nor fullscreenerror fires,
even after 6 s. Firefox 159 completes the same request on the same
display. With a window manager (Openbox) running on the display, both
versions enter fullscreen; headless Firefox 160 does too. So Firefox 160
on X11 waits for the window manager to make the window fullscreen, and
xvfb-run starts none. The page's fullscreen button is correct: a real
desktop always has a window manager.

The browser engine job installs openbox and the Firefox step starts it
inside xvfb-run before the suites. Chrome's steps are unchanged.
@github-actions

Copy link
Copy Markdown

Preview of 52e3dc7 (candidates demos): https://micro-engine-mztjy34r1-nastmzs-projects.vercel.app

@NastMz NastMz closed this Nov 13, 2026
@NastMz
NastMz deleted the fix/firefox-fullscreen-wm branch November 13, 2026 02:58

This branch was successfully deployed

1 active deployment
preview — 52e3dc74 Deployed Nov 13, 2026 by NastMz via Site / Deploy preview #408
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant