diff --git a/.github/workflows/bazel.yml b/.github/workflows/bazel.yml index 96e845c5c118c..5d479429e25fe 100644 --- a/.github/workflows/bazel.yml +++ b/.github/workflows/bazel.yml @@ -70,7 +70,7 @@ on: jobs: bazel: name: ${{ inputs.name }} - runs-on: ${{ format('{0}-latest', inputs.os) }} + runs-on: ${{ contains(inputs.os, '-') && inputs.os || format('{0}-latest', inputs.os) }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} SEL_M2_USER: ${{ secrets.SEL_M2_USER }} @@ -122,7 +122,7 @@ jobs: node-version: ${{ inputs.node-version }} - name: Setup Bazel with caching if: inputs.caching - uses: bazel-contrib/setup-bazel@0.9.1 + uses: bazel-contrib/setup-bazel@0.13.0 with: bazelisk-cache: true bazelrc: common --color=yes @@ -136,7 +136,7 @@ jobs: repository-cache: true - name: Setup Bazel without caching if: inputs.caching == false - uses: bazel-contrib/setup-bazel@0.9.1 + uses: bazel-contrib/setup-bazel@0.13.0 with: bazelrc: common --color=yes - name: Setup Fluxbox and Xvfb diff --git a/.github/workflows/ci-ruby.yml b/.github/workflows/ci-ruby.yml index aa0d41165be6f..d091179110b55 100644 --- a/.github/workflows/ci-ruby.yml +++ b/.github/workflows/ci-ruby.yml @@ -58,6 +58,7 @@ jobs: ruby-version: ${{ matrix.ruby-version }} run: > bazel test + --keep_going --build_tests_only --test_size_filters small //rb/spec/... @@ -86,6 +87,7 @@ jobs: os: ${{ matrix.os }} run: > bazel test + --keep_going --build_tests_only --flaky_test_attempts 3 --local_test_jobs 1 @@ -112,6 +114,7 @@ jobs: java-version: 11 run: > bazel test + --keep_going --build_tests_only --flaky_test_attempts 3 --local_test_jobs 1 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e200aa574f880..00f86c98c0148 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,7 +14,7 @@ jobs: check: name: Check if: > - github.repository_owner == 'seleniumhq' && + github.repository_owner == 'seleniumhq' && (startsWith(github.head_ref, 'renovate/') != true || github.event_name == 'workflow_call') runs-on: ubuntu-latest outputs: @@ -25,7 +25,7 @@ jobs: with: fetch-depth: 50 - name: Setup Bazel - uses: bazel-contrib/setup-bazel@0.9.1 + uses: bazel-contrib/setup-bazel@0.13.0 with: bazelisk-cache: true cache-version: 2 diff --git a/AUTHORS b/AUTHORS index fce4131eb51c7..5a2658d8edb1c 100644 --- a/AUTHORS +++ b/AUTHORS @@ -267,6 +267,7 @@ elgatov Eli Flanagan Elias Faxö Ellis Percival +Emil Hemdal Enrique Daimiel eoff Eran Messeri @@ -602,6 +603,7 @@ Michael Render Michael Tamm Michael Zhou Michal Čihař +Michał Górny Michał Herda Michele Sama Mickaël Schoentgen @@ -648,6 +650,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 Navin Chandra Neil Carvalho Nelson Sproul @@ -889,6 +892,7 @@ Vijendarn Selvarajah <11275608+vijay44@users.noreply.github.com> VijendraEAtech <39116868+VijendraEAtech@users.noreply.github.com> Vikas Goel VimalRaj Selvam +Vinaysimha Varma Yadavali Vincent Ladeuil vinoth959 Viren Negi <63040+meetme2meat@users.noreply.github.com> diff --git a/MODULE.bazel b/MODULE.bazel index d741afde19a00..2bf4e81486034 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -172,9 +172,9 @@ maven.install( artifacts = [ "com.beust:jcommander:1.82", "com.github.javaparser:javaparser-core:3.26.3", - "com.github.spotbugs:spotbugs:4.9.0", + "com.github.spotbugs:spotbugs:4.9.1", "com.github.stephenc.jcip:jcip-annotations:1.0-1", - "com.google.code.gson:gson:2.11.0", + "com.google.code.gson:gson:2.12.1", "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", @@ -182,8 +182,8 @@ maven.install( "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.1", - "io.lettuce:lettuce-core:6.5.2.RELEASE", + "io.grpc:grpc-context:1.70.0", + "io.lettuce:lettuce-core:6.5.3.RELEASE", "io.netty:netty-buffer", "io.netty:netty-codec-http", "io.netty:netty-codec-http2", @@ -276,10 +276,11 @@ ruby.bundle_fetch( "connection_pool-2.5.0": "233b92f8d38e038c1349ccea65dd3772727d669d6d2e71f9897c8bf5cd53ebfc", "crack-1.0.0": "c83aefdb428cdc7b66c7f287e488c796f055c0839e6e545fec2c7047743c4a49", "csv-3.3.2": "6ff0c135e65e485d1864dde6c1703b60d34cc9e19bed8452834a0b28a519bd4e", - "curb-1.0.6": "b369434efa91dc7310d72a74f8a228a5b920e3d5a89b0a3097e4c6a905af6eb2", + "curb-1.0.8": "e23ab9225fb2fc02c083e0588d5b918b5533f0d01cdd0aa70414829ba9e92962", "date-3.4.1": "bf268e14ef7158009bfeaec40b5fa3c7271906e88b196d958a89d4b408abe64f", + "date-3.4.1-java": "74740d914c65a922a15657c25ff0e203c16f1d0f7aa910a9ebed712afe9819c4", "debug-1.10.0": "11e28ca74875979e612444104f3972bd5ffb9e79179907d7ad46dba44bd2e7a4", - "diff-lcs-1.5.1": "273223dfb40685548436d32b4733aa67351769c7dea621da7d9dd4813e63ddfe", + "diff-lcs-1.6.0": "a1e7f7b272962f8fc769358ad00001b87cdcf32ba349d6c70c6b544613d2da2e", "drb-2.2.1": "e9d472bf785f558b96b25358bae115646da0dbfd45107ad858b0bc0d935cb340", "ffi-1.17.1": "26f6b0dbd1101e6ffc09d3ca640b2a21840cc52731ad8a7ded9fb89e5fb0fc39", "ffi-1.17.1-arm64-darwin": "a8e04f79d375742c54ee7f9fff4b4022b87200a4ec0eb082128d3b6559e67b4d", @@ -293,39 +294,41 @@ ruby.bundle_fetch( "i18n-1.14.7": "ceba573f8138ff2c0915427f1fc5bdf4aa3ab8ae88c8ce255eb3ecf0a11a5d0f", "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.9.1": "d2bdef4644052fad91c1785d48263756fe32fcac08b96a20bb15840e96550d11", - "json-2.9.1-java": "88de8c79b54fee6ae1b4854bc48b8d7089f524cbacaf4596df24f86b10896ee8", - "language_server-protocol-3.17.0.3": "3d5c58c02f44a20d972957a9febe386d7e7468ab3900ce6bd2b563dd910c6b3f", + "irb-1.15.1": "d9bca745ac4207a8b728a52b98b766ca909b86ff1a504bcde3d6f8c84faae890", + "jar-dependencies-0.5.5": "2972b9fcba4b014e6446a84b5c09674a3e8648b95b71768e729f0e8e40568059", + "json-2.10.1": "ddc88ad91a1baf3f0038c174f253af3b086d30dc74db17ca4259bbde982f94dc", + "json-2.10.1-java": "de07233fb74113af2186eb9342f8207c9be0faf289a1e2623c9b0acb8b0b0ee1", + "language_server-protocol-3.17.0.4": "c484626478664fd13482d8180947c50a8590484b1258b99b7aedb3b69df89669", "listen-3.9.0": "db9e4424e0e5834480385197c139cb6b0ae0ef28cc13310cfd1ca78377d59c67", - "logger-1.6.5": "c3cfe56d01656490ddd103d38b8993d73d86296adebc5f58cefc9ec03741e56b", + "logger-1.6.6": "dd618d24e637715472732e7eed02e33cfbdf56deaad225edd0f1f89d38024017", "minitest-5.25.4": "9cf2cae25ac4dfc90c988ebc3b917f53c054978b673273da1bd20bcb0778f947", "parallel-1.26.3": "d86babb7a2b814be9f4b81587bf0b6ce2da7d45969fab24d8ae4bf2bb4d4c7ef", - "parser-3.3.7.0": "7449011771e3e7881297859b849de26a6f4fccd515bece9520a87e7d2116119b", + "parser-3.3.7.1": "7dbe61618025519024ac72402a6677ead02099587a5538e84371b76659e6aca1", + "pp-0.6.2": "947ec3120c6f92195f8ee8aa25a7b2c5297bb106d83b41baa02983686577b6ff", + "prettyprint-0.2.0": "2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193", "psych-5.2.3": "84a54bb952d14604fea22d99938348814678782f58b12648fcdfa4d2fce859ee", "psych-5.2.3-java": "3e5425b9e8a2f41cc2707d5ef14fdc1ae908abbafb12fe45727bd63900056585", "public_suffix-6.0.1": "61d44e1cab5cbbbe5b31068481cf16976dd0dc1b6b07bd95617ef8c5e3e00c6f", "racc-1.8.1": "4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f", "racc-1.8.1-java": "54f2e6d1e1b91c154013277d986f52a90e5ececbe91465d29172e49342732b98", - "rack-2.2.10": "e4a5ee3f8f2ba45614a4498114d6dc7da1c51a0f0dd810d891906ea71d3aa72b", + "rack-2.2.11": "424c49affa19081e9255d65d861f2d7bc7d8388edc0cb608b5e6caf1dd49bb8a", "rainbow-3.1.1": "039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a", "rake-13.2.1": "46cb38dae65d7d74b6020a4ac9d48afed8eb8149c040eccf0523bec91907059d", "rb-fsevent-0.11.2": "43900b972e7301d6570f64b850a5aa67833ee7d87b458ee92805d56b7318aefe", "rb-inotify-0.11.1": "a0a700441239b0ff18eb65e3866236cd78613d6b9f78fea1f9ac47a85e47be6e", "rbs-3.8.1": "2b6ce37952e267e1d3ad330aabfadbdceac234193a60cc18f25a8f75fa949c1d", "rchardet-1.9.0": "26889486cdd83b378652baf7603f71d93e431bb11bc237b4cd8c65151af4a590", - "rdoc-6.11.0": "bec66fb9b019be64f7ba7d2cd2aecb283a3a01fef23a95b33e2349c6d1aa0040", + "rdoc-6.12.0": "7d6f706e070bffa5d18a448f24076cbfb34923a99c1eab842aa18e6ca69f56e0", "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-core-3.13.3": "25136507f4f9cf2e8977a2851e64e438b4331646054e345998714108745cdfe4", "rspec-expectations-3.13.3": "0e6b5af59b900147698ea0ff80456c4f2e69cac4394fbd392fbd1ca561f66c58", "rspec-mocks-3.13.2": "2327335def0e1665325a9b617e3af9ae20272741d80ac550336309a7c59abdef", "rspec-support-3.13.2": "cea3a2463fd9b84b9dcc9685efd80ea701aa8f7b3decb3b3ce795ed67737dbec", - "rubocop-1.70.0": "96751f8440b36a0ac6e9a8ab596900803118d83d6b83f2037bf8b3d7a5bc440e", - "rubocop-ast-1.37.0": "9513ac88aaf113d04b52912533ffe46475de1362d4aa41141b51b2455827c080", + "rubocop-1.71.2": "9a7b7501aac661a338ed7ff2a5eba78e581759e1f0d3c82362b2ca217ed3f97f", + "rubocop-ast-1.38.0": "4fdf6792fe443a9a18acb12dbc8225d0d64cd1654e41fedb30e79c18edbb26ae", "rubocop-capybara-2.21.0": "5d264efdd8b6c7081a3d4889decf1451a1cfaaec204d81534e236bc825b280ab", "rubocop-factory_bot-2.26.1": "8de13cd4edcee5ca800f255188167ecef8dbfc3d1fae9f15734e9d2e755392aa", "rubocop-performance-1.23.1": "f22f86a795f5e6a6180aac2c6fc172534b173a068d6ed3396d6460523e051b82", @@ -342,7 +345,7 @@ ruby.bundle_fetch( "terminal-table-3.0.2": "f951b6af5f3e00203fb290a669e0a85c5dd5b051b3b023392ccfd67ba5abae91", "tzinfo-2.0.6": "8daf828cc77bcf7d63b0e3bdb6caa47e2272dcfaf4fbfe46f8c3a9df087a829b", "unicode-display_width-2.6.0": "12279874bba6d5e4d2728cef814b19197dbb10d7a7837a869bab65da943b7f5a", - "webmock-3.24.0": "be01357f6fc773606337ca79f3ba332b7d52cbe5c27587671abc0572dbec7122", + "webmock-3.25.0": "573c23fc4887008c830f22da588db339ca38b6d59856fd57f5a068959474198e", "webrick-1.9.1": "b42d3c94f166f3fb73d87e9b359def9b5836c426fc8beacf38f2184a21b2a989", "websocket-1.2.11": "b7e7a74e2410b5e85c25858b26b3322f29161e300935f70a0e0d3c35e0462737", "yard-0.9.37": "a6e910399e78e613f80ba9add9ba7c394b1a935f083cccbef82903a3d2a26992", diff --git a/Rakefile b/Rakefile index 6631de5efe692..38dec3fbe5f1a 100644 --- a/Rakefile +++ b/Rakefile @@ -99,7 +99,7 @@ JAVA_RELEASE_TARGETS = %w[ //java/src/org/openqa/selenium/chromium:chromium.publish //java/src/org/openqa/selenium/devtools/v131:v131.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/v133:v133.publish //java/src/org/openqa/selenium/devtools/v85:v85.publish //java/src/org/openqa/selenium/edge:edge.publish //java/src/org/openqa/selenium/firefox:firefox.publish @@ -471,7 +471,7 @@ namespace :node do desc 'Update JavaScript changelog' task :changelog do - header = "## #{node_version}" + header = "## #{node_version}\n" update_changelog(node_version, 'javascript', 'javascript/node/selenium-webdriver/', 'javascript/node/selenium-webdriver/CHANGES.md', header) end @@ -790,7 +790,7 @@ namespace :dotnet do sh 'docfx dotnet/docs/docfx.json' rescue StandardError case $CHILD_STATUS.exitstatus - when 130 + when 133 raise 'Ensure the dotnet/tools directory is added to your PATH environment variable (e.g., `~/.dotnet/tools`)' when 255 puts '.NET documentation build failed, likely because of DevTools namespacing. This is ok; continuing' diff --git a/common/devtools/chromium/v130/BUILD.bazel b/common/devtools/chromium/v133/BUILD.bazel similarity index 100% rename from common/devtools/chromium/v130/BUILD.bazel rename to common/devtools/chromium/v133/BUILD.bazel diff --git a/common/devtools/chromium/v130/browser_protocol.pdl b/common/devtools/chromium/v133/browser_protocol.pdl similarity index 97% rename from common/devtools/chromium/v130/browser_protocol.pdl rename to common/devtools/chromium/v133/browser_protocol.pdl index 8a9325e6f6528..3d5f44cda9100 100644 --- a/common/devtools/chromium/v130/browser_protocol.pdl +++ b/common/devtools/chromium/v133/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 @@ -498,8 +499,8 @@ experimental domain Audits type AffectedRequest extends object properties # The unique request id. - Network.RequestId requestId - optional string url + optional Network.RequestId requestId + string url # Information about the frame affected by an inspector issue. type AffectedFrame extends object @@ -517,6 +518,8 @@ experimental domain Audits ExcludeDomainNonASCII ExcludeThirdPartyCookieBlockedInFirstPartySet ExcludeThirdPartyPhaseout + ExcludePortMismatch + ExcludeSchemeMismatch type CookieWarningReason extends string enum @@ -532,12 +535,35 @@ experimental domain Audits WarnDomainNonASCII WarnThirdPartyPhaseout WarnCrossSiteRedirectDowngradeChangesInclusion + WarnDeprecationTrialMetadata + WarnThirdPartyCookieHeuristic type CookieOperation extends string enum SetCookie ReadCookie + # Represents the category of insight that a cookie issue falls under. + type InsightType extends string + enum + # Cookie domain has an entry in third-party cookie migration readiness + # list: + # https://github.com/privacysandbox/privacy-sandbox-dev-support/blob/main/3pc-migration-readiness.md + GitHubResource + # Cookie is exempted due to a grace period: + # https://developers.google.com/privacy-sandbox/cookies/temporary-exceptions/grace-period + GracePeriod + # Cookie is exempted due a heuristics-based exemptiuon: + # https://developers.google.com/privacy-sandbox/cookies/temporary-exceptions/heuristics-based-exception + Heuristics + + # Information about the suggested solution to a cookie issue. + type CookieIssueInsight extends object + properties + InsightType type + # Link to table entry in third-party cookie migration readiness list. + optional string tableEntryUrl + # This information is currently necessary, as the front-end has a difficult # time finding a specific cookie. With this, we can convey specific error # information without the cookie. @@ -557,6 +583,8 @@ experimental domain Audits optional string siteForCookies optional string cookieUrl optional AffectedRequest request + # The recommended solution to the issue. + optional CookieIssueInsight insight type MixedContentResolutionStatus extends string enum @@ -626,6 +654,7 @@ experimental domain Audits CorpNotSameOriginAfterDefaultedToSameOriginByDip CorpNotSameOriginAfterDefaultedToSameOriginByCoepAndDip CorpNotSameSite + SRIMessageSignatureMismatch # Details for a request that has been blocked with the BLOCKED_BY_RESPONSE # code. Currently only used for COEP/COOP, but may be extended to include @@ -916,7 +945,7 @@ experimental domain Audits ThirdPartyCookiesBlocked NotSignedInWithIdp MissingTransientUserActivation - ReplacedByButtonMode + ReplacedByActiveMode InvalidFieldsSpecified RelyingPartyOriginIsOpaque TypeNotMatching @@ -955,6 +984,22 @@ experimental domain Audits string failureMessage optional Network.RequestId requestId + type SelectElementAccessibilityIssueReason extends string + enum + DisallowedSelectChild + DisallowedOptGroupChild + NonPhrasingContentOptionChild + InteractiveContentOptionChild + InteractiveContentLegendChild + + # This isue warns about errors in the select element content model. + type SelectElementAccessibilityIssueDetails extends object + properties + DOM.BackendNodeId nodeId + SelectElementAccessibilityIssueReason selectElementAccessibilityIssueReason + boolean hasDisallowedAttributes + + type StyleSheetLoadingIssueReason extends string enum LateImportRule @@ -1015,6 +1060,7 @@ experimental domain Audits FederatedAuthUserInfoRequestIssue PropertyRuleIssue SharedDictionaryIssue + SelectElementAccessibilityIssue # This struct holds a list of optional fields with additional information # specific to the kind of issue. When adding a new issue code, please also @@ -1042,6 +1088,7 @@ experimental domain Audits optional PropertyRuleIssueDetails propertyRuleIssueDetails optional FederatedAuthUserInfoRequestIssueDetails federatedAuthUserInfoRequestIssueDetails optional SharedDictionaryIssueDetails sharedDictionaryIssueDetails + optional SelectElementAccessibilityIssueDetails selectElementAccessibilityIssueDetails # A unique id for a DevTools inspector issue. Allows other entities (e.g. # exceptions, CDP message, console messages, etc.) to reference an issue. @@ -1365,18 +1412,21 @@ domain Browser experimental type PermissionType extends string enum - accessibilityEvents + ar audioCapture - backgroundSync + automaticFullscreen backgroundFetch + backgroundSync + cameraPanTiltZoom capturedSurfaceControl clipboardReadWrite clipboardSanitizedWrite displayCapture durableStorage - flash geolocation + handTracking idleDetection + keyboardLock localFonts midi midiSysex @@ -1384,16 +1434,19 @@ domain Browser notifications paymentHandler periodicBackgroundSync + pointerLock protectedMediaIdentifier sensors - storageAccess + smartCard speakerSelection + storageAccess topLevelStorageAccess videoCapture - videoCapturePanTiltZoom + vr wakeLockScreen wakeLockSystem webAppInstallation + webPrinting windowManagement experimental type PermissionSetting extends string @@ -1666,6 +1719,14 @@ experimental domain CSS # Matches of CSS rules applicable to the pseudo style. array of RuleMatch matches + # CSS style coming from animations with the name of the animation. + type CSSAnimationStyle extends object + properties + # The name of the animation. + optional string name + # The style coming from the animation. + CSSStyle style + # Inherited CSS rule collection from ancestor node. type InheritedStyleEntry extends object properties @@ -1674,6 +1735,14 @@ experimental domain CSS # Matches of CSS rules matching the ancestor node in the style inheritance chain. array of RuleMatch matchedCSSRules + # Inherited CSS style collection for animated styles from ancestor node. + type InheritedAnimatedStyleEntry extends object + properties + # Styles coming from the animations of the ancestor, if any, in the style inheritance chain. + optional array of CSSAnimationStyle animationStyles + # The style coming from the transitions of the ancestor, if any, in the style inheritance chain. + optional CSSStyle transitionsStyle + # Inherited pseudo element matches from pseudos of an ancestor node. type InheritedPseudoElementMatches extends object properties @@ -1796,6 +1865,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. @@ -1807,6 +1879,7 @@ experimental domain CSS LayerRule ScopeRule StyleRule + StartingStyleRule # CSS coverage information. type RuleUsage extends object @@ -1949,6 +2022,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 @@ -1985,6 +2060,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 @@ -2189,6 +2273,14 @@ experimental domain CSS # Element pseudo classes to force when computing the element's style. array of string forcedPseudoClasses + # Ensures that the given node is in its starting-style state. + command forceStartingStyle + parameters + # The element id for which to force the starting-style state. + DOM.NodeId nodeId + # Boolean indicating if this is on or off. + boolean forced + command getBackgroundColors parameters # Id of the node to get background colors for. @@ -2214,6 +2306,34 @@ experimental domain CSS # Computed style for the specified DOM node. array of CSSComputedStyleProperty computedStyle + # Resolve the specified values in the context of the provided element. + # For example, a value of '1em' is evaluated according to the computed + # 'font-size' of the element and a value 'calc(1px + 2px)' will be + # resolved to '3px'. + command resolveValues + parameters + # Substitution functions (var()/env()/attr()) and cascade-dependent + # keywords (revert/revert-layer) do not work. + array of string values + # Id of the node in whose context the expression is evaluated + DOM.NodeId nodeId + # Only longhands and custom property names are accepted. + optional string propertyName + # Pseudo element type, only works for pseudo elements that generate + # elements in the tree, such as ::before and ::after. + experimental optional DOM.PseudoType pseudoType + # Pseudo element custom ident. + experimental optional string pseudoIdentifier + returns + array of string results + + experimental command getLonghandProperties + parameters + string shorthandName + string value + returns + array of CSSProperty longhandProperties + # Returns the styles defined inline (explicitly in the "style" attribute and implicitly, using DOM # attributes) for a DOM node identified by `nodeId`. command getInlineStylesForNode @@ -2225,6 +2345,20 @@ experimental domain CSS # Attribute-defined element style (e.g. resulting from "width=20 height=100%"). optional CSSStyle attributesStyle + # Returns the styles coming from animations & transitions + # including the animation & transition styles coming from inheritance chain. + experimental command getAnimatedStylesForNode + parameters + DOM.NodeId nodeId + returns + # Styles coming from animations. + optional array of CSSAnimationStyle animationStyles + # Style coming from transitions. + optional CSSStyle transitionsStyle + # Inherited style entries for animationsStyle and transitionsStyle from + # the inheritance chain of the element. + optional array of InheritedAnimatedStyleEntry inherited + # Returns requested styles for a DOM node identified by `nodeId`. command getMatchedStylesForNode parameters @@ -2299,6 +2433,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. @@ -2466,6 +2610,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 @@ -2675,8 +2824,10 @@ domain DOM enum first-line first-letter + checkmark before after + picker-icon marker backdrop column @@ -2689,8 +2840,7 @@ domain DOM first-line-inherited scroll-marker scroll-marker-group - scroll-next-button - scroll-prev-button + scroll-button scrollbar scrollbar-thumb scrollbar-button @@ -2707,8 +2857,6 @@ domain DOM placeholder file-selector-button details-content - select-fallback-button - select-fallback-button-text picker # Shadow root type. @@ -3386,15 +3534,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 @@ -4221,7 +4371,6 @@ domain Emulation gyroscope linear-acceleration magnetometer - proximity relative-orientation experimental type SensorMetadata extends object @@ -5671,7 +5820,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. @@ -5925,6 +6076,7 @@ domain Network corp-not-same-origin-after-defaulted-to-same-origin-by-dip corp-not-same-origin-after-defaulted-to-same-origin-by-coep-and-dip corp-not-same-site + sri-message-signature-mismatch # The reason why request was blocked. type CorsError extends string @@ -6185,6 +6337,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 @@ -6364,6 +6517,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 @@ -7220,6 +7377,9 @@ domain Network # are represented by the invalid cookie line string instead of a proper cookie. array of BlockedSetCookieWithReason blockedCookies # Raw response headers as they were received over the wire. + # Duplicate headers in the response are represented as a single key with their values + # concatentated using `\n` as the separator. + # See also `headersText` that contains verbatim text for HTTP/1.*. Headers headers # The IP address space of the resource. The address space can only be determined once the transport # established the connection, so we can't send it in `requestWillBeSentExtraInfo`. @@ -7248,6 +7408,9 @@ domain Network # Request identifier. Used to match this information to another responseReceived event. RequestId requestId # Raw response headers as they were received over the wire. + # Duplicate headers in the response are represented as a single key with their values + # concatentated using `\n` as the separator. + # See also `headersText` that contains verbatim text for HTTP/1.*. Headers headers # Fired exactly once for each Trust Token operation. Depending on @@ -7273,6 +7436,7 @@ domain Network InternalError UnknownError FulfilledLocally + SiteIssuerLimit TrustTokenOperationType type RequestId requestId # Top level origin. The context in which the operation was attempted. @@ -7483,6 +7647,19 @@ domain Network returns LoadNetworkResourcePageResult resource + # Sets Controls for third-party cookie access + # Page reload is required before the new cookie bahavior will be observed + experimental command setCookieControls + parameters + # Whether 3pc restriction is enabled. + boolean enableThirdPartyCookieRestriction + + # Whether 3pc grace period exception should be enabled; false by default. + boolean disableThirdPartyCookieMetadata + + # Whether 3pc heuristics exceptions should be enabled; false by default. + boolean disableThirdPartyCookieHeuristics + # This domain provides various functionality related to drawing atop the inspected page. experimental domain Overlay depends on DOM @@ -7924,8 +8101,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 @@ -8087,13 +8264,16 @@ domain Page controlled-frame cross-origin-isolated deferred-fetch + deferred-fetch-minimal 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 @@ -9362,7 +9542,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. @@ -9518,6 +9699,7 @@ domain Page EmbedderExtensionMessagingForOpenPort EmbedderExtensionSentMessageToCachedFrame RequestedByWebViewClient + PostMessageByWebViewClient # Types of not restored reasons for back-forward cache. experimental type BackForwardCacheNotRestoredReasonType extends string @@ -10712,6 +10894,7 @@ experimental domain Storage SignedInt64AsBase10 destinationLimitPriority AttributionReportingAggregatableDebugReportingConfig aggregatableDebugReportingConfig optional AttributionScopesData scopesData + integer maxEventLevelReports experimental type AttributionReportingSourceRegistrationResult extends string enum @@ -10822,6 +11005,7 @@ experimental domain Storage excessiveReportingOrigins noHistograms insufficientBudget + insufficientNamedBudget noMatchingSourceFilterData notRegistered prohibitedByBrowserPolicy @@ -11113,6 +11297,10 @@ domain Target parameters # The initial URL the page will be navigated to. An empty string indicates about:blank. string url + # Frame left origin in DIP (headless chrome only). + experimental optional integer left + # Frame top origin in DIP (headless chrome only). + experimental optional integer top # Frame width in DIP (headless chrome only). optional integer width # Frame height in DIP (headless chrome only). @@ -11460,6 +11648,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 @@ -11716,6 +11906,7 @@ experimental domain WebAudio suspended running closed + interrupted # Enum of AudioNode types type NodeType extends string @@ -11991,6 +12182,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. @@ -12094,6 +12292,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 @@ -12320,6 +12532,15 @@ experimental domain Preload array of RuleSetId ruleSetIds array of DOM.BackendNodeId nodeIds + # Chrome manages different types of preloads together using a + # concept of preloading pipeline. For example, if a site uses a + # SpeculationRules for prerender, Chrome first starts a prefetch and + # then upgrades it to prerender. + # + # CDP events for them are emitted separately but they share + # `PreloadPipelineId`. + type PreloadPipelineId extends string + command enable command disable @@ -12407,6 +12628,8 @@ experimental domain Preload WindowClosed SlowNetwork OtherPrerenderedPageActivated + V8OptimizerDisabled + PrerenderFailedDuringPrefetch # Fired when a preload enabled state is updated. event preloadEnabledStateUpdated @@ -12474,6 +12697,7 @@ experimental domain Preload event prefetchStatusUpdated parameters PreloadingAttemptKey key + PreloadPipelineId pipelineId # The frame id of the frame initiating prefetch. Page.FrameId initiatingFrameId string prefetchUrl @@ -12492,6 +12716,7 @@ experimental domain Preload event prerenderStatusUpdated parameters PreloadingAttemptKey key + PreloadPipelineId pipelineId PreloadingStatus status optional PrerenderFinalStatus prerenderStatus # This is used to give users more information about the name of Mojo interface diff --git a/common/devtools/chromium/v130/js_protocol.pdl b/common/devtools/chromium/v133/js_protocol.pdl similarity index 98% rename from common/devtools/chromium/v130/js_protocol.pdl rename to common/devtools/chromium/v133/js_protocol.pdl index 8dad9c98de9f6..52f3b02ceb80b 100644 --- a/common/devtools/chromium/v130/js_protocol.pdl +++ b/common/devtools/chromium/v133/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 @@ -632,6 +641,8 @@ domain Debugger Runtime.ExecutionContextId executionContextId # Content hash of the script, SHA-256. string hash + # For Wasm modules, the content of the `build_id` custom section. + string buildId # Embedder-specific auxiliary data likely matching {isDefault: boolean, type: 'default'|'isolated'|'worker', frameId: string} optional object executionContextAuxData # URL of source map associated with script (if any). @@ -671,6 +682,8 @@ domain Debugger Runtime.ExecutionContextId executionContextId # Content hash of the script, SHA-256. string hash + # For Wasm modules, the content of the `build_id` custom section. + string buildId # Embedder-specific auxiliary data likely matching {isDefault: boolean, type: 'default'|'isolated'|'worker', frameId: string} optional object executionContextAuxData # True, if this script is generated as a result of the live edit operation. @@ -689,8 +702,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/selenium_manager.bzl b/common/selenium_manager.bzl index 7474f4e013967..d80c0fafd8397 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 = "8788f16e136171dd78520849c4d4d39d0d3f536604deec8f07171a2b7f0bb258", - url = "https://github.com/SeleniumHQ/selenium_manager_artifacts/releases/download/selenium-manager-a0ced92/selenium-manager-linux", + sha256 = "9d9f1306f11a0b8aee174e01e21195177f031e12a7d473cf565de0db69bd504d", + url = "https://github.com/SeleniumHQ/selenium_manager_artifacts/releases/download/selenium-manager-14ef6b5/selenium-manager-linux", ) http_file( name = "download_sm_macos", executable = True, - sha256 = "879cd6226bf24524e389fb8f044e5351a38c50083bd6d529dc0a8f8d9f13cc91", - url = "https://github.com/SeleniumHQ/selenium_manager_artifacts/releases/download/selenium-manager-a0ced92/selenium-manager-macos", + sha256 = "98bb3c77965ddd0892f2a70168aa4a6b9a6e3ed98cd850783461c428f9dc4ffe", + url = "https://github.com/SeleniumHQ/selenium_manager_artifacts/releases/download/selenium-manager-14ef6b5/selenium-manager-macos", ) http_file( name = "download_sm_windows", executable = True, - sha256 = "746b57eadbd3fe5439c8adea811ed36c4977ee359c7e1caddc3e0a7a6dcfbed1", - url = "https://github.com/SeleniumHQ/selenium_manager_artifacts/releases/download/selenium-manager-a0ced92/selenium-manager-windows.exe", + sha256 = "0bb96fafc3a38d35d1dd6e6eb350104dcdebd268a6c4b6f771055b324288718a", + url = "https://github.com/SeleniumHQ/selenium_manager_artifacts/releases/download/selenium-manager-14ef6b5/selenium-manager-windows.exe", ) def _selenium_manager_artifacts_impl(_ctx): diff --git a/dotnet/CHANGELOG b/dotnet/CHANGELOG index 7407434f7c610..eb9e3a2b85fcd 100644 --- a/dotnet/CHANGELOG +++ b/dotnet/CHANGELOG @@ -1,3 +1,62 @@ +v4.29.0 +====== +* Add CDP for Chrome 133 and remove 130 +* [dotnet] [bidi] Add network SetCacheBehavior command (#15133) +* [dotnet] Annotate nullability on devtools event args (#15134) +* [dotnet] Annotate nullability for `DriverService` and chromium/safari services (#15101) +* [dotnet] Add nullability to `Command` type (#15147) +* [dotnet] Annotate nullable reference types on input devices (#14804) +* [dotnet] Annotate nullability on `SendingRemoteHttpRequestEventArgs` (#15148) +* [dotnet] Fix obvious code style formatting +* [dotnet] Address some build warnings (#15157) +* [dotnet] Enhance Print PageSize class to support for predefined well-known sizes (#15144) +* [dotnet] Improve bidi exception when it is not enabled (#15163) +* [dotnet] Annotate nullability on `DriverOptions` (#15167) +* [dotnet] Annotate nullability on `ChromiumOptions` (#15173) +* [dotnet] Annotate nullability on interactions (#15152) +* [dotnet] [bidi] Use JsonSerializerContext to be AOT friendly (#15162) +* [dotnet] Annotate nullability on chrome-based driver services (#15154) +* [dotnet] Simplify and modernize `DevToolsDomains.InitializeDomains` (#15198) +* [dotnet] Add nullability to Chromium configuration types (#15204) +* [dotnet] Allow UTF-16 tolerant string converter as a dictionary key (#15203) +* [dotnet] Fix webauth credential to allow nullable `rpID` (#15201) +* [dotnet] [bidi] Avoid polymorphic commands to be more statically easier (#15202) +* [dotnet] Optimize reflection in `JsonEnumMemberConverter` (#15205) +* [dotnet] Annotate nullability on firefox and chromium options (#15206) +* [dotnet] Annotate nullability on `Actions` type (#15208) +* [dotnet] Fix marionette host Firefox argument (#15153) +* [dotnet] Make it easier to read bidi logs +* [dotnet] Annotate nullability on `Navigate()` and `SwitchTo()` (#15211) +* [dotnet] Annotate nullability on Firefox profile (#15207) +* [dotnet] Annotate nullability on network interactions (#15209) +* [dotnet] Add nullability to `Manage()` (#15210) +* [dotnet] Remove Firefox CDP (#15200) +* [dotnet] Fully annotate nullability on `HttpCommandExecutor` (#15110) +* [dotnet] Annotate nullability on `SafariOptions`, error, and enums (#15219) +* [dotnet] Fix `JavaScriptEngine.ScriptCallbackBindings` not containing new bindings (#15221) +* [dotnet] Handle nullability on `WebElement` (#15225) +* [dotnet] Annotate nullability on `FirefoxDriverService` (#15220) +* [dotnet] Add nullability annotations to devtools domains (#15143) +* [dotnet] Annotate nullability on Domains (#15237) +* [dotnet] Add not-null `Response.Value` helper (#15243) +* [dotnet] Annotate nullability on `JavaScript` protocol (#15238) +* [dotnet] Annotate nullability on `Target` protocol (#15240) +* [dotnet] Annotate nullability on `Log` protocol (#15239) +* [dotnet] Annotate nullability on `JavaScriptEngine` and related types (#15218) +* [dotnet] Annotate nullability on `DevToolsSession` (#15244) +* [dotnet] [bidi] Support getting of client windows in browser module (#15241) +* [dotnet][bidi] Remove json serialization from transport layer (#15250) +* [dotnet][bidi] Add BrowsingContext.OnNavigationCommitted event (#15253) +* [dotnet][bidi] Use subscription id for events to unsubscribe (#15251) +* [dotnet][bidi] Add optional PromptUnload parameter when closing BrowsingContext and compiler helps (#15254) +* [dotnet] Annotate nullability on `DevTools` and event args (#15252) +* [dotnet] Annotate nullability on platform-specific WebDrivers (#15236) +* [dotnet] Add back in a public parameterless constructor to `HttpRequestData` (#15258) +* [dotnet] Simplify user creation of network types (#15267) +* [dotnet][bidi] Remove AsBiDiContextAsync helper to avoid disposal issue (#15279) +* [dotnet] Possibility to override underlying HttpClient/HttpClientHandler for all HTTP requests (#15283) +* [dotnet][bidi] Underlying local/remote script number as double (#15301) + v4.28.0 ====== * Add CDP for Chrome 132 and remove 129 diff --git a/dotnet/selenium-dotnet-version.bzl b/dotnet/selenium-dotnet-version.bzl index 8de34da3d247b..8d9df7c212815 100644 --- a/dotnet/selenium-dotnet-version.bzl +++ b/dotnet/selenium-dotnet-version.bzl @@ -1,6 +1,6 @@ # BUILD FILE SYNTAX: STARLARK -SE_VERSION = "4.29.0-nightly202501201850" +SE_VERSION = "4.29.0" ASSEMBLY_VERSION = "4.0.0.0" SUPPORTED_NET_STANDARD_VERSIONS = ["netstandard2.0"] @@ -8,7 +8,7 @@ SUPPORTED_DEVTOOLS_VERSIONS = [ "v85", "v131", "v132", - "v130", + "v133", ] ASSEMBLY_COMPANY = "Selenium Committers" diff --git a/dotnet/src/webdriver/DevTools/DevToolsDomains.cs b/dotnet/src/webdriver/DevTools/DevToolsDomains.cs index bf2246bb0bffa..9e0182037d923 100644 --- a/dotnet/src/webdriver/DevTools/DevToolsDomains.cs +++ b/dotnet/src/webdriver/DevTools/DevToolsDomains.cs @@ -38,7 +38,7 @@ public abstract class DevToolsDomains // added to this array and to the method below. private static int[] SupportedDevToolsVersions => [ - 130, + 133, 132, 131, 85 @@ -46,7 +46,7 @@ public abstract class DevToolsDomains private static DevToolsDomains? CreateDevToolsDomain(int protocolVersion, DevToolsSession session) => protocolVersion switch { - 130 => new V130.V130Domains(session), + 133 => new V133.V133Domains(session), 132 => new V132.V132Domains(session), 131 => new V131.V131Domains(session), 85 => new V85.V85Domains(session), diff --git a/dotnet/src/webdriver/DevTools/v130/V130Domains.cs b/dotnet/src/webdriver/DevTools/v133/V133Domains.cs similarity index 80% rename from dotnet/src/webdriver/DevTools/v130/V130Domains.cs rename to dotnet/src/webdriver/DevTools/v133/V133Domains.cs index 75e7bac035802..40c62e0259670 100644 --- a/dotnet/src/webdriver/DevTools/v130/V130Domains.cs +++ b/dotnet/src/webdriver/DevTools/v133/V133Domains.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 @@ -21,21 +21,21 @@ #nullable enable -namespace OpenQA.Selenium.DevTools.V130 +namespace OpenQA.Selenium.DevTools.V133 { /// - /// Class containing the domain implementation for version 130 of the DevTools Protocol. + /// Class containing the domain implementation for version 133 of the DevTools Protocol. /// - public class V130Domains : DevToolsDomains + public class V133Domains : DevToolsDomains { private readonly DevToolsSessionDomains domains; /// - /// Initializes a new instance of the V130Domains class. + /// Initializes a new instance of the V133Domains class. /// /// The DevToolsSession to use with this set of domains. /// If is . - public V130Domains(DevToolsSession session) + public V133Domains(DevToolsSession session) { this.domains = new DevToolsSessionDomains(session ?? throw new ArgumentNullException(nameof(session))); } @@ -43,7 +43,7 @@ public V130Domains(DevToolsSession session) /// /// Gets the DevTools Protocol version for which this class is valid. /// - public static int DevToolsVersion => 130; + public static int DevToolsVersion => 133; /// /// Gets the version-specific domains for the DevTools session. This value must be cast to a version specific type to be at all useful. @@ -53,21 +53,21 @@ public V130Domains(DevToolsSession session) /// /// Gets the object used for manipulating network information in the browser. /// - public override DevTools.Network Network => new V130Network(domains.Network, domains.Fetch); + public override DevTools.Network Network => new V133Network(domains.Network, domains.Fetch); /// /// Gets the object used for manipulating the browser's JavaScript execution. /// - public override JavaScript JavaScript => new V130JavaScript(domains.Runtime, domains.Page); + public override JavaScript JavaScript => new V133JavaScript(domains.Runtime, domains.Page); /// /// Gets the object used for manipulating DevTools Protocol targets. /// - public override DevTools.Target Target => new V130Target(domains.Target); + public override DevTools.Target Target => new V133Target(domains.Target); /// /// Gets the object used for manipulating the browser's logs. /// - public override DevTools.Log Log => new V130Log(domains.Log); + public override DevTools.Log Log => new V133Log(domains.Log); } } diff --git a/dotnet/src/webdriver/DevTools/v130/V130JavaScript.cs b/dotnet/src/webdriver/DevTools/v133/V133JavaScript.cs similarity index 95% rename from dotnet/src/webdriver/DevTools/v130/V130JavaScript.cs rename to dotnet/src/webdriver/DevTools/v133/V133JavaScript.cs index db6d4300720ab..0bd6ceec3c60e 100644 --- a/dotnet/src/webdriver/DevTools/v130/V130JavaScript.cs +++ b/dotnet/src/webdriver/DevTools/v133/V133JavaScript.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,31 +17,31 @@ // under the License. // -using OpenQA.Selenium.DevTools.V130.Page; -using OpenQA.Selenium.DevTools.V130.Runtime; +using OpenQA.Selenium.DevTools.V133.Page; +using OpenQA.Selenium.DevTools.V133.Runtime; using System; using System.Collections.Generic; using System.Threading.Tasks; #nullable enable -namespace OpenQA.Selenium.DevTools.V130 +namespace OpenQA.Selenium.DevTools.V133 { /// - /// Class containing the JavaScript implementation for version 130 of the DevTools Protocol. + /// Class containing the JavaScript implementation for version 133 of the DevTools Protocol. /// - public class V130JavaScript : JavaScript + public class V133JavaScript : JavaScript { private readonly RuntimeAdapter runtime; private readonly 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. /// If or are . - public V130JavaScript(RuntimeAdapter runtime, PageAdapter page) + public V133JavaScript(RuntimeAdapter runtime, PageAdapter page) { this.runtime = runtime ?? throw new ArgumentNullException(nameof(runtime)); this.page = page ?? throw new ArgumentNullException(nameof(page)); diff --git a/dotnet/src/webdriver/DevTools/v130/V130Log.cs b/dotnet/src/webdriver/DevTools/v133/V133Log.cs similarity index 87% rename from dotnet/src/webdriver/DevTools/v130/V130Log.cs rename to dotnet/src/webdriver/DevTools/v133/V133Log.cs index d4fd7d4070c85..0f1243541ba05 100644 --- a/dotnet/src/webdriver/DevTools/v130/V130Log.cs +++ b/dotnet/src/webdriver/DevTools/v133/V133Log.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,27 +17,27 @@ // under the License. // -using OpenQA.Selenium.DevTools.V130.Log; +using OpenQA.Selenium.DevTools.V133.Log; using System; using System.Threading.Tasks; #nullable enable -namespace OpenQA.Selenium.DevTools.V130 +namespace OpenQA.Selenium.DevTools.V133 { /// - /// Class containing the browser's log as referenced by version 130 of the DevTools Protocol. + /// Class containing the browser's log as referenced by version 133 of the DevTools Protocol. /// - public class V130Log : DevTools.Log + public class V133Log : DevTools.Log { - private readonly LogAdapter adapter; + private LogAdapter adapter; /// - /// Initializes a new instance of the class. + /// Initializes a new instance of the class. /// /// The adapter for the Log domain. /// If is . - public V130Log(LogAdapter adapter) + public V133Log(LogAdapter adapter) { this.adapter = adapter ?? throw new ArgumentNullException(nameof(adapter)); this.adapter.EntryAdded += OnAdapterEntryAdded; diff --git a/dotnet/src/webdriver/DevTools/v130/V130Network.cs b/dotnet/src/webdriver/DevTools/v133/V133Network.cs similarity index 96% rename from dotnet/src/webdriver/DevTools/v130/V130Network.cs rename to dotnet/src/webdriver/DevTools/v133/V133Network.cs index 74315810d2d34..d23783ff89ed4 100644 --- a/dotnet/src/webdriver/DevTools/v130/V130Network.cs +++ b/dotnet/src/webdriver/DevTools/v133/V133Network.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,8 +17,8 @@ // under the License. // -using OpenQA.Selenium.DevTools.V130.Fetch; -using OpenQA.Selenium.DevTools.V130.Network; +using OpenQA.Selenium.DevTools.V133.Fetch; +using OpenQA.Selenium.DevTools.V133.Network; using System; using System.Collections.Generic; using System.Text; @@ -26,23 +26,23 @@ #nullable enable -namespace OpenQA.Selenium.DevTools.V130 +namespace OpenQA.Selenium.DevTools.V133 { /// - /// Class providing functionality for manipulating network calls using version 130 of the DevTools Protocol + /// Class providing functionality for manipulating network calls using version 133 of the DevTools Protocol /// - public class V130Network : DevTools.Network + public class V133Network : 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. /// If or are . - public V130Network(NetworkAdapter network, FetchAdapter fetch) + public V133Network(NetworkAdapter network, FetchAdapter fetch) { this.network = network ?? throw new ArgumentNullException(nameof(network)); this.fetch = fetch ?? throw new ArgumentNullException(nameof(fetch)); @@ -249,9 +249,9 @@ public override async Task ContinueWithAuth(string requestId, string? userName, await fetch.ContinueWithAuth(new ContinueWithAuthCommandSettings() { RequestId = requestId, - AuthChallengeResponse = new V130.Fetch.AuthChallengeResponse() + AuthChallengeResponse = new V133.Fetch.AuthChallengeResponse() { - Response = V130.Fetch.AuthChallengeResponseResponseValues.ProvideCredentials, + Response = V133.Fetch.AuthChallengeResponseResponseValues.ProvideCredentials, Username = userName, Password = password } @@ -268,9 +268,9 @@ public override async Task CancelAuth(string requestId) await fetch.ContinueWithAuth(new ContinueWithAuthCommandSettings() { RequestId = requestId, - AuthChallengeResponse = new OpenQA.Selenium.DevTools.V130.Fetch.AuthChallengeResponse() + AuthChallengeResponse = new OpenQA.Selenium.DevTools.V133.Fetch.AuthChallengeResponse() { - Response = V130.Fetch.AuthChallengeResponseResponseValues.CancelAuth + Response = V133.Fetch.AuthChallengeResponseResponseValues.CancelAuth } }).ConfigureAwait(false); } diff --git a/dotnet/src/webdriver/DevTools/v130/V130Target.cs b/dotnet/src/webdriver/DevTools/v133/V133Target.cs similarity index 94% rename from dotnet/src/webdriver/DevTools/v130/V130Target.cs rename to dotnet/src/webdriver/DevTools/v133/V133Target.cs index 4b43db8f8af35..7a1139f665450 100644 --- a/dotnet/src/webdriver/DevTools/v130/V130Target.cs +++ b/dotnet/src/webdriver/DevTools/v133/V133Target.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,7 +17,7 @@ // under the License. // -using OpenQA.Selenium.DevTools.V130.Target; +using OpenQA.Selenium.DevTools.V133.Target; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -25,21 +25,21 @@ #nullable enable -namespace OpenQA.Selenium.DevTools.V130 +namespace OpenQA.Selenium.DevTools.V133 { /// - /// Class providing functionality for manipulating targets for version 130 of the DevTools Protocol + /// Class providing functionality for manipulating targets for version 133 of the DevTools Protocol /// - public class V130Target : DevTools.Target + public class V133Target : DevTools.Target { private readonly TargetAdapter adapter; /// - /// Initializes a new instance of the class. + /// Initializes a new instance of the class. /// /// The adapter for the Target domain. /// If is . - public V130Target(TargetAdapter adapter) + public V133Target(TargetAdapter adapter) { this.adapter = adapter ?? throw new ArgumentNullException(nameof(adapter)); adapter.DetachedFromTarget += OnDetachedFromTarget; diff --git a/dotnet/test/common/CustomDriverConfigs/StableChannelChromeDriver.cs b/dotnet/test/common/CustomDriverConfigs/StableChannelChromeDriver.cs index 0f9edb86f98cf..46e7021af46f7 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 = "132" }; } + get { return new ChromeOptions() { BrowserVersion = "133" }; } } } } diff --git a/dotnet/test/common/DevTools/DevToolsConsoleTest.cs b/dotnet/test/common/DevTools/DevToolsConsoleTest.cs index 44b555aab8875..6e104fa059ef5 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 = V132; + using CurrentCdpVersion = V133; [TestFixture] public class DevToolsConsoleTest : DevToolsTestFixture diff --git a/dotnet/test/common/DevTools/DevToolsLogTest.cs b/dotnet/test/common/DevTools/DevToolsLogTest.cs index 720a56bbc8d6d..4275c3ae43e62 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 = V132; + using CurrentCdpVersion = V133; [TestFixture] public class DevToolsLogTest : DevToolsTestFixture diff --git a/dotnet/test/common/DevTools/DevToolsNetworkTest.cs b/dotnet/test/common/DevTools/DevToolsNetworkTest.cs index b9c4dac4220d0..c708d040f7753 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 = V132; + using CurrentCdpVersion = V133; [TestFixture] public class DevToolsNetworkTest : DevToolsTestFixture diff --git a/dotnet/test/common/DevTools/DevToolsPerformanceTest.cs b/dotnet/test/common/DevTools/DevToolsPerformanceTest.cs index 9995818f1a82b..4d9774d2ff207 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 = V132; + using CurrentCdpVersion = V133; [TestFixture] public class DevToolsPerformanceTest : DevToolsTestFixture diff --git a/dotnet/test/common/DevTools/DevToolsProfilerTest.cs b/dotnet/test/common/DevTools/DevToolsProfilerTest.cs index 2fd75bff692c7..87ca23b967d6c 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 = V132; + using CurrentCdpVersion = V133; [TestFixture] public class DevToolsProfilerTest : DevToolsTestFixture diff --git a/dotnet/test/common/DevTools/DevToolsSecurityTest.cs b/dotnet/test/common/DevTools/DevToolsSecurityTest.cs index 4c6ad4bc53cab..e7fe69950dccb 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 = V132; + using CurrentCdpVersion = V133; [TestFixture] public class DevToolsSecurityTest : DevToolsTestFixture diff --git a/dotnet/test/common/DevTools/DevToolsTabsTest.cs b/dotnet/test/common/DevTools/DevToolsTabsTest.cs index 2768f279a8ec9..38f0a680bc880 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 = V132; + using CurrentCdpVersion = V133; [TestFixture] public class DevToolsTabsTest : DevToolsTestFixture diff --git a/dotnet/test/common/DevTools/DevToolsTargetTest.cs b/dotnet/test/common/DevTools/DevToolsTargetTest.cs index 7ba4b7f4d577f..694ec0eed7849 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 = V132; + using CurrentCdpVersion = V133; [TestFixture] public class DevToolsTargetTest : DevToolsTestFixture { - private int id = 132; + private int id = 133; [Test] [IgnoreBrowser(Selenium.Browser.IE, "IE does not support Chrome DevTools Protocol")] diff --git a/java/CHANGELOG b/java/CHANGELOG index 06ab180db0d04..9f19cbbb45ca1 100644 --- a/java/CHANGELOG +++ b/java/CHANGELOG @@ -1,3 +1,20 @@ +v4.29.0 +====== +* Add CDP for Chrome 133 and remove 130 +* [java] Ensure purging dead nodes service interval is configurable (#15175) +* [java] Ensure Selenium logging options are respected if java logging properties are not set (#15197) +* [java] Do not enable CDP deprecation warning if BiDi enabled (#15170) +* [java] Remove Firefox CDP (#15200) +* [java] Close the HttpClient if possible +* [java] Avoid augmenting CDP for Firefox (#15271) +* [java] Remove deprecated non-w3c compliant NetworkConnection interface (#15270) +* [java] Avoid downloading not needed browsers #15261 +* [java] Fix return type and docstring for `getDownloadableFiles` (#15293) +* [java] Refine logger initialization with correct class literal (#15289) +* [java][bidi] Implement getClientWindows method (#14869) +* [grid] Add default sessionTimeout to NodeStatus to increase backward compatibility (#15229) +* [grid] Node flag `register-shutdown-on-failure` (#15297) + v4.28.1 ====== * [java]: Add Locale.ROOT to avoid port formatting issues for all drivers (#15121) diff --git a/java/maven_install.json b/java/maven_install.json index e5101de5504bd..8c5536e4ed7d5 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": 1099657782, - "__RESOLVED_ARTIFACTS_HASH": -937269061, + "__INPUT_ARTIFACTS_HASH": -1823190269, + "__RESOLVED_ARTIFACTS_HASH": 2003795494, "artifacts": { "com.beust:jcommander": { "shasums": { @@ -68,17 +68,17 @@ }, "com.github.spotbugs:spotbugs": { "shasums": { - "jar": "a4a29bc8c1080e03bfc33bee2aa8f5f37003c8a568fff034a39f126623b7b536", - "sources": "310d5b46d76d06698303b21a26482d070c04df78fe0807b8f734ca6477cc6028" + "jar": "f983f79cdee9d567f05886006cd42ce7489d990fb7175bcc5792541a00057549", + "sources": "8fe4015f36346bef7ba66b038faad9563f133ad64615e45c7132ef721da5d48f" }, - "version": "4.9.0" + "version": "4.9.1" }, "com.github.spotbugs:spotbugs-annotations": { "shasums": { - "jar": "c13d24d43609a1418472f046d739bceda714ed7aa500e0589c872e0d684a47da", + "jar": "7ff76e691441580bc26589eaf1c3be18a8c01a593e32bcce257c44491c2a61cc", "sources": "990ad9f3500499a99466b7c1e01284f4f41d1499358e7dc38c8defc59dab114c" }, - "version": "4.9.0" + "version": "4.9.1" }, "com.github.stephenc.jcip:jcip-annotations": { "shasums": { @@ -117,10 +117,10 @@ }, "com.google.code.gson:gson": { "shasums": { - "jar": "57928d6e5a6edeb2abd3770a8f95ba44dce45f3b23b7a9dc2b309c581552a78b", - "sources": "49a853f71bc874ee1898a4ad5009b57d0c536e5a998b3890253ffbf4b7276ad3" + "jar": "ebee13d5fb7477cd7f1cc010e0c356df8ca80709715248da97f79e35ccb4fbec", + "sources": "c5ab4ceb195f2a9278058d6a396c4872a1a07ed8b53fe80230dfd3f173d7cf56" }, - "version": "2.11.0" + "version": "2.12.1" }, "com.google.errorprone:error_prone_annotations": { "shasums": { @@ -214,24 +214,24 @@ }, "io.grpc:grpc-api": { "shasums": { - "jar": "a8d3d6dcc71f3ab613d668842282b488bdd93d3e99a0ef5dca7eee6fa734c283", - "sources": "766c0f64e4cdf2189241df8a0e0e2d5ce65e60a4a29bd82f295b0544e2fedc77" + "jar": "45faf2ac1bf2791e8fdabce53684a86b62c99b84cba26fb13a5ba3f4abf80d6c", + "sources": "4797fb5b5fb495df9da6995792167862cef60ed2e392776c434d5df4098f1168" }, - "version": "1.69.1" + "version": "1.70.0" }, "io.grpc:grpc-context": { "shasums": { - "jar": "45ef95b8c158a8b5bdd3acb67b9e682ef25414bb148f488ec847438ab64715d4", - "sources": "f4f509999485f8ec7094b323a8865acd2d62dc97970e9b22d692c8060040a885" + "jar": "eb2824831c0ac03e741efda86b141aa863a481ebc4aaf5a5c1f13a481dbb40ff", + "sources": "419603fecc423fb2704c67dd7ad91fdf51637f004fc114dfb9f42d225e8ce40b" }, - "version": "1.69.1" + "version": "1.70.0" }, "io.lettuce:lettuce-core": { "shasums": { - "jar": "59f6a591a631d844b355b831ee723bf6ce98d92f7a775de6b0690f0eb81480e7", - "sources": "e9d835ed5b0583fbf01deabdb2c4ab370ac73166a4011aac5f1e2ca397914912" + "jar": "7fdea38908f3cec630c319b2d5337e61ad444133c9119b857c3c9b2c88259c8f", + "sources": "5559b138e9fb4bc0ef578c0edf75f02fdc115226920cdc017f39e7cf51344888" }, - "version": "6.5.2.RELEASE" + "version": "6.5.3.RELEASE" }, "io.netty:netty-buffer": { "shasums": { diff --git a/java/src/org/openqa/selenium/devtools/v130/BUILD.bazel b/java/src/org/openqa/selenium/devtools/v133/BUILD.bazel similarity index 98% rename from java/src/org/openqa/selenium/devtools/v130/BUILD.bazel rename to java/src/org/openqa/selenium/devtools/v133/BUILD.bazel index 169f88a358e6b..f8b032f13be01 100644 --- a/java/src/org/openqa/selenium/devtools/v130/BUILD.bazel +++ b/java/src/org/openqa/selenium/devtools/v133/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 = "v130" +cdp_version = "v133" java_export( name = cdp_version, diff --git a/java/src/org/openqa/selenium/devtools/v130/v130CdpInfo.java b/java/src/org/openqa/selenium/devtools/v133/v133CdpInfo.java similarity index 86% rename from java/src/org/openqa/selenium/devtools/v130/v130CdpInfo.java rename to java/src/org/openqa/selenium/devtools/v133/v133CdpInfo.java index fe9227f90b64e..e9213b6e826de 100644 --- a/java/src/org/openqa/selenium/devtools/v130/v130CdpInfo.java +++ b/java/src/org/openqa/selenium/devtools/v133/v133CdpInfo.java @@ -15,15 +15,15 @@ // specific language governing permissions and limitations // under the License. -package org.openqa.selenium.devtools.v130; +package org.openqa.selenium.devtools.v133; import com.google.auto.service.AutoService; import org.openqa.selenium.devtools.CdpInfo; @AutoService(CdpInfo.class) -public class v130CdpInfo extends CdpInfo { +public class v133CdpInfo extends CdpInfo { - public v130CdpInfo() { - super(130, v130Domains::new); + public v133CdpInfo() { + super(133, v133Domains::new); } } diff --git a/java/src/org/openqa/selenium/devtools/v130/v130Domains.java b/java/src/org/openqa/selenium/devtools/v133/v133Domains.java similarity index 77% rename from java/src/org/openqa/selenium/devtools/v130/v130Domains.java rename to java/src/org/openqa/selenium/devtools/v133/v133Domains.java index a6ab737b71a04..7da6c5c37bd64 100644 --- a/java/src/org/openqa/selenium/devtools/v130/v130Domains.java +++ b/java/src/org/openqa/selenium/devtools/v133/v133Domains.java @@ -15,7 +15,7 @@ // specific language governing permissions and limitations // under the License. -package org.openqa.selenium.devtools.v130; +package org.openqa.selenium.devtools.v133; 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 v130Domains implements Domains { +public class v133Domains implements Domains { - private final v130Javascript js; - private final v130Events events; - private final v130Log log; - private final v130Network network; - private final v130Target target; + private final v133Javascript js; + private final v133Events events; + private final v133Log log; + private final v133Network network; + private final v133Target target; - public v130Domains(DevTools devtools) { + public v133Domains(DevTools devtools) { Require.nonNull("DevTools", devtools); - events = new v130Events(devtools); - js = new v130Javascript(devtools); - log = new v130Log(); - network = new v130Network(devtools); - target = new v130Target(); + events = new v133Events(devtools); + js = new v133Javascript(devtools); + log = new v133Log(); + network = new v133Network(devtools); + target = new v133Target(); } @Override diff --git a/java/src/org/openqa/selenium/devtools/v130/v130Events.java b/java/src/org/openqa/selenium/devtools/v133/v133Events.java similarity index 86% rename from java/src/org/openqa/selenium/devtools/v130/v130Events.java rename to java/src/org/openqa/selenium/devtools/v133/v133Events.java index 9d5329796952f..34ec3a14e940d 100644 --- a/java/src/org/openqa/selenium/devtools/v130/v130Events.java +++ b/java/src/org/openqa/selenium/devtools/v133/v133Events.java @@ -15,7 +15,7 @@ // specific language governing permissions and limitations // under the License. -package org.openqa.selenium.devtools.v130; +package org.openqa.selenium.devtools.v133; 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.v130.runtime.Runtime; -import org.openqa.selenium.devtools.v130.runtime.model.ConsoleAPICalled; -import org.openqa.selenium.devtools.v130.runtime.model.ExceptionDetails; -import org.openqa.selenium.devtools.v130.runtime.model.ExceptionThrown; -import org.openqa.selenium.devtools.v130.runtime.model.StackTrace; +import org.openqa.selenium.devtools.v133.runtime.Runtime; +import org.openqa.selenium.devtools.v133.runtime.model.ConsoleAPICalled; +import org.openqa.selenium.devtools.v133.runtime.model.ExceptionDetails; +import org.openqa.selenium.devtools.v133.runtime.model.ExceptionThrown; +import org.openqa.selenium.devtools.v133.runtime.model.StackTrace; -public class v130Events extends Events { +public class v133Events extends Events { - public v130Events(DevTools devtools) { + public v133Events(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/v130/v130Javascript.java b/java/src/org/openqa/selenium/devtools/v133/v133Javascript.java similarity index 85% rename from java/src/org/openqa/selenium/devtools/v130/v130Javascript.java rename to java/src/org/openqa/selenium/devtools/v133/v133Javascript.java index 537e2eb735a0f..0af685c18d42b 100644 --- a/java/src/org/openqa/selenium/devtools/v130/v130Javascript.java +++ b/java/src/org/openqa/selenium/devtools/v133/v133Javascript.java @@ -15,21 +15,21 @@ // specific language governing permissions and limitations // under the License. -package org.openqa.selenium.devtools.v130; +package org.openqa.selenium.devtools.v133; 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.v130.page.Page; -import org.openqa.selenium.devtools.v130.page.model.ScriptIdentifier; -import org.openqa.selenium.devtools.v130.runtime.Runtime; -import org.openqa.selenium.devtools.v130.runtime.model.BindingCalled; +import org.openqa.selenium.devtools.v133.page.Page; +import org.openqa.selenium.devtools.v133.page.model.ScriptIdentifier; +import org.openqa.selenium.devtools.v133.runtime.Runtime; +import org.openqa.selenium.devtools.v133.runtime.model.BindingCalled; -public class v130Javascript extends Javascript { +public class v133Javascript extends Javascript { - public v130Javascript(DevTools devtools) { + public v133Javascript(DevTools devtools) { super(devtools); } diff --git a/java/src/org/openqa/selenium/devtools/v130/v130Log.java b/java/src/org/openqa/selenium/devtools/v133/v133Log.java similarity index 89% rename from java/src/org/openqa/selenium/devtools/v130/v130Log.java rename to java/src/org/openqa/selenium/devtools/v133/v133Log.java index f665b4325a9c4..e873d1819948f 100644 --- a/java/src/org/openqa/selenium/devtools/v130/v130Log.java +++ b/java/src/org/openqa/selenium/devtools/v133/v133Log.java @@ -15,19 +15,19 @@ // specific language governing permissions and limitations // under the License. -package org.openqa.selenium.devtools.v130; +package org.openqa.selenium.devtools.v133; 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.v130.log.Log; -import org.openqa.selenium.devtools.v130.log.model.LogEntry; -import org.openqa.selenium.devtools.v130.runtime.model.Timestamp; +import org.openqa.selenium.devtools.v133.log.Log; +import org.openqa.selenium.devtools.v133.log.model.LogEntry; +import org.openqa.selenium.devtools.v133.runtime.model.Timestamp; import org.openqa.selenium.json.JsonInput; -public class v130Log implements org.openqa.selenium.devtools.idealized.log.Log { +public class v133Log implements org.openqa.selenium.devtools.idealized.log.Log { @Override public Command enable() { diff --git a/java/src/org/openqa/selenium/devtools/v130/v130Network.java b/java/src/org/openqa/selenium/devtools/v133/v133Network.java similarity index 92% rename from java/src/org/openqa/selenium/devtools/v130/v130Network.java rename to java/src/org/openqa/selenium/devtools/v133/v133Network.java index 62ee7845f1451..b3d2b578b0188 100644 --- a/java/src/org/openqa/selenium/devtools/v130/v130Network.java +++ b/java/src/org/openqa/selenium/devtools/v133/v133Network.java @@ -15,7 +15,7 @@ // specific language governing permissions and limitations // under the License. -package org.openqa.selenium.devtools.v130; +package org.openqa.selenium.devtools.v133; 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.v130.fetch.Fetch; -import org.openqa.selenium.devtools.v130.fetch.model.*; -import org.openqa.selenium.devtools.v130.network.model.Request; +import org.openqa.selenium.devtools.v133.fetch.Fetch; +import org.openqa.selenium.devtools.v133.fetch.model.*; +import org.openqa.selenium.devtools.v133.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 v130Network extends Network { +public class v133Network extends Network { - private static final Logger LOG = Logger.getLogger(v130Network.class.getName()); + private static final Logger LOG = Logger.getLogger(v133Network.class.getName()); - public v130Network(DevTools devTools) { + public v133Network(DevTools devTools) { super(devTools); } @Override protected Command setUserAgentOverride(UserAgent userAgent) { - return org.openqa.selenium.devtools.v130.network.Network.setUserAgentOverride( + return org.openqa.selenium.devtools.v133.network.Network.setUserAgentOverride( userAgent.userAgent(), userAgent.acceptLanguage(), userAgent.platform(), Optional.empty()); } @Override protected Command enableNetworkCaching() { - return org.openqa.selenium.devtools.v130.network.Network.setCacheDisabled(false); + return org.openqa.selenium.devtools.v133.network.Network.setCacheDisabled(false); } @Override protected Command disableNetworkCaching() { - return org.openqa.selenium.devtools.v130.network.Network.setCacheDisabled(true); + return org.openqa.selenium.devtools.v133.network.Network.setCacheDisabled(true); } @Override diff --git a/java/src/org/openqa/selenium/devtools/v130/v130Target.java b/java/src/org/openqa/selenium/devtools/v133/v133Target.java similarity index 83% rename from java/src/org/openqa/selenium/devtools/v130/v130Target.java rename to java/src/org/openqa/selenium/devtools/v133/v133Target.java index e64a8987d36be..9543657afabfb 100644 --- a/java/src/org/openqa/selenium/devtools/v130/v130Target.java +++ b/java/src/org/openqa/selenium/devtools/v133/v133Target.java @@ -15,7 +15,7 @@ // specific language governing permissions and limitations // under the License. -package org.openqa.selenium.devtools.v130; +package org.openqa.selenium.devtools.v133; 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.v130.target.Target; -import org.openqa.selenium.devtools.v130.target.model.TargetInfo; +import org.openqa.selenium.devtools.v133.target.Target; +import org.openqa.selenium.devtools.v133.target.model.TargetInfo; import org.openqa.selenium.json.JsonInput; import org.openqa.selenium.json.TypeToken; -public class v130Target implements org.openqa.selenium.devtools.idealized.target.Target { +public class v133Target 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.v130.target.model.SessionID(id.toString())), + id -> new org.openqa.selenium.devtools.v133.target.model.SessionID(id.toString())), targetId.map( - id -> new org.openqa.selenium.devtools.v130.target.model.TargetID(id.toString()))); + id -> new org.openqa.selenium.devtools.v133.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.v130.target.model.SessionID.class); + "sessionId", org.openqa.selenium.devtools.v133.target.model.SessionID.class); return new Command<>( "Target.attachToTarget", Map.of( "targetId", - new org.openqa.selenium.devtools.v130.target.model.TargetID(targetId.toString()), + new org.openqa.selenium.devtools.v133.target.model.TargetID(targetId.toString()), "flatten", true), input -> { - org.openqa.selenium.devtools.v130.target.model.SessionID id = mapper.apply(input); + org.openqa.selenium.devtools.v133.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.v130.target.model.TargetID.class); + "targetId", org.openqa.selenium.devtools.v133.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 ed6af1bc721ec..ab8ddf847d61a 100644 --- a/java/src/org/openqa/selenium/devtools/versions.bzl +++ b/java/src/org/openqa/selenium/devtools/versions.bzl @@ -2,7 +2,7 @@ CDP_VERSIONS = [ "v85", # Required by Firefox "v131", "v132", - "v130", + "v133", ] CDP_DEPS = ["//java/src/org/openqa/selenium/devtools/%s" % v for v in CDP_VERSIONS] diff --git a/java/version.bzl b/java/version.bzl index a55d73545d3ef..cba5e2fefc344 100644 --- a/java/version.bzl +++ b/java/version.bzl @@ -1,2 +1,2 @@ -SE_VERSION = "4.29.0-SNAPSHOT" +SE_VERSION = "4.29.0" TOOLS_JAVA_VERSION = "17" diff --git a/javascript/node/selenium-webdriver/BUILD.bazel b/javascript/node/selenium-webdriver/BUILD.bazel index b53f221f9b9d1..6d96cb3d349d9 100644 --- a/javascript/node/selenium-webdriver/BUILD.bazel +++ b/javascript/node/selenium-webdriver/BUILD.bazel @@ -11,13 +11,13 @@ load("//javascript/private:browsers.bzl", "BROWSERS") npm_link_all_packages(name = "node_modules") -VERSION = "4.29.0-nightly202501202154" +VERSION = "4.29.0" BROWSER_VERSIONS = [ "v85", "v131", "v132", - "v130", + "v133", ] js_library( diff --git a/javascript/node/selenium-webdriver/CHANGES.md b/javascript/node/selenium-webdriver/CHANGES.md index b178a0aef559d..8a5bc8a28bf29 100644 --- a/javascript/node/selenium-webdriver/CHANGES.md +++ b/javascript/node/selenium-webdriver/CHANGES.md @@ -1,3 +1,10 @@ +## 4.29.0 + +- Add CDP for Chrome 133 and remove 130 +- [js] Remove Firefox CDP (#15200) +- [js][bidi] Implement bidi `setCacheBehavior` command (#15136) +- [js][bidi] Implement bidi getClientWindows command in browser module (#15248) + ## 4.28.1 - [JS] specify min required node versiton to 18.20.5 diff --git a/javascript/node/selenium-webdriver/package.json b/javascript/node/selenium-webdriver/package.json index 392661a1c3d41..993e204127a8e 100644 --- a/javascript/node/selenium-webdriver/package.json +++ b/javascript/node/selenium-webdriver/package.json @@ -1,6 +1,6 @@ { "name": "selenium-webdriver", - "version": "4.29.0-nightly202501202154", + "version": "4.29.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 426f8f03a7cbe..748c861642d7f 100644 --- a/py/BUILD.bazel +++ b/py/BUILD.bazel @@ -62,13 +62,13 @@ compile_pip_requirements( ], ) -SE_VERSION = "4.29.0.202501231718" +SE_VERSION = "4.29.0" BROWSER_VERSIONS = [ "v85", "v131", "v132", - "v130", + "v133", ] TEST_DEPS = [ diff --git a/py/CHANGES b/py/CHANGES index 3219a596db008..41e57a77d3f79 100644 --- a/py/CHANGES +++ b/py/CHANGES @@ -1,3 +1,12 @@ +Selenium 4.29.0 +* Add CDP for Chrome 133 and remove 130 +* [py] Disable strict time stamps in Firefox profile (#15141) +* [py] Enhance PrintOptions to support default, predefined, and custom page sizes (#15052) (#15064) +* [py] Remove Firefox CDP (#15200) +* [py] Handle named `get_cookie` and `delete_cookie` for None and empty strings (#15073) +* [py] Document cygwin path for `send_keys` (#15275) +* [py] Fix return type and docstring of get_downloadable_files (#15292) + Selenium 4.28.1 * [py] Fix installing most of the data from source distributions diff --git a/py/docs/source/conf.py b/py/docs/source/conf.py index f2085176a46b6..c5ec00ac9d037 100644 --- a/py/docs/source/conf.py +++ b/py/docs/source/conf.py @@ -58,7 +58,7 @@ # The short X.Y version. version = '4.29' # The full version, including alpha/beta/rc tags. -release = '4.29.0.202501231718' +release = '4.29.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 66a5d5e6832ce..81a4e77fda67c 100644 --- a/py/pyproject.toml +++ b/py/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "selenium" -version = "4.29.0.202501231718" +version = "4.29.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 d4e5bd81a3661..61f714c6576e8 100644 --- a/py/selenium/__init__.py +++ b/py/selenium/__init__.py @@ -16,4 +16,4 @@ # under the License. -__version__ = "4.29.0.202501231718" +__version__ = "4.29.0" diff --git a/py/selenium/webdriver/__init__.py b/py/selenium/webdriver/__init__.py index 28592e0ba7a22..d07fb3629b21c 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.29.0.202501231718" +__version__ = "4.29.0" # We need an explicit __all__ because the above won't otherwise be exported. __all__ = [ diff --git a/rb/CHANGES b/rb/CHANGES index c3d335b5fc564..3ed2134f02a0d 100644 --- a/rb/CHANGES +++ b/rb/CHANGES @@ -1,3 +1,11 @@ +4.29.0 (2025-02-17) +========================= +* Add CDP for Chrome 133 and remove 130 +* [rb] Add Bidi Network Response Handler (#14900) +* [rb] Remove Firefox CDP (#15200) +* [rb][BiDi] Add support for provide response command (#15080) +* [rb][BiDi] Add set cache behaviour (#15114) + 4.28.0 (2025-01-16) ========================= * Add CDP for Chrome 132 and remove 129 diff --git a/rb/Gemfile.lock b/rb/Gemfile.lock index 05854708fc276..b330e0bebc1b0 100644 --- a/rb/Gemfile.lock +++ b/rb/Gemfile.lock @@ -1,9 +1,9 @@ PATH remote: . specs: - selenium-devtools (0.132.0) + selenium-devtools (0.133.0) selenium-webdriver (~> 4.2) - selenium-webdriver (4.29.0.nightly) + selenium-webdriver (4.29.0) base64 (~> 0.2) logger (~> 1.4) rexml (~> 3.2, >= 3.2.5) @@ -38,12 +38,13 @@ GEM bigdecimal rexml csv (3.3.2) - curb (1.0.6) + curb (1.0.8) date (3.4.1) + date (3.4.1-java) debug (1.10.0) irb (~> 1.10) reline (>= 0.3.8) - diff-lcs (1.5.1) + diff-lcs (1.6.0) drb (2.2.1) ffi (1.17.1) ffi (1.17.1-arm64-darwin) @@ -60,22 +61,26 @@ GEM concurrent-ruby (~> 1.0) io-console (0.8.0) io-console (0.8.0-java) - irb (1.14.3) + irb (1.15.1) + pp (>= 0.6.0) rdoc (>= 4.0.0) reline (>= 0.4.2) - jar-dependencies (0.4.1) - json (2.9.1) - json (2.9.1-java) - language_server-protocol (3.17.0.3) + jar-dependencies (0.5.5) + json (2.10.1) + json (2.10.1-java) + language_server-protocol (3.17.0.4) listen (3.9.0) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) - logger (1.6.5) + logger (1.6.6) minitest (5.25.4) parallel (1.26.3) - parser (3.3.7.0) + parser (3.3.7.1) ast (~> 2.4.1) racc + pp (0.6.2) + prettyprint + prettyprint (0.2.0) psych (5.2.3) date stringio @@ -85,7 +90,7 @@ GEM public_suffix (6.0.1) racc (1.8.1) racc (1.8.1-java) - rack (2.2.10) + rack (2.2.11) rainbow (3.1.1) rake (13.2.1) rb-fsevent (0.11.2) @@ -94,7 +99,7 @@ GEM rbs (3.8.1) logger rchardet (1.9.0) - rdoc (6.11.0) + rdoc (6.12.0) psych (>= 4.0.0) regexp_parser (2.10.0) reline (0.6.0) @@ -104,7 +109,7 @@ GEM rspec-core (~> 3.13.0) rspec-expectations (~> 3.13.0) rspec-mocks (~> 3.13.0) - rspec-core (3.13.2) + rspec-core (3.13.3) rspec-support (~> 3.13.0) rspec-expectations (3.13.3) diff-lcs (>= 1.2.0, < 2.0) @@ -113,17 +118,17 @@ GEM diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.13.0) rspec-support (3.13.2) - rubocop (1.70.0) + rubocop (1.71.2) 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.9.3, < 3.0) - rubocop-ast (>= 1.36.2, < 2.0) + rubocop-ast (>= 1.38.0, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 2.4.0, < 4.0) - rubocop-ast (1.37.0) + rubocop-ast (1.38.0) parser (>= 3.3.1.0) rubocop-capybara (2.21.0) rubocop (~> 1.41) @@ -167,7 +172,7 @@ GEM tzinfo (2.0.6) concurrent-ruby (~> 1.0) unicode-display_width (2.6.0) - webmock (3.24.0) + webmock (3.25.0) addressable (>= 2.8.0) crack (>= 0.3.2) hashdiff (>= 0.4.0, < 2.0.0) diff --git a/rb/lib/selenium/devtools/BUILD.bazel b/rb/lib/selenium/devtools/BUILD.bazel index 421ef65ccd11e..d0ba35f99e6a7 100644 --- a/rb/lib/selenium/devtools/BUILD.bazel +++ b/rb/lib/selenium/devtools/BUILD.bazel @@ -7,7 +7,7 @@ CDP_VERSIONS = [ "v85", "v131", "v132", - "v130", + "v133", ] rb_library( diff --git a/rb/lib/selenium/devtools/version.rb b/rb/lib/selenium/devtools/version.rb index 09be47a2674a5..d6d706079381c 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.132.0' + VERSION = '0.133.0' end # DevTools end # Selenium diff --git a/rb/lib/selenium/webdriver/version.rb b/rb/lib/selenium/webdriver/version.rb index 20971dbacd2bb..12c4f5dbd1e98 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.29.0.nightly' + VERSION = '4.29.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 a997b52fad285..b1edeb6a3a193 100644 --- a/rb/spec/integration/selenium/webdriver/action_builder_spec.rb +++ b/rb/spec/integration/selenium/webdriver/action_builder_spec.rb @@ -317,7 +317,7 @@ module WebDriver end describe '#scroll_by' do - it 'scrolls by given amount' do + it 'scrolls by given amount', except: {browser: :firefox, reason: 'returns false on firefox'} 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/rb/spec/integration/selenium/webdriver/bidi/network_spec.rb b/rb/spec/integration/selenium/webdriver/bidi/network_spec.rb index 2819b0eafc0ab..e83328dcd33dd 100644 --- a/rb/spec/integration/selenium/webdriver/bidi/network_spec.rb +++ b/rb/spec/integration/selenium/webdriver/bidi/network_spec.rb @@ -145,7 +145,8 @@ class BiDi end end - it 'provides response' do + it 'provides response', except: { browser: :firefox, + reason: 'https://github.com/w3c/webdriver-bidi/issues/747' } do reset_driver!(web_socket_url: true) do |driver| network = described_class.new(driver.bidi) network.add_intercept(phases: [described_class::PHASES[:response_started]]) diff --git a/rb/spec/integration/selenium/webdriver/network_spec.rb b/rb/spec/integration/selenium/webdriver/network_spec.rb index 210e2d2e9d229..fb08967da3b46 100644 --- a/rb/spec/integration/selenium/webdriver/network_spec.rb +++ b/rb/spec/integration/selenium/webdriver/network_spec.rb @@ -21,8 +21,8 @@ module Selenium module WebDriver - describe Network, exclusive: {bidi: true, reason: 'only executed when bidi is enabled'}, - only: {browser: %i[chrome edge firefox]} do + describe Network, exclusive: { bidi: true, reason: 'only executed when bidi is enabled' }, + only: { browser: %i[chrome edge firefox] } do let(:username) { SpecSupport::RackServer::TestApp::BASIC_AUTH_CREDENTIALS.first } let(:password) { SpecSupport::RackServer::TestApp::BASIC_AUTH_CREDENTIALS.last } @@ -160,7 +160,7 @@ module WebDriver sameSite: 'Strict', expiry: 1234 }) - request.body = ({test: 'example'}) + request.body = ({ test: 'example' }) request.continue end driver.navigate.to url_for('formPage.html') @@ -262,7 +262,9 @@ module WebDriver end end - it 'adds a response handler that provides a response' do + it 'adds a response handler that provides a response', + except: { browser: :firefox, + reason: 'https://github.com/w3c/webdriver-bidi/issues/747' } do reset_driver!(web_socket_url: true) do |driver| network = described_class.new(driver) network.add_response_handler do |response| diff --git a/rust/BUILD.bazel b/rust/BUILD.bazel index d1d1a21505ac0..9f9501d5b7801 100644 --- a/rust/BUILD.bazel +++ b/rust/BUILD.bazel @@ -77,7 +77,7 @@ rust_binary( name = "selenium-manager", srcs = ["src/main.rs"], edition = "2021", - version = "0.4.29-nightly", + version = "0.4.29", visibility = ["//visibility:public"], deps = [ ":selenium_manager", diff --git a/rust/CHANGELOG.md b/rust/CHANGELOG.md index a27c6d382db7a..f5ba6a31116ea 100644 --- a/rust/CHANGELOG.md +++ b/rust/CHANGELOG.md @@ -1,3 +1,7 @@ +0.4.29 +====== + + 0.4.28 ====== diff --git a/rust/Cargo.Bazel.lock b/rust/Cargo.Bazel.lock index ce89a245eedc1..b7a16a58cce67 100644 --- a/rust/Cargo.Bazel.lock +++ b/rust/Cargo.Bazel.lock @@ -1,5 +1,5 @@ { - "checksum": "dd0b1d61473c324a69e9446829245d736b5cf37dfd115cacf1169662fa518d3e", + "checksum": "9c5df13665bbb4442be9c8674c176e8324d597425d8da1f20e952cea268d6168", "crates": { "addr2line 0.21.0": { "name": "addr2line", @@ -13204,9 +13204,9 @@ ], "license_file": "LICENSE" }, - "selenium-manager 0.4.29-nightly": { + "selenium-manager 0.4.29": { "name": "selenium-manager", - "version": "0.4.29-nightly", + "version": "0.4.29", "package_url": "https://github.com/SeleniumHQ/selenium", "repository": null, "targets": [ @@ -13355,7 +13355,7 @@ "selects": {} }, "edition": "2021", - "version": "0.4.29-nightly" + "version": "0.4.29" }, "license": "Apache-2.0", "license_ids": [ @@ -21478,7 +21478,7 @@ }, "binary_crates": [], "workspace_members": { - "selenium-manager 0.4.29-nightly": "rust" + "selenium-manager 0.4.29": "rust" }, "conditions": { "aarch64-apple-darwin": [ diff --git a/rust/Cargo.lock b/rust/Cargo.lock index b9d65ec00b1be..5ab197c2eda4a 100644 --- a/rust/Cargo.lock +++ b/rust/Cargo.lock @@ -1827,7 +1827,7 @@ dependencies = [ [[package]] name = "selenium-manager" -version = "0.4.29-nightly" +version = "0.4.29" dependencies = [ "anyhow", "apple-flat-package", diff --git a/rust/Cargo.toml b/rust/Cargo.toml index 2ede6b75041e1..139f929c94126 100644 --- a/rust/Cargo.toml +++ b/rust/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "selenium-manager" -version = "0.4.29-nightly" # don't forget to update rust/BUILD.bazel +version = "0.4.29" # don't forget to update rust/BUILD.bazel edition = "2021" authors = ["Selenium