From c6ead886a8c2b45bc4ec2a9da1295499bb690215 Mon Sep 17 00:00:00 2001 From: Selenium CI Bot Date: Fri, 4 Apr 2025 06:14:28 +0000 Subject: [PATCH 01/14] update pinned browser versions --- common/repositories.bzl | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/common/repositories.bzl b/common/repositories.bzl index 48e0699ff0374..7f728658ee0db 100644 --- a/common/repositories.bzl +++ b/common/repositories.bzl @@ -50,8 +50,8 @@ js_library( http_archive( name = "linux_beta_firefox", - url = "https://ftp.mozilla.org/pub/firefox/releases/138.0b1/linux-x86_64/en-US/firefox-138.0b1.tar.xz", - sha256 = "1a502b1deb0df5a9c80b3f3e9807c599d2416aaa5bf2628d4cfa1b01448e378a", + url = "https://ftp.mozilla.org/pub/firefox/releases/138.0b2/linux-x86_64/en-US/firefox-138.0b2.tar.xz", + sha256 = "6bc6101d9fdc19d9721cba6a4b8db786b984f7761563dfba697bb6ab9f4e6951", 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/138.0b1/mac/en-US/Firefox%20138.0b1.dmg", - sha256 = "ed7eb980a71333c1f3936510d85a45ca7d04289a05ba1e845e0335738a6489ae", + url = "https://ftp.mozilla.org/pub/firefox/releases/138.0b2/mac/en-US/Firefox%20138.0b2.dmg", + sha256 = "c7e7fcc1c72c2591ba9d64f76eedc060d777a2f00218e1eecc767cf71e7dfb53", 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/7697fb1f-03b9-4c5b-a21a-db2973b936d9/MicrosoftEdge-134.0.3124.95.pkg", - sha256 = "0384868c1c3d97d60ff5da6500e6b48a9a47cadf46a509a2c6598b6d916a6b91", + url = "https://msedge.sf.dl.delivery.mp.microsoft.com/filestreamingservice/files/d3d754a3-4afc-4dc2-b1b9-5226894fdf12/MicrosoftEdge-135.0.3179.54.pkg", + sha256 = "7bb07e3722866a4b5e44f0efe42c204a72105cbcfd3abe96811d6f00d08e8a61", move = { - "MicrosoftEdge-134.0.3124.95.pkg/Payload/Microsoft Edge.app": "Edge.app", + "MicrosoftEdge-135.0.3179.54.pkg/Payload/Microsoft Edge.app": "Edge.app", }, build_file_content = """ load("@aspect_rules_js//js:defs.bzl", "js_library") @@ -165,8 +165,8 @@ js_library( http_archive( name = "linux_edgedriver", - url = "https://msedgedriver.azureedge.net/134.0.3124.95/edgedriver_linux64.zip", - sha256 = "fe4806a8b359729fa59a1e827fd464a8b76a7060725a615dc52b1f6d1a9a4446", + url = "https://msedgedriver.azureedge.net/135.0.3179.41/edgedriver_linux64.zip", + sha256 = "ab0a8f5608aa7dcad67655348a6bbdf8257211a7fd56fc8241610472e7d1fdce", build_file_content = """ load("@aspect_rules_js//js:defs.bzl", "js_library") package(default_visibility = ["//visibility:public"]) @@ -182,8 +182,8 @@ js_library( http_archive( name = "mac_edgedriver", - url = "https://msedgedriver.azureedge.net/134.0.3124.95/edgedriver_mac64.zip", - sha256 = "ba2c2e4efd1239e03ab5690a34efd0f32fd6aa7d534715da5e84e270870ef8b9", + url = "https://msedgedriver.azureedge.net/135.0.3179.54/edgedriver_mac64.zip", + sha256 = "a7c06338f273a03a3451a5c1a3d73bb761f5506964b0ac77ef1449ede0f44e50", build_file_content = """ load("@aspect_rules_js//js:defs.bzl", "js_library") package(default_visibility = ["//visibility:public"]) From 3fe18a7647b59eb8c1da304cbf73900cd7c183da Mon Sep 17 00:00:00 2001 From: Selenium CI Bot Date: Fri, 4 Apr 2025 06:15:25 +0000 Subject: [PATCH 02/14] update devtools versions --- Rakefile | 2 +- .../chromium/{v132 => v135}/BUILD.bazel | 0 .../{v132 => v135}/browser_protocol.pdl | 423 +++++++++++++++--- .../chromium/{v132 => v135}/js_protocol.pdl | 26 +- dotnet/selenium-dotnet-version.bzl | 2 +- .../src/webdriver/DevTools/DevToolsDomains.cs | 4 +- .../V132Domains.cs => v135/V135Domains.cs} | 22 +- .../V135JavaScript.cs} | 16 +- .../{v132/V132Log.cs => v135/V135Log.cs} | 14 +- .../V132Network.cs => v135/V135Network.cs} | 24 +- .../V132Target.cs => v135/V135Target.cs} | 14 +- .../StableChannelChromeDriver.cs | 2 +- .../common/DevTools/DevToolsConsoleTest.cs | 2 +- .../test/common/DevTools/DevToolsLogTest.cs | 2 +- .../common/DevTools/DevToolsNetworkTest.cs | 2 +- .../DevTools/DevToolsPerformanceTest.cs | 2 +- .../common/DevTools/DevToolsProfilerTest.cs | 2 +- .../common/DevTools/DevToolsSecurityTest.cs | 2 +- .../test/common/DevTools/DevToolsTabsTest.cs | 2 +- .../common/DevTools/DevToolsTargetTest.cs | 4 +- .../devtools/{v132 => v135}/BUILD.bazel | 2 +- .../v135CdpInfo.java} | 8 +- .../v135Domains.java} | 26 +- .../v132Events.java => v135/v135Events.java} | 18 +- .../v135Javascript.java} | 14 +- .../{v132/v132Log.java => v135/v135Log.java} | 10 +- .../v135Network.java} | 20 +- .../v132Target.java => v135/v135Target.java} | 24 +- .../org/openqa/selenium/devtools/versions.bzl | 2 +- javascript/selenium-webdriver/BUILD.bazel | 2 +- py/BUILD.bazel | 2 +- rb/Gemfile.lock | 2 +- rb/lib/selenium/devtools/BUILD.bazel | 2 +- rb/lib/selenium/devtools/version.rb | 2 +- 34 files changed, 503 insertions(+), 198 deletions(-) rename common/devtools/chromium/{v132 => v135}/BUILD.bazel (100%) rename common/devtools/chromium/{v132 => v135}/browser_protocol.pdl (96%) rename common/devtools/chromium/{v132 => v135}/js_protocol.pdl (98%) rename dotnet/src/webdriver/DevTools/{v132/V132Domains.cs => v135/V135Domains.cs} (80%) rename dotnet/src/webdriver/DevTools/{v132/V132JavaScript.cs => v135/V135JavaScript.cs} (95%) rename dotnet/src/webdriver/DevTools/{v132/V132Log.cs => v135/V135Log.cs} (89%) rename dotnet/src/webdriver/DevTools/{v132/V132Network.cs => v135/V135Network.cs} (96%) rename dotnet/src/webdriver/DevTools/{v132/V132Target.cs => v135/V135Target.cs} (94%) rename java/src/org/openqa/selenium/devtools/{v132 => v135}/BUILD.bazel (98%) rename java/src/org/openqa/selenium/devtools/{v132/v132CdpInfo.java => v135/v135CdpInfo.java} (86%) rename java/src/org/openqa/selenium/devtools/{v132/v132Domains.java => v135/v135Domains.java} (77%) rename java/src/org/openqa/selenium/devtools/{v132/v132Events.java => v135/v135Events.java} (86%) rename java/src/org/openqa/selenium/devtools/{v132/v132Javascript.java => v135/v135Javascript.java} (85%) rename java/src/org/openqa/selenium/devtools/{v132/v132Log.java => v135/v135Log.java} (89%) rename java/src/org/openqa/selenium/devtools/{v132/v132Network.java => v135/v135Network.java} (92%) rename java/src/org/openqa/selenium/devtools/{v132/v132Target.java => v135/v135Target.java} (83%) diff --git a/Rakefile b/Rakefile index 68202e0ed85b1..33127a47fca89 100644 --- a/Rakefile +++ b/Rakefile @@ -97,7 +97,7 @@ JAVA_RELEASE_TARGETS = %w[ //java/src/org/openqa/selenium/chrome:chrome.publish //java/src/org/openqa/selenium/chromium:chromium.publish //java/src/org/openqa/selenium/devtools/v134:v134.publish - //java/src/org/openqa/selenium/devtools/v132:v132.publish + //java/src/org/openqa/selenium/devtools/v135:v135.publish //java/src/org/openqa/selenium/devtools/v133:v133.publish //java/src/org/openqa/selenium/edge:edge.publish //java/src/org/openqa/selenium/firefox:firefox.publish diff --git a/common/devtools/chromium/v132/BUILD.bazel b/common/devtools/chromium/v135/BUILD.bazel similarity index 100% rename from common/devtools/chromium/v132/BUILD.bazel rename to common/devtools/chromium/v135/BUILD.bazel diff --git a/common/devtools/chromium/v132/browser_protocol.pdl b/common/devtools/chromium/v135/browser_protocol.pdl similarity index 96% rename from common/devtools/chromium/v132/browser_protocol.pdl rename to common/devtools/chromium/v135/browser_protocol.pdl index 0f4ac014b69a6..46526d39dcbde 100644 --- a/common/devtools/chromium/v132/browser_protocol.pdl +++ b/common/devtools/chromium/v135/browser_protocol.pdl @@ -499,8 +499,8 @@ experimental domain Audits type AffectedRequest extends object properties # The unique request id. - Network.RequestId requestId - optional string url + optional Network.RequestId requestId + string url # Information about the frame affected by an inspector issue. type AffectedFrame extends object @@ -543,6 +543,27 @@ experimental domain Audits SetCookie ReadCookie + # Represents the category of insight that a cookie issue falls under. + type InsightType extends string + enum + # Cookie domain has an entry in third-party cookie migration readiness + # list: + # https://github.com/privacysandbox/privacy-sandbox-dev-support/blob/main/3pc-migration-readiness.md + GitHubResource + # Cookie is exempted due to a grace period: + # https://developers.google.com/privacy-sandbox/cookies/temporary-exceptions/grace-period + GracePeriod + # Cookie is exempted due a heuristics-based exemptiuon: + # https://developers.google.com/privacy-sandbox/cookies/temporary-exceptions/heuristics-based-exception + Heuristics + + # Information about the suggested solution to a cookie issue. + type CookieIssueInsight extends object + properties + InsightType type + # Link to table entry in third-party cookie migration readiness list. + optional string tableEntryUrl + # This information is currently necessary, as the front-end has a difficult # time finding a specific cookie. With this, we can convey specific error # information without the cookie. @@ -562,6 +583,8 @@ experimental domain Audits optional string siteForCookies optional string cookieUrl optional AffectedRequest request + # The recommended solution to the issue. + optional CookieIssueInsight insight type MixedContentResolutionStatus extends string enum @@ -631,6 +654,7 @@ experimental domain Audits CorpNotSameOriginAfterDefaultedToSameOriginByDip CorpNotSameOriginAfterDefaultedToSameOriginByCoepAndDip CorpNotSameSite + SRIMessageSignatureMismatch # Details for a request that has been blocked with the BLOCKED_BY_RESPONSE # code. Currently only used for COEP/COOP, but may be extended to include @@ -667,6 +691,7 @@ experimental domain Audits kInlineViolation kEvalViolation kURLViolation + kSRIViolation kTrustedTypesSinkViolation kTrustedTypesPolicyViolation kWasmEvalViolation @@ -776,6 +801,29 @@ experimental domain Audits WriteErrorTooLongIdField WriteErrorUnsupportedType + type SRIMessageSignatureError extends string + enum + MissingSignatureHeader + MissingSignatureInputHeader + InvalidSignatureHeader + InvalidSignatureInputHeader + SignatureHeaderValueIsNotByteSequence + SignatureHeaderValueIsParameterized + SignatureHeaderValueIsIncorrectLength + SignatureInputHeaderMissingLabel + SignatureInputHeaderValueNotInnerList + SignatureInputHeaderValueMissingComponents + SignatureInputHeaderInvalidComponentType + SignatureInputHeaderInvalidComponentName + SignatureInputHeaderInvalidHeaderComponentParameter + SignatureInputHeaderInvalidDerivedComponentParameter + SignatureInputHeaderKeyIdLength + SignatureInputHeaderInvalidParameter + SignatureInputHeaderMissingRequiredParameters + ValidationFailedSignatureExpired + ValidationFailedInvalidLength + ValidationFailedSignatureMismatch + # Details for issues around "Attribution Reporting API" usage. # Explainer: https://github.com/WICG/attribution-reporting-api type AttributionReportingIssueDetails extends object @@ -807,6 +855,11 @@ experimental domain Audits SharedDictionaryError sharedDictionaryError AffectedRequest request + type SRIMessageSignatureIssueDetails extends object + properties + SRIMessageSignatureError error + AffectedRequest request + type GenericIssueErrorType extends string enum FormLabelForNameError @@ -925,6 +978,8 @@ experimental domain Audits InvalidFieldsSpecified RelyingPartyOriginIsOpaque TypeNotMatching + UiDismissedNoEmbargo + CorsError type FederatedAuthUserInfoRequestIssueDetails extends object properties @@ -960,6 +1015,33 @@ experimental domain Audits string failureMessage optional Network.RequestId requestId + type PartitioningBlobURLInfo extends string + enum + BlockedCrossPartitionFetching + EnforceNoopenerForNavigation + + type PartitioningBlobURLIssueDetails extends object + properties + # The BlobURL that failed to load. + string url + # Additional information about the Partitioning Blob URL issue. + PartitioningBlobURLInfo partitioningBlobURLInfo + + type SelectElementAccessibilityIssueReason extends string + enum + DisallowedSelectChild + DisallowedOptGroupChild + NonPhrasingContentOptionChild + InteractiveContentOptionChild + InteractiveContentLegendChild + + # This issue warns about errors in the select element content model. + type SelectElementAccessibilityIssueDetails extends object + properties + DOM.BackendNodeId nodeId + SelectElementAccessibilityIssueReason selectElementAccessibilityIssueReason + boolean hasDisallowedAttributes + type StyleSheetLoadingIssueReason extends string enum LateImportRule @@ -1008,6 +1090,7 @@ experimental domain Audits CorsIssue AttributionReportingIssue QuirksModeIssue + PartitioningBlobURLIssue # Deprecated NavigatorUserAgentIssue GenericIssue @@ -1020,6 +1103,8 @@ experimental domain Audits FederatedAuthUserInfoRequestIssue PropertyRuleIssue SharedDictionaryIssue + SelectElementAccessibilityIssue + SRIMessageSignatureIssue # This struct holds a list of optional fields with additional information # specific to the kind of issue. When adding a new issue code, please also @@ -1036,6 +1121,7 @@ experimental domain Audits optional CorsIssueDetails corsIssueDetails optional AttributionReportingIssueDetails attributionReportingIssueDetails optional QuirksModeIssueDetails quirksModeIssueDetails + optional PartitioningBlobURLIssueDetails partitioningBlobURLIssueDetails deprecated optional NavigatorUserAgentIssueDetails navigatorUserAgentIssueDetails optional GenericIssueDetails genericIssueDetails optional DeprecationIssueDetails deprecationIssueDetails @@ -1047,6 +1133,8 @@ experimental domain Audits optional PropertyRuleIssueDetails propertyRuleIssueDetails optional FederatedAuthUserInfoRequestIssueDetails federatedAuthUserInfoRequestIssueDetails optional SharedDictionaryIssueDetails sharedDictionaryIssueDetails + optional SelectElementAccessibilityIssueDetails selectElementAccessibilityIssueDetails + optional SRIMessageSignatureIssueDetails sriMessageSignatureIssueDetails # A unique id for a DevTools inspector issue. Allows other entities (e.g. # exceptions, CDP message, console messages, etc.) to reference an issue. @@ -1129,6 +1217,13 @@ experimental domain Extensions returns # Extension id. string id + # Uninstalls an unpacked extension (others not supported) from the profile. + # Available if the client is connected using the --remote-debugging-pipe flag + # and the --enable-unsafe-extension-debugging. + command uninstall + parameters + # Extension id. + string id # Gets data from extension storage in the given `storageArea`. If `keys` is # specified, these are used to filter the result. command getStorageItems @@ -1370,18 +1465,21 @@ domain Browser experimental type PermissionType extends string enum - accessibilityEvents + ar audioCapture - backgroundSync + automaticFullscreen backgroundFetch + backgroundSync + cameraPanTiltZoom capturedSurfaceControl clipboardReadWrite clipboardSanitizedWrite displayCapture durableStorage - flash geolocation + handTracking idleDetection + keyboardLock localFonts midi midiSysex @@ -1389,16 +1487,19 @@ domain Browser notifications paymentHandler periodicBackgroundSync + pointerLock protectedMediaIdentifier sensors - storageAccess + smartCard speakerSelection + storageAccess topLevelStorageAccess videoCapture - videoCapturePanTiltZoom + vr wakeLockScreen wakeLockSystem webAppInstallation + webPrinting windowManagement experimental type PermissionSetting extends string @@ -1671,6 +1772,14 @@ experimental domain CSS # Matches of CSS rules applicable to the pseudo style. array of RuleMatch matches + # CSS style coming from animations with the name of the animation. + type CSSAnimationStyle extends object + properties + # The name of the animation. + optional string name + # The style coming from the animation. + CSSStyle style + # Inherited CSS rule collection from ancestor node. type InheritedStyleEntry extends object properties @@ -1679,6 +1788,14 @@ experimental domain CSS # Matches of CSS rules matching the ancestor node in the style inheritance chain. array of RuleMatch matchedCSSRules + # Inherited CSS style collection for animated styles from ancestor node. + type InheritedAnimatedStyleEntry extends object + properties + # Styles coming from the animations of the ancestor, if any, in the style inheritance chain. + optional array of CSSAnimationStyle animationStyles + # The style coming from the transitions of the ancestor, if any, in the style inheritance chain. + optional CSSStyle transitionsStyle + # Inherited pseudo element matches from pseudos of an ancestor node. type InheritedPseudoElementMatches extends object properties @@ -2135,6 +2252,51 @@ experimental domain CSS # Associated style declaration. CSSStyle style + # CSS function argument representation. + type CSSFunctionParameter extends object + properties + # The parameter name. + string name + # The parameter type. + string type + + # CSS function conditional block representation. + type CSSFunctionConditionNode extends object + properties + # Media query for this conditional block. Only one type of condition should be set. + optional CSSMedia media + # Container query for this conditional block. Only one type of condition should be set. + optional CSSContainerQuery containerQueries + # @supports CSS at-rule condition. Only one type of condition should be set. + optional CSSSupports supports + # Block body. + array of CSSFunctionNode children + # The condition text. + string conditionText + + # Section of the body of a CSS function rule. + type CSSFunctionNode extends object + properties + # A conditional block. If set, style should not be set. + optional CSSFunctionConditionNode condition + # Values set by this node. If set, condition should not be set. + optional CSSStyle style + + # CSS function at-rule representation. + type CSSFunctionRule extends object + properties + # Name of the function. + 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 + # List of parameters. + array of CSSFunctionParameter parameters + # Function body. + array of CSSFunctionNode children + # CSS keyframe rule representation. type CSSKeyframeRule extends object properties @@ -2189,6 +2351,11 @@ experimental domain CSS parameters # Identifier of the frame where "via-inspector" stylesheet should be created. Page.FrameId frameId + # If true, creates a new stylesheet for every call. If false, + # returns a stylesheet previously created by a call with force=false + # for the frame's document if it exists or creates a new stylesheet + # (default: false). + optional boolean force returns # Identifier of the created "via-inspector" stylesheet. StyleSheetId styleSheetId @@ -2209,6 +2376,14 @@ experimental domain CSS # Element pseudo classes to force when computing the element's style. array of string forcedPseudoClasses + # Ensures that the given node is in its starting-style state. + command forceStartingStyle + parameters + # The element id for which to force the starting-style state. + DOM.NodeId nodeId + # Boolean indicating if this is on or off. + boolean forced + command getBackgroundColors parameters # Id of the node to get background colors for. @@ -2234,6 +2409,34 @@ experimental domain CSS # Computed style for the specified DOM node. array of CSSComputedStyleProperty computedStyle + # Resolve the specified values in the context of the provided element. + # For example, a value of '1em' is evaluated according to the computed + # 'font-size' of the element and a value 'calc(1px + 2px)' will be + # resolved to '3px'. + command resolveValues + parameters + # Substitution functions (var()/env()/attr()) and cascade-dependent + # keywords (revert/revert-layer) do not work. + array of string values + # Id of the node in whose context the expression is evaluated + DOM.NodeId nodeId + # Only longhands and custom property names are accepted. + optional string propertyName + # Pseudo element type, only works for pseudo elements that generate + # elements in the tree, such as ::before and ::after. + experimental optional DOM.PseudoType pseudoType + # Pseudo element custom ident. + experimental optional string pseudoIdentifier + returns + array of string results + + experimental command getLonghandProperties + parameters + string shorthandName + string value + returns + array of CSSProperty longhandProperties + # Returns the styles defined inline (explicitly in the "style" attribute and implicitly, using DOM # attributes) for a DOM node identified by `nodeId`. command getInlineStylesForNode @@ -2245,6 +2448,20 @@ experimental domain CSS # Attribute-defined element style (e.g. resulting from "width=20 height=100%"). optional CSSStyle attributesStyle + # Returns the styles coming from animations & transitions + # including the animation & transition styles coming from inheritance chain. + experimental command getAnimatedStylesForNode + parameters + DOM.NodeId nodeId + returns + # Styles coming from animations. + optional array of CSSAnimationStyle animationStyles + # Style coming from transitions. + optional CSSStyle transitionsStyle + # Inherited style entries for animationsStyle and transitionsStyle from + # the inheritance chain of the element. + optional array of InheritedAnimatedStyleEntry inherited + # Returns requested styles for a DOM node identified by `nodeId`. command getMatchedStylesForNode parameters @@ -2277,6 +2494,8 @@ experimental domain CSS optional CSSFontPaletteValuesRule cssFontPaletteValuesRule # Id of the first parent element that does not have display: contents. experimental optional DOM.NodeId parentLayoutNodeId + # A list of CSS at-function rules referenced by styles of this node. + experimental optional array of CSSFunctionRule cssFunctionRules # Returns all media queries parsed by the rendering engine. command getMediaQueries @@ -2710,10 +2929,10 @@ domain DOM enum first-line first-letter - check + checkmark before after - select-arrow + picker-icon marker backdrop column @@ -2726,8 +2945,7 @@ domain DOM first-line-inherited scroll-marker scroll-marker-group - scroll-next-button - scroll-prev-button + scroll-button scrollbar scrollbar-thumb scrollbar-button @@ -3248,6 +3466,8 @@ domain DOM # Get the popover target for a given element. In this case, this given # element can only be an HTMLFormControlElement (,