diff --git a/.bazelrc b/.bazelrc
index 4c9ebcfd307a6..e4834f9759d01 100644
--- a/.bazelrc
+++ b/.bazelrc
@@ -30,15 +30,19 @@ build --tool_java_runtime_version=remotejdk_17
build --javacopt="--release 11"
# Require java dependencies to be used and first-order
-
build --experimental_strict_java_deps=strict
build --explicit_java_test_deps
+# Avoid ErrorProne getting annoyed about "impossible null checks"
+build --javacopt="-Xep:ImpossibleNullComparison:OFF"
+
# Allow spaces in runfile paths
build --nobuild_runfile_links
# More JS magic
build --experimental_allow_unresolved_symlinks
+# Avoid a warning about directory tracking being unsound
+startup --host_jvm_args=-DBAZEL_TRACK_SOURCE_DIRECTORIES=1
# Required for faster TS builds
build --@aspect_rules_ts//ts:skipLibCheck=always
@@ -53,6 +57,11 @@ query --@aspect_rules_ts//ts:default_to_tsc_transpiler
build --incompatible_strict_action_env
+# Required to get `protobuf` compiling, which is required for `rules_closure`
+build --incompatible_enable_cc_toolchain_resolution
+build --cxxopt=-std=c++14
+build --host_cxxopt=-std=c++14
+
# For build stamping
build --enable_platform_specific_config
@@ -100,8 +109,14 @@ test --test_timeout=1800
test:node_debug --test_output=streamed --test_strategy=exclusive --test_timeout=9999 --nocache_test_results
test:ruby_debug --test_output=streamed --test_env=RUBY_DEBUG_FORK_MODE=parent --run_under="@bundle//bin:rdbg --nonstop --open --command"
-build:release --config=remote
+
build:release --stamp
+build:release --compilation_mode=opt
+
+# As regular `release` but all the build work happens on the RBE
+build:remote_release --config=release
+build:remote_release --config=remote
+build:remote_release --remote_download_toplevel
# RBE
import %workspace%/.bazelrc.remote
diff --git a/.bazelversion b/.bazelversion
index 0ee843cc60466..643916c03f1f6 100644
--- a/.bazelversion
+++ b/.bazelversion
@@ -1 +1 @@
-7.2.0
+7.3.1
diff --git a/.github/release.yml b/.github/release.yml
index 8f13b55a4e290..95dee31ec9630 100644
--- a/.github/release.yml
+++ b/.github/release.yml
@@ -1,6 +1,6 @@
changelog:
exclude:
labels:
- -dependencies
+ - dependencies
authors:
- selenium-ci
diff --git a/.github/workflows/bazel.yml b/.github/workflows/bazel.yml
index 41a100327c9db..7b86e983e85d1 100644
--- a/.github/workflows/bazel.yml
+++ b/.github/workflows/bazel.yml
@@ -70,7 +70,7 @@ on:
jobs:
bazel:
name: ${{ inputs.name }}
- runs-on: ${{ inputs.os == 'macos' && 'macos-13' || format('{0}-latest', inputs.os) }}
+ runs-on: ${{ format('{0}-latest', inputs.os) }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SEL_M2_USER: ${{ secrets.SEL_M2_USER }}
@@ -116,7 +116,7 @@ jobs:
node-version: ${{ inputs.node-version }}
- name: Setup Bazel with caching
if: inputs.caching
- uses: bazel-contrib/setup-bazel@0.8.5
+ uses: bazel-contrib/setup-bazel@0.9.1
with:
bazelisk-cache: true
bazelrc: common --color=yes
@@ -130,7 +130,7 @@ jobs:
repository-cache: true
- name: Setup Bazel without caching
if: inputs.caching == false
- uses: bazel-contrib/setup-bazel@0.8.5
+ uses: bazel-contrib/setup-bazel@0.9.1
with:
bazelrc: common --color=yes
- name: Setup Fluxbox and Xvfb
@@ -146,6 +146,9 @@ jobs:
- name: Setup Safari
if: inputs.browser == 'safari'
run: sudo safaridriver --enable
+ - name: Setup curl for Ubuntu
+ if: inputs.os == 'ubuntu'
+ run: sudo apt-get update && sudo apt-get install -y libcurl4-openssl-dev
- name: Run Bazel
run: ${{ inputs.run }}
- name: Start SSH session
diff --git a/.github/workflows/ci-dotnet.yml b/.github/workflows/ci-dotnet.yml
index 65debef8c10e4..1e2a2c259382d 100644
--- a/.github/workflows/ci-dotnet.yml
+++ b/.github/workflows/ci-dotnet.yml
@@ -23,4 +23,5 @@ jobs:
java-version: 17
os: windows
run: |
+ fsutil 8dot3name set 0
bazel test //dotnet/test/common:ElementFindingTest-firefox //dotnet/test/common:ElementFindingTest-chrome --pin_browsers=true
diff --git a/.github/workflows/ci-java.yml b/.github/workflows/ci-java.yml
index 569d68d562440..1ebd054c05089 100644
--- a/.github/workflows/ci-java.yml
+++ b/.github/workflows/ci-java.yml
@@ -22,6 +22,7 @@ jobs:
# https://github.com/bazelbuild/rules_jvm_external/issues/1046
java-version: 17
run: |
+ fsutil 8dot3name set 0
bazel test --flaky_test_attempts 3 //java/test/org/openqa/selenium/chrome:ChromeDriverFunctionalTest `
//java/test/org/openqa/selenium/federatedcredentialmanagement:FederatedCredentialManagementTest `
//java/test/org/openqa/selenium/firefox:FirefoxDriverBuilderTest `
diff --git a/.github/workflows/ci-javascript.yml b/.github/workflows/ci-javascript.yml
deleted file mode 100644
index 38f61cd0911cf..0000000000000
--- a/.github/workflows/ci-javascript.yml
+++ /dev/null
@@ -1,35 +0,0 @@
-name: CI - JavaScript
-
-on:
- workflow_call:
- workflow_dispatch:
-
-jobs:
- build:
- name: Build
- uses: ./.github/workflows/bazel.yml
- with:
- name: Build
- cache-key: javascript-build
- run: bazel build //javascript/node/selenium-webdriver:selenium-webdriver
-
- browser-tests:
- name: Browser Tests
- needs: build
- uses: ./.github/workflows/bazel.yml
- strategy:
- fail-fast: false
- matrix:
- browser:
- - chrome
- - firefox
- with:
- name: Browser Tests (${{ matrix.browser }})
- browser: ${{ matrix.browser }}
- cache-key: javascript-${{matrix.browser}}-browser-tests
- run: >
- bazel test
- --flaky_test_attempts 3
- --test_tag_filters ${{ matrix.browser }}
- --local_test_jobs 1
- //javascript/node/...
diff --git a/.github/workflows/ci-python.yml b/.github/workflows/ci-python.yml
index 9749fd4e7ad82..00040c5d40ddf 100644
--- a/.github/workflows/ci-python.yml
+++ b/.github/workflows/ci-python.yml
@@ -16,7 +16,7 @@ jobs:
docs:
name: Documentation
needs: build
- runs-on: ubuntu-20.04
+ runs-on: ubuntu-latest
steps:
- name: Checkout source tree
uses: actions/checkout@v4
@@ -36,7 +36,7 @@ jobs:
lint:
name: Lint
needs: build
- runs-on: ubuntu-20.04
+ runs-on: ubuntu-latest
steps:
- name: Checkout source tree
uses: actions/checkout@v4
@@ -58,7 +58,7 @@ jobs:
mypy:
name: Mypy
needs: build
- runs-on: ubuntu-20.04
+ runs-on: ubuntu-latest
steps:
- name: Checkout source tree
uses: actions/checkout@v4
@@ -81,8 +81,54 @@ jobs:
name: Remote Tests
needs: build
uses: ./.github/workflows/bazel.yml
+ strategy:
+ fail-fast: false
+ matrix:
+ include:
+ - browser: firefox
with:
- name: Integration Tests (remote)
- browser: firefox
- cache-key: py-remote
+ name: Integration Tests (remote, ${{ matrix.browser }})
+ browser: ${{ matrix.browser }}
+ cache-key: py-remote-${{ matrix.browser }}
run: bazel test --local_test_jobs 1 --flaky_test_attempts 3 //py:test-remote
+
+ browser-tests:
+ name: Browser Tests
+ needs: build
+ uses: ./.github/workflows/bazel.yml
+ strategy:
+ fail-fast: false
+ matrix:
+ include:
+ - browser: chrome
+ os: ubuntu
+ - browser: edge
+ os: ubuntu
+ - browser: firefox
+ os: ubuntu
+ with:
+ name: Integration Tests (${{ matrix.browser }}, ${{ matrix.os }})
+ browser: ${{ matrix.browser }}
+ 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 }}
+
+ safari-tests:
+ name: Browser Tests
+ needs: build
+ uses: ./.github/workflows/bazel.yml
+ strategy:
+ fail-fast: false
+ matrix:
+ include:
+ - browser: safari
+ os: macos
+ with:
+ name: Integration Tests (${{ matrix.browser }}, ${{ matrix.os }})
+ browser: ${{ matrix.browser }}
+ os: ${{ matrix.os }}
+ cache-key: py-browser-${{ matrix.browser }}
+ run: |
+ bazel test --local_test_jobs 1 --flaky_test_attempts 3 //py:test-${{ matrix.browser }}
diff --git a/.github/workflows/ci-rbe.yml b/.github/workflows/ci-rbe.yml
index 382aea6409f2a..2e15949925580 100644
--- a/.github/workflows/ci-rbe.yml
+++ b/.github/workflows/ci-rbe.yml
@@ -15,7 +15,7 @@ jobs:
with:
name: Check format script run
caching: false
- ruby-version: jruby-9.4.5.0
+ ruby-version: jruby-9.4.8.0
run: ./scripts/github-actions/check-format.sh
test:
@@ -25,5 +25,5 @@ jobs:
with:
name: All RBE tests
caching: false
- ruby-version: jruby-9.4.5.0
+ ruby-version: jruby-9.4.8.0
run: ./scripts/github-actions/ci-build.sh
diff --git a/.github/workflows/ci-ruby.yml b/.github/workflows/ci-ruby.yml
index 419e17df5065c..88cf3512ebfba 100644
--- a/.github/workflows/ci-ruby.yml
+++ b/.github/workflows/ci-ruby.yml
@@ -39,17 +39,17 @@ jobs:
fail-fast: false
matrix:
include:
- - ruby-version: 3.0.6
+ - ruby-version: 3.1.6
os: ubuntu
- - ruby-version: 3.0.6
+ - ruby-version: 3.1.6
os: windows
- - ruby-version: 3.0.6
+ - ruby-version: 3.1.6
os: macos
- - ruby-version: 3.3.0
+ - ruby-version: 3.3.5
os: ubuntu
- - ruby-version: jruby-9.4.5.0
+ - ruby-version: jruby-9.4.8.0
os: ubuntu
- - ruby-version: truffleruby-23.1.1
+ - ruby-version: truffleruby-24.1.1
os: ubuntu
with:
name: Unit Tests (${{ matrix.ruby-version }}, ${{ matrix.os }})
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 2df302b754c39..db2c0a78857de 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -21,7 +21,7 @@ jobs:
with:
fetch-depth: 50
- name: Setup Bazel
- uses: bazel-contrib/setup-bazel@0.8.5
+ uses: bazel-contrib/setup-bazel@0.9.1
with:
bazelisk-cache: true
cache-version: 2
@@ -59,17 +59,6 @@ jobs:
contains(join(github.event.commits.*.message), '[java]') ||
contains(github.event.pull_request.title, '[java]')
- javascript:
- name: JavaScript
- needs: check
- uses: ./.github/workflows/ci-javascript.yml
- if: >
- github.event_name == 'schedule' ||
- github.event_name == 'workflow_dispatch' ||
- contains(needs.check.outputs.targets, '//javascript') ||
- contains(join(github.event.commits.*.message), '[js]') ||
- contains(github.event.pull_request.title, '[js]')
-
python:
name: Python
needs: check
diff --git a/.github/workflows/delete-comments.yml b/.github/workflows/delete-comments.yml
new file mode 100644
index 0000000000000..d766665ced333
--- /dev/null
+++ b/.github/workflows/delete-comments.yml
@@ -0,0 +1,44 @@
+name: Delete Comments
+
+on:
+ issue_comment:
+ types: [created]
+
+permissions:
+ issues: write
+
+jobs:
+ delete_comment:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Check for specific strings in comment
+ id: check_comment
+ uses: actions/github-script@v7
+ with:
+ script: |
+ const comment = context.payload.comment.body;
+ const triggerStrings = ['www.mediafire.com'];
+ return triggerStrings.some(triggerString => comment.includes(triggerString));
+
+ - name: Delete comment if it contains any of the specific strings
+ if: steps.check_comment.outputs.result == 'true'
+ uses: actions/github-script@v7
+ with:
+ script: |
+ const commentId = context.payload.comment.id;
+ await github.rest.issues.deleteComment({
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ comment_id: commentId
+ });
+
+ - name: Block user from the org if their comment contained any of the banned strings
+ if: steps.check_comment.outputs.result == 'true'
+ uses: actions/github-script@v7
+ with:
+ script: |
+ const username = context.payload.comment.user.login
+ await github.rest.orgs.blockUser({
+ org: context.repo.owner,
+ username: username
+ });
diff --git a/.github/workflows/label-commenter.yml b/.github/workflows/label-commenter.yml
index fddc487a797ef..205647d30daa0 100644
--- a/.github/workflows/label-commenter.yml
+++ b/.github/workflows/label-commenter.yml
@@ -12,7 +12,7 @@ permissions:
jobs:
comment:
if: github.repository_owner == 'seleniumhq'
- runs-on: ubuntu-20.04
+ runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Label Commenter
diff --git a/.github/workflows/pre-release.yml b/.github/workflows/pre-release.yml
index fb2d19a97a272..40253a37a5f77 100644
--- a/.github/workflows/pre-release.yml
+++ b/.github/workflows/pre-release.yml
@@ -72,6 +72,8 @@ jobs:
with:
ruby-version: '3.1'
working-directory: 'rb'
+ - name: Setup curl for Ubuntu
+ run: sudo apt-get update && sudo apt-get install -y libcurl4-openssl-dev
- name: "Prep git"
run: |
git config --local user.email "selenium-ci@users.noreply.github.com"
diff --git a/.github/workflows/stage-release.yml b/.github/workflows/stage-release.yml
index 5f4eccb69d477..b40f7690347ee 100644
--- a/.github/workflows/stage-release.yml
+++ b/.github/workflows/stage-release.yml
@@ -2,61 +2,70 @@ name: Release Staging
on:
pull_request:
- types: [closed]
+ types: [ closed ]
+ workflow_dispatch:
+ inputs:
+ version:
+ description: 'Selenium version to release'
+ required: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ BRANCH_NAME: ${{ github.event.pull_request.head.ref }}
jobs:
github-release:
if: >
- github.event.pull_request.merged == true &&
+ (github.event.pull_request.merged == true &&
github.repository_owner == 'seleniumhq' &&
- startsWith(github.event.pull_request.head.ref, 'release-preparation-')
+ startsWith(github.event.pull_request.head.ref, 'release-preparation-')) ||
+ (github.event_name == 'workflow_dispatch' &&
+ github.event.inputs.version != '' &&
+ github.repository_owner == 'seleniumhq')
runs-on: ubuntu-latest
+ permissions: write-all
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Extract version from branch name
- id: extract_version
+ if: github.event.pull_request.merged == true
run: |
- BRANCH_NAME="${{ github.event.pull_request.head.ref }}"
VERSION=$(echo $BRANCH_NAME | grep -oE '[0-9]+\.[0-9]+\.[0-9]+')
echo "VERSION=$VERSION" >> $GITHUB_ENV
+ - name: Extract version from workflow input
+ if: github.event_name == 'workflow_dispatch'
+ run: |
+ VERSION=${{ inputs.version }}
+ echo "VERSION=$VERSION" >> $GITHUB_ENV
- name: Prep git
run: |
git config --local user.email "selenium-ci@users.noreply.github.com"
git config --local user.name "Selenium CI Bot"
- - name: Tag Release
- run: |
- git tag selenium-${{ env.VERSION }}
- git push origin selenium-${{ env.VERSION }}
- - name: Update Nightly Tag to Remove pre-release
- run: |
- git fetch --tags
- git tag -d nightly || echo "Nightly tag not found"
- git tag nightly
- git push origin refs/tags/nightly --force
+ # - name: Tag Release
+ # run: |
+ # git tag selenium-${{ env.VERSION }} || echo "Tag already exists"
+ # git push origin selenium-${{ env.VERSION }} || echo "Tag already exists remotely"
- name: Setup Java
uses: actions/setup-java@v3
with:
java-version: 17
distribution: 'temurin'
+ - name: Setup curl for Ubuntu
+ run: sudo apt-get update && sudo apt-get install -y libcurl4-openssl-dev
- name: Build and Stage Packages
run: ./go all:package[--config=release]
- name: Generate Draft Release
- uses: softprops/action-gh-release@v2
+ uses: ncipollo/release-action@v1
with:
- name: Selenium ${{ env.VERSION }}
- body: |
- ## Detailed Changelogs by Component
- **[Java](https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG)** | **[Python](https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES)** | **[DotNet](https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG)** | **[Ruby](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES)** | **[JavaScript](https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/node/selenium-webdriver/CHANGES.md)** | **[IEDriver](https://github.com/SeleniumHQ/selenium/blob/trunk/cpp/iedriverserver/CHANGELOG)**
-
- tag_name: selenium-${{ env.VERSION }}
+ artifacts: "build/dist/*.*"
+ bodyFile: "scripts/github-actions/release_header.md"
draft: true
- generate_release_notes: true
+ generateReleaseNotes: true
+ name: "Selenium ${{ env.VERSION }}"
prerelease: false
- files: build/dist/*.*
+ skipIfReleaseExists: true
+ tag: "selenium-${{ env.VERSION }}"
+ commit: "${{ github.sha }}"
update-documentation:
needs: github-release
diff --git a/.github/workflows/update-documentation.yml b/.github/workflows/update-documentation.yml
index 7e2e5efee541f..4bed149651701 100644
--- a/.github/workflows/update-documentation.yml
+++ b/.github/workflows/update-documentation.yml
@@ -46,7 +46,7 @@ jobs:
git config --local user.email "selenium-ci@users.noreply.github.com"
git config --local user.name "Selenium CI Bot"
- name: Setup Java
- uses: actions/setup-java@v3
+ uses: actions/setup-java@v4
with:
java-version: 17
distribution: 'temurin'
@@ -58,7 +58,7 @@ jobs:
git format-patch -1 HEAD --stdout > java-docs.patch
- name: Upload patch
if: needs.determine-language.outputs.language == 'all' || needs.determine-language.outputs.language == 'java'
- uses: actions/upload-artifact@v2
+ uses: actions/upload-artifact@v4
with:
name: java-docs-patch
path: java-docs.patch
@@ -76,10 +76,12 @@ jobs:
git config --local user.email "selenium-ci@users.noreply.github.com"
git config --local user.name "Selenium CI Bot"
- name: Setup Java
- uses: actions/setup-java@v3
+ uses: actions/setup-java@v4
with:
java-version: 17
distribution: 'temurin'
+ - name: Setup curl for Ubuntu
+ run: sudo apt-get update && sudo apt-get install -y libcurl4-openssl-dev
- name: Update Documentation
if: needs.determine-language.outputs.language == 'all' || needs.determine-language.outputs.language == 'ruby'
run: ./go rb:docs
@@ -88,7 +90,7 @@ jobs:
git format-patch -1 HEAD --stdout > ruby-docs.patch
- name: Upload patch
if: needs.determine-language.outputs.language == 'all' || needs.determine-language.outputs.language == 'ruby'
- uses: actions/upload-artifact@v2
+ uses: actions/upload-artifact@v4
with:
name: ruby-docs-patch
path: ruby-docs.patch
@@ -106,7 +108,7 @@ jobs:
git config --local user.email "selenium-ci@users.noreply.github.com"
git config --local user.name "Selenium CI Bot"
- name: Set up Python 3.8
- uses: actions/setup-python@v4
+ uses: actions/setup-python@v5
with:
python-version: 3.8
- name: Install dependencies
@@ -121,7 +123,7 @@ jobs:
git format-patch -1 HEAD --stdout > python-docs.patch
- name: Upload patch
if: needs.determine-language.outputs.language == 'all' || needs.determine-language.outputs.language == 'python'
- uses: actions/upload-artifact@v2
+ uses: actions/upload-artifact@v4
with:
name: python-docs-patch
path: python-docs.patch
@@ -150,7 +152,7 @@ jobs:
git format-patch -1 HEAD --stdout > dotnet-docs.patch
- name: Upload patch
if: needs.determine-language.outputs.language == 'all' || needs.determine-language.outputs.language == 'dotnet'
- uses: actions/upload-artifact@v2
+ uses: actions/upload-artifact@v4
with:
name: dotnet-docs-patch
path: dotnet-docs.patch
@@ -179,7 +181,7 @@ jobs:
git format-patch -1 HEAD --stdout > node-docs.patch
- name: Upload patch
if: needs.determine-language.outputs.language == 'all' || needs.determine-language.outputs.language == 'node'
- uses: actions/upload-artifact@v2
+ uses: actions/upload-artifact@v4
with:
name: node-docs-patch
path: node-docs.patch
@@ -192,46 +194,26 @@ jobs:
uses: actions/checkout@v4
with:
ref: 'gh-pages'
+ fetch-depth: 0
+ fetch-tags: true
- name: Create and checkout new branch
run: |
git config --local user.email "selenium-ci@users.noreply.github.com"
git config --local user.name "Selenium CI Bot"
git checkout -b api-docs-${{ inputs.tag }}
- - name: Download Java patch
- if: needs.determine-language.outputs.language == 'all' || needs.determine-language.outputs.language == 'java'
- uses: actions/download-artifact@v2
- with:
- name: java-docs-patch
- path: patches/
- - name: Download Ruby patch
- if: needs.determine-language.outputs.language == 'all' || needs.determine-language.outputs.language == 'ruby'
- uses: actions/download-artifact@v2
- with:
- name: ruby-docs-patch
- path: patches/
- - name: Download Python patch
- if: needs.determine-language.outputs.language == 'all' || needs.determine-language.outputs.language == 'python'
- uses: actions/download-artifact@v2
+ - name: Download all patches
+ uses: actions/download-artifact@v4
with:
- name: python-docs-patch
- path: patches/
- - name: Download .NET patch
- if: needs.determine-language.outputs.language == 'all' || needs.determine-language.outputs.language == 'dotnet'
- uses: actions/download-artifact@v2
- with:
- name: dotnet-docs-patch
- path: patches/
- - name: Download Node patch
- if: needs.determine-language.outputs.language == 'all' || needs.determine-language.outputs.language == 'node'
- uses: actions/download-artifact@v2
- with:
- name: node-docs-patch
path: patches/
+ merge-multiple: true
+ - name: Show downloaded patches
+ run: ls -lah patches/
- name: Apply patches
run: |
for patch in patches/*.patch; do
git am < "$patch"
done
+ rm -rf patches/
- name: Push Branch
run: git push origin api-docs-${{ inputs.tag }}
- name: Documentation Pull Request
diff --git a/.gitignore b/.gitignore
index 259551ffd4482..0a10c80ea2aae 100644
--- a/.gitignore
+++ b/.gitignore
@@ -78,6 +78,7 @@ py/docs/source/**/*
py/build/
py/LICENSE
py/pytestdebug.log
+py/python.iml
selenium.egg-info/
third_party/java/jetty/jetty-repacked.jar
*.user
@@ -140,3 +141,4 @@ javascript/node/selenium-webdriver/.vscode/settings.json
dotnet-bin
.metadata/
+.npmrc
diff --git a/.skipped-tests b/.skipped-tests
index 0ab38eb93fdce..2f8b21cfba2c2 100644
--- a/.skipped-tests
+++ b/.skipped-tests
@@ -18,9 +18,20 @@
-//javascript/atoms:test-chrome
-//javascript/atoms:test-edge
-//javascript/atoms:test-firefox-beta
+-//javascript/chrome-driver/...
+-//javascript/node/selenium-webdriver:test-bidi-network-test.js-chrome
+-//javascript/node/selenium-webdriver:test-builder-test.js-chrome
+-//javascript/node/selenium-webdriver:test-builder-test.js-firefox
+-//javascript/node/selenium-webdriver:test-chrome-devtools-test.js-chrome
+-//javascript/node/selenium-webdriver:test-chrome-options-test.js-chrome
+-//javascript/node/selenium-webdriver:test-chrome-service-test.js-chrome
+-//javascript/node/selenium-webdriver:test-firefox-options-test.js-firefox
+-//javascript/node/selenium-webdriver:test-lib-capabilities-test.js-chrome
-//py:test-chrome-test/selenium/webdriver/chrome/chrome_launcher_tests.py
-//py:test-chrome-test/selenium/webdriver/chrome/chrome_service_tests.py
-//py:test-chrome-test/selenium/webdriver/chrome/proxy_tests.py
+-//py:test-edge-test/selenium/webdriver/edge/edge_launcher_tests.py
+-//py:test-edge-test/selenium/webdriver/edge/edge_service_tests.py
-//rb/spec/integration/selenium/webdriver/chrome:service-chrome
-//rb/spec/integration/selenium/webdriver/chrome:service-chrome-bidi
-//rb/spec/integration/selenium/webdriver/chrome:service-chrome-remote
@@ -45,3 +56,4 @@
-//rb/spec/integration/selenium/webdriver:element-chrome
-//rb/spec/integration/selenium/webdriver:element-chrome-bidi
-//rb/spec/integration/selenium/webdriver:element-chrome-remote
+-//rust/tests/...
diff --git a/AUTHORS b/AUTHORS
index 39da6a60b9d47..4eeedcf9c0014 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -68,9 +68,11 @@ Andrei
Andrei Botalov
Andrei Rusu
Andrei Solntsev
+Andrew Nesbitt
Andrey Botalov
Andrii Rohovets
Andy Duncan
+Angie Jones
anonymous_sdet
Anthony Sottile
Anton Usmansky
@@ -90,6 +92,7 @@ Ashley Trinh
Aslak Hellesøy
asmundak
Atsushi Tatsuma
+Augustin Gottlieb <33221555+aguspe@users.noreply.github.com>
Augustin Gottlieb Pequeno <33221555+aguspe@users.noreply.github.com>
Aurélien Pupier
Austin Michael Wilkins <42476341+amwilkins@users.noreply.github.com>
@@ -105,6 +108,7 @@ bgermann
bhecquet
bhkwan
Bill Agee
+BlitzDestroyer <143762104+BlitzDestroyer@users.noreply.github.com>
bob
Bob Baron
Bob Lubecker
@@ -146,10 +150,12 @@ Chirag Jayswal
chris
Chris Block
Chris Gamache
+Chris Gossett <54162250+cgossett@users.noreply.github.com>
Chris Martin
Chris Mohr
Chris Stringer
Chris Ward
+Christian Ansel <36796016+ChrstnAnsl@users.noreply.github.com>
Christian Biesinger
Christian Clauss
Christopher Buttkus
@@ -196,6 +202,7 @@ Darrin Cherry
Dave Hoover
Dave Hunt
daviande
+David Bernhard
David Burns
David English
David Fischer
@@ -221,12 +228,14 @@ Diego Fernández Santos
Diego Molina
Dima Kovalenko
Dima Veselov
+Diogo Teles Sant'Anna
Dmitriy Sintsov
Dmitry Dubenets
Dmitry Tokarev
Dmytro Shpakovskyi
dnknitro
doctor-house <66467615+doctor-house@users.noreply.github.com>
+Dominic Evans <8060970+dnwe@users.noreply.github.com>
Dominik Dary
Dominik Rauch
Dominik Stadler
@@ -242,6 +251,8 @@ Dylan Reichstadt
Dylan Semler
Earlopain <14981592+Earlopain@users.noreply.github.com>
Eberhard Beilharz
+Ed Manlove
+Ed Manlove
Edi Weissmann
Edirin Atumah
Eduardo Wermuth
@@ -324,6 +335,7 @@ Harshit Agrawal <94462364+harshit-bs@users.noreply.github.com>
havja
Haw-bin Chai
hectorhon
+HeeJun <64578367+syber911911@users.noreply.github.com>
Heky
helen3141 <54561656+helen3141@users.noreply.github.com>
Henrik Skupin
@@ -344,6 +356,7 @@ ifland
Ilya Kozhevnikov
Ilyas Bayraktar
Immanuel Hayden
+Indomitable
Innokenty Shuvalov
Isaac A. Murchie
Isaul Vargas
@@ -447,6 +460,7 @@ Jonathan Lipps
Jonathon Kereliuk
Jongkuen Hong
Jordan Mace
+Jose D. Gomez R. <1josegomezr@gmail.com>
josephg
Josh Goldberg
Joshua Bruning
@@ -603,6 +617,7 @@ ming
Mirko Nasato
mitchloudenbeck
Miten Chauhan
+mk868
mkvetko
MMK-IBSEN <124664589+MMK-IBSEN@users.noreply.github.com>
Mohab Mohie
@@ -617,14 +632,17 @@ mpurland
mtrea <32470080+mtrea@users.noreply.github.com>
Mubariz Hajimuradov
Muhammad Hammad <33136628+mhnaeem@users.noreply.github.com>
+MustafaAgamy
Muthu Kannan
MWschutte <72599545+MWschutte@users.noreply.github.com>
myslak71
+Natalia Pozhidaeva
Nate Lowry
Nathan Isom
native-api
Naveen <172697+naveensrinivasan@users.noreply.github.com>
Naveen Singh <36371707+Naveen3Singh@users.noreply.github.com>
+Navin Chandra <98466550+navin772@users.noreply.github.com>
Neil Carvalho
Nelson Sproul
Nick Crews
@@ -646,6 +664,7 @@ nvonop
Oboleninov Anton
Oleg Höfling
Oleg Ridchenko <73664101+oleg-rd@users.noreply.github.com>
+Oleksandr Kulychok
Oleksandr Kulychok
Oleksii
Olivier SCHNEIDER
@@ -666,6 +685,7 @@ Patrick Lightbody
Paul G Webster
Paul Hammant
Pavel Lobashov
+Pavel Sobolev
Perryn Fowler
Pete Johns
Peter Hedenskog
@@ -683,6 +703,7 @@ PombaM
Potapov Dmitriy
Prakhar Rawat
praveendvd <45095911+praveendvd@users.noreply.github.com>
+Priyansh Garg
Puja Jagani
Pulkit Sharma
Pydi Chandra
@@ -706,6 +727,7 @@ richard.hines
RichCrook
richseviora
Rishav Trivedi
+Rob Brackett
Rob Richardson
Rob Wu
Robert Elliot
@@ -769,6 +791,7 @@ Shishu Raj Pandey
Shreyan Avigyan <74560907+shreyanavigyan@users.noreply.github.com>
Shubham Singh <41840111+singh811@users.noreply.github.com>
Shuhai Shen
+Simon Benzer <69980130+shbenzer@users.noreply.github.com>
Simon K
Simon Perepelitsa
Simon Stewart
@@ -794,6 +817,7 @@ Stuart Knightly
sufyanAbbasi
sugama
sunnyyukaige
+Swastik Baranwal
symonk
Take
take0x <89313929+take0x@users.noreply.github.com>
diff --git a/MODULE.bazel b/MODULE.bazel
index b9e8069676731..9b53a716a698f 100644
--- a/MODULE.bazel
+++ b/MODULE.bazel
@@ -1,10 +1,10 @@
module(name = "selenium")
-bazel_dep(name = "apple_rules_lint", version = "0.3.2")
-bazel_dep(name = "aspect_bazel_lib", version = "2.7.7")
-bazel_dep(name = "aspect_rules_esbuild", version = "0.20.1")
-bazel_dep(name = "aspect_rules_js", version = "1.42.3")
-bazel_dep(name = "aspect_rules_ts", version = "2.4.2")
+bazel_dep(name = "apple_rules_lint", version = "0.4.0")
+bazel_dep(name = "aspect_bazel_lib", version = "2.8.1")
+bazel_dep(name = "aspect_rules_esbuild", version = "0.21.0")
+bazel_dep(name = "aspect_rules_js", version = "2.0.1")
+bazel_dep(name = "aspect_rules_ts", version = "3.1.0")
bazel_dep(name = "bazel_features", version = "1.13.0")
bazel_dep(name = "bazel_skylib", version = "1.7.1")
bazel_dep(name = "buildifier_prebuilt", version = "6.4.0")
@@ -12,20 +12,20 @@ bazel_dep(name = "contrib_rules_jvm", version = "0.27.0")
bazel_dep(name = "platforms", version = "0.0.10")
# Required for the closure rules
-bazel_dep(name = "protobuf", version = "21.7", dev_dependency = True, repo_name = "com_google_protobuf")
+bazel_dep(name = "protobuf", version = "29.1", dev_dependency = True, repo_name = "com_google_protobuf")
# Required for rules_rust to import the crates properly
bazel_dep(name = "rules_cc", version = "0.0.9", dev_dependency = True)
-bazel_dep(name = "rules_dotnet", version = "0.15.1")
-bazel_dep(name = "rules_java", version = "7.6.3")
-bazel_dep(name = "rules_jvm_external", version = "6.1")
-bazel_dep(name = "rules_nodejs", version = "6.2.0")
+bazel_dep(name = "rules_dotnet", version = "0.16.1")
+bazel_dep(name = "rules_java", version = "7.11.1")
+bazel_dep(name = "rules_jvm_external", version = "6.6")
+bazel_dep(name = "rules_nodejs", version = "6.3.0")
bazel_dep(name = "rules_oci", version = "1.7.6")
bazel_dep(name = "rules_pkg", version = "0.10.1")
bazel_dep(name = "rules_python", version = "0.33.0")
bazel_dep(name = "rules_proto", version = "6.0.0")
-bazel_dep(name = "rules_ruby", version = "0.11.0")
+bazel_dep(name = "rules_ruby", version = "0.13.0")
linter = use_extension("@apple_rules_lint//lint:extensions.bzl", "linter")
linter.configure(
@@ -39,9 +39,13 @@ linter.configure(
linter.register(name = "rust-rustfmt")
node = use_extension("@rules_nodejs//nodejs:extensions.bzl", "node")
-node.toolchain(node_version = "18.17.0")
+node.toolchain(node_version = "20.9.0")
-pnpm = use_extension("@aspect_rules_js//npm:extensions.bzl", "pnpm", dev_dependency = True)
+pnpm = use_extension(
+ "@aspect_rules_js//npm:extensions.bzl",
+ "pnpm",
+ dev_dependency = True,
+)
use_repo(pnpm, "pnpm")
npm = use_extension("@aspect_rules_js//npm:extensions.bzl", "npm")
@@ -72,13 +76,13 @@ rules_ts_ext.deps(
use_repo(rules_ts_ext, "npm_typescript")
esbuild = use_extension("@aspect_rules_esbuild//esbuild:extensions.bzl", "esbuild")
-esbuild.toolchain(esbuild_version = "0.19.9")
+esbuild.toolchain(esbuild_version = "0.23.0")
use_repo(esbuild, "esbuild_toolchains")
register_toolchains("@esbuild_toolchains//:all")
dotnet = use_extension("@rules_dotnet//dotnet:extensions.bzl", "dotnet")
-dotnet.toolchain(dotnet_version = "7.0.400")
+dotnet.toolchain(dotnet_version = "8.0.203")
use_repo(dotnet, "dotnet_toolchains")
selenium_paket = use_extension("//dotnet:paket.nuget_extension.bzl", "nuget_extension")
@@ -165,60 +169,65 @@ maven.install(
name = "maven",
artifacts = [
"com.beust:jcommander:1.82",
- "com.github.javaparser:javaparser-core:3.26.0",
+ "com.github.javaparser:javaparser-core:3.26.2",
"com.github.spotbugs:spotbugs:4.8.6",
"com.github.stephenc.jcip:jcip-annotations:1.0-1",
"com.google.code.gson:gson:2.11.0",
- "com.google.guava:guava:33.2.1-jre",
+ "com.google.guava:guava:33.3.1-jre",
"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:jar:1.22.0",
- "com.graphql-java:graphql-java:20.2",
- "com.graphql-java:java-dataloader:3.2.0",
+ "com.google.googlejavaformat:google-java-format:jar:1.25.0",
+ "com.graphql-java:graphql-java:22.3",
"dev.failsafe:failsafe:3.3.2",
- "io.grpc:grpc-context:1.64.0",
- "io.lettuce:lettuce-core:6.3.2.RELEASE",
- "io.netty:netty-buffer:4.1.111.Final",
- "io.netty:netty-codec-http:4.1.111.Final",
- "io.netty:netty-codec-http2:4.1.111.Final",
- "io.netty:netty-common:4.1.111.Final",
- "io.netty:netty-handler:4.1.111.Final",
- "io.netty:netty-handler-proxy:4.1.111.Final",
- "io.netty:netty-transport:4.1.111.Final",
- "io.opentelemetry:opentelemetry-api:1.39.0",
- "io.opentelemetry:opentelemetry-context:1.39.0",
- "io.opentelemetry:opentelemetry-exporter-logging:1.39.0",
- "io.opentelemetry:opentelemetry-sdk:1.39.0",
- "io.opentelemetry:opentelemetry-sdk-common:1.39.0",
- "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure:1.39.0",
- "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.39.0",
- "io.opentelemetry:opentelemetry-sdk-testing:1.39.0",
- "io.opentelemetry:opentelemetry-sdk-trace:1.39.0",
- "io.opentelemetry.semconv:opentelemetry-semconv:1.25.0-alpha",
- "io.ous:jtoml:2.0.0",
+ "io.grpc:grpc-context:1.68.1",
+ "io.lettuce:lettuce-core:6.5.0.RELEASE",
+ "io.netty:netty-buffer",
+ "io.netty:netty-codec-http",
+ "io.netty:netty-codec-http2",
+ "io.netty:netty-common",
+ "io.netty:netty-handler",
+ "io.netty:netty-handler-proxy",
+ "io.netty:netty-transport",
+ "io.opentelemetry:opentelemetry-api",
+ "io.opentelemetry:opentelemetry-context",
+ "io.opentelemetry:opentelemetry-exporter-logging",
+ "io.opentelemetry:opentelemetry-sdk",
+ "io.opentelemetry:opentelemetry-sdk-common",
+ "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure",
+ "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi",
+ "io.opentelemetry:opentelemetry-sdk-testing",
+ "io.opentelemetry:opentelemetry-sdk-trace",
+ "io.opentelemetry.semconv:opentelemetry-semconv:1.28.0-alpha",
"it.ozimov:embedded-redis:0.7.3",
- "net.bytebuddy:byte-buddy:1.14.17",
- "org.htmlunit:htmlunit-core-js:4.2.0",
+ "net.bytebuddy:byte-buddy:1.15.10",
+ "org.htmlunit:htmlunit-core-js:4.6.0",
"org.apache.commons:commons-exec:1.4.0",
- "org.apache.logging.log4j:log4j-core:2.23.1",
- "org.assertj:assertj-core:3.26.0",
- "org.bouncycastle:bcpkix-jdk18on:1.78.1",
+ "org.apache.logging.log4j:log4j-core:2.24.1",
+ "org.assertj:assertj-core:3.26.3",
+ "org.bouncycastle:bcpkix-jdk18on:1.79",
"org.eclipse.mylyn.github:org.eclipse.egit.github.core:2.1.5",
- "org.hsqldb:hsqldb:2.7.3",
- "org.junit.jupiter:junit-jupiter-api:5.10.2",
- "org.junit.jupiter:junit-jupiter-engine:5.10.2",
- "org.junit.jupiter:junit-jupiter-params:5.10.2",
- "org.junit.platform:junit-platform-launcher:1.10.2",
- "org.junit.platform:junit-platform-reporting:1.10.2",
- "org.junit.platform:junit-platform-commons:1.10.2",
- "org.junit.platform:junit-platform-engine:1.10.2",
- "org.mockito:mockito-core:5.12.0",
- "org.redisson:redisson:3.31.0",
- "org.slf4j:slf4j-api:2.0.13",
- "org.slf4j:slf4j-jdk14:2.0.13",
+ "org.hsqldb:hsqldb:2.7.4",
+ "org.jspecify:jspecify:1.0.0",
+ "org.junit.jupiter:junit-jupiter-api",
+ "org.junit.jupiter:junit-jupiter-engine",
+ "org.junit.jupiter:junit-jupiter-params",
+ "org.junit.platform:junit-platform-launcher",
+ "org.junit.platform:junit-platform-reporting",
+ "org.junit.platform:junit-platform-commons",
+ "org.junit.platform:junit-platform-engine",
+ "org.mockito:mockito-core:5.14.2",
+ "org.redisson:redisson:3.39.0",
+ "org.slf4j:slf4j-api:2.0.16",
+ "org.slf4j:slf4j-jdk14:2.0.16",
+ "org.tomlj:tomlj:1.1.1",
"org.zeromq:jeromq:0.6.0",
],
+ boms = [
+ "io.opentelemetry:opentelemetry-bom:1.44.1",
+ "io.netty:netty-bom:4.1.115.Final",
+ "org.junit:junit-bom:5.11.3",
+ ],
excluded_artifacts = [
"org.hamcrest:hamcrest-all", # Replaced by hamcrest 2
"org.hamcrest:hamcrest-core",
@@ -231,6 +240,7 @@ maven.install(
repositories = [
"https://repo1.maven.org/maven2",
],
+ resolver = "maven",
strict_visibility = True,
)
use_repo(maven, "maven", "unpinned_maven")
@@ -238,6 +248,10 @@ use_repo(maven, "maven", "unpinned_maven")
ruby = use_extension("@rules_ruby//ruby:extensions.bzl", "ruby")
ruby.toolchain(
name = "ruby",
+ msys2_packages = [
+ "curl",
+ "libyaml",
+ ],
version_file = "//:rb/.ruby-version",
)
ruby.bundle_fetch(
@@ -249,82 +263,82 @@ ruby.bundle_fetch(
"//:rb/selenium-webdriver.gemspec",
],
gem_checksums = {
- "abbrev-0.1.2": "ad1b4eaaaed4cb722d5684d63949e4bde1d34f2a95e20db93aecfe7cbac74242",
- "activesupport-7.1.3.2": "ad8445b7ae4a6d3acc5f88c8c5f437eb0b54062032aaf44856c7b6d3855b8b2e",
- "addressable-2.8.6": "798f6af3556641a7619bad1dce04cdb6eb44b0216a991b0396ea7339276f2b47",
+ "activesupport-7.2.1.2": "6c3f6ad50c4e52ce39d67aeda38f99e1372eca8b295987d072c19460ebce4cb1",
+ "addressable-2.8.7": "462986537cf3735ab5f3c0f557f14155d778f4b43ea4f485a9deb9c8f7c58232",
"ast-2.4.2": "1e280232e6a33754cde542bc5ef85520b74db2aac73ec14acef453784447cc12",
"base64-0.2.0": "0f25e9b21a02a0cc0cea8ef92b2041035d39350946e8789c562b2d1a3da01507",
- "bigdecimal-3.1.7": "e799b369a0005fc6d62eed7ef19139ac9bc319cc51470c637b9dcdf593600133",
- "bigdecimal-3.1.7-java": "955f5c7aa90136874b494655e42ed70d81382abb0f49f1b42f374a1660e33c63",
- "concurrent-ruby-1.2.3": "82fdd3f8a0816e28d513e637bb2b90a45d7b982bdf4f3a0511722d2e495801e2",
+ "bigdecimal-3.1.8": "a89467ed5a44f8ae01824af49cbc575871fa078332e8f77ea425725c1ffe27be",
+ "bigdecimal-3.1.8-java": "b9e94c14623fff8575f17a10320852219bbba92ecff4977571503d942687326e",
+ "concurrent-ruby-1.3.4": "d4aa926339b0a86b5b5054a0a8c580163e6f5dcbdfd0f4bb916b1a2570731c32",
"connection_pool-2.4.1": "0f40cf997091f1f04ff66da67eabd61a9fe0d4928b9a3645228532512fab62f4",
"crack-1.0.0": "c83aefdb428cdc7b66c7f287e488c796f055c0839e6e545fec2c7047743c4a49",
"csv-3.3.0": "0bbd1defdc31134abefed027a639b3723c2753862150f4c3ee61cab71b20d67d",
+ "curb-1.0.6": "b369434efa91dc7310d72a74f8a228a5b920e3d5a89b0a3097e4c6a905af6eb2",
"debug-1.9.2": "48e026c0852c7a10c60263e2e527968308958e266231e36d64e3efcabec7e7fc",
"diff-lcs-1.5.1": "273223dfb40685548436d32b4733aa67351769c7dea621da7d9dd4813e63ddfe",
"drb-2.2.1": "e9d472bf785f558b96b25358bae115646da0dbfd45107ad858b0bc0d935cb340",
- "ffi-1.16.3": "6d3242ff10c87271b0675c58d68d3f10148fabc2ad6da52a18123f06078871fb",
- "ffi-1.16.3-java": "6f107fcd7c96f9c96f7e57db749b99502cc2f65665f7b2241d087a8f8c01d42c",
- "ffi-1.16.3-x64-mingw32": "6ec709011e3955e97033fa77907a8ab89a9150137d4c45c82c77399b909c9259",
+ "ffi-1.17.0": "51630e43425078311c056ca75f961bb3bda1641ab36e44ad4c455e0b0e4a231c",
+ "ffi-1.17.0-java": "f65f022616970fcde83fe176393eb873a7b959ef2703f94931cf0af6ab55ec7a",
+ "ffi-1.17.0-x86_64-darwin": "fdcd48c69db3303ef95aec5c64d6275fcf9878a02c0bec0afddc506ceca0f56b",
"fileutils-1.7.2": "36a0fb324218263e52b486ad7408e9a295378fe8edc9fd343709e523c0980631",
"git-1.19.1": "b0a422d9f6517353c48a330d6114de4db9e0c82dbe7202964a1d9f1fbc827d70",
- "hashdiff-1.1.0": "b5465f0e7375f1ee883f53a766ece4dbc764b7674a7c5ffd76e79b2f5f6fc9c9",
- "i18n-1.14.4": "c7deedead0866ea9102975a4eab7968f53de50793a0c211a37808f75dd187551",
+ "hashdiff-1.1.1": "c7966316726e0ceefe9f5c6aef107ebc3ccfef8b6db55fe3934f046b2cf0936a",
+ "i18n-1.14.6": "dc229a74f5d181f09942dd60ab5d6e667f7392c4ee826f35096db36d1fe3614c",
"io-console-0.7.2": "f0dccff252f877a4f60d04a4dc6b442b185ebffb4b320ab69212a92b48a7a221",
"io-console-0.7.2-java": "73aa382f8832b116613ceaf57b8ff5bf73dfedcaf39f0aa5420e10f63a4543ed",
- "irb-1.12.0": "07634937fbb7d28d07e46da50d0aa43b4d2f7258174d08de4e32dfb57c10539d",
+ "irb-1.14.1": "5975003b58d36efaf492380baa982ceedf5aed36967a4d5b40996bc5c66e80f8",
"jar-dependencies-0.4.1": "b2df2f1ecbff15334ce20ea7fdd5b8d8161faab67761ff72c7647d728e40d387",
- "json-2.7.2": "1898b5cbc81cd36c0fd4d0b7ad2682c39fb07c5ff682fc6265f678f550d4982c",
- "json-2.7.2-java": "138e3038b5361b3d06ee2e8aa2be00bed0d0de4ef5f1553fc5935e5b93aca7ee",
+ "json-2.7.4": "9ea6258b4add3abd25df965515be8b19be417f58b8c42619c7f2d3e86c158ece",
+ "json-2.7.4-java": "5d5d1593d8727a66f2e4161710dde06ba7043c9b3fa9eea0889fdc0450a107cd",
"language_server-protocol-3.17.0.3": "3d5c58c02f44a20d972957a9febe386d7e7468ab3900ce6bd2b563dd910c6b3f",
"listen-3.9.0": "db9e4424e0e5834480385197c139cb6b0ae0ef28cc13310cfd1ca78377d59c67",
- "logger-1.6.0": "0ab7c120262dd8de2a18cb8d377f1f318cbe98535160a508af9e7710ff43ef3e",
- "minitest-5.22.3": "ea84676290cb5e2b4f31f25751af6050aa90d3e43e4337141c3e3e839611981e",
- "mutex_m-0.2.0": "b6ef0c6c842ede846f2ec0ade9e266b1a9dac0bc151682b04835e8ebd54840d5",
- "parallel-1.24.0": "5bf38efb9b37865f8e93d7a762727f8c5fc5deb19949f4040c76481d5eee9397",
- "parser-3.3.0.5": "7748313e505ca87045dc0465c776c802043f777581796eb79b1654c5d19d2687",
+ "logger-1.6.1": "3ad9587ed3940bf7897ea64a673971415523f4f7d6b22c5e3af5219705669653",
+ "minitest-5.25.1": "3db6795a80634def1cf86fda79d2d83b59b25ce5e186fa675f73c565589d2ad8",
+ "parallel-1.26.3": "d86babb7a2b814be9f4b81587bf0b6ce2da7d45969fab24d8ae4bf2bb4d4c7ef",
+ "parser-3.3.5.0": "f30ebb71b7830c2e7cdc4b2b0e0ec2234900e3fca3fe2fba47f78be759181ab3",
"psych-5.1.2": "337322f58fc2bf24827d2b9bd5ab595f6a72971867d151bb39980060ea40a368",
"psych-5.1.2-java": "1dd68dc609eddbc884e6892e11da942e16f7256bd30ebde9d35449d43043a6fe",
- "public_suffix-5.0.5": "72c340218bb384610536919988705cc29e09749c0021fd7005f715c7e5dfc493",
- "racc-1.7.3": "b785ab8a30ec43bce073c51dbbe791fd27000f68d1c996c95da98bf685316905",
- "racc-1.7.3-java": "b2ad737e788cfa083263ce7c9290644bb0f2c691908249eb4f6eb48ed2815dbf",
- "rack-2.2.9": "fd6301a97a1c1e955e68f85c861fcb1cde6145a32c532e1ea321a72ff8cc4042",
+ "public_suffix-6.0.1": "61d44e1cab5cbbbe5b31068481cf16976dd0dc1b6b07bd95617ef8c5e3e00c6f",
+ "racc-1.8.1": "4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f",
+ "racc-1.8.1-java": "54f2e6d1e1b91c154013277d986f52a90e5ececbe91465d29172e49342732b98",
+ "rack-2.2.10": "e4a5ee3f8f2ba45614a4498114d6dc7da1c51a0f0dd810d891906ea71d3aa72b",
"rainbow-3.1.1": "039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a",
"rake-13.2.1": "46cb38dae65d7d74b6020a4ac9d48afed8eb8149c040eccf0523bec91907059d",
"rb-fsevent-0.11.2": "43900b972e7301d6570f64b850a5aa67833ee7d87b458ee92805d56b7318aefe",
- "rb-inotify-0.10.1": "050062d4f31d307cca52c3f6a7f4b946df8de25fc4bd373e1a5142e41034a7ca",
- "rbs-3.4.4": "1376d2604a00832641bb47521595e63a1c0d1cc241ded383ba48ddb4396de5a8",
+ "rb-inotify-0.11.1": "a0a700441239b0ff18eb65e3866236cd78613d6b9f78fea1f9ac47a85e47be6e",
+ "rbs-3.6.1": "ed7273d018556844583d1785ac54194e67eec594d68e317d57fa90ad035532c0",
"rchardet-1.8.0": "693acd5253d5ade81a51940697955f6dd4bb2f0d245bda76a8e23deec70a52c7",
- "rdoc-6.6.3.1": "39f7b749229ab5ad9d21c81586151c1dd7a549fa8be4070ee09b524f9c656345",
- "regexp_parser-2.9.0": "81a00ba141cec0d4b4bf58cb80cd9193e5180836d3fa6ef623f7886d3ba8bdd9",
- "reline-0.5.3": "2c46747a1dfd03e100f0666d8a374cf2930c3e734298af9b39e5fe8d35b42035",
- "rexml-3.2.6": "e0669a2d4e9f109951cb1fde723d8acd285425d81594a2ea929304af50282816",
+ "rdoc-6.7.0": "b17d5f0f57b0853d7b880d4360a32c7caf8dbb81f8503a36426df809e617f379",
+ "regexp_parser-2.9.2": "5a27e767ad634f8a4b544520d5cd28a0db7aa1198a5d7c9d7e11d7b3d9066446",
+ "reline-0.5.10": "1660c969a792ebd034e6ceee8ca628f3b6698dcdb34f7a282a5edda37b958166",
+ "rexml-3.3.9": "d71875b85299f341edf47d44df0212e7658cbdf35aeb69cefdb63f57af3137c9",
"rspec-3.13.0": "d490914ac1d5a5a64a0e1400c1d54ddd2a501324d703b8cfe83f458337bab993",
- "rspec-core-3.13.0": "557792b4e88da883d580342b263d9652b6a10a12d5bda9ef967b01a48f15454c",
- "rspec-expectations-3.13.0": "621d48c62262f955421eaa418130744760802cad47e781df70dba4d9f897102e",
- "rspec-mocks-3.13.0": "735a891215758d77cdb5f4721fffc21078793959d1f0ee4a961874311d9b7f66",
+ "rspec-core-3.13.2": "94fbda6e4738e478f1c7532b7cc241272fcdc8b9eac03a97338b1122e4573300",
+ "rspec-expectations-3.13.3": "0e6b5af59b900147698ea0ff80456c4f2e69cac4394fbd392fbd1ca561f66c58",
+ "rspec-mocks-3.13.2": "2327335def0e1665325a9b617e3af9ae20272741d80ac550336309a7c59abdef",
"rspec-support-3.13.1": "48877d4f15b772b7538f3693c22225f2eda490ba65a0515c4e7cf6f2f17de70f",
- "rubocop-1.63.3": "17a31f16658f2fbb20bc7bcb4a841a06f7368da4f3be8a50365ad61e658d5f44",
- "rubocop-ast-1.31.2": "7c206fb094553779923eca862aceece3913ce384f1bf85730208228e884578ec",
- "rubocop-capybara-2.20.0": "2a6844b942921f230ee3ab8c94fe77f41a9406096a140245270c0e11624bb938",
- "rubocop-factory_bot-2.25.1": "62751bde7af789878b8a31cbd2a82e69515ce7b23a2ad1820cb0fcc3e0150134",
- "rubocop-performance-1.21.0": "ec54fa8991c2d538af7bc958361d63bdb3df2e53032da393e9903ea5e4f74a9a",
- "rubocop-rspec-2.29.1": "534ee81a3006e7379ec6203687ef7c06ca1d137b7d6d67c2777b680b1ce82e13",
- "rubocop-rspec_rails-2.28.3": "9769f2077cca8af2269193ba0450e0317ae1827a132c19149fdbeecaaca32818",
+ "rubocop-1.67.0": "8ccca7226e76d0a9974af960ea446d1fb38adf0c491214294e2fed75a85c378c",
+ "rubocop-ast-1.32.3": "40201e861c73a3c2d59428c7627828ef81fb2f8a306bc4a1c1801452afe3fe0f",
+ "rubocop-capybara-2.21.0": "5d264efdd8b6c7081a3d4889decf1451a1cfaaec204d81534e236bc825b280ab",
+ "rubocop-factory_bot-2.26.1": "8de13cd4edcee5ca800f255188167ecef8dbfc3d1fae9f15734e9d2e755392aa",
+ "rubocop-performance-1.22.1": "9ed9737af1ee90655654b483e0eac4e64702139e85d33335bf744b57a309a679",
+ "rubocop-rake-0.6.0": "56b6f22189af4b33d4f4e490a555c09f1281b02f4d48c3a61f6e8fe5f401d8db",
+ "rubocop-rspec-2.31.0": "2bae19388d78e1ceace44cd95fd34f3209f4ef20cac1b168d0a1325cbba3d672",
+ "rubocop-rspec_rails-2.29.1": "4ae95abbe9ca5a9b6d8be14e50d230fb5b6ba033b05d4c0981b5b76fc44988e4",
"ruby-progressbar-1.13.0": "80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33",
"rubyzip-2.3.2": "3f57e3935dc2255c414484fbf8d673b4909d8a6a57007ed754dde39342d2373f",
"securerandom-0.3.1": "98f0450c0ea46d2f9a4b6db4f391dbd83dc08049592eada155739f40e0341bde",
"steep-1.5.3": "7c6302a4d5932d0a46176ebc79766e52b853c223a85525aa2f8911e345123b85",
- "stringio-3.1.0": "c1f6263ae03a15025e51194ab19b06b15e06adcaaedb7f5f6c06ab60f5d67718",
+ "stringio-3.1.1": "53456e14175c594e0e8eb2206a1be33f3974d4fe21c131e628908b05c8c2ae1e",
"strscan-3.1.0": "01b8a81d214fbf7b5308c6fb51b5972bbfc4a6aa1f166fd3618ba97e0fcd5555",
"strscan-3.1.0-java": "8645aa76e017e21764c6df572d2d79fcc1672284014f5bdbd806278cdbcd11b0",
"terminal-table-3.0.2": "f951b6af5f3e00203fb290a669e0a85c5dd5b051b3b023392ccfd67ba5abae91",
"tzinfo-2.0.6": "8daf828cc77bcf7d63b0e3bdb6caa47e2272dcfaf4fbfe46f8c3a9df087a829b",
- "unicode-display_width-2.5.0": "7e7681dcade1add70cb9fda20dd77f300b8587c81ebbd165d14fd93144ff0ab4",
- "webmock-3.23.0": "100787435c1f556129a238c11cc7cbee38cb9c2864709c6a0dcdcf822545f31f",
- "webrick-1.8.1": "19411ec6912911fd3df13559110127ea2badd0c035f7762873f58afc803e158f",
- "websocket-1.2.10": "2cc1a4a79b6e63637b326b4273e46adcddf7871caa5dc5711f2ca4061a629fa8",
- "yard-0.9.36": "5505736c1b00c926f71053a606ab75f02070c5960d0778b901fe9d8b0a470be4",
+ "unicode-display_width-2.6.0": "12279874bba6d5e4d2728cef814b19197dbb10d7a7837a869bab65da943b7f5a",
+ "webmock-3.24.0": "be01357f6fc773606337ca79f3ba332b7d52cbe5c27587671abc0572dbec7122",
+ "webrick-1.8.2": "431746a349199546ff9dd272cae10849c865f938216e41c402a6489248f12f21",
+ "websocket-1.2.11": "b7e7a74e2410b5e85c25858b26b3322f29161e300935f70a0e0d3c35e0462737",
+ "yard-0.9.37": "a6e910399e78e613f80ba9add9ba7c394b1a935f083cccbef82903a3d2a26992",
},
gemfile = "//:rb/Gemfile",
gemfile_lock = "//:rb/Gemfile.lock",
diff --git a/README.md b/README.md
index 6ebfda3fbf20f..fe7ce42b18ccb 100644
--- a/README.md
+++ b/README.md
@@ -1,8 +1,9 @@
# Selenium
[![CI](https://github.com/SeleniumHQ/selenium/actions/workflows/ci.yml/badge.svg?branch=trunk&event=schedule)](https://github.com/SeleniumHQ/selenium/actions/workflows/ci.yml)
+[![Releases downloads](https://img.shields.io/github/downloads/SeleniumHQ/selenium/total.svg)](https://github.com/SeleniumHQ/selenium/releases)
-
+
Selenium is an umbrella project encapsulating a variety of tools and
libraries enabling web browser automation. Selenium specifically
@@ -316,6 +317,18 @@ Run unit tests with:
bazel test //py:unit
```
+To run common tests with a specific browser:
+
+```sh
+bazel test //py:common-
+```
+
+To run common tests with a specific browser (include BiDi tests):
+
+```sh
+bazel test //py:common--bidi
+```
+
To run tests with a specific browser:
```sh
diff --git a/Rakefile b/Rakefile
index e5dfee30cb892..24bb5ace8e78b 100644
--- a/Rakefile
+++ b/Rakefile
@@ -97,9 +97,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/v125:v125.publish
- //java/src/org/openqa/selenium/devtools/v126:v126.publish
- //java/src/org/openqa/selenium/devtools/v124:v124.publish
+ //java/src/org/openqa/selenium/devtools/v131:v131.publish
+ //java/src/org/openqa/selenium/devtools/v129:v129.publish
+ //java/src/org/openqa/selenium/devtools/v130:v130.publish
//java/src/org/openqa/selenium/devtools/v85:v85.publish
//java/src/org/openqa/selenium/edge:edge.publish
//java/src/org/openqa/selenium/firefox:firefox.publish
@@ -331,7 +331,7 @@ task ios_driver: [
# ./go java:package['--config=release']
desc 'Create stamped zipped assets for Java for uploading to GitHub'
task :'java-release-zip' do
- Rake::Task['java:package'].invoke('--stamp')
+ Rake::Task['java:package'].invoke('--config=remote_release')
end
task 'release-java': %i[java-release-zip publish-maven]
@@ -450,7 +450,7 @@ namespace :node do
nightly = args.delete('nightly')
Rake::Task['node:version'].invoke('nightly') if nightly
- Bazel.execute('run', ['--stamp'], '//javascript/node/selenium-webdriver:selenium-webdriver.publish')
+ Bazel.execute('run', ['--config=release'], '//javascript/node/selenium-webdriver:selenium-webdriver.publish')
end
desc 'Release Node npm package'
@@ -483,7 +483,6 @@ namespace :node do
new_version = updated_version(old_version, arguments[:version], nightly)
['javascript/node/selenium-webdriver/package.json',
- 'package-lock.json',
'javascript/node/selenium-webdriver/BUILD.bazel'].each do |file|
text = File.read(file).gsub(old_version, new_version)
File.open(file, 'w') { |f| f.puts text }
@@ -513,7 +512,7 @@ namespace :py do
Rake::Task['py:version'].invoke('nightly') if nightly
command = nightly ? '//py:selenium-release-nightly' : '//py:selenium-release'
- Bazel.execute('run', ['--stamp'], command)
+ Bazel.execute('run', ['--config=release'], command)
end
desc 'generate and copy files required for local development'
@@ -583,10 +582,10 @@ namespace :py do
desc 'Update Python version'
task :version, [:version] do |_task, arguments|
old_version = python_version
- nightly = ".dev#{Time.now.strftime('%Y%m%d%H%M')}"
+ nightly = ".#{Time.now.strftime('%Y%m%d%H%M')}"
new_version = updated_version(old_version, arguments[:version], nightly)
- ['py/setup.py',
+ ['py/pyproject.toml',
'py/BUILD.bazel',
'py/selenium/__init__.py',
'py/selenium/webdriver/__init__.py',
@@ -680,10 +679,10 @@ namespace :rb do
if nightly
Bazel.execute('run', [], '//rb:selenium-webdriver-bump-nightly-version')
- Bazel.execute('run', ['--stamp'], '//rb:selenium-webdriver-release-nightly')
+ Bazel.execute('run', ['--config=release'], '//rb:selenium-webdriver-release-nightly')
else
- Bazel.execute('run', ['--stamp'], '//rb:selenium-webdriver-release')
- Bazel.execute('run', ['--stamp'], '//rb:selenium-devtools-release')
+ Bazel.execute('run', ['--config=release'], '//rb:selenium-webdriver-release')
+ Bazel.execute('run', ['--config=release'], '//rb:selenium-devtools-release')
end
end
@@ -753,7 +752,7 @@ namespace :dotnet do
args = arguments.to_a.compact
nightly = args.delete('nightly')
Rake::Task['dotnet:version'].invoke('nightly') if nightly
- Rake::Task['dotnet:package'].invoke('--stamp')
+ Rake::Task['dotnet:package'].invoke('--config=release')
api_key = ENV.fetch('NUGET_API_KEY', nil)
push_destination = 'https://api.nuget.org/v3/index.json'
@@ -792,7 +791,7 @@ namespace :dotnet do
sh 'docfx dotnet/docs/docfx.json'
rescue StandardError
case $CHILD_STATUS.exitstatus
- when 127
+ when 130
raise 'Ensure the dotnet/tools directory is added to your PATH environment variable (e.g., `~/.dotnet/tools`)'
when 255
puts '.NET documentation build failed, likely because of DevTools namespacing. This is ok; continuing'
@@ -839,7 +838,7 @@ namespace :java do
desc 'Package Java bindings and grid into releasable packages and stage for release'
task :package do |_task, arguments|
- args = arguments.to_a.compact.empty? ? ['--stamp'] : arguments.to_a.compact
+ args = arguments.to_a.compact.empty? ? ['--config=release'] : arguments.to_a.compact
Bazel.execute('build', args, '//java/src/org/openqa/selenium:client-zip')
Bazel.execute('build', args, '//java/src/org/openqa/selenium/grid:server-zip')
Bazel.execute('build', args, '//java/src/org/openqa/selenium/grid:executable-grid')
@@ -872,9 +871,10 @@ namespace :java do
ENV['GPG_SIGN'] = (!nightly).to_s
Rake::Task['java:version'].invoke if nightly
- Rake::Task['java:package'].invoke('--stamp')
- Rake::Task['java:build'].invoke('--stamp')
- JAVA_RELEASE_TARGETS.each { |target| Bazel.execute('run', ['--stamp'], target) }
+ Rake::Task['java:package'].invoke('--config=release')
+ Rake::Task['java:build'].invoke('--config=release')
+ # Because we want to `run` things, we can't use the `release` config
+ JAVA_RELEASE_TARGETS.each { |target| Bazel.execute('run', ['--config=release'], target) }
end
desc 'Install jars to local m2 directory'
@@ -1047,10 +1047,8 @@ namespace :all do
'py/selenium/webdriver/__init__.py',
'py/selenium/__init__.py',
'py/BUILD.bazel',
- 'py/setup.py',
'rb/lib/selenium/webdriver/version.rb',
- 'rb/Gemfile.lock',
- 'package-lock.json'])
+ 'rb/Gemfile.lock'])
print 'Do you want to push the committed changes? (Y/n): '
response = $stdin.gets.chomp.downcase
@@ -1105,13 +1103,11 @@ namespace :all do
'java/version.bzl',
'javascript/node/selenium-webdriver/CHANGES.md',
'javascript/node/selenium-webdriver/package.json',
- 'package-lock.json',
'py/docs/source/conf.py',
'py/selenium/__init__.py',
'py/selenium/webdriver/__init__.py',
'py/BUILD.bazel',
'py/CHANGES',
- 'py/setup.py',
'rb/lib/selenium/webdriver/version.rb',
'rb/CHANGES',
'rb/Gemfile.lock',
@@ -1140,7 +1136,7 @@ def updated_version(current, desired = nil, nightly = nil)
desired.split('.').tap { |v| v << 0 while v.size < 3 }.join('.')
elsif current.split(/\.|-/).size > 3
# if current version is already nightly, just need to bump it; this will be noop for some languages
- pattern = /-?\.?(nightly|SNAPSHOT|dev)\d*$/
+ pattern = /-?\.?(nightly|SNAPSHOT|dev|\d{12})\d*$/
current.gsub(pattern, nightly)
elsif current.split(/\.|-/).size == 3
# if current version is not nightly, need to bump the version and make nightly
diff --git a/WORKSPACE b/WORKSPACE
index eb09ccc8726e0..b33f16328442d 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -6,17 +6,8 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "io_bazel_rules_closure",
- patch_args = [
- "-p1",
- ],
- patches = [
- "//javascript:rules_closure_shell.patch",
- ],
- sha256 = "d66deed38a0bb20581c15664f0ab62270af5940786855c7adc3087b27168b529",
- strip_prefix = "rules_closure-0.11.0",
- urls = [
- "https://github.com/bazelbuild/rules_closure/archive/0.11.0.tar.gz",
- ],
+ strip_prefix = "rules_closure-0.12.0",
+ url = "https://github.com/bazelbuild/rules_closure/archive/refs/tags/0.12.0.tar.gz",
)
load("@io_bazel_rules_closure//closure:repositories.bzl", "rules_closure_dependencies", "rules_closure_toolchains")
@@ -34,8 +25,8 @@ rules_closure_toolchains()
http_archive(
name = "rules_rust",
- integrity = "sha256-JLN47ZcAbx9wEr5Jiib4HduZATGLiDgK7oUi/fvotzU=",
- urls = ["https://github.com/bazelbuild/rules_rust/releases/download/0.42.1/rules_rust-v0.42.1.tar.gz"],
+ integrity = "sha256-eEXiHXSGUH6qD1bdI5KXZ/B04m0wIUeoyM7pmujzbbQ=",
+ urls = ["https://github.com/bazelbuild/rules_rust/releases/download/0.55.5/rules_rust-0.55.5.tar.gz"],
)
load("@rules_rust//rust:repositories.bzl", "rules_rust_dependencies", "rust_register_toolchains")
diff --git a/common/devtools/chromium/v124/BUILD.bazel b/common/devtools/chromium/v129/BUILD.bazel
similarity index 100%
rename from common/devtools/chromium/v124/BUILD.bazel
rename to common/devtools/chromium/v129/BUILD.bazel
diff --git a/common/devtools/chromium/v126/browser_protocol.pdl b/common/devtools/chromium/v129/browser_protocol.pdl
similarity index 96%
rename from common/devtools/chromium/v126/browser_protocol.pdl
rename to common/devtools/chromium/v129/browser_protocol.pdl
index 31028c8b42049..3a8d01b4b95e8 100644
--- a/common/devtools/chromium/v126/browser_protocol.pdl
+++ b/common/devtools/chromium/v129/browser_protocol.pdl
@@ -156,6 +156,7 @@ experimental domain Accessibility
flowto
labelledby
owns
+ url
# A node in the accessibility tree.
type AXNode extends object
@@ -622,6 +623,8 @@ experimental domain Audits
CoopSandboxedIFrameCannotNavigateToCoopPage
CorpNotSameOrigin
CorpNotSameOriginAfterDefaultedToSameOriginByCoep
+ CorpNotSameOriginAfterDefaultedToSameOriginByDip
+ CorpNotSameOriginAfterDefaultedToSameOriginByCoepAndDip
CorpNotSameSite
# Details for a request that has been blocked with the BLOCKED_BY_RESPONSE
@@ -800,7 +803,6 @@ experimental domain Audits
type GenericIssueErrorType extends string
enum
- CrossOriginPortalPostMessageError
FormLabelForNameError
FormDuplicateIdForInputError
FormInputWithNoLabelError
@@ -889,7 +891,9 @@ experimental domain Audits
ClientMetadataNoResponse
ClientMetadataInvalidResponse
ClientMetadataInvalidContentType
+ IdpNotPotentiallyTrustworthy
DisabledInSettings
+ DisabledInFlags
ErrorFetchingSignin
InvalidSigninResponse
AccountsHttpNotFound
@@ -912,6 +916,9 @@ experimental domain Audits
NotSignedInWithIdp
MissingTransientUserActivation
ReplacedByButtonMode
+ InvalidFieldsSpecified
+ RelyingPartyOriginIsOpaque
+ TypeNotMatching
type FederatedAuthUserInfoRequestIssueDetails extends object
properties
@@ -1095,13 +1102,20 @@ experimental domain Audits
parameters
InspectorIssue issue
-# Defines commands and events for browser extensions. Available if the client
-# is connected using the --remote-debugging-pipe flag and
-# the --enable-unsafe-extension-debugging flag is set.
+# Defines commands and events for browser extensions.
experimental domain Extensions
+ # Storage areas.
+ type StorageArea extends string
+ enum
+ session
+ local
+ sync
+ managed
# Installs an unpacked extension from the filesystem similar to
# --load-extension CLI flags. Returns extension ID once the extension
- # has been installed.
+ # has been installed. Available if the client is connected using the
+ # --remote-debugging-pipe flag and the --enable-unsafe-extension-debugging
+ # flag is set.
command loadUnpacked
parameters
# Absolute file path.
@@ -1109,6 +1123,44 @@ experimental domain Extensions
returns
# Extension id.
string id
+ # Gets data from extension storage in the given `storageArea`. If `keys` is
+ # specified, these are used to filter the result.
+ command getStorageItems
+ parameters
+ # ID of extension.
+ string id
+ # StorageArea to retrieve data from.
+ StorageArea storageArea
+ # Keys to retrieve.
+ optional array of string keys
+ returns
+ object data
+ # Removes `keys` from extension storage in the given `storageArea`.
+ command removeStorageItems
+ parameters
+ # ID of extension.
+ string id
+ # StorageArea to remove data from.
+ StorageArea storageArea
+ # Keys to remove.
+ array of string keys
+ # Clears extension storage in the given `storageArea`.
+ command clearStorageItems
+ parameters
+ # ID of extension.
+ string id
+ # StorageArea to remove data from.
+ StorageArea storageArea
+ # Sets `values` in extension storage in the given `storageArea`. The provided `values`
+ # will be merged with existing values in the storage area.
+ command setStorageItems
+ parameters
+ # ID of extension.
+ string id
+ # StorageArea to set data in.
+ StorageArea storageArea
+ # Values to set.
+ object values
# Defines commands and events for Autofill.
experimental domain Autofill
@@ -1362,6 +1414,8 @@ domain Browser
optional boolean userVisibleOnly
# For "clipboard" permission, may specify allowWithoutSanitization.
optional boolean allowWithoutSanitization
+ # For "fullscreen" permission, must specify allowWithoutGesture:true.
+ optional boolean allowWithoutGesture
# For "camera" permission, may specify panTiltZoom.
optional boolean panTiltZoom
@@ -2002,13 +2056,6 @@ experimental domain CSS
# Associated style declaration.
CSSStyle style
- # CSS position-fallback rule representation.
- deprecated type CSSPositionFallbackRule extends object
- properties
- Value name
- # List of keyframes.
- array of CSSTryRule tryRules
-
# CSS @position-try rule representation.
type CSSPositionTryRule extends object
properties
@@ -2021,6 +2068,7 @@ experimental domain CSS
StyleSheetOrigin origin
# Associated style declaration.
CSSStyle style
+ boolean active
# CSS keyframes rule representation.
type CSSKeyframesRule extends object
@@ -2194,10 +2242,11 @@ experimental domain CSS
optional array of InheritedPseudoElementMatches inheritedPseudoElements
# A list of CSS keyframed animations matching this node.
optional array of CSSKeyframesRule cssKeyframesRules
- # A list of CSS position fallbacks matching this node.
- deprecated optional array of CSSPositionFallbackRule cssPositionFallbackRules
- # A list of CSS @position-try rules matching this node, based on the position-try-options property.
+ # A list of CSS @position-try rules matching this node, based on the position-try-fallbacks property.
optional array of CSSPositionTryRule cssPositionTryRules
+ # Index of the active fallback in the applied position-try-fallback property,
+ # will not be set if there is no active position-try fallback.
+ optional integer activePositionFallbackIndex
# A list of CSS at-property rules matching this node.
optional array of CSSPropertyRule cssPropertyRules
# A list of CSS property registrations matching this node.
@@ -2636,7 +2685,9 @@ domain DOM
highlight
first-line-inherited
scroll-marker
- scroll-markers
+ scroll-marker-group
+ scroll-next-button
+ scroll-prev-button
scrollbar
scrollbar-thumb
scrollbar-button
@@ -2755,6 +2806,12 @@ domain DOM
optional CompatibilityMode compatibilityMode
optional BackendNode assignedSlot
+ # A structure to hold the top-level node of a detached tree and an array of its retained descendants.
+ type DetachedElementInfo extends object
+ properties
+ Node treeNode
+ array of NodeId retainedNodeIds
+
# A structure holding an RGBA color.
type RGBA extends object
properties
@@ -3265,6 +3322,12 @@ domain DOM
returns
string path
+ # Returns list of detached nodes
+ experimental command getDetachedDomNodes
+ returns
+ # The list of detached nodes
+ array of DetachedElementInfo detachedNodes
+
# Enables console to refer to the node with given id via $x (see Command Line API for more details
# $x functions).
experimental command setInspectedNode
@@ -3336,6 +3399,21 @@ domain DOM
# Descendant nodes with container queries against the given container.
array of NodeId nodeIds
+ # Returns the target anchor element of the given anchor query according to
+ # https://www.w3.org/TR/css-anchor-position-1/#target.
+ experimental command getAnchorElement
+ parameters
+ # Id of the positioned element from which to find the anchor.
+ NodeId nodeId
+ # An optional anchor specifier, as defined in
+ # https://www.w3.org/TR/css-anchor-position-1/#anchor-specifier.
+ # If not provided, it will return the implicit anchor element for
+ # the given positioned element.
+ optional string anchorSpecifier
+ returns
+ # The anchor element of the given anchor query.
+ NodeId nodeId
+
# Fired when `Element`'s attribute is modified.
event attributeModified
parameters
@@ -4157,6 +4235,21 @@ domain Emulation
optional SensorReadingXYZ xyz
optional SensorReadingQuaternion quaternion
+ experimental type PressureSource extends string
+ enum
+ cpu
+
+ experimental type PressureState extends string
+ enum
+ nominal
+ fair
+ serious
+ critical
+
+ experimental type PressureMetadata extends object
+ properties
+ optional boolean available
+
# Tells whether emulation is supported.
deprecated command canEmulate
returns
@@ -4326,6 +4419,24 @@ domain Emulation
SensorType type
SensorReading reading
+ # Overrides a pressure source of a given type, as used by the Compute
+ # Pressure API, so that updates to PressureObserver.observe() are provided
+ # via setPressureStateOverride instead of being retrieved from
+ # platform-provided telemetry data.
+ experimental command setPressureSourceOverrideEnabled
+ parameters
+ boolean enabled
+ PressureSource source
+ optional PressureMetadata metadata
+
+ # Provides a given pressure state that will be processed and eventually be
+ # delivered to PressureObserver users. |source| must have been previously
+ # overridden by setPressureSourceOverrideEnabled.
+ experimental command setPressureStateOverride
+ parameters
+ PressureSource source
+ PressureState state
+
# Overrides the Idle state.
command setIdleOverride
parameters
@@ -4534,6 +4645,42 @@ domain IO
# UUID of the specified Blob.
string uuid
+experimental domain FileSystem
+ depends on Network
+ depends on Storage
+
+ type File extends object
+ properties
+ string name
+ # Timestamp
+ Network.TimeSinceEpoch lastModified
+ # Size in bytes
+ number size
+ string type
+
+ type Directory extends object
+ properties
+ string name
+ array of string nestedDirectories
+ # Files that are directly nested under this directory.
+ array of File nestedFiles
+
+ type BucketFileSystemLocator extends object
+ properties
+ # Storage key
+ Storage.SerializedStorageKey storageKey
+ # Bucket name. Not passing a `bucketName` will retrieve the default Bucket. (https://developer.mozilla.org/en-US/docs/Web/API/Storage_API#storage_buckets)
+ optional string bucketName
+ # Path to the directory using each path component as an array item.
+ array of string pathComponents
+
+ command getDirectory
+ parameters
+ BucketFileSystemLocator bucketFileSystemLocator
+ returns
+ # Returns the directory object at the path.
+ Directory directory
+
experimental domain IndexedDB
depends on Runtime
depends on Storage
@@ -5589,6 +5736,10 @@ domain Network
experimental number workerFetchStart
# Settled fetch event respondWith promise.
experimental number workerRespondWithSettled
+ # Started ServiceWorker static routing source evaluation.
+ experimental optional number workerRouterEvaluationStart
+ # Started cache lookup when the source was evaluated to `cache`.
+ experimental optional number workerCacheLookupStart
# Started sending request.
number sendStart
# Finished sending request.
@@ -5735,6 +5886,8 @@ domain Network
coop-sandboxed-iframe-cannot-navigate-to-coop-page
corp-not-same-origin
corp-not-same-origin-after-defaulted-to-same-origin-by-coep
+ corp-not-same-origin-after-defaulted-to-same-origin-by-dip
+ corp-not-same-origin-after-defaulted-to-same-origin-by-coep-and-dip
corp-not-same-site
# The reason why request was blocked.
@@ -5874,6 +6027,8 @@ domain Network
# The router source of the matched rule. If there is a matched rule, this
# field will be set, otherwise no value will be set.
optional ServiceWorkerRouterSource matchedSourceType
+ # The actual router source used.
+ optional ServiceWorkerRouterSource actualSourceType
# HTTP response data.
type Response extends object
@@ -6006,6 +6161,16 @@ domain Network
# Set if another request triggered this request (e.g. preflight).
optional RequestId requestId
+ # cookiePartitionKey object
+ # The representation of the components of the key that are created by the cookiePartitionKey class contained in net/cookies/cookie_partition_key.h.
+ experimental type CookiePartitionKey extends object
+ properties
+ # The site of the top-level URL the browser was visiting at the start
+ # of the request to the endpoint that set the cookie.
+ string topLevelSite
+ # Indicates if the cookie has any ancestors that are cross-site to the topLevelSite.
+ boolean hasCrossSiteAncestor
+
# Cookie object
type Cookie extends object
properties
@@ -6039,9 +6204,8 @@ domain Network
# An unspecified port value allows protocol clients to emulate legacy cookie scope for the port.
# This is a temporary ability and it will be removed in the future.
experimental integer sourcePort
- # Cookie partition key. The site of the top-level URL the browser was visiting at the start
- # of the request to the endpoint that set the cookie.
- experimental optional string partitionKey
+ # Cookie partition key.
+ experimental optional CookiePartitionKey partitionKey
# True if cookie partition key is opaque.
experimental optional boolean partitionKeyOpaque
@@ -6186,6 +6350,8 @@ domain Network
TopLevelStorageAccess
# The cookie should have been blocked by 3PCD but is exempted by CORS opt-in.
CorsOptIn
+ # The cookie should have been blocked by 3PCD but is exempted by the first-party URL scheme.
+ Scheme
# A cookie which was not stored from a response with the corresponding reason.
experimental type BlockedSetCookieWithReason extends object
@@ -6255,10 +6421,8 @@ domain Network
# An unspecified port value allows protocol clients to emulate legacy cookie scope for the port.
# This is a temporary ability and it will be removed in the future.
experimental optional integer sourcePort
- # Cookie partition key. The site of the top-level URL the browser was visiting at the start
- # of the request to the endpoint that set the cookie.
- # If not set, the cookie will be set as not partitioned.
- experimental optional string partitionKey
+ # Cookie partition key. If not set, the cookie will be set as not partitioned.
+ experimental optional CookiePartitionKey partitionKey
# Authorization challenge for HTTP status code 401 or 407.
experimental type AuthChallenge extends object
@@ -6461,9 +6625,9 @@ domain Network
optional string domain
# If specified, deletes only cookies with the exact path.
optional string path
- # If specified, deletes only cookies with the the given name and partitionKey where domain
- # matches provided URL.
- experimental optional string partitionKey
+ # If specified, deletes only cookies with the the given name and partitionKey where
+ # all partition key attributes match the cookie partition key attribute.
+ experimental optional CookiePartitionKey partitionKey
# Disables network tracking, prevents network events from being sent to the client.
command disable
@@ -6640,10 +6804,8 @@ domain Network
# An unspecified port value allows protocol clients to emulate legacy cookie scope for the port.
# This is a temporary ability and it will be removed in the future.
experimental optional integer sourcePort
- # Cookie partition key. The site of the top-level URL the browser was visiting at the start
- # of the request to the endpoint that set the cookie.
- # If not set, the cookie will be set as not partitioned.
- experimental optional string partitionKey
+ # Cookie partition key. If not set, the cookie will be set as not partitioned.
+ experimental optional CookiePartitionKey partitionKey
returns
# Always set to true. If an error occurs, the response indicates protocol error.
deprecated boolean success
@@ -7035,7 +7197,7 @@ domain Network
optional string headersText
# The cookie partition key that will be used to store partitioned cookies set in this response.
# Only sent when partitioned cookies are enabled.
- optional string cookiePartitionKey
+ experimental optional CookiePartitionKey cookiePartitionKey
# True if partitioned cookies are enabled, but the partition key is not serializable to string.
optional boolean cookiePartitionKeyOpaque
# A list of cookies which should have been blocked by 3PCD but are exempted and stored from
@@ -7069,7 +7231,7 @@ domain Network
FailedPrecondition
ResourceExhausted
AlreadyExists
- Unavailable
+ ResourceLimited
Unauthorized
BadResponse
InternalError
@@ -7084,6 +7246,9 @@ domain Network
# The number of obtained Trust Tokens on a successful "Issuance" operation.
optional integer issuedTokenCount
+ # Fired once security policy has been updated.
+ experimental event policyUpdated
+
# Fired once when parsing the .wbn file has succeeded.
# The event contains the information about the web bundle contents.
experimental event subresourceWebBundleMetadataReceived
@@ -7136,6 +7301,7 @@ domain Network
UnsafeNone
SameOriginPlusCoep
RestrictPropertiesPlusCoep
+ NoopenerAllowPopups
experimental type CrossOriginOpenerPolicyStatus extends object
properties
@@ -7848,6 +8014,7 @@ domain Page
experimental type PermissionsPolicyFeature extends string
enum
accelerometer
+ all-screens-capture
ambient-light-sensor
attribution-reporting
autoplay
@@ -7882,6 +8049,8 @@ domain Page
clipboard-write
compute-pressure
cross-origin-isolated
+ deferred-fetch
+ digital-credentials-get
direct-sockets
display-capture
document-domain
@@ -7902,6 +8071,7 @@ domain Page
keyboard-map
local-fonts
magnetometer
+ media-playback-while-not-visible
microphone
midi
otp-credentials
@@ -8239,14 +8409,16 @@ domain Page
experimental type ClientNavigationReason extends string
enum
+ anchorClick
formSubmissionGet
formSubmissionPost
httpHeaderRefresh
- scriptInitiated
+ initialFrameNavigation
metaTagRefresh
+ other
pageBlockInterstitial
reload
- anchorClick
+ scriptInitiated
experimental type ClientNavigationDisposition extends string
enum
@@ -9214,6 +9386,11 @@ domain Page
HTTPAuthRequired
CookieFlushed
BroadcastChannelOnMessage
+ WebViewSettingsChanged
+ WebViewJavaScriptObjectChanged
+ WebViewMessageListenerInjected
+ WebViewSafeBrowsingAllowlistChanged
+ WebViewDocumentStartJavascriptChanged
#Blocklisted features
WebSocket
WebTransport
@@ -9244,7 +9421,6 @@ domain Page
Printing
WebDatabase
PictureInPicture
- Portal
SpeechRecognizer
IdleManager
PaymentManager
@@ -9362,6 +9538,15 @@ domain Page
FrameId frameId
# Frame's new url.
string url
+ # Navigation type
+ enum navigationType
+ # Navigation due to fragment navigation.
+ fragment
+ # Navigation due to history API usage.
+ historyApi
+ # Navigation due to other reasons.
+ other
+
# Compressed image data requested by the `startScreencast`.
experimental event screencastFrame
@@ -10434,6 +10619,23 @@ experimental domain Storage
exact
modulus
+ experimental type AttributionReportingAggregatableDebugReportingData extends object
+ properties
+ UnsignedInt128AsBase16 keyPiece
+ # number instead of integer because not all uint32 can be represented by
+ # int
+ number value
+ array of string types
+
+ experimental type AttributionReportingAggregatableDebugReportingConfig extends object
+ properties
+ # number instead of integer because not all uint32 can be represented by
+ # int, only present for source registrations
+ optional number budget
+ UnsignedInt128AsBase16 keyPiece
+ array of AttributionReportingAggregatableDebugReportingData debugData
+ optional string aggregationCoordinatorOrigin
+
experimental type AttributionReportingSourceRegistration extends object
properties
Network.TimeSinceEpoch time
@@ -10452,6 +10654,8 @@ experimental domain Storage
array of AttributionReportingAggregationKeysEntry aggregationKeys
optional UnsignedInt64AsBase10 debugKey
AttributionReportingTriggerDataMatching triggerDataMatching
+ SignedInt64AsBase10 destinationLimitPriority
+ AttributionReportingAggregatableDebugReportingConfig aggregatableDebugReportingConfig
experimental type AttributionReportingSourceRegistrationResult extends string
enum
@@ -10468,6 +10672,7 @@ experimental domain Storage
reportingOriginsPerSiteLimitReached
exceedsMaxChannelCapacity
exceedsMaxTriggerStateCardinality
+ destinationPerDayReportingLimitReached
experimental event attributionReportingSourceRegistered
parameters
@@ -10485,6 +10690,8 @@ experimental domain Storage
# number instead of integer because not all uint32 can be represented by
# int
number value
+ UnsignedInt64AsBase10 filteringId
+
experimental type AttributionReportingAggregatableValueEntry extends object
properties
@@ -10517,10 +10724,12 @@ experimental domain Storage
array of AttributionReportingEventTriggerData eventTriggerData
array of AttributionReportingAggregatableTriggerData aggregatableTriggerData
array of AttributionReportingAggregatableValueEntry aggregatableValues
+ integer aggregatableFilteringIdMaxBytes
boolean debugReporting
optional string aggregationCoordinatorOrigin
AttributionReportingSourceRegistrationTimeConfig sourceRegistrationTimeConfig
optional string triggerContextId
+ AttributionReportingAggregatableDebugReportingConfig aggregatableDebugReportingConfig
experimental type AttributionReportingEventLevelResult extends string
enum
@@ -10748,7 +10957,7 @@ domain Target
experimental optional Page.FrameId openerFrameId
experimental optional Browser.BrowserContextID browserContextId
# Provides additional details for specific target types. For example, for
- # the type of "page", this may be set to "portal" or "prerender".
+ # the type of "page", this may be set to "prerender".
experimental optional string subtype
# A filter used by target query/discovery/auto-attach operations.
@@ -12136,6 +12345,9 @@ experimental domain Preload
JavaScriptInterfaceAdded
JavaScriptInterfaceRemoved
AllPrerenderingCanceled
+ WindowClosed
+ SlowNetwork
+ OtherPrerenderedPageActivated
# Fired when a preload enabled state is updated.
event preloadEnabledStateUpdated
@@ -12376,15 +12588,14 @@ experimental domain PWA
# manifestId.
optional string installUrlOrBundleUrl
- # Uninstals the given manifest_id and closes any opened app windows.
+ # Uninstalls the given manifest_id and closes any opened app windows.
command uninstall
parameters
string manifestId
# Launches the installed web app, or an url in the same web app instead of the
- # default start url if it is provided. Returns a tab / web contents based
- # Target.TargetID which can be used to attach to via Target.attachToTarget or
- # similar APIs.
+ # default start url if it is provided. Returns a page Target.TargetID which
+ # can be used to attach to via Target.attachToTarget or similar APIs.
command launch
parameters
string manifestId
@@ -12392,3 +12603,127 @@ experimental domain PWA
returns
# ID of the tab target created as a result.
Target.TargetID targetId
+
+ # Opens one or more local files from an installed web app identified by its
+ # manifestId. The web app needs to have file handlers registered to process
+ # the files. The API returns one or more page Target.TargetIDs which can be
+ # used to attach to via Target.attachToTarget or similar APIs.
+ # If some files in the parameters cannot be handled by the web app, they will
+ # be ignored. If none of the files can be handled, this API returns an error.
+ # If no files are provided as the parameter, this API also returns an error.
+ #
+ # According to the definition of the file handlers in the manifest file, one
+ # Target.TargetID may represent a page handling one or more files. The order
+ # of the returned Target.TargetIDs is not guaranteed.
+ #
+ # TODO(crbug.com/339454034): Check the existences of the input files.
+ command launchFilesInApp
+ parameters
+ string manifestId
+ array of string files
+ returns
+ # IDs of the tab targets created as the result.
+ array of Target.TargetID targetIds
+
+ # Opens the current page in its web app identified by the manifest id, needs
+ # to be called on a page target. This function returns immediately without
+ # waiting for the app to finish loading.
+ command openCurrentPageInApp
+ parameters
+ string manifestId
+
+ # If user prefers opening the app in browser or an app window.
+ type DisplayMode extends string
+ enum
+ standalone
+ browser
+
+ # Changes user settings of the web app identified by its manifestId. If the
+ # app was not installed, this command returns an error. Unset parameters will
+ # be ignored; unrecognized values will cause an error.
+ #
+ # Unlike the ones defined in the manifest files of the web apps, these
+ # settings are provided by the browser and controlled by the users, they
+ # impact the way the browser handling the web apps.
+ #
+ # See the comment of each parameter.
+ command changeAppUserSettings
+ parameters
+ string manifestId
+ # If user allows the links clicked on by the user in the app's scope, or
+ # extended scope if the manifest has scope extensions and the flags
+ # `DesktopPWAsLinkCapturingWithScopeExtensions` and
+ # `WebAppEnableScopeExtensions` are enabled.
+ #
+ # Note, the API does not support resetting the linkCapturing to the
+ # initial value, uninstalling and installing the web app again will reset
+ # it.
+ #
+ # TODO(crbug.com/339453269): Setting this value on ChromeOS is not
+ # supported yet.
+ optional boolean linkCapturing
+ optional DisplayMode displayMode
+
+# This domain allows configuring virtual Bluetooth devices to test
+# the web-bluetooth API.
+experimental domain BluetoothEmulation
+ # Indicates the various states of Central.
+ type CentralState extends string
+ enum
+ absent
+ powered-off
+ powered-on
+
+ # Stores the manufacturer data
+ type ManufacturerData extends object
+ properties
+ # Company identifier
+ # https://bitbucket.org/bluetooth-SIG/public/src/main/assigned_numbers/company_identifiers/company_identifiers.yaml
+ # https://usb.org/developers
+ integer key
+ # Manufacturer-specific data
+ binary data
+
+ # Stores the byte data of the advertisement packet sent by a Bluetooth device.
+ type ScanRecord extends object
+ properties
+ optional string name
+ optional array of string uuids
+ # Stores the external appearance description of the device.
+ optional integer appearance
+ # Stores the transmission power of a broadcasting device.
+ optional integer txPower
+ # Key is the company identifier and the value is an array of bytes of
+ # manufacturer specific data.
+ optional array of ManufacturerData manufacturerData
+
+ # Stores the advertisement packet information that is sent by a Bluetooth device.
+ type ScanEntry extends object
+ properties
+ string deviceAddress
+ integer rssi
+ ScanRecord scanRecord
+
+ # Enable the BluetoothEmulation domain.
+ command enable
+ parameters
+ # State of the simulated central.
+ CentralState state
+
+ # Disable the BluetoothEmulation domain.
+ command disable
+
+ # Simulates a peripheral with |address|, |name| and |knownServiceUuids|
+ # that has already been connected to the system.
+ command simulatePreconnectedPeripheral
+ parameters
+ string address
+ string name
+ array of ManufacturerData manufacturerData
+ array of string knownServiceUuids
+
+ # Simulates an advertisement packet described in |entry| being received by
+ # the central.
+ command simulateAdvertisement
+ parameters
+ ScanEntry entry
diff --git a/common/devtools/chromium/v124/js_protocol.pdl b/common/devtools/chromium/v129/js_protocol.pdl
similarity index 100%
rename from common/devtools/chromium/v124/js_protocol.pdl
rename to common/devtools/chromium/v129/js_protocol.pdl
diff --git a/common/devtools/chromium/v125/BUILD.bazel b/common/devtools/chromium/v130/BUILD.bazel
similarity index 100%
rename from common/devtools/chromium/v125/BUILD.bazel
rename to common/devtools/chromium/v130/BUILD.bazel
diff --git a/common/devtools/chromium/v125/browser_protocol.pdl b/common/devtools/chromium/v130/browser_protocol.pdl
similarity index 95%
rename from common/devtools/chromium/v125/browser_protocol.pdl
rename to common/devtools/chromium/v130/browser_protocol.pdl
index 162eeacc25478..8a9325e6f6528 100644
--- a/common/devtools/chromium/v125/browser_protocol.pdl
+++ b/common/devtools/chromium/v130/browser_protocol.pdl
@@ -156,6 +156,7 @@ experimental domain Accessibility
flowto
labelledby
owns
+ url
# A node in the accessibility tree.
type AXNode extends object
@@ -622,6 +623,8 @@ experimental domain Audits
CoopSandboxedIFrameCannotNavigateToCoopPage
CorpNotSameOrigin
CorpNotSameOriginAfterDefaultedToSameOriginByCoep
+ CorpNotSameOriginAfterDefaultedToSameOriginByDip
+ CorpNotSameOriginAfterDefaultedToSameOriginByCoepAndDip
CorpNotSameSite
# Details for a request that has been blocked with the BLOCKED_BY_RESPONSE
@@ -740,6 +743,33 @@ experimental domain Audits
NoRegisterTriggerHeader
NoRegisterOsSourceHeader
NoRegisterOsTriggerHeader
+ NavigationRegistrationUniqueScopeAlreadySet
+
+ type SharedDictionaryError extends string
+ enum
+ UseErrorCrossOriginNoCorsRequest
+ UseErrorDictionaryLoadFailure
+ UseErrorMatchingDictionaryNotUsed
+ UseErrorUnexpectedContentDictionaryHeader
+ WriteErrorCossOriginNoCorsRequest
+ WriteErrorDisallowedBySettings
+ WriteErrorExpiredResponse
+ WriteErrorFeatureDisabled
+ WriteErrorInsufficientResources
+ WriteErrorInvalidMatchField
+ WriteErrorInvalidStructuredHeader
+ WriteErrorNavigationRequest
+ WriteErrorNoMatchField
+ WriteErrorNonListMatchDestField
+ WriteErrorNonSecureContext
+ WriteErrorNonStringIdField
+ WriteErrorNonStringInMatchDestList
+ WriteErrorNonStringMatchField
+ WriteErrorNonTokenTypeField
+ WriteErrorRequestAborted
+ WriteErrorShuttingDown
+ WriteErrorTooLongIdField
+ WriteErrorUnsupportedType
# Details for issues around "Attribution Reporting API" usage.
# Explainer: https://github.com/WICG/attribution-reporting-api
@@ -767,9 +797,13 @@ experimental domain Audits
string url
optional SourceCodeLocation location
+ type SharedDictionaryIssueDetails extends object
+ properties
+ SharedDictionaryError sharedDictionaryError
+ AffectedRequest request
+
type GenericIssueErrorType extends string
enum
- CrossOriginPortalPostMessageError
FormLabelForNameError
FormDuplicateIdForInputError
FormInputWithNoLabelError
@@ -818,6 +852,9 @@ experimental domain Audits
type CookieDeprecationMetadataIssueDetails extends object
properties
array of string allowedSites
+ number optOutPercentage
+ boolean isOptOutTopLevel
+ CookieOperation operation
type ClientHintIssueReason extends string
enum
@@ -855,7 +892,9 @@ experimental domain Audits
ClientMetadataNoResponse
ClientMetadataInvalidResponse
ClientMetadataInvalidContentType
+ IdpNotPotentiallyTrustworthy
DisabledInSettings
+ DisabledInFlags
ErrorFetchingSignin
InvalidSigninResponse
AccountsHttpNotFound
@@ -878,6 +917,9 @@ experimental domain Audits
NotSignedInWithIdp
MissingTransientUserActivation
ReplacedByButtonMode
+ InvalidFieldsSpecified
+ RelyingPartyOriginIsOpaque
+ TypeNotMatching
type FederatedAuthUserInfoRequestIssueDetails extends object
properties
@@ -972,6 +1014,7 @@ experimental domain Audits
StylesheetLoadingIssue
FederatedAuthUserInfoRequestIssue
PropertyRuleIssue
+ SharedDictionaryIssue
# 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
@@ -998,6 +1041,7 @@ experimental domain Audits
optional StylesheetLoadingIssueDetails stylesheetLoadingIssueDetails
optional PropertyRuleIssueDetails propertyRuleIssueDetails
optional FederatedAuthUserInfoRequestIssueDetails federatedAuthUserInfoRequestIssueDetails
+ optional SharedDictionaryIssueDetails sharedDictionaryIssueDetails
# A unique id for a DevTools inspector issue. Allows other entities (e.g.
# exceptions, CDP message, console messages, etc.) to reference an issue.
@@ -1059,6 +1103,66 @@ experimental domain Audits
parameters
InspectorIssue issue
+# Defines commands and events for browser extensions.
+experimental domain Extensions
+ # Storage areas.
+ type StorageArea extends string
+ enum
+ session
+ local
+ sync
+ managed
+ # Installs an unpacked extension from the filesystem similar to
+ # --load-extension CLI flags. Returns extension ID once the extension
+ # has been installed. Available if the client is connected using the
+ # --remote-debugging-pipe flag and the --enable-unsafe-extension-debugging
+ # flag is set.
+ command loadUnpacked
+ parameters
+ # Absolute file path.
+ string path
+ returns
+ # Extension id.
+ string id
+ # Gets data from extension storage in the given `storageArea`. If `keys` is
+ # specified, these are used to filter the result.
+ command getStorageItems
+ parameters
+ # ID of extension.
+ string id
+ # StorageArea to retrieve data from.
+ StorageArea storageArea
+ # Keys to retrieve.
+ optional array of string keys
+ returns
+ object data
+ # Removes `keys` from extension storage in the given `storageArea`.
+ command removeStorageItems
+ parameters
+ # ID of extension.
+ string id
+ # StorageArea to remove data from.
+ StorageArea storageArea
+ # Keys to remove.
+ array of string keys
+ # Clears extension storage in the given `storageArea`.
+ command clearStorageItems
+ parameters
+ # ID of extension.
+ string id
+ # StorageArea to remove data from.
+ StorageArea storageArea
+ # Sets `values` in extension storage in the given `storageArea`. The provided `values`
+ # will be merged with existing values in the storage area.
+ command setStorageItems
+ parameters
+ # ID of extension.
+ string id
+ # StorageArea to set data in.
+ StorageArea storageArea
+ # Values to set.
+ object values
+
# Defines commands and events for Autofill.
experimental domain Autofill
type CreditCard extends object
@@ -1289,6 +1393,7 @@ domain Browser
videoCapturePanTiltZoom
wakeLockScreen
wakeLockSystem
+ webAppInstallation
windowManagement
experimental type PermissionSetting extends string
@@ -1311,6 +1416,8 @@ domain Browser
optional boolean userVisibleOnly
# For "clipboard" permission, may specify allowWithoutSanitization.
optional boolean allowWithoutSanitization
+ # For "fullscreen" permission, must specify allowWithoutGesture:true.
+ optional boolean allowWithoutGesture
# For "camera" permission, may specify panTiltZoom.
optional boolean panTiltZoom
@@ -1951,13 +2058,6 @@ experimental domain CSS
# Associated style declaration.
CSSStyle style
- # CSS position-fallback rule representation.
- deprecated type CSSPositionFallbackRule extends object
- properties
- Value name
- # List of keyframes.
- array of CSSTryRule tryRules
-
# CSS @position-try rule representation.
type CSSPositionTryRule extends object
properties
@@ -1970,6 +2070,7 @@ experimental domain CSS
StyleSheetOrigin origin
# Associated style declaration.
CSSStyle style
+ boolean active
# CSS keyframes rule representation.
type CSSKeyframesRule extends object
@@ -2143,10 +2244,11 @@ experimental domain CSS
optional array of InheritedPseudoElementMatches inheritedPseudoElements
# A list of CSS keyframed animations matching this node.
optional array of CSSKeyframesRule cssKeyframesRules
- # A list of CSS position fallbacks matching this node.
- deprecated optional array of CSSPositionFallbackRule cssPositionFallbackRules
- # A list of CSS @position-try rules matching this node, based on the position-try-options property.
+ # A list of CSS @position-try rules matching this node, based on the position-try-fallbacks property.
optional array of CSSPositionTryRule cssPositionTryRules
+ # Index of the active fallback in the applied position-try-fallback property,
+ # will not be set if there is no active position-try fallback.
+ optional integer activePositionFallbackIndex
# A list of CSS at-property rules matching this node.
optional array of CSSPropertyRule cssPropertyRules
# A list of CSS property registrations matching this node.
@@ -2577,14 +2679,18 @@ domain DOM
after
marker
backdrop
+ column
selection
+ search-text
target-text
spelling-error
grammar-error
highlight
first-line-inherited
scroll-marker
- scroll-markers
+ scroll-marker-group
+ scroll-next-button
+ scroll-prev-button
scrollbar
scrollbar-thumb
scrollbar-button
@@ -2598,6 +2704,12 @@ domain DOM
view-transition-image-pair
view-transition-old
view-transition-new
+ placeholder
+ file-selector-button
+ details-content
+ select-fallback-button
+ select-fallback-button-text
+ picker
# Shadow root type.
type ShadowRootType extends string
@@ -2702,6 +2814,13 @@ domain DOM
optional boolean isSVG
optional CompatibilityMode compatibilityMode
optional BackendNode assignedSlot
+ experimental optional boolean isScrollable
+
+ # A structure to hold the top-level node of a detached tree and an array of its retained descendants.
+ type DetachedElementInfo extends object
+ properties
+ Node treeNode
+ array of NodeId retainedNodeIds
# A structure holding an RGBA color.
type RGBA extends object
@@ -3084,6 +3203,20 @@ domain DOM
# NodeIds of top layer elements
array of NodeId nodeIds
+ # Returns the NodeId of the matched element according to certain relations.
+ experimental command getElementByRelation
+ parameters
+ # Id of the node from which to query the relation.
+ NodeId nodeId
+ # Type of relation to get.
+ enum relation
+ # Get the popover target for a given element. In this case, this given
+ # element can only be an HTMLFormControlElement (,