Skip to content

Conversation

@selenium-ci
Copy link
Member

@selenium-ci selenium-ci commented Aug 14, 2025

User description

This is an automated pull request to update pinned browsers and drivers

Merge after verify the new browser versions properly passing the tests and no bugs need to be filed


PR Type

Other


Description

  • Update Chrome beta version from 140.0.7339.6 to 140.0.7339.16

  • Update corresponding SHA256 checksums for all platforms

  • Includes both Chrome browser and ChromeDriver updates

  • Covers Linux and macOS x64 architectures


Diagram Walkthrough

flowchart LR
  A["Chrome Beta 140.0.7339.6"] --> B["Chrome Beta 140.0.7339.16"]
  C["Old SHA256 checksums"] --> D["Updated SHA256 checksums"]
  E["Linux & macOS builds"] --> F["Updated for both platforms"]
Loading

File Walkthrough

Relevant files
Configuration changes
repositories.bzl
Chrome beta version and checksum updates                                 

common/repositories.bzl

  • Updated Chrome beta version from 140.0.7339.6 to 140.0.7339.16
  • Updated SHA256 checksums for Linux and macOS Chrome builds
  • Updated SHA256 checksums for Linux and macOS ChromeDriver builds
  • Maintained same build configuration and file structure
+8/-8     

@selenium-ci selenium-ci added the B-build Includes scripting, bazel and CI integrations label Aug 14, 2025
@qodo-code-review
Copy link
Contributor

PR Reviewer Guide 🔍

Here are some key observations to aid the review process:

⏱️ Estimated effort to review: 2 🔵🔵⚪⚪⚪
🧪 No relevant tests
🔒 No security concerns identified
⚡ Recommended focus areas for review

Integrity Check

Verify the updated SHA256 checksums match the downloaded artifacts for all platforms to prevent cache/build failures.

        url = "https://storage.googleapis.com/chrome-for-testing-public/140.0.7339.16/linux64/chrome-linux64.zip",
        sha256 = "ced1841af7400a153e23cef3e39a7f9247034a0f1ce845b36b22904920db63e2",
        build_file_content = """
load("@aspect_rules_js//js:defs.bzl", "js_library")
package(default_visibility = ["//visibility:public"])

filegroup(
    name = "files",
    srcs = glob(["**/*"]),
)

exports_files(["chrome-linux64/chrome"])

js_library(
    name = "chrome-js",
    data = [":files"],
)
""",
    )
    http_archive(
        name = "mac_beta_chrome",
        url = "https://storage.googleapis.com/chrome-for-testing-public/140.0.7339.16/mac-x64/chrome-mac-x64.zip",
        sha256 = "dcc3d96ad192f15f10089b7a92fb429ba0a934f4820eecc3af44f0d961b4bcf5",
        strip_prefix = "chrome-mac-x64",
        patch_cmds = [
            "mv 'Google Chrome for Testing.app' Chrome.app",
            "mv 'Chrome.app/Contents/MacOS/Google Chrome for Testing' Chrome.app/Contents/MacOS/Chrome",
        ],
        build_file_content = """
load("@aspect_rules_js//js:defs.bzl", "js_library")
package(default_visibility = ["//visibility:public"])

exports_files(["Chrome.app"])

js_library(
    name = "chrome-js",
    data = glob(["Chrome.app/**/*"]),
)
""",
    )
    http_archive(
        name = "linux_beta_chromedriver",
        url = "https://storage.googleapis.com/chrome-for-testing-public/140.0.7339.16/linux64/chromedriver-linux64.zip",
        sha256 = "f40639ecc590adea9583a15066afd8e2e3e84173435dc4e31d9b01afcc41bd66",
        strip_prefix = "chromedriver-linux64",
        build_file_content = """
load("@aspect_rules_js//js:defs.bzl", "js_library")
package(default_visibility = ["//visibility:public"])

exports_files(["chromedriver"])

js_library(
    name = "chromedriver-js",
    data = ["chromedriver"],
)
""",
    )

    http_archive(
        name = "mac_beta_chromedriver",
        url = "https://storage.googleapis.com/chrome-for-testing-public/140.0.7339.16/mac-x64/chromedriver-mac-x64.zip",
        sha256 = "931126b95bdaed2ae63001195c8506011d6e7d2554b61462c82e19671602978b",
        strip_prefix = "chromedriver-mac-x64",
URL Validity

Ensure all updated Chrome/ChromeDriver URLs resolve and artifacts contain expected structure (strip_prefix and patch_cmds still valid).

        url = "https://storage.googleapis.com/chrome-for-testing-public/140.0.7339.16/linux64/chrome-linux64.zip",
        sha256 = "ced1841af7400a153e23cef3e39a7f9247034a0f1ce845b36b22904920db63e2",
        build_file_content = """
load("@aspect_rules_js//js:defs.bzl", "js_library")
package(default_visibility = ["//visibility:public"])

filegroup(
    name = "files",
    srcs = glob(["**/*"]),
)

exports_files(["chrome-linux64/chrome"])

js_library(
    name = "chrome-js",
    data = [":files"],
)
""",
    )
    http_archive(
        name = "mac_beta_chrome",
        url = "https://storage.googleapis.com/chrome-for-testing-public/140.0.7339.16/mac-x64/chrome-mac-x64.zip",
        sha256 = "dcc3d96ad192f15f10089b7a92fb429ba0a934f4820eecc3af44f0d961b4bcf5",
        strip_prefix = "chrome-mac-x64",
        patch_cmds = [
            "mv 'Google Chrome for Testing.app' Chrome.app",
            "mv 'Chrome.app/Contents/MacOS/Google Chrome for Testing' Chrome.app/Contents/MacOS/Chrome",
        ],
        build_file_content = """
load("@aspect_rules_js//js:defs.bzl", "js_library")
package(default_visibility = ["//visibility:public"])

exports_files(["Chrome.app"])

js_library(
    name = "chrome-js",
    data = glob(["Chrome.app/**/*"]),
)
""",
    )
    http_archive(
        name = "linux_beta_chromedriver",
        url = "https://storage.googleapis.com/chrome-for-testing-public/140.0.7339.16/linux64/chromedriver-linux64.zip",
        sha256 = "f40639ecc590adea9583a15066afd8e2e3e84173435dc4e31d9b01afcc41bd66",
        strip_prefix = "chromedriver-linux64",
        build_file_content = """
load("@aspect_rules_js//js:defs.bzl", "js_library")
package(default_visibility = ["//visibility:public"])

exports_files(["chromedriver"])

js_library(
    name = "chromedriver-js",
    data = ["chromedriver"],
)
""",
    )

    http_archive(
        name = "mac_beta_chromedriver",
        url = "https://storage.googleapis.com/chrome-for-testing-public/140.0.7339.16/mac-x64/chromedriver-mac-x64.zip",
        sha256 = "931126b95bdaed2ae63001195c8506011d6e7d2554b61462c82e19671602978b",
        strip_prefix = "chromedriver-mac-x64",
        build_file_content = """

@qodo-code-review
Copy link
Contributor

qodo-code-review bot commented Aug 14, 2025

PR Code Suggestions ✨

Explore these optional code suggestions:

CategorySuggestion                                                                                                                                    Impact
Possible issue
Ensure consistent archive extraction path

Add the explicit strip_prefix or verify expected top-level directory structure
for the Linux Chrome archive. If the upstream archive layout changes between
versions, Bazel may place files under an unexpected path, breaking dependent
targets.

common/repositories.bzl [278-291]

 http_archive(
     name = "linux_beta_chrome",
     url = "https://storage.googleapis.com/chrome-for-testing-public/140.0.7339.16/linux64/chrome-linux64.zip",
     sha256 = "ced1841af7400a153e23cef3e39a7f9247034a0f1ce845b36b22904920db63e2",
+    strip_prefix = "chrome-linux64",
     build_file_content = """
 load("@aspect_rules_js//js:defs.bzl", "js_library")
 package(default_visibility = ["//visibility:public"])
 """,
 )

[To ensure code accuracy, apply this suggestion manually]

Suggestion importance[1-10]: 6

__

Why: This is a good suggestion for improving robustness by adding strip_prefix, which makes the build more predictable and consistent with other similar declarations in the file.

Low
Guard against archive layout drift

Validate that the chromedriver binary name or nested directory did not change
with this version. If upstream added an extra top-level folder, the current
strip_prefix will misplace files, breaking consumers at build time.

common/repositories.bzl [320-336]

 http_archive(
     name = "linux_beta_chromedriver",
     url = "https://storage.googleapis.com/chrome-for-testing-public/140.0.7339.16/linux64/chromedriver-linux64.zip",
-    sha256 = "f40639ecc590adea9583a15066afd8e2e3e84173435dc4e31d9b01afcc41bd66",
+    sha256 = "f40639ecc590adea9583a15066afd8e2e2e84173435dc4e31d9b01afcc41bd66",
     strip_prefix = "chromedriver-linux64",
     build_file_content = """
 load("@aspect_rules_js//js:defs.bzl", "js_library")
 """,
 )
  • Apply / Chat
Suggestion importance[1-10]: 5

__

Why: The suggestion correctly identifies a potential issue with archive structure changes and asks for verification, which is a valid and helpful check for this type of dependency update.

Low
Learned
best practice
Centralize version string usage

Avoid repeating the version string across multiple URLs; define a single
CHROME_BETA_VERSION constant and format the URLs using it. This reduces risk of
mismatched updates and makes future bumps safer.

common/repositories.bzl [280-340]

-url = "https://storage.googleapis.com/chrome-for-testing-public/140.0.7339.16/linux64/chrome-linux64.zip",
-...
-url = "https://storage.googleapis.com/chrome-for-testing-public/140.0.7339.16/mac-x64/chrome-mac-x64.zip",
-...
-url = "https://storage.googleapis.com/chrome-for-testing-public/140.0.7339.16/linux64/chromedriver-linux64.zip",
-...
-url = "https://storage.googleapis.com/chrome-for-testing-public/140.0.7339.16/mac-x64/chromedriver-mac-x64.zip",
+CHROME_BETA_VERSION = "140.0.7339.16"
 
+# ...
+url = "https://storage.googleapis.com/chrome-for-testing-public/{version}/linux64/chrome-linux64.zip".format(version = CHROME_BETA_VERSION),
+# ...
+url = "https://storage.googleapis.com/chrome-for-testing-public/{version}/mac-x64/chrome-mac-x64.zip".format(version = CHROME_BETA_VERSION),
+# ...
+url = "https://storage.googleapis.com/chrome-for-testing-public/{version}/linux64/chromedriver-linux64.zip".format(version = CHROME_BETA_VERSION),
+# ...
+url = "https://storage.googleapis.com/chrome-for-testing-public/{version}/mac-x64/chromedriver-mac-x64.zip".format(version = CHROME_BETA_VERSION),
+

[To ensure code accuracy, apply this suggestion manually]

Suggestion importance[1-10]: 6

__

Why:
Relevant best practice - Fix string formatting and interpolation issues by using consistent approaches and avoiding hard-coded duplicated literals; extract version to a single variable to prevent inconsistencies.

Low
  • Update

@navin772 navin772 merged commit 7881635 into trunk Aug 14, 2025
12 checks passed
@navin772 navin772 deleted the pinned-browser-updates branch August 14, 2025 05:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

B-build Includes scripting, bazel and CI integrations Review effort 2/5

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants