From ac342546e9e34d4ca94eceeb27cce22a4fe3b79f Mon Sep 17 00:00:00 2001 From: Selenium CI Bot Date: Mon, 20 Jan 2025 16:29:22 +0100 Subject: [PATCH] [build] Prepare for release of Selenium 4.28.0 (#15098) * Update pinned browser versions * Update supported versions for Chrome DevTools * Update selenium manager version * Update authors file * FIX CHANGELOGS BEFORE MERGING! Update versions and change logs to release Selenium 4.28.0 * [create-pull-request] automated change * Formatting changelogs * Update Gemfile.lock and checksums (#15100) * Update Gemfile.lock and checksums * Platform added and tested locally * FIx rubocop issues * Push new platform and module * Formatting fixed * Add missing platforms and fix module * [ci] Pinning browsers * [java] Enabling a few BiDi tests * [ci] Pinning browsers * [ci] Pinning browsers * [dotnet] Ignoring test due to Gecko bug * [py] Removing test as it also fails in Chrome But passes for both Edge and Chrome in C# and Java * [rb] Enabling test * [rb] Skipping test for linux now * [rb] Leaving the test failing for beta --------- Co-authored-by: Selenium CI Bot Co-authored-by: Diego Molina Co-authored-by: Augustin Gottlieb <33221555+aguspe@users.noreply.github.com> Co-authored-by: Diego Molina Co-authored-by: Viet Nguyen Duc --- AUTHORS | 6 + MODULE.bazel | 74 +++++---- Rakefile | 2 +- .../chromium/{v129 => v132}/BUILD.bazel | 0 .../{v129 => v132}/browser_protocol.pdl | 157 ++++++++++++++++-- .../chromium/{v129 => v132}/js_protocol.pdl | 15 +- common/repositories.bzl | 50 +++--- common/selenium_manager.bzl | 12 +- dotnet/CHANGELOG | 44 +++++ dotnet/selenium-dotnet-version.bzl | 4 +- .../src/webdriver/DevTools/DevToolsDomains.cs | 2 +- .../V129Domains.cs => v132/V132Domains.cs} | 22 +-- .../V132JavaScript.cs} | 16 +- .../{v129/V129Log.cs => v132/V132Log.cs} | 14 +- .../V129Network.cs => v132/V132Network.cs} | 24 +-- .../V129Target.cs => v132/V132Target.cs} | 14 +- dotnet/test/common/ClickTest.cs | 1 + .../StableChannelChromeDriver.cs | 2 +- .../common/DevTools/DevToolsConsoleTest.cs | 2 +- .../test/common/DevTools/DevToolsLogTest.cs | 2 +- .../common/DevTools/DevToolsNetworkTest.cs | 2 +- .../DevTools/DevToolsPerformanceTest.cs | 2 +- .../common/DevTools/DevToolsProfilerTest.cs | 2 +- .../common/DevTools/DevToolsSecurityTest.cs | 2 +- .../test/common/DevTools/DevToolsTabsTest.cs | 2 +- .../common/DevTools/DevToolsTargetTest.cs | 4 +- java/CHANGELOG | 45 +++++ java/maven_install.json | 77 ++++----- .../devtools/{v129 => v132}/BUILD.bazel | 2 +- .../v132CdpInfo.java} | 8 +- .../v132Domains.java} | 26 +-- .../v129Events.java => v132/v132Events.java} | 18 +- .../v132Javascript.java} | 14 +- .../{v129/v129Log.java => v132/v132Log.java} | 10 +- .../v132Network.java} | 20 +-- .../v129Target.java => v132/v132Target.java} | 24 +-- .../org/openqa/selenium/devtools/versions.bzl | 2 +- .../bidi/input/CombinedInputActionsTest.java | 2 - .../selenium/bidi/input/DefaultMouseTest.java | 3 - java/version.bzl | 2 +- .../node/selenium-webdriver/BUILD.bazel | 4 +- javascript/node/selenium-webdriver/CHANGES.md | 10 ++ .../node/selenium-webdriver/package.json | 2 +- py/BUILD.bazel | 4 +- py/CHANGES | 18 ++ py/docs/source/conf.py | 2 +- py/pyproject.toml | 2 +- py/selenium/__init__.py | 2 +- py/selenium/webdriver/__init__.py | 2 +- .../webdriver/common/frame_switching_tests.py | 25 --- rb/CHANGES | 9 + rb/Gemfile.lock | 86 +++++----- rb/lib/selenium/devtools/BUILD.bazel | 2 +- rb/lib/selenium/devtools/version.rb | 2 +- rb/lib/selenium/webdriver/bidi/struct.rb | 2 +- rb/lib/selenium/webdriver/common/logger.rb | 2 +- rb/lib/selenium/webdriver/version.rb | 2 +- .../selenium/webdriver/action_builder_spec.rb | 4 +- rust/CHANGELOG.md | 8 + 59 files changed, 590 insertions(+), 328 deletions(-) rename common/devtools/chromium/{v129 => v132}/BUILD.bazel (100%) rename common/devtools/chromium/{v129 => v132}/browser_protocol.pdl (98%) rename common/devtools/chromium/{v129 => v132}/js_protocol.pdl (99%) rename dotnet/src/webdriver/DevTools/{v129/V129Domains.cs => v132/V132Domains.cs} (78%) rename dotnet/src/webdriver/DevTools/{v129/V129JavaScript.cs => v132/V132JavaScript.cs} (94%) rename dotnet/src/webdriver/DevTools/{v129/V129Log.cs => v132/V132Log.cs} (88%) rename dotnet/src/webdriver/DevTools/{v129/V129Network.cs => v132/V132Network.cs} (95%) rename dotnet/src/webdriver/DevTools/{v129/V129Target.cs => v132/V132Target.cs} (94%) rename java/src/org/openqa/selenium/devtools/{v129 => v132}/BUILD.bazel (98%) rename java/src/org/openqa/selenium/devtools/{v129/v129CdpInfo.java => v132/v132CdpInfo.java} (86%) rename java/src/org/openqa/selenium/devtools/{v129/v129Domains.java => v132/v132Domains.java} (77%) rename java/src/org/openqa/selenium/devtools/{v129/v129Events.java => v132/v132Events.java} (86%) rename java/src/org/openqa/selenium/devtools/{v129/v129Javascript.java => v132/v132Javascript.java} (85%) rename java/src/org/openqa/selenium/devtools/{v129/v129Log.java => v132/v132Log.java} (89%) rename java/src/org/openqa/selenium/devtools/{v129/v129Network.java => v132/v132Network.java} (92%) rename java/src/org/openqa/selenium/devtools/{v129/v129Target.java => v132/v132Target.java} (83%) diff --git a/AUTHORS b/AUTHORS index 4eeedcf9c0014..fce4131eb51c7 100644 --- a/AUTHORS +++ b/AUTHORS @@ -104,7 +104,9 @@ Ben Kucera <14625260+Bkucera@users.noreply.github.com> Ben Lamm Ben Sedat Benjamin Forehand Jr +Benoit Pierre bgermann +bgermann bhecquet bhkwan Bill Agee @@ -156,6 +158,7 @@ Chris Mohr Chris Stringer Chris Ward Christian Ansel <36796016+ChrstnAnsl@users.noreply.github.com> +Christian Biesinger Christian Biesinger Christian Clauss Christopher Buttkus @@ -228,6 +231,7 @@ Diego Fernández Santos Diego Molina Dima Kovalenko Dima Veselov +Dinesh Kumar R A <37109896+DineshKumarRA@users.noreply.github.com> Diogo Teles Sant'Anna Dmitriy Sintsov Dmitry Dubenets @@ -392,6 +396,7 @@ Jari Bakken Jason Jason Anderson Jason Carr +Jason Heflinger Jason Hu Jason Huggins Jason Juang @@ -643,6 +648,7 @@ 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> +Navin Chandra Neil Carvalho Nelson Sproul Nick Crews diff --git a/MODULE.bazel b/MODULE.bazel index 997066e168f47..c83f8ab8d6d6a 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -170,14 +170,14 @@ maven.install( artifacts = [ "com.beust:jcommander:1.82", "com.github.javaparser:javaparser-core:3.26.3", - "com.github.spotbugs:spotbugs:4.8.6", + "com.github.spotbugs:spotbugs:4.9.0", "com.github.stephenc.jcip:jcip-annotations:1.0-1", "com.google.code.gson:gson:2.11.0", "com.google.guava:guava:33.4.0-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:1.25.2:1.25.0", + "com.google.googlejavaformat:google-java-format:jar:1.25.2", "com.graphql-java:graphql-java:22.3", "dev.failsafe:failsafe:3.3.2", "io.grpc:grpc-context:1.69.0", @@ -268,37 +268,39 @@ ruby.bundle_fetch( "ast-2.4.2": "1e280232e6a33754cde542bc5ef85520b74db2aac73ec14acef453784447cc12", "base64-0.2.0": "0f25e9b21a02a0cc0cea8ef92b2041035d39350946e8789c562b2d1a3da01507", "benchmark-0.4.0": "0f12f8c495545e3710c3e4f0480f63f06b4c842cc94cec7f33a956f5180e874a", - "bigdecimal-3.1.8": "a89467ed5a44f8ae01824af49cbc575871fa078332e8f77ea425725c1ffe27be", - "bigdecimal-3.1.8-java": "b9e94c14623fff8575f17a10320852219bbba92ecff4977571503d942687326e", - "concurrent-ruby-1.3.4": "d4aa926339b0a86b5b5054a0a8c580163e6f5dcbdfd0f4bb916b1a2570731c32", - "connection_pool-2.4.1": "0f40cf997091f1f04ff66da67eabd61a9fe0d4928b9a3645228532512fab62f4", + "bigdecimal-3.1.9": "2ffc742031521ad69c2dfc815a98e426a230a3d22aeac1995826a75dabfad8cc", + "bigdecimal-3.1.9-java": "dd9b8f7c870664cd9538a1325ce385ba57a6627969177258c4f0e661a7be4456", + "concurrent-ruby-1.3.5": "813b3e37aca6df2a21a3b9f1d497f8cbab24a2b94cab325bffe65ee0f6cbebc6", + "connection_pool-2.5.0": "233b92f8d38e038c1349ccea65dd3772727d669d6d2e71f9897c8bf5cd53ebfc", "crack-1.0.0": "c83aefdb428cdc7b66c7f287e488c796f055c0839e6e545fec2c7047743c4a49", - "csv-3.3.0": "0bbd1defdc31134abefed027a639b3723c2753862150f4c3ee61cab71b20d67d", + "csv-3.3.2": "6ff0c135e65e485d1864dde6c1703b60d34cc9e19bed8452834a0b28a519bd4e", "curb-1.0.6": "b369434efa91dc7310d72a74f8a228a5b920e3d5a89b0a3097e4c6a905af6eb2", - "debug-1.9.2": "48e026c0852c7a10c60263e2e527968308958e266231e36d64e3efcabec7e7fc", + "date-3.4.1": "bf268e14ef7158009bfeaec40b5fa3c7271906e88b196d958a89d4b408abe64f", + "debug-1.10.0": "11e28ca74875979e612444104f3972bd5ffb9e79179907d7ad46dba44bd2e7a4", "diff-lcs-1.5.1": "273223dfb40685548436d32b4733aa67351769c7dea621da7d9dd4813e63ddfe", "drb-2.2.1": "e9d472bf785f558b96b25358bae115646da0dbfd45107ad858b0bc0d935cb340", - "ffi-1.17.0": "51630e43425078311c056ca75f961bb3bda1641ab36e44ad4c455e0b0e4a231c", - "ffi-1.17.0-java": "f65f022616970fcde83fe176393eb873a7b959ef2703f94931cf0af6ab55ec7a", - "ffi-1.17.0-x86_64-darwin": "fdcd48c69db3303ef95aec5c64d6275fcf9878a02c0bec0afddc506ceca0f56b", + "ffi-1.17.1-arm64-darwin": "a8e04f79d375742c54ee7f9fff4b4022b87200a4ec0eb082128d3b6559e67b4d", + "ffi-1.17.1-java": "2546e11f9592e2b9b6de49eb96d2a378da47b0bb8469d5cbc9881a55c0d55da7", + "ffi-1.17.1-x64-mingw-ucrt": "da79a832aee7ccd3635b4ec5e8a1927aed786e7ea03f2e33e2c06ea4fcece4a0", + "ffi-1.17.1-x86_64-linux-gnu": "8c0ade2a5d19f3672bccfe3b58e016ae5f159e3e2e741c856db87fcf07c903d0", "fileutils-1.7.3": "57271e854b694a87755d76f836f5c57b2c9538ebbaf4b2154bb66addf15eb5da", "git-1.19.1": "b0a422d9f6517353c48a330d6114de4db9e0c82dbe7202964a1d9f1fbc827d70", "hashdiff-1.1.2": "2c30eeded6ed3dce8401d2b5b99e6963fe5f14ed85e60dd9e33c545a44b71a77", "i18n-1.14.6": "dc229a74f5d181f09942dd60ab5d6e667f7392c4ee826f35096db36d1fe3614c", - "io-console-0.7.2": "f0dccff252f877a4f60d04a4dc6b442b185ebffb4b320ab69212a92b48a7a221", - "io-console-0.7.2-java": "73aa382f8832b116613ceaf57b8ff5bf73dfedcaf39f0aa5420e10f63a4543ed", - "irb-1.14.1": "5975003b58d36efaf492380baa982ceedf5aed36967a4d5b40996bc5c66e80f8", + "io-console-0.8.0": "cd6a9facbc69871d69b2cb8b926fc6ea7ef06f06e505e81a64f14a470fddefa2", + "io-console-0.8.0-java": "3cc6fd5c66e587145c1fdf8dc40c2e3d851e90722a5d0cc3f38da352f06fe1bd", + "irb-1.14.3": "c457f1f2f1438ae9ce5c5be3981ae2138dec7fb894c7d73777eeeb0a6c0d0752", "jar-dependencies-0.4.1": "b2df2f1ecbff15334ce20ea7fdd5b8d8161faab67761ff72c7647d728e40d387", - "json-2.8.2": "dd4fa6c9c81daecf72b86ea36e56ed8955fdbb4d4dc379c93d313a59344486cf", - "json-2.8.2-java": "7a7321efd8fad215a1afe92b5f16546203f193781da2d5c01587600cc00aa302", + "json-2.9.1": "d2bdef4644052fad91c1785d48263756fe32fcac08b96a20bb15840e96550d11", + "json-2.9.1-java": "88de8c79b54fee6ae1b4854bc48b8d7089f524cbacaf4596df24f86b10896ee8", "language_server-protocol-3.17.0.3": "3d5c58c02f44a20d972957a9febe386d7e7468ab3900ce6bd2b563dd910c6b3f", "listen-3.9.0": "db9e4424e0e5834480385197c139cb6b0ae0ef28cc13310cfd1ca78377d59c67", - "logger-1.6.1": "3ad9587ed3940bf7897ea64a673971415523f4f7d6b22c5e3af5219705669653", - "minitest-5.25.2": "59b379d63e0058159127b545c4725d3106624c9be2b3e030ddaee825d59e83eb", + "logger-1.6.5": "c3cfe56d01656490ddd103d38b8993d73d86296adebc5f58cefc9ec03741e56b", + "minitest-5.25.4": "9cf2cae25ac4dfc90c988ebc3b917f53c054978b673273da1bd20bcb0778f947", "parallel-1.26.3": "d86babb7a2b814be9f4b81587bf0b6ce2da7d45969fab24d8ae4bf2bb4d4c7ef", - "parser-3.3.6.0": "25d4e67cc4f0f7cab9a2ae1f38e2005b6904d2ea13c34734511d0faad038bc3b", - "psych-5.2.0": "6603fe756bcaf14daa25bc17625f36c90931dcf70452ac1e8da19760dc310573", - "psych-5.2.0-java": "da3a7995e652365faa210d7658a291141c9a15bf05a4d9a48a13856b04f36960", + "parser-3.3.7.0": "7449011771e3e7881297859b849de26a6f4fccd515bece9520a87e7d2116119b", + "psych-5.2.2": "a4a9477c85d3e858086c38cf64e7096abe40d1b1eed248b01020dec0ff9906ab", + "psych-5.2.2-java": "dae010e0bbc01e03da5c42cf538705759fb592f42eb9e06baf9bce932c2d7c4e", "public_suffix-6.0.1": "61d44e1cab5cbbbe5b31068481cf16976dd0dc1b6b07bd95617ef8c5e3e00c6f", "racc-1.8.1": "4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f", "racc-1.8.1-java": "54f2e6d1e1b91c154013277d986f52a90e5ececbe91465d29172e49342732b98", @@ -307,37 +309,37 @@ ruby.bundle_fetch( "rake-13.2.1": "46cb38dae65d7d74b6020a4ac9d48afed8eb8149c040eccf0523bec91907059d", "rb-fsevent-0.11.2": "43900b972e7301d6570f64b850a5aa67833ee7d87b458ee92805d56b7318aefe", "rb-inotify-0.11.1": "a0a700441239b0ff18eb65e3866236cd78613d6b9f78fea1f9ac47a85e47be6e", - "rbs-3.6.1": "ed7273d018556844583d1785ac54194e67eec594d68e317d57fa90ad035532c0", - "rchardet-1.8.0": "693acd5253d5ade81a51940697955f6dd4bb2f0d245bda76a8e23deec70a52c7", - "rdoc-6.8.1": "0128002d1bfc4892bdd780940841e4ca41275f63781fd832d11bc8ba4461462c", - "regexp_parser-2.9.2": "5a27e767ad634f8a4b544520d5cd28a0db7aa1198a5d7c9d7e11d7b3d9066446", - "reline-0.5.11": "868d5f4dbfd9caafa70182f7f6fa258b70baee4e565d7cd9e70b4d5b11a7cb65", - "rexml-3.3.9": "d71875b85299f341edf47d44df0212e7658cbdf35aeb69cefdb63f57af3137c9", + "rbs-3.8.1": "2b6ce37952e267e1d3ad330aabfadbdceac234193a60cc18f25a8f75fa949c1d", + "rchardet-1.9.0": "26889486cdd83b378652baf7603f71d93e431bb11bc237b4cd8c65151af4a590", + "rdoc-6.11.0": "bec66fb9b019be64f7ba7d2cd2aecb283a3a01fef23a95b33e2349c6d1aa0040", + "regexp_parser-2.10.0": "cb6f0ddde88772cd64bff1dbbf68df66d376043fe2e66a9ef77fcb1b0c548c61", + "reline-0.6.0": "57620375dcbe56ec09bac7192bfb7460c716bbf0054dc94345ecaa5438e539d2", + "rexml-3.4.0": "efbea1efba7fa151158e0ee1e643525834da2d8eb4cf744aa68f6480bc9804b2", "rspec-3.13.0": "d490914ac1d5a5a64a0e1400c1d54ddd2a501324d703b8cfe83f458337bab993", "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.68.0": "07df508504d81e97174e8d21030f25d52c1be7ee8615939db43f3b377ea6c12b", - "rubocop-ast-1.36.1": "15d89a8953178bc32561d481a3620496e70933a228be1e3b6997b01b8d587b79", + "rspec-support-3.13.2": "cea3a2463fd9b84b9dcc9685efd80ea701aa8f7b3decb3b3ce795ed67737dbec", + "rubocop-1.70.0": "96751f8440b36a0ac6e9a8ab596900803118d83d6b83f2037bf8b3d7a5bc440e", + "rubocop-ast-1.37.0": "9513ac88aaf113d04b52912533ffe46475de1362d4aa41141b51b2455827c080", "rubocop-capybara-2.21.0": "5d264efdd8b6c7081a3d4889decf1451a1cfaaec204d81534e236bc825b280ab", "rubocop-factory_bot-2.26.1": "8de13cd4edcee5ca800f255188167ecef8dbfc3d1fae9f15734e9d2e755392aa", - "rubocop-performance-1.23.0": "34ae78cb1bc5f1a0b34a34a1f9f6eec2cb8b8b9cafa2ce37982021e86fa49171", + "rubocop-performance-1.23.1": "f22f86a795f5e6a6180aac2c6fc172534b173a068d6ed3396d6460523e051b82", "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.2": "e8b2ffa651dfbbb26eb4bfb8ddcfff94221a93e3f118f39e0f7f94c14fea9dc0", + "rubyzip-2.4.1": "8577c88edc1fde8935eb91064c5cb1aef9ad5494b940cf19c775ee833e075615", + "securerandom-0.4.1": "cc5193d414a4341b6e225f0cb4446aceca8e50d5e1888743fac16987638ea0b1", "steep-1.5.3": "7c6302a4d5932d0a46176ebc79766e52b853c223a85525aa2f8911e345123b85", "stringio-3.1.2": "204f1828f85cdb39d57cac4abc6dc44b04505a223f131587f2e20ae3729ba131", - "strscan-3.1.0": "01b8a81d214fbf7b5308c6fb51b5972bbfc4a6aa1f166fd3618ba97e0fcd5555", - "strscan-3.1.0-java": "8645aa76e017e21764c6df572d2d79fcc1672284014f5bdbd806278cdbcd11b0", + "strscan-3.1.2": "5529ff36c95fe752b8489f2e6c7f4f230fd9904e0b24fdc6e0833436c63ee2e3", + "strscan-3.1.2-java": "4e9379df974b1af28d1bc1bc845ebb7e2bb21a7f9948ac99e1a8c5479881ecec", "terminal-table-3.0.2": "f951b6af5f3e00203fb290a669e0a85c5dd5b051b3b023392ccfd67ba5abae91", "tzinfo-2.0.6": "8daf828cc77bcf7d63b0e3bdb6caa47e2272dcfaf4fbfe46f8c3a9df087a829b", "unicode-display_width-2.6.0": "12279874bba6d5e4d2728cef814b19197dbb10d7a7837a869bab65da943b7f5a", "webmock-3.24.0": "be01357f6fc773606337ca79f3ba332b7d52cbe5c27587671abc0572dbec7122", - "webrick-1.9.0": "9ee50c57006489960b2a07544f68de6f23dfbee30e7b424167b5c14b72ace964", + "webrick-1.9.1": "b42d3c94f166f3fb73d87e9b359def9b5836c426fc8beacf38f2184a21b2a989", "websocket-1.2.11": "b7e7a74e2410b5e85c25858b26b3322f29161e300935f70a0e0d3c35e0462737", "yard-0.9.37": "a6e910399e78e613f80ba9add9ba7c394b1a935f083cccbef82903a3d2a26992", }, diff --git a/Rakefile b/Rakefile index a03e7228e2856..02e5db7d35c88 100644 --- a/Rakefile +++ b/Rakefile @@ -98,7 +98,7 @@ 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/v131:v131.publish - //java/src/org/openqa/selenium/devtools/v129:v129.publish + //java/src/org/openqa/selenium/devtools/v132:v132.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 diff --git a/common/devtools/chromium/v129/BUILD.bazel b/common/devtools/chromium/v132/BUILD.bazel similarity index 100% rename from common/devtools/chromium/v129/BUILD.bazel rename to common/devtools/chromium/v132/BUILD.bazel diff --git a/common/devtools/chromium/v129/browser_protocol.pdl b/common/devtools/chromium/v132/browser_protocol.pdl similarity index 98% rename from common/devtools/chromium/v129/browser_protocol.pdl rename to common/devtools/chromium/v132/browser_protocol.pdl index 3a8d01b4b95e8..0f4ac014b69a6 100644 --- a/common/devtools/chromium/v129/browser_protocol.pdl +++ b/common/devtools/chromium/v132/browser_protocol.pdl @@ -117,6 +117,7 @@ experimental domain Accessibility # - from 'activedescendant' to 'owns' - relationships between elements other than parent/child/sibling. type AXPropertyName extends string enum + actions busy disabled editable @@ -517,6 +518,8 @@ experimental domain Audits ExcludeDomainNonASCII ExcludeThirdPartyCookieBlockedInFirstPartySet ExcludeThirdPartyPhaseout + ExcludePortMismatch + ExcludeSchemeMismatch type CookieWarningReason extends string enum @@ -532,6 +535,8 @@ experimental domain Audits WarnDomainNonASCII WarnThirdPartyPhaseout WarnCrossSiteRedirectDowngradeChangesInclusion + WarnDeprecationTrialMetadata + WarnThirdPartyCookieHeuristic type CookieOperation extends string enum @@ -743,6 +748,7 @@ experimental domain Audits NoRegisterTriggerHeader NoRegisterOsSourceHeader NoRegisterOsTriggerHeader + NavigationRegistrationUniqueScopeAlreadySet type SharedDictionaryError extends string enum @@ -915,7 +921,7 @@ experimental domain Audits ThirdPartyCookiesBlocked NotSignedInWithIdp MissingTransientUserActivation - ReplacedByButtonMode + ReplacedByActiveMode InvalidFieldsSpecified RelyingPartyOriginIsOpaque TypeNotMatching @@ -1392,6 +1398,7 @@ domain Browser videoCapturePanTiltZoom wakeLockScreen wakeLockSystem + webAppInstallation windowManagement experimental type PermissionSetting extends string @@ -1794,6 +1801,9 @@ experimental domain CSS experimental optional array of CSSScope scopes # The array keeps the types of ancestor CSSRules from the innermost going outwards. experimental optional array of CSSRuleType ruleTypes + # @starting-style CSS at-rule array. + # The array enumerates @starting-style at-rules starting with the innermost one, going outwards. + experimental optional array of CSSStartingStyle startingStyles # Enum indicating the type of a CSS rule, used to represent the order of a style rule's ancestors. # This list only contains rule types that are collected during the ancestor rule collection. @@ -1805,6 +1815,7 @@ experimental domain CSS LayerRule ScopeRule StyleRule + StartingStyleRule # CSS coverage information. type RuleUsage extends object @@ -1947,6 +1958,8 @@ experimental domain CSS optional DOM.PhysicalAxes physicalAxes # Optional logical axes queried for the container. optional DOM.LogicalAxes logicalAxes + # true if the query contains scroll-state() queries. + optional boolean queriesScrollState # CSS Supports at-rule descriptor. experimental type CSSSupports extends object @@ -1983,6 +1996,15 @@ experimental domain CSS # Identifier of the stylesheet containing this object (if exists). optional StyleSheetId styleSheetId + # CSS Starting Style at-rule descriptor. + experimental type CSSStartingStyle extends object + properties + # The associated rule header range in the enclosing stylesheet (if + # available). + optional SourceRange range + # Identifier of the stylesheet containing this object (if exists). + optional StyleSheetId styleSheetId + # CSS Layer data. experimental type CSSLayerData extends object properties @@ -2297,6 +2319,16 @@ experimental domain CSS returns array of SourceRange ranges + # Starts tracking the given node for the computed style updates + # and whenever the computed style is updated for node, it queues + # a `computedStyleUpdated` event with throttling. + # There can only be 1 node tracked for computed style updates + # so passing a new node id removes tracking from the previous node. + # Pass `undefined` to disable tracking. + experimental command trackComputedStyleUpdatesForNode + parameters + optional DOM.NodeId nodeId + # Starts tracking the given computed styles for updates. The specified array of properties # replaces the one previously specified. Pass empty array to disable tracking. # Use takeComputedStyleUpdates to retrieve the list of nodes that had properties modified. @@ -2464,6 +2496,11 @@ experimental domain CSS # Identifier of the removed stylesheet. StyleSheetId styleSheetId + experimental event computedStyleUpdated + parameters + # The node id that has updated computed styles. + DOM.NodeId nodeId + experimental domain CacheStorage depends on Storage @@ -2673,10 +2710,13 @@ domain DOM enum first-line first-letter + check before after + select-arrow marker backdrop + column selection search-text target-text @@ -2701,6 +2741,10 @@ domain DOM view-transition-image-pair view-transition-old view-transition-new + placeholder + file-selector-button + details-content + picker # Shadow root type. type ShadowRootType extends string @@ -2805,6 +2849,7 @@ 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 @@ -3376,15 +3421,17 @@ domain DOM optional NodeId nodeId # Returns the query container of the given node based on container query - # conditions: containerName, physical, and logical axes. If no axes are - # provided, the style container is returned, which is the direct parent or the - # closest element with a matching container-name. + # conditions: containerName, physical and logical axes, and whether it queries + # scroll-state. If no axes are provided and queriesScrollState is false, the + # style container is returned, which is the direct parent or the closest + # element with a matching container-name. experimental command getContainerForNode parameters NodeId nodeId optional string containerName optional PhysicalAxes physicalAxes optional LogicalAxes logicalAxes + optional boolean queriesScrollState returns # The container node for the given node, or null if not found. optional NodeId nodeId @@ -3494,6 +3541,14 @@ domain DOM # Called when top layer elements are changed. experimental event topLayerElementsUpdated + # Fired when a node's scrollability state changes. + experimental event scrollableFlagUpdated + parameters + # The id of the node. + DOM.NodeId nodeId + # If the node is scrollable. + boolean isScrollable + # Called when a pseudo element is removed from an element. experimental event pseudoElementRemoved parameters @@ -4203,7 +4258,6 @@ domain Emulation gyroscope linear-acceleration magnetometer - proximity relative-orientation experimental type SensorMetadata extends object @@ -5522,12 +5576,21 @@ experimental domain Memory moderate critical + # Retruns current DOM object counters. command getDOMCounters returns integer documents integer nodes integer jsEventListeners + # Retruns DOM object counters after preparing renderer for leak detection. + command getDOMCountersForLeakDetection + returns + # DOM object counters. + array of DOMCounter counters + + # Prepares for leak detection by terminating workers, stopping spellcheckers, + # dropping non-essential internal caches, running garbage collections, etc. command prepareForLeakDetection # Simulate OomIntervention by purging V8 memory. @@ -5603,6 +5666,15 @@ experimental domain Memory # Size of the module in bytes. number size + # DOM object counter data. + type DOMCounter extends object + properties + # Object name. Note: object names should be presumed volatile and clients should not expect + # the returned names to be consistent across runs. + string name + # Object count. + integer count + # Network domain allows tracking network activities of the page. It exposes information about http, # file, data and other requests and responses, their headers, bodies, timing, etc. domain Network @@ -5635,7 +5707,9 @@ domain Network # Unique loader identifier. type LoaderId extends string - # Unique request identifier. + # Unique network request identifier. + # Note that this does not identify individual HTTP requests that are part of + # a network request. type RequestId extends string # Unique intercepted request identifier. @@ -6149,6 +6223,7 @@ domain Network preflight other # Initiator JavaScript stack trace, set for Script only. + # Requires the Debugger domain to be enabled. optional Runtime.StackTrace stack # Initiator URL, set for Parser type or for Script type (when script is importing module) or for SignedExchange type. optional string url @@ -6328,6 +6403,10 @@ domain Network # The cookie's name/value pair size exceeded the size limit defined in # RFC6265bis. NameValuePairExceedsMaxSize + # The cookie's source port value does not match the request origin's port. + PortMismatch + # The cookie's source scheme value does not match the request origin's scheme. + SchemeMismatch # Types of reasons why a cookie should have been blocked by 3PCD but is exempted for the request. experimental type CookieExemptionReason extends string @@ -6340,6 +6419,8 @@ domain Network TPCDMetadata # The cookie should have been blocked by 3PCD but is exempted by Deprecation Trial mitigation. TPCDDeprecationTrial + # The cookie should have been blocked by 3PCD but is exempted by Top-level Deprecation Trial mitigation. + TopLevelTPCDDeprecationTrial # The cookie should have been blocked by 3PCD but is exempted by heuristics mitigation. TPCDHeuristics # The cookie should have been blocked by 3PCD but is exempted by Enterprise Policy. @@ -6348,8 +6429,6 @@ domain Network StorageAccess # The cookie should have been blocked by 3PCD but is exempted by Top-level Storage Access API. 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 @@ -7888,8 +7967,8 @@ experimental domain Overlay # True for showing hit-test borders boolean show - # Request that backend shows an overlay with web vital metrics. - command setShowWebVitals + # Deprecated, no longer has any effect. + deprecated command setShowWebVitals parameters boolean show @@ -8048,15 +8127,18 @@ domain Page clipboard-read clipboard-write compute-pressure + controlled-frame cross-origin-isolated deferred-fetch digital-credentials-get direct-sockets + direct-sockets-private display-capture document-domain encrypted-media execution-while-out-of-viewport execution-while-not-rendered + fenced-unpartitioned-storage-read focus-without-user-activation fullscreen frobulate @@ -8077,6 +8159,7 @@ domain Page otp-credentials payment picture-in-picture + popins private-aggregation private-state-token-issuance private-state-token-redemption @@ -8097,6 +8180,7 @@ domain Page usb usb-unrestricted vertical-scroll + web-app-installation web-printing web-share window-management @@ -9196,6 +9280,13 @@ domain Page # A new frame target will be created (see Target.attachedToTarget). swap + # Fired before frame subtree is detached. Emitted before any frame of the + # subtree is actually detached. + experimental event frameSubtreeWillBeDetached + parameters + # Id of the frame that is the root of the subtree that will be detached. + FrameId frameId + # The type of a frameNavigated event. experimental type NavigationType extends string enum @@ -9316,7 +9407,8 @@ domain Page # Default dialog prompt. optional string defaultPrompt - # Fired for top level page lifecycle events such as navigation, load, paint, etc. + # Fired for lifecycle events (navigation, load, paint, etc) in the current + # target (including local frames). event lifecycleEvent parameters # Id of the frame. @@ -9453,6 +9545,7 @@ domain Page ContentWebUSB ContentMediaSessionService ContentScreenReader + ContentDiscarded # See components/back_forward_cache/back_forward_cache_disable.h for explanations. EmbedderPopupBlockerTabHelper @@ -9471,6 +9564,7 @@ domain Page EmbedderExtensionMessagingForOpenPort EmbedderExtensionSentMessageToCachedFrame RequestedByWebViewClient + PostMessageByWebViewClient # Types of not restored reasons for back-forward cache. experimental type BackForwardCacheNotRestoredReasonType extends string @@ -10636,6 +10730,14 @@ experimental domain Storage array of AttributionReportingAggregatableDebugReportingData debugData optional string aggregationCoordinatorOrigin + experimental type AttributionScopesData extends object + properties + array of string values + # number instead of integer because not all uint32 can be represented by + # int + number limit + number maxEventStates + experimental type AttributionReportingSourceRegistration extends object properties Network.TimeSinceEpoch time @@ -10656,6 +10758,8 @@ experimental domain Storage AttributionReportingTriggerDataMatching triggerDataMatching SignedInt64AsBase10 destinationLimitPriority AttributionReportingAggregatableDebugReportingConfig aggregatableDebugReportingConfig + optional AttributionScopesData scopesData + integer maxEventLevelReports experimental type AttributionReportingSourceRegistrationResult extends string enum @@ -10671,7 +10775,9 @@ experimental domain Storage destinationBothLimitsReached reportingOriginsPerSiteLimitReached exceedsMaxChannelCapacity + exceedsMaxScopesChannelCapacity exceedsMaxTriggerStateCardinality + exceedsMaxEventStatesLimit destinationPerDayReportingLimitReached experimental event attributionReportingSourceRegistered @@ -10730,6 +10836,7 @@ experimental domain Storage AttributionReportingSourceRegistrationTimeConfig sourceRegistrationTimeConfig optional string triggerContextId AttributionReportingAggregatableDebugReportingConfig aggregatableDebugReportingConfig + array of string scopes experimental type AttributionReportingEventLevelResult extends string enum @@ -10763,6 +10870,7 @@ experimental domain Storage excessiveReportingOrigins noHistograms insufficientBudget + insufficientNamedBudget noMatchingSourceFilterData notRegistered prohibitedByBrowserPolicy @@ -11401,6 +11509,8 @@ domain Fetch depends on Page # Unique request identifier. + # Note that this does not identify individual HTTP requests that are part of + # a network request. type RequestId extends string # Stages of the request to handle. Request will intercept before the request is @@ -11657,6 +11767,7 @@ experimental domain WebAudio suspended running closed + interrupted # Enum of AudioNode types type NodeType extends string @@ -11932,6 +12043,13 @@ experimental domain WebAuthn # flag set to this value. Defaults to the authenticator's # defaultBackupState value. optional boolean backupState + # The credential's user.name property. Equivalent to empty if not set. + # https://w3c.github.io/webauthn/#dom-publickeycredentialentity-name + optional string userName + # The credential's user.displayName property. Equivalent to empty if + # not set. + # https://w3c.github.io/webauthn/#dom-publickeycredentialuserentity-displayname + optional string userDisplayName # Enable the WebAuthn domain and start intercepting credential storage and # retrieval with a virtual authenticator. @@ -12035,6 +12153,20 @@ experimental domain WebAuthn AuthenticatorId authenticatorId Credential credential + # Triggered when a credential is deleted, e.g. through + # PublicKeyCredential.signalUnknownCredential(). + event credentialDeleted + parameters + AuthenticatorId authenticatorId + binary credentialId + + # Triggered when a credential is updated, e.g. through + # PublicKeyCredential.signalCurrentUserDetails(). + event credentialUpdated + parameters + AuthenticatorId authenticatorId + Credential credential + # Triggered when a credential is used in a webauthn assertion. event credentialAsserted parameters @@ -12348,6 +12480,8 @@ experimental domain Preload WindowClosed SlowNetwork OtherPrerenderedPageActivated + V8OptimizerDisabled + PrerenderFailedDuringPrefetch # Fired when a preload enabled state is updated. event preloadEnabledStateUpdated @@ -12381,7 +12515,6 @@ experimental domain Preload PrefetchFailedMIMENotSupported PrefetchFailedNetError PrefetchFailedNon2XX - PrefetchFailedPerPageLimitExceeded PrefetchEvictedAfterCandidateRemoved PrefetchEvictedForNewerPrefetch PrefetchHeldback diff --git a/common/devtools/chromium/v129/js_protocol.pdl b/common/devtools/chromium/v132/js_protocol.pdl similarity index 99% rename from common/devtools/chromium/v129/js_protocol.pdl rename to common/devtools/chromium/v132/js_protocol.pdl index 8dad9c98de9f6..b96102b7f8f79 100644 --- a/common/devtools/chromium/v129/js_protocol.pdl +++ b/common/devtools/chromium/v132/js_protocol.pdl @@ -369,6 +369,14 @@ domain Debugger # call stacks (default). integer maxDepth + # Replace previous blackbox execution contexts with passed ones. Forces backend to skip + # stepping/pausing in scripts in these execution contexts. VM will try to leave blackboxed script by + # performing 'step in' several times, finally resorting to 'step out' if unsuccessful. + experimental command setBlackboxExecutionContexts + parameters + # Array of execution context unique ids for the debugger to ignore. + array of string uniqueIds + # Replace previous blackbox patterns with passed ones. Forces backend to skip stepping/pausing in # scripts with url matching one of the patterns. VM will try to leave blackboxed script by # performing 'step in' several times, finally resorting to 'step out' if unsuccessful. @@ -376,6 +384,8 @@ domain Debugger parameters # Array of regexps that will be used to check script url for blackbox state. array of string patterns + # If true, also ignore scripts with no source url. + optional boolean skipAnonymous # Makes backend skip steps in the script in blackboxed ranges. VM will try leave blacklisted # scripts by performing 'step in' several times, finally resorting to 'step out' if unsuccessful. @@ -606,7 +616,6 @@ domain Debugger properties # Type of the debug symbols. enum type - None SourceMap EmbeddedDWARF ExternalDWARF @@ -689,8 +698,8 @@ domain Debugger experimental optional integer codeOffset # The language of the script. experimental optional Debugger.ScriptLanguage scriptLanguage - # If the scriptLanguage is WebASsembly, the source of debug symbols for the module. - experimental optional Debugger.DebugSymbols debugSymbols + # If the scriptLanguage is WebAssembly, the source of debug symbols for the module. + experimental optional array of Debugger.DebugSymbols debugSymbols # The name the embedder supplied for this script. experimental optional string embedderName diff --git a/common/repositories.bzl b/common/repositories.bzl index 519f86f933c93..f760eda81d330 100644 --- a/common/repositories.bzl +++ b/common/repositories.bzl @@ -11,8 +11,8 @@ def pin_browsers(): http_archive( name = "linux_firefox", - url = "https://ftp.mozilla.org/pub/firefox/releases/133.0.3/linux-x86_64/en-US/firefox-133.0.3.tar.bz2", - sha256 = "43713e238d0153fdbf1ab46dd76c6b01ab83fae197b5dc3a95087f51907ba44d", + url = "https://ftp.mozilla.org/pub/firefox/releases/134.0.1/linux-x86_64/en-US/firefox-134.0.1.tar.bz2", + sha256 = "81951a7cbe64a63455640919aecced8eef9c7af0c3704aa75995981fa9a4ae7c", build_file_content = """ load("@aspect_rules_js//js:defs.bzl", "js_library") package(default_visibility = ["//visibility:public"]) @@ -33,8 +33,8 @@ js_library( dmg_archive( name = "mac_firefox", - url = "https://ftp.mozilla.org/pub/firefox/releases/133.0.3/mac/en-US/Firefox%20133.0.3.dmg", - sha256 = "9ceb4fa2120228f287e6c654cef7898b4cce0a659270056276b8884581267d3b", + url = "https://ftp.mozilla.org/pub/firefox/releases/134.0.1/mac/en-US/Firefox%20134.0.1.dmg", + sha256 = "b3342c12bb44b7c78351fb32442a0775c15fb2ac809c24447fd8f8d1e2a42c62", build_file_content = """ load("@aspect_rules_js//js:defs.bzl", "js_library") package(default_visibility = ["//visibility:public"]) @@ -50,8 +50,8 @@ js_library( http_archive( name = "linux_beta_firefox", - url = "https://ftp.mozilla.org/pub/firefox/releases/134.0b10/linux-x86_64/en-US/firefox-134.0b10.tar.bz2", - sha256 = "b933fec8e13c6a1ad42053881f9210aedd22c51d303bd41b1402f0f7db43a1ab", + url = "https://ftp.mozilla.org/pub/firefox/releases/135.0b6/linux-x86_64/en-US/firefox-135.0b6.tar.xz", + sha256 = "104ae2f77c52f428ca0e037b0167e147d508b822e77543b26530dbef6764a018", build_file_content = """ load("@aspect_rules_js//js:defs.bzl", "js_library") package(default_visibility = ["//visibility:public"]) @@ -72,8 +72,8 @@ js_library( dmg_archive( name = "mac_beta_firefox", - url = "https://ftp.mozilla.org/pub/firefox/releases/134.0b10/mac/en-US/Firefox%20134.0b10.dmg", - sha256 = "d6e74c4f89b4a6d2c0cd81f322ffc45c1e8b391d646fbc61533fc618b8f12ead", + url = "https://ftp.mozilla.org/pub/firefox/releases/135.0b6/mac/en-US/Firefox%20135.0b6.dmg", + sha256 = "13f82e6220312b602481ec5a0d33ffc7c826913efb73f0cf8fdbc8b0482cd9b0", build_file_content = """ load("@aspect_rules_js//js:defs.bzl", "js_library") package(default_visibility = ["//visibility:public"]) @@ -123,10 +123,10 @@ js_library( pkg_archive( name = "mac_edge", - url = "https://msedge.sf.dl.delivery.mp.microsoft.com/filestreamingservice/files/3e7ebcc4-eac0-41fe-b43b-4d1aa1ba237c/MicrosoftEdge-131.0.2903.112.pkg", - sha256 = "648233d6654a3b0a9b651f31c33260125b6410e956b698970b8b789ad4fa7d16", + url = "https://msedge.sf.dl.delivery.mp.microsoft.com/filestreamingservice/files/a9f2bcf0-b4b2-447e-8dd6-bcdc4d130efb/MicrosoftEdge-132.0.2957.115.pkg", + sha256 = "8575a36cf7ec619d08dd8c5c19378c461b3d4e56134d4c9c43b8611ecd2d4275", move = { - "MicrosoftEdge-131.0.2903.112.pkg/Payload/Microsoft Edge.app": "Edge.app", + "MicrosoftEdge-132.0.2957.115.pkg/Payload/Microsoft Edge.app": "Edge.app", }, build_file_content = """ load("@aspect_rules_js//js:defs.bzl", "js_library") @@ -143,8 +143,8 @@ js_library( deb_archive( name = "linux_edge", - url = "https://packages.microsoft.com/repos/edge/pool/main/m/microsoft-edge-stable/microsoft-edge-stable_131.0.2903.112-1_amd64.deb", - sha256 = "e2a40d728057392e14cfe311e2322d3a072730aa81e89e78d5cbeb6f999dfe87", + url = "https://packages.microsoft.com/repos/edge/pool/main/m/microsoft-edge-stable/microsoft-edge-stable_132.0.2957.115-1_amd64.deb", + sha256 = "a20395d9ebc61fee423fb37e3d59ba92e443883525f3c4dbff962af3fc691399", build_file_content = """ load("@aspect_rules_js//js:defs.bzl", "js_library") package(default_visibility = ["//visibility:public"]) @@ -165,8 +165,8 @@ js_library( http_archive( name = "linux_edgedriver", - url = "https://msedgedriver.azureedge.net/131.0.2903.112/edgedriver_linux64.zip", - sha256 = "1a262ac6b21d6c59e94b23dd6674d050e570b239f008d31c4701a009e759333f", + url = "https://msedgedriver.azureedge.net/132.0.2957.115/edgedriver_linux64.zip", + sha256 = "2daa2453c20525165f6e58d78837faa4c20427bd28070730c30990f37d4a9f09", build_file_content = """ load("@aspect_rules_js//js:defs.bzl", "js_library") package(default_visibility = ["//visibility:public"]) @@ -182,8 +182,8 @@ js_library( http_archive( name = "mac_edgedriver", - url = "https://msedgedriver.azureedge.net/131.0.2903.112/edgedriver_mac64.zip", - sha256 = "55c3a1445a72dfad0be7285dae3e36540d8eb22f9fd69f4abfdc35370b1f1440", + url = "https://msedgedriver.azureedge.net/132.0.2957.115/edgedriver_mac64.zip", + sha256 = "e4e0615b5258dbae239b24f860000bef1d3b643b23b0b9a4cd2f9252a39b9c2b", build_file_content = """ load("@aspect_rules_js//js:defs.bzl", "js_library") package(default_visibility = ["//visibility:public"]) @@ -199,8 +199,8 @@ js_library( http_archive( name = "linux_chrome", - url = "https://storage.googleapis.com/chrome-for-testing-public/131.0.6778.204/linux64/chrome-linux64.zip", - sha256 = "fba7d5e87cdcf0dc974c9ac8a0a9dbcf5686c935455d5e6beed337c6ada88bc2", + url = "https://storage.googleapis.com/chrome-for-testing-public/132.0.6834.83/linux64/chrome-linux64.zip", + sha256 = "0d49da7cc88c8fe87ba6fada58a2bf9e9ff233601a1cbe99cb61e45c8c785072", build_file_content = """ load("@aspect_rules_js//js:defs.bzl", "js_library") package(default_visibility = ["//visibility:public"]) @@ -221,8 +221,8 @@ js_library( http_archive( name = "mac_chrome", - url = "https://storage.googleapis.com/chrome-for-testing-public/131.0.6778.204/mac-x64/chrome-mac-x64.zip", - sha256 = "c964e23fe9793e82bcf98b2e90e92862b6dae823a5819c05ee0d5fa511c60684", + url = "https://storage.googleapis.com/chrome-for-testing-public/132.0.6834.83/mac-x64/chrome-mac-x64.zip", + sha256 = "07ff97f6a31b7b9af7d6b9d23dbe94815d579410594a79d6432242983b686a0d", strip_prefix = "chrome-mac-x64", patch_cmds = [ "mv 'Google Chrome for Testing.app' Chrome.app", @@ -243,8 +243,8 @@ js_library( http_archive( name = "linux_chromedriver", - url = "https://storage.googleapis.com/chrome-for-testing-public/131.0.6778.204/linux64/chromedriver-linux64.zip", - sha256 = "7a444e38b944dee838f6063712382c3dff7ccae395821dbb9dbde28ec5d08468", + url = "https://storage.googleapis.com/chrome-for-testing-public/132.0.6834.83/linux64/chromedriver-linux64.zip", + sha256 = "315a56d7216a052a4727fec67d3d72a02260c0e54dc11a16c0b94029324b7d3f", strip_prefix = "chromedriver-linux64", build_file_content = """ load("@aspect_rules_js//js:defs.bzl", "js_library") @@ -261,8 +261,8 @@ js_library( http_archive( name = "mac_chromedriver", - url = "https://storage.googleapis.com/chrome-for-testing-public/131.0.6778.204/mac-x64/chromedriver-mac-x64.zip", - sha256 = "5dcaf1bbc39d06eb7c2b5a8a2c43946d6d785648e1b392267790d11bc5a119d9", + url = "https://storage.googleapis.com/chrome-for-testing-public/132.0.6834.83/mac-x64/chromedriver-mac-x64.zip", + sha256 = "5a4a646a6a2b41ff0453a598a874cb26fe197e2544e7f35cfb2b2fe410098e2d", strip_prefix = "chromedriver-mac-x64", build_file_content = """ load("@aspect_rules_js//js:defs.bzl", "js_library") diff --git a/common/selenium_manager.bzl b/common/selenium_manager.bzl index 79d240b28c204..7474f4e013967 100644 --- a/common/selenium_manager.bzl +++ b/common/selenium_manager.bzl @@ -6,22 +6,22 @@ def selenium_manager(): http_file( name = "download_sm_linux", executable = True, - sha256 = "8fa14a9c6e36de33485d69915861fe6d459f854f56d4b70e7f07f1783c4f4f08", - url = "https://github.com/SeleniumHQ/selenium_manager_artifacts/releases/download/selenium-manager-694e399/selenium-manager-linux", + sha256 = "8788f16e136171dd78520849c4d4d39d0d3f536604deec8f07171a2b7f0bb258", + url = "https://github.com/SeleniumHQ/selenium_manager_artifacts/releases/download/selenium-manager-a0ced92/selenium-manager-linux", ) http_file( name = "download_sm_macos", executable = True, - sha256 = "c3c08dd30bb2ede7996574be09aeac2d452bf232b9f0d77568765adeac1f2af9", - url = "https://github.com/SeleniumHQ/selenium_manager_artifacts/releases/download/selenium-manager-694e399/selenium-manager-macos", + sha256 = "879cd6226bf24524e389fb8f044e5351a38c50083bd6d529dc0a8f8d9f13cc91", + url = "https://github.com/SeleniumHQ/selenium_manager_artifacts/releases/download/selenium-manager-a0ced92/selenium-manager-macos", ) http_file( name = "download_sm_windows", executable = True, - sha256 = "b7f87a63eb197a8e3a85d553755fec79a259f57c1216169e2377db2b89bc6b8b", - url = "https://github.com/SeleniumHQ/selenium_manager_artifacts/releases/download/selenium-manager-694e399/selenium-manager-windows.exe", + sha256 = "746b57eadbd3fe5439c8adea811ed36c4977ee359c7e1caddc3e0a7a6dcfbed1", + url = "https://github.com/SeleniumHQ/selenium_manager_artifacts/releases/download/selenium-manager-a0ced92/selenium-manager-windows.exe", ) def _selenium_manager_artifacts_impl(_ctx): diff --git a/dotnet/CHANGELOG b/dotnet/CHANGELOG index d0ead0419bcf8..7407434f7c610 100644 --- a/dotnet/CHANGELOG +++ b/dotnet/CHANGELOG @@ -1,3 +1,47 @@ +v4.28.0 +====== +* Add CDP for Chrome 132 and remove 129 +* [dotnet] Add nullability annotations to print types (#14773) +* [dotnet] Propagate `IWebDriver.GetAttribute` obsoletion to `WebDriver` (#14802) +* [dotnet] Add nullability annotations to `ShadowRoot` (#14812) +* [dotnet] Fix `WebDriver.AuthenticatorId` to return proper state set by user (#14814) +* [dotnet] Add future-proofing note on `Base64UrlEncoder` (#14821) +* Run update_copyright script. No logical changes +* [dotnet] Add nullable reference annotations to `Platform` (#14834) +* [dotnet] Fix Virtual Authenticator removal, annotate NRT (#14822) +* [dotnet] Annotate Nullable Reference Types on `OpenQA.Selenium.Internal` (#14840) +* [dotnet] Annotate nullable reference types in internal logging (#14819) +* [dotnet] Address warnings with `ActionSequence.inputDevice` and use proper alternative (#14848) +* [dotnet] Add nullability annotations to `Proxy` (#14861) +* [dotnet] Modernize `Response` type (#14839) +* [dotnet] Add nullability to Logs API (#14875) +* [dotnet] Add nullability to `CookieJar` (#14874) +* [dotnet] Refactor away private constructor from `Response` (#14877) +* [dotnet] Add nullability to `Alert`s (#14669) +* [dotnet] [bidi] Convert RemoteRefrence to an interface +* [dotnet] [bidi] Convert RemoteObjectReference to an interface +* [dotnet] [bidi] Fix name of autodetect proxy configuration +* [dotnet] [cdp] Add more internal logs around CDP implementation (Related to #14903) +* [dotnet] Add nullability annotations to `SessionId` (#14841) +* [dotnet] Align WebDriver errors with specification (#14936) +* [dotnet] Add nullability to `IniFileReader` (#14929) +* [dotnet] Annotate nullability on command repository (#14888) +* [dotnet] Revert deprecation of GetAttribute method (#14956) +* [dotnet] Annotate `DriverServiceCommandExecutor` for nullability (#14942) +* [dotnet] Do not intercept exceptions from `ICommandExecutor.ExecuteAsync` (#14892) +* [dotnet] Move `Response` constructors towards immutability (#14998) +* [dotnet] Switch DevTools response JSON parsing to `JsonElement` (#14990) +* [dotnet] Utilize dedicated WebDriver Spec endpoint to get named cookie (#14957) +* [dotnet] Tolerate invalid UTF-16 strings in DevTools JSON response (#14972) +* [dotnet] Fix logging issue when log context level conflicts with logger already captured level (#15057) +* [dotnet] Safari driver supports /status endpoint (#15066) +* [dotnet] Simplify nuget package readme code example +* [dotnet] Guard for cookie deletion when name is empty (#15074) +* [dotnet] Add nullability to `FirefoxExtension` (#14964) +* [dotnet] Start adding nullable reference type annotations to the `Support` package (#14779) +* [dotnet] Finish nullability annotations on `Support` package (#15089) +* Update supported versions for Chrome DevTools + v4.27.0 ====== * Copyright dotnet (#13522) diff --git a/dotnet/selenium-dotnet-version.bzl b/dotnet/selenium-dotnet-version.bzl index cb2640bcfe884..b03c4dc6ca06a 100644 --- a/dotnet/selenium-dotnet-version.bzl +++ b/dotnet/selenium-dotnet-version.bzl @@ -1,13 +1,13 @@ # BUILD FILE SYNTAX: STARLARK -SE_VERSION = "4.28.0-nightly202411252021" +SE_VERSION = "4.28.0" ASSEMBLY_VERSION = "4.0.0.0" SUPPORTED_NET_STANDARD_VERSIONS = ["netstandard2.0"] SUPPORTED_DEVTOOLS_VERSIONS = [ "v85", "v131", - "v129", + "v132", "v130", ] diff --git a/dotnet/src/webdriver/DevTools/DevToolsDomains.cs b/dotnet/src/webdriver/DevTools/DevToolsDomains.cs index 81bb52e829206..2cc4c6271c818 100644 --- a/dotnet/src/webdriver/DevTools/DevToolsDomains.cs +++ b/dotnet/src/webdriver/DevTools/DevToolsDomains.cs @@ -38,7 +38,7 @@ public abstract class DevToolsDomains private static readonly Dictionary SupportedDevToolsVersions = new Dictionary() { { 130, typeof(V130.V130Domains) }, - { 129, typeof(V129.V129Domains) }, + { 132, typeof(V132.V132Domains) }, { 131, typeof(V131.V131Domains) }, { 85, typeof(V85.V85Domains) } }; diff --git a/dotnet/src/webdriver/DevTools/v129/V129Domains.cs b/dotnet/src/webdriver/DevTools/v132/V132Domains.cs similarity index 78% rename from dotnet/src/webdriver/DevTools/v129/V129Domains.cs rename to dotnet/src/webdriver/DevTools/v132/V132Domains.cs index 0a657de1aff99..e213729809e8d 100644 --- a/dotnet/src/webdriver/DevTools/v129/V129Domains.cs +++ b/dotnet/src/webdriver/DevTools/v132/V132Domains.cs @@ -1,4 +1,4 @@ -// +// // Licensed to the Software Freedom Conservancy (SFC) under one // or more contributor license agreements. See the NOTICE file // distributed with this work for additional information @@ -17,20 +17,20 @@ // under the License. // -namespace OpenQA.Selenium.DevTools.V129 +namespace OpenQA.Selenium.DevTools.V132 { /// - /// Class containing the domain implementation for version 129 of the DevTools Protocol. + /// Class containing the domain implementation for version 132 of the DevTools Protocol. /// - public class V129Domains : DevToolsDomains + public class V132Domains : DevToolsDomains { private DevToolsSessionDomains domains; /// - /// Initializes a new instance of the V129Domains class. + /// Initializes a new instance of the V132Domains class. /// /// The DevToolsSession to use with this set of domains. - public V129Domains(DevToolsSession session) + public V132Domains(DevToolsSession session) { this.domains = new DevToolsSessionDomains(session); } @@ -38,7 +38,7 @@ public V129Domains(DevToolsSession session) /// /// Gets the DevTools Protocol version for which this class is valid. /// - public static int DevToolsVersion => 129; + public static int DevToolsVersion => 132; /// /// Gets the version-specific domains for the DevTools session. This value must be cast to a version specific type to be at all useful. @@ -48,21 +48,21 @@ public V129Domains(DevToolsSession session) /// /// Gets the object used for manipulating network information in the browser. /// - public override DevTools.Network Network => new V129Network(domains.Network, domains.Fetch); + public override DevTools.Network Network => new V132Network(domains.Network, domains.Fetch); /// /// Gets the object used for manipulating the browser's JavaScript execution. /// - public override JavaScript JavaScript => new V129JavaScript(domains.Runtime, domains.Page); + public override JavaScript JavaScript => new V132JavaScript(domains.Runtime, domains.Page); /// /// Gets the object used for manipulating DevTools Protocol targets. /// - public override DevTools.Target Target => new V129Target(domains.Target); + public override DevTools.Target Target => new V132Target(domains.Target); /// /// Gets the object used for manipulating the browser's logs. /// - public override DevTools.Log Log => new V129Log(domains.Log); + public override DevTools.Log Log => new V132Log(domains.Log); } } diff --git a/dotnet/src/webdriver/DevTools/v129/V129JavaScript.cs b/dotnet/src/webdriver/DevTools/v132/V132JavaScript.cs similarity index 94% rename from dotnet/src/webdriver/DevTools/v129/V129JavaScript.cs rename to dotnet/src/webdriver/DevTools/v132/V132JavaScript.cs index f2805350805d9..798cc8226941e 100644 --- a/dotnet/src/webdriver/DevTools/v129/V129JavaScript.cs +++ b/dotnet/src/webdriver/DevTools/v132/V132JavaScript.cs @@ -1,4 +1,4 @@ -// +// // Licensed to the Software Freedom Conservancy (SFC) under one // or more contributor license agreements. See the NOTICE file // distributed with this work for additional information @@ -17,28 +17,28 @@ // under the License. // -using OpenQA.Selenium.DevTools.V129.Page; -using OpenQA.Selenium.DevTools.V129.Runtime; +using OpenQA.Selenium.DevTools.V132.Page; +using OpenQA.Selenium.DevTools.V132.Runtime; using System; using System.Collections.Generic; using System.Threading.Tasks; -namespace OpenQA.Selenium.DevTools.V129 +namespace OpenQA.Selenium.DevTools.V132 { /// - /// Class containing the JavaScript implementation for version 129 of the DevTools Protocol. + /// Class containing the JavaScript implementation for version 132 of the DevTools Protocol. /// - public class V129JavaScript : JavaScript + public class V132JavaScript : JavaScript { private RuntimeAdapter runtime; private PageAdapter page; /// - /// Initializes a new instance of the class. + /// Initializes a new instance of the class. /// /// The DevTools Protocol adapter for the Runtime domain. /// The DevTools Protocol adapter for the Page domain. - public V129JavaScript(RuntimeAdapter runtime, PageAdapter page) + public V132JavaScript(RuntimeAdapter runtime, PageAdapter page) { this.runtime = runtime; this.page = page; diff --git a/dotnet/src/webdriver/DevTools/v129/V129Log.cs b/dotnet/src/webdriver/DevTools/v132/V132Log.cs similarity index 88% rename from dotnet/src/webdriver/DevTools/v129/V129Log.cs rename to dotnet/src/webdriver/DevTools/v132/V132Log.cs index 366e4ec18a6b7..d4ee345831ca6 100644 --- a/dotnet/src/webdriver/DevTools/v129/V129Log.cs +++ b/dotnet/src/webdriver/DevTools/v132/V132Log.cs @@ -1,4 +1,4 @@ -// +// // Licensed to the Software Freedom Conservancy (SFC) under one // or more contributor license agreements. See the NOTICE file // distributed with this work for additional information @@ -17,23 +17,23 @@ // under the License. // -using OpenQA.Selenium.DevTools.V129.Log; +using OpenQA.Selenium.DevTools.V132.Log; using System.Threading.Tasks; -namespace OpenQA.Selenium.DevTools.V129 +namespace OpenQA.Selenium.DevTools.V132 { /// - /// Class containing the browser's log as referenced by version 129 of the DevTools Protocol. + /// Class containing the browser's log as referenced by version 132 of the DevTools Protocol. /// - public class V129Log : DevTools.Log + public class V132Log : DevTools.Log { private LogAdapter adapter; /// - /// Initializes a new instance of the class. + /// Initializes a new instance of the class. /// /// The adapter for the Log domain. - public V129Log(LogAdapter adapter) + public V132Log(LogAdapter adapter) { this.adapter = adapter; this.adapter.EntryAdded += OnAdapterEntryAdded; diff --git a/dotnet/src/webdriver/DevTools/v129/V129Network.cs b/dotnet/src/webdriver/DevTools/v132/V132Network.cs similarity index 95% rename from dotnet/src/webdriver/DevTools/v129/V129Network.cs rename to dotnet/src/webdriver/DevTools/v132/V132Network.cs index 879d3b8482146..a4cdee5658576 100644 --- a/dotnet/src/webdriver/DevTools/v129/V129Network.cs +++ b/dotnet/src/webdriver/DevTools/v132/V132Network.cs @@ -1,4 +1,4 @@ -// +// // Licensed to the Software Freedom Conservancy (SFC) under one // or more contributor license agreements. See the NOTICE file // distributed with this work for additional information @@ -17,29 +17,29 @@ // under the License. // -using OpenQA.Selenium.DevTools.V129.Fetch; -using OpenQA.Selenium.DevTools.V129.Network; +using OpenQA.Selenium.DevTools.V132.Fetch; +using OpenQA.Selenium.DevTools.V132.Network; using System; using System.Collections.Generic; using System.Text; using System.Threading.Tasks; -namespace OpenQA.Selenium.DevTools.V129 +namespace OpenQA.Selenium.DevTools.V132 { /// - /// Class providing functionality for manipulating network calls using version 129 of the DevTools Protocol + /// Class providing functionality for manipulating network calls using version 132 of the DevTools Protocol /// - public class V129Network : DevTools.Network + public class V132Network : DevTools.Network { private FetchAdapter fetch; private NetworkAdapter network; /// - /// Initializes a new instance of the class. + /// Initializes a new instance of the class. /// /// The adapter for the Network domain. /// The adapter for the Fetch domain. - public V129Network(NetworkAdapter network, FetchAdapter fetch) + public V132Network(NetworkAdapter network, FetchAdapter fetch) { this.network = network; this.fetch = fetch; @@ -217,9 +217,9 @@ public override async Task ContinueWithAuth(string requestId, string userName, s await fetch.ContinueWithAuth(new ContinueWithAuthCommandSettings() { RequestId = requestId, - AuthChallengeResponse = new V129.Fetch.AuthChallengeResponse() + AuthChallengeResponse = new V132.Fetch.AuthChallengeResponse() { - Response = V129.Fetch.AuthChallengeResponseResponseValues.ProvideCredentials, + Response = V132.Fetch.AuthChallengeResponseResponseValues.ProvideCredentials, Username = userName, Password = password } @@ -236,9 +236,9 @@ public override async Task CancelAuth(string requestId) await fetch.ContinueWithAuth(new ContinueWithAuthCommandSettings() { RequestId = requestId, - AuthChallengeResponse = new OpenQA.Selenium.DevTools.V129.Fetch.AuthChallengeResponse() + AuthChallengeResponse = new OpenQA.Selenium.DevTools.V132.Fetch.AuthChallengeResponse() { - Response = V129.Fetch.AuthChallengeResponseResponseValues.CancelAuth + Response = V132.Fetch.AuthChallengeResponseResponseValues.CancelAuth } }).ConfigureAwait(false); } diff --git a/dotnet/src/webdriver/DevTools/v129/V129Target.cs b/dotnet/src/webdriver/DevTools/v132/V132Target.cs similarity index 94% rename from dotnet/src/webdriver/DevTools/v129/V129Target.cs rename to dotnet/src/webdriver/DevTools/v132/V132Target.cs index 7fd6ced514f25..6194dcad9a784 100644 --- a/dotnet/src/webdriver/DevTools/v129/V129Target.cs +++ b/dotnet/src/webdriver/DevTools/v132/V132Target.cs @@ -1,4 +1,4 @@ -// +// // Licensed to the Software Freedom Conservancy (SFC) under one // or more contributor license agreements. See the NOTICE file // distributed with this work for additional information @@ -17,26 +17,26 @@ // under the License. // -using OpenQA.Selenium.DevTools.V129.Target; +using OpenQA.Selenium.DevTools.V132.Target; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Threading.Tasks; -namespace OpenQA.Selenium.DevTools.V129 +namespace OpenQA.Selenium.DevTools.V132 { /// - /// Class providing functionality for manipulating targets for version 129 of the DevTools Protocol + /// Class providing functionality for manipulating targets for version 132 of the DevTools Protocol /// - public class V129Target : DevTools.Target + public class V132Target : DevTools.Target { private TargetAdapter adapter; /// - /// Initializes a new instance of the class. + /// Initializes a new instance of the class. /// /// The adapter for the Target domain. - public V129Target(TargetAdapter adapter) + public V132Target(TargetAdapter adapter) { this.adapter = adapter; adapter.DetachedFromTarget += OnDetachedFromTarget; diff --git a/dotnet/test/common/ClickTest.cs b/dotnet/test/common/ClickTest.cs index 20739bbe3d114..9f359f265f841 100644 --- a/dotnet/test/common/ClickTest.cs +++ b/dotnet/test/common/ClickTest.cs @@ -262,6 +262,7 @@ public void ShouldBeAbleToClickOnAnElementGreaterThanTwoViewports() } [Test] + [IgnoreBrowser(Browser.Firefox, "https://bugzilla.mozilla.org/show_bug.cgi?id=1937115")] public void ShouldBeAbleToClickOnAnElementInFrameGreaterThanTwoViewports() { string url = EnvironmentManager.Instance.UrlBuilder.WhereIs("click_too_big_in_frame.html"); diff --git a/dotnet/test/common/CustomDriverConfigs/StableChannelChromeDriver.cs b/dotnet/test/common/CustomDriverConfigs/StableChannelChromeDriver.cs index fe5728aa971df..0f9edb86f98cf 100644 --- a/dotnet/test/common/CustomDriverConfigs/StableChannelChromeDriver.cs +++ b/dotnet/test/common/CustomDriverConfigs/StableChannelChromeDriver.cs @@ -39,7 +39,7 @@ public StableChannelChromeDriver(ChromeDriverService service, ChromeOptions opti public static ChromeOptions DefaultOptions { - get { return new ChromeOptions() { BrowserVersion = "131" }; } + get { return new ChromeOptions() { BrowserVersion = "132" }; } } } } diff --git a/dotnet/test/common/DevTools/DevToolsConsoleTest.cs b/dotnet/test/common/DevTools/DevToolsConsoleTest.cs index a91bc591a7abc..44b555aab8875 100644 --- a/dotnet/test/common/DevTools/DevToolsConsoleTest.cs +++ b/dotnet/test/common/DevTools/DevToolsConsoleTest.cs @@ -25,7 +25,7 @@ namespace OpenQA.Selenium.DevTools { - using CurrentCdpVersion = V131; + using CurrentCdpVersion = V132; [TestFixture] public class DevToolsConsoleTest : DevToolsTestFixture diff --git a/dotnet/test/common/DevTools/DevToolsLogTest.cs b/dotnet/test/common/DevTools/DevToolsLogTest.cs index f9e96be1a7bd1..720a56bbc8d6d 100644 --- a/dotnet/test/common/DevTools/DevToolsLogTest.cs +++ b/dotnet/test/common/DevTools/DevToolsLogTest.cs @@ -25,7 +25,7 @@ namespace OpenQA.Selenium.DevTools { - using CurrentCdpVersion = V131; + using CurrentCdpVersion = V132; [TestFixture] public class DevToolsLogTest : DevToolsTestFixture diff --git a/dotnet/test/common/DevTools/DevToolsNetworkTest.cs b/dotnet/test/common/DevTools/DevToolsNetworkTest.cs index a842e1445c27c..b9c4dac4220d0 100644 --- a/dotnet/test/common/DevTools/DevToolsNetworkTest.cs +++ b/dotnet/test/common/DevTools/DevToolsNetworkTest.cs @@ -25,7 +25,7 @@ namespace OpenQA.Selenium.DevTools { - using CurrentCdpVersion = V131; + using CurrentCdpVersion = V132; [TestFixture] public class DevToolsNetworkTest : DevToolsTestFixture diff --git a/dotnet/test/common/DevTools/DevToolsPerformanceTest.cs b/dotnet/test/common/DevTools/DevToolsPerformanceTest.cs index 5dc5c4011b6f5..9995818f1a82b 100644 --- a/dotnet/test/common/DevTools/DevToolsPerformanceTest.cs +++ b/dotnet/test/common/DevTools/DevToolsPerformanceTest.cs @@ -22,7 +22,7 @@ namespace OpenQA.Selenium.DevTools { - using CurrentCdpVersion = V131; + using CurrentCdpVersion = V132; [TestFixture] public class DevToolsPerformanceTest : DevToolsTestFixture diff --git a/dotnet/test/common/DevTools/DevToolsProfilerTest.cs b/dotnet/test/common/DevTools/DevToolsProfilerTest.cs index a663278e7bc69..2fd75bff692c7 100644 --- a/dotnet/test/common/DevTools/DevToolsProfilerTest.cs +++ b/dotnet/test/common/DevTools/DevToolsProfilerTest.cs @@ -24,7 +24,7 @@ namespace OpenQA.Selenium.DevTools { - using CurrentCdpVersion = V131; + using CurrentCdpVersion = V132; [TestFixture] public class DevToolsProfilerTest : DevToolsTestFixture diff --git a/dotnet/test/common/DevTools/DevToolsSecurityTest.cs b/dotnet/test/common/DevTools/DevToolsSecurityTest.cs index 47af8e49a0c5a..4c6ad4bc53cab 100644 --- a/dotnet/test/common/DevTools/DevToolsSecurityTest.cs +++ b/dotnet/test/common/DevTools/DevToolsSecurityTest.cs @@ -25,7 +25,7 @@ namespace OpenQA.Selenium.DevTools { - using CurrentCdpVersion = V131; + using CurrentCdpVersion = V132; [TestFixture] public class DevToolsSecurityTest : DevToolsTestFixture diff --git a/dotnet/test/common/DevTools/DevToolsTabsTest.cs b/dotnet/test/common/DevTools/DevToolsTabsTest.cs index 23ad303e0dea3..2768f279a8ec9 100644 --- a/dotnet/test/common/DevTools/DevToolsTabsTest.cs +++ b/dotnet/test/common/DevTools/DevToolsTabsTest.cs @@ -22,7 +22,7 @@ namespace OpenQA.Selenium.DevTools { - using CurrentCdpVersion = V131; + using CurrentCdpVersion = V132; [TestFixture] public class DevToolsTabsTest : DevToolsTestFixture diff --git a/dotnet/test/common/DevTools/DevToolsTargetTest.cs b/dotnet/test/common/DevTools/DevToolsTargetTest.cs index 2752d6dc347f2..7ba4b7f4d577f 100644 --- a/dotnet/test/common/DevTools/DevToolsTargetTest.cs +++ b/dotnet/test/common/DevTools/DevToolsTargetTest.cs @@ -25,12 +25,12 @@ namespace OpenQA.Selenium.DevTools { - using CurrentCdpVersion = V131; + using CurrentCdpVersion = V132; [TestFixture] public class DevToolsTargetTest : DevToolsTestFixture { - private int id = 131; + private int id = 132; [Test] [IgnoreBrowser(Selenium.Browser.IE, "IE does not support Chrome DevTools Protocol")] diff --git a/java/CHANGELOG b/java/CHANGELOG index 75b10d630960f..f0bc84b317a24 100644 --- a/java/CHANGELOG +++ b/java/CHANGELOG @@ -1,3 +1,48 @@ +v4.28.0 +====== +* Add CDP for Chrome 132 and remove 129 +* [java]: encapsulate `additionalCommands` with getter method (#14816) +* [java] read complete output of selenium manager #14820 +* [java] Enhance Null Check in Exception Handling (#14810) +* [java]Replace lambdas with method references (#14857) +* [java] include the exit code to the error message of a failed driver startup +* [grid] decrement the connection per session counter on close #14842 (#14854) +* [java]: Improved span name for `TracedCommandExecutor` (#14902) +* [java] use Local.ENGLISH for lower / upper case transformations #14916 +* [java] setter for flag JsonInput.readPerformed (#14921) +* [grid] Distributor listen and handle the NodeRestartedEvent (#14938) +* [grid] delay the newsessionqueue response (#14764) +* [java] Fix FedCM command definition and tests (#14070) +* [grid] Improve SlotMatcher and SlotSelector on request browserVersion (#14914) +* [grid] Using the correct variable in throw +* [java] for loop enhance and using of standard java 11 method writeString for tests (#14889) +* [java] reuse the classes created by the WebDriverDecorator #14789 (#14793) +* [java] Added a check for intentionally existing loggers (#14754) +* [grid] use a single event listener for the event-bus health check +* [java] JSpecify annotations for immutable models and enums (#14395) +* [java] JSpecify annotations for wrappers (#14396) +* [grid] rework the retry of http requests #14917 (#14924) +* [grid] added missing locks related to health checks +* [grid] removed a misleading lock from the grid model +* [grid] ensure the current session count is correct +* [grid] ensure --drain-after-session-count is respected with a lot of sessions in the queue (#14987) +* [grid] retry if no node does support the Capabilities (#14986) +* [grid] stop the health check of a restarted node +* [grid]: platformName is empty should be considered as enum ANY instead of WINDOWS (#15036) +* [java] rawtypes javac warning fix for AbstractDriverOptions (#15048) +* [java]: allow setting custom timeout for DevTools (#14931) +* [grid] Dynamic Grid is able to trigger video record in browser node (#15047) +* [java] Nullness annotations for Cookie and Platform (#15062) +* [java] Replace anonymous types with lambdas (#15043) +* Allow sending DevTools command with custom timeout. (#15059) +* [java] Add nullness for Require (#15084) +* [java] Add nullness for net (#15083) +* [java] Add nullness for virtualauthenticator (#15082) +* [java] Add nullness for exceptions (#15081) +* [java] Add nullness for interactions (#15095) +* [java][js][py] Add straight relative-by locators (#14482) +* [java] Add nullness for Proxy and print (#15094) + v4.27.0 ====== * Add CDP for Chrome 131 and remove 128 diff --git a/java/maven_install.json b/java/maven_install.json index 7cf3cd6654f5c..9f5b646836b25 100644 --- a/java/maven_install.json +++ b/java/maven_install.json @@ -1,7 +1,7 @@ { "__AUTOGENERATED_FILE_DO_NOT_MODIFY_THIS_FILE_MANUALLY": "THERE_IS_NO_DATA_ONLY_ZUUL", - "__INPUT_ARTIFACTS_HASH": 2003402597, - "__RESOLVED_ARTIFACTS_HASH": -2025427010, + "__INPUT_ARTIFACTS_HASH": -83251177, + "__RESOLVED_ARTIFACTS_HASH": 159666128, "artifacts": { "com.beust:jcommander": { "shasums": { @@ -68,17 +68,17 @@ }, "com.github.spotbugs:spotbugs": { "shasums": { - "jar": "69fde8787971a26b2372d416015d806bf7df4f847f7121bd5eeef239324cf180", - "sources": "fc38f6b06cf134a6b065e4e73747b17a8d9b107d935c828ebb1b8bee89527da1" + "jar": "a4a29bc8c1080e03bfc33bee2aa8f5f37003c8a568fff034a39f126623b7b536", + "sources": "310d5b46d76d06698303b21a26482d070c04df78fe0807b8f734ca6477cc6028" }, - "version": "4.8.6" + "version": "4.9.0" }, "com.github.spotbugs:spotbugs-annotations": { "shasums": { - "jar": "4548b74a815ed44f5480ca4f06204a8b00809dc7e5f6a825a9edf18f40377b65", - "sources": "b5d0110b70b9c44915f2c3375d1b700acb6d409152baf70030787d17a684469b" + "jar": "c13d24d43609a1418472f046d739bceda714ed7aa500e0589c872e0d684a47da", + "sources": "990ad9f3500499a99466b7c1e01284f4f41d1499358e7dc38c8defc59dab114c" }, - "version": "4.8.6" + "version": "4.9.0" }, "com.github.stephenc.jcip:jcip-annotations": { "shasums": { @@ -131,10 +131,10 @@ }, "com.google.googlejavaformat:google-java-format": { "shasums": { - "jar": "e9e3f83d1bf47a47d28d93b06ff0263421bc2dc5de75e238a12d8aea682ccbfd", - "sources": "40c30f0d367502d24da61c7d692f6f7d0f0e5b4d12289f99c53f1fa669bbad3d" + "jar": "938d0321c3aadc8e45a51e4334f61ca9f71137908e0fe8853925ee2125e98c6f", + "sources": "d77cfc63467e20ffd863775063aac7822d8519d1cd74b5b57e2c7cf6a89f82ec" }, - "version": "1.25.0" + "version": "1.25.2" }, "com.google.guava:failureaccess": { "shasums": { @@ -466,10 +466,10 @@ }, "net.sf.saxon:Saxon-HE": { "shasums": { - "jar": "575f8b696e3b6f9aa7a3bf01611b8bf1b84576b55ce29bc16656a53a147ef441", - "sources": "d9e70436e777457f4ba67dc07838691731127d6a6bdd688b89cce1985c1d3fa9" + "jar": "98c3a91e6e5aaf9b3e2b37601e04b214a6e67098493cdd8232fcb705fddcb674", + "sources": "f1500b3f8be4a3c0257d77e43752fe0cce0913a215924256b2a29877b05b6323" }, - "version": "12.4" + "version": "12.5" }, "org.antlr:antlr4-runtime": { "shasums": { @@ -480,10 +480,10 @@ }, "org.apache.bcel:bcel": { "shasums": { - "jar": "a119a4420350dea669acfd84120ecc7e5742dcabcc82b0b9f9755dc692335aa2", - "sources": "24c89d96db8f1ca89a4e545c3eebb8990f542fe3812ce3f5057074cc80981931" + "jar": "afd26d78e921d5f843f5745c44a6edede5b1f607179d8ac76797a57bcbd430e2", + "sources": "b70eecd0a159a00dfe7a1795f03dafe4b46fb1ec21a8a4eef0c97ba9ed3168ce" }, - "version": "6.9.0" + "version": "6.10.0" }, "org.apache.commons:commons-exec": { "shasums": { @@ -494,17 +494,17 @@ }, "org.apache.commons:commons-lang3": { "shasums": { - "jar": "d919d904486c037f8d193412da0c92e22a9fa24230b9d67a57855c5c31c7e94e", - "sources": "325a4551eee7d99f7616aa05b00ee3ca9d0cdc8face1b252a9864f2d945c58b3" + "jar": "7b96bf3ee68949abb5bc465559ac270e0551596fa34523fddf890ec418dde13c", + "sources": "ab3b86afb898f1026dbe43aaf71e9c1d719ec52d6e41887b362d86777c299b6f" }, - "version": "3.12.0" + "version": "3.14.0" }, "org.apache.commons:commons-text": { "shasums": { - "jar": "770cd903fa7b604d1f7ef7ba17f84108667294b2b478be8ed1af3bffb4ae0018", - "sources": "e767596163da9b22e8fc83ff954e41e19e96744df7625b06f8daac3c4d60f79d" + "jar": "1e323a501127df78ed0987f345d69d65d0ea7fa3d4fb5b3f84aaeba3a8b20f38", + "sources": "ef8983f2336be8ee0aea07175d3f661101142ba233d830c59044dda722c9149c" }, - "version": "1.10.0" + "version": "1.13.0" }, "org.apache.httpcomponents.client5:httpclient5": { "shasums": { @@ -697,38 +697,38 @@ }, "org.ow2.asm:asm": { "shasums": { - "jar": "adf46d5e34940bdf148ecdd26a9ee8eea94496a72034ff7141066b3eea5c4e9d", - "sources": "11dfd88129204be18c0f592f8e066d0c07d8a6bc001f6c7b2cce5ff0588d5d71" + "jar": "8cadd43ac5eb6d09de05faecca38b917a040bb9139c7edeb4cc81c740b713281", + "sources": "22e9507b0c494daaedb33b8148c30cd618c6dacc3992be8b50eaaafeb6a8ba8d" }, - "version": "9.7" + "version": "9.7.1" }, "org.ow2.asm:asm-analysis": { "shasums": { - "jar": "7bc6bcbc21379948a0c8c467fb0f864206e5b818f6bc0b546872f5c9f941556f", - "sources": "266e2905af30ba8f2527a22a87d31cd6e20a6908f595aa8e85a4a7ad74d99a60" + "jar": "85b29371884ba31bb76edf22323c2c24e172c3267a67152eba3d1ccc2e041ef2", + "sources": "ee0f33502dfabdfce4bd5e44ad91c9b947916433bf48c29f43036c9db9ee3639" }, - "version": "9.7" + "version": "9.7.1" }, "org.ow2.asm:asm-commons": { "shasums": { - "jar": "389bc247958e049fc9a0408d398c92c6d370c18035120395d4cba1d9d9304b7a", - "sources": "6b0092b5ee785c2406c75fbc43c0b9ec4bee3072b4bd1d919b84cf40b7254075" + "jar": "9a579b54d292ad9be171d4313fd4739c635592c2b5ac3a459bbd1049cddec6a0", + "sources": "a2bd3ba563c5f2e19eea66df99437ef81d69a0dcb3def07028442a273a2da562" }, - "version": "9.7" + "version": "9.7.1" }, "org.ow2.asm:asm-tree": { "shasums": { - "jar": "62f4b3bc436045c1acb5c3ba2d8ec556ec3369093d7f5d06c747eb04b56d52b1", + "jar": "9929881f59eb6b840e86d54570c77b59ce721d104e6dfd7a40978991c2d3b41f", "sources": "442d32be6106a41b61c2edf05f8ae496c4c54cca6e73d9d59d38e9cb54820c44" }, - "version": "9.7" + "version": "9.7.1" }, "org.ow2.asm:asm-util": { "shasums": { - "jar": "37a6414d36641973f1af104937c95d6d921b2ddb4d612c66c5a9f2b13fc14211", - "sources": "382d49d3129a63f8164c554be322ccd43d822942ecf3afa6da5ccfe84a6c095d" + "jar": "f885be71b5c90556f5f1ad1c4f9276b29b96057c497d46666fe4ddbec3cb43c6", + "sources": "d58055660e99d6b15d8d23303e81cde321cfff06f10537f96dbebdca34b7e342" }, - "version": "9.7" + "version": "9.7.1" }, "org.reactivestreams:reactive-streams": { "shasums": { @@ -1951,7 +1951,8 @@ "org.apache.commons.lang3.text", "org.apache.commons.lang3.text.translate", "org.apache.commons.lang3.time", - "org.apache.commons.lang3.tuple" + "org.apache.commons.lang3.tuple", + "org.apache.commons.lang3.util" ], "org.apache.commons:commons-text": [ "org.apache.commons.text", diff --git a/java/src/org/openqa/selenium/devtools/v129/BUILD.bazel b/java/src/org/openqa/selenium/devtools/v132/BUILD.bazel similarity index 98% rename from java/src/org/openqa/selenium/devtools/v129/BUILD.bazel rename to java/src/org/openqa/selenium/devtools/v132/BUILD.bazel index 029982b67a608..5858496b59371 100644 --- a/java/src/org/openqa/selenium/devtools/v129/BUILD.bazel +++ b/java/src/org/openqa/selenium/devtools/v132/BUILD.bazel @@ -2,7 +2,7 @@ load("//common:defs.bzl", "copy_file") load("//java:defs.bzl", "java_export", "java_library") load("//java:version.bzl", "SE_VERSION") -cdp_version = "v129" +cdp_version = "v132" java_export( name = cdp_version, diff --git a/java/src/org/openqa/selenium/devtools/v129/v129CdpInfo.java b/java/src/org/openqa/selenium/devtools/v132/v132CdpInfo.java similarity index 86% rename from java/src/org/openqa/selenium/devtools/v129/v129CdpInfo.java rename to java/src/org/openqa/selenium/devtools/v132/v132CdpInfo.java index bf57d309dd9e9..1d335e57c85af 100644 --- a/java/src/org/openqa/selenium/devtools/v129/v129CdpInfo.java +++ b/java/src/org/openqa/selenium/devtools/v132/v132CdpInfo.java @@ -15,15 +15,15 @@ // specific language governing permissions and limitations // under the License. -package org.openqa.selenium.devtools.v129; +package org.openqa.selenium.devtools.v132; import com.google.auto.service.AutoService; import org.openqa.selenium.devtools.CdpInfo; @AutoService(CdpInfo.class) -public class v129CdpInfo extends CdpInfo { +public class v132CdpInfo extends CdpInfo { - public v129CdpInfo() { - super(129, v129Domains::new); + public v132CdpInfo() { + super(132, v132Domains::new); } } diff --git a/java/src/org/openqa/selenium/devtools/v129/v129Domains.java b/java/src/org/openqa/selenium/devtools/v132/v132Domains.java similarity index 77% rename from java/src/org/openqa/selenium/devtools/v129/v129Domains.java rename to java/src/org/openqa/selenium/devtools/v132/v132Domains.java index 735d10c60e534..aa2d95b34caaf 100644 --- a/java/src/org/openqa/selenium/devtools/v129/v129Domains.java +++ b/java/src/org/openqa/selenium/devtools/v132/v132Domains.java @@ -15,7 +15,7 @@ // specific language governing permissions and limitations // under the License. -package org.openqa.selenium.devtools.v129; +package org.openqa.selenium.devtools.v132; import org.openqa.selenium.devtools.DevTools; import org.openqa.selenium.devtools.idealized.Domains; @@ -26,21 +26,21 @@ import org.openqa.selenium.devtools.idealized.target.Target; import org.openqa.selenium.internal.Require; -public class v129Domains implements Domains { +public class v132Domains implements Domains { - private final v129Javascript js; - private final v129Events events; - private final v129Log log; - private final v129Network network; - private final v129Target target; + private final v132Javascript js; + private final v132Events events; + private final v132Log log; + private final v132Network network; + private final v132Target target; - public v129Domains(DevTools devtools) { + public v132Domains(DevTools devtools) { Require.nonNull("DevTools", devtools); - events = new v129Events(devtools); - js = new v129Javascript(devtools); - log = new v129Log(); - network = new v129Network(devtools); - target = new v129Target(); + events = new v132Events(devtools); + js = new v132Javascript(devtools); + log = new v132Log(); + network = new v132Network(devtools); + target = new v132Target(); } @Override diff --git a/java/src/org/openqa/selenium/devtools/v129/v129Events.java b/java/src/org/openqa/selenium/devtools/v132/v132Events.java similarity index 86% rename from java/src/org/openqa/selenium/devtools/v129/v129Events.java rename to java/src/org/openqa/selenium/devtools/v132/v132Events.java index 1d7765fd964ab..979a98cfab645 100644 --- a/java/src/org/openqa/selenium/devtools/v129/v129Events.java +++ b/java/src/org/openqa/selenium/devtools/v132/v132Events.java @@ -15,7 +15,7 @@ // specific language governing permissions and limitations // under the License. -package org.openqa.selenium.devtools.v129; +package org.openqa.selenium.devtools.v132; import java.time.Instant; import java.util.List; @@ -28,15 +28,15 @@ import org.openqa.selenium.devtools.events.ConsoleEvent; import org.openqa.selenium.devtools.idealized.Events; import org.openqa.selenium.devtools.idealized.runtime.model.RemoteObject; -import org.openqa.selenium.devtools.v129.runtime.Runtime; -import org.openqa.selenium.devtools.v129.runtime.model.ConsoleAPICalled; -import org.openqa.selenium.devtools.v129.runtime.model.ExceptionDetails; -import org.openqa.selenium.devtools.v129.runtime.model.ExceptionThrown; -import org.openqa.selenium.devtools.v129.runtime.model.StackTrace; +import org.openqa.selenium.devtools.v132.runtime.Runtime; +import org.openqa.selenium.devtools.v132.runtime.model.ConsoleAPICalled; +import org.openqa.selenium.devtools.v132.runtime.model.ExceptionDetails; +import org.openqa.selenium.devtools.v132.runtime.model.ExceptionThrown; +import org.openqa.selenium.devtools.v132.runtime.model.StackTrace; -public class v129Events extends Events { +public class v132Events extends Events { - public v129Events(DevTools devtools) { + public v132Events(DevTools devtools) { super(devtools); } @@ -77,7 +77,7 @@ protected ConsoleEvent toConsoleEvent(ConsoleAPICalled event) { protected JavascriptException toJsException(ExceptionThrown event) { ExceptionDetails details = event.getExceptionDetails(); Optional maybeTrace = details.getStackTrace(); - Optional maybeException = + Optional maybeException = details.getException(); String message = diff --git a/java/src/org/openqa/selenium/devtools/v129/v129Javascript.java b/java/src/org/openqa/selenium/devtools/v132/v132Javascript.java similarity index 85% rename from java/src/org/openqa/selenium/devtools/v129/v129Javascript.java rename to java/src/org/openqa/selenium/devtools/v132/v132Javascript.java index 632de793b788a..4e4b56b0fc219 100644 --- a/java/src/org/openqa/selenium/devtools/v129/v129Javascript.java +++ b/java/src/org/openqa/selenium/devtools/v132/v132Javascript.java @@ -15,21 +15,21 @@ // specific language governing permissions and limitations // under the License. -package org.openqa.selenium.devtools.v129; +package org.openqa.selenium.devtools.v132; import java.util.Optional; import org.openqa.selenium.devtools.Command; import org.openqa.selenium.devtools.DevTools; import org.openqa.selenium.devtools.Event; import org.openqa.selenium.devtools.idealized.Javascript; -import org.openqa.selenium.devtools.v129.page.Page; -import org.openqa.selenium.devtools.v129.page.model.ScriptIdentifier; -import org.openqa.selenium.devtools.v129.runtime.Runtime; -import org.openqa.selenium.devtools.v129.runtime.model.BindingCalled; +import org.openqa.selenium.devtools.v132.page.Page; +import org.openqa.selenium.devtools.v132.page.model.ScriptIdentifier; +import org.openqa.selenium.devtools.v132.runtime.Runtime; +import org.openqa.selenium.devtools.v132.runtime.model.BindingCalled; -public class v129Javascript extends Javascript { +public class v132Javascript extends Javascript { - public v129Javascript(DevTools devtools) { + public v132Javascript(DevTools devtools) { super(devtools); } diff --git a/java/src/org/openqa/selenium/devtools/v129/v129Log.java b/java/src/org/openqa/selenium/devtools/v132/v132Log.java similarity index 89% rename from java/src/org/openqa/selenium/devtools/v129/v129Log.java rename to java/src/org/openqa/selenium/devtools/v132/v132Log.java index e7e15cf97d802..3dbc4e0267c9d 100644 --- a/java/src/org/openqa/selenium/devtools/v129/v129Log.java +++ b/java/src/org/openqa/selenium/devtools/v132/v132Log.java @@ -15,19 +15,19 @@ // specific language governing permissions and limitations // under the License. -package org.openqa.selenium.devtools.v129; +package org.openqa.selenium.devtools.v132; import java.util.function.Function; import java.util.logging.Level; import org.openqa.selenium.devtools.Command; import org.openqa.selenium.devtools.ConverterFunctions; import org.openqa.selenium.devtools.Event; -import org.openqa.selenium.devtools.v129.log.Log; -import org.openqa.selenium.devtools.v129.log.model.LogEntry; -import org.openqa.selenium.devtools.v129.runtime.model.Timestamp; +import org.openqa.selenium.devtools.v132.log.Log; +import org.openqa.selenium.devtools.v132.log.model.LogEntry; +import org.openqa.selenium.devtools.v132.runtime.model.Timestamp; import org.openqa.selenium.json.JsonInput; -public class v129Log implements org.openqa.selenium.devtools.idealized.log.Log { +public class v132Log implements org.openqa.selenium.devtools.idealized.log.Log { @Override public Command enable() { diff --git a/java/src/org/openqa/selenium/devtools/v129/v129Network.java b/java/src/org/openqa/selenium/devtools/v132/v132Network.java similarity index 92% rename from java/src/org/openqa/selenium/devtools/v129/v129Network.java rename to java/src/org/openqa/selenium/devtools/v132/v132Network.java index 21651783d74cf..ef6e0b92e1581 100644 --- a/java/src/org/openqa/selenium/devtools/v129/v129Network.java +++ b/java/src/org/openqa/selenium/devtools/v132/v132Network.java @@ -15,7 +15,7 @@ // specific language governing permissions and limitations // under the License. -package org.openqa.selenium.devtools.v129; +package org.openqa.selenium.devtools.v132; import static java.net.HttpURLConnection.HTTP_OK; @@ -30,35 +30,35 @@ import org.openqa.selenium.devtools.DevToolsException; import org.openqa.selenium.devtools.Event; import org.openqa.selenium.devtools.idealized.Network; -import org.openqa.selenium.devtools.v129.fetch.Fetch; -import org.openqa.selenium.devtools.v129.fetch.model.*; -import org.openqa.selenium.devtools.v129.network.model.Request; +import org.openqa.selenium.devtools.v132.fetch.Fetch; +import org.openqa.selenium.devtools.v132.fetch.model.*; +import org.openqa.selenium.devtools.v132.network.model.Request; import org.openqa.selenium.internal.Either; import org.openqa.selenium.remote.http.HttpRequest; import org.openqa.selenium.remote.http.HttpResponse; -public class v129Network extends Network { +public class v132Network extends Network { - private static final Logger LOG = Logger.getLogger(v129Network.class.getName()); + private static final Logger LOG = Logger.getLogger(v132Network.class.getName()); - public v129Network(DevTools devTools) { + public v132Network(DevTools devTools) { super(devTools); } @Override protected Command setUserAgentOverride(UserAgent userAgent) { - return org.openqa.selenium.devtools.v129.network.Network.setUserAgentOverride( + return org.openqa.selenium.devtools.v132.network.Network.setUserAgentOverride( userAgent.userAgent(), userAgent.acceptLanguage(), userAgent.platform(), Optional.empty()); } @Override protected Command enableNetworkCaching() { - return org.openqa.selenium.devtools.v129.network.Network.setCacheDisabled(false); + return org.openqa.selenium.devtools.v132.network.Network.setCacheDisabled(false); } @Override protected Command disableNetworkCaching() { - return org.openqa.selenium.devtools.v129.network.Network.setCacheDisabled(true); + return org.openqa.selenium.devtools.v132.network.Network.setCacheDisabled(true); } @Override diff --git a/java/src/org/openqa/selenium/devtools/v129/v129Target.java b/java/src/org/openqa/selenium/devtools/v132/v132Target.java similarity index 83% rename from java/src/org/openqa/selenium/devtools/v129/v129Target.java rename to java/src/org/openqa/selenium/devtools/v132/v132Target.java index 07c78a9d85e82..40f0b8333b240 100644 --- a/java/src/org/openqa/selenium/devtools/v129/v129Target.java +++ b/java/src/org/openqa/selenium/devtools/v132/v132Target.java @@ -15,7 +15,7 @@ // specific language governing permissions and limitations // under the License. -package org.openqa.selenium.devtools.v129; +package org.openqa.selenium.devtools.v132; import java.util.List; import java.util.Map; @@ -28,21 +28,21 @@ import org.openqa.selenium.devtools.idealized.browser.model.BrowserContextID; import org.openqa.selenium.devtools.idealized.target.model.SessionID; import org.openqa.selenium.devtools.idealized.target.model.TargetID; -import org.openqa.selenium.devtools.v129.target.Target; -import org.openqa.selenium.devtools.v129.target.model.TargetInfo; +import org.openqa.selenium.devtools.v132.target.Target; +import org.openqa.selenium.devtools.v132.target.model.TargetInfo; import org.openqa.selenium.json.JsonInput; import org.openqa.selenium.json.TypeToken; -public class v129Target implements org.openqa.selenium.devtools.idealized.target.Target { +public class v132Target implements org.openqa.selenium.devtools.idealized.target.Target { @Override public Command detachFromTarget( Optional sessionId, Optional targetId) { return Target.detachFromTarget( sessionId.map( - id -> new org.openqa.selenium.devtools.v129.target.model.SessionID(id.toString())), + id -> new org.openqa.selenium.devtools.v132.target.model.SessionID(id.toString())), targetId.map( - id -> new org.openqa.selenium.devtools.v129.target.model.TargetID(id.toString()))); + id -> new org.openqa.selenium.devtools.v132.target.model.TargetID(id.toString()))); } @Override @@ -74,19 +74,19 @@ public Command detachFromTarget( @Override public Command attachToTarget(TargetID targetId) { - Function mapper = + Function mapper = ConverterFunctions.map( - "sessionId", org.openqa.selenium.devtools.v129.target.model.SessionID.class); + "sessionId", org.openqa.selenium.devtools.v132.target.model.SessionID.class); return new Command<>( "Target.attachToTarget", Map.of( "targetId", - new org.openqa.selenium.devtools.v129.target.model.TargetID(targetId.toString()), + new org.openqa.selenium.devtools.v132.target.model.TargetID(targetId.toString()), "flatten", true), input -> { - org.openqa.selenium.devtools.v129.target.model.SessionID id = mapper.apply(input); + org.openqa.selenium.devtools.v132.target.model.SessionID id = mapper.apply(input); return new SessionID(id.toString()); }); } @@ -101,9 +101,9 @@ public Event detached() { return new Event<>( "Target.detachedFromTarget", input -> { - Function converter = + Function converter = ConverterFunctions.map( - "targetId", org.openqa.selenium.devtools.v129.target.model.TargetID.class); + "targetId", org.openqa.selenium.devtools.v132.target.model.TargetID.class); return new TargetID(converter.apply(input).toString()); }); } diff --git a/java/src/org/openqa/selenium/devtools/versions.bzl b/java/src/org/openqa/selenium/devtools/versions.bzl index a56339287b69e..ed6af1bc721ec 100644 --- a/java/src/org/openqa/selenium/devtools/versions.bzl +++ b/java/src/org/openqa/selenium/devtools/versions.bzl @@ -1,7 +1,7 @@ CDP_VERSIONS = [ "v85", # Required by Firefox "v131", - "v129", + "v132", "v130", ] diff --git a/java/test/org/openqa/selenium/bidi/input/CombinedInputActionsTest.java b/java/test/org/openqa/selenium/bidi/input/CombinedInputActionsTest.java index eceae5d837eeb..d7c3cb64abb87 100644 --- a/java/test/org/openqa/selenium/bidi/input/CombinedInputActionsTest.java +++ b/java/test/org/openqa/selenium/bidi/input/CombinedInputActionsTest.java @@ -235,8 +235,6 @@ private void navigateToClicksPageAndClickLink() { @SwitchToTopAfterTest @Test - @NotYetImplemented(EDGE) - @NotYetImplemented(CHROME) void canMoveMouseToAnElementInAnIframeAndClick() { driver.get(appServer.whereIs("click_tests/click_in_iframe.html")); diff --git a/java/test/org/openqa/selenium/bidi/input/DefaultMouseTest.java b/java/test/org/openqa/selenium/bidi/input/DefaultMouseTest.java index ccc9b9de49d34..0807a06d7c3f1 100644 --- a/java/test/org/openqa/selenium/bidi/input/DefaultMouseTest.java +++ b/java/test/org/openqa/selenium/bidi/input/DefaultMouseTest.java @@ -57,7 +57,6 @@ import org.openqa.selenium.testing.Ignore; import org.openqa.selenium.testing.JupiterTestBase; import org.openqa.selenium.testing.NeedsFreshDriver; -import org.openqa.selenium.testing.NotYetImplemented; import org.openqa.selenium.testing.SwitchToTopAfterTest; /** Tests operations that involve mouse and keyboard. */ @@ -237,8 +236,6 @@ void testMoveAndClick() { @SwitchToTopAfterTest @Test - @NotYetImplemented(CHROME) - @NotYetImplemented(EDGE) void testShouldClickElementInIFrame() { driver.get(pages.clicksPage); driver.switchTo().frame("source"); diff --git a/java/version.bzl b/java/version.bzl index 2ccba1f975dd3..14f0db69989d8 100644 --- a/java/version.bzl +++ b/java/version.bzl @@ -1,2 +1,2 @@ -SE_VERSION = "4.28.0-SNAPSHOT" +SE_VERSION = "4.28.0" TOOLS_JAVA_VERSION = "17" diff --git a/javascript/node/selenium-webdriver/BUILD.bazel b/javascript/node/selenium-webdriver/BUILD.bazel index 75c855c641ec8..14f3f789f8163 100644 --- a/javascript/node/selenium-webdriver/BUILD.bazel +++ b/javascript/node/selenium-webdriver/BUILD.bazel @@ -11,12 +11,12 @@ load("//javascript/private:browsers.bzl", "BROWSERS") npm_link_all_packages(name = "node_modules") -VERSION = "4.28.0-nightly202411252022" +VERSION = "4.28.0" BROWSER_VERSIONS = [ "v85", "v131", - "v129", + "v132", "v130", ] diff --git a/javascript/node/selenium-webdriver/CHANGES.md b/javascript/node/selenium-webdriver/CHANGES.md index 287f3adc8e205..0c6c1d1cb2d3c 100644 --- a/javascript/node/selenium-webdriver/CHANGES.md +++ b/javascript/node/selenium-webdriver/CHANGES.md @@ -1,3 +1,13 @@ +## 4.28.0 + +- Add CDP for Chrome 132 and remove 129 +- [js] Add Federated Credential Management support (#15008) +- [JS] Specify Node.js engine version as 22.x LTS in package.json (#15058) +- [JS] Add detailed error message for invalid cookie name validation in getCookie method +- [JS] Add err message for invalid cookie name in deleteCookie method +- [JS] Enables diagnostic logging for Safari +- [java][JS][py] Add straight relative-by locators (#14482) + ## 4.27.0 - Add CDP for Chrome 131 and remove 128 diff --git a/javascript/node/selenium-webdriver/package.json b/javascript/node/selenium-webdriver/package.json index e059e3c0b2fef..42025370145a9 100644 --- a/javascript/node/selenium-webdriver/package.json +++ b/javascript/node/selenium-webdriver/package.json @@ -1,6 +1,6 @@ { "name": "selenium-webdriver", - "version": "4.28.0-nightly202411252022", + "version": "4.28.0", "description": "The official WebDriver JavaScript bindings from the Selenium project", "license": "Apache-2.0", "keywords": [ diff --git a/py/BUILD.bazel b/py/BUILD.bazel index 342d435498fe3..24e5589f9b65c 100644 --- a/py/BUILD.bazel +++ b/py/BUILD.bazel @@ -62,12 +62,12 @@ compile_pip_requirements( ], ) -SE_VERSION = "4.28.0.202411261607" +SE_VERSION = "4.28.0" BROWSER_VERSIONS = [ "v85", "v131", - "v129", + "v132", "v130", ] diff --git a/py/CHANGES b/py/CHANGES index ea3cdf8db4397..7426a5b1f8749 100644 --- a/py/CHANGES +++ b/py/CHANGES @@ -1,3 +1,21 @@ +Selenium 4.28.0 +* Add CDP for Chrome 132 and remove 129 +* [py] fix packaging (#14823) +* [py] Typing package import enhancement (#14283) +* [py] moved all getters in `fedcm/account.py` into descriptor object. (#14858) +* [py] add execute_cdp_cmd to Remote (#14809) +* Added more detailed docstrings to find_element() (#14930) +* [py] Refactored `remote/client_config.py` by moving `properties` into `descriptor` object (#14899) +* py: Ensure DRIVER_PATH_ENV_KEY defaults to string (#14862) +* [py] add doc for driver_path_env_key (#14997) +* [py] Fix WebKitGTK driver name check (#15046) +* [py] Upgraded WebDriverWait Docstrings (#15054) +* [py] Added Docstrings to ActionBuilder (#15065) +* [py] Upgraded WebElement Docstrings (#15056) +* [py] Upgraded WebDriver Docstrings (#15055) +* [java][js][py] Add straight relative-by locators (#14482) +* [py] Added Docstrings to RelativeBy Class and Added Missing Deprecation Warning to with_tag_name() (#15097) + Selenium 4.27.1 * Fix `pyproject.toml` for installable from sdist (#14806) * Revert the Deprecation warnings of WebElement.get_attribute() (#14808) diff --git a/py/docs/source/conf.py b/py/docs/source/conf.py index 2cf687329c477..fa175bac66448 100644 --- a/py/docs/source/conf.py +++ b/py/docs/source/conf.py @@ -58,7 +58,7 @@ # The short X.Y version. version = '4.28' # The full version, including alpha/beta/rc tags. -release = '4.28.0.202411261607' +release = '4.28.0' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/py/pyproject.toml b/py/pyproject.toml index 2c9ffb2117359..ae7d68d8516b0 100644 --- a/py/pyproject.toml +++ b/py/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "selenium" -version = "4.28.0.202411261607" +version = "4.28.0" license = { text = "Apache 2.0" } description = "Official Python bindings for Selenium WebDriver." readme = "README.rst" diff --git a/py/selenium/__init__.py b/py/selenium/__init__.py index af337bd8b7304..f289b20342a5c 100644 --- a/py/selenium/__init__.py +++ b/py/selenium/__init__.py @@ -16,4 +16,4 @@ # under the License. -__version__ = "4.28.0.202411261607" +__version__ = "4.28.0" diff --git a/py/selenium/webdriver/__init__.py b/py/selenium/webdriver/__init__.py index 4ae671ba788b1..1706b066576bd 100644 --- a/py/selenium/webdriver/__init__.py +++ b/py/selenium/webdriver/__init__.py @@ -44,7 +44,7 @@ from .wpewebkit.service import Service as WPEWebKitService # noqa from .wpewebkit.webdriver import WebDriver as WPEWebKit # noqa -__version__ = "4.28.0.202411261607" +__version__ = "4.28.0" # We need an explicit __all__ because the above won't otherwise be exported. __all__ = [ diff --git a/py/test/selenium/webdriver/common/frame_switching_tests.py b/py/test/selenium/webdriver/common/frame_switching_tests.py index 6e65b1f316ba8..47cc58b2d7dd5 100644 --- a/py/test/selenium/webdriver/common/frame_switching_tests.py +++ b/py/test/selenium/webdriver/common/frame_switching_tests.py @@ -415,31 +415,6 @@ def test_java_script_should_execute_in_the_context_of_the_current_frame(driver, assert driver.execute_script("return window != window.top") -@pytest.mark.xfail_chrome(reason="Fails on Travis") -@pytest.mark.xfail_safari -def test_should_not_switch_magically_to_the_top_window(driver, pages): - pages.load("frame_switching_tests/bug4876.html") - driver.switch_to.frame(0) - WebDriverWait(driver, 3).until(EC.presence_of_element_located((By.ID, "inputText"))) - - for i in range(20): - try: - input = WebDriverWait(driver, 3).until(EC.presence_of_element_located((By.ID, "inputText"))) - submit = WebDriverWait(driver, 3).until(EC.presence_of_element_located((By.ID, "submitButton"))) - input.clear() - import random - - input.send_keys("rand%s" % int(random.random())) - submit.click() - finally: - url = driver.execute_script("return window.location.href") - # IE6 and Chrome add "?"-symbol to the end of the URL - if url.endswith("?"): - url = url[: len(url) - 1] - - assert pages.url("frame_switching_tests/bug4876_iframe.html") == url - - def test_get_should_switch_to_default_context(driver, pages): pages.load("iframes.html") driver.find_element(By.ID, "iframe1") diff --git a/rb/CHANGES b/rb/CHANGES index f3811e1de8cc3..c3d335b5fc564 100644 --- a/rb/CHANGES +++ b/rb/CHANGES @@ -1,3 +1,12 @@ +4.28.0 (2025-01-16) +========================= +* Add CDP for Chrome 132 and remove 129 +* [ci] Bumping versions for nightly +* [rb] Add tests for the cookie named, and updates type (#14843) +* [rb] Update note for return value of Hash (#14845) +* [rb] BiDi Network: add_request_handler, remove_request_handler, clear_request_handlers (#14751) +* Update supported versions for Chrome DevTools + 4.27.0 (2024-11-21) ========================= * Add CDP for Chrome 131 and remove 128 diff --git a/rb/Gemfile.lock b/rb/Gemfile.lock index bd23fe993ad2d..625f58dc54992 100644 --- a/rb/Gemfile.lock +++ b/rb/Gemfile.lock @@ -1,9 +1,9 @@ PATH remote: . specs: - selenium-devtools (0.131.0) + selenium-devtools (0.132.0) selenium-webdriver (~> 4.2) - selenium-webdriver (4.28.0.nightly) + selenium-webdriver (4.28.0) base64 (~> 0.2) logger (~> 1.4) rexml (~> 3.2, >= 3.2.5) @@ -30,23 +30,25 @@ GEM ast (2.4.2) base64 (0.2.0) benchmark (0.4.0) - bigdecimal (3.1.8) - bigdecimal (3.1.8-java) - concurrent-ruby (1.3.4) - connection_pool (2.4.1) + bigdecimal (3.1.9) + bigdecimal (3.1.9-java) + concurrent-ruby (1.3.5) + connection_pool (2.5.0) crack (1.0.0) bigdecimal rexml - csv (3.3.0) + csv (3.3.2) curb (1.0.6) - debug (1.9.2) + date (3.4.1) + debug (1.10.0) irb (~> 1.10) reline (>= 0.3.8) diff-lcs (1.5.1) drb (2.2.1) - ffi (1.17.0) - ffi (1.17.0-java) - ffi (1.17.0-x86_64-darwin) + ffi (1.17.1-arm64-darwin) + ffi (1.17.1-java) + ffi (1.17.1-x64-mingw-ucrt) + ffi (1.17.1-x86_64-linux-gnu) fileutils (1.7.3) git (1.19.1) addressable (~> 2.8) @@ -54,27 +56,29 @@ GEM hashdiff (1.1.2) i18n (1.14.6) concurrent-ruby (~> 1.0) - io-console (0.7.2) - io-console (0.7.2-java) - irb (1.14.1) + io-console (0.8.0) + io-console (0.8.0-java) + irb (1.14.3) rdoc (>= 4.0.0) reline (>= 0.4.2) jar-dependencies (0.4.1) - json (2.8.2) - json (2.8.2-java) + json (2.9.1) + json (2.9.1-java) language_server-protocol (3.17.0.3) listen (3.9.0) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) - logger (1.6.1) - minitest (5.25.2) + logger (1.6.5) + minitest (5.25.4) parallel (1.26.3) - parser (3.3.6.0) + parser (3.3.7.0) ast (~> 2.4.1) racc - psych (5.2.0) + psych (5.2.2) + date stringio - psych (5.2.0-java) + psych (5.2.2-java) + date jar-dependencies (>= 0.1.7) public_suffix (6.0.1) racc (1.8.1) @@ -85,15 +89,15 @@ GEM rb-fsevent (0.11.2) rb-inotify (0.11.1) ffi (~> 1.0) - rbs (3.6.1) + rbs (3.8.1) logger - rchardet (1.8.0) - rdoc (6.8.1) + rchardet (1.9.0) + rdoc (6.11.0) psych (>= 4.0.0) - regexp_parser (2.9.2) - reline (0.5.11) + regexp_parser (2.10.0) + reline (0.6.0) io-console (~> 0.5) - rexml (3.3.9) + rexml (3.4.0) rspec (3.13.0) rspec-core (~> 3.13.0) rspec-expectations (~> 3.13.0) @@ -106,24 +110,24 @@ GEM rspec-mocks (3.13.2) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.13.0) - rspec-support (3.13.1) - rubocop (1.68.0) + rspec-support (3.13.2) + rubocop (1.70.0) json (~> 2.3) language_server-protocol (>= 3.17.0) parallel (~> 1.10) parser (>= 3.3.0.2) rainbow (>= 2.2.2, < 4.0) - regexp_parser (>= 2.4, < 3.0) - rubocop-ast (>= 1.32.2, < 2.0) + regexp_parser (>= 2.9.3, < 3.0) + rubocop-ast (>= 1.36.2, < 2.0) ruby-progressbar (~> 1.7) - unicode-display_width (>= 2.4.0, < 3.0) - rubocop-ast (1.36.1) + unicode-display_width (>= 2.4.0, < 4.0) + rubocop-ast (1.37.0) parser (>= 3.3.1.0) rubocop-capybara (2.21.0) rubocop (~> 1.41) rubocop-factory_bot (2.26.1) rubocop (~> 1.61) - rubocop-performance (1.23.0) + rubocop-performance (1.23.1) rubocop (>= 1.48.1, < 2.0) rubocop-ast (>= 1.31.1, < 2.0) rubocop-rake (0.6.0) @@ -136,8 +140,8 @@ GEM rubocop-rspec_rails (2.29.1) rubocop (~> 1.61) ruby-progressbar (1.13.0) - rubyzip (2.3.2) - securerandom (0.3.2) + rubyzip (2.4.1) + securerandom (0.4.1) steep (1.5.3) activesupport (>= 5.1) concurrent-ruby (>= 1.1.10) @@ -154,8 +158,8 @@ GEM strscan (>= 1.0.0) terminal-table (>= 2, < 4) stringio (3.1.2) - strscan (3.1.0) - strscan (3.1.0-java) + strscan (3.1.2) + strscan (3.1.2-java) terminal-table (3.0.2) unicode-display_width (>= 1.1.1, < 3) tzinfo (2.0.6) @@ -165,7 +169,7 @@ GEM addressable (>= 2.8.0) crack (>= 0.3.2) hashdiff (>= 0.4.0, < 2.0.0) - webrick (1.9.0) + webrick (1.9.1) websocket (1.2.11) yard (0.9.37) @@ -173,11 +177,15 @@ PLATFORMS java ruby universal-java-1.8 + arm64-darwin-23 + arm64-darwin-24 universal-java-17 universal-java-18 universal-java-21 x64-mingw32 x86_64-darwin-22 + x64-mingw-ucrt + x86_64-linux DEPENDENCIES curb (~> 1.0.5) diff --git a/rb/lib/selenium/devtools/BUILD.bazel b/rb/lib/selenium/devtools/BUILD.bazel index 9a045e89da29f..421ef65ccd11e 100644 --- a/rb/lib/selenium/devtools/BUILD.bazel +++ b/rb/lib/selenium/devtools/BUILD.bazel @@ -6,7 +6,7 @@ package(default_visibility = ["//rb:__subpackages__"]) CDP_VERSIONS = [ "v85", "v131", - "v129", + "v132", "v130", ] diff --git a/rb/lib/selenium/devtools/version.rb b/rb/lib/selenium/devtools/version.rb index c12441f05fd4b..09be47a2674a5 100644 --- a/rb/lib/selenium/devtools/version.rb +++ b/rb/lib/selenium/devtools/version.rb @@ -19,6 +19,6 @@ module Selenium module DevTools - VERSION = '0.131.0' + VERSION = '0.132.0' end # DevTools end # Selenium diff --git a/rb/lib/selenium/webdriver/bidi/struct.rb b/rb/lib/selenium/webdriver/bidi/struct.rb index 1e54477818e84..951f09b8ad03a 100644 --- a/rb/lib/selenium/webdriver/bidi/struct.rb +++ b/rb/lib/selenium/webdriver/bidi/struct.rb @@ -23,7 +23,7 @@ class BiDi class Struct < ::Struct class << self def new(*args, &block) - super(*args) do + super do define_method(:initialize) do |**kwargs| converted_kwargs = kwargs.transform_keys { |key| self.class.camel_to_snake(key.to_s).to_sym } super(*converted_kwargs.values_at(*self.class.members)) diff --git a/rb/lib/selenium/webdriver/common/logger.rb b/rb/lib/selenium/webdriver/common/logger.rb index 810b87a8e3c31..7fd2f5c169e4a 100644 --- a/rb/lib/selenium/webdriver/common/logger.rb +++ b/rb/lib/selenium/webdriver/common/logger.rb @@ -194,7 +194,7 @@ def create_logger(name, level:) def discard_or_log(level, message, id) id = Array(id) return if @ignored.intersect?(id) - return if @allowed.any? && (@allowed & id).none? + return if @allowed.any? && !@allowed.intersect?(id) return if ::Logger::Severity.const_get(level.upcase) < @logger.level diff --git a/rb/lib/selenium/webdriver/version.rb b/rb/lib/selenium/webdriver/version.rb index cdf4ebe9ed252..bca2e4ebb1d50 100644 --- a/rb/lib/selenium/webdriver/version.rb +++ b/rb/lib/selenium/webdriver/version.rb @@ -19,6 +19,6 @@ module Selenium module WebDriver - VERSION = '4.28.0.nightly' + VERSION = '4.28.0' end # WebDriver end # Selenium diff --git a/rb/spec/integration/selenium/webdriver/action_builder_spec.rb b/rb/spec/integration/selenium/webdriver/action_builder_spec.rb index 377dace9bdc5c..a997b52fad285 100644 --- a/rb/spec/integration/selenium/webdriver/action_builder_spec.rb +++ b/rb/spec/integration/selenium/webdriver/action_builder_spec.rb @@ -317,9 +317,7 @@ module WebDriver end describe '#scroll_by' do - it 'scrolls by given amount', except: {browser: :firefox, - platform: :macosx, - reason: 'scrolls insufficient number of pixels'} do + it 'scrolls by given amount' do driver.navigate.to url_for('scrolling_tests/frame_with_nested_scrolling_frame_out_of_view.html') footer = driver.find_element(tag_name: 'footer') delta_y = footer.rect.y.round diff --git a/rust/CHANGELOG.md b/rust/CHANGELOG.md index 0c032578b8be3..a27c6d382db7a 100644 --- a/rust/CHANGELOG.md +++ b/rust/CHANGELOG.md @@ -1,3 +1,11 @@ +0.4.28 +====== + +* [rust] xz uncompressor for Firefox Linux nightlies (#14832) +* [rust] Fix Edge updates API deserialization (#14851) +* [rust] Use file lock to protect concurrent accesses to cache (fix #13511 and #13686) +* [rust] Use tax.xz for Firefox package starting in version 135 + 0.4.27 ====== * Use endpoint for stable versions first to manage Firefox (#14536) (#14613)