From 771c22c7f7d80d79c05e60d038e45bd5550d37f1 Mon Sep 17 00:00:00 2001 From: Diego Molina Date: Tue, 14 Feb 2023 22:48:09 +0100 Subject: [PATCH] [CDP] Adding v110 and removing v107 --- Rakefile | 2 +- .../chromium/{v107 => v110}/BUILD.bazel | 0 .../{v107 => v110}/browser_protocol.pdl | 384 +++++++++++++++--- .../chromium/{v107 => v110}/js_protocol.pdl | 57 +-- dotnet/selenium-dotnet-version.bzl | 4 +- .../src/webdriver/DevTools/DevToolsDomains.cs | 2 +- .../V107Domains.cs => v110/V110Domains.cs} | 20 +- .../V110JavaScript.cs} | 16 +- .../{v107/V107Log.cs => v110/V110Log.cs} | 14 +- .../V107Network.cs => v110/V110Network.cs} | 32 +- .../V107Target.cs => v110/V110Target.cs} | 14 +- .../webdriver/WebDriver.csproj.prebuild.cmd | 14 +- .../webdriver/WebDriver.csproj.prebuild.sh | 12 +- .../devtools/{v107 => v110}/BUILD.bazel | 2 +- .../v110CdpInfo.java} | 8 +- .../v110Domains.java} | 26 +- .../V107Events.java => v110/v110Events.java} | 18 +- .../v110Javascript.java} | 14 +- .../{v107/V107Log.java => v110/v110Log.java} | 10 +- .../v110Network.java} | 30 +- .../V107Target.java => v110/v110Target.java} | 24 +- .../org/openqa/selenium/devtools/versions.bzl | 2 +- .../node/selenium-webdriver/BUILD.bazel | 2 +- py/BUILD.bazel | 4 +- rb/lib/selenium/devtools/BUILD.bazel | 2 +- rb/lib/selenium/devtools/README.md | 2 +- rb/lib/selenium/devtools/version.rb | 2 +- 27 files changed, 491 insertions(+), 226 deletions(-) rename common/devtools/chromium/{v107 => v110}/BUILD.bazel (100%) rename common/devtools/chromium/{v107 => v110}/browser_protocol.pdl (96%) rename common/devtools/chromium/{v107 => v110}/js_protocol.pdl (97%) rename dotnet/src/webdriver/DevTools/{v107/V107Domains.cs => v110/V110Domains.cs} (79%) rename dotnet/src/webdriver/DevTools/{v107/V107JavaScript.cs => v110/V110JavaScript.cs} (94%) rename dotnet/src/webdriver/DevTools/{v107/V107Log.cs => v110/V110Log.cs} (88%) rename dotnet/src/webdriver/DevTools/{v107/V107Network.cs => v110/V110Network.cs} (93%) rename dotnet/src/webdriver/DevTools/{v107/V107Target.cs => v110/V110Target.cs} (93%) rename java/src/org/openqa/selenium/devtools/{v107 => v110}/BUILD.bazel (98%) rename java/src/org/openqa/selenium/devtools/{v107/V107CdpInfo.java => v110/v110CdpInfo.java} (86%) rename java/src/org/openqa/selenium/devtools/{v107/V107Domains.java => v110/v110Domains.java} (77%) rename java/src/org/openqa/selenium/devtools/{v107/V107Events.java => v110/v110Events.java} (86%) rename java/src/org/openqa/selenium/devtools/{v107/V107Javascript.java => v110/v110Javascript.java} (85%) rename java/src/org/openqa/selenium/devtools/{v107/V107Log.java => v110/v110Log.java} (89%) rename java/src/org/openqa/selenium/devtools/{v107/V107Network.java => v110/v110Network.java} (89%) rename java/src/org/openqa/selenium/devtools/{v107/V107Target.java => v110/v110Target.java} (83%) diff --git a/Rakefile b/Rakefile index 0ed7cc92aac28..b6220817dea73 100644 --- a/Rakefile +++ b/Rakefile @@ -98,9 +98,9 @@ task '//java/test/org/openqa/selenium/environment/webserver:webserver:uber' => [ JAVA_RELEASE_TARGETS = %w[ //java/src/org/openqa/selenium/chrome:chrome.publish //java/src/org/openqa/selenium/chromium:chromium.publish - //java/src/org/openqa/selenium/devtools/v107:v107.publish //java/src/org/openqa/selenium/devtools/v108:v108.publish //java/src/org/openqa/selenium/devtools/v109:v109.publish + //java/src/org/openqa/selenium/devtools/v110:v110.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 diff --git a/common/devtools/chromium/v107/BUILD.bazel b/common/devtools/chromium/v110/BUILD.bazel similarity index 100% rename from common/devtools/chromium/v107/BUILD.bazel rename to common/devtools/chromium/v110/BUILD.bazel diff --git a/common/devtools/chromium/v107/browser_protocol.pdl b/common/devtools/chromium/v110/browser_protocol.pdl similarity index 96% rename from common/devtools/chromium/v107/browser_protocol.pdl rename to common/devtools/chromium/v110/browser_protocol.pdl index ee45cf0219cf7..0df1a4f9f6ecc 100644 --- a/common/devtools/chromium/v107/browser_protocol.pdl +++ b/common/devtools/chromium/v110/browser_protocol.pdl @@ -1,4 +1,4 @@ -# Copyright 2017 The Chromium Authors. All rights reserved. +# Copyright 2017 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. # @@ -482,6 +482,7 @@ experimental domain Audits ExcludeInvalidSameParty ExcludeSamePartyCrossPartyContext ExcludeDomainNonASCII + ExcludeThirdPartyCookieBlockedInFirstPartySet type CookieWarningReason extends string enum @@ -742,6 +743,7 @@ experimental domain Audits type GenericIssueErrorType extends string enum CrossOriginPortalPostMessageError + FormLabelForNameError # Depending on the concrete errorType, different properties are set. type GenericIssueDetails extends object @@ -749,6 +751,7 @@ experimental domain Audits # Issues with the same errorType are aggregated in the frontend. GenericIssueErrorType errorType optional Page.FrameId frameId + optional DOM.BackendNodeId violatingNodeId type DeprecationIssueType extends string enum @@ -772,18 +775,17 @@ experimental domain Audits HostCandidateAttributeGetter IdentityInCanMakePaymentEvent InsecurePrivateNetworkSubresourceRequest - LegacyConstraintGoogIPv6 LocalCSSFileExtensionRejected MediaSourceAbortRemove MediaSourceDurationTruncatingBuffered - NavigateEventRestoreScroll - NavigateEventTransitionWhile NoSysexWebMIDIWithoutPermission NotificationInsecureOrigin NotificationPermissionRequestedIframe ObsoleteWebRtcCipherSuite OpenWebDatabaseInsecureContext OverflowVisibleOnReplacedElement + PaymentInstruments + PaymentRequestCSPViolation PersistentQuotaType PictureSourceSrc PrefixedCancelAnimationFrame @@ -836,14 +838,14 @@ experimental domain Audits enum ShouldEmbargo TooManyRequests - ManifestListHttpNotFound - ManifestListNoResponse - ManifestListInvalidResponse - ManifestNotInManifestList - ManifestListTooBig - ManifestHttpNotFound - ManifestNoResponse - ManifestInvalidResponse + WellKnownHttpNotFound + WellKnownNoResponse + WellKnownInvalidResponse + ConfigNotInWellKnown + WellKnownTooBig + ConfigHttpNotFound + ConfigNoResponse + ConfigInvalidResponse ClientMetadataHttpNotFound ClientMetadataNoResponse ClientMetadataInvalidResponse @@ -1029,6 +1031,8 @@ experimental domain BackgroundService string instanceId # A list of event-specific information. array of EventMetadata eventMetadata + # Storage key this event belongs to. + string storageKey # Called with all existing backgroundServiceEvents when enabled, and all new # events afterwards if enabled and recording. @@ -1075,6 +1079,8 @@ domain Browser durableStorage flash geolocation + idleDetection + localFonts midi midiSysex nfc @@ -1083,11 +1089,12 @@ domain Browser periodicBackgroundSync protectedMediaIdentifier sensors + storageAccess videoCapture videoCapturePanTiltZoom - idleDetection wakeLockScreen wakeLockSystem + windowManagement experimental type PermissionSetting extends string enum @@ -1599,6 +1606,10 @@ experimental domain CSS optional StyleSheetId styleSheetId # Optional name for the container. optional string name + # Optional physical axes queried for the container. + optional DOM.PhysicalAxes physicalAxes + # Optional logical axes queried for the container. + optional DOM.LogicalAxes logicalAxes # CSS Supports at-rule descriptor. experimental type CSSSupports extends object @@ -2058,6 +2069,8 @@ experimental domain CacheStorage CacheId cacheId # Security origin of the cache. string securityOrigin + # Storage key of the cache. + string storageKey # The name of the cache. string cacheName @@ -2089,8 +2102,11 @@ experimental domain CacheStorage # Requests cache names. command requestCacheNames parameters + # At least and at most one of securityOrigin, storageKey must be specified. # Security origin. - string securityOrigin + optional string securityOrigin + # Storage key. + optional string storageKey returns # Caches for the security origin. array of Cache caches @@ -2233,11 +2249,11 @@ domain DOM scrollbar-corner resizer input-list-button - page-transition - page-transition-container - page-transition-image-wrapper - page-transition-outgoing-image - page-transition-incoming-image + view-transition + view-transition-group + view-transition-image-pair + view-transition-old + view-transition-new # Shadow root type. type ShadowRootType extends string @@ -2253,6 +2269,20 @@ domain DOM LimitedQuirksMode NoQuirksMode + # ContainerSelector physical axes + type PhysicalAxes extends string + enum + Horizontal + Vertical + Both + + # ContainerSelector logical axes + type LogicalAxes extends string + enum + Inline + Block + Both + # 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 @@ -2865,13 +2895,16 @@ domain DOM # Id of the node at given coordinates, only when enabled and requested document. optional NodeId nodeId - # Returns the container of the given node based on container query conditions. - # If containerName is given, it will find the nearest container with a matching name; - # otherwise it will find the nearest container regardless of its container name. + # Returns the query container of the given node based on container query + # conditions: containerName, physical, and logical axes. If no axes are + # provided, the style container is returned, which is the direct parent or the + # closest element with a matching container-name. experimental command getContainerForNode parameters NodeId nodeId optional string containerName + optional PhysicalAxes physicalAxes + optional LogicalAxes logicalAxes returns # The container node for the given node, or null if not found. optional NodeId nodeId @@ -3864,7 +3897,6 @@ domain Emulation experimental type DisabledImageType extends string enum avif - jxl webp experimental command setDisabledImageTypes @@ -3907,8 +3939,11 @@ experimental domain HeadlessExperimental optional enum format jpeg png + webp # Compression quality from range [0..100] (jpeg only). optional integer quality + # Optimize image encoding for speed, not for resulting size (defaults to false) + optional boolean optimizeForSpeed # Sends a BeginFrame to the target and returns when the frame was completed. Optionally captures a # screenshot from the resulting frame. Requires that the target was created with enabled @@ -3938,18 +3973,10 @@ experimental domain HeadlessExperimental optional binary screenshotData # Disables headless events for the target. - command disable + deprecated command disable # Enables headless events for the target. - command enable - - # Issued when the target starts or stops needing BeginFrames. - # Deprecated. Issue beginFrame unconditionally instead and use result from - # beginFrame to detect whether the frames were suppressed. - deprecated event needsBeginFramesChanged - parameters - # True if BeginFrames are needed, false otherwise. - boolean needsBeginFrames + deprecated command enable # Input/Output operations for streams produced by DevTools. domain IO @@ -5255,6 +5282,30 @@ domain Network # Type "send-redemption-record" in the Trust Token API. Signing + # The reason why Chrome uses a specific transport protocol for HTTP semantics. + experimental type AlternateProtocolUsage extends string + enum + # Alternate Protocol was used without racing a normal connection. + alternativeJobWonWithoutRace + # Alternate Protocol was used by winning a race with a normal connection. + alternativeJobWonRace + # Alternate Protocol was not used by losing a race with a normal connection. + mainJobWonRace + # Alternate Protocol was not used because no Alternate-Protocol information + # was available when the request was issued, but an Alternate-Protocol header + # was present in the response. + mappingMissing + # Alternate Protocol was not used because it was marked broken. + broken + # HTTPS DNS protocol upgrade job was used without racing with a normal + # connection and an Alternate Protocol job. + dnsAlpnH3JobWonWithoutRace + # HTTPS DNS protocol upgrade job won a race with a normal connection and + # an Alternate Protocol job. + dnsAlpnH3JobWonRace + # This value is used when the reason is unknown. + unspecifiedReason + # HTTP response data. type Response extends object properties @@ -5300,6 +5351,8 @@ domain Network optional string cacheStorageCacheName # Protocol used to fetch this request. optional string protocol + # The reason why Chrome uses a specific transport protocol for HTTP semantics. + experimental optional AlternateProtocolUsage alternateProtocolUsage # Security state of the request resource. Security.SecurityState securityState # Security details for the request. @@ -5432,6 +5485,9 @@ domain Network SameSiteNoneInsecure # The cookie was not stored due to user preferences. UserPreferences + # The cookie was blocked by third-party cookie blocking between sites in + # the same First-Party Set. + ThirdPartyBlockedInFirstPartySet # The syntax of the Set-Cookie header of the response was invalid. SyntaxError # The scheme of the connection is not allowed to store cookies. @@ -5496,6 +5552,9 @@ domain Network SameSiteNoneInsecure # The cookie was not sent due to user preferences. UserPreferences + # The cookie was blocked by third-party cookie blocking between sites in + # the same First-Party Set. + ThirdPartyBlockedInFirstPartySet # An unknown error was encountered when trying to send this cookie. UnknownError # The cookie had the "SameSite=Strict" attribute but came from a response @@ -6303,6 +6362,8 @@ domain Network experimental ConnectTiming connectTiming # The client security state set for the request. optional ClientSecurityState clientSecurityState + # Whether the site has partitioned cookies stored in a partition different than the current one. + optional boolean siteHasCookieInOtherPartition # Fired when additional information about a responseReceived event is available from the network # stack. Not every responseReceived event will have an additional responseReceivedExtraInfo for @@ -6345,6 +6406,7 @@ domain Network ResourceExhausted AlreadyExists Unavailable + Unauthorized BadResponse InternalError UnknownError @@ -7105,6 +7167,7 @@ domain Page ch-downlink ch-ect ch-prefers-color-scheme + ch-prefers-reduced-motion ch-rtt ch-save-data ch-ua @@ -7124,6 +7187,7 @@ domain Page ch-width clipboard-read clipboard-write + compute-pressure cross-origin-isolated direct-sockets display-capture @@ -7131,7 +7195,6 @@ domain Page encrypted-media execution-while-out-of-viewport execution-while-not-rendered - federated-credentials focus-without-user-activation fullscreen frobulate @@ -7139,6 +7202,7 @@ domain Page geolocation gyroscope hid + identity-credentials-get idle-detection interest-cohort join-ad-interest-group @@ -7156,6 +7220,7 @@ domain Page serial shared-autofill shared-storage + smart-card storage-access sync-xhr trust-token-redemption @@ -7567,6 +7632,8 @@ domain Page experimental optional boolean fromSurface # Capture the screenshot beyond the viewport. Defaults to false. experimental optional boolean captureBeyondViewport + # Optimize image encoding for speed, not for resulting size (defaults to false) + experimental optional boolean optimizeForSpeed returns # Base64-encoded image data. binary data @@ -7654,8 +7721,17 @@ domain Page # Recommendation for manifest's id attribute to match current id computed from start_url optional string recommendedId - # Returns all browser cookies. Depending on the backend support, will return detailed cookie - # information in the `cookies` field. + experimental command getAdScriptId + parameters + FrameId frameId + returns + # Identifies the bottom-most script which caused the frame to be labelled + # as an ad. Only sent if frame is labelled as an ad and id is available. + optional AdScriptId adScriptId + + # Returns all browser cookies for the page and all of its subframes. Depending + # on the backend support, will return detailed cookie information in the + # `cookies` field. experimental deprecated command getCookies # Use 'Network.getCookies' instead redirect Network @@ -8052,8 +8128,9 @@ domain Page parameters enum mode none - autoaccept - autoreject + autoAccept + autoReject + autoOptOut # Generates a report for testing. experimental command generateTestReport @@ -8098,9 +8175,6 @@ domain Page FrameId parentFrameId # JavaScript stack trace of when frame was attached, only set if frame initiated from script. optional Runtime.StackTrace stack - # Identifies the bottom-most script which caused the frame to be labelled - # as an ad. Only sent if frame is labelled as an ad and id is available. - experimental optional AdScriptId adScriptId # Fired when frame no longer has a scheduled navigation. deprecated event frameClearedScheduledNavigation @@ -8319,7 +8393,6 @@ domain Page DedicatedWorkerOrWorklet OutstandingNetworkRequestOthers OutstandingIndexedDBTransaction - RequestedNotificationsPermission RequestedMIDIPermission RequestedAudioCapturePermission RequestedVideoCapturePermission @@ -8350,8 +8423,10 @@ domain Page OutstandingNetworkRequestDirectSocket InjectedJavascript InjectedStyleSheet + KeepaliveRequest Dummy - # Disabled for render frame host reasons + AuthorizationHeader + # Disabled for RenderFrameHost reasons # See content/browser/renderer_host/back_forward_cache_disable.h for explanations. ContentSecurityHandler ContentWebAuthenticationAPI @@ -8430,8 +8505,6 @@ domain Page Activated Destroyed LowEndDevice - CrossOriginRedirect - CrossOriginNavigation InvalidSchemeRedirect InvalidSchemeNavigation InProgressNavigation @@ -8457,7 +8530,6 @@ domain Page AudioOutputDeviceRequested MixedContent TriggerBackgrounded - EmbedderTriggeredAndSameOriginRedirected EmbedderTriggeredAndCrossOriginRedirected MemoryLimitExceeded # Prerenders can be cancelled when Chrome uses excessive memory. This is @@ -8466,6 +8538,18 @@ domain Page DataSaverEnabled HasEffectiveUrl ActivatedBeforeStarted + InactivePageRestriction + StartFailed + TimeoutBackgrounded + CrossSiteRedirect + CrossSiteNavigation + SameSiteCrossOriginRedirect + SameSiteCrossOriginNavigation + SameSiteCrossOriginRedirectNotOptIn + SameSiteCrossOriginNavigationNotOptIn + ActivationNavigationParameterMismatch + ActivatedInBackground + EmbedderHostDisallowed # Fired when a prerender attempt is completed. experimental event prerenderAttemptCompleted @@ -8972,6 +9056,7 @@ experimental domain Storage service_workers cache_storage interest_groups + shared_storage all other @@ -8996,6 +9081,7 @@ experimental domain Storage join leave update + loaded bid win @@ -9021,6 +9107,91 @@ experimental domain Storage array of InterestGroupAd ads array of InterestGroupAd adComponents + # Enum of shared storage access types. + type SharedStorageAccessType extends string + enum + documentAddModule + documentSelectURL + documentRun + documentSet + documentAppend + documentDelete + documentClear + workletSet + workletAppend + workletDelete + workletClear + workletGet + workletKeys + workletEntries + workletLength + workletRemainingBudget + + # Struct for a single key-value pair in an origin's shared storage. + type SharedStorageEntry extends object + properties + string key + string value + + # Details for an origin's shared storage. + type SharedStorageMetadata extends object + properties + Network.TimeSinceEpoch creationTime + integer length + number remainingBudget + + # Pair of reporting metadata details for a candidate URL for `selectURL()`. + type SharedStorageReportingMetadata extends object + properties + string eventType + string reportingUrl + + # Bundles a candidate URL with its reporting metadata. + type SharedStorageUrlWithMetadata extends object + properties + # Spec of candidate URL. + string url + # Any associated reporting metadata. + array of SharedStorageReportingMetadata reportingMetadata + + # Bundles the parameters for shared storage access events whose + # presence/absence can vary according to SharedStorageAccessType. + type SharedStorageAccessParams extends object + properties + # Spec of the module script URL. + # Present only for SharedStorageAccessType.documentAddModule. + optional string scriptSourceUrl + # Name of the registered operation to be run. + # Present only for SharedStorageAccessType.documentRun and + # SharedStorageAccessType.documentSelectURL. + optional string operationName + # The operation's serialized data in bytes (converted to a string). + # Present only for SharedStorageAccessType.documentRun and + # SharedStorageAccessType.documentSelectURL. + optional string serializedData + # Array of candidate URLs' specs, along with any associated metadata. + # Present only for SharedStorageAccessType.documentSelectURL. + optional array of SharedStorageUrlWithMetadata urlsWithMetadata + # Key for a specific entry in an origin's shared storage. + # Present only for SharedStorageAccessType.documentSet, + # SharedStorageAccessType.documentAppend, + # SharedStorageAccessType.documentDelete, + # SharedStorageAccessType.workletSet, + # SharedStorageAccessType.workletAppend, + # SharedStorageAccessType.workletDelete, and + # SharedStorageAccessType.workletGet. + 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. + 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. + optional boolean ignoreIfPresent + # Returns a storage key given a frame id. command getStorageKeyForFrame parameters @@ -9102,6 +9273,12 @@ experimental domain Storage # Security origin. string origin + # Registers storage key to be notified when an update occurs to its cache storage list. + command trackCacheStorageForStorageKey + parameters + # Storage key. + string storageKey + # Registers origin to be notified when an update occurs to its IndexedDB. command trackIndexedDBForOrigin parameters @@ -9120,6 +9297,12 @@ experimental domain Storage # Security origin. string origin + # Unregisters storage key from receiving notifications for cache storage. + command untrackCacheStorageForStorageKey + parameters + # Storage key. + string storageKey + # Unregisters origin from receiving notifications for IndexedDB. command untrackIndexedDBForOrigin parameters @@ -9160,11 +9343,53 @@ experimental domain Storage parameters boolean enable + # Gets metadata for an origin's shared storage. + experimental command getSharedStorageMetadata + parameters + string ownerOrigin + returns + SharedStorageMetadata metadata + + # Gets the entries in an given origin's shared storage. + experimental command getSharedStorageEntries + parameters + string ownerOrigin + returns + array of SharedStorageEntry entries + + # Sets entry with `key` and `value` for a given origin's shared storage. + experimental command setSharedStorageEntry + parameters + string ownerOrigin + string key + string value + # If `ignoreIfPresent` is included and true, then only sets the entry if + # `key` doesn't already exist. + optional boolean ignoreIfPresent + + # Deletes entry for `key` (if it exists) for a given origin's shared storage. + experimental command deleteSharedStorageEntry + parameters + string ownerOrigin + string key + + # Clears all entries for a given origin's shared storage. + experimental command clearSharedStorageEntries + parameters + string ownerOrigin + + # Enables/disables issuing of sharedStorageAccessed events. + experimental command setSharedStorageTracking + parameters + boolean enable + # A cache's contents have been modified. event cacheStorageContentUpdated parameters # Origin to update. string origin + # Storage key to update. + string storageKey # Name of cache in origin. string cacheName @@ -9173,6 +9398,8 @@ experimental domain Storage parameters # Origin to update. string origin + # Storage key to update. + string storageKey # The origin's IndexedDB object store has been modified. event indexedDBContentUpdated @@ -9202,6 +9429,22 @@ experimental domain Storage string ownerOrigin string name + # Shared storage was accessed by the associated page. + # The following parameters are included in all events. + event sharedStorageAccessed + parameters + # Time of the access. + Network.TimeSinceEpoch accessTime + # Enum value indicating the Shared Storage API method invoked. + SharedStorageAccessType type + # DevTools Frame Token for the primary frame tree's root. + 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 + # presence/absence depends on `type`. + SharedStorageAccessParams params + # The SystemInfo domain defines methods and events for querying low-level system information. experimental domain SystemInfo @@ -9329,6 +9572,13 @@ experimental domain SystemInfo # supported. string commandLine + # Returns information about the feature state. + command getFeatureState + parameters + string featureState + returns + boolean featureEnabled + # Returns information about all running processes. command getProcessInfo returns @@ -9358,6 +9608,9 @@ domain Target # Frame id of originating window (is only set if target has an opener). experimental optional Page.FrameId openerFrameId experimental optional Browser.BrowserContextID browserContextId + # Provides additional details for specific target types. For example, for + # the type of "page", this may be set to "portal" or "prerender". + experimental optional string subtype # A filter used by target query/discovery/auto-attach operations. experimental type FilterEntry extends object @@ -9771,8 +10024,8 @@ experimental domain Tracing # total size. optional number value - # Contains an bucket of collected trace events. When tracing is stopped collected events will be - # send as a sequence of dataCollected events followed by tracingComplete event. + # 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 parameters array of object value @@ -9911,7 +10164,9 @@ domain Fetch optional string method # If set, overrides the post data in the request. optional binary postData - # If set, overrides the request headers. + # If set, overrides the request headers. Note that the overrides do not + # extend to subsequent redirect hops, if a redirect happens. Another override + # may be applied to a different request produced by a redirect. optional array of HeaderEntry headers # If set, overrides response interception behavior for this request. experimental optional boolean interceptResponse @@ -10002,7 +10257,10 @@ domain Fetch optional array of HeaderEntry responseHeaders # If the intercepted request had a corresponding Network.requestWillBeSent event fired for it, # then this networkId will be the same as the requestId present in the requestWillBeSent event. - optional RequestId networkId + optional Network.RequestId networkId + # If the request is due to a redirect response from the server, the id of the request that + # has caused the redirect. + experimental optional RequestId redirectedRequestId # Issued when the domain is enabled with handleAuthRequests set to true. # The request is paused until client responds with continueWithAuth. @@ -10317,6 +10575,20 @@ experimental domain WebAuthn returns AuthenticatorId authenticatorId + # Resets parameters isBogusSignature, isBadUV, isBadUP to false if they are not present. + command setResponseOverrideBits + parameters + AuthenticatorId authenticatorId + # If isBogusSignature is set, overrides the signature in the authenticator response to be zero. + # Defaults to false. + optional boolean isBogusSignature + # If isBadUV is set, overrides the UV bit in the flags in the authenticator response to + # be zero. Defaults to false. + optional boolean isBadUV + # If isBadUP is set, overrides the UP bit in the flags in the authenticator response to + # be zero. Defaults to false. + optional boolean isBadUP + # Removes the given authenticator. command removeVirtualAuthenticator parameters @@ -10369,6 +10641,18 @@ experimental domain WebAuthn AuthenticatorId authenticatorId boolean enabled + # Triggered when a credential is added to an authenticator. + event credentialAdded + parameters + AuthenticatorId authenticatorId + Credential credential + + # Triggered when a credential is used in a webauthn assertion. + event credentialAsserted + parameters + AuthenticatorId authenticatorId + Credential credential + # This domain allows detailed inspection of media elements experimental domain Media diff --git a/common/devtools/chromium/v107/js_protocol.pdl b/common/devtools/chromium/v110/js_protocol.pdl similarity index 97% rename from common/devtools/chromium/v107/js_protocol.pdl rename to common/devtools/chromium/v110/js_protocol.pdl index 8d8211bf989f1..6efcf787854da 100644 --- a/common/devtools/chromium/v107/js_protocol.pdl +++ b/common/devtools/chromium/v110/js_protocol.pdl @@ -458,13 +458,14 @@ domain Debugger # New value for breakpoints active state. boolean active - # Defines pause on exceptions state. Can be set to stop on all exceptions, uncaught exceptions or - # no exceptions. Initial pause on exceptions state is `none`. + # Defines pause on exceptions state. Can be set to stop on all exceptions, uncaught exceptions, + # or caught exceptions, no exceptions. Initial pause on exceptions state is `none`. command setPauseOnExceptions parameters # Pause on exceptions mode. enum state none + caught uncaught all @@ -766,6 +767,22 @@ experimental domain HeapProfiler # Average sample interval in bytes. Poisson distribution is used for the intervals. The # default value is 32768 bytes. optional number samplingInterval + # By default, the sampling heap profiler reports only objects which are + # still alive when the profile is returned via getSamplingProfile or + # stopSampling, which is useful for determining what functions contribute + # the most to steady-state memory usage. This flag instructs the sampling + # heap profiler to also include information about objects discarded by + # major GC, which will show which functions cause large temporary memory + # usage or long GC pauses. + optional boolean includeObjectsCollectedByMajorGC + # By default, the sampling heap profiler reports only objects which are + # still alive when the profile is returned via getSamplingProfile or + # stopSampling, which is useful for determining what functions contribute + # the most to steady-state memory usage. This flag instructs the sampling + # heap profiler to also include information about objects discarded by + # minor GC, which is useful when tuning a latency-sensitive application + # for minimal GC activity. + optional boolean includeObjectsCollectedByMinorGC command startTrackingHeapObjects parameters @@ -902,30 +919,6 @@ domain Profiler # Functions contained in the script that has coverage data. array of FunctionCoverage functions - # Describes a type collected during runtime. - experimental type TypeObject extends object - properties - # Name of a type collected with type profiling. - string name - - # Source offset and types for a parameter or return value. - experimental type TypeProfileEntry extends object - properties - # Source offset of the parameter or end of function for return values. - integer offset - # The types for this parameter or return value. - array of TypeObject types - - # Type profile data collected during runtime for a JavaScript script. - experimental type ScriptTypeProfile extends object - properties - # JavaScript script id. - Runtime.ScriptId scriptId - # JavaScript script name or url. - string url - # Type profile entries for parameters and return values of the functions in the script. - array of TypeProfileEntry entries - command disable command enable @@ -960,9 +953,6 @@ domain Profiler # Monotonically increasing time (in seconds) when the coverage update was taken in the backend. number timestamp - # Enable type profile. - experimental command startTypeProfile - command stop returns # Recorded profile. @@ -972,9 +962,6 @@ domain Profiler # executing optimized code. command stopPreciseCoverage - # Disable type profile. Disabling releases type profile data collected so far. - experimental command stopTypeProfile - # Collect coverage data for the current isolate, and resets execution counters. Precise code # coverage needs to have started. command takePreciseCoverage @@ -984,12 +971,6 @@ domain Profiler # Monotonically increasing time (in seconds) when the coverage update was taken in the backend. number timestamp - # Collect type profile. - experimental command takeTypeProfile - returns - # Type profile for all scripts since startTypeProfile() was turned on. - array of ScriptTypeProfile result - event consoleProfileFinished parameters string id diff --git a/dotnet/selenium-dotnet-version.bzl b/dotnet/selenium-dotnet-version.bzl index 8f9a82bd8ae4c..a9150719fd5e4 100644 --- a/dotnet/selenium-dotnet-version.bzl +++ b/dotnet/selenium-dotnet-version.bzl @@ -7,12 +7,12 @@ SUPPORTED_NET_STANDARD_VERSIONS = ["netstandard2.0", "netstandard2.1", "net5.0", SUPPORTED_DEVTOOLS_VERSIONS = [ "v85", - "v107", "v108", "v109", + "v110", ] ASSEMBLY_COMPANY = "Selenium Committers" -ASSEMBLY_COPYRIGHT = "Copyright © Software Freedom Conservancy 2022" +ASSEMBLY_COPYRIGHT = "Copyright © Software Freedom Conservancy 2023" ASSEMBLY_INFORMATIONAL_VERSION = "4" ASSEMBLY_PRODUCT = "Selenium" diff --git a/dotnet/src/webdriver/DevTools/DevToolsDomains.cs b/dotnet/src/webdriver/DevTools/DevToolsDomains.cs index 0f3eabce2f488..02a147523332b 100644 --- a/dotnet/src/webdriver/DevTools/DevToolsDomains.cs +++ b/dotnet/src/webdriver/DevTools/DevToolsDomains.cs @@ -37,9 +37,9 @@ public abstract class DevToolsDomains // added to this dictionary. private static readonly Dictionary SupportedDevToolsVersions = new Dictionary() { + { 110, typeof(V110.V110Domains) }, { 109, typeof(V109.V109Domains) }, { 108, typeof(V108.V108Domains) }, - { 107, typeof(V107.V107Domains) }, { 85, typeof(V85.V85Domains) } }; diff --git a/dotnet/src/webdriver/DevTools/v107/V107Domains.cs b/dotnet/src/webdriver/DevTools/v110/V110Domains.cs similarity index 79% rename from dotnet/src/webdriver/DevTools/v107/V107Domains.cs rename to dotnet/src/webdriver/DevTools/v110/V110Domains.cs index c86082d7f4f6b..e3af502650a6d 100644 --- a/dotnet/src/webdriver/DevTools/v107/V107Domains.cs +++ b/dotnet/src/webdriver/DevTools/v110/V110Domains.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 @@ -19,16 +19,16 @@ using System.Collections.Generic; using System.Text; -namespace OpenQA.Selenium.DevTools.V107 +namespace OpenQA.Selenium.DevTools.V110 { /// - /// Class containing the domain implementation for version 107 of the DevTools Protocol. + /// Class containing the domain implementation for version 109 of the DevTools Protocol. /// - public class V107Domains : DevToolsDomains + public class V110Domains : DevToolsDomains { private DevToolsSessionDomains domains; - public V107Domains(DevToolsSession session) + public V110Domains(DevToolsSession session) { this.domains = new DevToolsSessionDomains(session); } @@ -36,7 +36,7 @@ public V107Domains(DevToolsSession session) /// /// Gets the DevTools Protocol version for which this class is valid. /// - public static int DevToolsVersion => 107; + public static int DevToolsVersion => 109; /// /// 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 V107Domains(DevToolsSession session) /// /// Gets the object used for manipulating network information in the browser. /// - public override DevTools.Network Network => new V107Network(domains.Network, domains.Fetch); + public override DevTools.Network Network => new V110Network(domains.Network, domains.Fetch); /// /// Gets the object used for manipulating the browser's JavaScript execution. /// - public override JavaScript JavaScript => new V107JavaScript(domains.Runtime, domains.Page); + public override JavaScript JavaScript => new V110JavaScript(domains.Runtime, domains.Page); /// /// Gets the object used for manipulating DevTools Protocol targets. /// - public override DevTools.Target Target => new V107Target(domains.Target); + public override DevTools.Target Target => new V110Target(domains.Target); /// /// Gets the object used for manipulating the browser's logs. /// - public override DevTools.Log Log => new V107Log(domains.Log); + public override DevTools.Log Log => new V110Log(domains.Log); } } diff --git a/dotnet/src/webdriver/DevTools/v107/V107JavaScript.cs b/dotnet/src/webdriver/DevTools/v110/V110JavaScript.cs similarity index 94% rename from dotnet/src/webdriver/DevTools/v107/V107JavaScript.cs rename to dotnet/src/webdriver/DevTools/v110/V110JavaScript.cs index f96d43e58e732..639f4756f8f26 100644 --- a/dotnet/src/webdriver/DevTools/v107/V107JavaScript.cs +++ b/dotnet/src/webdriver/DevTools/v110/V110JavaScript.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 @@ -18,25 +18,25 @@ using System; using System.Collections.Generic; using System.Threading.Tasks; -using OpenQA.Selenium.DevTools.V107.Page; -using OpenQA.Selenium.DevTools.V107.Runtime; +using OpenQA.Selenium.DevTools.V110.Page; +using OpenQA.Selenium.DevTools.V110.Runtime; -namespace OpenQA.Selenium.DevTools.V107 +namespace OpenQA.Selenium.DevTools.V110 { /// - /// Class containing the JavaScript implementation for version 107 of the DevTools Protocol. + /// Class containing the JavaScript implementation for version 109 of the DevTools Protocol. /// - public class V107JavaScript : JavaScript + public class V110JavaScript : 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 V107JavaScript(RuntimeAdapter runtime, PageAdapter page) + public V110JavaScript(RuntimeAdapter runtime, PageAdapter page) { this.runtime = runtime; this.page = page; diff --git a/dotnet/src/webdriver/DevTools/v107/V107Log.cs b/dotnet/src/webdriver/DevTools/v110/V110Log.cs similarity index 88% rename from dotnet/src/webdriver/DevTools/v107/V107Log.cs rename to dotnet/src/webdriver/DevTools/v110/V110Log.cs index 2e58bc801f711..acd74405d4dcf 100644 --- a/dotnet/src/webdriver/DevTools/v107/V107Log.cs +++ b/dotnet/src/webdriver/DevTools/v110/V110Log.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 @@ -20,22 +20,22 @@ using System.Text; using System.Threading; using System.Threading.Tasks; -using OpenQA.Selenium.DevTools.V107.Log; +using OpenQA.Selenium.DevTools.V110.Log; -namespace OpenQA.Selenium.DevTools.V107 +namespace OpenQA.Selenium.DevTools.V110 { /// - /// Class containing the browser's log as referenced by version 107 of the DevTools Protocol. + /// Class containing the browser's log as referenced by version 109 of the DevTools Protocol. /// - public class V107Log : DevTools.Log + public class V110Log : 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 V107Log(LogAdapter adapter) + public V110Log(LogAdapter adapter) { this.adapter = adapter; this.adapter.EntryAdded += OnAdapterEntryAdded; diff --git a/dotnet/src/webdriver/DevTools/v107/V107Network.cs b/dotnet/src/webdriver/DevTools/v110/V110Network.cs similarity index 93% rename from dotnet/src/webdriver/DevTools/v107/V107Network.cs rename to dotnet/src/webdriver/DevTools/v110/V110Network.cs index d36729e53b889..652b523bea685 100644 --- a/dotnet/src/webdriver/DevTools/v107/V107Network.cs +++ b/dotnet/src/webdriver/DevTools/v110/V110Network.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 @@ -20,25 +20,25 @@ using System.Collections.Generic; using System.Text; using System.Threading.Tasks; -using OpenQA.Selenium.DevTools.V107.Fetch; -using OpenQA.Selenium.DevTools.V107.Network; +using OpenQA.Selenium.DevTools.V110.Fetch; +using OpenQA.Selenium.DevTools.V110.Network; -namespace OpenQA.Selenium.DevTools.V107 +namespace OpenQA.Selenium.DevTools.V110 { /// - /// Class providing functionality for manipulating network calls using version 107 of the DevTools Protocol + /// Class providing functionality for manipulating network calls using version 109 of the DevTools Protocol /// - public class V107Network : DevTools.Network + public class V110Network : 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 V107Network(NetworkAdapter network, FetchAdapter fetch) + public V110Network(NetworkAdapter network, FetchAdapter fetch) { this.network = network; this.fetch = fetch; @@ -80,12 +80,12 @@ public override async Task DisableNetwork() /// A task that represents the asynchronous operation. public override async Task EnableFetchForAllPatterns() { - await fetch.Enable(new OpenQA.Selenium.DevTools.V107.Fetch.EnableCommandSettings() + await fetch.Enable(new OpenQA.Selenium.DevTools.V110.Fetch.EnableCommandSettings() { - Patterns = new OpenQA.Selenium.DevTools.V107.Fetch.RequestPattern[] + Patterns = new OpenQA.Selenium.DevTools.V110.Fetch.RequestPattern[] { - new OpenQA.Selenium.DevTools.V107.Fetch.RequestPattern() { UrlPattern = "*", RequestStage = RequestStage.Request }, - new OpenQA.Selenium.DevTools.V107.Fetch.RequestPattern() { UrlPattern = "*", RequestStage = RequestStage.Response } + new OpenQA.Selenium.DevTools.V110.Fetch.RequestPattern() { UrlPattern = "*", RequestStage = RequestStage.Request }, + new OpenQA.Selenium.DevTools.V110.Fetch.RequestPattern() { UrlPattern = "*", RequestStage = RequestStage.Response } }, HandleAuthRequests = true }); @@ -208,9 +208,9 @@ public override async Task ContinueWithAuth(string requestId, string userName, s await fetch.ContinueWithAuth(new ContinueWithAuthCommandSettings() { RequestId = requestId, - AuthChallengeResponse = new V107.Fetch.AuthChallengeResponse() + AuthChallengeResponse = new V110.Fetch.AuthChallengeResponse() { - Response = V107.Fetch.AuthChallengeResponseResponseValues.ProvideCredentials, + Response = V110.Fetch.AuthChallengeResponseResponseValues.ProvideCredentials, Username = userName, Password = password } @@ -227,9 +227,9 @@ public override async Task CancelAuth(string requestId) await fetch.ContinueWithAuth(new ContinueWithAuthCommandSettings() { RequestId = requestId, - AuthChallengeResponse = new OpenQA.Selenium.DevTools.V107.Fetch.AuthChallengeResponse() + AuthChallengeResponse = new OpenQA.Selenium.DevTools.V110.Fetch.AuthChallengeResponse() { - Response = V107.Fetch.AuthChallengeResponseResponseValues.CancelAuth + Response = V110.Fetch.AuthChallengeResponseResponseValues.CancelAuth } }); } diff --git a/dotnet/src/webdriver/DevTools/v107/V107Target.cs b/dotnet/src/webdriver/DevTools/v110/V110Target.cs similarity index 93% rename from dotnet/src/webdriver/DevTools/v107/V107Target.cs rename to dotnet/src/webdriver/DevTools/v110/V110Target.cs index addec93b978a2..f8b217f7b6356 100644 --- a/dotnet/src/webdriver/DevTools/v107/V107Target.cs +++ b/dotnet/src/webdriver/DevTools/v110/V110Target.cs @@ -1,4 +1,4 @@ -// +// // Licensed to the Software Freedom Conservancy (SFC) under one // or more contributor license agreements. See the NOTICE file // distributed with this work for additional information @@ -21,22 +21,22 @@ using System.Collections.ObjectModel; using System.Text; using System.Threading.Tasks; -using OpenQA.Selenium.DevTools.V107.Target; +using OpenQA.Selenium.DevTools.V110.Target; -namespace OpenQA.Selenium.DevTools.V107 +namespace OpenQA.Selenium.DevTools.V110 { /// - /// Class providing functionality for manipulating targets for version 107 of the DevTools Protocol + /// Class providing functionality for manipulating targets for version 109 of the DevTools Protocol /// - public class V107Target : DevTools.Target + public class V110Target : 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 V107Target(TargetAdapter adapter) + public V110Target(TargetAdapter adapter) { this.adapter = adapter; adapter.DetachedFromTarget += OnDetachedFromTarget; diff --git a/dotnet/src/webdriver/WebDriver.csproj.prebuild.cmd b/dotnet/src/webdriver/WebDriver.csproj.prebuild.cmd index 2db5fbbb223dd..ffdcc2f83d591 100644 --- a/dotnet/src/webdriver/WebDriver.csproj.prebuild.cmd +++ b/dotnet/src/webdriver/WebDriver.csproj.prebuild.cmd @@ -27,13 +27,6 @@ if not exist "%1..\..\..\bazel-bin\dotnet\src\webdriver\cdp\v85\DevToolsSession popd ) -if not exist "%1..\..\..\bazel-bin\dotnet\src\webdriver\cdp\v107\DevToolsSessionDomains.cs" ( - echo Generating CDP code for version 107 - pushd "%1..\..\.." - bazel build //dotnet/src/webdriver/cdp:generate-v107 - popd -) - if not exist "%1..\..\..\bazel-bin\dotnet\src\webdriver\cdp\v108\DevToolsSessionDomains.cs" ( echo Generating CDP code for version 108 pushd "%1..\..\.." @@ -47,3 +40,10 @@ if not exist "%1..\..\..\bazel-bin\dotnet\src\webdriver\cdp\v109\DevToolsSessio bazel build //dotnet/src/webdriver/cdp:generate-v109 popd ) + +if not exist "%1..\..\..\bazel-bin\dotnet\src\webdriver\cdp\v110\DevToolsSessionDomains.cs" ( + echo Generating CDP code for version 110 + pushd "%1..\..\.." + bazel build //dotnet/src/webdriver/cdp:generate-v110 + popd +) diff --git a/dotnet/src/webdriver/WebDriver.csproj.prebuild.sh b/dotnet/src/webdriver/WebDriver.csproj.prebuild.sh index 39da26cf97e8c..370a51e35b246 100755 --- a/dotnet/src/webdriver/WebDriver.csproj.prebuild.sh +++ b/dotnet/src/webdriver/WebDriver.csproj.prebuild.sh @@ -23,12 +23,6 @@ then bazel build //dotnet/src/webdriver/cdp:generate-v85 fi -if [[ ! -f "$1../../../bazel-bin/dotnet/src/webdriver/cdp/v107/DevToolsSessionDomains.cs" ]] -then - echo "Generating CDP code for version 107" - bazel build //dotnet/src/webdriver/cdp:generate-v107 -fi - if [[ ! -f "$1../../../bazel-bin/dotnet/src/webdriver/cdp/v108/DevToolsSessionDomains.cs" ]] then echo "Generating CDP code for version 108" @@ -40,3 +34,9 @@ then echo "Generating CDP code for version 109" bazel build //dotnet/src/webdriver/cdp:generate-v109 fi + +if [[ ! -f "$1../../../bazel-bin/dotnet/src/webdriver/cdp/v110/DevToolsSessionDomains.cs" ]] +then + echo "Generating CDP code for version 110" + bazel build //dotnet/src/webdriver/cdp:generate-v110 +fi diff --git a/java/src/org/openqa/selenium/devtools/v107/BUILD.bazel b/java/src/org/openqa/selenium/devtools/v110/BUILD.bazel similarity index 98% rename from java/src/org/openqa/selenium/devtools/v107/BUILD.bazel rename to java/src/org/openqa/selenium/devtools/v110/BUILD.bazel index 9499b5c3f28ec..66033f137b07d 100644 --- a/java/src/org/openqa/selenium/devtools/v107/BUILD.bazel +++ b/java/src/org/openqa/selenium/devtools/v110/BUILD.bazel @@ -3,7 +3,7 @@ load("//common:defs.bzl", "copy_file") load("//java:defs.bzl", "java_export", "java_library") load("//java:version.bzl", "SE_VERSION") -cdp_version = "v107" +cdp_version = "v110" java_export( name = cdp_version, diff --git a/java/src/org/openqa/selenium/devtools/v107/V107CdpInfo.java b/java/src/org/openqa/selenium/devtools/v110/v110CdpInfo.java similarity index 86% rename from java/src/org/openqa/selenium/devtools/v107/V107CdpInfo.java rename to java/src/org/openqa/selenium/devtools/v110/v110CdpInfo.java index 9ac0fe8dc2c26..7adc1178a79ae 100644 --- a/java/src/org/openqa/selenium/devtools/v107/V107CdpInfo.java +++ b/java/src/org/openqa/selenium/devtools/v110/v110CdpInfo.java @@ -15,16 +15,16 @@ // specific language governing permissions and limitations // under the License. -package org.openqa.selenium.devtools.v107; +package org.openqa.selenium.devtools.v110; import com.google.auto.service.AutoService; import org.openqa.selenium.devtools.CdpInfo; @AutoService(CdpInfo.class) -public class V107CdpInfo extends CdpInfo { +public class v110CdpInfo extends CdpInfo { - public V107CdpInfo() { - super(107, V107Domains::new); + public v110CdpInfo() { + super(110, v110Domains::new); } } diff --git a/java/src/org/openqa/selenium/devtools/v107/V107Domains.java b/java/src/org/openqa/selenium/devtools/v110/v110Domains.java similarity index 77% rename from java/src/org/openqa/selenium/devtools/v107/V107Domains.java rename to java/src/org/openqa/selenium/devtools/v110/v110Domains.java index 9fb2f72505adb..9b986ddda6a14 100644 --- a/java/src/org/openqa/selenium/devtools/v107/V107Domains.java +++ b/java/src/org/openqa/selenium/devtools/v110/v110Domains.java @@ -15,7 +15,7 @@ // specific language governing permissions and limitations // under the License. -package org.openqa.selenium.devtools.v107; +package org.openqa.selenium.devtools.v110; 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 V107Domains implements Domains { +public class v110Domains implements Domains { - private final V107Javascript js; - private final V107Events events; - private final V107Log log; - private final V107Network network; - private final V107Target target; + private final v110Javascript js; + private final v110Events events; + private final v110Log log; + private final v110Network network; + private final v110Target target; - public V107Domains(DevTools devtools) { + public v110Domains(DevTools devtools) { Require.nonNull("DevTools", devtools); - events = new V107Events(devtools); - js = new V107Javascript(devtools); - log = new V107Log(); - network = new V107Network(devtools); - target = new V107Target(); + events = new v110Events(devtools); + js = new v110Javascript(devtools); + log = new v110Log(); + network = new v110Network(devtools); + target = new v110Target(); } @Override diff --git a/java/src/org/openqa/selenium/devtools/v107/V107Events.java b/java/src/org/openqa/selenium/devtools/v110/v110Events.java similarity index 86% rename from java/src/org/openqa/selenium/devtools/v107/V107Events.java rename to java/src/org/openqa/selenium/devtools/v110/v110Events.java index a9a32f9990e29..e08977aa6b1d2 100644 --- a/java/src/org/openqa/selenium/devtools/v107/V107Events.java +++ b/java/src/org/openqa/selenium/devtools/v110/v110Events.java @@ -15,7 +15,7 @@ // specific language governing permissions and limitations // under the License. -package org.openqa.selenium.devtools.v107; +package org.openqa.selenium.devtools.v110; import com.google.common.collect.ImmutableList; @@ -26,19 +26,19 @@ 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.v107.runtime.Runtime; -import org.openqa.selenium.devtools.v107.runtime.model.ConsoleAPICalled; -import org.openqa.selenium.devtools.v107.runtime.model.ExceptionDetails; -import org.openqa.selenium.devtools.v107.runtime.model.ExceptionThrown; -import org.openqa.selenium.devtools.v107.runtime.model.StackTrace; +import org.openqa.selenium.devtools.v110.runtime.Runtime; +import org.openqa.selenium.devtools.v110.runtime.model.ConsoleAPICalled; +import org.openqa.selenium.devtools.v110.runtime.model.ExceptionDetails; +import org.openqa.selenium.devtools.v110.runtime.model.ExceptionThrown; +import org.openqa.selenium.devtools.v110.runtime.model.StackTrace; import java.time.Instant; import java.util.List; import java.util.Optional; -public class V107Events extends Events { +public class v110Events extends Events { - public V107Events(DevTools devtools) { + public v110Events(DevTools devtools) { super(devtools); } @@ -83,7 +83,7 @@ protected ConsoleEvent toConsoleEvent(ConsoleAPICalled event) { protected JavascriptException toJsException(ExceptionThrown event) { ExceptionDetails details = event.getExceptionDetails(); Optional maybeTrace = details.getStackTrace(); - Optional + Optional maybeException = details.getException(); String message = maybeException diff --git a/java/src/org/openqa/selenium/devtools/v107/V107Javascript.java b/java/src/org/openqa/selenium/devtools/v110/v110Javascript.java similarity index 85% rename from java/src/org/openqa/selenium/devtools/v107/V107Javascript.java rename to java/src/org/openqa/selenium/devtools/v110/v110Javascript.java index 5289c5a7dc59b..9b0f6943ae3d0 100644 --- a/java/src/org/openqa/selenium/devtools/v107/V107Javascript.java +++ b/java/src/org/openqa/selenium/devtools/v110/v110Javascript.java @@ -15,22 +15,22 @@ // specific language governing permissions and limitations // under the License. -package org.openqa.selenium.devtools.v107; +package org.openqa.selenium.devtools.v110; 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.v107.page.Page; -import org.openqa.selenium.devtools.v107.page.model.ScriptIdentifier; -import org.openqa.selenium.devtools.v107.runtime.Runtime; -import org.openqa.selenium.devtools.v107.runtime.model.BindingCalled; +import org.openqa.selenium.devtools.v110.page.Page; +import org.openqa.selenium.devtools.v110.page.model.ScriptIdentifier; +import org.openqa.selenium.devtools.v110.runtime.Runtime; +import org.openqa.selenium.devtools.v110.runtime.model.BindingCalled; import java.util.Optional; -public class V107Javascript extends Javascript { +public class v110Javascript extends Javascript { - public V107Javascript(DevTools devtools) { + public v110Javascript(DevTools devtools) { super(devtools); } diff --git a/java/src/org/openqa/selenium/devtools/v107/V107Log.java b/java/src/org/openqa/selenium/devtools/v110/v110Log.java similarity index 89% rename from java/src/org/openqa/selenium/devtools/v107/V107Log.java rename to java/src/org/openqa/selenium/devtools/v110/v110Log.java index 9c97cb968139e..dfc13054856ef 100644 --- a/java/src/org/openqa/selenium/devtools/v107/V107Log.java +++ b/java/src/org/openqa/selenium/devtools/v110/v110Log.java @@ -15,20 +15,20 @@ // specific language governing permissions and limitations // under the License. -package org.openqa.selenium.devtools.v107; +package org.openqa.selenium.devtools.v110; import org.openqa.selenium.devtools.Command; import org.openqa.selenium.devtools.ConverterFunctions; import org.openqa.selenium.devtools.Event; -import org.openqa.selenium.devtools.v107.log.Log; -import org.openqa.selenium.devtools.v107.log.model.LogEntry; -import org.openqa.selenium.devtools.v107.runtime.model.Timestamp; +import org.openqa.selenium.devtools.v110.log.Log; +import org.openqa.selenium.devtools.v110.log.model.LogEntry; +import org.openqa.selenium.devtools.v110.runtime.model.Timestamp; import org.openqa.selenium.json.JsonInput; import java.util.function.Function; import java.util.logging.Level; -public class V107Log implements org.openqa.selenium.devtools.idealized.log.Log { +public class v110Log implements org.openqa.selenium.devtools.idealized.log.Log { @Override public Command enable() { diff --git a/java/src/org/openqa/selenium/devtools/v107/V107Network.java b/java/src/org/openqa/selenium/devtools/v110/v110Network.java similarity index 89% rename from java/src/org/openqa/selenium/devtools/v107/V107Network.java rename to java/src/org/openqa/selenium/devtools/v110/v110Network.java index 40b443dbb230a..b0434d6e8a8d1 100644 --- a/java/src/org/openqa/selenium/devtools/v107/V107Network.java +++ b/java/src/org/openqa/selenium/devtools/v110/v110Network.java @@ -15,7 +15,7 @@ // specific language governing permissions and limitations // under the License. -package org.openqa.selenium.devtools.v107; +package org.openqa.selenium.devtools.v110; import com.google.common.collect.ImmutableList; import com.google.common.io.ByteStreams; @@ -26,14 +26,14 @@ import org.openqa.selenium.devtools.DevToolsException; import org.openqa.selenium.devtools.Event; import org.openqa.selenium.devtools.idealized.Network; -import org.openqa.selenium.devtools.v107.fetch.Fetch; -import org.openqa.selenium.devtools.v107.fetch.model.AuthChallengeResponse; -import org.openqa.selenium.devtools.v107.fetch.model.AuthRequired; -import org.openqa.selenium.devtools.v107.fetch.model.HeaderEntry; -import org.openqa.selenium.devtools.v107.fetch.model.RequestPattern; -import org.openqa.selenium.devtools.v107.fetch.model.RequestPaused; -import org.openqa.selenium.devtools.v107.fetch.model.RequestStage; -import org.openqa.selenium.devtools.v107.network.model.Request; +import org.openqa.selenium.devtools.v110.fetch.Fetch; +import org.openqa.selenium.devtools.v110.fetch.model.AuthChallengeResponse; +import org.openqa.selenium.devtools.v110.fetch.model.AuthRequired; +import org.openqa.selenium.devtools.v110.fetch.model.HeaderEntry; +import org.openqa.selenium.devtools.v110.fetch.model.RequestPattern; +import org.openqa.selenium.devtools.v110.fetch.model.RequestPaused; +import org.openqa.selenium.devtools.v110.fetch.model.RequestStage; +import org.openqa.selenium.devtools.v110.network.model.Request; import org.openqa.selenium.internal.Either; import org.openqa.selenium.remote.http.HttpRequest; import org.openqa.selenium.remote.http.HttpResponse; @@ -51,28 +51,28 @@ import static java.net.HttpURLConnection.HTTP_OK; -public class V107Network extends Network { +public class v110Network extends Network { - private static final Logger LOG = Logger.getLogger(V107Network.class.getName()); + private static final Logger LOG = Logger.getLogger(v110Network.class.getName()); - public V107Network(DevTools devTools) { + public v110Network(DevTools devTools) { super(devTools); } @Override protected Command setUserAgentOverride(UserAgent userAgent) { - return org.openqa.selenium.devtools.v107.network.Network.setUserAgentOverride( + return org.openqa.selenium.devtools.v110.network.Network.setUserAgentOverride( userAgent.userAgent(), userAgent.acceptLanguage(), userAgent.platform(), Optional.empty()); } @Override protected Command enableNetworkCaching() { - return org.openqa.selenium.devtools.v107.network.Network.setCacheDisabled(false); + return org.openqa.selenium.devtools.v110.network.Network.setCacheDisabled(false); } @Override protected Command disableNetworkCaching() { - return org.openqa.selenium.devtools.v107.network.Network.setCacheDisabled(true); + return org.openqa.selenium.devtools.v110.network.Network.setCacheDisabled(true); } @Override diff --git a/java/src/org/openqa/selenium/devtools/v107/V107Target.java b/java/src/org/openqa/selenium/devtools/v110/v110Target.java similarity index 83% rename from java/src/org/openqa/selenium/devtools/v107/V107Target.java rename to java/src/org/openqa/selenium/devtools/v110/v110Target.java index aaf934aacff4c..d96291346ee1d 100644 --- a/java/src/org/openqa/selenium/devtools/v107/V107Target.java +++ b/java/src/org/openqa/selenium/devtools/v110/v110Target.java @@ -15,7 +15,7 @@ // specific language governing permissions and limitations // under the License. -package org.openqa.selenium.devtools.v107; +package org.openqa.selenium.devtools.v110; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -26,8 +26,8 @@ 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.v107.target.Target; -import org.openqa.selenium.devtools.v107.target.model.TargetInfo; +import org.openqa.selenium.devtools.v110.target.Target; +import org.openqa.selenium.devtools.v110.target.model.TargetInfo; import org.openqa.selenium.json.JsonInput; import org.openqa.selenium.json.TypeToken; @@ -35,16 +35,16 @@ import java.util.Optional; import java.util.function.Function; -public class V107Target implements org.openqa.selenium.devtools.idealized.target.Target { +public class v110Target 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.v107.target.model.SessionID(id.toString())), + id -> new org.openqa.selenium.devtools.v110.target.model.SessionID(id.toString())), targetId.map( - id -> new org.openqa.selenium.devtools.v107.target.model.TargetID(id.toString()))); + id -> new org.openqa.selenium.devtools.v110.target.model.TargetID(id.toString()))); } @Override @@ -75,18 +75,18 @@ public Command attachToTarget(TargetID targetId) { - Function mapper = + Function mapper = ConverterFunctions.map("sessionId", - org.openqa.selenium.devtools.v107.target.model.SessionID.class); + org.openqa.selenium.devtools.v110.target.model.SessionID.class); return new Command<>( "Target.attachToTarget", ImmutableMap.of( "targetId", - new org.openqa.selenium.devtools.v107.target.model.TargetID(targetId.toString()), + new org.openqa.selenium.devtools.v110.target.model.TargetID(targetId.toString()), "flatten", true), input -> { - org.openqa.selenium.devtools.v107.target.model.SessionID id = mapper.apply(input); + org.openqa.selenium.devtools.v110.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.v107.target.model.TargetID.class); + org.openqa.selenium.devtools.v110.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 b3fa3581a62e4..1155a13c6fd43 100644 --- a/java/src/org/openqa/selenium/devtools/versions.bzl +++ b/java/src/org/openqa/selenium/devtools/versions.bzl @@ -1,8 +1,8 @@ CDP_VERSIONS = [ "v85", # Required by Firefox - "v107", "v108", "v109", + "v110", ] CDP_DEPS = ["//java/src/org/openqa/selenium/devtools/%s" % v for v in CDP_VERSIONS] diff --git a/javascript/node/selenium-webdriver/BUILD.bazel b/javascript/node/selenium-webdriver/BUILD.bazel index 963365cd2e9c1..fc8ef24aa603f 100644 --- a/javascript/node/selenium-webdriver/BUILD.bazel +++ b/javascript/node/selenium-webdriver/BUILD.bazel @@ -4,9 +4,9 @@ load("//common:defs.bzl", "copy_file") BROWSER_VERSIONS = [ "v85", - "v107", "v108", "v109", + "v110", ] SRC_FILES = [ diff --git a/py/BUILD.bazel b/py/BUILD.bazel index f00979c8734bc..7c37d1e821082 100644 --- a/py/BUILD.bazel +++ b/py/BUILD.bazel @@ -20,9 +20,9 @@ SE_VERSION = "4.8.0" BROWSER_VERSIONS = [ "v85", - "v107", "v108", "v109", + "v110", ] TEST_DEPS = [ @@ -275,10 +275,10 @@ py_binary( [generate_devtools( name = "create-cdp-srcs-{}".format(devtools_version), - outdir = "selenium/webdriver/common/devtools/{}".format(devtools_version), browser_protocol = "//common/devtools/chromium/{}:browser_protocol".format(devtools_version), generator = ":generate", js_protocol = "//common/devtools/chromium/{}:js_protocol".format(devtools_version), + outdir = "selenium/webdriver/common/devtools/{}".format(devtools_version), protocol_version = devtools_version, ) for devtools_version in BROWSER_VERSIONS] diff --git a/rb/lib/selenium/devtools/BUILD.bazel b/rb/lib/selenium/devtools/BUILD.bazel index 73af46d731813..a25928872fa1f 100644 --- a/rb/lib/selenium/devtools/BUILD.bazel +++ b/rb/lib/selenium/devtools/BUILD.bazel @@ -4,9 +4,9 @@ package(default_visibility = ["//rb:__subpackages__"]) CDP_VERSIONS = [ "v85", - "v107", "v108", "v109", + "v110", ] rb_library( diff --git a/rb/lib/selenium/devtools/README.md b/rb/lib/selenium/devtools/README.md index 89cb0634b11d7..6083b764403d7 100644 --- a/rb/lib/selenium/devtools/README.md +++ b/rb/lib/selenium/devtools/README.md @@ -1,6 +1,6 @@ ### Adding support for new Chromium DevTools Protocol to the Ruby bindings -* Add the latest version number to `/rb/BUILD.bazel` +* Add the latest version number to `/rb/lib/selenium/devtools/BUILD.bazel` * Update `/rb/lib/selenium/devtools/version.rb` with the latest version number ### Releasing selenium-devtools gem diff --git a/rb/lib/selenium/devtools/version.rb b/rb/lib/selenium/devtools/version.rb index 0a98ca887eced..4d47cee6ccbbc 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.109.0' + VERSION = '0.110.0' end # DevTools end # Selenium