Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chromium: resolve ref to rev for blink version string #358997

Merged
merged 1 commit into from
Nov 25, 2024

Conversation

emilylange
Copy link
Member

Ref: #357925 (comment)

This allows us to match the version the binaries use more closely.

For example, chromedriver darwin (binary) reports the following:

chromedriver --version
ChromeDriver 131.0.6778.85 (3d81e41b6f3ac8bcae63b32e8145c9eb0cd60a2d-refs/branch-heads/6778@{#2285})

while on Linux, where we build chromedriver based on the chromium derivation from source and control the string ourselves:

chromedriver --version
ChromeDriver 131.0.6778.85 (131.0.6778.85-refs/heads/master@{#0})

With this commit, the version string now reports:

chromedriver --version
ChromeDriver 131.0.6778.85 (3d81e41b6f3ac8bcae63b32e8145c9eb0cd60a2d-refs/tags/131.0.6778.85@{#0})

This may seem like a small and unimportant detail, but turns out an internal function within chromedriver depends on the git hash.

See https://chromium.googlesource.com/chromium/src/+/131.0.6778.85/chrome/test/chromedriver/chrome/browser_info.cc#172

This caused the tests of one package (single-file-cli) that use selenium with chromium and chromedriver to fail in 24.05.

Only in 24.05, because 24.11 and unstable removed their test dependency on chromedriver because it wasn't available for aarch64-linux at that time.

Running phase: checkPhase
Serving HTTP on 127.0.0.1 port 8000 (http://127.0.0.1:8000/) ... session not created
from unknown error: unrecognized Blink revision: 131.0.6778.85 URL: http://127.0.0.1:8000 Stack: SessionNotCreatedError: session not created from unknown error: unrecognized Blink revision: 131.0.6778.85
    at Object.throwDecodedError (/build/source/node_modules/selenium-webdriver/lib/error.js:524:15)
    at parseHttpResponse (/build/source/node_modules/selenium-webdriver/lib/http.js:601:13)
    at Executor.execute (/build/source/node_modules/selenium-webdriver/lib/http.js:529:28)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)

Things done

  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)
    • sandbox = relaxed
    • sandbox = true
  • Tested, as applicable:
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
  • Tested basic functionality of all binary files (usually in ./result/bin/)
  • 25.05 Release Notes (or backporting 24.11 and 25.05 Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
  • Fits CONTRIBUTING.md.

This allows us to match the version the binaries use more closely.

For example, chromedriver darwin (binary) reports the following:

~~~bash
chromedriver --version
ChromeDriver 131.0.6778.85 (3d81e41b6f3ac8bcae63b32e8145c9eb0cd60a2d-refs/branch-heads/6778@{NixOS#2285})
~~~

while on Linux, where we build chromedriver based on the chromium
derivation from source and control the string ourselves:

~~~bash
chromedriver --version
ChromeDriver 131.0.6778.85 (131.0.6778.85-refs/heads/master@{#0})
~~~

With this commit, the version string now reports:

~~~bash
chromedriver --version
ChromeDriver 131.0.6778.85 (3d81e41b6f3ac8bcae63b32e8145c9eb0cd60a2d-refs/tags/131.0.6778.85@{#0})
~~~

This may seem like a small and unimportant detail, but turns out an
internal function within chromedriver depends on the git hash.

See https://chromium.googlesource.com/chromium/src/+/131.0.6778.85/chrome/test/chromedriver/chrome/browser_info.cc#172

This caused the tests of one package (single-file-cli) that use
selenium with chromium and chromedriver to fail in 24.05.

Only in 24.05, because 24.11 and unstable removed their test dependency
on chromedriver because it wasn't available for aarch64-linux at that
time.

~~~
Running phase: checkPhase
Serving HTTP on 127.0.0.1 port 8000 (http://127.0.0.1:8000/) ...
session not created
from unknown error: unrecognized Blink revision: 131.0.6778.85 URL: http://127.0.0.1:8000
Stack: SessionNotCreatedError: session not created
from unknown error: unrecognized Blink revision: 131.0.6778.85
    at Object.throwDecodedError (/build/source/node_modules/selenium-webdriver/lib/error.js:524:15)
    at parseHttpResponse (/build/source/node_modules/selenium-webdriver/lib/http.js:601:13)
    at Executor.execute (/build/source/node_modules/selenium-webdriver/lib/http.js:529:28)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
~~~
@emilylange emilylange added the backport release-24.11 Backport PR automatically label Nov 25, 2024
@emilylange
Copy link
Member Author

nixpkgs-review result

Generated using nixpkgs-review.

Command: nixpkgs-review pr 358997


x86_64-linux

✅ 42 packages built:
  • aws-azure-login
  • chromedriver
  • chromium.sandbox
  • chromium
  • fast-cli
  • flaresolverr
  • gotenberg
  • grafana-kiosk
  • mermaid-cli
  • mermaid-filter
  • percollate
  • pinnwand.dist
  • playwright-test
  • puppeteer-cli
  • python311Packages.django-filingcabinet.dist
  • python311Packages.django-filingcabinet
  • python311Packages.great-tables.dist
  • python311Packages.great-tables
  • python311Packages.pytest-playwright.dist
  • python311Packages.pytest-playwright
  • python311Packages.shiny.dist
  • python311Packages.shiny
  • python312Packages.django-filingcabinet.dist
  • python312Packages.django-filingcabinet
  • python312Packages.great-tables.dist
  • python312Packages.great-tables
  • python312Packages.pytest-playwright.dist
  • python312Packages.pytest-playwright
  • python312Packages.shiny.dist
  • python312Packages.shiny
  • selendroid
  • selenium-server-standalone
  • sharedown
  • single-file-cli
  • sitespeed-io
  • undetected-chromedriver
  • ungoogled-chromium.sandbox
  • ungoogled-chromium
  • vhs
  • vscode-extensions.yzane.markdown-pdf
  • wayback

and single-file-cli builds successfully even with 0a5e4d1 reverted :)

@emilylange emilylange merged commit 8586e05 into NixOS:master Nov 25, 2024
17 of 18 checks passed
@emilylange emilylange deleted the chromium-version-embed branch November 25, 2024 22:19
Copy link
Contributor

Successfully created backport PR for release-24.11:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backport release-24.11 Backport PR automatically
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant