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 @@
Developing •
Testing •
Documenting •
- 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 (,