Skip to content

[pull] master from mozilla:master#416

Merged
pull[bot] merged 8 commits into
code:masterfrom
mozilla:master
Jun 14, 2026
Merged

[pull] master from mozilla:master#416
pull[bot] merged 8 commits into
code:masterfrom
mozilla:master

Conversation

@pull

@pull pull Bot commented Jun 14, 2026

Copy link
Copy Markdown

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

timvandermeij and others added 8 commits June 13, 2026 21:32
…is resizable` comment integration test

We use the generic `page.mouse.move(x, y, { steps }` API, but that purely
performs the mouse move steps without having knowledge about if/how the
application handles any events caused by it, so it doesn't wait for the
sidebar to render before moving on. This causes intermittent failures if
the sidebar didn't get enough time to render before the next mouse move
is initiated (which can happen in slower environments).

This commit fixes the issue by doing the mouse move steps ourselves and
by waiting for a browser trip between each of them to make sure that the
sidebar got a chance to render.

Fixes #21447.
Relates to #21044 / #21045 / 24e5377.
Fix intermittent failure in the `must check that the comment sidebar is resizable` comment integration test
Nowadays Chrome has a built-in (new) headless mode in the regular
binary, but before that time there was an old headless mode that was
essentially a separate binary [1]. We don't use the latter, but it turns
out that Puppeteer downloads it automatically if it's not explicitly
skipped, which is wasteful because it costs extra time and resources for
each `npm install` invocation.

This commit therefore skips downloading Chrome headless shell explictly,
which results in the local runtime of `npm install` going from 10.125
seconds to 8.998 seconds (which can't hurt in e.g. GitHub Actions).

[1] https://developer.chrome.com/blog/chrome-headless-shell.
We currently use the pinned version of Chrome as hardcoded in the
Puppeteer release, which is based on the version of Chrome that was
deemed stable at the time of the Puppeteer release.

However, this is not ideal because it means that Chrome updates are
strongly tied to Puppeteer releases, so if Puppeteer releases are slow
we could be missing out on e.g. (security) patches being applied on the
stable channel. It's also not consistent with Firefox where we don't
use a hardcoded pinned version either.

This commit therefore configures Puppeteer to use (resolve) the most
recent stable version of Chrome at the time of the installation so that
determining the browser version to use is fully decoupled from the
Puppeteer release we're running.

The effect of this change can be seen in the output of running
`npx puppeteer browsers list`:

Before:

`chrome@149.0.7827.22 (linux) <path>`

After (note the slightly newer version):

`chrome@149.0.7827.115 (linux)` <path>`
We currently download Chrome/Firefox immediately on `npm install`
invocations because Puppeteer's postinstall script does that by default.
However, this is wasteful if the user/workflow doesn't actually need to
run Puppeteer or its browsers, for example in GitHub Actions workflows
that do linting, static analysis or other tasks like updating locales or
publishing artifacts.

This commit therefore makes sure no browser binaries get pulled in by
default anymore, and defers doing that until it's actually necessary,
which is when we want to start the browsers in the `startBrowsers`
function of `test.mjs`.

Locally this brings the `npm install` runtime down from 8.998 to 1.800
seconds, and as a bonus it results in better log output too because it
now shows which browser versions were used in the run (whereas
previously with `npm install` this information was not sent to stdout).
Don't download Puppeteer browsers on `npm install`
This is a major version bump, but the changelog at
https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v66.0.0
doesn't indicate any breaking changes that should impact us.

However, improved rules do require a small number of changes here:

- The `prefer-array-some` rule no longer reports a false positive after
  sindresorhus/eslint-plugin-unicorn#3198 got
  fixed, so the ignore line that was added in commit 68a5ec1 is removed.

- The `prefer-ternary` rule triggers on more cases now, in particular
  `let` declarations with `if` reassignments, so a number of changes are
  made to make it pass again.

- The `prefer-at` rule triggers on more cases now, in particular
  `substring` calls that just extract a single character, so one change
  is made to make it pass again.
Upgrade `eslint-plugin-unicorn` to version 66.0.0
@pull pull Bot locked and limited conversation to collaborators Jun 14, 2026
@pull pull Bot added the ⤵️ pull label Jun 14, 2026
@pull pull Bot merged commit 3a09329 into code:master Jun 14, 2026
@pull pull Bot had a problem deploying to code-coverage June 14, 2026 20:03 Failure
@pull pull Bot had a problem deploying to code-coverage June 14, 2026 20:03 Failure
@pull pull Bot had a problem deploying to code-coverage June 14, 2026 20:03 Failure
@pull pull Bot had a problem deploying to code-coverage June 14, 2026 20:03 Failure
@pull pull Bot had a problem deploying to code-coverage June 14, 2026 20:03 Failure
@pull pull Bot had a problem deploying to code-coverage June 14, 2026 20:03 Failure
@pull pull Bot had a problem deploying to code-coverage June 14, 2026 20:03 Failure
@pull pull Bot had a problem deploying to code-coverage June 14, 2026 20:03 Failure
@pull pull Bot had a problem deploying to code-coverage June 14, 2026 20:03 Failure
@pull pull Bot had a problem deploying to code-coverage June 14, 2026 20:03 Failure
@pull pull Bot had a problem deploying to code-coverage June 14, 2026 20:03 Failure
@pull pull Bot had a problem deploying to code-coverage June 14, 2026 20:03 Failure
@pull pull Bot had a problem deploying to code-coverage June 14, 2026 20:03 Failure
@pull pull Bot had a problem deploying to code-coverage June 14, 2026 20:03 Failure
@pull pull Bot had a problem deploying to code-coverage June 14, 2026 20:03 Failure
@pull pull Bot had a problem deploying to code-coverage June 14, 2026 20:03 Failure
@pull pull Bot had a problem deploying to code-coverage June 14, 2026 20:03 Failure
@pull pull Bot had a problem deploying to code-coverage June 14, 2026 20:03 Failure
@pull pull Bot had a problem deploying to code-coverage June 14, 2026 20:03 Failure
@pull pull Bot had a problem deploying to code-coverage June 14, 2026 20:03 Failure
@pull pull Bot had a problem deploying to code-coverage June 14, 2026 20:03 Failure
@pull pull Bot had a problem deploying to code-coverage June 14, 2026 20:03 Failure
@pull pull Bot had a problem deploying to code-coverage June 14, 2026 20:03 Failure
@pull pull Bot had a problem deploying to code-coverage June 14, 2026 20:03 Failure
@pull pull Bot had a problem deploying to code-coverage June 14, 2026 20:03 Failure
@pull pull Bot had a problem deploying to code-coverage June 14, 2026 20:03 Failure
@pull pull Bot had a problem deploying to code-coverage June 14, 2026 20:03 Failure
@pull pull Bot had a problem deploying to code-coverage June 14, 2026 20:03 Failure
@pull pull Bot had a problem deploying to code-coverage June 14, 2026 20:03 Failure
@pull pull Bot had a problem deploying to code-coverage June 14, 2026 20:03 Failure
@pull pull Bot had a problem deploying to code-coverage June 14, 2026 20:03 Failure
@pull pull Bot had a problem deploying to code-coverage June 14, 2026 20:03 Failure
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants