8000 chromedriver-bin: ChromeDriver at chromium-headless-shell-bin's version by bryan-minimal · Pull Request #990 · gominimal/pkgs · GitHub
[go: up one dir, main page]

Skip to content

chromedriver-bin: ChromeDriver at chromium-headless-shell-bin's version - #990

Merged
bryan-minimal merged 1 commit into
mainfrom
split848-c-chromedriver
Oct 23, 2026
Merged

bryan-minimal merged 1 commit into
mainfrom
split848-c-chromedriver

Conversation

@bryan-minimal
Copy link
Copy Markdown
Member

Split out of #848, as suggested in review. This PR is only chromedriver-bin. It is independent of the other three parts.

What. This is ChromeDriver from Chrome for Testing, so Selenium-driven browser tests (Rails system tests, Capybara + selenium-webdriver) can run against packaged binaries. Without it, Selenium Manager downloads an unpinned Chrome and driver at test time.

Version. The version is not written in this file. It is chromium-headless-shell-bin.attrs.upstream_version, so the pair can't drift. ChromeDriver refuses a browser of a different major version. A browser bump changes the URLs here, and this build then fails on the two sha256s until they are updated in the same change, which is intended. matches_browser checks the driver binary, the browser binary and the declared version against each other.

Review points from #848

  • runtime_deps are now exactly the binaries' DT_NEEDED. I read them with llvm-readelf -d from both 155.0.8059.84 zips (their sha256s match the pins).
    • Both arches: libc, libdl, libpthread, libm, libgcc_s, glib, nspr, nss/nssutil and libxcb.
    • amd64 only: libdbus-1.
    • So gcc is now subsetOf gcc ["libgcc"], and dbus is added on amd64 only, via @ match { … } target as boost does. mip dump shows dbus in amd64's runtime_deps and not in arm64's. No libstdc++ is needed.
  • Why prebuilt. It's now in the header: ChromeDriver is built inside the Chromium tree with gn and Chromium's own toolchain, which pkgs does not build from source yet. It's on the same footing as chromium-headless-shell-bin, and binary_from names both zips.
  • License. As you said, LICENSE.chromedriver is the plain Chromium BSD-3-Clause grant. That's the same footing as headless-shell, not the branded chrome bundle.
  • source_provenance: kept for now, and here is why. You're right that GoogleChromeLabs/chrome-for-testing isn't the code's upstream. But dropping provenance leaves the package with no advisory query, and the morning coverage-health gate flags any newly dark package. That happened with ca-certificates this week.
    • The right identity is Chrome's (google:chrome), which chromium-bin and chromium-headless-shell-bin already share through supply-chain's CPE remap.
    • Adding a third package to that shared alias is a supply-chain change, best done with the chromium identity work in gominimal/pkgmgr-rs#1029.
    • I'd rather swap to the Chrome identity there than leave a dark package in between. If you'd prefer dropping it now and baselining it, say so and I'll do that instead.

Verification. A fresh remote session (pkgbuild loadout) ran min package build --rebuild chromedriver-bin then min check --packages chromedriver-bin. Every check is Pass, with no Skip, including missing runtime_deps (with gcc narrowed and dbus amd64-only) and both standalone tests (smoketest, matches_browser). nickel format --check, bash -n and mip dump (amd64 and arm64) are clean.

🤖 Generated with Claude Code

Split out of #848. Chrome for Testing's chromedriver, version imported from
chromium-headless-shell-bin so the pair cannot drift (a browser bump fails
this build on its sha256s until both move together). runtime_deps are the
binaries' DT_NEEDED: gcc narrowed to libgcc, dbus on amd64 only. Notes why
it is prebuilt.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@bryan-minimal
bryan-minimal requested a review from a team as a code owner October 22, 2026 19:23
@coderabbitai
coderabbitai Bot commented Oct 22, 2026
Copy link
Copy Markdown
Contributor

Warning

Review limit reached

  • Run on-demand review

This review includes 2 billable files and costs up to $0.50.

  • Ask an admin to make reviews automatic

Open in CodeRabbit

Reviews can continue after your included limit without a manual trigger. An admin must approve usage-based billing.

Or wait 47 minutes for your next included review.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available. Your 63 included PR review attempts over the past 7 days set your current allowance at 1 review per hour.

Learn how review limits work.

Review configuration:

⚙️ Run configuration
📥 Commits

Reviewing files that changed from the base of the PR and between befeac7 and 093ff42.

📒 Files selected for processing: 2
  • packages/chromedriver-bin/build.ncl
  • packages/chromedriver-bin/build.sh
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

@norrietaylor norrietaylor left a comment
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

  • It now takes subsetOf gcc ["libgcc"].
  • dbus is amd64-only, with the DT_NEEDED rationale in a comment.
  • The prebuilt justification is at :22-25.

Keeping source_provenance on the CfT repo until pkgmgr-rs#1029 is fine with me. I'm accepting the session min check evidence for the never-built-in-CI case.


Generated by Claude Code

@bryan-minimal
bryan-minimal added this pull request to the merge queue Oct 23, 2026
Merged via the queue into main with commit 509a9ac Oct 23, 2026
11 checks passed
@bryan-minimal
bryan-minimal deleted the split848-c-chromedriver branch October 23, 2026 03:41
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.

2 participants

0