diff --git a/.github/ISSUE_TEMPLATE/bug-report.yml b/.github/ISSUE_TEMPLATE/bug-report.yml index a308b6a649df9..6efc3fe23f50f 100644 --- a/.github/ISSUE_TEMPLATE/bug-report.yml +++ b/.github/ISSUE_TEMPLATE/bug-report.yml @@ -50,7 +50,7 @@ body: id: selenium-version attributes: label: What version of Selenium are you currently using? - description: Important! The latest released version of Selenium is 4.33 and we can't fix old versions. + description: Important! The latest released version of Selenium is 4.36 and we can't fix old versions. placeholder: e.g., 4.17.0 validations: required: true diff --git a/.github/label-commenter-config.yml b/.github/label-commenter-config.yml index 4932a6aa025dd..890be6878ab68 100644 --- a/.github/label-commenter-config.yml +++ b/.github/label-commenter-config.yml @@ -117,7 +117,7 @@ labels: This is related to code in the Support packages. The support packages contain example code that many users find helpful, but they do not necessarily represent the best practices for using Selenium, and the Selenium team is not prioritizing work on them right now. - This doesn't mean that we won't ever work on them, but it is not on our roadmap as we push to release Selenium 5. + This doesn't mean that we won't ever work on them, but it is not on our long term roadmap. We actively encourage people to create their own wrapper and helper code that makes sense for them. If you have any questions, please [contact us](https://www.selenium.dev/support) @@ -127,10 +127,12 @@ labels: The support packages contain example code that many users find helpful, but they do not necessarily represent the best practices for using Selenium, and the Selenium team is not currently merging changes to them. + + After reviewing the change, unless it is a critical fix or a feature that is needed for Selenium + to work, we will likely close the PR. We actively encourage people to add the wrapper and helper code that makes sense for them to their own frameworks. If you have any questions, please [contact us](https://www.selenium.dev/support) - action: close diff --git a/.github/renovate.json b/.github/renovate.json index 818b30e75f3f7..1926d485b79c4 100644 --- a/.github/renovate.json +++ b/.github/renovate.json @@ -1,3 +1,26 @@ { - "labels": ["B-dependencies"] + "labels": [ + "B-dependencies" + ], + "docker": { + "enabled": false + }, + "packageRules": [ + { + "matchDatasources": [ + "docker" + ], + "enabled": false + }, + { + "matchPackagePatterns": [ + "^docker:", + "^gcr.io/", + "^registry.k8s.io/", + "^quay.io/", + "^ghcr.io/" + ], + "enabled": false + } + ] } diff --git a/.github/workflows/bazel.yml b/.github/workflows/bazel.yml index b323609b13132..017ab6fa92eea 100644 --- a/.github/workflows/bazel.yml +++ b/.github/workflows/bazel.yml @@ -122,7 +122,7 @@ jobs: node-version: ${{ inputs.node-version }} - name: Setup Bazel with caching if: inputs.caching - uses: bazel-contrib/setup-bazel@0.13.0 + uses: bazel-contrib/setup-bazel@0.15.0 with: bazelisk-cache: true bazelrc: common --color=yes @@ -136,7 +136,7 @@ jobs: repository-cache: true - name: Setup Bazel without caching if: inputs.caching == false - uses: bazel-contrib/setup-bazel@0.13.0 + uses: bazel-contrib/setup-bazel@0.15.0 with: bazelrc: common --color=yes - name: Setup curl for Ubuntu diff --git a/.github/workflows/ci-grid-ui.yml b/.github/workflows/ci-grid-ui.yml index 5bba8b9ed0b39..f9d1f145dbe76 100644 --- a/.github/workflows/ci-grid-ui.yml +++ b/.github/workflows/ci-grid-ui.yml @@ -25,7 +25,7 @@ jobs: - name: Setup Node.js uses: actions/setup-node@v4 with: - node-version: '18' + node-version: '20' cache: 'npm' cache-dependency-path: 'javascript/grid-ui/package.json' diff --git a/.github/workflows/ci-java.yml b/.github/workflows/ci-java.yml index 1ebd054c05089..63727764a0953 100644 --- a/.github/workflows/ci-java.yml +++ b/.github/workflows/ci-java.yml @@ -23,12 +23,13 @@ jobs: java-version: 17 run: | fsutil 8dot3name set 0 - bazel test --flaky_test_attempts 3 //java/test/org/openqa/selenium/chrome:ChromeDriverFunctionalTest ` + bazel test --flaky_test_attempts 3 --pin_browsers=true //java/test/org/openqa/selenium/chrome:ChromeDriverFunctionalTest ` //java/test/org/openqa/selenium/federatedcredentialmanagement:FederatedCredentialManagementTest ` //java/test/org/openqa/selenium/firefox:FirefoxDriverBuilderTest ` //java/test/org/openqa/selenium/grid/router:RemoteWebDriverDownloadTest ` //java/test/org/openqa/selenium/remote:RemoteWebDriverBuilderTest ` - //java/test/org/openqa/selenium/grid/router:RemoteWebDriverDownloadTest + //java/test/org/openqa/selenium/grid/router:RemoteWebDriverDownloadTest ` + //java/test/org/openqa/selenium/devtools:NetworkInterceptorRestTest browser-tests-macos: name: Browser Tests @@ -47,7 +48,7 @@ jobs: # https://github.com/bazelbuild/rules_jvm_external/issues/1046 java-version: 17 run: | - bazel test --flaky_test_attempts 3 //java/test/org/openqa/selenium/chrome:ChromeDriverFunctionalTest-remote \ + bazel test --flaky_test_attempts 3 --pin_browsers=true //java/test/org/openqa/selenium/chrome:ChromeDriverFunctionalTest-remote \ //java/test/org/openqa/selenium/federatedcredentialmanagement:FederatedCredentialManagementTest \ //java/test/org/openqa/selenium/firefox:FirefoxDriverBuilderTest \ //java/test/org/openqa/selenium/grid/router:RemoteWebDriverDownloadTest \ @@ -71,4 +72,4 @@ jobs: # https://github.com/bazelbuild/rules_jvm_external/issues/1046 java-version: 17 run: | - bazel test --flaky_test_attempts 3 //java/test/org/openqa/selenium/chrome:ChromeDriverFunctionalTest-remote + bazel test --flaky_test_attempts 3 --pin_browsers=true //java/test/org/openqa/selenium/chrome:ChromeDriverFunctionalTest-remote diff --git a/.github/workflows/ci-python.yml b/.github/workflows/ci-python.yml index 2053b1c41ff9b..173cf2fa64613 100644 --- a/.github/workflows/ci-python.yml +++ b/.github/workflows/ci-python.yml @@ -21,14 +21,14 @@ jobs: - name: Checkout source tree uses: actions/checkout@v4 - name: Set up Python 3.9 - uses: actions/setup-python@v4 + uses: actions/setup-python@v6 with: python-version: 3.9 - name: Install dependencies run: | python -m pip install --upgrade pip - pip install tox==4.25.0 - - name: Test with tox + pip install tox==4.30.2 + - name: Generate docs run: tox -c py/tox.ini env: TOXENV: docs @@ -41,17 +41,16 @@ jobs: - name: Checkout source tree uses: actions/checkout@v4 - name: Set up Python 3.9 - uses: actions/setup-python@v4 + uses: actions/setup-python@v6 with: python-version: 3.9 - name: Install dependencies run: | python -m pip install --upgrade pip - pip install tox==4.25.0 - - name: Test with tox + pip install tox==4.30.2 + - name: Run type checking run: | - tox -c py/tox.ini -- --cobertura-xml-report ci || true - bash <(curl -s https://codecov.io/bash) -f py/ci/cobertura.xml + tox -c py/tox.ini || true env: TOXENV: mypy @@ -90,8 +89,8 @@ jobs: os: ${{ matrix.os }} cache-key: py-browser-${{ matrix.browser }} run: | - bazel test --local_test_jobs 1 --flaky_test_attempts 3 //py:common-${{ matrix.browser }}-bidi - bazel test --local_test_jobs 1 --flaky_test_attempts 3 //py:test-${{ matrix.browser }} + bazel test --local_test_jobs 1 --flaky_test_attempts 3 --pin_browsers=true //py:common-${{ matrix.browser }}-bidi + bazel test --local_test_jobs 1 --flaky_test_attempts 3 --pin_browsers=true //py:test-${{ matrix.browser }} safari-tests: name: Browser Tests @@ -109,4 +108,4 @@ jobs: os: ${{ matrix.os }} cache-key: py-browser-${{ matrix.browser }} run: | - bazel test --local_test_jobs 1 --flaky_test_attempts 3 //py:test-${{ matrix.browser }} + bazel test --local_test_jobs 1 --flaky_test_attempts 3 --pin_browsers=true //py:test-${{ matrix.browser }} diff --git a/.github/workflows/ci-ruby.yml b/.github/workflows/ci-ruby.yml index 63aeb45c304ab..08cff26a7eda3 100644 --- a/.github/workflows/ci-ruby.yml +++ b/.github/workflows/ci-ruby.yml @@ -84,7 +84,7 @@ jobs: --local_test_jobs 1 --test_size_filters large --test_tag_filters ${{ matrix.browser }} - ${{ matrix.os != 'windows' && '--pin_browsers' || '' }} + --pin_browsers //rb/spec/... integration-tests-remote: @@ -96,7 +96,7 @@ jobs: matrix: include: - browser: edge - os: windows + os: macos with: name: Remote Tests (${{ matrix.browser }}, ${{ matrix.os }}) browser: ${{ matrix.browser }} @@ -111,5 +111,5 @@ jobs: --local_test_jobs 1 --test_size_filters large --test_tag_filters ${{ matrix.browser }}-remote - ${{ matrix.os != 'windows' && '--pin_browsers' || '' }} + --pin_browsers //rb/spec/... diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 00f86c98c0148..00e7031f760d9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -25,7 +25,7 @@ jobs: with: fetch-depth: 50 - name: Setup Bazel - uses: bazel-contrib/setup-bazel@0.13.0 + uses: bazel-contrib/setup-bazel@0.15.0 with: bazelisk-cache: true cache-version: 2 diff --git a/.github/workflows/pre-release.yml b/.github/workflows/pre-release.yml index fb0f5a5045f0d..4417a12d9a839 100644 --- a/.github/workflows/pre-release.yml +++ b/.github/workflows/pre-release.yml @@ -93,7 +93,7 @@ jobs: - name: Update browser versions run: ./go update_browsers ${{ github.event.inputs.chrome_channel }} - name: Commit browser updates - run: git commit -m "update pinned browser versions" + run: git commit -m "update pinned browser versions" || true - name: Update devtools versions run: ./go all:update_cdp ${{ github.event.inputs.chrome_channel }} - name: Commit DevTools updates diff --git a/.github/workflows/stage-release.yml b/.github/workflows/stage-release.yml index ec787db2e8fc3..ec797a780abc4 100644 --- a/.github/workflows/stage-release.yml +++ b/.github/workflows/stage-release.yml @@ -81,3 +81,5 @@ jobs: with: version: ${{ needs.github-release.outputs.version }} sha: ${{ github.sha }} + secrets: + SELENIUM_CI_TOKEN: ${{ secrets.SELENIUM_CI_TOKEN }} diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 65e6383b4472e..0f888d9584b3f 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -18,7 +18,7 @@ jobs: steps: - uses: actions/stale@v9 with: - stale-issue-message: 'This issue is stale because it has been open 280 days with no activity. Remove stale label or comment or this will be closed in 14 days.' + stale-issue-message: 'This issue is stale because it has been open 180 days with no activity. Remove stale label or comment or this will be closed in 14 days.' close-issue-message: 'This issue was closed because it has been stalled for 14 days with no activity.' stale-issue-label: 'J-stale' stale-pr-label: 'J-stale' diff --git a/.github/workflows/update-documentation.yml b/.github/workflows/update-documentation.yml index fb8d579ea891f..d9d1ff83f197f 100644 --- a/.github/workflows/update-documentation.yml +++ b/.github/workflows/update-documentation.yml @@ -19,6 +19,11 @@ on: - dotnet - node - all + force: + description: Force generation even if version is nightly, type "force" to enable + required: false + type: string + default: "" workflow_call: inputs: @@ -32,6 +37,9 @@ on: required: false type: string default: "all" + secrets: + SELENIUM_CI_TOKEN: + required: true env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -60,7 +68,7 @@ jobs: distribution: 'temurin' - name: Set up Python 3.9 if: ${{ inputs.language == 'py' || inputs.language == 'all' }} - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: python-version: 3.9 - name: Install dependencies @@ -74,7 +82,7 @@ jobs: npm install npm install --prefix javascript/selenium-webdriver - name: Generate Documentation for selected langauges - run: ./go ${{ inputs.language }}:docs + run: ./go ${{ inputs.language }}:docs ${{ inputs.force }} - name: Documentation Pull Request id: cpr uses: peter-evans/create-pull-request@v6 diff --git a/.gitignore b/.gitignore index ac79481f1a206..246f2c4bdaf7d 100644 --- a/.gitignore +++ b/.gitignore @@ -75,8 +75,9 @@ py/selenium/webdriver/remote/getAttribute.js py/selenium/webdriver/remote/isDisplayed.js py/docs/build/ py/docs/source/**/* +!py/docs/source/conf.py +!py/docs/source/*.rst py/build/ -py/LICENSE py/pytestdebug.log py/python.iml selenium.egg-info/ diff --git a/.idea/misc.xml b/.idea/misc.xml index c052579f90a0f..43262c34163c2 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -6,4 +6,4 @@ - \ No newline at end of file + diff --git a/.mailmap b/.mailmap index dc98f4b60f5be..ebcf4b058538b 100644 --- a/.mailmap +++ b/.mailmap @@ -16,7 +16,7 @@ Brandon Walderman Brian Burg Chethana Paniyadi Craig Nishina -Corey Goldberg <1113081+cgoldberg@users.noreply.github.com> +Corey Goldberg <1113081+cgoldberg@users.noreply.github.com> Dan Fabulich Daniel P. Purkhús diff --git a/.skipped-tests b/.skipped-tests index 3262c35fda88a..fba4d59fb1281 100644 --- a/.skipped-tests +++ b/.skipped-tests @@ -1,10 +1,14 @@ -//dotnet/test/common:NetworkInterceptionTests-chrome -//dotnet/test/common:NetworkInterceptionTests-edge +-//dotnet/test/firefox:FirefoxDriverTest-firefox -//java/test/org/openqa/selenium/chrome:ChromeDriverFunctionalTest -//java/test/org/openqa/selenium/chrome:ChromeDriverFunctionalTest-remote -//java/test/org/openqa/selenium/edge:EdgeDriverFunctionalTest -//java/test/org/openqa/selenium/edge:EdgeDriverFunctionalTest-edge -//java/test/org/openqa/selenium/edge:EdgeDriverFunctionalTest-remote +-//java/test/org/openqa/selenium/devtools:NetworkInterceptorRestTest +-//java/test/org/openqa/selenium/devtools:NetworkInterceptorRestTest-remote +-//java/test/org/openqa/selenium/federatedcredentialmanagement:FederatedCredentialManagementTest -//java/test/org/openqa/selenium/firefox:FirefoxDriverBuilderTest -//java/test/org/openqa/selenium/grid/gridui:OverallGridTest -//java/test/org/openqa/selenium/grid/router:RemoteWebDriverDownloadTest @@ -43,8 +47,8 @@ -//rb/spec/integration/selenium/webdriver/remote:element-edge-remote -//rb/spec/integration/selenium/webdriver/remote:element-firefox-beta-remote -//rb/spec/integration/selenium/webdriver/remote:element-firefox-remote +-//rb/spec/integration/selenium/webdriver:action_builder-firefox-beta-remote -//rb/spec/integration/selenium/webdriver:element-chrome -//rb/spec/integration/selenium/webdriver:element-chrome-bidi -//rb/spec/integration/selenium/webdriver:element-chrome-remote --//rb/spec/integration/selenium/webdriver:action_builder-firefox-beta-remote -//rb:lint diff --git a/AUTHORS b/AUTHORS index 9c6f362fc95fb..131093bad398f 100644 --- a/AUTHORS +++ b/AUTHORS @@ -17,6 +17,7 @@ AdamPDotty <81536237+AdamPDotty@users.noreply.github.com> Adi Roiban adiohana Aditya Pratap Singh +Adolfo Armas Adrian Dymorz Adrian Leonhard Agustin Pequeno <33221555+aguspe@users.noreply.github.com> @@ -35,8 +36,10 @@ albertor24 Aleksei Moskvin Alex <72409387+fergushev@users.noreply.github.com> Alex +Alex B <45384811+AB-xdev@users.noreply.github.com> Alex Eagle Alex Henrie +Alex Popov Alex Rodionov Alex Savchuk Alexander Bayandin @@ -75,6 +78,7 @@ Andrii Rohovets Andy Duncan Angie Jones anonymous_sdet +Anthony Richardson <26676+Osseta@users.noreply.github.com> Anthony Sottile Anton Usmansky Anton Velma @@ -100,6 +104,7 @@ Austin Michael Wilkins <42476341+amwilkins@users.noreply.github.com> BaerMitUmlaut Baran Ozgul Bartek Florczak +Ben Beasley Ben Congleton Ben Kucera <14625260+Bkucera@users.noreply.github.com> Ben Lamm @@ -126,6 +131,7 @@ Boris Osipov Boris Petrov Boris Wrubel bozdemir84 +Bradley Latreille <47356514+Bradltr95@users.noreply.github.com> Branden Cash <203336+ammmze@users.noreply.github.com> Brandon Walderman Brandon Williams @@ -174,7 +180,7 @@ clubfest ColinF colons Connor Shea -Corey Goldberg +Corey Goldberg <1113081+cgoldberg@users.noreply.github.com> Corey Schooler Coty Rosenblath Craig Nishina @@ -313,6 +319,7 @@ GFHuang <4510984+GF-Huang@users.noreply.github.com> ggkiokas <115367874+ggkiokas@users.noreply.github.com> Ghjuvan Lacambre Giorgos Tzampanakis +Giulio Longfils glaszig Glib Briia Godefroid Chapelle @@ -362,12 +369,14 @@ Iain Dawson Ian Lesperance ian zhang Iaroslav Naidon +iDONi <30952073+Aidoni0797@users.noreply.github.com> ifland Ilya Kozhevnikov Ilyas Bayraktar Immanuel Hayden Indomitable Innokenty Shuvalov +Ioan Giurgiu Isaac A. Murchie Isaul Vargas Ish Abbi @@ -547,6 +556,7 @@ Lucas Diniz Lucas Tierney Luis Correia Luis Pflamminger +Luis Serna Luke Hill Luke Inman-Semerau lukec @@ -559,6 +569,7 @@ Maid <37146904+ParadiseWitch@users.noreply.github.com> Malcolm Rowe MandarJKulkarni <33712629+MandarJKulkarni@users.noreply.github.com> Maneesh MS +Manikanta Reddy <89578665+MRTamalampudi@users.noreply.github.com> Manoj Kumar Manuel Blanco Marc Fisher @@ -672,10 +683,13 @@ nir-tal-talkspace <71274151+nir-tal-talkspace@users.noreply.github.com> Nirantak Raghav Nitish Noel Gordon +Noritaka Kobayashi +NoStory-py Nowell Strite Nozomi Ito no_author nvonop +nxs7 <69392661+nxs7@users.noreply.github.com> Oboleninov Anton Oleg Höfling Oleg Ridchenko <73664101+oleg-rd@users.noreply.github.com> @@ -693,6 +707,7 @@ Outsider Paladin Wang <49390614+eversoutheast@users.noreply.github.com> Pallavi Palmer Bandy <37938675+palmermbandy@users.noreply.github.com> +Paresh Gupta <123556346+Paresh-0007@users.noreply.github.com> Pat Tullmann Patrice Jaton Patrick Beart @@ -802,6 +817,7 @@ Seth Lemanek Seva Lotoshnikov Shan Shashank <42868640+snsten@users.noreply.github.com> +Shaurya Bisht <87357655+ShauryaDusht@users.noreply.github.com> Shay Dratler Shengfa <3363396+k7z45@users.noreply.github.com> shin @@ -889,6 +905,7 @@ Ulf Adams Ulrich Buchgraber User253489 V24 <55334829+umarfarouk98@users.noreply.github.com> +Vaibhav Gupta Valery Yatsynovich Varun Menon varunsurapaneni <67070327+varunsurapaneni@users.noreply.github.com> @@ -897,6 +914,8 @@ vedanthvdev <61700595+vedanthvdev@users.noreply.github.com> vergiliu vflame <0x484x0@gmail.com> Victor Tang +Victoria Ivanova +Victoria Ivanova Viet Nguyen Duc Vijay Singh Vijendarn Selvarajah <11275608+vijay44@users.noreply.github.com> @@ -934,6 +953,7 @@ Zeki Mokhtarzada zhangwenqiang00 Zhuo Peng Ziyu +zodac Zoltar - Knower of All zsong Ákos Lukács diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3c88ce7e33c76..822c21f4f1c12 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -14,12 +14,10 @@ the defect. If the issue can't be reproduced it will be closed. Please provide [concise reproducible test cases](http://sscce.org/) and describe what results you are seeing and what results you expect. -Issues shouldn't be used for support. Please address questions to the -[`selenium-users@` mailing list](https://groups.google.com/forum/#!forum/selenium-users). +Issues shouldn't be used for support. To raise a bug, please go to the +[Issue tracker](https://github.com/SeleniumHQ/selenium/issues). Discussion of high level project ideas or non-technical topics should -move to the -[`selenium-developers@` mailing list](https://groups.google.com/forum/#!forum/selenium-developers) -instead. +move to the Selenium [Slack channel](https://inviter.co/seleniumhq). We also need help with triaging [issues that needs investigation](https://github.com/SeleniumHQ/selenium/labels/I-needs%20investigation). @@ -34,7 +32,6 @@ with details describing what feature(s) you'd like added or changed. If you'd like a hand at trying to implement the feature yourself, please refer to the [Code Contributions](#code-contributions) section of the document. - ## Documentation Selenium is a big software project and documentation is key to @@ -57,16 +54,16 @@ significant and valuable contributions over time are made _Committers_ and given commit-access to the project. If you're looking for easy bugs, have a look at -[issues labelled E-easy](https://github.com/SeleniumHQ/selenium/issues?q=is%3Aopen+is%3Aissue+label%3AE-easy) +[issues labelled: `good first issue`](https://github.com/SeleniumHQ/selenium/issues?q=is%3Aopen%20is%3Aissue%20label%3A%22good%20first%20issue%22) on Github. This document will guide you through the contribution process. -### Step 1: Fork +### Step 1: Fork & Clone Fork the project [on Github](https://github.com/seleniumhq/selenium) -and check out your copy locally. Use `--depth 1` for a quick check out. -The repository is ~2GB and checking the whole history takes a while. +and clone the repository locally. Use `--depth 1` for a quick clone. +The repository is over 2GB and cloning the whole history takes a while. ```shell % git clone git@github.com:username/selenium.git --depth 1 @@ -76,7 +73,7 @@ The repository is ~2GB and checking the whole history takes a while. #### Dependencies -We bundle dependencies in the _third-party/_ directory that is not +We bundle dependencies in the _third-party/_ directory that are not part of the proper project. Any changes to files in this directory or its subdirectories should be sent upstream to the respective projects. Please don't send your patch to us as we cannot accept it. diff --git a/MODULE.bazel b/MODULE.bazel index 68994e475672f..dd60b47797859 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -1,7 +1,6 @@ module(name = "selenium") bazel_dep(name = "apple_rules_lint", version = "0.4.0") -bazel_dep(name = "aspect_rules_lint", version = "1.4.2") bazel_dep(name = "aspect_bazel_lib", version = "2.13.0") bazel_dep(name = "aspect_rules_esbuild", version = "0.21.0") bazel_dep(name = "aspect_rules_js", version = "2.3.7") @@ -16,27 +15,30 @@ bazel_dep(name = "platforms", version = "0.0.11") bazel_dep(name = "protobuf", version = "29.2", dev_dependency = True, repo_name = "com_google_protobuf") # Required for rules_rust to import the crates properly -bazel_dep(name = "rules_cc", version = "0.1.1", dev_dependency = True) +bazel_dep(name = "rules_cc", version = "0.2.0", dev_dependency = True) bazel_dep(name = "rules_dotnet", version = "0.17.5") bazel_dep(name = "rules_java", version = "8.7.1") -bazel_dep(name = "rules_jvm_external", version = "6.6") +bazel_dep(name = "rules_jvm_external", version = "6.8") +bazel_dep(name = "rules_multitool", version = "1.3.0") bazel_dep(name = "rules_nodejs", version = "6.3.2") bazel_dep(name = "rules_oci", version = "1.8.0") bazel_dep(name = "rules_pkg", version = "1.0.1") -bazel_dep(name = "rules_python", version = "1.1.0") +bazel_dep(name = "rules_python", version = "1.5.0") bazel_dep(name = "rules_proto", version = "7.0.2") bazel_dep(name = "rules_ruby", version = "0.19.0") # Until `rules_jvm_external` 6.8 ships -git_override( +single_version_override( module_name = "rules_jvm_external", - commit = "d8af22108bd8b353a226140570008231f2921931", patch_strip = 1, patches = ["//java:rules_jvm_external_javadoc.patch"], - remote = "https://github.com/bazel-contrib/rules_jvm_external.git", ) +multitool = use_extension("@rules_multitool//multitool:extension.bzl", "multitool") +multitool.hub(lockfile = "//:multitool.lock.json") +use_repo(multitool, "multitool") + linter = use_extension("@apple_rules_lint//lint:extensions.bzl", "linter") linter.configure( name = "java-spotbugs", @@ -171,20 +173,23 @@ maven.install( name = "maven", artifacts = [ "com.beust:jcommander:1.82", - "com.github.javaparser:javaparser-core:3.26.4", - "com.github.spotbugs:spotbugs:4.9.3", + "com.github.javaparser:javaparser-core:3.27.0", + "com.github.spotbugs:spotbugs:4.9.6", "com.github.stephenc.jcip:jcip-annotations:1.0-1", "com.google.code.findbugs:jsr305:3.0.2", - "com.google.code.gson:gson:2.13.1", - "com.google.guava:guava:33.4.8-jre", + "com.google.code.gson:gson:2.13.2", + "com.google.guava:guava:33.5.0-jre", + "com.github.ben-manes.caffeine:caffeine:3.2.2", "com.google.auto:auto-common:1.2.2", "com.google.auto.service:auto-service:1.1.1", "com.google.auto.service:auto-service-annotations:1.1.1", - "com.google.googlejavaformat:google-java-format:1.27.0", - "com.graphql-java:graphql-java:22.3", + "com.google.googlejavaformat:google-java-format:1.28.0", + "com.google.protobuf:protobuf-java:4.32.1", + "com.google.protobuf.nano:protobuf-javanano:3.1.0", + "com.graphql-java:graphql-java:24.1", "dev.failsafe:failsafe:3.3.2", - "io.grpc:grpc-context:1.72.0", - "io.lettuce:lettuce-core:6.6.0.RELEASE", + "io.grpc:grpc-context:1.75.0", + "io.lettuce:lettuce-core:6.8.1.RELEASE", "io.netty:netty-buffer", "io.netty:netty-codec-http", "io.netty:netty-codec-http2", @@ -202,14 +207,15 @@ maven.install( "io.opentelemetry:opentelemetry-sdk-testing", "io.opentelemetry:opentelemetry-sdk-trace", "it.ozimov:embedded-redis:0.7.3", - "net.bytebuddy:byte-buddy:1.17.5", - "org.htmlunit:htmlunit-core-js:4.12.0", - "org.apache.commons:commons-exec:1.4.0", - "org.apache.logging.log4j:log4j-core:2.24.3", - "org.assertj:assertj-core:3.27.3", - "org.bouncycastle:bcpkix-jdk18on:1.80", + "net.bytebuddy:byte-buddy:1.17.7", + "org.htmlunit:htmlunit-core-js:4.16.0", + "org.apache.commons:commons-exec:1.5.0", + "org.apache.logging.log4j:log4j-core:2.25.1", + "org.assertj:assertj-core:3.27.4", + "org.bouncycastle:bcpkix-jdk18on:1.82", "org.eclipse.mylyn.github:org.eclipse.egit.github.core:2.1.5", "org.hsqldb:hsqldb:2.7.4", + "org.jboss.marshalling:jboss-marshalling:2.2.3.Final", "org.jspecify:jspecify:1.0.0", "org.junit.jupiter:junit-jupiter-api", "org.junit.jupiter:junit-jupiter-engine", @@ -218,17 +224,19 @@ maven.install( "org.junit.platform:junit-platform-reporting", "org.junit.platform:junit-platform-commons", "org.junit.platform:junit-platform-engine", - "org.mockito:mockito-core:5.18.0", - "org.redisson:redisson:3.47.0", + "org.mockito:mockito-core:5.19.0", + "org.redisson:redisson:3.51.0", "org.slf4j:slf4j-api:2.0.17", "org.slf4j:slf4j-jdk14:2.0.17", "org.tomlj:tomlj:1.1.1", "org.zeromq:jeromq:0.6.0", + "uk.org.webcompere:system-stubs-jupiter:2.1.8", + "uk.org.webcompere:system-stubs-core:2.1.8", ], boms = [ - "io.opentelemetry:opentelemetry-bom:1.50.0", - "io.netty:netty-bom:4.1.121.Final", - "org.junit:junit-bom:5.12.2", + "io.opentelemetry:opentelemetry-bom:1.54.0", + "io.netty:netty-bom:4.2.6.Final", + "org.junit:junit-bom:5.13.4", ], excluded_artifacts = [ "org.hamcrest:hamcrest-all", # Replaced by hamcrest 2 @@ -265,23 +273,25 @@ ruby.bundle_fetch( "//:rb/selenium-webdriver.gemspec", ], gem_checksums = { - "activesupport-7.2.2.1": "842bcbf8a92977f80fb4750661a237cf5dd4fdd442066b3c35e88afb488647f5", + "activesupport-7.2.2.2": "c54e84bb3d9027f1f372fb8f68203538fcfe0d5ff42801774c03974daa15bef0", "addressable-2.8.7": "462986537cf3735ab5f3c0f557f14155d778f4b43ea4f485a9deb9c8f7c58232", "ast-2.4.3": "954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383", - "base64-0.2.0": "0f25e9b21a02a0cc0cea8ef92b2041035d39350946e8789c562b2d1a3da01507", - "benchmark-0.4.0": "0f12f8c495545e3710c3e4f0480f63f06b4c842cc94cec7f33a956f5180e874a", - "bigdecimal-3.1.9": "2ffc742031521ad69c2dfc815a98e426a230a3d22aeac1995826a75dabfad8cc", - "bigdecimal-3.1.9-java": "dd9b8f7c870664cd9538a1325ce385ba57a6627969177258c4f0e661a7be4456", + "base64-0.3.0": "27337aeabad6ffae05c265c450490628ef3ebd4b67be58257393227588f5a97b", + "benchmark-0.4.1": "d4ef40037bba27f03b28013e219b950b82bace296549ec15a78016552f8d2cce", + "bigdecimal-3.2.3": "ffd11d1ac67a0d3b2f44aec0a6487210b3f813f363dd11f1fcccf5ba00da4e1b", + "bigdecimal-3.2.3-java": "7293e87efd050feac875bff1c62335dd5e8ce65d86ad22d7a4a3b5ed4f0ab48d", "concurrent-ruby-1.3.5": "813b3e37aca6df2a21a3b9f1d497f8cbab24a2b94cab325bffe65ee0f6cbebc6", - "connection_pool-2.5.3": "cfd74a82b9b094d1ce30c4f1a346da23ee19dc8a062a16a85f58eab1ced4305b", + "connection_pool-2.5.4": "e9e1922327416091f3f6542f5f4446c2a20745276b9aa796dd0bb2fd0ea1e70a", "crack-1.0.0": "c83aefdb428cdc7b66c7f287e488c796f055c0839e6e545fec2c7047743c4a49", - "csv-3.3.4": "e96ecd5a8c3494aa5b596282249daba5c6033203c199248e6146e36d2a78d8cd", + "csv-3.3.5": "6e5134ac3383ef728b7f02725d9872934f523cb40b961479f69cf3afa6c8e73f", "curb-1.0.9": "07e5b74a4836103ce186827528f76a22d3991a9b7c45f5c10ee18ee7b03feb0d", "date-3.4.1": "bf268e14ef7158009bfeaec40b5fa3c7271906e88b196d958a89d4b408abe64f", "date-3.4.1-java": "74740d914c65a922a15657c25ff0e203c16f1d0f7aa910a9ebed712afe9819c4", - "debug-1.10.0": "11e28ca74875979e612444104f3972bd5ffb9e79179907d7ad46dba44bd2e7a4", - "diff-lcs-1.6.1": "12a5a83f3e37a8e2f4427268e305914d5f1879f22b4e73bb1a09f76a3dd86cd4", - "drb-2.2.1": "e9d472bf785f558b96b25358bae115646da0dbfd45107ad858b0bc0d935cb340", + "debug-1.11.0": "1425db64cfa0130c952684e3dc974985be201dd62899bf4bbe3f8b5d6cf1aef2", + "diff-lcs-1.6.2": "9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962", + "drb-2.2.3": "0b00d6fdb50995fe4a45dea13663493c841112e4068656854646f418fda13373", + "erb-5.0.2": "d30f258143d4300fb4ecf430042ac12970c9bb4b33c974a545b8f58c1ec26c0f", + "erb-5.0.2-java": "d000d963afebc166ec7f2499b2b3198d526790cf962c37514d7a85843a60423c", "ffi-1.17.2": "297235842e5947cc3036ebe64077584bff583cd7a4e94e9a02fdec399ef46da6", "ffi-1.17.2-java": "94c8516d7c97b21915497b994e41f69e7e8e21d5fc085c498b68e52044e191ec", "ffi-1.17.2-x64-mingw-ucrt": "15d2da54ee578657a333a6059ed16eaba1cbd794ceecd15944825b65c8381ac0", @@ -289,57 +299,57 @@ ruby.bundle_fetch( "ffi-1.17.2-x86_64-linux-gnu": "05d2026fc9dbb7cfd21a5934559f16293815b7ce0314846fee2ac8efbdb823ea", "fileutils-1.7.3": "57271e854b694a87755d76f836f5c57b2c9538ebbaf4b2154bb66addf15eb5da", "git-1.19.1": "b0a422d9f6517353c48a330d6114de4db9e0c82dbe7202964a1d9f1fbc827d70", - "hashdiff-1.1.2": "2c30eeded6ed3dce8401d2b5b99e6963fe5f14ed85e60dd9e33c545a44b71a77", + "hashdiff-1.2.1": "9c079dbc513dfc8833ab59c0c2d8f230fa28499cc5efb4b8dd276cf931457cd1", "i18n-1.14.7": "ceba573f8138ff2c0915427f1fc5bdf4aa3ab8ae88c8ce255eb3ecf0a11a5d0f", - "io-console-0.8.0": "cd6a9facbc69871d69b2cb8b926fc6ea7ef06f06e505e81a64f14a470fddefa2", - "io-console-0.8.0-java": "3cc6fd5c66e587145c1fdf8dc40c2e3d851e90722a5d0cc3f38da352f06fe1bd", + "io-console-0.8.1": "1e15440a6b2f67b6ea496df7c474ed62c860ad11237f29b3bd187f054b925fcb", + "io-console-0.8.1-java": "9457a61a7b23aab11e9e9ff67f71ae81d7f1a6a2e582bb5d65d754cbb546c06f", "irb-1.15.2": "222f32952e278da34b58ffe45e8634bf4afc2dc7aa9da23fed67e581aa50fdba", "jar-dependencies-0.5.5": "2972b9fcba4b014e6446a84b5c09674a3e8648b95b71768e729f0e8e40568059", - "json-2.11.3": "9a10f658a2de67c0eb837eb795dd48132ce797c403e52b5ebef87dcdc7f9ccc1", - "json-2.11.3-java": "cfe8db24e49073c5bcd93699d106a1c1c9e5bc301fcc0de05965e72fad999a34", - "language_server-protocol-3.17.0.4": "c484626478664fd13482d8180947c50a8590484b1258b99b7aedb3b69df89669", + "json-2.13.2": "02e1f118d434c6b230a64ffa5c8dee07e3ec96244335c392eaed39e1199dbb68", + "json-2.13.2-java": "2e1292c45598a3642216820a821cba89c623f99387b8cb90adb345878f4e5c7d", + "language_server-protocol-3.17.0.5": "fd1e39a51a28bf3eec959379985a72e296e9f9acfce46f6a79d31ca8760803cc", "lint_roller-1.1.0": "2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87", "listen-3.9.0": "db9e4424e0e5834480385197c139cb6b0ae0ef28cc13310cfd1ca78377d59c67", "logger-1.7.0": "196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203", "minitest-5.25.5": "391b6c6cb43a4802bfb7c93af1ebe2ac66a210293f4a3fb7db36f2fc7dc2c756", "parallel-1.27.0": "4ac151e1806b755fb4e2dc2332cbf0e54f2e24ba821ff2d3dcf86bf6dc4ae130", - "parser-3.3.8.0": "2476364142b307fa5a1b1ece44f260728be23858a9c71078e956131a75453c45", + "parser-3.3.9.0": "94d6929354b1a6e3e1f89d79d4d302cc8f5aa814431a6c9c7e0623335d7687f2", "pp-0.6.2": "947ec3120c6f92195f8ee8aa25a7b2c5297bb106d83b41baa02983686577b6ff", "prettyprint-0.2.0": "2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193", "prism-1.4.0": "dc0e3e00e93160213dc2a65519d9002a4a1e7b962db57d444cf1a71565bb703e", - "psych-5.2.4": "f2d9810f7f383a6b0fbc705202851e1a55b236bcb8e168ab5dfa5741842ec7c5", - "psych-5.2.4-java": "a3ae584e85e11fd069f17a563ef18f204d3df0fde0c093d35ae494fd64164664", + "psych-5.2.6": "814328aa5dcb6d604d32126a20bc1cbcf05521a5b49dbb1a8b30a07e580f316e", + "psych-5.2.6-java": "0a5f65d47ed1ae3475d062b254e7b2035a259eac578038016d62172dd4cfbd91", "public_suffix-6.0.2": "bfa7cd5108066f8c9602e0d6d4114999a5df5839a63149d3e8b0f9c1d3558394", "racc-1.8.1": "4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f", "racc-1.8.1-java": "54f2e6d1e1b91c154013277d986f52a90e5ececbe91465d29172e49342732b98", - "rack-2.2.13": "ccee101719696a5da12ee9da6fb3b1d20cb329939e089e0e458be6e93667f0fb", + "rack-2.2.17": "5fe02a1ca80d6fb2271dba00985ee2962d6f5620b6f46dfed89f5301ac4699dd", "rainbow-3.1.1": "039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a", - "rake-13.2.1": "46cb38dae65d7d74b6020a4ac9d48afed8eb8149c040eccf0523bec91907059d", + "rake-13.3.0": "96f5092d786ff412c62fde76f793cc0541bd84d2eb579caa529aa8a059934493", "rb-fsevent-0.11.2": "43900b972e7301d6570f64b850a5aa67833ee7d87b458ee92805d56b7318aefe", "rb-inotify-0.11.1": "a0a700441239b0ff18eb65e3866236cd78613d6b9f78fea1f9ac47a85e47be6e", - "rbs-3.9.2": "873b5d01a11f3dc15a7cc3bd66d9d50c3d05fad4fbb73b47704eb96f0ba6faf2", - "rchardet-1.9.0": "26889486cdd83b378652baf7603f71d93e431bb11bc237b4cd8c65151af4a590", - "rdoc-6.13.1": "62a0dac99493c94e8eb7a3fb44e55aefcb4cecb119f7991f25bddc5ed8d472f7", - "regexp_parser-2.10.0": "cb6f0ddde88772cd64bff1dbbf68df66d376043fe2e66a9ef77fcb1b0c548c61", - "reline-0.6.1": "1afcc9d7cb1029cdbe780d72f2f09251ce46d3780050f3ec39c3ccc6b60675fb", - "rexml-3.4.1": "c74527a9a0a04b4ec31dbe0dc4ed6004b960af943d8db42e539edde3a871abca", - "rspec-3.13.0": "d490914ac1d5a5a64a0e1400c1d54ddd2a501324d703b8cfe83f458337bab993", - "rspec-core-3.13.3": "25136507f4f9cf2e8977a2851e64e438b4331646054e345998714108745cdfe4", - "rspec-expectations-3.13.4": "4e43459765dfee900b25aa1361e106ab0799895ede65fc57872069feb559ecd8", - "rspec-mocks-3.13.3": "be08abadfe28e932d03b8e70215cd5972bd7693e0f1a45c7479b11e9a773c3c2", - "rspec-support-3.13.3": "2a61e393f6e18b7228726e0c6869c5d5a1419d37206116c4d917d145276b3f43", - "rubocop-1.75.4": "e0656af44d0811bb40f6d0bd4ed6c8d80c0f05f3444f0e8f0839833dd46d18c6", - "rubocop-ast-1.44.1": "e3cc04203b2ef04f6d6cf5f85fe6d643f442b18cc3b23e3ada0ce5b6521b8e92", - "rubocop-performance-1.25.0": "6f7d03568a770054117a78d0a8e191cefeffb703b382871ca7743831b1a52ec1", + "rbs-3.9.5": "eabaaf60aee84e38cbf94839c6e1b9cd145c7295fc3cc0e88c92e4069b1119b0", + "rchardet-1.10.0": "d5ea2ed61a720a220f1914778208e718a0c7ed2a484b6d357ba695aa7001390f", + "rdoc-6.14.2": "9fdd44df130f856ae70cc9a264dfd659b9b40de369b16581f4ab746e42439226", + "regexp_parser-2.11.3": "ca13f381a173b7a93450e53459075c9b76a10433caadcb2f1180f2c741fc55a4", + "reline-0.6.2": "1dad26a6008872d59c8e05244b119347c9f2ddaf4a53dce97856cd5f30a02846", + "rexml-3.4.4": "19e0a2c3425dfbf2d4fc1189747bdb2f849b6c5e74180401b15734bc97b5d142", + "rspec-3.13.1": "b9f9a58fa915b8d94a1d6b3195fe6dd28c4c34836a6097015142c4a9ace72140", + "rspec-core-3.13.5": "ab3f682897c6131c67f9a17cfee5022a597f283aebe654d329a565f9937a4fa3", + "rspec-expectations-3.13.5": "33a4d3a1d95060aea4c94e9f237030a8f9eae5615e9bd85718fe3a09e4b58836", + "rspec-mocks-3.13.5": "e4338a6f285ada9fe56f5893f5457783af8194f5d08884d17a87321d5195ea81", + "rspec-support-3.13.6": "2e8de3702427eab064c9352fe74488cc12a1bfae887ad8b91cba480ec9f8afb2", + "rubocop-1.81.1": "352a9a6f314a4312f6c305f1f72bc466254d221c95445cd49e1b65d1f9411635", + "rubocop-ast-1.47.1": "592682017855408b046a8190689490763aecea175238232b1b526826349d01ae", + "rubocop-performance-1.26.0": "7bb0d9d9fb2ea122bf6f9a596dd7cf9dc93ab4950923d26c4ae4f328cef71ca9", "rubocop-rake-0.7.1": "3797f2b6810c3e9df7376c26d5f44f3475eda59eb1adc38e6f62ecf027cbae4d", - "rubocop-rspec-3.6.0": "c0e4205871776727e54dee9cc91af5fd74578001551ba40e1fe1a1ab4b404479", + "rubocop-rspec-3.7.0": "b7b214da112034db9c6d00f2d811a354847e870f7b6ed2482b29649c3d42058f", "ruby-progressbar-1.13.0": "80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33", - "rubyzip-2.4.1": "8577c88edc1fde8935eb91064c5cb1aef9ad5494b940cf19c775ee833e075615", + "rubyzip-3.1.1": "54c97dd156437018c6914d76df52d10560a3b7784de36b1551e4a0709f958273", "securerandom-0.4.1": "cc5193d414a4341b6e225f0cb4446aceca8e50d5e1888743fac16987638ea0b1", "steep-1.5.3": "7c6302a4d5932d0a46176ebc79766e52b853c223a85525aa2f8911e345123b85", "stringio-3.1.7": "5b78b7cb242a315fb4fca61a8255d62ec438f58da2b90be66048546ade4507fa", - "strscan-3.1.4": "8e130a503aa6c79352c6ac02a9819507c8b8720c174ce8335e3eb2c8cc2ae042", - "strscan-3.1.4-java": "5551e01d215ba8ac7dadb6dab46b9fb4c33303ba63eaf3e1b0496c078b8d3fb8", + "strscan-3.1.5": "f8413b90ea9395a69609a4414a8c88551bcda64337e234272c24fcd4c83e5947", + "strscan-3.1.5-java": "84805eaad025f64854376608a6dbd49d4a22740ec3f21ba880434a6641621f1e", "terminal-table-3.0.2": "f951b6af5f3e00203fb290a669e0a85c5dd5b051b3b023392ccfd67ba5abae91", "tzinfo-2.0.6": "8daf828cc77bcf7d63b0e3bdb6caa47e2272dcfaf4fbfe46f8c3a9df087a829b", "unicode-display_width-2.6.0": "12279874bba6d5e4d2728cef814b19197dbb10d7a7837a869bab65da943b7f5a", @@ -366,6 +376,8 @@ use_repo( pin_browsers_extension = use_extension("//common:repositories.bzl", "pin_browsers_extension") use_repo( pin_browsers_extension, + "linux_beta_chrome", + "linux_beta_chromedriver", "linux_beta_firefox", "linux_chrome", "linux_chromedriver", @@ -373,6 +385,8 @@ use_repo( "linux_edgedriver", "linux_firefox", "linux_geckodriver", + "mac_beta_chrome", + "mac_beta_chromedriver", "mac_beta_firefox", "mac_chrome", "mac_chromedriver", diff --git a/README.md b/README.md index 3ca69b1ad1936..268539467320d 100644 --- a/README.md +++ b/README.md @@ -15,8 +15,7 @@ DevelopingTestingDocumenting • - Releasing • - License + Releasing


@@ -267,7 +266,7 @@ you can configure it use Bazel artifacts: 1. Open `rb/` as a main project directory. 2. Run `bundle exec rake update` as necessary to create up-to-date artifacts. If this does not work, run `./go rb:update` from the `selenium` (parent) directory. 3. In Settings / Languages & Frameworks / Ruby SDK and Gems add new Interpreter pointing to `../bazel-selenium/external/rules_ruby_dist/dist/bin/ruby`. -4. You should now be able to run and debug any spec. It uses Chrome by default, but you can alter it using environment variables secified in [Ruby Testing](#ruby-2) section below. +4. You should now be able to run and debug any spec. It uses Chrome by default, but you can alter it using environment variables specified in [Ruby Testing](#ruby-2) section below. ### Rust @@ -529,8 +528,6 @@ To update API documentation for a specific language: `./go :docs` To update all documentation: `./go all:docs` -Note that JavaScript generation is [currently broken](https://github.com/SeleniumHQ/selenium/issues/10185). - ## Releasing @@ -555,7 +552,3 @@ If you have access to the Selenium EngFlow repository, you can have the assets b ```shell ./go all:release['--config', 'release'] ``` - -## License - -Selenium's source code is made available under the [Apache 2.0 license](https://github.com/SeleniumHQ/selenium/blob/trunk/LICENSE). diff --git a/Rakefile b/Rakefile index 0746b9f06b583..73936caa4ff04 100644 --- a/Rakefile +++ b/Rakefile @@ -96,9 +96,9 @@ task '//java/test/org/openqa/selenium/environment/webserver:webserver:uber' => [ JAVA_RELEASE_TARGETS = %w[ //java/src/org/openqa/selenium/chrome:chrome.publish //java/src/org/openqa/selenium/chromium:chromium.publish - //java/src/org/openqa/selenium/devtools/v137:v137.publish - //java/src/org/openqa/selenium/devtools/v135:v135.publish - //java/src/org/openqa/selenium/devtools/v136:v136.publish + //java/src/org/openqa/selenium/devtools/v140:v140.publish + //java/src/org/openqa/selenium/devtools/v138:v138.publish + //java/src/org/openqa/selenium/devtools/v139:v139.publish //java/src/org/openqa/selenium/edge:edge.publish //java/src/org/openqa/selenium/firefox:firefox.publish //java/src/org/openqa/selenium/grid/sessionmap/jdbc:jdbc.publish @@ -963,9 +963,9 @@ namespace :java do ENV['MAVEN_USER'] ||= ENV.fetch('SEL_M2_USER', nil) ENV['MAVEN_PASSWORD'] ||= ENV.fetch('SEL_M2_PASS', nil) read_m2_user_pass unless ENV['MAVEN_PASSWORD'] && ENV['MAVEN_USER'] - - repo = nightly ? 'content/repositories/snapshots' : 'service/local/staging/deploy/maven2' - ENV['MAVEN_REPO'] = "https://oss.sonatype.org/#{repo}" + repo_domain = 'central.sonatype.com' + repo = nightly ? "#{repo_domain}/repository/maven-snapshots" : "ossrh-staging-api.#{repo_domain}/service/local/staging/deploy/maven2/" + ENV['MAVEN_REPO'] = "https://#{repo}" ENV['GPG_SIGN'] = (!nightly).to_s if nightly @@ -1105,7 +1105,7 @@ namespace :all do ['common/devtools/', 'dotnet/src/webdriver/DevTools/', - 'dotnet/src/webdriver/WebDriver.csproj', + 'dotnet/src/webdriver/Selenium.WebDriver.csproj', 'dotnet/test/common/DevTools/', 'dotnet/test/common/CustomDriverConfigs/', 'dotnet/selenium-dotnet-version.bzl', @@ -1118,12 +1118,13 @@ namespace :all do end desc 'Update all API Documentation' - task :docs do - Rake::Task['java:docs'].invoke('skip_update') - Rake::Task['py:docs'].invoke('skip_update') - Rake::Task['rb:docs'].invoke('skip_update') - Rake::Task['dotnet:docs'].invoke('skip_update') - Rake::Task['node:docs'].invoke('skip_update') + task :docs do |_task, arguments| + args = arguments.to_a + Rake::Task['java:docs'].invoke(*(args + ['skip_update'])) + Rake::Task['py:docs'].invoke(*(args + ['skip_update'])) + Rake::Task['rb:docs'].invoke(*(args + ['skip_update'])) + Rake::Task['dotnet:docs'].invoke(*(args + ['skip_update'])) + Rake::Task['node:docs'].invoke(*(args + ['skip_update'])) update_gh_pages end diff --git a/WORKSPACE b/WORKSPACE index e82b52f11fa56..151d0438675ff 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -26,15 +26,15 @@ rules_closure_toolchains() http_archive( name = "rules_rust", - integrity = "sha256-eEXiHXSGUH6qD1bdI5KXZ/B04m0wIUeoyM7pmujzbbQ=", - urls = ["https://github.com/bazelbuild/rules_rust/releases/download/0.55.5/rules_rust-0.55.5.tar.gz"], + integrity = "sha256-YrnH/f8jCpEqGAU+keNqauc+QSde9egtcFXqPtJuee4=", + urls = ["https://github.com/bazelbuild/rules_rust/releases/download/0.65.0/rules_rust-0.65.0.tar.gz"], ) load("@rules_rust//rust:repositories.bzl", "rules_rust_dependencies", "rust_register_toolchains") rules_rust_dependencies() -rust_register_toolchains() +rust_register_toolchains(versions = ["1.89.0"]) load("@rules_rust//crate_universe:defs.bzl", "crates_repository") @@ -48,3 +48,7 @@ crates_repository( load("@crates//:defs.bzl", "crate_repositories") crate_repositories() + +load("@rules_rust//cargo:deps.bzl", "cargo_dependencies") + +cargo_dependencies() diff --git a/common/browsers.bzl b/common/browsers.bzl index 7be9d79fbf267..0617a80c934d4 100644 --- a/common/browsers.bzl +++ b/common/browsers.bzl @@ -83,3 +83,25 @@ firefox_beta_data = select({ ], "//conditions:default": [], }) + geckodriver_data + +chromedriver_beta_data = select({ + "@selenium//common:use_pinned_linux_chrome": [ + "@linux_beta_chromedriver//:chromedriver", + ], + "@selenium//common:use_pinned_macos_chrome": [ + "@mac_beta_chromedriver//:chromedriver", + ], + "@selenium//common:use_local_chromedriver": ["@selenium//common:chromedriver"], + "//conditions:default": [], +}) + +chrome_beta_data = select({ + "@selenium//common:use_pinned_linux_chrome": [ + "@linux_beta_chrome//:files", + "@linux_beta_chrome//:chrome-linux64/chrome", + ], + "@selenium//common:use_pinned_macos_chrome": [ + "@mac_beta_chrome//:Chrome.app", + ], + "//conditions:default": [], +}) + chromedriver_beta_data diff --git a/common/devtools/chromium/v135/BUILD.bazel b/common/devtools/chromium/v138/BUILD.bazel similarity index 100% rename from common/devtools/chromium/v135/BUILD.bazel rename to common/devtools/chromium/v138/BUILD.bazel diff --git a/common/devtools/chromium/v137/browser_protocol.pdl b/common/devtools/chromium/v138/browser_protocol.pdl similarity index 98% rename from common/devtools/chromium/v137/browser_protocol.pdl rename to common/devtools/chromium/v138/browser_protocol.pdl index db00f32e16afa..4dfad4def0eff 100644 --- a/common/devtools/chromium/v137/browser_protocol.pdl +++ b/common/devtools/chromium/v138/browser_protocol.pdl @@ -1079,6 +1079,19 @@ experimental domain Audits # The value of the property rule property that failed to parse optional string propertyValue + type UserReidentificationIssueType extends string + enum + BlockedFrameNavigation + BlockedSubresource + + # This issue warns about uses of APIs that may be considered misuse to + # re-identify users. + type UserReidentificationIssueDetails extends object + properties + UserReidentificationIssueType type + # Applies to BlockedFrameNavigation and BlockedSubresource issue types. + optional AffectedRequest request + # A unique identifier for the type of issue. Each type may use one of the # optional fields in InspectorIssueDetails to convey more specific # information about the kind of issue. @@ -1109,6 +1122,7 @@ experimental domain Audits SharedDictionaryIssue SelectElementAccessibilityIssue SRIMessageSignatureIssue + UserReidentificationIssue # This struct holds a list of optional fields with additional information # specific to the kind of issue. When adding a new issue code, please also @@ -1139,6 +1153,7 @@ experimental domain Audits optional SharedDictionaryIssueDetails sharedDictionaryIssueDetails optional SelectElementAccessibilityIssueDetails selectElementAccessibilityIssueDetails optional SRIMessageSignatureIssueDetails sriMessageSignatureIssueDetails + optional UserReidentificationIssueDetails userReidentificationIssueDetails # A unique id for a DevTools inspector issue. Allows other entities (e.g. # exceptions, CDP message, console messages, etc.) to reference an issue. @@ -1619,6 +1634,10 @@ domain Browser inProgress completed canceled + # If download is "completed", provides the path of the downloaded file. + # Depending on the platform, it is not guaranteed to be set, nor the file + # is guaranteed to exist. + experimental optional string filePath # Close browser gracefully. command close @@ -2993,6 +3012,7 @@ domain DOM file-selector-button details-content picker + permission-icon # Shadow root type. type ShadowRootType extends string @@ -3498,6 +3518,9 @@ domain DOM PopoverTarget # Get the interest target for a given element. InterestTarget + # Get the commandfor target for a given element. In this case, this given + # element can only be an HTMLButtonElement. + CommandFor returns # NodeId of the element matching the queried relation. NodeId nodeId @@ -4729,6 +4752,7 @@ domain Emulation PressureSource source optional PressureMetadata metadata + # TODO: OBSOLETE: To remove when setPressureDataOverride is merged. # Provides a given pressure state that will be processed and eventually be # delivered to PressureObserver users. |source| must have been previously # overridden by setPressureSourceOverrideEnabled. @@ -4737,6 +4761,15 @@ domain Emulation PressureSource source PressureState state + # Provides a given pressure data set that will be processed and eventually be + # delivered to PressureObserver users. |source| must have been previously + # overridden by setPressureSourceOverrideEnabled. + experimental command setPressureDataOverride + parameters + PressureSource source + PressureState state + optional number ownContributionEstimate + # Overrides the Idle state. command setIdleOverride parameters @@ -5956,6 +5989,7 @@ domain Network Ping CSPViolationReport Preflight + FedCM Other # Unique loader identifier. @@ -6208,6 +6242,7 @@ domain Network mixed-content origin inspector + integrity subresource-filter content-type coep-frame-resource-needs-coep-header @@ -7003,6 +7038,8 @@ domain Network experimental optional integer maxResourceBufferSize # Longest post body size (in bytes) that would be included in requestWillBeSent notification optional integer maxPostDataSize + # Whether DirectSocket chunk send/receive events should be reported. + experimental optional boolean reportDirectSocketTraffic # Returns all browser cookies. Depending on the backend support, will return detailed cookie # information in the `cookies` field. @@ -7534,18 +7571,80 @@ domain Network binary data MonotonicTime timestamp - # Fired when there is an error - # when writing to tcp direct socket stream. - # For example, if user writes illegal type like string - # instead of ArrayBuffer or ArrayBufferView. - # There's no reporting for reading, because - # we cannot know errors on the other side. - experimental event directTCPSocketChunkError + experimental type DirectUDPSocketOptions extends object + properties + optional string remoteAddr + # Unsigned int 16. + optional integer remotePort + + optional string localAddr + # Unsigned int 16. + optional integer localPort + + optional DirectSocketDnsQueryType dnsQueryType + + # Expected to be unsigned integer. + optional number sendBufferSize + # Expected to be unsigned integer. + optional number receiveBufferSize + + + # Fired upon direct_socket.UDPSocket creation. + experimental event directUDPSocketCreated + parameters + RequestId identifier + DirectUDPSocketOptions options + MonotonicTime timestamp + optional Initiator initiator + + # Fired when direct_socket.UDPSocket connection is opened. + experimental event directUDPSocketOpened + parameters + RequestId identifier + string localAddr + # Expected to be unsigned integer. + integer localPort + MonotonicTime timestamp + optional string remoteAddr + # Expected to be unsigned integer. + optional integer remotePort + + # Fired when direct_socket.UDPSocket is aborted. + experimental event directUDPSocketAborted parameters RequestId identifier string errorMessage MonotonicTime timestamp + # Fired when direct_socket.UDPSocket is closed. + experimental event directUDPSocketClosed + parameters + RequestId identifier + MonotonicTime timestamp + + experimental type DirectUDPMessage extends object + properties + binary data + # Null for connected mode. + optional string remoteAddr + # Null for connected mode. + # Expected to be unsigned integer. + optional integer remotePort + + # Fired when message is sent to udp direct socket stream. + experimental event directUDPSocketChunkSent + parameters + RequestId identifier + DirectUDPMessage message + MonotonicTime timestamp + + # Fired when message is received from udp direct socket stream. + experimental event directUDPSocketChunkReceived + parameters + RequestId identifier + DirectUDPMessage message + MonotonicTime timestamp + experimental type PrivateNetworkRequestPolicy extends string enum Allow @@ -7879,7 +7978,7 @@ domain Network LoadNetworkResourcePageResult resource # Sets Controls for third-party cookie access - # Page reload is required before the new cookie bahavior will be observed + # Page reload is required before the new cookie behavior will be observed experimental command setCookieControls parameters # Whether 3pc restriction is enabled. @@ -8527,6 +8626,7 @@ domain Page media-playback-while-not-visible microphone midi + on-device-speech-recognition otp-credentials payment picture-in-picture @@ -10708,6 +10808,9 @@ experimental domain Storage # Name of the registered operation to be run. # Present only for SharedStorageAccessMethods: run and selectURL. optional string operationName + # ID of the operation call. + # Present only for SharedStorageAccessMethods: run and selectURL. + optional string operationId # Whether or not to keep the worket alive for future run or selectURL # calls. # Present only for SharedStorageAccessMethods: run and selectURL. @@ -10735,12 +10838,22 @@ experimental domain Storage # Whether or not to set an entry for a key if that key is already present. # Present only for SharedStorageAccessMethod: set. optional boolean ignoreIfPresent - # If the method is called on a worklet, or as part of - # a worklet script, it will have an ID for the associated worklet. + # If the method is called on a shared storage worklet, or as part of + # a shared storage worklet script, it will have a number for the + # associated worklet, denoting the (0-indexed) order of the worklet's + # creation relative to all other shared storage worklets created by + # documents using the current storage partition. + # Present only for SharedStorageAccessMethods: addModule, createWorklet, + # run, selectURL, and any other SharedStorageAccessMethod when the + # SharedStorageAccessScope is sharedStorageWorklet. + # TODO(crbug.com/401011862): Pass this only for addModule & createWorklet. + optional integer workletOrdinal + # Hex representation of the DevTools token used as the TargetID for the + # associated shared storage worklet. # Present only for SharedStorageAccessMethods: addModule, createWorklet, # run, selectURL, and any other SharedStorageAccessMethod when the - # SharedStorageAccessScope is worklet. - optional string workletId + # SharedStorageAccessScope is sharedStorageWorklet. + optional Target.TargetID workletTargetId # Name of the lock to be acquired, if present. # Optionally present only for SharedStorageAccessMethods: batchUpdate, # set, append, delete, and clear. @@ -11105,6 +11218,27 @@ experimental domain Storage # presence/absence depends on `type`. SharedStorageAccessParams params + # A shared storage run or selectURL operation finished its execution. + # The following parameters are included in all events. + event sharedStorageWorkletOperationExecutionFinished + parameters + # Time that the operation finished. + Network.TimeSinceEpoch finishedTime + # Time, in microseconds, from start of shared storage JS API call until + # end of operation execution in the worklet. + integer executionTime + # Enum value indicating the Shared Storage API method invoked. + SharedStorageAccessMethod method + # ID of the operation call. + string operationId + # Hex representation of the DevTools token used as the TargetID for the + # associated shared storage worklet. + Target.TargetID workletTargetId + # DevTools Frame Token for the primary frame tree's root. + Page.FrameId mainFrameId + # Serialization of the origin owning the Shared Storage data. + string ownerOrigin + event storageBucketCreatedOrUpdated parameters StorageBucketInfo bucketInfo @@ -11168,13 +11302,6 @@ experimental domain Storage # duration in seconds array of integer ends - experimental type AttributionReportingTriggerSpec extends object - properties - # number instead of integer because not all uint32 can be represented by - # int - array of number triggerData - AttributionReportingEventReportWindows eventReportWindows - experimental type AttributionReportingTriggerDataMatching extends string enum exact @@ -11215,7 +11342,10 @@ experimental domain Storage Network.TimeSinceEpoch time # duration in seconds integer expiry - array of AttributionReportingTriggerSpec triggerSpecs + # number instead of integer because not all uint32 can be represented by + # int + array of number triggerData + AttributionReportingEventReportWindows eventReportWindows # duration in seconds integer aggregatableReportWindow AttributionReportingSourceType type @@ -11365,6 +11495,28 @@ experimental domain Storage AttributionReportingEventLevelResult eventLevel AttributionReportingAggregatableResult aggregatable + experimental type AttributionReportingReportResult extends string + enum + # A network request was attempted for the report. + sent + # No request was attempted because of browser policy. + prohibited + # No request was attempted because of an error in report assembly, + # e.g. the aggregation service was unavailable. + failedToAssemble + # No request was attempted because the report's expiry passed. + expired + + experimental event attributionReportingReportSent + parameters + string url + object body + AttributionReportingReportResult result + # If result is `sent`, populated with net/HTTP status. + optional integer netError + optional string netErrorName + optional integer httpStatusCode + # A single Related Website Set object. experimental type RelatedWebsiteSet extends object properties @@ -12950,7 +13102,6 @@ experimental domain Preload InvalidSchemeRedirect InvalidSchemeNavigation NavigationRequestBlockedByCsp - MainFrameNavigation MojoBinderPolicy RendererProcessCrashed RendererProcessKilled @@ -13370,6 +13521,12 @@ experimental domain BluetoothEmulation subscribe-to-notifications unsubscribe-from-notifications + # Indicates the various types of descriptor operation. + type DescriptorOperationType extends string + enum + read + write + # Stores the manufacturer data type ManufacturerData extends object properties @@ -13466,6 +13623,18 @@ experimental domain BluetoothEmulation integer code optional binary data + # Simulates the response from the descriptor with |descriptorId| for a + # descriptor operation of |type|. The |code| value follows the Error + # Codes from Bluetooth Core Specification Vol 3 Part F 3.4.1.1 Error Response. + # The |data| is expected to exist when simulating a successful read operation + # response. + command simulateDescriptorOperationResponse + parameters + string descriptorId + DescriptorOperationType type + integer code + optional binary data + # Adds a service with |serviceUuid| to the peripheral with |address|. command addService parameters @@ -13512,6 +13681,11 @@ experimental domain BluetoothEmulation parameters string descriptorId + # Simulates a GATT disconnection from the peripheral with |address|. + command simulateGATTDisconnection + parameters + string address + # Event for when a GATT operation of |type| to the peripheral with |address| # happened. event gattOperationReceived @@ -13528,3 +13702,12 @@ experimental domain BluetoothEmulation CharacteristicOperationType type optional binary data optional CharacteristicWriteType writeType + + # Event for when a descriptor operation of |type| to the descriptor + # respresented by |descriptorId| happened. |data| is expected to exist when + # |type| is write. + event descriptorOperationReceived + parameters + string descriptorId + DescriptorOperationType type + optional binary data diff --git a/common/devtools/chromium/v137/js_protocol.pdl b/common/devtools/chromium/v138/js_protocol.pdl similarity index 100% rename from common/devtools/chromium/v137/js_protocol.pdl rename to common/devtools/chromium/v138/js_protocol.pdl diff --git a/common/devtools/chromium/v136/BUILD.bazel b/common/devtools/chromium/v139/BUILD.bazel similarity index 100% rename from common/devtools/chromium/v136/BUILD.bazel rename to common/devtools/chromium/v139/BUILD.bazel diff --git a/common/devtools/chromium/v136/browser_protocol.pdl b/common/devtools/chromium/v139/browser_protocol.pdl similarity index 96% rename from common/devtools/chromium/v136/browser_protocol.pdl rename to common/devtools/chromium/v139/browser_protocol.pdl index 3f5cefd0f077f..ce3d994dfeec5 100644 --- a/common/devtools/chromium/v136/browser_protocol.pdl +++ b/common/devtools/chromium/v139/browser_protocol.pdl @@ -1079,6 +1079,19 @@ experimental domain Audits # The value of the property rule property that failed to parse optional string propertyValue + type UserReidentificationIssueType extends string + enum + BlockedFrameNavigation + BlockedSubresource + + # This issue warns about uses of APIs that may be considered misuse to + # re-identify users. + type UserReidentificationIssueDetails extends object + properties + UserReidentificationIssueType type + # Applies to BlockedFrameNavigation and BlockedSubresource issue types. + optional AffectedRequest request + # A unique identifier for the type of issue. Each type may use one of the # optional fields in InspectorIssueDetails to convey more specific # information about the kind of issue. @@ -1109,6 +1122,7 @@ experimental domain Audits SharedDictionaryIssue SelectElementAccessibilityIssue SRIMessageSignatureIssue + UserReidentificationIssue # This struct holds a list of optional fields with additional information # specific to the kind of issue. When adding a new issue code, please also @@ -1139,6 +1153,7 @@ experimental domain Audits optional SharedDictionaryIssueDetails sharedDictionaryIssueDetails optional SelectElementAccessibilityIssueDetails selectElementAccessibilityIssueDetails optional SRIMessageSignatureIssueDetails sriMessageSignatureIssueDetails + optional UserReidentificationIssueDetails userReidentificationIssueDetails # A unique id for a DevTools inspector issue. Allows other entities (e.g. # exceptions, CDP message, console messages, etc.) to reference an issue. @@ -1537,6 +1552,7 @@ domain Browser enum openTabSearch closeTabSearch + openGlic # Set permission settings for given origin. experimental command setPermission @@ -1618,6 +1634,10 @@ domain Browser inProgress completed canceled + # If download is "completed", provides the path of the downloaded file. + # Depending on the platform, it is not guaranteed to be set, nor the file + # is guaranteed to exist. + experimental optional string filePath # Close browser gracefully. command close @@ -2437,7 +2457,12 @@ experimental domain CSS # For example, a value of '1em' is evaluated according to the computed # 'font-size' of the element and a value 'calc(1px + 2px)' will be # resolved to '3px'. - command resolveValues + # If the `propertyName` was specified the `values` are resolved as if + # they were property's declaration. If a value cannot be parsed according + # to the provided property syntax, the value is parsed using combined + # syntax as if null `propertyName` was provided. If the value cannot be + # resolved even then, return the provided value without any changes. + experimental command resolveValues parameters # Substitution functions (var()/env()/attr()) and cascade-dependent # keywords (revert/revert-layer) do not work. @@ -2448,9 +2473,9 @@ experimental domain CSS optional string propertyName # Pseudo element type, only works for pseudo elements that generate # elements in the tree, such as ::before and ::after. - experimental optional DOM.PseudoType pseudoType + optional DOM.PseudoType pseudoType # Pseudo element custom ident. - experimental optional string pseudoIdentifier + optional string pseudoIdentifier returns array of string results @@ -2981,12 +3006,14 @@ domain DOM view-transition view-transition-group view-transition-image-pair + view-transition-group-children view-transition-old view-transition-new placeholder file-selector-button details-content picker + permission-icon # Shadow root type. type ShadowRootType extends string @@ -3492,6 +3519,9 @@ domain DOM PopoverTarget # Get the interest target for a given element. InterestTarget + # Get the commandfor target for a given element. In this case, this given + # element can only be an HTMLButtonElement. + CommandFor returns # NodeId of the element matching the queried relation. NodeId nodeId @@ -4459,6 +4489,9 @@ domain Emulation boolean mobile optional string bitness optional boolean wow64 + # Used to specify User Agent form-factor values. + # See https://wicg.github.io/ua-client-hints/#sec-ch-ua-form-factors + optional array of string formFactors # Used to specify sensor types to emulate. # See https://w3c.github.io/sensors/#automation for more information. @@ -4670,8 +4703,13 @@ domain Emulation protanopia tritanopia - # Overrides the Geolocation Position or Error. Omitting any of the parameters emulates position - # unavailable. + # Emulates the given OS text scale. + command setEmulatedOSTextScale + parameters + optional number scale + + # Overrides the Geolocation Position or Error. Omitting latitude, longitude or + # accuracy emulates position unavailable. command setGeolocationOverride parameters # Mock latitude @@ -4680,6 +4718,14 @@ domain Emulation optional number longitude # Mock accuracy optional number accuracy + # Mock altitude + optional number altitude + # Mock altitudeAccuracy + optional number altitudeAccuracy + # Mock heading + optional number heading + # Mock speed + optional number speed experimental command getOverriddenSensorInformation parameters @@ -4715,6 +4761,7 @@ domain Emulation PressureSource source optional PressureMetadata metadata + # TODO: OBSOLETE: To remove when setPressureDataOverride is merged. # Provides a given pressure state that will be processed and eventually be # delivered to PressureObserver users. |source| must have been previously # overridden by setPressureSourceOverrideEnabled. @@ -4723,6 +4770,15 @@ domain Emulation PressureSource source PressureState state + # Provides a given pressure data set that will be processed and eventually be + # delivered to PressureObserver users. |source| must have been previously + # overridden by setPressureSourceOverrideEnabled. + experimental command setPressureDataOverride + parameters + PressureSource source + PressureState state + optional number ownContributionEstimate + # Overrides the Idle state. command setIdleOverride parameters @@ -4840,6 +4896,14 @@ domain Emulation # Whether the override should be enabled. boolean enabled + # Allows overriding the difference between the small and large viewport sizes, which determine the + # value of the `svh` and `lvh` unit, respectively. Only supported for top-level frames. + experimental command setSmallViewportHeightDifferenceOverride + parameters + # This will cause an element of size 100svh to be `difference` pixels smaller than an element + # of size 100lvh. + integer difference + # This domain provides experimental commands only supported in headless mode. experimental domain HeadlessExperimental depends on Page @@ -5934,6 +5998,7 @@ domain Network Ping CSPViolationReport Preflight + FedCM Other # Unique loader identifier. @@ -6186,6 +6251,7 @@ domain Network mixed-content origin inspector + integrity subresource-filter content-type coep-frame-resource-needs-coep-header @@ -6328,6 +6394,7 @@ domain Network cache fetch-event race-network-and-fetch-handler + race-network-and-cache experimental type ServiceWorkerRouterInfo extends object properties @@ -6855,6 +6922,9 @@ domain Network properties # The outer response of signed HTTP exchange which was received from network. Response outerResponse + # Whether network response for the signed exchange was accompanied by + # extra headers. + boolean hasExtraInfo # Information about the signed exchange header. optional SignedExchangeHeader header # Security details for the signed exchange header. @@ -6980,6 +7050,8 @@ domain Network experimental optional integer maxResourceBufferSize # Longest post body size (in bytes) that would be included in requestWillBeSent notification optional integer maxPostDataSize + # Whether DirectSocket chunk send/receive events should be reported. + experimental optional boolean reportDirectSocketTraffic # Returns all browser cookies. Depending on the backend support, will return detailed cookie # information in the `cookies` field. @@ -7497,6 +7569,94 @@ domain Network RequestId identifier MonotonicTime timestamp + # Fired when data is sent to tcp direct socket stream. + experimental event directTCPSocketChunkSent + parameters + RequestId identifier + binary data + MonotonicTime timestamp + + # Fired when data is received from tcp direct socket stream. + experimental event directTCPSocketChunkReceived + parameters + RequestId identifier + binary data + MonotonicTime timestamp + + experimental type DirectUDPSocketOptions extends object + properties + optional string remoteAddr + # Unsigned int 16. + optional integer remotePort + + optional string localAddr + # Unsigned int 16. + optional integer localPort + + optional DirectSocketDnsQueryType dnsQueryType + + # Expected to be unsigned integer. + optional number sendBufferSize + # Expected to be unsigned integer. + optional number receiveBufferSize + + + # Fired upon direct_socket.UDPSocket creation. + experimental event directUDPSocketCreated + parameters + RequestId identifier + DirectUDPSocketOptions options + MonotonicTime timestamp + optional Initiator initiator + + # Fired when direct_socket.UDPSocket connection is opened. + experimental event directUDPSocketOpened + parameters + RequestId identifier + string localAddr + # Expected to be unsigned integer. + integer localPort + MonotonicTime timestamp + optional string remoteAddr + # Expected to be unsigned integer. + optional integer remotePort + + # Fired when direct_socket.UDPSocket is aborted. + experimental event directUDPSocketAborted + parameters + RequestId identifier + string errorMessage + MonotonicTime timestamp + + # Fired when direct_socket.UDPSocket is closed. + experimental event directUDPSocketClosed + parameters + RequestId identifier + MonotonicTime timestamp + + experimental type DirectUDPMessage extends object + properties + binary data + # Null for connected mode. + optional string remoteAddr + # Null for connected mode. + # Expected to be unsigned integer. + optional integer remotePort + + # Fired when message is sent to udp direct socket stream. + experimental event directUDPSocketChunkSent + parameters + RequestId identifier + DirectUDPMessage message + MonotonicTime timestamp + + # Fired when message is received from udp direct socket stream. + experimental event directUDPSocketChunkReceived + parameters + RequestId identifier + DirectUDPMessage message + MonotonicTime timestamp + experimental type PrivateNetworkRequestPolicy extends string enum Allow @@ -7830,7 +7990,7 @@ domain Network LoadNetworkResourcePageResult resource # Sets Controls for third-party cookie access - # Page reload is required before the new cookie bahavior will be observed + # Page reload is required before the new cookie behavior will be observed experimental command setCookieControls parameters # Whether 3pc restriction is enabled. @@ -8365,16 +8525,31 @@ domain Page AdFrameType adFrameType optional array of AdFrameExplanation explanations - # Identifies the bottom-most script which caused the frame to be labelled - # as an ad. + # Identifies the script which caused a script or frame to be labelled as an + # ad. experimental type AdScriptId extends object properties - # Script Id of the bottom-most script which caused the frame to be labelled - # as an ad. + # Script Id of the script which caused a script or frame to be labelled as + # an ad. Runtime.ScriptId scriptId - # Id of adScriptId's debugger. + # Id of scriptId's debugger. Runtime.UniqueDebuggerId debuggerId + # Encapsulates the script ancestry and the root script filterlist rule that + # caused the frame to be labelled as an ad. Only created when `ancestryChain` + # is not empty. + experimental type AdScriptAncestry extends object + properties + # A chain of `AdScriptId`s representing the ancestry of an ad script that + # led to the creation of a frame. The chain is ordered from the script + # itself (lower level) up to its root ancestor that was flagged by + # filterlist. + array of AdScriptId ancestryChain + # The filterlist rule that caused the root (last) script in + # `ancestryChain` to be ad-tagged. Only populated if the rule is + # available. + optional string rootScriptFilterlistRule + # Indicates whether the frame is a secure context and why it is the case. experimental type SecureContextType extends string enum @@ -8406,6 +8581,7 @@ domain Page # All Permissions Policy features. This enum should match the one defined # in services/network/public/cpp/permissions_policy/permissions_policy_features.json5. + # LINT.IfChange(PermissionsPolicyFeature) experimental type PermissionsPolicyFeature extends string enum accelerometer @@ -8448,6 +8624,7 @@ domain Page cross-origin-isolated deferred-fetch deferred-fetch-minimal + device-attributes digital-credentials-get direct-sockets direct-sockets-private @@ -8470,11 +8647,14 @@ domain Page join-ad-interest-group keyboard-map language-detector + language-model local-fonts + local-network-access magnetometer media-playback-while-not-visible microphone midi + on-device-speech-recognition otp-credentials payment picture-in-picture @@ -8484,6 +8664,7 @@ domain Page private-state-token-redemption publickey-credentials-create publickey-credentials-get + record-ad-auction-events rewriter run-ad-auction screen-wake-lock @@ -8508,6 +8689,7 @@ domain Page window-management writer xr-spatial-tracking + # LINT.ThenChange(//services/network/public/cpp/permissions_policy/permissions_policy_features.json5:PermissionsPolicy) # Reason for a permissions policy feature to be disabled. experimental type PermissionsPolicyBlockReason extends string @@ -9136,13 +9318,16 @@ domain Page # Recommendation for manifest's id attribute to match current id computed from start_url optional string recommendedId - experimental command getAdScriptId + experimental command getAdScriptAncestry parameters FrameId frameId returns - # Identifies the bottom-most script which caused the frame to be labelled - # as an ad. Only sent if frame is labelled as an ad and id is available. - optional AdScriptId adScriptId + # The ancestry chain of ad script identifiers leading to this frame's + # creation, along with the root script's filterlist rule. The ancestry + # chain is ordered from the most immediate script (in the frame creation + # stack) to more distant ancestors (that created the immediately preceding + # script). Only sent if frame is labelled as an ad and ids are available. + optional AdScriptAncestry adScriptAncestry # Returns present frame tree structure. command getFrameTree @@ -9535,25 +9720,25 @@ domain Page # Clears seeded compilation cache. experimental command clearCompilationCache - # Enum of possible auto-response for permission / prompt dialogs. - experimental type AutoResponseMode extends string - enum - none - autoAccept - autoReject - autoOptOut - # Sets the Secure Payment Confirmation transaction mode. # https://w3c.github.io/secure-payment-confirmation/#sctn-automation-set-spc-transaction-mode experimental command setSPCTransactionMode parameters - AutoResponseMode mode + enum mode + none + autoAccept + autoChooseToAuthAnotherWay + autoReject + autoOptOut # Extensions for Custom Handlers API: # https://html.spec.whatwg.org/multipage/system-state.html#rph-automation experimental command setRPHRegistrationMode parameters - AutoResponseMode mode + enum mode + none + autoAccept + autoReject # Generates a report for testing. experimental command generateTestReport @@ -9754,6 +9939,8 @@ domain Page # closed. event javascriptDialogClosed parameters + # Frame id. + experimental FrameId frameId # Whether dialog was confirmed. boolean result # User input in case of prompt. @@ -9765,6 +9952,8 @@ domain Page parameters # Frame url. string url + # Frame id. + experimental FrameId frameId # Message that will be displayed by the dialog. string message # Dialog type. @@ -9935,7 +10124,8 @@ domain Page RequestedByWebViewClient PostMessageByWebViewClient CacheControlNoStoreDeviceBoundSessionTerminated - CacheLimitPruned + CacheLimitPrunedOnModerateMemoryPressure + CacheLimitPrunedOnCriticalMemoryPressure # Types of not restored reasons for back-forward cache. experimental type BackForwardCacheNotRestoredReasonType extends string @@ -10605,6 +10795,19 @@ experimental domain Storage # storage. integer bytesUsed + # Represents a dictionary object passed in as privateAggregationConfig to + # run or selectURL. + type SharedStoragePrivateAggregationConfig extends object + properties + # The chosen aggregation service deployment. + optional string aggregationCoordinatorOrigin + # The context ID provided. + optional string contextId + # Configures the maximum size allowed for filtering IDs. + integer filteringIdMaxBytes + # The limit on the number of contributions in the final report. + optional integer maxContributions + # Pair of reporting metadata details for a candidate URL for `selectURL()`. type SharedStorageReportingMetadata extends object properties @@ -10624,44 +10827,69 @@ experimental domain Storage type SharedStorageAccessParams extends object properties # Spec of the module script URL. - # Present only for SharedStorageAccessType.documentAddModule. + # Present only for SharedStorageAccessMethods: addModule and + # createWorklet. optional string scriptSourceUrl + # String denoting "context-origin", "script-origin", or a custom + # origin to be used as the worklet's data origin. + # Present only for SharedStorageAccessMethod: createWorklet. + optional string dataOrigin # Name of the registered operation to be run. - # Present only for SharedStorageAccessType.documentRun and - # SharedStorageAccessType.documentSelectURL. + # Present only for SharedStorageAccessMethods: run and selectURL. optional string operationName + # ID of the operation call. + # Present only for SharedStorageAccessMethods: run and selectURL. + optional string operationId + # Whether or not to keep the worket alive for future run or selectURL + # calls. + # Present only for SharedStorageAccessMethods: run and selectURL. + optional boolean keepAlive + # Configures the private aggregation options. + # Present only for SharedStorageAccessMethods: run and selectURL. + optional SharedStoragePrivateAggregationConfig privateAggregationConfig # The operation's serialized data in bytes (converted to a string). - # Present only for SharedStorageAccessType.documentRun and - # SharedStorageAccessType.documentSelectURL. + # Present only for SharedStorageAccessMethods: run and selectURL. + # TODO(crbug.com/401011862): Consider updating this parameter to binary. optional string serializedData # Array of candidate URLs' specs, along with any associated metadata. - # Present only for SharedStorageAccessType.documentSelectURL. + # Present only for SharedStorageAccessMethod: selectURL. optional array of SharedStorageUrlWithMetadata urlsWithMetadata + # Spec of the URN:UUID generated for a selectURL call. + # Present only for SharedStorageAccessMethod: selectURL. + optional string urnUuid # Key for a specific entry in an origin's shared storage. - # Present only for SharedStorageAccessType.documentSet, - # SharedStorageAccessType.documentAppend, - # SharedStorageAccessType.documentDelete, - # SharedStorageAccessType.workletSet, - # SharedStorageAccessType.workletAppend, - # SharedStorageAccessType.workletDelete, - # SharedStorageAccessType.workletGet, - # SharedStorageAccessType.headerSet, - # SharedStorageAccessType.headerAppend, and - # SharedStorageAccessType.headerDelete. + # Present only for SharedStorageAccessMethods: set, append, delete, and + # get. optional string key # Value for a specific entry in an origin's shared storage. - # Present only for SharedStorageAccessType.documentSet, - # SharedStorageAccessType.documentAppend, - # SharedStorageAccessType.workletSet, - # SharedStorageAccessType.workletAppend, - # SharedStorageAccessType.headerSet, and - # SharedStorageAccessType.headerAppend. + # Present only for SharedStorageAccessMethods: set and append. optional string value # Whether or not to set an entry for a key if that key is already present. - # Present only for SharedStorageAccessType.documentSet, - # SharedStorageAccessType.workletSet, and - # SharedStorageAccessType.headerSet. + # Present only for SharedStorageAccessMethod: set. optional boolean ignoreIfPresent + # A number denoting the (0-based) order of the worklet's + # creation relative to all other shared storage worklets created by + # documents using the current storage partition. + # Present only for SharedStorageAccessMethods: addModule, createWorklet. + optional integer workletOrdinal + # Hex representation of the DevTools token used as the TargetID for the + # associated shared storage worklet. + # Present only for SharedStorageAccessMethods: addModule, createWorklet, + # run, selectURL, and any other SharedStorageAccessMethod when the + # SharedStorageAccessScope is sharedStorageWorklet. + optional Target.TargetID workletTargetId + # Name of the lock to be acquired, if present. + # Optionally present only for SharedStorageAccessMethods: batchUpdate, + # set, append, delete, and clear. + optional string withLock + # If the method has been called as part of a batchUpdate, then this + # number identifies the batch to which it belongs. + # Optionally present only for SharedStorageAccessMethods: + # batchUpdate (required), set, append, delete, and clear. + optional string batchUpdateId + # Number of modifier methods sent in batch. + # Present only for SharedStorageAccessMethod: batchUpdate. + optional integer batchSize type StorageBucketsDurability extends string enum @@ -11014,6 +11242,27 @@ experimental domain Storage # presence/absence depends on `type`. SharedStorageAccessParams params + # A shared storage run or selectURL operation finished its execution. + # The following parameters are included in all events. + event sharedStorageWorkletOperationExecutionFinished + parameters + # Time that the operation finished. + Network.TimeSinceEpoch finishedTime + # Time, in microseconds, from start of shared storage JS API call until + # end of operation execution in the worklet. + integer executionTime + # Enum value indicating the Shared Storage API method invoked. + SharedStorageAccessMethod method + # ID of the operation call. + string operationId + # Hex representation of the DevTools token used as the TargetID for the + # associated shared storage worklet. + Target.TargetID workletTargetId + # DevTools Frame Token for the primary frame tree's root. + Page.FrameId mainFrameId + # Serialization of the origin owning the Shared Storage data. + string ownerOrigin + event storageBucketCreatedOrUpdated parameters StorageBucketInfo bucketInfo @@ -11077,13 +11326,6 @@ experimental domain Storage # duration in seconds array of integer ends - experimental type AttributionReportingTriggerSpec extends object - properties - # number instead of integer because not all uint32 can be represented by - # int - array of number triggerData - AttributionReportingEventReportWindows eventReportWindows - experimental type AttributionReportingTriggerDataMatching extends string enum exact @@ -11114,12 +11356,20 @@ experimental domain Storage number limit number maxEventStates + experimental type AttributionReportingNamedBudgetDef extends object + properties + string name + integer budget + experimental type AttributionReportingSourceRegistration extends object properties Network.TimeSinceEpoch time # duration in seconds integer expiry - array of AttributionReportingTriggerSpec triggerSpecs + # number instead of integer because not all uint32 can be represented by + # int + array of number triggerData + AttributionReportingEventReportWindows eventReportWindows # duration in seconds integer aggregatableReportWindow AttributionReportingSourceType type @@ -11136,6 +11386,9 @@ experimental domain Storage AttributionReportingAggregatableDebugReportingConfig aggregatableDebugReportingConfig optional AttributionScopesData scopesData integer maxEventLevelReports + array of AttributionReportingNamedBudgetDef namedBudgets + boolean debugReporting + number eventLevelEpsilon experimental type AttributionReportingSourceRegistrationResult extends string enum @@ -11198,6 +11451,11 @@ experimental domain Storage optional UnsignedInt64AsBase10 dedupKey AttributionReportingFilterPair filters + experimental type AttributionReportingNamedBudgetCandidate extends object + properties + optional string name + AttributionReportingFilterPair filters + experimental type AttributionReportingTriggerRegistration extends object properties AttributionReportingFilterPair filters @@ -11213,6 +11471,7 @@ experimental domain Storage optional string triggerContextId AttributionReportingAggregatableDebugReportingConfig aggregatableDebugReportingConfig array of string scopes + array of AttributionReportingNamedBudgetCandidate namedBudgets experimental type AttributionReportingEventLevelResult extends string enum @@ -11260,6 +11519,36 @@ experimental domain Storage AttributionReportingEventLevelResult eventLevel AttributionReportingAggregatableResult aggregatable + experimental type AttributionReportingReportResult extends string + enum + # A network request was attempted for the report. + sent + # No request was attempted because of browser policy. + prohibited + # No request was attempted because of an error in report assembly, + # e.g. the aggregation service was unavailable. + failedToAssemble + # No request was attempted because the report's expiry passed. + expired + + experimental event attributionReportingReportSent + parameters + string url + object body + AttributionReportingReportResult result + # If result is `sent`, populated with net/HTTP status. + optional integer netError + optional string netErrorName + optional integer httpStatusCode + + experimental event attributionReportingVerboseDebugReportSent + parameters + string url + optional array of object body + optional integer netError + optional string netErrorName + optional integer httpStatusCode + # A single Related Website Set object. experimental type RelatedWebsiteSet extends object properties @@ -11291,6 +11580,12 @@ experimental domain Storage # party URL, only the first-party URL is returned in the array. array of string matchedUrls + command setProtectedAudienceKAnonymity + parameters + string owner + string name + array of binary hashes + # The SystemInfo domain defines methods and events for querying low-level system information. experimental domain SystemInfo @@ -11586,6 +11881,10 @@ domain Target optional boolean background # Whether to create the target of type "tab". experimental optional boolean forTab + # Whether to create a hidden target. The hidden target is observable via protocol, but not + # present in the tab UI strip. Cannot be created with `forTab: true`, `newWindow: true` or + # `background: false`. The life-time of the tab is limited to the life-time of the session. + experimental optional boolean hidden returns # The id of the page opened. TargetID targetId @@ -11633,11 +11932,14 @@ domain Target # Deprecated. deprecated optional TargetID targetId - # Controls whether to automatically attach to new targets which are considered to be related to - # this one. When turned on, attaches to all existing related targets as well. When turned off, + # Controls whether to automatically attach to new targets which are considered + # to be directly related to this one (for example, iframes or workers). + # When turned on, attaches to all existing related targets as well. When turned off, # automatically detaches from all currently attached targets. # This also clears all targets added by `autoAttachRelated` from the list of targets to watch # for creation of related targets. + # You might want to call this recursively for auto-attached targets to attach + # to all available targets. command setAutoAttach parameters # Whether to auto-attach to related targets. @@ -11766,7 +12068,7 @@ domain Tracing type TraceConfig extends object properties - # Controls how the trace buffer stores data. + # Controls how the trace buffer stores data. The default is `recordUntilFull`. experimental optional enum recordMode recordUntilFull recordContinuously @@ -12832,7 +13134,6 @@ experimental domain Preload InvalidSchemeRedirect InvalidSchemeNavigation NavigationRequestBlockedByCsp - MainFrameNavigation MojoBinderPolicy RendererProcessCrashed RendererProcessKilled @@ -13128,15 +13429,30 @@ experimental domain PWA integer badgeCount array of FileHandler fileHandlers - # Installs the given manifest identity, optionally using the given install_url - # or IWA bundle location. + # Installs the given manifest identity, optionally using the given installUrlOrBundleUrl + # + # IWA-specific install description: + # manifestId corresponds to isolated-app:// + web_package::SignedWebBundleId + # + # File installation mode: + # The installUrlOrBundleUrl can be either file:// or http(s):// pointing + # to a signed web bundle (.swbn). In this case SignedWebBundleId must correspond to + # The .swbn file's signing key. + # + # Dev proxy installation mode: + # installUrlOrBundleUrl must be http(s):// that serves dev mode IWA. + # web_package::SignedWebBundleId must be of type dev proxy. # - # TODO(crbug.com/337872319) Support IWA to meet the following specific - # requirement. - # IWA-specific install description: If the manifest_id is isolated-app://, - # install_url_or_bundle_url is required, and can be either an http(s) URL or - # file:// URL pointing to a signed web bundle (.swbn). The .swbn file's - # signing key must correspond to manifest_id. If Chrome is not in IWA dev + # The advantage of dev proxy mode is that all changes to IWA + # automatically will be reflected in the running app without + # reinstallation. + # + # To generate bundle id for proxy mode: + # 1. Generate 32 random bytes. + # 2. Add a specific suffix 0x00 at the end. + # 3. Encode the entire sequence using Base32 without padding. + # + # If Chrome is not in IWA dev # mode, the installation will fail, regardless of the state of the allowlist. command install parameters @@ -13237,6 +13553,27 @@ experimental domain BluetoothEmulation connection discovery + # Indicates the various types of characteristic write. + type CharacteristicWriteType extends string + enum + write-default-deprecated + write-with-response + write-without-response + + # Indicates the various types of characteristic operation. + type CharacteristicOperationType extends string + enum + read + write + subscribe-to-notifications + unsubscribe-from-notifications + + # Indicates the various types of descriptor operation. + type DescriptorOperationType extends string + enum + read + write + # Stores the manufacturer data type ManufacturerData extends object properties @@ -13321,6 +13658,30 @@ experimental domain BluetoothEmulation GATTOperationType type integer code + # Simulates the response from the characteristic with |characteristicId| for a + # characteristic operation of |type|. The |code| value follows the Error + # Codes from Bluetooth Core Specification Vol 3 Part F 3.4.1.1 Error Response. + # The |data| is expected to exist when simulating a successful read operation + # response. + command simulateCharacteristicOperationResponse + parameters + string characteristicId + CharacteristicOperationType type + integer code + optional binary data + + # Simulates the response from the descriptor with |descriptorId| for a + # descriptor operation of |type|. The |code| value follows the Error + # Codes from Bluetooth Core Specification Vol 3 Part F 3.4.1.1 Error Response. + # The |data| is expected to exist when simulating a successful read operation + # response. + command simulateDescriptorOperationResponse + parameters + string descriptorId + DescriptorOperationType type + integer code + optional binary data + # Adds a service with |serviceUuid| to the peripheral with |address|. command addService parameters @@ -13330,18 +13691,15 @@ experimental domain BluetoothEmulation # An identifier that uniquely represents this service. string serviceId - # Removes the service respresented by |serviceId| from the peripheral with - # |address|. + # Removes the service respresented by |serviceId| from the simulated central. command removeService parameters - string address string serviceId # Adds a characteristic with |characteristicUuid| and |properties| to the - # service represented by |serviceId| in the peripheral with |address|. + # service represented by |serviceId|. command addCharacteristic parameters - string address string serviceId string characteristicUuid CharacteristicProperties properties @@ -13350,16 +13708,53 @@ experimental domain BluetoothEmulation string characteristicId # Removes the characteristic respresented by |characteristicId| from the - # service respresented by |serviceId| in the peripheral with |address|. + # simulated central. command removeCharacteristic parameters - string address - string serviceId string characteristicId + # Adds a descriptor with |descriptorUuid| to the characteristic respresented + # by |characteristicId|. + command addDescriptor + parameters + string characteristicId + string descriptorUuid + returns + # An identifier that uniquely represents this descriptor. + string descriptorId + + # Removes the descriptor with |descriptorId| from the simulated central. + command removeDescriptor + parameters + string descriptorId + + # Simulates a GATT disconnection from the peripheral with |address|. + command simulateGATTDisconnection + parameters + string address + # Event for when a GATT operation of |type| to the peripheral with |address| # happened. event gattOperationReceived parameters string address GATTOperationType type + + # Event for when a characteristic operation of |type| to the characteristic + # respresented by |characteristicId| happened. |data| and |writeType| is + # expected to exist when |type| is write. + event characteristicOperationReceived + parameters + string characteristicId + CharacteristicOperationType type + optional binary data + optional CharacteristicWriteType writeType + + # Event for when a descriptor operation of |type| to the descriptor + # respresented by |descriptorId| happened. |data| is expected to exist when + # |type| is write. + event descriptorOperationReceived + parameters + string descriptorId + DescriptorOperationType type + optional binary data diff --git a/common/devtools/chromium/v135/js_protocol.pdl b/common/devtools/chromium/v139/js_protocol.pdl similarity index 99% rename from common/devtools/chromium/v135/js_protocol.pdl rename to common/devtools/chromium/v139/js_protocol.pdl index e33cdae701a12..73da9149b5d8b 100644 --- a/common/devtools/chromium/v135/js_protocol.pdl +++ b/common/devtools/chromium/v139/js_protocol.pdl @@ -649,7 +649,7 @@ domain Debugger Runtime.ExecutionContextId executionContextId # Content hash of the script, SHA-256. string hash - # For Wasm modules, the content of the `build_id` custom section. + # For Wasm modules, the content of the `build_id` custom section. For JavaScript the `debugId` magic comment. string buildId # Embedder-specific auxiliary data likely matching {isDefault: boolean, type: 'default'|'isolated'|'worker', frameId: string} optional object executionContextAuxData @@ -690,7 +690,7 @@ domain Debugger Runtime.ExecutionContextId executionContextId # Content hash of the script, SHA-256. string hash - # For Wasm modules, the content of the `build_id` custom section. + # For Wasm modules, the content of the `build_id` custom section. For JavaScript the `debugId` magic comment. string buildId # Embedder-specific auxiliary data likely matching {isDefault: boolean, type: 'default'|'isolated'|'worker', frameId: string} optional object executionContextAuxData diff --git a/common/devtools/chromium/v137/BUILD.bazel b/common/devtools/chromium/v140/BUILD.bazel similarity index 100% rename from common/devtools/chromium/v137/BUILD.bazel rename to common/devtools/chromium/v140/BUILD.bazel diff --git a/common/devtools/chromium/v135/browser_protocol.pdl b/common/devtools/chromium/v140/browser_protocol.pdl similarity index 93% rename from common/devtools/chromium/v135/browser_protocol.pdl rename to common/devtools/chromium/v140/browser_protocol.pdl index 46526d39dcbde..64b9c19d9a2fe 100644 --- a/common/devtools/chromium/v135/browser_protocol.pdl +++ b/common/devtools/chromium/v140/browser_protocol.pdl @@ -823,6 +823,14 @@ experimental domain Audits ValidationFailedSignatureExpired ValidationFailedInvalidLength ValidationFailedSignatureMismatch + ValidationFailedIntegrityMismatch + + type UnencodedDigestError extends string + enum + MalformedDictionary + UnknownAlgorithm + IncorrectDigestType + IncorrectDigestLength # Details for issues around "Attribution Reporting API" usage. # Explainer: https://github.com/WICG/attribution-reporting-api @@ -858,6 +866,13 @@ experimental domain Audits type SRIMessageSignatureIssueDetails extends object properties SRIMessageSignatureError error + string signatureBase + array of string integrityAssertions + AffectedRequest request + + type UnencodedDigestIssueDetails extends object + properties + UnencodedDigestError error AffectedRequest request type GenericIssueErrorType extends string @@ -980,6 +995,7 @@ experimental domain Audits TypeNotMatching UiDismissedNoEmbargo CorsError + SuppressedBySegmentationPlatform type FederatedAuthUserInfoRequestIssueDetails extends object properties @@ -1027,19 +1043,20 @@ experimental domain Audits # Additional information about the Partitioning Blob URL issue. PartitioningBlobURLInfo partitioningBlobURLInfo - type SelectElementAccessibilityIssueReason extends string + type ElementAccessibilityIssueReason extends string enum DisallowedSelectChild DisallowedOptGroupChild NonPhrasingContentOptionChild InteractiveContentOptionChild InteractiveContentLegendChild + InteractiveContentSummaryDescendant - # This issue warns about errors in the select element content model. - type SelectElementAccessibilityIssueDetails extends object + # This issue warns about errors in the select or summary element content model. + type ElementAccessibilityIssueDetails extends object properties DOM.BackendNodeId nodeId - SelectElementAccessibilityIssueReason selectElementAccessibilityIssueReason + ElementAccessibilityIssueReason elementAccessibilityIssueReason boolean hasDisallowedAttributes type StyleSheetLoadingIssueReason extends string @@ -1075,6 +1092,19 @@ experimental domain Audits # The value of the property rule property that failed to parse optional string propertyValue + type UserReidentificationIssueType extends string + enum + BlockedFrameNavigation + BlockedSubresource + + # This issue warns about uses of APIs that may be considered misuse to + # re-identify users. + type UserReidentificationIssueDetails extends object + properties + UserReidentificationIssueType type + # Applies to BlockedFrameNavigation and BlockedSubresource issue types. + optional AffectedRequest request + # A unique identifier for the type of issue. Each type may use one of the # optional fields in InspectorIssueDetails to convey more specific # information about the kind of issue. @@ -1103,8 +1133,10 @@ experimental domain Audits FederatedAuthUserInfoRequestIssue PropertyRuleIssue SharedDictionaryIssue - SelectElementAccessibilityIssue + ElementAccessibilityIssue SRIMessageSignatureIssue + UnencodedDigestIssue + UserReidentificationIssue # This struct holds a list of optional fields with additional information # specific to the kind of issue. When adding a new issue code, please also @@ -1133,8 +1165,10 @@ experimental domain Audits optional PropertyRuleIssueDetails propertyRuleIssueDetails optional FederatedAuthUserInfoRequestIssueDetails federatedAuthUserInfoRequestIssueDetails optional SharedDictionaryIssueDetails sharedDictionaryIssueDetails - optional SelectElementAccessibilityIssueDetails selectElementAccessibilityIssueDetails + optional ElementAccessibilityIssueDetails elementAccessibilityIssueDetails optional SRIMessageSignatureIssueDetails sriMessageSignatureIssueDetails + optional UnencodedDigestIssueDetails unencodedDigestIssueDetails + optional UserReidentificationIssueDetails userReidentificationIssueDetails # A unique id for a DevTools inspector issue. Allows other entities (e.g. # exceptions, CDP message, console messages, etc.) to reference an issue. @@ -1481,6 +1515,7 @@ domain Browser idleDetection keyboardLock localFonts + localNetworkAccess midi midiSysex nfc @@ -1532,6 +1567,7 @@ domain Browser enum openTabSearch closeTabSearch + openGlic # Set permission settings for given origin. experimental command setPermission @@ -1613,6 +1649,10 @@ domain Browser inProgress completed canceled + # If download is "completed", provides the path of the downloaded file. + # Depending on the platform, it is not guaranteed to be set, nor the file + # is guaranteed to exist. + experimental optional string filePath # Close browser gracefully. command close @@ -1722,6 +1762,18 @@ domain Browser # with 'left', 'top', 'width' or 'height'. Leaves unspecified fields unchanged. Bounds bounds + # Set size of the browser contents resizing browser window as necessary. + experimental command setContentsSize + parameters + # Browser window id. + WindowID windowId + # The window contents width in DIP. Assumes current width if omitted. + # Must be specified if 'height' is omitted. + optional integer width + # The window contents height in DIP. Assumes current height if omitted. + # Must be specified if 'width' is omitted. + optional integer height + # Set dock tile details, platform-specific. experimental command setDockTile parameters @@ -1740,6 +1792,25 @@ domain Browser parameters string url + experimental type PrivacySandboxAPI extends string + enum + BiddingAndAuctionServices + TrustedKeyValue + + # Configures encryption keys used with a given privacy sandbox API to talk + # to a trusted coordinator. Since this is intended for test automation only, + # coordinatorOrigin must be a .test domain. No existing coordinator + # configuration for the origin may exist. + command addPrivacySandboxCoordinatorKeyConfig + parameters + PrivacySandboxAPI api + string coordinatorOrigin + string keyConfig + # BrowserContext to perform the action in. When omitted, default browser + # context is used. + optional BrowserContextID browserContextId + + # This domain exposes CSS read/write operations. All CSS objects (stylesheets, rules, and styles) # have an associated `id` used in subsequent operations on the related object. Each object type has # a specific `id` structure, and those are not interchangeable between objects of different kinds. @@ -2077,6 +2148,8 @@ experimental domain CSS optional DOM.LogicalAxes logicalAxes # true if the query contains scroll-state() queries. optional boolean queriesScrollState + # true if the query contains anchored() queries. + optional boolean queriesAnchored # CSS Supports at-rule descriptor. experimental type CSSSupports extends object @@ -2413,7 +2486,12 @@ experimental domain CSS # For example, a value of '1em' is evaluated according to the computed # 'font-size' of the element and a value 'calc(1px + 2px)' will be # resolved to '3px'. - command resolveValues + # If the `propertyName` was specified the `values` are resolved as if + # they were property's declaration. If a value cannot be parsed according + # to the provided property syntax, the value is parsed using combined + # syntax as if null `propertyName` was provided. If the value cannot be + # resolved even then, return the provided value without any changes. + experimental command resolveValues parameters # Substitution functions (var()/env()/attr()) and cascade-dependent # keywords (revert/revert-layer) do not work. @@ -2424,9 +2502,9 @@ experimental domain CSS optional string propertyName # Pseudo element type, only works for pseudo elements that generate # elements in the tree, such as ::before and ::after. - experimental optional DOM.PseudoType pseudoType + optional DOM.PseudoType pseudoType # Pseudo element custom ident. - experimental optional string pseudoIdentifier + optional string pseudoIdentifier returns array of string results @@ -2497,6 +2575,11 @@ experimental domain CSS # A list of CSS at-function rules referenced by styles of this node. experimental optional array of CSSFunctionRule cssFunctionRules + # Returns the values of the default UA-defined environment variables used in env() + experimental command getEnvironmentVariables + returns + object environmentVariables + # Returns all media queries parsed by the rendering engine. command getMediaQueries returns @@ -2957,12 +3040,14 @@ domain DOM view-transition view-transition-group view-transition-image-pair + view-transition-group-children view-transition-old view-transition-new placeholder file-selector-button details-content picker + permission-icon # Shadow root type. type ShadowRootType extends string @@ -3334,6 +3419,8 @@ domain DOM optional BackendNodeId backendNodeId # JavaScript object id of the node wrapper. optional Runtime.RemoteObjectId objectId + # Include all shadow roots. Equals to false if not specified. + experimental optional boolean includeShadowDOM returns # Outer HTML markup. string outerHTML @@ -3466,8 +3553,12 @@ domain DOM # Get the popover target for a given element. In this case, this given # element can only be an HTMLFormControlElement (,