diff --git a/.github/workflows/pre-release.yml b/.github/workflows/pre-release.yml index 263f9fafec63f..94ed4483ae4da 100644 --- a/.github/workflows/pre-release.yml +++ b/.github/workflows/pre-release.yml @@ -71,6 +71,7 @@ jobs: uses: ruby/setup-ruby@5f19ec79cedfadb78ab837f95b87734d0003c899 with: ruby-version: '3.1' + working-directory: 'rb' - name: "Prep git" run: | git config --local user.email "selenium-ci@users.noreply.github.com" @@ -89,10 +90,11 @@ jobs: token: ${{ secrets.SELENIUM_CI_TOKEN }} author: Selenium CI Bot delete-branch: true + branch: release-preparation-${{ github.event.inputs.version }} title: "[build] Prepare for release of Selenium ${{ github.event.inputs.version }}" body: | **Warning: Manually update the changelogs before merging** - + This PR: * Updates Rust version for Selenium Manager release * Updates Pinned browser version to coincide with new CDP release @@ -102,9 +104,9 @@ jobs: * Adds new authors to authors file * Updates all versions for all bindings * Generates *rough* change logs for each bindings (please tidy them up before merging this) - + - Auto-generated by [create-pull-request][1] - + [1]: https://github.com/peter-evans/create-pull-request labels: C-build draft: true diff --git a/.skipped-tests b/.skipped-tests index 5706f1497f44c..674c795e2c3a0 100644 --- a/.skipped-tests +++ b/.skipped-tests @@ -26,3 +26,4 @@ -//rb/spec/integration/selenium/webdriver/edge:service-edge -//rb/spec/integration/selenium/webdriver/firefox:service-firefox -//rb/spec/integration/selenium/webdriver/firefox:service-firefox-beta +-//rb/spec/integration/selenium/webdriver:element-chrome diff --git a/AUTHORS b/AUTHORS index ebbbc1292c21a..b3a31ee441c17 100644 --- a/AUTHORS +++ b/AUTHORS @@ -732,6 +732,7 @@ Sankha Narayan Guria Santiago Suarez OrdoƱez Sarah Bird Sayyid Ali Sajjad Rizavi <58586026+ali-sajjad-rizavi@users.noreply.github.com> +schrufygroovy <50398024+schrufygroovy@users.noreply.github.com> Scott Babcock Scott Sauber Scott Stevens @@ -768,6 +769,7 @@ smhc Snail space88man Sri Harsha +Sri Harsha sridharUpputuri <52928428+sridharUpputuri@users.noreply.github.com> Srinivasan Sekar Sripathi Pai diff --git a/MODULE.bazel b/MODULE.bazel index 292ea3ea6b1b5..2e2bfbda40af5 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -251,7 +251,7 @@ ruby.bundle_fetch( "connection_pool-2.4.1": "0f40cf997091f1f04ff66da67eabd61a9fe0d4928b9a3645228532512fab62f4", "crack-1.0.0": "c83aefdb428cdc7b66c7f287e488c796f055c0839e6e545fec2c7047743c4a49", "csv-3.3.0": "0bbd1defdc31134abefed027a639b3723c2753862150f4c3ee61cab71b20d67d", - "debug-1.9.1": "86f1a6d4a299184f1a1f7ae4c2fe80f178beed55cdf608f83b49d7bdefa3ffda", + "debug-1.9.2": "48e026c0852c7a10c60263e2e527968308958e266231e36d64e3efcabec7e7fc", "diff-lcs-1.5.1": "273223dfb40685548436d32b4733aa67351769c7dea621da7d9dd4813e63ddfe", "drb-2.2.1": "e9d472bf785f558b96b25358bae115646da0dbfd45107ad858b0bc0d935cb340", "ffi-1.16.3": "6d3242ff10c87271b0675c58d68d3f10148fabc2ad6da52a18123f06078871fb", @@ -265,8 +265,8 @@ ruby.bundle_fetch( "io-console-0.7.2-java": "73aa382f8832b116613ceaf57b8ff5bf73dfedcaf39f0aa5420e10f63a4543ed", "irb-1.12.0": "07634937fbb7d28d07e46da50d0aa43b4d2f7258174d08de4e32dfb57c10539d", "jar-dependencies-0.4.1": "b2df2f1ecbff15334ce20ea7fdd5b8d8161faab67761ff72c7647d728e40d387", - "json-2.7.1": "187ea312fb58420ff0c40f40af1862651d4295c8675267c6a1c353f1a0ac3265", - "json-2.7.1-java": "bfd628c0f8357058c2cf848febfa6f140f70f94ec492693a31a0a1933038a61b", + "json-2.7.2": "1898b5cbc81cd36c0fd4d0b7ad2682c39fb07c5ff682fc6265f678f550d4982c", + "json-2.7.2-java": "138e3038b5361b3d06ee2e8aa2be00bed0d0de4ef5f1553fc5935e5b93aca7ee", "language_server-protocol-3.17.0.3": "3d5c58c02f44a20d972957a9febe386d7e7468ab3900ce6bd2b563dd910c6b3f", "listen-3.9.0": "db9e4424e0e5834480385197c139cb6b0ae0ef28cc13310cfd1ca78377d59c67", "logger-1.6.0": "0ab7c120262dd8de2a18cb8d377f1f318cbe98535160a508af9e7710ff43ef3e", @@ -276,31 +276,32 @@ ruby.bundle_fetch( "parser-3.3.0.5": "7748313e505ca87045dc0465c776c802043f777581796eb79b1654c5d19d2687", "psych-5.1.2": "337322f58fc2bf24827d2b9bd5ab595f6a72971867d151bb39980060ea40a368", "psych-5.1.2-java": "1dd68dc609eddbc884e6892e11da942e16f7256bd30ebde9d35449d43043a6fe", - "public_suffix-5.0.4": "35cd648e0d21d06b8dce9331d19619538d1d898ba6d56a6f2258409d2526d1ae", + "public_suffix-5.0.5": "72c340218bb384610536919988705cc29e09749c0021fd7005f715c7e5dfc493", "racc-1.7.3": "b785ab8a30ec43bce073c51dbbe791fd27000f68d1c996c95da98bf685316905", "racc-1.7.3-java": "b2ad737e788cfa083263ce7c9290644bb0f2c691908249eb4f6eb48ed2815dbf", "rack-2.2.9": "fd6301a97a1c1e955e68f85c861fcb1cde6145a32c532e1ea321a72ff8cc4042", "rainbow-3.1.1": "039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a", - "rake-13.1.0": "be6a3e1aa7f66e6c65fa57555234eb75ce4cf4ada077658449207205474199c6", + "rake-13.2.1": "46cb38dae65d7d74b6020a4ac9d48afed8eb8149c040eccf0523bec91907059d", "rb-fsevent-0.11.2": "43900b972e7301d6570f64b850a5aa67833ee7d87b458ee92805d56b7318aefe", "rb-inotify-0.10.1": "050062d4f31d307cca52c3f6a7f4b946df8de25fc4bd373e1a5142e41034a7ca", "rbs-3.4.4": "1376d2604a00832641bb47521595e63a1c0d1cc241ded383ba48ddb4396de5a8", "rchardet-1.8.0": "693acd5253d5ade81a51940697955f6dd4bb2f0d245bda76a8e23deec70a52c7", "rdoc-6.6.3.1": "39f7b749229ab5ad9d21c81586151c1dd7a549fa8be4070ee09b524f9c656345", "regexp_parser-2.9.0": "81a00ba141cec0d4b4bf58cb80cd9193e5180836d3fa6ef623f7886d3ba8bdd9", - "reline-0.5.0": "2c4d4570a3fe730225d62e07ec2ad4c5726d8f211b240cf8f8c648ed006d26b7", + "reline-0.5.3": "2c46747a1dfd03e100f0666d8a374cf2930c3e734298af9b39e5fe8d35b42035", "rexml-3.2.6": "e0669a2d4e9f109951cb1fde723d8acd285425d81594a2ea929304af50282816", "rspec-3.13.0": "d490914ac1d5a5a64a0e1400c1d54ddd2a501324d703b8cfe83f458337bab993", "rspec-core-3.13.0": "557792b4e88da883d580342b263d9652b6a10a12d5bda9ef967b01a48f15454c", "rspec-expectations-3.13.0": "621d48c62262f955421eaa418130744760802cad47e781df70dba4d9f897102e", "rspec-mocks-3.13.0": "735a891215758d77cdb5f4721fffc21078793959d1f0ee4a961874311d9b7f66", "rspec-support-3.13.1": "48877d4f15b772b7538f3693c22225f2eda490ba65a0515c4e7cf6f2f17de70f", - "rubocop-1.62.1": "aeb1ec501aef5833617b3b6a1512303806218c349c28ce5b3ea72e3782ad4a35", + "rubocop-1.63.3": "17a31f16658f2fbb20bc7bcb4a841a06f7368da4f3be8a50365ad61e658d5f44", "rubocop-ast-1.31.2": "7c206fb094553779923eca862aceece3913ce384f1bf85730208228e884578ec", "rubocop-capybara-2.20.0": "2a6844b942921f230ee3ab8c94fe77f41a9406096a140245270c0e11624bb938", "rubocop-factory_bot-2.25.1": "62751bde7af789878b8a31cbd2a82e69515ce7b23a2ad1820cb0fcc3e0150134", - "rubocop-performance-1.20.2": "1bb1fa8c427fac7ba3c8dd2decb9860f23cb2d6c40350bedc88538de8875c731", - "rubocop-rspec-2.27.1": "2f27ce04700be75db65afe83d7993a36e0fafd07ec062222f4b3cc10137a7a9e", + "rubocop-performance-1.21.0": "ec54fa8991c2d538af7bc958361d63bdb3df2e53032da393e9903ea5e4f74a9a", + "rubocop-rspec-2.29.1": "534ee81a3006e7379ec6203687ef7c06ca1d137b7d6d67c2777b680b1ce82e13", + "rubocop-rspec_rails-2.28.3": "9769f2077cca8af2269193ba0450e0317ae1827a132c19149fdbeecaaca32818", "ruby-progressbar-1.13.0": "80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33", "rubyzip-2.3.2": "3f57e3935dc2255c414484fbf8d673b4909d8a6a57007ed754dde39342d2373f", "securerandom-0.3.1": "98f0450c0ea46d2f9a4b6db4f391dbd83dc08049592eada155739f40e0341bde", diff --git a/Rakefile b/Rakefile index 98f509a41b2bf..436e99c572d63 100644 --- a/Rakefile +++ b/Rakefile @@ -101,7 +101,7 @@ JAVA_RELEASE_TARGETS = %w[ //java/src/org/openqa/selenium/chromium:chromium.publish //java/src/org/openqa/selenium/devtools/v122:v122.publish //java/src/org/openqa/selenium/devtools/v123:v123.publish - //java/src/org/openqa/selenium/devtools/v121:v121.publish + //java/src/org/openqa/selenium/devtools/v124:v124.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 @@ -798,7 +798,7 @@ namespace :rb do File.open(file, "w") { |f| f.puts text } Rake::Task['rb:changelog'].invoke unless new_version.include?('nightly') - sh 'cd rb && bundle update' + sh 'cd rb && bundle --version && bundle update' end desc 'Update Ruby Syntax' diff --git a/common/devtools/chromium/v121/BUILD.bazel b/common/devtools/chromium/v124/BUILD.bazel similarity index 100% rename from common/devtools/chromium/v121/BUILD.bazel rename to common/devtools/chromium/v124/BUILD.bazel diff --git a/common/devtools/chromium/v121/browser_protocol.pdl b/common/devtools/chromium/v124/browser_protocol.pdl similarity index 95% rename from common/devtools/chromium/v121/browser_protocol.pdl rename to common/devtools/chromium/v124/browser_protocol.pdl index 6c81e477a29fb..c05c02fd4a99f 100644 --- a/common/devtools/chromium/v121/browser_protocol.pdl +++ b/common/devtools/chromium/v124/browser_protocol.pdl @@ -217,7 +217,7 @@ experimental domain Accessibility # If omitted, the full tree is returned. optional integer depth # The frame for whose document the AX tree should be retrieved. - # If omited, the root frame is used. + # If omitted, the root frame is used. optional Page.FrameId frameId returns array of AXNode nodes @@ -258,7 +258,7 @@ experimental domain Accessibility # Query a DOM node's accessibility subtree for accessible name and role. # This command computes the name and role for all nodes in the subtree, including those that are - # ignored for accessibility, and returns those that mactch the specified name and role. If no DOM + # ignored for accessibility, and returns those that match the specified name and role. If no DOM # node is specified, or the DOM node does not exist, the command returns an error. If neither # `accessibleName` or `role` is specified, it returns all the accessibility nodes in the subtree. experimental command queryAXTree @@ -309,6 +309,9 @@ experimental domain Animation # `Animation`'s playback rate. number playbackRate # `Animation`'s start time. + # Milliseconds for time based animations and + # percentage [0 - 100] for scroll driven animations + # (i.e. when viewOrScrollTimeline exists). number startTime # `Animation`'s current time. number currentTime @@ -322,6 +325,26 @@ experimental domain Animation # A unique ID for `Animation` representing the sources that triggered this CSS # animation/transition. optional string cssId + # View or scroll timeline + optional ViewOrScrollTimeline viewOrScrollTimeline + + # Timeline instance + type ViewOrScrollTimeline extends object + properties + # Scroll container node + optional DOM.BackendNodeId sourceNodeId + # Represents the starting scroll position of the timeline + # as a length offset in pixels from scroll origin. + optional number startOffset + # Represents the ending scroll position of the timeline + # as a length offset in pixels from scroll origin. + optional number endOffset + # The element whose principal box's visibility in the + # scrollport defined the progress of the timeline. + # Does not exist for animations with ScrollTimeline + optional DOM.BackendNodeId subjectNodeId + # Orientation of the scroll + DOM.ScrollOrientation axis # AnimationEffect instance type AnimationEffect extends object @@ -335,6 +358,9 @@ experimental domain Animation # `AnimationEffect`'s iterations. number iterations # `AnimationEffect`'s iteration duration. + # Milliseconds for time based animations and + # percentage [0 - 100] for scroll driven animations + # (i.e. when viewOrScrollTimeline exists). number duration # `AnimationEffect`'s playback direction. string direction @@ -545,6 +571,7 @@ experimental domain Audits Frame Image Import + JSON Manifest Ping PluginData @@ -702,6 +729,11 @@ experimental domain Audits WebAndOsHeaders NoWebOrOsSupport NavigationRegistrationWithoutTransientUserActivation + InvalidInfoHeader + NoRegisterSourceHeader + NoRegisterTriggerHeader + NoRegisterOsSourceHeader + NoRegisterOsTriggerHeader # Details for issues around "Attribution Reporting API" usage. # Explainer: https://github.com/WICG/attribution-reporting-api @@ -1060,7 +1092,7 @@ experimental domain Autofill # Munich 81456 type AddressUI extends object properties - # A two dimension array containing the repesentation of values from an address profile. + # A two dimension array containing the representation of values from an address profile. array of AddressFields addressFields # Specified whether a filled field was done so by using the html autocomplete attribute or autofill heuristics. @@ -1083,6 +1115,10 @@ experimental domain Autofill string autofillType # The filling strategy FillingStrategy fillingStrategy + # The frame the field belongs to + Page.FrameId frameId + # The form field's DOM node + DOM.BackendNodeId fieldId # Emitted when an address form is filled. event addressFormFilled @@ -1221,6 +1257,7 @@ domain Browser audioCapture backgroundSync backgroundFetch + capturedSurfaceControl clipboardReadWrite clipboardSanitizedWrite displayCapture @@ -1238,6 +1275,7 @@ domain Browser protectedMediaIdentifier sensors storageAccess + speakerSelection topLevelStorageAccess videoCapture videoCapturePanTiltZoom @@ -1296,7 +1334,7 @@ domain Browser optional BrowserContextID browserContextId # Reset all permission management for all origins. - experimental command resetPermissions + command resetPermissions parameters # BrowserContext to reset permissions. When omitted, default browser context is used. optional BrowserContextID browserContextId @@ -1306,7 +1344,7 @@ domain Browser parameters # Whether to allow all or deny all download requests, or use default Chrome behavior if # available (otherwise deny). |allowAndName| allows download and names files according to - # their dowmload guids. + # their download guids. enum behavior deny allow @@ -1573,7 +1611,7 @@ experimental domain CSS # Owner frame identifier. Page.FrameId frameId # Stylesheet resource URL. Empty if this is a constructed stylesheet created using - # new CSSStyleSheet() (but non-empty if this is a constructed sylesheet imported + # new CSSStyleSheet() (but non-empty if this is a constructed stylesheet imported # as a CSS module script). string sourceURL # URL of source map associated with the stylesheet (if any). @@ -1906,12 +1944,25 @@ experimental domain CSS CSSStyle style # CSS position-fallback rule representation. - type CSSPositionFallbackRule extends object + deprecated type CSSPositionFallbackRule extends object properties Value name # List of keyframes. array of CSSTryRule tryRules + # CSS @position-try rule representation. + type CSSPositionTryRule extends object + properties + # The prelude dashed-ident name + Value name + # The css style sheet identifier (absent for user agent stylesheet and user-specified + # stylesheet rules) this rule came from. + optional StyleSheetId styleSheetId + # Parent stylesheet's origin. + StyleSheetOrigin origin + # Associated style declaration. + CSSStyle style + # CSS keyframes rule representation. type CSSKeyframesRule extends object properties @@ -1988,6 +2039,10 @@ experimental domain CSS string ruleText # Text position of a new rule in the target style sheet. SourceRange location + # NodeId for the DOM node in whose context custom property declarations for registered properties should be + # validated. If omitted, declarations in the new rule text can only be validated statically, which may produce + # incorrect results if the declaration contains a var() for example. + experimental optional DOM.NodeId nodeForPropertySyntaxValidation returns # The newly created rule. CSSRule rule @@ -2081,7 +2136,9 @@ experimental domain CSS # A list of CSS keyframed animations matching this node. optional array of CSSKeyframesRule cssKeyframesRules # A list of CSS position fallbacks matching this node. - optional array of CSSPositionFallbackRule cssPositionFallbackRules + deprecated optional array of CSSPositionFallbackRule cssPositionFallbackRules + # A list of CSS @position-try rules matching this node, based on the position-try-options property. + optional array of CSSPositionTryRule cssPositionTryRules # A list of CSS at-property rules matching this node. optional array of CSSPropertyRule cssPropertyRules # A list of CSS property registrations matching this node. @@ -2123,6 +2180,15 @@ experimental domain CSS returns CSSLayerData rootLayer + # Given a CSS selector text and a style sheet ID, getLocationForSelector + # returns an array of locations of the CSS selector in the style sheet. + experimental command getLocationForSelector + parameters + StyleSheetId styleSheetId + string selectorText + returns + array of SourceRange ranges + # 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. @@ -2231,6 +2297,10 @@ experimental domain CSS command setStyleTexts parameters array of StyleDeclarationEdit edits + # NodeId for the DOM node in whose context custom property declarations for registered properties should be + # validated. If omitted, declarations in the new rule text can only be validated statically, which may produce + # incorrect results if the declaration contains a var() for example. + experimental optional DOM.NodeId nodeForPropertySyntaxValidation returns # The resulting styles after modification. array of CSSStyle styles @@ -2547,6 +2617,12 @@ domain DOM Block Both + # Physical scroll orientation + type ScrollOrientation extends string + enum + horizontal + vertical + # DOM interaction is implemented in terms of mirror objects that represent the actual DOM nodes. # DOMNode is a base node mirror type. type Node extends object @@ -2726,7 +2802,7 @@ domain DOM # Scrolls the specified rect of the given node into view if not already visible. # Note: exactly one between nodeId, backendNodeId and objectId should be passed # to identify the node. - experimental command scrollIntoViewIfNeeded + command scrollIntoViewIfNeeded parameters # Identifier of the node. optional NodeId nodeId @@ -2771,7 +2847,7 @@ domain DOM # Returns attributes for the specified node. command getAttributes parameters - # Id of the node to retrieve attibutes for. + # Id of the node to retrieve attributes for. NodeId nodeId returns # An interleaved array of node attribute names and values. @@ -3939,13 +4015,13 @@ domain Emulation pause pauseIfNetworkFetchesPending - # Used to specify User Agent Cient Hints to emulate. See https://wicg.github.io/ua-client-hints + # Used to specify User Agent Client Hints to emulate. See https://wicg.github.io/ua-client-hints experimental type UserAgentBrandVersion extends object properties string brand string version - # Used to specify User Agent Cient Hints to emulate. See https://wicg.github.io/ua-client-hints + # Used to specify User Agent Client Hints to emulate. See https://wicg.github.io/ua-client-hints # Missing optional values will be filled in by the target with what it would normally use. experimental type UserAgentMetadata extends object properties @@ -4006,7 +4082,7 @@ domain Emulation optional SensorReadingQuaternion quaternion # Tells whether emulation is supported. - command canEmulate + deprecated command canEmulate returns # True if emulation is supported. boolean result @@ -4034,7 +4110,7 @@ domain Emulation optional boolean enabled # Enables CPU throttling to emulate slow CPUs. - experimental command setCPUThrottlingRate + command setCPUThrottlingRate parameters # Throttling rate as a slowdown factor (1 is no throttle, 2 is 2x slowdown, etc). number rate @@ -4113,7 +4189,7 @@ domain Emulation optional array of MediaFeature features # Emulates the given vision deficiency. - experimental command setEmulatedVisionDeficiency + command setEmulatedVisionDeficiency parameters # Vision deficiency to emulate. Order: best-effort emulations come first, followed by any # physiologically accurate emulations for medically recognized color vision deficiencies. @@ -4154,7 +4230,7 @@ domain Emulation SensorType type optional SensorMetadata metadata - # Updates the sensor readings reported by a sensor type previously overriden + # Updates the sensor readings reported by a sensor type previously overridden # by setSensorOverrideEnabled. experimental command setSensorOverrideReadings parameters @@ -4162,7 +4238,7 @@ domain Emulation SensorReading reading # Overrides the Idle state. - experimental command setIdleOverride + command setIdleOverride parameters # Mock isUserActive boolean isUserActive @@ -4170,7 +4246,7 @@ domain Emulation boolean isScreenUnlocked # Clears Idle state overrides. - experimental command clearIdleOverride + command clearIdleOverride # Overrides value returned by the javascript navigator object. experimental deprecated command setNavigatorOverrides @@ -4223,10 +4299,11 @@ domain Emulation optional string locale # Overrides default host system timezone with the specified one. - experimental command setTimezoneOverride + command setTimezoneOverride parameters - # The timezone identifier. If empty, disables the override and - # restores default host system timezone. + # The timezone identifier. List of supported timezones: + # https://source.chromium.org/chromium/chromium/deps/icu.git/+/faee8bc70570192d82d2978a71e2a615788597d1:source/data/misc/metaZones.txt + # If empty, disables the override and restores default host system timezone. string timezoneId # Resizes the frame/viewport of the page. Note that this does not affect the frame's container @@ -4259,6 +4336,7 @@ domain Emulation integer hardwareConcurrency # Allows overriding user agent with the given string. + # `userAgentMetadata` must be set for Client Hint headers to be sent. command setUserAgentOverride parameters # User agent to use. @@ -4345,7 +4423,7 @@ domain IO parameters # Handle of the stream to read. StreamHandle handle - # Seek to the specified offset before reading (if not specificed, proceed with offset + # Seek to the specified offset before reading (if not specified, proceed with offset # following the last read). Some types of streams may only support sequential reads. optional integer offset # Maximum number of bytes to read (left upon the agent discretion if not specified). @@ -4729,7 +4807,7 @@ domain Input # The text to insert. string text - # This method sets the current candidate text for ime. + # This method sets the current candidate text for IME. # Use imeCommitComposition to commit the final text. # Use imeSetComposition with empty string as text to cancel composition. experimental command imeSetComposition @@ -5109,7 +5187,7 @@ experimental domain LayerTree event layerTreeDidChange parameters - # Layer tree, absent if not in the comspositing mode. + # Layer tree, absent if not in the compositing mode. optional array of Layer layers # Provides access to log entries. @@ -5461,10 +5539,11 @@ domain Network # HTTP request headers. Headers headers # HTTP POST request data. - optional string postData + # Use postDataEntries instead. + deprecated optional string postData # True when the request has POST data. Note that postData might still be omitted when this flag is true when the data is too long. optional boolean hasPostData - # Request body elements. This will be converted from base64 to binary + # Request body elements (post data broken into individual entries). experimental optional array of PostDataEntry postDataEntries # The mixed content type of the request. optional Security.MixedContentType mixedContentType @@ -5486,7 +5565,7 @@ domain Network # passed by the developer (e.g. via "fetch") as understood by the backend. experimental optional TrustTokenParams trustTokenParams # True if this resource request is considered to be the 'same site' as the - # request correspondinfg to the main frame. + # request corresponding to the main frame. experimental optional boolean isSameSite # Details of a signed certificate timestamp (SCT). @@ -5690,9 +5769,18 @@ domain Network # This value is used when the reason is unknown. unspecifiedReason + # Source of service worker router. + type ServiceWorkerRouterSource extends string + enum + network + cache + fetch-event + race-network-and-fetch-handler + experimental type ServiceWorkerRouterInfo extends object properties integer ruleIdMatched + ServiceWorkerRouterSource matchedSourceType # HTTP response data. type Response extends object @@ -5709,6 +5797,8 @@ domain Network deprecated optional string headersText # Resource mimeType as determined by the browser. string mimeType + # Resource charset as determined by the browser (if applicable). + string charset # Refined HTTP request headers that were actually transmitted over the network. optional Headers requestHeaders # HTTP request headers text. This has been replaced by the headers in Network.requestWillBeSentExtraInfo. @@ -5727,7 +5817,7 @@ domain Network optional boolean fromServiceWorker # Specifies that the request was served from the prefetch cache. optional boolean fromPrefetchCache - # Infomation about how Service Worker Static Router was used. + # Information about how Service Worker Static Router was used. experimental optional ServiceWorkerRouterInfo serviceWorkerRouterInfo # Total number of bytes received for this request so far. number encodedDataLength @@ -5863,7 +5953,7 @@ domain Network # The cookie had the "Secure" attribute but was not received over a secure connection. SecureOnly # The cookie had the "SameSite=Strict" attribute but came from a cross-origin response. - # This includes navigation requests intitiated by other origins. + # This includes navigation requests initiated by other origins. SameSiteStrict # The cookie had the "SameSite=Lax" attribute but came from a cross-origin response. SameSiteLax @@ -5897,7 +5987,7 @@ domain Network UnknownError # The cookie had the "SameSite=Strict" attribute but came from a response # with the same registrable domain but a different scheme. - # This includes navigation requests intitiated by other origins. + # This includes navigation requests initiated by other origins. # This is the "Schemeful Same-Site" version of the blocked reason. SchemefulSameSiteStrict # The cookie had the "SameSite=Lax" attribute but came from a response @@ -5959,7 +6049,7 @@ domain Network UnknownError # The cookie had the "SameSite=Strict" attribute but came from a response # with the same registrable domain but a different scheme. - # This includes navigation requests intitiated by other origins. + # This includes navigation requests initiated by other origins. # This is the "Schemeful Same-Site" version of the blocked reason. SchemefulSameSiteStrict # The cookie had the "SameSite=Lax" attribute but came from a response @@ -5977,6 +6067,28 @@ domain Network # RFC6265bis. NameValuePairExceedsMaxSize + # Types of reasons why a cookie should have been blocked by 3PCD but is exempted for the request. + experimental type CookieExemptionReason extends string + enum + # The default value. Cookie with this reason could either be blocked or included. + None + # The cookie should have been blocked by 3PCD but is exempted by explicit user setting. + UserSetting + # The cookie should have been blocked by 3PCD but is exempted by metadata mitigation. + TPCDMetadata + # The cookie should have been blocked by 3PCD but is exempted by Deprecation Trial mitigation. + TPCDDeprecationTrial + # The cookie should have been blocked by 3PCD but is exempted by heuristics mitigation. + TPCDHeuristics + # The cookie should have been blocked by 3PCD but is exempted by Enterprise Policy. + EnterprisePolicy + # The cookie should have been blocked by 3PCD but is exempted by Storage Access API. + StorageAccess + # The cookie should have been blocked by 3PCD but is exempted by Top-level Storage Access API. + TopLevelStorageAccess + # The cookie should have been blocked by 3PCD but is exempted by CORS opt-in. + CorsOptIn + # A cookie which was not stored from a response with the corresponding reason. experimental type BlockedSetCookieWithReason extends object properties @@ -5990,13 +6102,26 @@ domain Network # errors. optional Cookie cookie - # A cookie with was not sent with a request with the corresponding reason. - experimental type BlockedCookieWithReason extends object + # A cookie should have been blocked by 3PCD but is exempted and stored from a response with the + # corresponding reason. A cookie could only have at most one exemption reason. + experimental type ExemptedSetCookieWithReason extends object + properties + # The reason the cookie was exempted. + CookieExemptionReason exemptionReason + # The cookie object representing the cookie. + Cookie cookie + + # A cookie associated with the request which may or may not be sent with it. + # Includes the cookies itself and reasons for blocking or exemption. + experimental type AssociatedCookie extends object properties - # The reason(s) the cookie was blocked. - array of CookieBlockedReason blockedReasons # The cookie object representing the cookie which was not sent. Cookie cookie + # The reason(s) the cookie was blocked. If empty means the cookie is included. + array of CookieBlockedReason blockedReasons + # The reason the cookie should have been blocked by 3PCD but is exempted. A cookie could + # only have at most one exemption reason. + optional CookieExemptionReason exemptionReason # Cookie parameter object type CookieParam extends object @@ -6151,7 +6276,7 @@ domain Network optional SignedExchangeHeader header # Security details for the signed exchange header. optional SecurityDetails securityDetails - # Errors occurred while handling the signed exchagne. + # Errors occurred while handling the signed exchange. optional array of SignedExchangeError errors # List of content encodings supported by the backend. @@ -6224,7 +6349,7 @@ domain Network # Response to a requestIntercepted with an authChallenge. Must not be set otherwise. optional AuthChallengeResponse authChallengeResponse - # Deletes browser cookies with matching name and url or domain/path pair. + # Deletes browser cookies with matching name and url or domain/path/partitionKey pair. command deleteCookies parameters # Name of the cookies to remove. @@ -6236,6 +6361,9 @@ domain Network optional string domain # If specified, deletes only cookies with the exact path. optional string path + # If specified, deletes only cookies with the the given name and partitionKey where domain + # matches provided URL. + optional string partitionKey # Disables network tracking, prevents network events from being sent to the client. command disable @@ -6253,6 +6381,12 @@ domain Network number uploadThroughput # Connection type if known. optional ConnectionType connectionType + # WebRTC packet loss (percent, 0-100). 0 disables packet loss emulation, 100 drops all the packets. + experimental optional number packetLoss + # WebRTC packet queue length (packet). 0 removes any queue length limitations. + experimental optional integer packetQueueLength + # WebRTC packetReordering feature. + experimental optional boolean packetReordering # Enables network tracking, network events will now be delivered to the client. command enable @@ -6363,7 +6497,7 @@ domain Network array of string urls # Toggles ignoring of service worker for each request. - experimental command setBypassServiceWorker + command setBypassServiceWorker parameters # Bypass service worker and load from network. boolean bypass @@ -6465,6 +6599,18 @@ domain Network integer dataLength # Actual bytes received (might be less than dataLength for compressed encodings). integer encodedDataLength + # Data that was received. + experimental optional binary data + + # Enables streaming of the response for the given requestId. + # If enabled, the dataReceived event contains the data that was received during streaming. + experimental command streamResourceContent + parameters + # Identifier of the request to stream. + RequestId requestId + returns + # Data that has been buffered until streaming is enabled. + binary bufferedData # Fired when EventSource message is received. event eventSourceMessageReceived @@ -6489,7 +6635,7 @@ domain Network MonotonicTime timestamp # Resource type. ResourceType type - # User friendly error message. + # Error message. List of network errors: https://cs.chromium.org/chromium/src/net/base/net_error_list.h string errorText # True if loading was canceled. optional boolean canceled @@ -6753,8 +6899,8 @@ domain Network # Request identifier. Used to match this information to an existing requestWillBeSent event. RequestId requestId # A list of cookies potentially associated to the requested URL. This includes both cookies sent with - # the request and the ones not sent; the latter are distinguished by having blockedReason field set. - array of BlockedCookieWithReason associatedCookies + # the request and the ones not sent; the latter are distinguished by having blockedReasons field set. + array of AssociatedCookie associatedCookies # Raw request headers as they will be sent over the wire. Headers headers # Connection timing information for the request. @@ -6790,8 +6936,11 @@ domain Network # The cookie partition key that will be used to store partitioned cookies set in this response. # Only sent when partitioned cookies are enabled. optional string cookiePartitionKey - # True if partitioned cookies are enabled, but the partition key is not serializeable to string. + # True if partitioned cookies are enabled, but the partition key is not serializable to string. optional boolean cookiePartitionKeyOpaque + # A list of cookies which should have been blocked by 3PCD but are exempted and stored from + # the response with the corresponding reason. + optional array of ExemptedSetCookieWithReason exemptedCookies # Fired exactly once for each Trust Token operation. Depending on # the type of the operation and whether the operation succeeded or @@ -7031,7 +7180,7 @@ experimental domain Overlay # Configuration data for drawing the source order of an elements children. type SourceOrderConfig extends object properties - # the color to outline the givent element in. + # the color to outline the given element in. DOM.RGBA parentOutlineColor # the color to outline the child elements in. DOM.RGBA childOutlineColor @@ -7231,7 +7380,7 @@ experimental domain Overlay properties # Whether the title bar CSS should be shown when emulating the Window Controls Overlay. boolean showCSS - # Seleted platforms to show the overlay. + # Selected platforms to show the overlay. string selectedPlatform # The theme color defined in app manifest. string themeColor @@ -7319,8 +7468,8 @@ experimental domain Overlay command hideHighlight # Highlights owner element of the frame with given id. - # Deprecated: Doesn't work reliablity and cannot be fixed due to process - # separatation (the owner node might be in a different process). Determine + # Deprecated: Doesn't work reliably and cannot be fixed due to process + # separation (the owner node might be in a different process). Determine # the owner node in the client and use highlightNode. deprecated command highlightFrame parameters @@ -7595,6 +7744,7 @@ domain Page bluetooth browsing-topics camera + captured-surface-control ch-dpr ch-device-memory ch-downlink @@ -7610,7 +7760,7 @@ domain Page ch-ua-platform ch-ua-model ch-ua-mobile - ch-ua-form-factor + ch-ua-form-factors ch-ua-full-version ch-ua-full-version-list ch-ua-platform-version @@ -7650,6 +7800,7 @@ domain Page private-aggregation private-state-token-issuance private-state-token-redemption + publickey-credentials-create publickey-credentials-get run-ad-auction screen-wake-lock @@ -7658,7 +7809,9 @@ domain Page shared-storage shared-storage-select-url smart-card + speaker-selection storage-access + sub-apps sync-xhr unload usb @@ -7883,7 +8036,7 @@ domain Page properties # Error message. string message - # If criticial, this is a non-recoverable parse error. + # If critical, this is a non-recoverable parse error. integer critical # Error line. integer line @@ -8372,7 +8525,7 @@ domain Page boolean enabled # Enable page Content Security Policy by-passing. - experimental command setBypassCSP + command setBypassCSP parameters # Whether to bypass page CSP. boolean enabled @@ -8484,7 +8637,7 @@ domain Page optional number accuracy # Controls whether page will emit lifecycle events. - experimental command setLifecycleEventsEnabled + command setLifecycleEventsEnabled parameters # If true, starts emitting lifecycle events. boolean enabled @@ -8524,7 +8677,7 @@ domain Page experimental command crash # Tries to close page, running its beforeunload hooks, if any. - experimental command close + command close # Tries to update the web lifecycle state of the page. # It will transition the page to the given state according to: @@ -8540,7 +8693,7 @@ domain Page experimental command stopScreencast # Requests backend to produce compilation cache for the specified scripts. - # `scripts` are appeneded to the list of scripts for which the cache + # `scripts` are appended to the list of scripts for which the cache # would be produced. The list may be reset during page navigation. # When script with a matching URL is encountered, the cache is optionally # produced upon backend discretion, based on internal heuristics. @@ -8560,7 +8713,7 @@ domain Page # Clears seeded compilation cache. experimental command clearCompilationCache - # Enum of possible auto-reponse for permisison / prompt dialogs. + # Enum of possible auto-response for permission / prompt dialogs. experimental type AutoResponseMode extends string enum none @@ -8594,7 +8747,7 @@ domain Page # Intercept file chooser requests and transfer control to protocol clients. # When file chooser interception is enabled, native file chooser dialog is not shown. # Instead, a protocol event `Page.fileChooserOpened` is emitted. - experimental command setInterceptFileChooserDialog + command setInterceptFileChooserDialog parameters boolean enabled @@ -8831,6 +8984,7 @@ domain Page CookieDisabled HTTPAuthRequired CookieFlushed + BroadcastChannelOnMessage #Blocklisted features WebSocket WebTransport @@ -8841,7 +8995,6 @@ domain Page SubresourceHasCacheControlNoCache ContainsPlugins DocumentLoaded - DedicatedWorkerOrWorklet OutstandingNetworkRequestOthers RequestedMIDIPermission RequestedAudioCapturePermission @@ -8879,6 +9032,10 @@ domain Page WebRTCSticky WebTransportSticky WebSocketSticky + SmartCard + LiveMediaStreamTrack + UnloadHandler + ParserAborted # Disabled for RenderFrameHost reasons # See content/browser/renderer_host/back_forward_cache_disable.h for explanations. ContentSecurityHandler @@ -8955,7 +9112,7 @@ domain Page # when bfcache navigation fails. experimental event backForwardCacheNotUsed parameters - # The loader id for the associated navgation. + # The loader id for the associated navigation. Network.LoaderId loaderId # The frame id of the associated frame. FrameId frameId @@ -9112,7 +9269,7 @@ experimental domain PerformanceTimeline # Identifies the frame that this event is related to. Empty for non-frame targets. Page.FrameId frameId # The event type, as specified in https://w3c.github.io/performance-timeline/#dom-performanceentry-entrytype - # This determines which of the optional "details" fiedls is present. + # This determines which of the optional "details" fields is present. string type # Name may be empty depending on the type. string name @@ -9188,7 +9345,7 @@ domain Security Network.TimeSinceEpoch validTo # The highest priority network error code, if the certificate has an error. optional string certificateNetworkError - # True if the certificate uses a weak signature aglorithm. + # True if the certificate uses a weak signature algorithm. boolean certificateHasWeakSignature # True if the certificate has a SHA1 signature in the chain. boolean certificateHasSha1Signature @@ -9277,7 +9434,7 @@ domain Security command enable # Enable/disable whether all certificate errors should be ignored. - experimental command setIgnoreCertificateErrors + command setIgnoreCertificateErrors parameters # If true, all certificate errors will be ignored. boolean ignore @@ -9490,6 +9647,9 @@ experimental domain Storage string issuerOrigin number count + # Protected audience interest group auction identifier. + type InterestGroupAuctionId extends string + # Enum of interest group access types. type InterestGroupAccessType extends string enum @@ -9501,29 +9661,24 @@ experimental domain Storage win additionalBid additionalBidWin + topLevelBid + topLevelAdditionalBid clear - # Ad advertising element inside an interest group. - type InterestGroupAd extends object - properties - string renderURL - optional string metadata + # Enum of auction events. + type InterestGroupAuctionEventType extends string + enum + started + configResolved - # The full details of an interest group. - type InterestGroupDetails extends object - properties - string ownerOrigin - string name - Network.TimeSinceEpoch expirationTime - string joiningOrigin - optional string biddingLogicURL - optional string biddingWasmHelperURL - optional string updateURL - optional string trustedBiddingSignalsURL - array of string trustedBiddingSignalsKeys - optional string userBiddingSignals - array of InterestGroupAd ads - array of InterestGroupAd adComponents + # Enum of network fetches auctions can do. + type InterestGroupAuctionFetchType extends string + enum + bidderJs + bidderWasm + sellerJs + bidderTrustedSignals + sellerTrustedSignals # Enum of shared storage access types. type SharedStorageAccessType extends string @@ -9535,6 +9690,7 @@ experimental domain Storage documentAppend documentDelete documentClear + documentGet workletSet workletAppend workletDelete @@ -9544,6 +9700,10 @@ experimental domain Storage workletEntries workletLength workletRemainingBudget + headerSet + headerAppend + headerDelete + headerClear # Struct for a single key-value pair in an origin's shared storage. type SharedStorageEntry extends object @@ -9554,9 +9714,15 @@ experimental domain Storage # Details for an origin's shared storage. type SharedStorageMetadata extends object properties + # Time when the origin's shared storage was last created. Network.TimeSinceEpoch creationTime + # Number of key-value pairs stored in origin's shared storage. integer length + # Current amount of bits of entropy remaining in the navigation budget. number remainingBudget + # Total number of bytes stored as key-value pairs in origin's shared + # storage. + integer bytesUsed # Pair of reporting metadata details for a candidate URL for `selectURL()`. type SharedStorageReportingMetadata extends object @@ -9596,18 +9762,24 @@ experimental domain Storage # SharedStorageAccessType.documentDelete, # SharedStorageAccessType.workletSet, # SharedStorageAccessType.workletAppend, - # SharedStorageAccessType.workletDelete, and - # SharedStorageAccessType.workletGet. + # SharedStorageAccessType.workletDelete, + # SharedStorageAccessType.workletGet, + # SharedStorageAccessType.headerSet, + # SharedStorageAccessType.headerAppend, and + # SharedStorageAccessType.headerDelete. optional string key # Value for a specific entry in an origin's shared storage. # Present only for SharedStorageAccessType.documentSet, # SharedStorageAccessType.documentAppend, - # SharedStorageAccessType.workletSet, and - # SharedStorageAccessType.workletAppend. + # SharedStorageAccessType.workletSet, + # SharedStorageAccessType.workletAppend, + # SharedStorageAccessType.headerSet, and + # SharedStorageAccessType.headerAppend. optional string value # Whether or not to set an entry for a key if that key is already present. - # Present only for SharedStorageAccessType.documentSet and - # SharedStorageAccessType.workletSet. + # Present only for SharedStorageAccessType.documentSet, + # SharedStorageAccessType.workletSet, and + # SharedStorageAccessType.headerSet. optional boolean ignoreIfPresent type StorageBucketsDurability extends string @@ -9775,13 +9947,23 @@ experimental domain Storage string ownerOrigin string name returns - InterestGroupDetails details + # This largely corresponds to: + # https://wicg.github.io/turtledove/#dictdef-generatebidinterestgroup + # but has absolute expirationTime instead of relative lifetimeMs and + # also adds joiningOrigin. + object details # Enables/Disables issuing of interestGroupAccessed events. experimental command setInterestGroupTracking parameters boolean enable + # Enables/Disables issuing of interestGroupAuctionEventOccurred and + # interestGroupAuctionNetworkRequestCreated. + experimental command setInterestGroupAuctionTracking + parameters + boolean enable + # Gets metadata for an origin's shared storage. experimental command getSharedStorageMetadata parameters @@ -9889,13 +10071,47 @@ experimental domain Storage # Storage bucket to update. string bucketId - # One of the interest groups was accessed by the associated page. + # One of the interest groups was accessed. Note that these events are global + # to all targets sharing an interest group store. event interestGroupAccessed parameters Network.TimeSinceEpoch accessTime InterestGroupAccessType type string ownerOrigin string name + # For topLevelBid/topLevelAdditionalBid, and when appropriate, + # win and additionalBidWin + optional string componentSellerOrigin + # For bid or somethingBid event, if done locally and not on a server. + optional number bid + optional string bidCurrency + # For non-global events --- links to interestGroupAuctionEvent + optional InterestGroupAuctionId uniqueAuctionId + + # An auction involving interest groups is taking place. These events are + # target-specific. + event interestGroupAuctionEventOccurred + parameters + Network.TimeSinceEpoch eventTime + InterestGroupAuctionEventType type + InterestGroupAuctionId uniqueAuctionId + # Set for child auctions. + optional InterestGroupAuctionId parentAuctionId + # Set for started and configResolved + optional object auctionConfig + + # Specifies which auctions a particular network fetch may be related to, and + # in what role. Note that it is not ordered with respect to + # Network.requestWillBeSent (but will happen before loadingFinished + # loadingFailed). + event interestGroupAuctionNetworkRequestCreated + parameters + InterestGroupAuctionFetchType type + Network.RequestId requestId + # This is the set of the auctions using the worklet that issued this + # request. In the case of trusted signals, it's possible that only some of + # them actually care about the keys being queried. + array of InterestGroupAuctionId auctions # Shared storage was accessed by the associated page. # The following parameters are included in all events. @@ -9909,7 +10125,7 @@ experimental domain Storage Page.FrameId mainFrameId # Serialized origin for the context that invoked the Shared Storage API. string ownerOrigin - # The sub-parameters warapped by `params` are all optional and their + # The sub-parameters wrapped by `params` are all optional and their # presence/absence depends on `type`. SharedStorageAccessParams params @@ -9946,6 +10162,17 @@ experimental domain Storage string key array of string values + experimental type AttributionReportingFilterConfig extends object + properties + array of AttributionReportingFilterDataEntry filterValues + # duration in seconds + optional integer lookbackWindow + + experimental type AttributionReportingFilterPair extends object + properties + array of AttributionReportingFilterConfig filters + array of AttributionReportingFilterConfig notFilters + experimental type AttributionReportingAggregationKeysEntry extends object properties string key @@ -10004,13 +10231,120 @@ experimental domain Storage reportingOriginsPerSiteLimitReached exceedsMaxChannelCapacity - # TODO(crbug.com/1458532): Add other Attribution Reporting events, e.g. - # trigger registration. experimental event attributionReportingSourceRegistered parameters AttributionReportingSourceRegistration registration AttributionReportingSourceRegistrationResult result + experimental type AttributionReportingSourceRegistrationTimeConfig extends string + enum + include + exclude + + experimental type AttributionReportingAggregatableValueDictEntry extends object + properties + string key + # number instead of integer because not all uint32 can be represented by + # int + number value + + experimental type AttributionReportingAggregatableValueEntry extends object + properties + array of AttributionReportingAggregatableValueDictEntry values + AttributionReportingFilterPair filters + + experimental type AttributionReportingEventTriggerData extends object + properties + UnsignedInt64AsBase10 data + SignedInt64AsBase10 priority + optional UnsignedInt64AsBase10 dedupKey + AttributionReportingFilterPair filters + + experimental type AttributionReportingAggregatableTriggerData extends object + properties + UnsignedInt128AsBase16 keyPiece + array of string sourceKeys + AttributionReportingFilterPair filters + + experimental type AttributionReportingAggregatableDedupKey extends object + properties + optional UnsignedInt64AsBase10 dedupKey + AttributionReportingFilterPair filters + + experimental type AttributionReportingTriggerRegistration extends object + properties + AttributionReportingFilterPair filters + optional UnsignedInt64AsBase10 debugKey + array of AttributionReportingAggregatableDedupKey aggregatableDedupKeys + array of AttributionReportingEventTriggerData eventTriggerData + array of AttributionReportingAggregatableTriggerData aggregatableTriggerData + array of AttributionReportingAggregatableValueEntry aggregatableValues + boolean debugReporting + optional string aggregationCoordinatorOrigin + AttributionReportingSourceRegistrationTimeConfig sourceRegistrationTimeConfig + optional string triggerContextId + + experimental type AttributionReportingEventLevelResult extends string + enum + success + successDroppedLowerPriority + internalError + noCapacityForAttributionDestination + noMatchingSources + deduplicated + excessiveAttributions + priorityTooLow + neverAttributedSource + excessiveReportingOrigins + noMatchingSourceFilterData + prohibitedByBrowserPolicy + noMatchingConfigurations + excessiveReports + falselyAttributedSource + reportWindowPassed + notRegistered + reportWindowNotStarted + noMatchingTriggerData + + experimental type AttributionReportingAggregatableResult extends string + enum + success + internalError + noCapacityForAttributionDestination + noMatchingSources + excessiveAttributions + excessiveReportingOrigins + noHistograms + insufficientBudget + noMatchingSourceFilterData + notRegistered + prohibitedByBrowserPolicy + deduplicated + reportWindowPassed + excessiveReports + + experimental event attributionReportingTriggerRegistered + parameters + AttributionReportingTriggerRegistration registration + AttributionReportingEventLevelResult eventLevel + AttributionReportingAggregatableResult aggregatable + + # A single Related Website Set object. + experimental type RelatedWebsiteSet extends object + properties + # The primary site of this set, along with the ccTLDs if there is any. + array of string primarySites + # The associated sites of this set, along with the ccTLDs if there is any. + array of string associatedSites + # The service sites of this set, along with the ccTLDs if there is any. + array of string serviceSites + + # Returns the effective Related Website Sets in use by this profile for the browser + # session. The effective Related Website Sets will not change during a browser session. + experimental command getRelatedWebsiteSets + returns + array of RelatedWebsiteSet sets + # The SystemInfo domain defines methods and events for querying low-level system information. experimental domain SystemInfo @@ -10162,6 +10496,7 @@ domain Target type TargetInfo extends object properties TargetID targetId + # List of types: https://source.chromium.org/chromium/chromium/src/+/main:content/browser/devtools/devtools_agent_host_impl.cc?ss=chromium&q=f:devtools%20-f:out%20%22::kTypeTab%5B%5D%22 string type string title string url @@ -10181,7 +10516,7 @@ domain Target # A filter used by target query/discovery/auto-attach operations. experimental type FilterEntry extends object properties - # If set, causes exclusion of mathcing targets from the list. + # If set, causes exclusion of matching targets from the list. optional boolean exclude # If not present, matches any type. optional string type @@ -10235,7 +10570,7 @@ domain Target # # Injected object will be available as `window[bindingName]`. # - # The object has the follwing API: + # The object has the following API: # - `binding.send(json)` - a method to send messages over the remote debugging protocol # - `binding.onmessage = json => handleMessage(json)` - a callback that will be called for the protocol notifications and command responses. experimental command exposeDevToolsProtocol @@ -10246,23 +10581,23 @@ domain Target # Creates a new empty BrowserContext. Similar to an incognito profile but you can have more than # one. - experimental command createBrowserContext + command createBrowserContext parameters # If specified, disposes this context when debugging session disconnects. - optional boolean disposeOnDetach + experimental optional boolean disposeOnDetach # Proxy server, similar to the one passed to --proxy-server - optional string proxyServer + experimental optional string proxyServer # Proxy bypass list, similar to the one passed to --proxy-bypass-list - optional string proxyBypassList + experimental optional string proxyBypassList # An optional list of origins to grant unlimited cross-origin access to. # Parts of the URL other than those constituting origin are ignored. - optional array of string originsWithUniversalNetworkAccess + experimental optional array of string originsWithUniversalNetworkAccess returns # The id of the context created. Browser.BrowserContextID browserContextId # Returns all browser contexts created with `Target.createBrowserContext` method. - experimental command getBrowserContexts + command getBrowserContexts returns # An array of browser context ids. array of Browser.BrowserContextID browserContextIds @@ -10302,7 +10637,7 @@ domain Target # Deletes a BrowserContext. All the belonging pages will be closed without calling their # beforeunload hooks. - experimental command disposeBrowserContext + command disposeBrowserContext parameters Browser.BrowserContextID browserContextId @@ -10340,7 +10675,7 @@ domain Target # automatically detaches from all currently attached targets. # This also clears all targets added by `autoAttachRelated` from the list of targets to watch # for creation of related targets. - experimental command setAutoAttach + command setAutoAttach parameters # Whether to auto-attach to related targets. boolean autoAttach @@ -10350,7 +10685,7 @@ domain Target # Enables "flat" access to the session via specifying sessionId attribute in the commands. # We plan to make this the default, deprecate non-flattened mode, # and eventually retire it. See crbug.com/991325. - optional boolean flatten + experimental optional boolean flatten # Only targets matching filter will be attached. experimental optional TargetFilter filter @@ -10460,47 +10795,47 @@ experimental domain Tethering # Connection id to be used. string connectionId -experimental domain Tracing +domain Tracing depends on IO # Configuration for memory dump. Used only when "memory-infra" category is enabled. - type MemoryDumpConfig extends object + experimental type MemoryDumpConfig extends object type TraceConfig extends object properties # Controls how the trace buffer stores data. - optional enum recordMode + experimental optional enum recordMode recordUntilFull recordContinuously recordAsMuchAsPossible echoToConsole # Size of the trace buffer in kilobytes. If not specified or zero is passed, a default value # of 200 MB would be used. - optional number traceBufferSizeInKb + experimental optional number traceBufferSizeInKb # Turns on JavaScript stack sampling. - optional boolean enableSampling + experimental optional boolean enableSampling # Turns on system tracing. - optional boolean enableSystrace + experimental optional boolean enableSystrace # Turns on argument filter. - optional boolean enableArgumentFilter + experimental optional boolean enableArgumentFilter # Included category filters. optional array of string includedCategories # Excluded category filters. optional array of string excludedCategories # Configuration to synthesize the delays in tracing. - optional array of string syntheticDelays + experimental optional array of string syntheticDelays # Configuration for memory dump triggers. Used only when "memory-infra" category is enabled. - optional MemoryDumpConfig memoryDumpConfig + experimental optional MemoryDumpConfig memoryDumpConfig # Data format of a trace. Can be either the legacy JSON format or the # protocol buffer format. Note that the JSON format will be deprecated soon. - type StreamFormat extends string + experimental type StreamFormat extends string enum json proto # Compression type to use for traces returned via streams. - type StreamCompression extends string + experimental type StreamCompression extends string enum none gzip @@ -10508,7 +10843,7 @@ experimental domain Tracing # Details exposed when memory request explicitly declared. # Keep consistent with memory_dump_request_args.h and # memory_instrumentation.mojom - type MemoryDumpLevelOfDetail extends string + experimental type MemoryDumpLevelOfDetail extends string enum background light @@ -10519,7 +10854,7 @@ experimental domain Tracing # supported on Chrome OS and uses the Perfetto system tracing service. # `auto` chooses `system` when the perfettoConfig provided to Tracing.start # specifies at least one non-Chrome data source; otherwise uses `chrome`. - type TracingBackend extends string + experimental type TracingBackend extends string enum auto chrome @@ -10529,19 +10864,19 @@ experimental domain Tracing command end # Gets supported tracing categories. - command getCategories + experimental command getCategories returns # A list of supported tracing categories. array of string categories # Record a clock sync marker in the trace. - command recordClockSyncMarker + experimental command recordClockSyncMarker parameters # The ID of this clock sync marker string syncId # Request a global memory dump. - command requestMemoryDump + experimental command requestMemoryDump parameters # Enables more deterministic results by forcing garbage collection optional boolean deterministic @@ -10557,11 +10892,11 @@ experimental domain Tracing command start parameters # Category/tag filter - deprecated optional string categories + experimental deprecated optional string categories # Tracing options - deprecated optional string options + experimental deprecated optional string options # If set, the agent will issue bufferUsage events at this interval, specified in milliseconds - optional number bufferUsageReportingInterval + experimental optional number bufferUsageReportingInterval # Whether to report trace events as series of dataCollected events or to save trace to a # stream (defaults to `ReportEvents`). optional enum transferMode @@ -10572,16 +10907,16 @@ experimental domain Tracing optional StreamFormat streamFormat # Compression format to use. This only applies when using `ReturnAsStream` # transfer mode (defaults to `none`) - optional StreamCompression streamCompression + experimental optional StreamCompression streamCompression optional TraceConfig traceConfig # Base64-encoded serialized perfetto.protos.TraceConfig protobuf message # When specified, the parameters `categories`, `options`, `traceConfig` # are ignored. - optional binary perfettoConfig + experimental optional binary perfettoConfig # Backend type (defaults to `auto`) - optional TracingBackend tracingBackend + experimental optional TracingBackend tracingBackend - event bufferUsage + experimental event bufferUsage parameters # A number in range [0..1] that indicates the used size of event buffer as a fraction of its # total size. @@ -10594,7 +10929,7 @@ experimental domain Tracing # Contains a bucket of collected trace events. When tracing is stopped collected events will be # sent as a sequence of dataCollected events followed by tracingComplete event. - event dataCollected + experimental event dataCollected parameters array of object value @@ -11142,6 +11477,14 @@ experimental domain WebAuthn # The large blob associated with the credential. # See https://w3c.github.io/webauthn/#sctn-large-blob-extension optional binary largeBlob + # Assertions returned by this credential will have the backup eligibility + # (BE) flag set to this value. Defaults to the authenticator's + # defaultBackupEligibility value. + optional boolean backupEligibility + # Assertions returned by this credential will have the backup state (BS) + # flag set to this value. Defaults to the authenticator's + # defaultBackupState value. + optional boolean backupState # Enable the WebAuthn domain and start intercepting credential storage and # retrieval with a virtual authenticator. @@ -11230,6 +11573,15 @@ experimental domain WebAuthn AuthenticatorId authenticatorId boolean enabled + # Allows setting credential properties. + # https://w3c.github.io/webauthn/#sctn-automation-set-credential-properties + command setCredentialProperties + parameters + AuthenticatorId authenticatorId + binary credentialId + optional boolean backupEligibility + optional boolean backupState + # Triggered when a credential is added to an authenticator. event credentialAdded parameters @@ -11455,7 +11807,7 @@ experimental domain Preload # that had a speculation rule that triggered the attempt, and the # BackendNodeIds of or elements that triggered the # attempt (in the case of attempts triggered by a document rule). It is - # possible for mulitple rule sets and links to trigger a single attempt. + # possible for multiple rule sets and links to trigger a single attempt. type PreloadingAttemptSource extends object properties PreloadingAttemptKey key @@ -11577,7 +11929,8 @@ experimental domain Preload PrefetchFailedNetError PrefetchFailedNon2XX PrefetchFailedPerPageLimitExceeded - PrefetchEvicted + PrefetchEvictedAfterCandidateRemoved + PrefetchEvictedForNewerPrefetch PrefetchHeldback # A previous prefetch to the origin got a HTTP 503 response with an # Retry-After header that has no elapsed yet. @@ -11665,6 +12018,12 @@ experimental domain FedCm ErrorGotIt ErrorMoreDetails + # The URLs that each account has + type AccountUrlType extends string + enum + TermsOfService + PrivacyPolicy + # Corresponds to IdentityRequestAccount type Account extends object properties @@ -11715,6 +12074,12 @@ experimental domain FedCm string dialogId DialogButton dialogButton + command openUrl + parameters + string dialogId + integer accountIndex + AccountUrlType accountUrlType + command dismissDialog parameters string dialogId diff --git a/common/devtools/chromium/v121/js_protocol.pdl b/common/devtools/chromium/v124/js_protocol.pdl similarity index 99% rename from common/devtools/chromium/v121/js_protocol.pdl rename to common/devtools/chromium/v124/js_protocol.pdl index 4754f17c5b02d..8dad9c98de9f6 100644 --- a/common/devtools/chromium/v121/js_protocol.pdl +++ b/common/devtools/chromium/v124/js_protocol.pdl @@ -1665,7 +1665,7 @@ domain Runtime # Binding function takes exactly one argument, this argument should be string, # in case of any other input, function throws an exception. # Each binding function call produces Runtime.bindingCalled notification. - experimental command addBinding + command addBinding parameters string name # If specified, the binding would only be exposed to the specified @@ -1675,17 +1675,17 @@ domain Runtime # Deprecated in favor of `executionContextName` due to an unclear use case # and bugs in implementation (crbug.com/1169639). `executionContextId` will be # removed in the future. - deprecated optional ExecutionContextId executionContextId + experimental deprecated optional ExecutionContextId executionContextId # If specified, the binding is exposed to the executionContext with # matching name, even for contexts created after the binding is added. # See also `ExecutionContext.name` and `worldName` parameter to # `Page.addScriptToEvaluateOnNewDocument`. # This parameter is mutually exclusive with `executionContextId`. - experimental optional string executionContextName + optional string executionContextName # This method does not remove binding function from global object but # unsubscribes current runtime agent from Runtime.bindingCalled notifications. - experimental command removeBinding + command removeBinding parameters string name diff --git a/common/repositories.bzl b/common/repositories.bzl index bc07fba00aba6..9177202e8ae47 100644 --- a/common/repositories.bzl +++ b/common/repositories.bzl @@ -11,8 +11,8 @@ def pin_browsers(): http_archive( name = "linux_firefox", - url = "https://ftp.mozilla.org/pub/firefox/releases/125.0.1/linux-x86_64/en-US/firefox-125.0.1.tar.bz2", - sha256 = "0f702f7690b02953e336fac27874276d9d471c9d264dc0feb7fcc6693d63bd4b", + url = "https://ftp.mozilla.org/pub/firefox/releases/125.0.2/linux-x86_64/en-US/firefox-125.0.2.tar.bz2", + sha256 = "ecd3d99be21bc2c3afb6f1a89fc587adb3dcd2a4ef22f95350d461f86251ae7b", build_file_content = """ load("@aspect_rules_js//js:defs.bzl", "js_library") package(default_visibility = ["//visibility:public"]) @@ -33,8 +33,8 @@ js_library( dmg_archive( name = "mac_firefox", - url = "https://ftp.mozilla.org/pub/firefox/releases/125.0.1/mac/en-US/Firefox%20125.0.1.dmg", - sha256 = "3f431079d423e5397987a4120a63948217252426219f23348cb6b6bbded3acf3", + url = "https://ftp.mozilla.org/pub/firefox/releases/125.0.2/mac/en-US/Firefox%20125.0.2.dmg", + sha256 = "a25f9e670fa0462be74ee04ac2cd6df234ff8d94cf032d5b94270af9f71fa355", build_file_content = """ load("@aspect_rules_js//js:defs.bzl", "js_library") package(default_visibility = ["//visibility:public"]) @@ -50,8 +50,8 @@ js_library( http_archive( name = "linux_beta_firefox", - url = "https://ftp.mozilla.org/pub/firefox/releases/126.0b2/linux-x86_64/en-US/firefox-126.0b2.tar.bz2", - sha256 = "915ad101d26acf80a0ac18b4e787277b3d8c2d1371cc1796bd2cba641810390a", + url = "https://ftp.mozilla.org/pub/firefox/releases/126.0b4/linux-x86_64/en-US/firefox-126.0b4.tar.bz2", + sha256 = "fc7022d0bcaf9665a8de117359fee0486aec4687b95d0386eb2186dac75d9a85", build_file_content = """ load("@aspect_rules_js//js:defs.bzl", "js_library") package(default_visibility = ["//visibility:public"]) @@ -72,8 +72,8 @@ js_library( dmg_archive( name = "mac_beta_firefox", - url = "https://ftp.mozilla.org/pub/firefox/releases/126.0b2/mac/en-US/Firefox%20126.0b2.dmg", - sha256 = "d49b5260d15ee137388e1e3b4dd5a102047794ccd6ef6de62dc0a48a41bb7785", + url = "https://ftp.mozilla.org/pub/firefox/releases/126.0b4/mac/en-US/Firefox%20126.0b4.dmg", + sha256 = "2284ba8a74ee95c2b756a85756ebd43dae1bd872b9aa99047652056649128190", build_file_content = """ load("@aspect_rules_js//js:defs.bzl", "js_library") package(default_visibility = ["//visibility:public"]) @@ -123,10 +123,10 @@ js_library( pkg_archive( name = "mac_edge", - url = "https://msedge.sf.dl.delivery.mp.microsoft.com/filestreamingservice/files/43311c31-f395-4a1b-92de-eac0daf193d9/MicrosoftEdge-123.0.2420.97.pkg", - sha256 = "dbe96437fbb602006c82dd52ae0ed406b2254c55e21cb119002b6da8b80f0d23", + url = "https://msedge.sf.dl.delivery.mp.microsoft.com/filestreamingservice/files/0cf35a4d-f494-4d78-9745-0db41824f448/MicrosoftEdge-124.0.2478.51.pkg", + sha256 = "70bb87e50260b95733e31abddfb2f3a22eb7258475a39c52f3d3765e6f83606e", move = { - "MicrosoftEdge-123.0.2420.97.pkg/Payload/Microsoft Edge.app": "Edge.app", + "MicrosoftEdge-124.0.2478.51.pkg/Payload/Microsoft Edge.app": "Edge.app", }, build_file_content = """ load("@aspect_rules_js//js:defs.bzl", "js_library") @@ -143,8 +143,8 @@ js_library( deb_archive( name = "linux_edge", - url = "https://packages.microsoft.com/repos/edge/pool/main/m/microsoft-edge-stable/microsoft-edge-stable_123.0.2420.97-1_amd64.deb", - sha256 = "abb3dc6e2d0942bff0bca22b82e783f5fd99eafd433280f66dc449286a83623b", + url = "https://packages.microsoft.com/repos/edge/pool/main/m/microsoft-edge-stable/microsoft-edge-stable_124.0.2478.51-1_amd64.deb", + sha256 = "7408934be2af295c0bead369e18b107c7e3074d209a0126781c2c15e01c0ae31", build_file_content = """ load("@aspect_rules_js//js:defs.bzl", "js_library") package(default_visibility = ["//visibility:public"]) @@ -199,8 +199,8 @@ js_library( http_archive( name = "linux_chrome", - url = "https://storage.googleapis.com/chrome-for-testing-public/123.0.6312.122/linux64/chrome-linux64.zip", - sha256 = "97d7925c795786f235f86973d1f60a70ad9613e96b22fee084720b3c6ba0701b", + url = "https://storage.googleapis.com/chrome-for-testing-public/124.0.6367.78/linux64/chrome-linux64.zip", + sha256 = "fad3381b09f64c29d044010493143ca72c43a96539c115a18588af4ebffe1f14", build_file_content = """ load("@aspect_rules_js//js:defs.bzl", "js_library") package(default_visibility = ["//visibility:public"]) @@ -221,8 +221,8 @@ js_library( http_archive( name = "mac_chrome", - url = "https://storage.googleapis.com/chrome-for-testing-public/123.0.6312.122/mac-x64/chrome-mac-x64.zip", - sha256 = "ae8ea050c05ed4956cf02031ea1866eeddabf020fa4dd22bffa2ddae444a993e", + url = "https://storage.googleapis.com/chrome-for-testing-public/124.0.6367.78/mac-x64/chrome-mac-x64.zip", + sha256 = "d0334ea7b8d736f1cdbfca8afbc9b4c0e318d010e53e7819a2ca7925cde7e785", strip_prefix = "chrome-mac-x64", patch_cmds = [ "mv 'Google Chrome for Testing.app' Chrome.app", @@ -243,8 +243,8 @@ js_library( http_archive( name = "linux_chromedriver", - url = "https://storage.googleapis.com/chrome-for-testing-public/123.0.6312.122/linux64/chromedriver-linux64.zip", - sha256 = "8a29aadfb75c11c636b2e5bbddaea58601ee35aa2ab736c06421e440ff6ba3f6", + url = "https://storage.googleapis.com/chrome-for-testing-public/124.0.6367.78/linux64/chromedriver-linux64.zip", + sha256 = "c670a2c8d600c2607671fcfb93844f415c1c69edd04a75714418dedf2bc0848f", strip_prefix = "chromedriver-linux64", build_file_content = """ load("@aspect_rules_js//js:defs.bzl", "js_library") @@ -261,8 +261,8 @@ js_library( http_archive( name = "mac_chromedriver", - url = "https://storage.googleapis.com/chrome-for-testing-public/123.0.6312.122/mac-x64/chromedriver-mac-x64.zip", - sha256 = "3e62d5fbe14ae9a0af76134d85bd9902644bba6afe55116f37eec807289e1199", + url = "https://storage.googleapis.com/chrome-for-testing-public/124.0.6367.78/mac-x64/chromedriver-mac-x64.zip", + sha256 = "c152cdc0896897aacadc97fe254370daf6f3ff2555110d6598ab02cb581f06f3", strip_prefix = "chromedriver-mac-x64", build_file_content = """ load("@aspect_rules_js//js:defs.bzl", "js_library") diff --git a/common/selenium_manager.bzl b/common/selenium_manager.bzl index b0e514e67e187..8fbce1e256056 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 = "90d9d61bf25af93e4302b6184a45b132ee3c02b68c6665bf83eef6edb7e9fca5", - url = "https://github.com/SeleniumHQ/selenium_manager_artifacts/releases/download/selenium-manager-6a15586/selenium-manager-linux", + sha256 = "3a458df47a90f5be91007ddbaaae27a9fe0f75666a4400363bc3ae7f66e510a2", + url = "https://github.com/SeleniumHQ/selenium_manager_artifacts/releases/download/selenium-manager-b565162/selenium-manager-linux", ) http_file( name = "download_sm_macos", executable = True, - sha256 = "85475ae5ff6721b371f9806ec1bb869cbb2e5c1b1b70862a2e3d5eec5c0384c0", - url = "https://github.com/SeleniumHQ/selenium_manager_artifacts/releases/download/selenium-manager-6a15586/selenium-manager-macos", + sha256 = "cab10dfad2750f82eacfce9deb7c5efbf7068da03eb19f80ea5d3882a45a8f9e", + url = "https://github.com/SeleniumHQ/selenium_manager_artifacts/releases/download/selenium-manager-b565162/selenium-manager-macos", ) http_file( name = "download_sm_windows", executable = True, - sha256 = "13bd63fa51a75bbf1b98beb221edceed3f33bacf2e3b25cd39ef4e6ac84371eb", - url = "https://github.com/SeleniumHQ/selenium_manager_artifacts/releases/download/selenium-manager-6a15586/selenium-manager-windows.exe", + sha256 = "2d2978aab283b1606363941471a5f825d98f6a26edc9130f47d3eb3441dad8b8", + url = "https://github.com/SeleniumHQ/selenium_manager_artifacts/releases/download/selenium-manager-b565162/selenium-manager-windows.exe", ) def _selenium_manager_artifacts_impl(_ctx): diff --git a/dotnet/CHANGELOG b/dotnet/CHANGELOG index d89d18181495a..688eccb730373 100644 --- a/dotnet/CHANGELOG +++ b/dotnet/CHANGELOG @@ -1,3 +1,14 @@ +v4.20.0 +====== + +* Add CDP for Chrome 124 and remove 121 +* Use correct devtools session id after reinitialization (#13768) +* Making Selenium Manager a thin wrapper (#13833) + * This change has been made to make it easier to maintain and improve, the interface has + changed and if users were invoking it, they might experience issues. Selenium Manager is + still in beta and these type of changes are expected. +* Nightly dotnet builds are now pushed to GitHub packages + v4.19.0 ====== diff --git a/dotnet/selenium-dotnet-version.bzl b/dotnet/selenium-dotnet-version.bzl index 46addbf2a081c..1a8c8f31a1449 100644 --- a/dotnet/selenium-dotnet-version.bzl +++ b/dotnet/selenium-dotnet-version.bzl @@ -1,6 +1,6 @@ # BUILD FILE SYNTAX: STARLARK -SE_VERSION = "4.20.0-nightly202404171829" +SE_VERSION = "4.20.0" ASSEMBLY_VERSION = "4.0.0.0" SUPPORTED_NET_STANDARD_VERSIONS = ["netstandard2.0"] @@ -8,7 +8,7 @@ SUPPORTED_DEVTOOLS_VERSIONS = [ "v85", "v122", "v123", - "v121", + "v124", ] ASSEMBLY_COMPANY = "Selenium Committers" diff --git a/dotnet/src/webdriver/DevTools/DevToolsDomains.cs b/dotnet/src/webdriver/DevTools/DevToolsDomains.cs index 970dbe58fc978..ffcc1b08e5af0 100644 --- a/dotnet/src/webdriver/DevTools/DevToolsDomains.cs +++ b/dotnet/src/webdriver/DevTools/DevToolsDomains.cs @@ -35,7 +35,7 @@ public abstract class DevToolsDomains // added to this dictionary. private static readonly Dictionary SupportedDevToolsVersions = new Dictionary() { - { 121, typeof(V121.V121Domains) }, + { 124, typeof(V124.V124Domains) }, { 123, typeof(V123.V123Domains) }, { 122, typeof(V122.V122Domains) }, { 85, typeof(V85.V85Domains) } diff --git a/dotnet/src/webdriver/DevTools/v121/V121Domains.cs b/dotnet/src/webdriver/DevTools/v124/V124Domains.cs similarity index 78% rename from dotnet/src/webdriver/DevTools/v121/V121Domains.cs rename to dotnet/src/webdriver/DevTools/v124/V124Domains.cs index ca5711bf84671..ab254293bed77 100644 --- a/dotnet/src/webdriver/DevTools/v121/V121Domains.cs +++ b/dotnet/src/webdriver/DevTools/v124/V124Domains.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 @@ -15,20 +15,20 @@ // See the License for the specific language governing permissions and // limitations under the License. -namespace OpenQA.Selenium.DevTools.V121 +namespace OpenQA.Selenium.DevTools.V124 { /// - /// Class containing the domain implementation for version 121 of the DevTools Protocol. + /// Class containing the domain implementation for version 124 of the DevTools Protocol. /// - public class V121Domains : DevToolsDomains + public class V124Domains : DevToolsDomains { private DevToolsSessionDomains domains; /// - /// Initializes a new instance of the V121Domains class. + /// Initializes a new instance of the V124Domains class. /// /// The DevToolsSession to use with this set of domains. - public V121Domains(DevToolsSession session) + public V124Domains(DevToolsSession session) { this.domains = new DevToolsSessionDomains(session); } @@ -36,7 +36,7 @@ public V121Domains(DevToolsSession session) /// /// Gets the DevTools Protocol version for which this class is valid. /// - public static int DevToolsVersion => 121; + public static int DevToolsVersion => 124; /// /// Gets the version-specific domains for the DevTools session. This value must be cast to a version specific type to be at all useful. @@ -46,21 +46,21 @@ public V121Domains(DevToolsSession session) /// /// Gets the object used for manipulating network information in the browser. /// - public override DevTools.Network Network => new V121Network(domains.Network, domains.Fetch); + public override DevTools.Network Network => new V124Network(domains.Network, domains.Fetch); /// /// Gets the object used for manipulating the browser's JavaScript execution. /// - public override JavaScript JavaScript => new V121JavaScript(domains.Runtime, domains.Page); + public override JavaScript JavaScript => new V124JavaScript(domains.Runtime, domains.Page); /// /// Gets the object used for manipulating DevTools Protocol targets. /// - public override DevTools.Target Target => new V121Target(domains.Target); + public override DevTools.Target Target => new V124Target(domains.Target); /// /// Gets the object used for manipulating the browser's logs. /// - public override DevTools.Log Log => new V121Log(domains.Log); + public override DevTools.Log Log => new V124Log(domains.Log); } } diff --git a/dotnet/src/webdriver/DevTools/v121/V121JavaScript.cs b/dotnet/src/webdriver/DevTools/v124/V124JavaScript.cs similarity index 94% rename from dotnet/src/webdriver/DevTools/v121/V121JavaScript.cs rename to dotnet/src/webdriver/DevTools/v124/V124JavaScript.cs index 7cd52a929ed99..6a1b9ef2c7ed8 100644 --- a/dotnet/src/webdriver/DevTools/v121/V121JavaScript.cs +++ b/dotnet/src/webdriver/DevTools/v124/V124JavaScript.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 @@ -15,28 +15,28 @@ // See the License for the specific language governing permissions and // limitations under the License. -using OpenQA.Selenium.DevTools.V121.Page; -using OpenQA.Selenium.DevTools.V121.Runtime; +using OpenQA.Selenium.DevTools.V124.Page; +using OpenQA.Selenium.DevTools.V124.Runtime; using System; using System.Collections.Generic; using System.Threading.Tasks; -namespace OpenQA.Selenium.DevTools.V121 +namespace OpenQA.Selenium.DevTools.V124 { /// - /// Class containing the JavaScript implementation for version 121 of the DevTools Protocol. + /// Class containing the JavaScript implementation for version 124 of the DevTools Protocol. /// - public class V121JavaScript : JavaScript + public class V124JavaScript : JavaScript { private RuntimeAdapter runtime; private PageAdapter page; /// - /// Initializes a new instance of the class. + /// Initializes a new instance of the class. /// /// The DevTools Protocol adapter for the Runtime domain. /// The DevTools Protocol adapter for the Page domain. - public V121JavaScript(RuntimeAdapter runtime, PageAdapter page) + public V124JavaScript(RuntimeAdapter runtime, PageAdapter page) { this.runtime = runtime; this.page = page; diff --git a/dotnet/src/webdriver/DevTools/v121/V121Log.cs b/dotnet/src/webdriver/DevTools/v124/V124Log.cs similarity index 88% rename from dotnet/src/webdriver/DevTools/v121/V121Log.cs rename to dotnet/src/webdriver/DevTools/v124/V124Log.cs index f1a78670e5786..4754651339c71 100644 --- a/dotnet/src/webdriver/DevTools/v121/V121Log.cs +++ b/dotnet/src/webdriver/DevTools/v124/V124Log.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 @@ -15,23 +15,23 @@ // See the License for the specific language governing permissions and // limitations under the License. -using OpenQA.Selenium.DevTools.V121.Log; +using OpenQA.Selenium.DevTools.V124.Log; using System.Threading.Tasks; -namespace OpenQA.Selenium.DevTools.V121 +namespace OpenQA.Selenium.DevTools.V124 { /// - /// Class containing the browser's log as referenced by version 121 of the DevTools Protocol. + /// Class containing the browser's log as referenced by version 124 of the DevTools Protocol. /// - public class V121Log : DevTools.Log + public class V124Log : DevTools.Log { private LogAdapter adapter; /// - /// Initializes a new instance of the class. + /// Initializes a new instance of the class. /// /// The adapter for the Log domain. - public V121Log(LogAdapter adapter) + public V124Log(LogAdapter adapter) { this.adapter = adapter; this.adapter.EntryAdded += OnAdapterEntryAdded; diff --git a/dotnet/src/webdriver/DevTools/v121/V121Network.cs b/dotnet/src/webdriver/DevTools/v124/V124Network.cs similarity index 95% rename from dotnet/src/webdriver/DevTools/v121/V121Network.cs rename to dotnet/src/webdriver/DevTools/v124/V124Network.cs index 5eb5d6ff71f3f..79444866ee170 100644 --- a/dotnet/src/webdriver/DevTools/v121/V121Network.cs +++ b/dotnet/src/webdriver/DevTools/v124/V124Network.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 @@ -16,29 +16,29 @@ // limitations under the License. // -using OpenQA.Selenium.DevTools.V121.Fetch; -using OpenQA.Selenium.DevTools.V121.Network; +using OpenQA.Selenium.DevTools.V124.Fetch; +using OpenQA.Selenium.DevTools.V124.Network; using System; using System.Collections.Generic; using System.Text; using System.Threading.Tasks; -namespace OpenQA.Selenium.DevTools.V121 +namespace OpenQA.Selenium.DevTools.V124 { /// - /// Class providing functionality for manipulating network calls using version 121 of the DevTools Protocol + /// Class providing functionality for manipulating network calls using version 124 of the DevTools Protocol /// - public class V121Network : DevTools.Network + public class V124Network : DevTools.Network { private FetchAdapter fetch; private NetworkAdapter network; /// - /// Initializes a new instance of the class. + /// Initializes a new instance of the class. /// /// The adapter for the Network domain. /// The adapter for the Fetch domain. - public V121Network(NetworkAdapter network, FetchAdapter fetch) + public V124Network(NetworkAdapter network, FetchAdapter fetch) { this.network = network; this.fetch = fetch; @@ -216,9 +216,9 @@ public override async Task ContinueWithAuth(string requestId, string userName, s await fetch.ContinueWithAuth(new ContinueWithAuthCommandSettings() { RequestId = requestId, - AuthChallengeResponse = new V121.Fetch.AuthChallengeResponse() + AuthChallengeResponse = new V124.Fetch.AuthChallengeResponse() { - Response = V121.Fetch.AuthChallengeResponseResponseValues.ProvideCredentials, + Response = V124.Fetch.AuthChallengeResponseResponseValues.ProvideCredentials, Username = userName, Password = password } @@ -235,9 +235,9 @@ public override async Task CancelAuth(string requestId) await fetch.ContinueWithAuth(new ContinueWithAuthCommandSettings() { RequestId = requestId, - AuthChallengeResponse = new OpenQA.Selenium.DevTools.V121.Fetch.AuthChallengeResponse() + AuthChallengeResponse = new OpenQA.Selenium.DevTools.V124.Fetch.AuthChallengeResponse() { - Response = V121.Fetch.AuthChallengeResponseResponseValues.CancelAuth + Response = V124.Fetch.AuthChallengeResponseResponseValues.CancelAuth } }).ConfigureAwait(false); } diff --git a/dotnet/src/webdriver/DevTools/v121/V121Target.cs b/dotnet/src/webdriver/DevTools/v124/V124Target.cs similarity index 94% rename from dotnet/src/webdriver/DevTools/v121/V121Target.cs rename to dotnet/src/webdriver/DevTools/v124/V124Target.cs index 2eb7d403e6f9a..de6438549a5c2 100644 --- a/dotnet/src/webdriver/DevTools/v121/V121Target.cs +++ b/dotnet/src/webdriver/DevTools/v124/V124Target.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 @@ -16,26 +16,26 @@ // limitations under the License. // -using OpenQA.Selenium.DevTools.V121.Target; +using OpenQA.Selenium.DevTools.V124.Target; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Threading.Tasks; -namespace OpenQA.Selenium.DevTools.V121 +namespace OpenQA.Selenium.DevTools.V124 { /// - /// Class providing functionality for manipulating targets for version 121 of the DevTools Protocol + /// Class providing functionality for manipulating targets for version 124 of the DevTools Protocol /// - public class V121Target : DevTools.Target + public class V124Target : DevTools.Target { private TargetAdapter adapter; /// - /// Initializes a new instance of the class. + /// Initializes a new instance of the class. /// /// The adapter for the Target domain. - public V121Target(TargetAdapter adapter) + public V124Target(TargetAdapter adapter) { this.adapter = adapter; adapter.DetachedFromTarget += OnDetachedFromTarget; diff --git a/dotnet/src/webdriver/WebDriver.csproj b/dotnet/src/webdriver/WebDriver.csproj index da4168d17a8cc..a306444bda510 100644 --- a/dotnet/src/webdriver/WebDriver.csproj +++ b/dotnet/src/webdriver/WebDriver.csproj @@ -106,7 +106,7 @@ - + diff --git a/dotnet/test/common/CustomDriverConfigs/StableChannelChromeDriver.cs b/dotnet/test/common/CustomDriverConfigs/StableChannelChromeDriver.cs index 70cd32bb7d9b5..53a38c92f578d 100644 --- a/dotnet/test/common/CustomDriverConfigs/StableChannelChromeDriver.cs +++ b/dotnet/test/common/CustomDriverConfigs/StableChannelChromeDriver.cs @@ -20,7 +20,7 @@ public StableChannelChromeDriver(ChromeDriverService service, ChromeOptions opti public static ChromeOptions DefaultOptions { - get { return new ChromeOptions() { BrowserVersion = "123" }; } + get { return new ChromeOptions() { BrowserVersion = "124" }; } } } } diff --git a/dotnet/test/common/DevTools/DevToolsConsoleTest.cs b/dotnet/test/common/DevTools/DevToolsConsoleTest.cs index 5cead3f577df2..e7b07d47ca3cd 100644 --- a/dotnet/test/common/DevTools/DevToolsConsoleTest.cs +++ b/dotnet/test/common/DevTools/DevToolsConsoleTest.cs @@ -6,7 +6,7 @@ namespace OpenQA.Selenium.DevTools { - using CurrentCdpVersion = V123; + using CurrentCdpVersion = V124; [TestFixture] public class DevToolsConsoleTest : DevToolsTestFixture diff --git a/dotnet/test/common/DevTools/DevToolsLogTest.cs b/dotnet/test/common/DevTools/DevToolsLogTest.cs index 3aedea1ff8704..3fb7d5bcf6776 100644 --- a/dotnet/test/common/DevTools/DevToolsLogTest.cs +++ b/dotnet/test/common/DevTools/DevToolsLogTest.cs @@ -6,7 +6,7 @@ namespace OpenQA.Selenium.DevTools { - using CurrentCdpVersion = V123; + using CurrentCdpVersion = V124; [TestFixture] public class DevToolsLogTest : DevToolsTestFixture diff --git a/dotnet/test/common/DevTools/DevToolsNetworkTest.cs b/dotnet/test/common/DevTools/DevToolsNetworkTest.cs index 35342b3f0bcb3..f41c19fa828c0 100644 --- a/dotnet/test/common/DevTools/DevToolsNetworkTest.cs +++ b/dotnet/test/common/DevTools/DevToolsNetworkTest.cs @@ -6,7 +6,7 @@ namespace OpenQA.Selenium.DevTools { - using CurrentCdpVersion = V123; + using CurrentCdpVersion = V124; [TestFixture] public class DevToolsNetworkTest : DevToolsTestFixture diff --git a/dotnet/test/common/DevTools/DevToolsPerformanceTest.cs b/dotnet/test/common/DevTools/DevToolsPerformanceTest.cs index daa6bb2dcb047..af4958a498c9e 100644 --- a/dotnet/test/common/DevTools/DevToolsPerformanceTest.cs +++ b/dotnet/test/common/DevTools/DevToolsPerformanceTest.cs @@ -3,7 +3,7 @@ namespace OpenQA.Selenium.DevTools { - using CurrentCdpVersion = V123; + using CurrentCdpVersion = V124; [TestFixture] public class DevToolsPerformanceTest : DevToolsTestFixture diff --git a/dotnet/test/common/DevTools/DevToolsProfilerTest.cs b/dotnet/test/common/DevTools/DevToolsProfilerTest.cs index d5b0c2244fc6f..8913d741e6234 100644 --- a/dotnet/test/common/DevTools/DevToolsProfilerTest.cs +++ b/dotnet/test/common/DevTools/DevToolsProfilerTest.cs @@ -5,7 +5,7 @@ namespace OpenQA.Selenium.DevTools { - using CurrentCdpVersion = V123; + using CurrentCdpVersion = V124; [TestFixture] public class DevToolsProfilerTest : DevToolsTestFixture diff --git a/dotnet/test/common/DevTools/DevToolsSecurityTest.cs b/dotnet/test/common/DevTools/DevToolsSecurityTest.cs index a677e2fe0ea90..d97c87ceb58a5 100644 --- a/dotnet/test/common/DevTools/DevToolsSecurityTest.cs +++ b/dotnet/test/common/DevTools/DevToolsSecurityTest.cs @@ -6,7 +6,7 @@ namespace OpenQA.Selenium.DevTools { - using CurrentCdpVersion = V123; + using CurrentCdpVersion = V124; [TestFixture] public class DevToolsSecurityTest : DevToolsTestFixture diff --git a/dotnet/test/common/DevTools/DevToolsTabsTest.cs b/dotnet/test/common/DevTools/DevToolsTabsTest.cs index 84f3b0673c355..9a434ec76d706 100644 --- a/dotnet/test/common/DevTools/DevToolsTabsTest.cs +++ b/dotnet/test/common/DevTools/DevToolsTabsTest.cs @@ -3,7 +3,7 @@ namespace OpenQA.Selenium.DevTools { - using CurrentCdpVersion = V123; + using CurrentCdpVersion = V124; [TestFixture] public class DevToolsTabsTest : DevToolsTestFixture diff --git a/dotnet/test/common/DevTools/DevToolsTargetTest.cs b/dotnet/test/common/DevTools/DevToolsTargetTest.cs index 2ad05969b99d8..5eda7874ce5e8 100644 --- a/dotnet/test/common/DevTools/DevToolsTargetTest.cs +++ b/dotnet/test/common/DevTools/DevToolsTargetTest.cs @@ -6,12 +6,12 @@ namespace OpenQA.Selenium.DevTools { - using CurrentCdpVersion = V123; + using CurrentCdpVersion = V124; [TestFixture] public class DevToolsTargetTest : DevToolsTestFixture { - private int id = 123; + private int id = 124; [Test] [IgnoreBrowser(Selenium.Browser.IE, "IE does not support Chrome DevTools Protocol")] diff --git a/java/CHANGELOG b/java/CHANGELOG index b71d5521cb016..71a9dd18c09b8 100644 --- a/java/CHANGELOG +++ b/java/CHANGELOG @@ -1,3 +1,20 @@ +v4.20.0 +====== + +* Add CDP for Chrome 124 and remove 121 +* [bidi] Deprecate using builder for Locate Node parameters. (#13767) +* [grid] handle baseRoute like the hubRoute and the graphqlRoute (#13772) +* [grid] Fixing Dynamic Grid Docker (#13789) +* [grid] Browser containers provisioned in dynamic grid uses node-docker hostConfig +* Making Selenium Manager a thin wrapper (#13385) + * This change has been made to make it easier to maintain and improve, the interface has + changed and if users were invoking it, they might experience issues. Selenium Manager is + still in beta and these type of changes are expected. +* [grid] Dynamic Grid re-fetch browser images if they were pruned during runtime (#13821) +* [grid] Relay service can set protocol version in fetching status (#13849) +* [cdp] Continue requests without modification for know errors in NetworkInterceptor (#13836) +* [bidi] Update browsing context create method (#13766) + v4.19.1 ====== * [bidi] Fix the bazel file after the BiDi breaking change diff --git a/java/src/org/openqa/selenium/devtools/v121/BUILD.bazel b/java/src/org/openqa/selenium/devtools/v124/BUILD.bazel similarity index 98% rename from java/src/org/openqa/selenium/devtools/v121/BUILD.bazel rename to java/src/org/openqa/selenium/devtools/v124/BUILD.bazel index 8e93a15944fb4..f5c73ec761a77 100644 --- a/java/src/org/openqa/selenium/devtools/v121/BUILD.bazel +++ b/java/src/org/openqa/selenium/devtools/v124/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 = "v121" +cdp_version = "v124" java_export( name = cdp_version, diff --git a/java/src/org/openqa/selenium/devtools/v121/v121CdpInfo.java b/java/src/org/openqa/selenium/devtools/v124/v124CdpInfo.java similarity index 86% rename from java/src/org/openqa/selenium/devtools/v121/v121CdpInfo.java rename to java/src/org/openqa/selenium/devtools/v124/v124CdpInfo.java index f33326d67c591..9c8283c2f0e17 100644 --- a/java/src/org/openqa/selenium/devtools/v121/v121CdpInfo.java +++ b/java/src/org/openqa/selenium/devtools/v124/v124CdpInfo.java @@ -15,15 +15,15 @@ // specific language governing permissions and limitations // under the License. -package org.openqa.selenium.devtools.v121; +package org.openqa.selenium.devtools.v124; import com.google.auto.service.AutoService; import org.openqa.selenium.devtools.CdpInfo; @AutoService(CdpInfo.class) -public class v121CdpInfo extends CdpInfo { +public class v124CdpInfo extends CdpInfo { - public v121CdpInfo() { - super(121, v121Domains::new); + public v124CdpInfo() { + super(124, v124Domains::new); } } diff --git a/java/src/org/openqa/selenium/devtools/v121/v121Domains.java b/java/src/org/openqa/selenium/devtools/v124/v124Domains.java similarity index 77% rename from java/src/org/openqa/selenium/devtools/v121/v121Domains.java rename to java/src/org/openqa/selenium/devtools/v124/v124Domains.java index 7975902fb5fcc..19a7d0cfe6cc7 100644 --- a/java/src/org/openqa/selenium/devtools/v121/v121Domains.java +++ b/java/src/org/openqa/selenium/devtools/v124/v124Domains.java @@ -15,7 +15,7 @@ // specific language governing permissions and limitations // under the License. -package org.openqa.selenium.devtools.v121; +package org.openqa.selenium.devtools.v124; 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 v121Domains implements Domains { +public class v124Domains implements Domains { - private final v121Javascript js; - private final v121Events events; - private final v121Log log; - private final v121Network network; - private final v121Target target; + private final v124Javascript js; + private final v124Events events; + private final v124Log log; + private final v124Network network; + private final v124Target target; - public v121Domains(DevTools devtools) { + public v124Domains(DevTools devtools) { Require.nonNull("DevTools", devtools); - events = new v121Events(devtools); - js = new v121Javascript(devtools); - log = new v121Log(); - network = new v121Network(devtools); - target = new v121Target(); + events = new v124Events(devtools); + js = new v124Javascript(devtools); + log = new v124Log(); + network = new v124Network(devtools); + target = new v124Target(); } @Override diff --git a/java/src/org/openqa/selenium/devtools/v121/v121Events.java b/java/src/org/openqa/selenium/devtools/v124/v124Events.java similarity index 86% rename from java/src/org/openqa/selenium/devtools/v121/v121Events.java rename to java/src/org/openqa/selenium/devtools/v124/v124Events.java index 0148e8f42a52c..ddaa2e3d59c2b 100644 --- a/java/src/org/openqa/selenium/devtools/v121/v121Events.java +++ b/java/src/org/openqa/selenium/devtools/v124/v124Events.java @@ -15,7 +15,7 @@ // specific language governing permissions and limitations // under the License. -package org.openqa.selenium.devtools.v121; +package org.openqa.selenium.devtools.v124; 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.v121.runtime.Runtime; -import org.openqa.selenium.devtools.v121.runtime.model.ConsoleAPICalled; -import org.openqa.selenium.devtools.v121.runtime.model.ExceptionDetails; -import org.openqa.selenium.devtools.v121.runtime.model.ExceptionThrown; -import org.openqa.selenium.devtools.v121.runtime.model.StackTrace; +import org.openqa.selenium.devtools.v124.runtime.Runtime; +import org.openqa.selenium.devtools.v124.runtime.model.ConsoleAPICalled; +import org.openqa.selenium.devtools.v124.runtime.model.ExceptionDetails; +import org.openqa.selenium.devtools.v124.runtime.model.ExceptionThrown; +import org.openqa.selenium.devtools.v124.runtime.model.StackTrace; -public class v121Events extends Events { +public class v124Events extends Events { - public v121Events(DevTools devtools) { + public v124Events(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/v121/v121Javascript.java b/java/src/org/openqa/selenium/devtools/v124/v124Javascript.java similarity index 85% rename from java/src/org/openqa/selenium/devtools/v121/v121Javascript.java rename to java/src/org/openqa/selenium/devtools/v124/v124Javascript.java index f6fe984321300..2b9cd973ee743 100644 --- a/java/src/org/openqa/selenium/devtools/v121/v121Javascript.java +++ b/java/src/org/openqa/selenium/devtools/v124/v124Javascript.java @@ -15,21 +15,21 @@ // specific language governing permissions and limitations // under the License. -package org.openqa.selenium.devtools.v121; +package org.openqa.selenium.devtools.v124; 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.v121.page.Page; -import org.openqa.selenium.devtools.v121.page.model.ScriptIdentifier; -import org.openqa.selenium.devtools.v121.runtime.Runtime; -import org.openqa.selenium.devtools.v121.runtime.model.BindingCalled; +import org.openqa.selenium.devtools.v124.page.Page; +import org.openqa.selenium.devtools.v124.page.model.ScriptIdentifier; +import org.openqa.selenium.devtools.v124.runtime.Runtime; +import org.openqa.selenium.devtools.v124.runtime.model.BindingCalled; -public class v121Javascript extends Javascript { +public class v124Javascript extends Javascript { - public v121Javascript(DevTools devtools) { + public v124Javascript(DevTools devtools) { super(devtools); } diff --git a/java/src/org/openqa/selenium/devtools/v121/v121Log.java b/java/src/org/openqa/selenium/devtools/v124/v124Log.java similarity index 89% rename from java/src/org/openqa/selenium/devtools/v121/v121Log.java rename to java/src/org/openqa/selenium/devtools/v124/v124Log.java index 84528c1710637..1912263b4e7a2 100644 --- a/java/src/org/openqa/selenium/devtools/v121/v121Log.java +++ b/java/src/org/openqa/selenium/devtools/v124/v124Log.java @@ -15,19 +15,19 @@ // specific language governing permissions and limitations // under the License. -package org.openqa.selenium.devtools.v121; +package org.openqa.selenium.devtools.v124; 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.v121.log.Log; -import org.openqa.selenium.devtools.v121.log.model.LogEntry; -import org.openqa.selenium.devtools.v121.runtime.model.Timestamp; +import org.openqa.selenium.devtools.v124.log.Log; +import org.openqa.selenium.devtools.v124.log.model.LogEntry; +import org.openqa.selenium.devtools.v124.runtime.model.Timestamp; import org.openqa.selenium.json.JsonInput; -public class v121Log implements org.openqa.selenium.devtools.idealized.log.Log { +public class v124Log implements org.openqa.selenium.devtools.idealized.log.Log { @Override public Command enable() { diff --git a/java/src/org/openqa/selenium/devtools/v121/v121Network.java b/java/src/org/openqa/selenium/devtools/v124/v124Network.java similarity index 92% rename from java/src/org/openqa/selenium/devtools/v121/v121Network.java rename to java/src/org/openqa/selenium/devtools/v124/v124Network.java index d098d42930611..747f0b4494c64 100644 --- a/java/src/org/openqa/selenium/devtools/v121/v121Network.java +++ b/java/src/org/openqa/selenium/devtools/v124/v124Network.java @@ -15,7 +15,7 @@ // specific language governing permissions and limitations // under the License. -package org.openqa.selenium.devtools.v121; +package org.openqa.selenium.devtools.v124; 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.v121.fetch.Fetch; -import org.openqa.selenium.devtools.v121.fetch.model.*; -import org.openqa.selenium.devtools.v121.network.model.Request; +import org.openqa.selenium.devtools.v124.fetch.Fetch; +import org.openqa.selenium.devtools.v124.fetch.model.*; +import org.openqa.selenium.devtools.v124.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 v121Network extends Network { +public class v124Network extends Network { - private static final Logger LOG = Logger.getLogger(v121Network.class.getName()); + private static final Logger LOG = Logger.getLogger(v124Network.class.getName()); - public v121Network(DevTools devTools) { + public v124Network(DevTools devTools) { super(devTools); } @Override protected Command setUserAgentOverride(UserAgent userAgent) { - return org.openqa.selenium.devtools.v121.network.Network.setUserAgentOverride( + return org.openqa.selenium.devtools.v124.network.Network.setUserAgentOverride( userAgent.userAgent(), userAgent.acceptLanguage(), userAgent.platform(), Optional.empty()); } @Override protected Command enableNetworkCaching() { - return org.openqa.selenium.devtools.v121.network.Network.setCacheDisabled(false); + return org.openqa.selenium.devtools.v124.network.Network.setCacheDisabled(false); } @Override protected Command disableNetworkCaching() { - return org.openqa.selenium.devtools.v121.network.Network.setCacheDisabled(true); + return org.openqa.selenium.devtools.v124.network.Network.setCacheDisabled(true); } @Override diff --git a/java/src/org/openqa/selenium/devtools/v121/v121Target.java b/java/src/org/openqa/selenium/devtools/v124/v124Target.java similarity index 83% rename from java/src/org/openqa/selenium/devtools/v121/v121Target.java rename to java/src/org/openqa/selenium/devtools/v124/v124Target.java index 33528c10a21a5..20c695a392150 100644 --- a/java/src/org/openqa/selenium/devtools/v121/v121Target.java +++ b/java/src/org/openqa/selenium/devtools/v124/v124Target.java @@ -15,7 +15,7 @@ // specific language governing permissions and limitations // under the License. -package org.openqa.selenium.devtools.v121; +package org.openqa.selenium.devtools.v124; 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.v121.target.Target; -import org.openqa.selenium.devtools.v121.target.model.TargetInfo; +import org.openqa.selenium.devtools.v124.target.Target; +import org.openqa.selenium.devtools.v124.target.model.TargetInfo; import org.openqa.selenium.json.JsonInput; import org.openqa.selenium.json.TypeToken; -public class v121Target implements org.openqa.selenium.devtools.idealized.target.Target { +public class v124Target 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.v121.target.model.SessionID(id.toString())), + id -> new org.openqa.selenium.devtools.v124.target.model.SessionID(id.toString())), targetId.map( - id -> new org.openqa.selenium.devtools.v121.target.model.TargetID(id.toString()))); + id -> new org.openqa.selenium.devtools.v124.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.v121.target.model.SessionID.class); + "sessionId", org.openqa.selenium.devtools.v124.target.model.SessionID.class); return new Command<>( "Target.attachToTarget", Map.of( "targetId", - new org.openqa.selenium.devtools.v121.target.model.TargetID(targetId.toString()), + new org.openqa.selenium.devtools.v124.target.model.TargetID(targetId.toString()), "flatten", true), input -> { - org.openqa.selenium.devtools.v121.target.model.SessionID id = mapper.apply(input); + org.openqa.selenium.devtools.v124.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.v121.target.model.TargetID.class); + "targetId", org.openqa.selenium.devtools.v124.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 ae5db7ab81c12..6289bf0315ad1 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 "v122", "v123", - "v121", + "v124", ] 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 9ded87646f9cf..fc80de333747f 100644 --- a/java/version.bzl +++ b/java/version.bzl @@ -1,2 +1,2 @@ -SE_VERSION = "4.20.0-SNAPSHOT" +SE_VERSION = "4.20.0" TOOLS_JAVA_VERSION = "17" diff --git a/javascript/node/selenium-webdriver/BUILD.bazel b/javascript/node/selenium-webdriver/BUILD.bazel index 49580801e8d58..adba4622bd81b 100644 --- a/javascript/node/selenium-webdriver/BUILD.bazel +++ b/javascript/node/selenium-webdriver/BUILD.bazel @@ -9,13 +9,13 @@ load("//javascript:defs.bzl", "mocha_test") npm_link_all_packages(name = "node_modules") -VERSION = "4.20.0-nightly202404191827" +VERSION = "4.20.0" BROWSER_VERSIONS = [ "v85", "v122", "v123", - "v121", + "v124", ] SRC_FILES = [ diff --git a/javascript/node/selenium-webdriver/CHANGES.md b/javascript/node/selenium-webdriver/CHANGES.md index ace0ca17aefba..dea4b231d4275 100644 --- a/javascript/node/selenium-webdriver/CHANGES.md +++ b/javascript/node/selenium-webdriver/CHANGES.md @@ -1,3 +1,18 @@ +## 4.20.0 + +- Add CDP for Chrome 124 and remove 121 +- [bidi] Update capture screenshot APIs to include all parameters and remove scroll parameter ( + #13744) +- [bidi] Implement functionality to retrieve all top-level browsing contexts +- Set browserName by default when browserOptions are used +- Implement fullPageScreenshot functionality for Firefox (#13301) +- Nightly JS builds are now pushed to GitHub packages +- Making Selenium Manager a thin wrapper (#13853) + - This change has been made to make it easier to maintain and improve, the interface has + changed and if users were invoking it, they might experience issues. Selenium Manager is + still in beta and these type of changes are expected. +- [bidi] Update browsing context create method (#13766) + ## 4.19.0 - Add CDP for Chrome 123 and remove 120 diff --git a/javascript/node/selenium-webdriver/package.json b/javascript/node/selenium-webdriver/package.json index 356c95ec78393..13d92746a0bd8 100644 --- a/javascript/node/selenium-webdriver/package.json +++ b/javascript/node/selenium-webdriver/package.json @@ -1,6 +1,6 @@ { "name": "selenium-webdriver", - "version": "4.20.0-nightly202404191827", + "version": "4.20.0", "description": "The official WebDriver JavaScript bindings from the Selenium project", "license": "Apache-2.0", "keywords": [ diff --git a/package-lock.json b/package-lock.json index 43a207ec56ee7..0ccfb74c4126d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1874,7 +1874,7 @@ "license": "ISC" }, "javascript/node/selenium-webdriver": { - "version": "4.20.0-nightly202404191827", + "version": "4.20.0", "license": "Apache-2.0", "dependencies": { "jszip": "^3.10.1", diff --git a/py/BUILD.bazel b/py/BUILD.bazel index 256a08af86e89..7028a5680fe32 100644 --- a/py/BUILD.bazel +++ b/py/BUILD.bazel @@ -40,13 +40,13 @@ compile_pip_requirements( ], ) -SE_VERSION = "4.20.0.dev202403271845" +SE_VERSION = "4.20.0" BROWSER_VERSIONS = [ "v85", "v122", "v123", - "v121", + "v124", ] TEST_DEPS = [ diff --git a/py/CHANGES b/py/CHANGES index 02111233266b1..90e63496b8d08 100644 --- a/py/CHANGES +++ b/py/CHANGES @@ -1,3 +1,14 @@ +Selenium 4.20.0 + +* Add CDP for Chrome 124 and remove 121 +* Add type hints for selenium.webdriver.remote.webdriver.WebDriver.__init__ (#13775) +* Add types to set_window_position parameters (#13786) +* Making Selenium Manager a thin wrapper (#13387) + * This change has been made to make it easier to maintain and improve, the interface has + changed and if users were invoking it, they might experience issues. Selenium Manager is + still in beta and these type of changes are expected. + + Selenium 4.19.0 * Add CDP for Chrome 123 and remove 120 diff --git a/py/docs/source/conf.py b/py/docs/source/conf.py index 4b20185d79b83..a7ebffa2ad1d4 100644 --- a/py/docs/source/conf.py +++ b/py/docs/source/conf.py @@ -58,7 +58,7 @@ # The short X.Y version. version = '4.20' # The full version, including alpha/beta/rc tags. -release = '4.20.0.dev202403271845' +release = '4.20.0' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/py/selenium/__init__.py b/py/selenium/__init__.py index 0b45db89b2ee4..182e4d7910096 100644 --- a/py/selenium/__init__.py +++ b/py/selenium/__init__.py @@ -16,4 +16,4 @@ # under the License. -__version__ = "4.20.0.dev202403271845" +__version__ = "4.20.0" diff --git a/py/selenium/webdriver/__init__.py b/py/selenium/webdriver/__init__.py index 43bdc023d404a..3873e6c56d464 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.20.0.dev202403271845" +__version__ = "4.20.0" # We need an explicit __all__ because the above won't otherwise be exported. __all__ = [ diff --git a/py/setup.py b/py/setup.py index b44d0799af435..0e8c107caa3be 100755 --- a/py/setup.py +++ b/py/setup.py @@ -27,7 +27,7 @@ setup_args = { 'cmdclass': {'install': install}, 'name': 'selenium', - 'version': "4.20.0.dev202403271845", + 'version': "4.20.0", 'license': 'Apache 2.0', 'description': 'Python bindings for Selenium', 'long_description': open(join(abspath(dirname(__file__)), "README.rst")).read(), diff --git a/rb/.rubocop.yml b/rb/.rubocop.yml index c6556195c599b..af4e0c545bb6e 100644 --- a/rb/.rubocop.yml +++ b/rb/.rubocop.yml @@ -136,3 +136,9 @@ Style/NumericLiterals: Style/OptionalBooleanParameter: Enabled: false + +Lint/Debugger: + Enabled: true + DebuggerMethods: + Capybara: + - save_screenshot: ~ diff --git a/rb/CHANGES b/rb/CHANGES index 5935bb10ec13d..cb57a9ae803c0 100644 --- a/rb/CHANGES +++ b/rb/CHANGES @@ -1,3 +1,12 @@ +4.20.0 (2024-04-24) +========================= + +* Add CDP for Chrome 124 and remove 121 +* Making Selenium Manager a thin wrapper (#13386) + * This change has been made to make it easier to maintain and improve, the interface has + changed and if users were invoking it, they might experience issues. Selenium Manager is + still in beta and these type of changes are expected. + 4.19.0 (2024-03-27) ========================= diff --git a/rb/Gemfile.lock b/rb/Gemfile.lock index c8ee0bebc87f8..ed3179614d261 100644 --- a/rb/Gemfile.lock +++ b/rb/Gemfile.lock @@ -1,9 +1,9 @@ PATH remote: . specs: - selenium-devtools (0.123.0) + selenium-devtools (0.124.0) selenium-webdriver (~> 4.2) - selenium-webdriver (4.20.0.nightly) + selenium-webdriver (4.20.0) base64 (~> 0.2) rexml (~> 3.2, >= 3.2.5) rubyzip (>= 1.2.2, < 3.0) @@ -35,7 +35,7 @@ GEM bigdecimal rexml csv (3.3.0) - debug (1.9.1) + debug (1.9.2) irb (~> 1.10) reline (>= 0.3.8) diff-lcs (1.5.1) @@ -56,8 +56,8 @@ GEM rdoc reline (>= 0.4.2) jar-dependencies (0.4.1) - json (2.7.1) - json (2.7.1-java) + json (2.7.2) + json (2.7.2-java) language_server-protocol (3.17.0.3) listen (3.9.0) rb-fsevent (~> 0.10, >= 0.10.3) @@ -73,12 +73,12 @@ GEM stringio psych (5.1.2-java) jar-dependencies (>= 0.1.7) - public_suffix (5.0.4) + public_suffix (5.0.5) racc (1.7.3) racc (1.7.3-java) rack (2.2.9) rainbow (3.1.1) - rake (13.1.0) + rake (13.2.1) rb-fsevent (0.11.2) rb-inotify (0.10.1) ffi (~> 1.0) @@ -88,7 +88,7 @@ GEM rdoc (6.6.3.1) psych (>= 4.0.0) regexp_parser (2.9.0) - reline (0.5.0) + reline (0.5.3) io-console (~> 0.5) rexml (3.2.6) rspec (3.13.0) @@ -104,7 +104,7 @@ GEM diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.13.0) rspec-support (3.13.1) - rubocop (1.62.1) + rubocop (1.63.3) json (~> 2.3) language_server-protocol (>= 3.17.0) parallel (~> 1.10) @@ -121,13 +121,16 @@ GEM rubocop (~> 1.41) rubocop-factory_bot (2.25.1) rubocop (~> 1.41) - rubocop-performance (1.20.2) + rubocop-performance (1.21.0) rubocop (>= 1.48.1, < 2.0) - rubocop-ast (>= 1.30.0, < 2.0) - rubocop-rspec (2.27.1) + rubocop-ast (>= 1.31.1, < 2.0) + rubocop-rspec (2.29.1) rubocop (~> 1.40) rubocop-capybara (~> 2.17) rubocop-factory_bot (~> 2.22) + rubocop-rspec_rails (~> 2.28) + rubocop-rspec_rails (2.28.3) + rubocop (~> 1.40) ruby-progressbar (1.13.0) rubyzip (2.3.2) securerandom (0.3.1) diff --git a/rb/lib/selenium/devtools/BUILD.bazel b/rb/lib/selenium/devtools/BUILD.bazel index 46097526abe28..5037696293790 100644 --- a/rb/lib/selenium/devtools/BUILD.bazel +++ b/rb/lib/selenium/devtools/BUILD.bazel @@ -7,7 +7,7 @@ CDP_VERSIONS = [ "v85", "v122", "v123", - "v121", + "v124", ] rb_library( diff --git a/rb/lib/selenium/devtools/version.rb b/rb/lib/selenium/devtools/version.rb index 807413f6c2f96..cb61be0e8d570 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.123.0' + VERSION = '0.124.0' end # DevTools end # Selenium diff --git a/rb/lib/selenium/webdriver/devtools/network_interceptor.rb b/rb/lib/selenium/webdriver/devtools/network_interceptor.rb index ccdd8e4417790..95e3236a63fae 100644 --- a/rb/lib/selenium/webdriver/devtools/network_interceptor.rb +++ b/rb/lib/selenium/webdriver/devtools/network_interceptor.rb @@ -98,7 +98,7 @@ def intercept_request(id, params, &block) original = DevTools::Request.from(id, params) mutable = DevTools::Request.from(id, params) - block.call(mutable) do |&continue| # rubocop:disable Performance/RedundantBlockCall + block.call(mutable) do |&continue| pending_response_requests[id] = continue if original == mutable diff --git a/rb/lib/selenium/webdriver/version.rb b/rb/lib/selenium/webdriver/version.rb index e170e4d2b7931..3e3112c811e21 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.20.0.nightly' + VERSION = '4.20.0' end # WebDriver end # Selenium diff --git a/rust/BUILD.bazel b/rust/BUILD.bazel index 5010622427e47..b7ea342027667 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.20-nightly", + version = "0.4.20", visibility = ["//visibility:public"], deps = [ ":selenium_manager", diff --git a/rust/CHANGELOG.md b/rust/CHANGELOG.md index 2925f824c6953..a8927558bc665 100644 --- a/rust/CHANGELOG.md +++ b/rust/CHANGELOG.md @@ -1,3 +1,9 @@ +0.4.20 +====== + +* Minor typo-fix in warning trace +* Use DEBUG level for WARN traces in offline mode (#13810) + 0.4.19 ====== diff --git a/rust/Cargo.Bazel.lock b/rust/Cargo.Bazel.lock index d3fb99d363512..2a0a73a7fac16 100644 --- a/rust/Cargo.Bazel.lock +++ b/rust/Cargo.Bazel.lock @@ -1,5 +1,5 @@ { - "checksum": "cbb53826e51187e0729ed2ee0dd16be9d1933297098342b71603e0a2471782f3", + "checksum": "236c787306939616fc3995c5b41c41d92e9451a611a78fcf617fa0a12cafbfa3", "crates": { "addr2line 0.19.0": { "name": "addr2line", @@ -12083,9 +12083,9 @@ ], "license_file": "LICENSE" }, - "selenium-manager 0.4.20-nightly": { + "selenium-manager 0.4.20": { "name": "selenium-manager", - "version": "0.4.20-nightly", + "version": "0.4.20", "package_url": "https://github.com/SeleniumHQ/selenium", "repository": null, "targets": [ @@ -12218,7 +12218,7 @@ "selects": {} }, "edition": "2021", - "version": "0.4.20-nightly" + "version": "0.4.20" }, "license": "Apache-2.0", "license_ids": [ @@ -19277,7 +19277,7 @@ }, "binary_crates": [], "workspace_members": { - "selenium-manager 0.4.20-nightly": "rust" + "selenium-manager 0.4.20": "rust" }, "conditions": { "aarch64-apple-darwin": [ diff --git a/rust/Cargo.lock b/rust/Cargo.lock index 54f253dc0b570..15779f8e66be1 100644 --- a/rust/Cargo.lock +++ b/rust/Cargo.lock @@ -1871,7 +1871,7 @@ dependencies = [ [[package]] name = "selenium-manager" -version = "0.4.20-nightly" +version = "0.4.20" dependencies = [ "anyhow", "apple-flat-package", diff --git a/rust/Cargo.toml b/rust/Cargo.toml index 83b4f50230d51..d1762e337e3fa 100644 --- a/rust/Cargo.toml +++ b/rust/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "selenium-manager" -version = "0.4.20-nightly" # don't forget to update rust/BUILD.bazel +version = "0.4.20" # don't forget to update rust/BUILD.bazel edition = "2021" authors = ["Selenium