New Upstream Release - node-devtools-protocol

Ready changes

Summary

Merged new upstream version: 0.0.1166296 (was: 0.0.957947).

Resulting package

Built on 2023-07-07T23:29 (took 4m41s)

The resulting binary packages can be installed (if you have the apt repository enabled) by running one of:

apt install -t fresh-releases node-devtools-protocol

Lintian Result

Diff

diff --git a/README.md b/README.md
index f8a9e34..155e078 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# devtools-protocol
+# devtools-protocol [![devtools-protocol on npm](https://img.shields.io/npm/v/devtools-protocol)](https://www.npmjs.com/package/devtools-protocol)
 
 :warning:
 This repository is related to Chrome DevTools Protocol, but does not track issues regarding its definition or implementation.
@@ -8,5 +8,4 @@ Use the [protocol viewer](https://chromedevtools.github.io/devtools-protocol/) f
 
 TypeScript definitions for the protocol's types are available in ['types/protocol.d.ts'](https://github.com/ChromeDevTools/devtools-protocol/tree/master/types). Mappings from Commands and events to these types are available in either generated `DomainApi` style in [`types/protocol-proxy-api.d.ts`](https://github.com/ChromeDevTools/devtools-protocol/blob/master/types/protocol-proxy-api.d.ts) or in simple name-to-type-interface style in [`types/protocol-mapping.d.ts`](https://github.com/ChromeDevTools/devtools-protocol/blob/master/types/protocol-mapping.d.ts).
 
-Also, this repo is published as the [`devtools-protocol`](https://www.npmjs.com/package/devtools-protocol) NPM module. 
-![npm](https://img.shields.io/npm/v/devtools-protocol.svg?style=flat-square)
+Also, this repo is published as the [`devtools-protocol`](https://www.npmjs.com/package/devtools-protocol) npm module.
diff --git a/debian/changelog b/debian/changelog
index 7883dd8..da73ae5 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-node-devtools-protocol (0.0.957947-1) UNRELEASED; urgency=medium
+node-devtools-protocol (0.0.1166296-1) UNRELEASED; urgency=medium
 
   Please DO NOT upload for the time being (<merkys@debian.org>)
 
@@ -14,7 +14,10 @@ node-devtools-protocol (0.0.957947-1) UNRELEASED; urgency=medium
   * Initial upstream branch.
   * New upstream version 0.0.957947
 
- -- Yadd <yadd@debian.org>  Fri, 14 Jan 2022 08:51:18 +0100
+  [ Debian Janitor ]
+  * New upstream release.
+
+ -- Yadd <yadd@debian.org>  Fri, 07 Jul 2023 23:25:51 -0000
 
 node-devtools-protocol (0.0.801017-1) unstable; urgency=medium
 
diff --git a/json/browser_protocol.json b/json/browser_protocol.json
index b0d24db..370b608 100644
--- a/json/browser_protocol.json
+++ b/json/browser_protocol.json
@@ -281,6 +281,12 @@
                             "optional": true,
                             "$ref": "AXValue"
                         },
+                        {
+                            "name": "chromeRole",
+                            "description": "This `Node`'s Chrome raw role.",
+                            "optional": true,
+                            "$ref": "AXValue"
+                        },
                         {
                             "name": "name",
                             "description": "The accessible name for this `Node`.",
@@ -372,7 +378,7 @@
                         },
                         {
                             "name": "fetchRelatives",
-                            "description": "Whether to fetch this nodes ancestors, siblings and children. Defaults to true.",
+                            "description": "Whether to fetch this node's ancestors, siblings and children. Defaults to true.",
                             "optional": true,
                             "type": "boolean"
                         }
@@ -399,13 +405,6 @@
                             "optional": true,
                             "type": "integer"
                         },
-                        {
-                            "name": "max_depth",
-                            "description": "Deprecated. This parameter has been renamed to `depth`. If depth is not provided, max_depth will be used.",
-                            "deprecated": true,
-                            "optional": true,
-                            "type": "integer"
-                        },
                         {
                             "name": "frameId",
                             "description": "The frame for whose document the AX tree should be retrieved.\nIf omited, the root frame is used.",
@@ -984,7 +983,7 @@
                     ]
                 },
                 {
-                    "id": "SameSiteCookieExclusionReason",
+                    "id": "CookieExclusionReason",
                     "type": "string",
                     "enum": [
                         "ExcludeSameSiteUnspecifiedTreatedAsLax",
@@ -992,11 +991,13 @@
                         "ExcludeSameSiteLax",
                         "ExcludeSameSiteStrict",
                         "ExcludeInvalidSameParty",
-                        "ExcludeSamePartyCrossPartyContext"
+                        "ExcludeSamePartyCrossPartyContext",
+                        "ExcludeDomainNonASCII",
+                        "ExcludeThirdPartyCookieBlockedInFirstPartySet"
                     ]
                 },
                 {
-                    "id": "SameSiteCookieWarningReason",
+                    "id": "CookieWarningReason",
                     "type": "string",
                     "enum": [
                         "WarnSameSiteUnspecifiedCrossSiteContext",
@@ -1006,11 +1007,13 @@
                         "WarnSameSiteStrictCrossDowngradeStrict",
                         "WarnSameSiteStrictCrossDowngradeLax",
                         "WarnSameSiteLaxCrossDowngradeStrict",
-                        "WarnSameSiteLaxCrossDowngradeLax"
+                        "WarnSameSiteLaxCrossDowngradeLax",
+                        "WarnAttributeValueExceedsMaxSize",
+                        "WarnDomainNonASCII"
                     ]
                 },
                 {
-                    "id": "SameSiteCookieOperation",
+                    "id": "CookieOperation",
                     "type": "string",
                     "enum": [
                         "SetCookie",
@@ -1018,7 +1021,7 @@
                     ]
                 },
                 {
-                    "id": "SameSiteCookieIssueDetails",
+                    "id": "CookieIssueDetails",
                     "description": "This information is currently necessary, as the front-end has a difficult\ntime finding a specific cookie. With this, we can convey specific error\ninformation without the cookie.",
                     "type": "object",
                     "properties": [
@@ -1037,20 +1040,20 @@
                             "name": "cookieWarningReasons",
                             "type": "array",
                             "items": {
-                                "$ref": "SameSiteCookieWarningReason"
+                                "$ref": "CookieWarningReason"
                             }
                         },
                         {
                             "name": "cookieExclusionReasons",
                             "type": "array",
                             "items": {
-                                "$ref": "SameSiteCookieExclusionReason"
+                                "$ref": "CookieExclusionReason"
                             }
                         },
                         {
                             "name": "operation",
                             "description": "Optionally identifies the site-for-cookies and the cookie url, which\nmay be used by the front-end as additional context.",
-                            "$ref": "SameSiteCookieOperation"
+                            "$ref": "CookieOperation"
                         },
                         {
                             "name": "siteForCookies",
@@ -1082,6 +1085,7 @@
                     "id": "MixedContentResourceType",
                     "type": "string",
                     "enum": [
+                        "AttributionSrc",
                         "Audio",
                         "Beacon",
                         "CSPReport",
@@ -1326,47 +1330,6 @@
                         }
                     ]
                 },
-                {
-                    "id": "TwaQualityEnforcementViolationType",
-                    "type": "string",
-                    "enum": [
-                        "kHttpError",
-                        "kUnavailableOffline",
-                        "kDigitalAssetLinks"
-                    ]
-                },
-                {
-                    "id": "TrustedWebActivityIssueDetails",
-                    "type": "object",
-                    "properties": [
-                        {
-                            "name": "url",
-                            "description": "The url that triggers the violation.",
-                            "type": "string"
-                        },
-                        {
-                            "name": "violationType",
-                            "$ref": "TwaQualityEnforcementViolationType"
-                        },
-                        {
-                            "name": "httpStatusCode",
-                            "optional": true,
-                            "type": "integer"
-                        },
-                        {
-                            "name": "packageName",
-                            "description": "The package name of the Trusted Web Activity client app. This field is\nonly used when violation type is kDigitalAssetLinks.",
-                            "optional": true,
-                            "type": "string"
-                        },
-                        {
-                            "name": "signature",
-                            "description": "The signature of the Trusted Web Activity client app. This field is only\nused when violation type is kDigitalAssetLinks.",
-                            "optional": true,
-                            "type": "string"
-                        }
-                    ]
-                },
                 {
                     "id": "LowTextContrastIssueDetails",
                     "type": "object",
@@ -1445,33 +1408,30 @@
                     "type": "string",
                     "enum": [
                         "PermissionPolicyDisabled",
-                        "InvalidAttributionSourceEventId",
-                        "InvalidAttributionData",
-                        "AttributionSourceUntrustworthyOrigin",
-                        "AttributionUntrustworthyOrigin",
-                        "AttributionTriggerDataTooLarge",
-                        "AttributionEventSourceTriggerDataTooLarge",
-                        "InvalidAttributionSourceExpiry",
-                        "InvalidAttributionSourcePriority",
-                        "InvalidEventSourceTriggerData",
-                        "InvalidTriggerPriority",
-                        "InvalidTriggerDedupKey"
+                        "UntrustworthyReportingOrigin",
+                        "InsecureContext",
+                        "InvalidHeader",
+                        "InvalidRegisterTriggerHeader",
+                        "SourceAndTriggerHeaders",
+                        "SourceIgnored",
+                        "TriggerIgnored",
+                        "OsSourceIgnored",
+                        "OsTriggerIgnored",
+                        "InvalidRegisterOsSourceHeader",
+                        "InvalidRegisterOsTriggerHeader",
+                        "WebAndOsHeaders",
+                        "NoWebOrOsSupport"
                     ]
                 },
                 {
                     "id": "AttributionReportingIssueDetails",
-                    "description": "Details for issues around \"Attribution Reporting API\" usage.\nExplainer: https://github.com/WICG/conversion-measurement-api",
+                    "description": "Details for issues around \"Attribution Reporting API\" usage.\nExplainer: https://github.com/WICG/attribution-reporting-api",
                     "type": "object",
                     "properties": [
                         {
                             "name": "violationType",
                             "$ref": "AttributionReportingIssueType"
                         },
-                        {
-                            "name": "frame",
-                            "optional": true,
-                            "$ref": "AffectedFrame"
-                        },
                         {
                             "name": "request",
                             "optional": true,
@@ -1519,6 +1479,7 @@
                 },
                 {
                     "id": "NavigatorUserAgentIssueDetails",
+                    "deprecated": true,
                     "type": "object",
                     "properties": [
                         {
@@ -1532,33 +1493,22 @@
                         }
                     ]
                 },
-                {
-                    "id": "WasmCrossOriginModuleSharingIssueDetails",
-                    "type": "object",
-                    "properties": [
-                        {
-                            "name": "wasmModuleUrl",
-                            "type": "string"
-                        },
-                        {
-                            "name": "sourceOrigin",
-                            "type": "string"
-                        },
-                        {
-                            "name": "targetOrigin",
-                            "type": "string"
-                        },
-                        {
-                            "name": "isWarning",
-                            "type": "boolean"
-                        }
-                    ]
-                },
                 {
                     "id": "GenericIssueErrorType",
                     "type": "string",
                     "enum": [
-                        "CrossOriginPortalPostMessageError"
+                        "CrossOriginPortalPostMessageError",
+                        "FormLabelForNameError",
+                        "FormDuplicateIdForInputError",
+                        "FormInputWithNoLabelError",
+                        "FormAutocompleteAttributeEmptyError",
+                        "FormEmptyIdAndNameAttributesForInputError",
+                        "FormAriaLabelledByToNonExistingId",
+                        "FormInputAssignedAutocompleteValueToIdOrNameAttributeError",
+                        "FormLabelHasNeitherForNorNestedInput",
+                        "FormLabelForMatchesNonExistingIdError",
+                        "FormInputHasWrongButWellIntendedAutocompleteValueError",
+                        "ResponseWasBlockedByORB"
                     ]
                 },
                 {
@@ -1575,12 +1525,27 @@
                             "name": "frameId",
                             "optional": true,
                             "$ref": "Page.FrameId"
+                        },
+                        {
+                            "name": "violatingNodeId",
+                            "optional": true,
+                            "$ref": "DOM.BackendNodeId"
+                        },
+                        {
+                            "name": "violatingNodeAttribute",
+                            "optional": true,
+                            "type": "string"
+                        },
+                        {
+                            "name": "request",
+                            "optional": true,
+                            "$ref": "AffectedRequest"
                         }
                     ]
                 },
                 {
                     "id": "DeprecationIssueDetails",
-                    "description": "This issue tracks information needed to print a deprecation message.\nThe formatting is inherited from the old console.log version, see more at:\nhttps://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/frame/deprecation.cc\nTODO(crbug.com/1264960): Re-work format to add i18n support per:\nhttps://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/public/devtools_protocol/README.md",
+                    "description": "This issue tracks information needed to print a deprecation message.\nhttps://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/frame/third_party/blink/renderer/core/frame/deprecation/README.md",
                     "type": "object",
                     "properties": [
                         {
@@ -1593,15 +1558,23 @@
                             "$ref": "SourceCodeLocation"
                         },
                         {
-                            "name": "message",
-                            "description": "The content of the deprecation issue (this won't be translated),\ne.g. \"window.inefficientLegacyStorageMethod will be removed in M97,\naround January 2022. Please use Web Storage or Indexed Database\ninstead. This standard was abandoned in January, 1970. See\nhttps://www.chromestatus.com/feature/5684870116278272 for more details.\"",
-                            "deprecated": true,
-                            "optional": true,
+                            "name": "type",
+                            "description": "One of the deprecation names from third_party/blink/renderer/core/frame/deprecation/deprecation.json5",
                             "type": "string"
-                        },
+                        }
+                    ]
+                },
+                {
+                    "id": "BounceTrackingIssueDetails",
+                    "description": "This issue warns about sites in the redirect chain of a finished navigation\nthat may be flagged as trackers and have their state cleared if they don't\nreceive a user interaction. Note that in this context 'site' means eTLD+1.\nFor example, if the URL `https://example.test:80/bounce` was in the\nredirect chain, the site reported would be `example.test`.",
+                    "type": "object",
+                    "properties": [
                         {
-                            "name": "deprecationType",
-                            "type": "string"
+                            "name": "trackingSites",
+                            "type": "array",
+                            "items": {
+                                "type": "string"
+                            }
                         }
                     ]
                 },
@@ -1613,6 +1586,84 @@
                         "MetaTagModifiedHTML"
                     ]
                 },
+                {
+                    "id": "FederatedAuthRequestIssueDetails",
+                    "type": "object",
+                    "properties": [
+                        {
+                            "name": "federatedAuthRequestIssueReason",
+                            "$ref": "FederatedAuthRequestIssueReason"
+                        }
+                    ]
+                },
+                {
+                    "id": "FederatedAuthRequestIssueReason",
+                    "description": "Represents the failure reason when a federated authentication reason fails.\nShould be updated alongside RequestIdTokenStatus in\nthird_party/blink/public/mojom/devtools/inspector_issue.mojom to include\nall cases except for success.",
+                    "type": "string",
+                    "enum": [
+                        "ShouldEmbargo",
+                        "TooManyRequests",
+                        "WellKnownHttpNotFound",
+                        "WellKnownNoResponse",
+                        "WellKnownInvalidResponse",
+                        "WellKnownListEmpty",
+                        "WellKnownInvalidContentType",
+                        "ConfigNotInWellKnown",
+                        "WellKnownTooBig",
+                        "ConfigHttpNotFound",
+                        "ConfigNoResponse",
+                        "ConfigInvalidResponse",
+                        "ConfigInvalidContentType",
+                        "ClientMetadataHttpNotFound",
+                        "ClientMetadataNoResponse",
+                        "ClientMetadataInvalidResponse",
+                        "ClientMetadataInvalidContentType",
+                        "DisabledInSettings",
+                        "ErrorFetchingSignin",
+                        "InvalidSigninResponse",
+                        "AccountsHttpNotFound",
+                        "AccountsNoResponse",
+                        "AccountsInvalidResponse",
+                        "AccountsListEmpty",
+                        "AccountsInvalidContentType",
+                        "IdTokenHttpNotFound",
+                        "IdTokenNoResponse",
+                        "IdTokenInvalidResponse",
+                        "IdTokenInvalidRequest",
+                        "IdTokenInvalidContentType",
+                        "ErrorIdToken",
+                        "Canceled",
+                        "RpPageNotVisible",
+                        "SilentMediationFailure",
+                        "ThirdPartyCookiesBlocked"
+                    ]
+                },
+                {
+                    "id": "FederatedAuthUserInfoRequestIssueDetails",
+                    "type": "object",
+                    "properties": [
+                        {
+                            "name": "federatedAuthUserInfoRequestIssueReason",
+                            "$ref": "FederatedAuthUserInfoRequestIssueReason"
+                        }
+                    ]
+                },
+                {
+                    "id": "FederatedAuthUserInfoRequestIssueReason",
+                    "description": "Represents the failure reason when a getUserInfo() call fails.\nShould be updated alongside FederatedAuthUserInfoRequestResult in\nthird_party/blink/public/mojom/devtools/inspector_issue.mojom.",
+                    "type": "string",
+                    "enum": [
+                        "NotSameOrigin",
+                        "NotIframe",
+                        "NotPotentiallyTrustworthy",
+                        "NoApiPermission",
+                        "NotSignedInWithIdp",
+                        "NoAccountSharingPermission",
+                        "InvalidConfigOrWellKnown",
+                        "InvalidAccountsResponse",
+                        "NoReturningUserFromFetchedAccounts"
+                    ]
+                },
                 {
                     "id": "ClientHintIssueDetails",
                     "description": "This issue tracks client hints related issues. It's used to deprecate old\nfeatures, encourage the use of new ones, and provide general guidance.",
@@ -1628,27 +1679,81 @@
                         }
                     ]
                 },
+                {
+                    "id": "FailedRequestInfo",
+                    "type": "object",
+                    "properties": [
+                        {
+                            "name": "url",
+                            "description": "The URL that failed to load.",
+                            "type": "string"
+                        },
+                        {
+                            "name": "failureMessage",
+                            "description": "The failure message for the failed request.",
+                            "type": "string"
+                        },
+                        {
+                            "name": "requestId",
+                            "optional": true,
+                            "$ref": "Network.RequestId"
+                        }
+                    ]
+                },
+                {
+                    "id": "StyleSheetLoadingIssueReason",
+                    "type": "string",
+                    "enum": [
+                        "LateImportRule",
+                        "RequestFailed"
+                    ]
+                },
+                {
+                    "id": "StylesheetLoadingIssueDetails",
+                    "description": "This issue warns when a referenced stylesheet couldn't be loaded.",
+                    "type": "object",
+                    "properties": [
+                        {
+                            "name": "sourceCodeLocation",
+                            "description": "Source code position that referenced the failing stylesheet.",
+                            "$ref": "SourceCodeLocation"
+                        },
+                        {
+                            "name": "styleSheetLoadingIssueReason",
+                            "description": "Reason why the stylesheet couldn't be loaded.",
+                            "$ref": "StyleSheetLoadingIssueReason"
+                        },
+                        {
+                            "name": "failedRequestInfo",
+                            "description": "Contains additional info when the failure was due to a request.",
+                            "optional": true,
+                            "$ref": "FailedRequestInfo"
+                        }
+                    ]
+                },
                 {
                     "id": "InspectorIssueCode",
                     "description": "A unique identifier for the type of issue. Each type may use one of the\noptional fields in InspectorIssueDetails to convey more specific\ninformation about the kind of issue.",
                     "type": "string",
                     "enum": [
-                        "SameSiteCookieIssue",
+                        "CookieIssue",
                         "MixedContentIssue",
                         "BlockedByResponseIssue",
                         "HeavyAdIssue",
                         "ContentSecurityPolicyIssue",
                         "SharedArrayBufferIssue",
-                        "TrustedWebActivityIssue",
                         "LowTextContrastIssue",
                         "CorsIssue",
                         "AttributionReportingIssue",
                         "QuirksModeIssue",
                         "NavigatorUserAgentIssue",
-                        "WasmCrossOriginModuleSharingIssue",
                         "GenericIssue",
                         "DeprecationIssue",
-                        "ClientHintIssue"
+                        "ClientHintIssue",
+                        "FederatedAuthRequestIssue",
+                        "BounceTrackingIssue",
+                        "StylesheetLoadingIssue",
+                        "FederatedAuthUserInfoRequestIssue"
                     ]
                 },
                 {
@@ -1657,9 +1762,9 @@
                     "type": "object",
                     "properties": [
                         {
-                            "name": "sameSiteCookieIssueDetails",
+                            "name": "cookieIssueDetails",
                             "optional": true,
-                            "$ref": "SameSiteCookieIssueDetails"
+                            "$ref": "CookieIssueDetails"
                         },
                         {
                             "name": "mixedContentIssueDetails",
@@ -1686,11 +1791,6 @@
                             "optional": true,
                             "$ref": "SharedArrayBufferIssueDetails"
                         },
-                        {
-                            "name": "twaQualityEnforcementDetails",
-                            "optional": true,
-                            "$ref": "TrustedWebActivityIssueDetails"
-                        },
                         {
                             "name": "lowTextContrastIssueDetails",
                             "optional": true,
@@ -1713,14 +1813,10 @@
                         },
                         {
                             "name": "navigatorUserAgentIssueDetails",
+                            "deprecated": true,
                             "optional": true,
                             "$ref": "NavigatorUserAgentIssueDetails"
                         },
-                        {
-                            "name": "wasmCrossOriginModuleSharingIssue",
-                            "optional": true,
-                            "$ref": "WasmCrossOriginModuleSharingIssueDetails"
-                        },
                         {
                             "name": "genericIssueDetails",
                             "optional": true,
@@ -1735,6 +1831,26 @@
                             "name": "clientHintIssueDetails",
                             "optional": true,
                             "$ref": "ClientHintIssueDetails"
+                        },
+                        {
+                            "name": "federatedAuthRequestIssueDetails",
+                            "optional": true,
+                            "$ref": "FederatedAuthRequestIssueDetails"
+                        },
+                        {
+                            "name": "bounceTrackingIssueDetails",
+                            "optional": true,
+                            "$ref": "BounceTrackingIssueDetails"
+                        },
+                        {
+                            "name": "stylesheetLoadingIssueDetails",
+                            "optional": true,
+                            "$ref": "StylesheetLoadingIssueDetails"
+                        },
+                        {
+                            "name": "federatedAuthUserInfoRequestIssueDetails",
+                            "optional": true,
+                            "$ref": "FederatedAuthUserInfoRequestIssueDetails"
                         }
                     ]
                 },
@@ -1836,6 +1952,19 @@
                             "type": "boolean"
                         }
                     ]
+                },
+                {
+                    "name": "checkFormsIssues",
+                    "description": "Runs the form issues check for the target page. Found issues are reported\nusing Audits.issueAdded event.",
+                    "returns": [
+                        {
+                            "name": "formIssues",
+                            "type": "array",
+                            "items": {
+                                "$ref": "GenericIssueDetails"
+                            }
+                        }
+                    ]
                 }
             ],
             "events": [
@@ -1850,6 +1979,111 @@
                 }
             ]
         },
+        {
+            "domain": "Autofill",
+            "description": "Defines commands and events for Autofill.",
+            "experimental": true,
+            "types": [
+                {
+                    "id": "CreditCard",
+                    "type": "object",
+                    "properties": [
+                        {
+                            "name": "number",
+                            "description": "16-digit credit card number.",
+                            "type": "string"
+                        },
+                        {
+                            "name": "name",
+                            "description": "Name of the credit card owner.",
+                            "type": "string"
+                        },
+                        {
+                            "name": "expiryMonth",
+                            "description": "2-digit expiry month.",
+                            "type": "string"
+                        },
+                        {
+                            "name": "expiryYear",
+                            "description": "4-digit expiry year.",
+                            "type": "string"
+                        },
+                        {
+                            "name": "cvc",
+                            "description": "3-digit card verification code.",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "id": "AddressField",
+                    "type": "object",
+                    "properties": [
+                        {
+                            "name": "name",
+                            "description": "address field name, for example GIVEN_NAME.",
+                            "type": "string"
+                        },
+                        {
+                            "name": "value",
+                            "description": "address field name, for example Jon Doe.",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "id": "Address",
+                    "type": "object",
+                    "properties": [
+                        {
+                            "name": "fields",
+                            "description": "fields and values defining a test address.",
+                            "type": "array",
+                            "items": {
+                                "$ref": "AddressField"
+                            }
+                        }
+                    ]
+                }
+            ],
+            "commands": [
+                {
+                    "name": "trigger",
+                    "description": "Trigger autofill on a form identified by the fieldId.\nIf the field and related form cannot be autofilled, returns an error.",
+                    "parameters": [
+                        {
+                            "name": "fieldId",
+                            "description": "Identifies a field that serves as an anchor for autofill.",
+                            "$ref": "DOM.BackendNodeId"
+                        },
+                        {
+                            "name": "frameId",
+                            "description": "Identifies the frame that field belongs to.",
+                            "optional": true,
+                            "$ref": "Page.FrameId"
+                        },
+                        {
+                            "name": "card",
+                            "description": "Credit card information to fill out the form. Credit card data is not saved.",
+                            "$ref": "CreditCard"
+                        }
+                    ]
+                },
+                {
+                    "name": "setAddresses",
+                    "description": "Set addresses so that developers can verify their forms implementation.",
+                    "parameters": [
+                        {
+                            "name": "addresses",
+                            "type": "array",
+                            "items": {
+                                "$ref": "Address"
+                            }
+                        }
+                    ]
+                }
+            ]
+        },
         {
             "domain": "BackgroundService",
             "description": "Defines events for background web platform features.",
@@ -1924,7 +2158,12 @@
                             "items": {
                                 "$ref": "EventMetadata"
                             }
-                        }
+                        },
+                        {
+                            "name": "storageKey",
+                            "description": "Storage key this event belongs to.",
+                            "type": "string"
+                        }
                     ]
                 }
             ],
@@ -2080,6 +2319,8 @@
                         "durableStorage",
                         "flash",
                         "geolocation",
+                        "idleDetection",
+                        "localFonts",
                         "midi",
                         "midiSysex",
                         "nfc",
@@ -2088,11 +2329,13 @@
                         "periodicBackgroundSync",
                         "protectedMediaIdentifier",
                         "sensors",
+                        "storageAccess",
+                        "topLevelStorageAccess",
                         "videoCapture",
                         "videoCapturePanTiltZoom",
-                        "idleDetection",
                         "wakeLockScreen",
-                        "wakeLockSystem"
+                        "wakeLockSystem",
+                        "windowManagement"
                     ]
                 },
                 {
@@ -2403,7 +2646,7 @@
                         },
                         {
                             "name": "delta",
-                            "description": "If true, retrieve delta since last call.",
+                            "description": "If true, retrieve delta since last delta call.",
                             "optional": true,
                             "type": "boolean"
                         }
@@ -2431,7 +2674,7 @@
                         },
                         {
                             "name": "delta",
-                            "description": "If true, retrieve delta since last call.",
+                            "description": "If true, retrieve delta since last delta call.",
                             "optional": true,
                             "type": "boolean"
                         }
@@ -2533,6 +2776,16 @@
                             "$ref": "BrowserCommandId"
                         }
                     ]
+                },
+                {
+                    "name": "addPrivacySandboxEnrollmentOverride",
+                    "description": "Allows a site to use privacy sandbox features that require enrollment\nwithout the site actually being enrolled. Only supported on page targets.",
+                    "parameters": [
+                        {
+                            "name": "url",
+                            "type": "string"
+                        }
+                    ]
                 }
             ],
             "events": [
@@ -2631,6 +2884,12 @@
                             "description": "Pseudo element type.",
                             "$ref": "DOM.PseudoType"
                         },
+                        {
+                            "name": "pseudoIdentifier",
+                            "description": "Pseudo element custom ident.",
+                            "optional": true,
+                            "type": "string"
+                        },
                         {
                             "name": "matches",
                             "description": "Matches of CSS rules applicable to the pseudo style.",
@@ -2662,6 +2921,21 @@
                         }
                     ]
                 },
+                {
+                    "id": "InheritedPseudoElementMatches",
+                    "description": "Inherited pseudo element matches from pseudos of an ancestor node.",
+                    "type": "object",
+                    "properties": [
+                        {
+                            "name": "pseudoElements",
+                            "description": "Matches of pseudo styles from the pseudos of an ancestor node.",
+                            "type": "array",
+                            "items": {
+                                "$ref": "PseudoElementMatches"
+                            }
+                        }
+                    ]
+                },
                 {
                     "id": "RuleMatch",
                     "description": "Match data for a CSS rule.",
@@ -2697,6 +2971,36 @@
                             "description": "Value range in the underlying resource (if available).",
                             "optional": true,
                             "$ref": "SourceRange"
+                        },
+                        {
+                            "name": "specificity",
+                            "description": "Specificity of the selector.",
+                            "experimental": true,
+                            "optional": true,
+                            "$ref": "Specificity"
+                        }
+                    ]
+                },
+                {
+                    "id": "Specificity",
+                    "description": "Specificity:\nhttps://drafts.csswg.org/selectors/#specificity-rules",
+                    "experimental": true,
+                    "type": "object",
+                    "properties": [
+                        {
+                            "name": "a",
+                            "description": "The a component, which represents the number of ID selectors.",
+                            "type": "integer"
+                        },
+                        {
+                            "name": "b",
+                            "description": "The b component, which represents the number of class selectors, attributes selectors, and\npseudo-classes.",
+                            "type": "integer"
+                        },
+                        {
+                            "name": "c",
+                            "description": "The c component, which represents the number of type selectors and pseudo-elements.",
+                            "type": "integer"
                         }
                     ]
                 },
@@ -2812,6 +3116,13 @@
                             "name": "endColumn",
                             "description": "Column offset of the end of the stylesheet within the resource (zero based).",
                             "type": "number"
+                        },
+                        {
+                            "name": "loadingFailed",
+                            "description": "If the style sheet was loaded from a network resource, this indicates when the resource failed to load",
+                            "experimental": true,
+                            "optional": true,
+                            "type": "boolean"
                         }
                     ]
                 },
@@ -2831,6 +3142,16 @@
                             "description": "Rule selector data.",
                             "$ref": "SelectorList"
                         },
+                        {
+                            "name": "nestingSelectors",
+                            "description": "Array of selectors from ancestor style rules, sorted by distance from the current rule.",
+                            "experimental": true,
+                            "optional": true,
+                            "type": "array",
+                            "items": {
+                                "type": "string"
+                            }
+                        },
                         {
                             "name": "origin",
                             "description": "Parent stylesheet's origin.",
@@ -2859,9 +3180,63 @@
                             "items": {
                                 "$ref": "CSSContainerQuery"
                             }
+                        },
+                        {
+                            "name": "supports",
+                            "description": "@supports CSS at-rule array.\nThe array enumerates @supports at-rules starting with the innermost one, going outwards.",
+                            "experimental": true,
+                            "optional": true,
+                            "type": "array",
+                            "items": {
+                                "$ref": "CSSSupports"
+                            }
+                        },
+                        {
+                            "name": "layers",
+                            "description": "Cascade layer array. Contains the layer hierarchy that this rule belongs to starting\nwith the innermost layer and going outwards.",
+                            "experimental": true,
+                            "optional": true,
+                            "type": "array",
+                            "items": {
+                                "$ref": "CSSLayer"
+                            }
+                        },
+                        {
+                            "name": "scopes",
+                            "description": "@scope CSS at-rule array.\nThe array enumerates @scope at-rules starting with the innermost one, going outwards.",
+                            "experimental": true,
+                            "optional": true,
+                            "type": "array",
+                            "items": {
+                                "$ref": "CSSScope"
+                            }
+                        },
+                        {
+                            "name": "ruleTypes",
+                            "description": "The array keeps the types of ancestor CSSRules from the innermost going outwards.",
+                            "experimental": true,
+                            "optional": true,
+                            "type": "array",
+                            "items": {
+                                "$ref": "CSSRuleType"
+                            }
                         }
                     ]
                 },
+                {
+                    "id": "CSSRuleType",
+                    "description": "Enum indicating the type of a CSS rule, used to represent the order of a style rule's ancestors.\nThis list only contains rule types that are collected during the ancestor rule collection.",
+                    "experimental": true,
+                    "type": "string",
+                    "enum": [
+                        "MediaRule",
+                        "SupportsRule",
+                        "ContainerRule",
+                        "LayerRule",
+                        "ScopeRule",
+                        "StyleRule"
+                    ]
+                },
                 {
                     "id": "RuleUsage",
                     "description": "CSS coverage information.",
@@ -3045,6 +3420,16 @@
                             "description": "The entire property range in the enclosing style declaration (if available).",
                             "optional": true,
                             "$ref": "SourceRange"
+                        },
+                        {
+                            "name": "longhandProperties",
+                            "description": "Parsed longhand components of this property if it is a shorthand.\nThis field will be empty if the given property is not a shorthand.",
+                            "experimental": true,
+                            "optional": true,
+                            "type": "array",
+                            "items": {
+                                "$ref": "CSSProperty"
+                            }
                         }
                     ]
                 },
@@ -3180,6 +3565,125 @@
                             "description": "Optional name for the container.",
                             "optional": true,
                             "type": "string"
+                        },
+                        {
+                            "name": "physicalAxes",
+                            "description": "Optional physical axes queried for the container.",
+                            "optional": true,
+                            "$ref": "DOM.PhysicalAxes"
+                        },
+                        {
+                            "name": "logicalAxes",
+                            "description": "Optional logical axes queried for the container.",
+                            "optional": true,
+                            "$ref": "DOM.LogicalAxes"
+                        }
+                    ]
+                },
+                {
+                    "id": "CSSSupports",
+                    "description": "CSS Supports at-rule descriptor.",
+                    "experimental": true,
+                    "type": "object",
+                    "properties": [
+                        {
+                            "name": "text",
+                            "description": "Supports rule text.",
+                            "type": "string"
+                        },
+                        {
+                            "name": "active",
+                            "description": "Whether the supports condition is satisfied.",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "range",
+                            "description": "The associated rule header range in the enclosing stylesheet (if\navailable).",
+                            "optional": true,
+                            "$ref": "SourceRange"
+                        },
+                        {
+                            "name": "styleSheetId",
+                            "description": "Identifier of the stylesheet containing this object (if exists).",
+                            "optional": true,
+                            "$ref": "StyleSheetId"
+                        }
+                    ]
+                },
+                {
+                    "id": "CSSScope",
+                    "description": "CSS Scope at-rule descriptor.",
+                    "experimental": true,
+                    "type": "object",
+                    "properties": [
+                        {
+                            "name": "text",
+                            "description": "Scope rule text.",
+                            "type": "string"
+                        },
+                        {
+                            "name": "range",
+                            "description": "The associated rule header range in the enclosing stylesheet (if\navailable).",
+                            "optional": true,
+                            "$ref": "SourceRange"
+                        },
+                        {
+                            "name": "styleSheetId",
+                            "description": "Identifier of the stylesheet containing this object (if exists).",
+                            "optional": true,
+                            "$ref": "StyleSheetId"
+                        }
+                    ]
+                },
+                {
+                    "id": "CSSLayer",
+                    "description": "CSS Layer at-rule descriptor.",
+                    "experimental": true,
+                    "type": "object",
+                    "properties": [
+                        {
+                            "name": "text",
+                            "description": "Layer name.",
+                            "type": "string"
+                        },
+                        {
+                            "name": "range",
+                            "description": "The associated rule header range in the enclosing stylesheet (if\navailable).",
+                            "optional": true,
+                            "$ref": "SourceRange"
+                        },
+                        {
+                            "name": "styleSheetId",
+                            "description": "Identifier of the stylesheet containing this object (if exists).",
+                            "optional": true,
+                            "$ref": "StyleSheetId"
+                        }
+                    ]
+                },
+                {
+                    "id": "CSSLayerData",
+                    "description": "CSS Layer data.",
+                    "experimental": true,
+                    "type": "object",
+                    "properties": [
+                        {
+                            "name": "name",
+                            "description": "Layer name.",
+                            "type": "string"
+                        },
+                        {
+                            "name": "subLayers",
+                            "description": "Direct sub-layers",
+                            "optional": true,
+                            "type": "array",
+                            "items": {
+                                "$ref": "CSSLayerData"
+                            }
+                        },
+                        {
+                            "name": "order",
+                            "description": "Layer order. The order determines the order of the layer in the cascade order.\nA higher number has higher priority in the cascade order.",
+                            "type": "number"
                         }
                     ]
                 },
@@ -3267,6 +3771,11 @@
                             "description": "The font-stretch.",
                             "type": "string"
                         },
+                        {
+                            "name": "fontDisplay",
+                            "description": "The font-display.",
+                            "type": "string"
+                        },
                         {
                             "name": "unicodeRange",
                             "description": "The unicode-range.",
@@ -3293,6 +3802,48 @@
                         }
                     ]
                 },
+                {
+                    "id": "CSSTryRule",
+                    "description": "CSS try rule representation.",
+                    "type": "object",
+                    "properties": [
+                        {
+                            "name": "styleSheetId",
+                            "description": "The css style sheet identifier (absent for user agent stylesheet and user-specified\nstylesheet rules) this rule came from.",
+                            "optional": true,
+                            "$ref": "StyleSheetId"
+                        },
+                        {
+                            "name": "origin",
+                            "description": "Parent stylesheet's origin.",
+                            "$ref": "StyleSheetOrigin"
+                        },
+                        {
+                            "name": "style",
+                            "description": "Associated style declaration.",
+                            "$ref": "CSSStyle"
+                        }
+                    ]
+                },
+                {
+                    "id": "CSSPositionFallbackRule",
+                    "description": "CSS position-fallback rule representation.",
+                    "type": "object",
+                    "properties": [
+                        {
+                            "name": "name",
+                            "$ref": "Value"
+                        },
+                        {
+                            "name": "tryRules",
+                            "description": "List of keyframes.",
+                            "type": "array",
+                            "items": {
+                                "$ref": "CSSTryRule"
+                            }
+                        }
+                    ]
+                },
                 {
                     "id": "CSSKeyframesRule",
                     "description": "CSS keyframes rule representation.",
@@ -3584,6 +4135,15 @@
                                 "$ref": "InheritedStyleEntry"
                             }
                         },
+                        {
+                            "name": "inheritedPseudoElements",
+                            "description": "A chain of inherited pseudo element styles (from the immediate node parent up to the DOM tree root).",
+                            "optional": true,
+                            "type": "array",
+                            "items": {
+                                "$ref": "InheritedPseudoElementMatches"
+                            }
+                        },
                         {
                             "name": "cssKeyframesRules",
                             "description": "A list of CSS keyframed animations matching this node.",
@@ -3592,15 +4152,31 @@
                             "items": {
                                 "$ref": "CSSKeyframesRule"
                             }
-                        }
-                    ]
-                },
-                {
-                    "name": "getMediaQueries",
-                    "description": "Returns all media queries parsed by the rendering engine.",
-                    "returns": [
+                        },
                         {
-                            "name": "medias",
+                            "name": "cssPositionFallbackRules",
+                            "description": "A list of CSS position fallbacks matching this node.",
+                            "optional": true,
+                            "type": "array",
+                            "items": {
+                                "$ref": "CSSPositionFallbackRule"
+                            }
+                        },
+                        {
+                            "name": "parentLayoutNodeId",
+                            "description": "Id of the first parent element that does not have display: contents.",
+                            "experimental": true,
+                            "optional": true,
+                            "$ref": "DOM.NodeId"
+                        }
+                    ]
+                },
+                {
+                    "name": "getMediaQueries",
+                    "description": "Returns all media queries parsed by the rendering engine.",
+                    "returns": [
+                        {
+                            "name": "medias",
                             "type": "array",
                             "items": {
                                 "$ref": "CSSMedia"
@@ -3645,6 +4221,23 @@
                         }
                     ]
                 },
+                {
+                    "name": "getLayersForNode",
+                    "description": "Returns all layers parsed by the rendering engine for the tree scope of a node.\nGiven a DOM element identified by nodeId, getLayersForNode returns the root\nlayer for the nearest ancestor document or shadow root. The layer root contains\nthe full layer tree for the tree scope and their ordering.",
+                    "experimental": true,
+                    "parameters": [
+                        {
+                            "name": "nodeId",
+                            "$ref": "DOM.NodeId"
+                        }
+                    ],
+                    "returns": [
+                        {
+                            "name": "rootLayer",
+                            "$ref": "CSSLayerData"
+                        }
+                    ]
+                },
                 {
                     "name": "trackComputedStyleUpdates",
                     "description": "Starts tracking the given computed styles for updates. The specified array of properties\nreplaces the one previously specified. Pass empty array to disable tracking.\nUse takeComputedStyleUpdates to retrieve the list of nodes that had properties modified.\nThe changes to computed style properties are only tracked for nodes pushed to the front-end\nby the DOM agent. If no changes to the tracked properties occur after the node has been pushed\nto the front-end, no updates will be issued for the node.",
@@ -3666,7 +4259,7 @@
                     "returns": [
                         {
                             "name": "nodeIds",
-                            "description": "The list of node Ids that have their tracked computed styles updated",
+                            "description": "The list of node Ids that have their tracked computed styles updated.",
                             "type": "array",
                             "items": {
                                 "$ref": "DOM.NodeId"
@@ -3769,6 +4362,58 @@
                         }
                     ]
                 },
+                {
+                    "name": "setSupportsText",
+                    "description": "Modifies the expression of a supports at-rule.",
+                    "experimental": true,
+                    "parameters": [
+                        {
+                            "name": "styleSheetId",
+                            "$ref": "StyleSheetId"
+                        },
+                        {
+                            "name": "range",
+                            "$ref": "SourceRange"
+                        },
+                        {
+                            "name": "text",
+                            "type": "string"
+                        }
+                    ],
+                    "returns": [
+                        {
+                            "name": "supports",
+                            "description": "The resulting CSS Supports rule after modification.",
+                            "$ref": "CSSSupports"
+                        }
+                    ]
+                },
+                {
+                    "name": "setScopeText",
+                    "description": "Modifies the expression of a scope at-rule.",
+                    "experimental": true,
+                    "parameters": [
+                        {
+                            "name": "styleSheetId",
+                            "$ref": "StyleSheetId"
+                        },
+                        {
+                            "name": "range",
+                            "$ref": "SourceRange"
+                        },
+                        {
+                            "name": "text",
+                            "type": "string"
+                        }
+                    ],
+                    "returns": [
+                        {
+                            "name": "scope",
+                            "description": "The resulting CSS Scope rule after modification.",
+                            "$ref": "CSSScope"
+                        }
+                    ]
+                },
                 {
                     "name": "setRuleSelector",
                     "description": "Modifies the rule selector.",
@@ -3845,7 +4490,7 @@
                 },
                 {
                     "name": "stopRuleUsageTracking",
-                    "description": "Stop tracking rule usage and return the list of rules that were used since last call to\n`takeCoverageDelta` (or since start of coverage instrumentation)",
+                    "description": "Stop tracking rule usage and return the list of rules that were used since last call to\n`takeCoverageDelta` (or since start of coverage instrumentation).",
                     "returns": [
                         {
                             "name": "ruleUsage",
@@ -3858,7 +4503,7 @@
                 },
                 {
                     "name": "takeCoverageDelta",
-                    "description": "Obtain list of rules that became used since last call to this method (or since start of coverage\ninstrumentation)",
+                    "description": "Obtain list of rules that became used since last call to this method (or since start of coverage\ninstrumentation).",
                     "returns": [
                         {
                             "name": "coverage",
@@ -3890,7 +4535,7 @@
             "events": [
                 {
                     "name": "fontsUpdated",
-                    "description": "Fires whenever a web font is updated.  A non-empty font parameter indicates a successfully loaded\nweb font",
+                    "description": "Fires whenever a web font is updated.  A non-empty font parameter indicates a successfully loaded\nweb font.",
                     "parameters": [
                         {
                             "name": "font",
@@ -3941,6 +4586,9 @@
         {
             "domain": "CacheStorage",
             "experimental": true,
+            "dependencies": [
+                "Storage"
+            ],
             "types": [
                 {
                     "id": "CacheId",
@@ -4028,6 +4676,17 @@
                             "description": "Security origin of the cache.",
                             "type": "string"
                         },
+                        {
+                            "name": "storageKey",
+                            "description": "Storage key of the cache.",
+                            "type": "string"
+                        },
+                        {
+                            "name": "storageBucket",
+                            "description": "Storage bucket of the cache.",
+                            "optional": true,
+                            "$ref": "Storage.StorageBucket"
+                        },
                         {
                             "name": "cacheName",
                             "description": "The name of the cache.",
@@ -4096,8 +4755,21 @@
                     "parameters": [
                         {
                             "name": "securityOrigin",
-                            "description": "Security origin.",
+                            "description": "At least and at most one of securityOrigin, storageKey, storageBucket must be specified.\nSecurity origin.",
+                            "optional": true,
+                            "type": "string"
+                        },
+                        {
+                            "name": "storageKey",
+                            "description": "Storage key.",
+                            "optional": true,
                             "type": "string"
+                        },
+                        {
+                            "name": "storageBucket",
+                            "description": "Storage bucket. If not specified, it uses the default bucket.",
+                            "optional": true,
+                            "$ref": "Storage.StorageBucket"
                         }
                     ],
                     "returns": [
@@ -4360,10 +5032,11 @@
                         "scrollbar-corner",
                         "resizer",
                         "input-list-button",
-                        "transition",
-                        "transition-container",
-                        "transition-old-content",
-                        "transition-new-content"
+                        "view-transition",
+                        "view-transition-group",
+                        "view-transition-image-pair",
+                        "view-transition-old",
+                        "view-transition-new"
                     ]
                 },
                 {
@@ -4386,6 +5059,26 @@
                         "NoQuirksMode"
                     ]
                 },
+                {
+                    "id": "PhysicalAxes",
+                    "description": "ContainerSelector physical axes",
+                    "type": "string",
+                    "enum": [
+                        "Horizontal",
+                        "Vertical",
+                        "Both"
+                    ]
+                },
+                {
+                    "id": "LogicalAxes",
+                    "description": "ContainerSelector logical axes",
+                    "type": "string",
+                    "enum": [
+                        "Inline",
+                        "Block",
+                        "Both"
+                    ]
+                },
                 {
                     "id": "Node",
                     "description": "DOM interaction is implemented in terms of mirror objects that represent the actual DOM nodes.\nDOMNode is a base node mirror type.",
@@ -4505,6 +5198,12 @@
                             "optional": true,
                             "$ref": "PseudoType"
                         },
+                        {
+                            "name": "pseudoIdentifier",
+                            "description": "Pseudo element identifier for this node. Only present if there is a\nvalid pseudoType.",
+                            "optional": true,
+                            "type": "string"
+                        },
                         {
                             "name": "shadowRootType",
                             "description": "Shadow root type.",
@@ -4573,6 +5272,11 @@
                             "name": "compatibilityMode",
                             "optional": true,
                             "$ref": "CompatibilityMode"
+                        },
+                        {
+                            "name": "assignedSlot",
+                            "optional": true,
+                            "$ref": "BackendNode"
                         }
                     ]
                 },
@@ -4872,7 +5576,20 @@
                 },
                 {
                     "name": "enable",
-                    "description": "Enables DOM agent for the given page."
+                    "description": "Enables DOM agent for the given page.",
+                    "parameters": [
+                        {
+                            "name": "includeWhitespace",
+                            "description": "Whether to include whitespaces in the children array of returned Nodes.",
+                            "experimental": true,
+                            "optional": true,
+                            "type": "string",
+                            "enum": [
+                                "none",
+                                "all"
+                            ]
+                        }
+                    ]
                 },
                 {
                     "name": "focus",
@@ -4987,7 +5704,7 @@
                 },
                 {
                     "name": "getDocument",
-                    "description": "Returns the root DOM node (and optionally the subtree) to the caller.",
+                    "description": "Returns the root DOM node (and optionally the subtree) to the caller.\nImplicitly enables the DOM domain events for the current target.",
                     "parameters": [
                         {
                             "name": "depth",
@@ -5375,6 +6092,21 @@
                         }
                     ]
                 },
+                {
+                    "name": "getTopLayerElements",
+                    "description": "Returns NodeIds of current top layer elements.\nTop layer is rendered closest to the user within a viewport, therefore its elements always\nappear on top of all other content.",
+                    "experimental": true,
+                    "returns": [
+                        {
+                            "name": "nodeIds",
+                            "description": "NodeIds of top layer elements",
+                            "type": "array",
+                            "items": {
+                                "$ref": "NodeId"
+                            }
+                        }
+                    ]
+                },
                 {
                     "name": "redo",
                     "description": "Re-does the last undone action.",
@@ -5708,7 +6440,7 @@
                 },
                 {
                     "name": "getContainerForNode",
-                    "description": "Returns the container of the given node based on container query conditions.\nIf containerName is given, it will find the nearest container with a matching name;\notherwise it will find the nearest container regardless of its container name.",
+                    "description": "Returns the query container of the given node based on container query\nconditions: containerName, physical, and logical axes. If no axes are\nprovided, the style container is returned, which is the direct parent or the\nclosest element with a matching container-name.",
                     "experimental": true,
                     "parameters": [
                         {
@@ -5719,6 +6451,16 @@
                             "name": "containerName",
                             "optional": true,
                             "type": "string"
+                        },
+                        {
+                            "name": "physicalAxes",
+                            "optional": true,
+                            "$ref": "PhysicalAxes"
+                        },
+                        {
+                            "name": "logicalAxes",
+                            "optional": true,
+                            "$ref": "LogicalAxes"
                         }
                     ],
                     "returns": [
@@ -5834,7 +6576,7 @@
                         },
                         {
                             "name": "previousNodeId",
-                            "description": "If of the previous siblint.",
+                            "description": "Id of the previous sibling.",
                             "$ref": "NodeId"
                         },
                         {
@@ -5916,6 +6658,11 @@
                         }
                     ]
                 },
+                {
+                    "name": "topLayerElementsUpdated",
+                    "description": "Called when top layer elements are changed.",
+                    "experimental": true
+                },
                 {
                     "name": "pseudoElementRemoved",
                     "description": "Called when a pseudo element is removed from an element.",
@@ -6830,6 +7577,12 @@
                             "optional": true,
                             "$ref": "RareStringData"
                         },
+                        {
+                            "name": "pseudoIdentifier",
+                            "description": "Pseudo element identifier for this node. Only present if there is a\nvalid pseudoType.",
+                            "optional": true,
+                            "$ref": "RareStringData"
+                        },
                         {
                             "name": "isClickable",
                             "description": "Whether this DOM node responds to mouse clicks. This includes nodes that have had click\nevent listeners attached via JavaScript as well as anchor tags that naturally navigate when\nclicked.",
@@ -7123,6 +7876,10 @@
             "description": "Query and modify DOM storage.",
             "experimental": true,
             "types": [
+                {
+                    "id": "SerializedStorageKey",
+                    "type": "string"
+                },
                 {
                     "id": "StorageId",
                     "description": "DOM Storage identifier.",
@@ -7131,8 +7888,15 @@
                         {
                             "name": "securityOrigin",
                             "description": "Security origin for the storage.",
+                            "optional": true,
                             "type": "string"
                         },
+                        {
+                            "name": "storageKey",
+                            "description": "Represents a key by which DOM Storage keys its CachedStorageAreas",
+                            "optional": true,
+                            "$ref": "SerializedStorageKey"
+                        },
                         {
                             "name": "isLocalStorage",
                             "description": "Whether the storage is local storage (not session storage).",
@@ -7546,6 +8310,7 @@
                     "properties": [
                         {
                             "name": "brands",
+                            "description": "Brands appearing in Sec-CH-UA.",
                             "optional": true,
                             "type": "array",
                             "items": {
@@ -7554,6 +8319,7 @@
                         },
                         {
                             "name": "fullVersionList",
+                            "description": "Brands appearing in Sec-CH-UA-Full-Version-List.",
                             "optional": true,
                             "type": "array",
                             "items": {
@@ -7585,6 +8351,16 @@
                         {
                             "name": "mobile",
                             "type": "boolean"
+                        },
+                        {
+                            "name": "bitness",
+                            "optional": true,
+                            "type": "string"
+                        },
+                        {
+                            "name": "wow64",
+                            "optional": true,
+                            "type": "boolean"
                         }
                     ]
                 },
@@ -7595,7 +8371,6 @@
                     "type": "string",
                     "enum": [
                         "avif",
-                        "jxl",
                         "webp"
                     ]
                 }
@@ -7833,12 +8608,13 @@
                     "parameters": [
                         {
                             "name": "type",
-                            "description": "Vision deficiency to emulate.",
+                            "description": "Vision deficiency to emulate. Order: best-effort emulations come first, followed by any\nphysiologically accurate emulations for medically recognized color vision deficiencies.",
                             "type": "string",
                             "enum": [
                                 "none",
-                                "achromatopsia",
                                 "blurredVision",
+                                "reducedContrast",
+                                "achromatopsia",
                                 "deuteranopia",
                                 "protanopia",
                                 "tritanopia"
@@ -7966,12 +8742,6 @@
                             "optional": true,
                             "type": "integer"
                         },
-                        {
-                            "name": "waitForNavigation",
-                            "description": "If set the virtual time policy change should be deferred until any frame starts navigating.\nNote any previous deferred policy change is superseded.",
-                            "optional": true,
-                            "type": "boolean"
-                        },
                         {
                             "name": "initialVirtualTime",
                             "description": "If set, base::Time::Now will be overridden to initially return this value.",
@@ -8044,6 +8814,17 @@
                         }
                     ]
                 },
+                {
+                    "name": "setHardwareConcurrencyOverride",
+                    "experimental": true,
+                    "parameters": [
+                        {
+                            "name": "hardwareConcurrency",
+                            "description": "Hardware concurrency to report",
+                            "type": "integer"
+                        }
+                    ]
+                },
                 {
                     "name": "setUserAgentOverride",
                     "description": "Allows overriding user agent with the given string.",
@@ -8073,6 +8854,18 @@
                             "$ref": "UserAgentMetadata"
                         }
                     ]
+                },
+                {
+                    "name": "setAutomationOverride",
+                    "description": "Allows overriding the automation flag.",
+                    "experimental": true,
+                    "parameters": [
+                        {
+                            "name": "enabled",
+                            "description": "Whether the override should be enabled.",
+                            "type": "boolean"
+                        }
+                    ]
                 }
             ],
             "events": [
@@ -8104,14 +8897,21 @@
                             "type": "string",
                             "enum": [
                                 "jpeg",
-                                "png"
+                                "png",
+                                "webp"
                             ]
                         },
                         {
                             "name": "quality",
-                            "description": "Compression quality from range [0..100] (jpeg only).",
+                            "description": "Compression quality from range [0..100] (jpeg and webp only).",
                             "optional": true,
                             "type": "integer"
+                        },
+                        {
+                            "name": "optimizeForSpeed",
+                            "description": "Optimize image encoding for speed, not for resulting size (defaults to false)",
+                            "optional": true,
+                            "type": "boolean"
                         }
                     ]
                 }
@@ -8119,7 +8919,7 @@
             "commands": [
                 {
                     "name": "beginFrame",
-                    "description": "Sends a BeginFrame to the target and returns when the frame was completed. Optionally captures a\nscreenshot from the resulting frame. Requires that the target was created with enabled\nBeginFrameControl. Designed for use with --run-all-compositor-stages-before-draw, see also\nhttps://goo.gl/3zHXhB for more background.",
+                    "description": "Sends a BeginFrame to the target and returns when the frame was completed. Optionally captures a\nscreenshot from the resulting frame. Requires that the target was created with enabled\nBeginFrameControl. Designed for use with --run-all-compositor-stages-before-draw, see also\nhttps://goo.gle/chrome-headless-rendering for more background.",
                     "parameters": [
                         {
                             "name": "frameTimeTicks",
@@ -8162,25 +8962,13 @@
                 },
                 {
                     "name": "disable",
-                    "description": "Disables headless events for the target."
+                    "description": "Disables headless events for the target.",
+                    "deprecated": true
                 },
                 {
                     "name": "enable",
-                    "description": "Enables headless events for the target."
-                }
-            ],
-            "events": [
-                {
-                    "name": "needsBeginFramesChanged",
-                    "description": "Issued when the target starts or stops needing BeginFrames.\nDeprecated. Issue beginFrame unconditionally instead and use result from\nbeginFrame to detect whether the frames were suppressed.",
-                    "deprecated": true,
-                    "parameters": [
-                        {
-                            "name": "needsBeginFrames",
-                            "description": "True if BeginFrames are needed, false otherwise.",
-                            "type": "boolean"
-                        }
-                    ]
+                    "description": "Enables headless events for the target.",
+                    "deprecated": true
                 }
             ]
         },
@@ -8271,7 +9059,8 @@
             "domain": "IndexedDB",
             "experimental": true,
             "dependencies": [
-                "Runtime"
+                "Runtime",
+                "Storage"
             ],
             "types": [
                 {
@@ -8492,9 +9281,22 @@
                     "parameters": [
                         {
                             "name": "securityOrigin",
-                            "description": "Security origin.",
+                            "description": "At least and at most one of securityOrigin, storageKey, or storageBucket must be specified.\nSecurity origin.",
+                            "optional": true,
+                            "type": "string"
+                        },
+                        {
+                            "name": "storageKey",
+                            "description": "Storage key.",
+                            "optional": true,
                             "type": "string"
                         },
+                        {
+                            "name": "storageBucket",
+                            "description": "Storage bucket. If not specified, it uses the default bucket.",
+                            "optional": true,
+                            "$ref": "Storage.StorageBucket"
+                        },
                         {
                             "name": "databaseName",
                             "description": "Database name.",
@@ -8513,9 +9315,22 @@
                     "parameters": [
                         {
                             "name": "securityOrigin",
-                            "description": "Security origin.",
+                            "description": "At least and at most one of securityOrigin, storageKey, or storageBucket must be specified.\nSecurity origin.",
+                            "optional": true,
+                            "type": "string"
+                        },
+                        {
+                            "name": "storageKey",
+                            "description": "Storage key.",
+                            "optional": true,
                             "type": "string"
                         },
+                        {
+                            "name": "storageBucket",
+                            "description": "Storage bucket. If not specified, it uses the default bucket.",
+                            "optional": true,
+                            "$ref": "Storage.StorageBucket"
+                        },
                         {
                             "name": "databaseName",
                             "description": "Database name.",
@@ -8529,8 +9344,22 @@
                     "parameters": [
                         {
                             "name": "securityOrigin",
+                            "description": "At least and at most one of securityOrigin, storageKey, or storageBucket must be specified.\nSecurity origin.",
+                            "optional": true,
+                            "type": "string"
+                        },
+                        {
+                            "name": "storageKey",
+                            "description": "Storage key.",
+                            "optional": true,
                             "type": "string"
                         },
+                        {
+                            "name": "storageBucket",
+                            "description": "Storage bucket. If not specified, it uses the default bucket.",
+                            "optional": true,
+                            "$ref": "Storage.StorageBucket"
+                        },
                         {
                             "name": "databaseName",
                             "type": "string"
@@ -8560,9 +9389,22 @@
                     "parameters": [
                         {
                             "name": "securityOrigin",
-                            "description": "Security origin.",
+                            "description": "At least and at most one of securityOrigin, storageKey, or storageBucket must be specified.\nSecurity origin.",
+                            "optional": true,
+                            "type": "string"
+                        },
+                        {
+                            "name": "storageKey",
+                            "description": "Storage key.",
+                            "optional": true,
                             "type": "string"
                         },
+                        {
+                            "name": "storageBucket",
+                            "description": "Storage bucket. If not specified, it uses the default bucket.",
+                            "optional": true,
+                            "$ref": "Storage.StorageBucket"
+                        },
                         {
                             "name": "databaseName",
                             "description": "Database name.",
@@ -8613,13 +9455,26 @@
                 },
                 {
                     "name": "getMetadata",
-                    "description": "Gets metadata of an object store",
+                    "description": "Gets metadata of an object store.",
                     "parameters": [
                         {
                             "name": "securityOrigin",
-                            "description": "Security origin.",
+                            "description": "At least and at most one of securityOrigin, storageKey, or storageBucket must be specified.\nSecurity origin.",
+                            "optional": true,
+                            "type": "string"
+                        },
+                        {
+                            "name": "storageKey",
+                            "description": "Storage key.",
+                            "optional": true,
                             "type": "string"
                         },
+                        {
+                            "name": "storageBucket",
+                            "description": "Storage bucket. If not specified, it uses the default bucket.",
+                            "optional": true,
+                            "$ref": "Storage.StorageBucket"
+                        },
                         {
                             "name": "databaseName",
                             "description": "Database name.",
@@ -8650,9 +9505,22 @@
                     "parameters": [
                         {
                             "name": "securityOrigin",
-                            "description": "Security origin.",
+                            "description": "At least and at most one of securityOrigin, storageKey, or storageBucket must be specified.\nSecurity origin.",
+                            "optional": true,
+                            "type": "string"
+                        },
+                        {
+                            "name": "storageKey",
+                            "description": "Storage key.",
+                            "optional": true,
                             "type": "string"
                         },
+                        {
+                            "name": "storageBucket",
+                            "description": "Storage bucket. If not specified, it uses the default bucket.",
+                            "optional": true,
+                            "$ref": "Storage.StorageBucket"
+                        },
                         {
                             "name": "databaseName",
                             "description": "Database name.",
@@ -8673,8 +9541,21 @@
                     "parameters": [
                         {
                             "name": "securityOrigin",
-                            "description": "Security origin.",
+                            "description": "At least and at most one of securityOrigin, storageKey, or storageBucket must be specified.\nSecurity origin.",
+                            "optional": true,
                             "type": "string"
+                        },
+                        {
+                            "name": "storageKey",
+                            "description": "Storage key.",
+                            "optional": true,
+                            "type": "string"
+                        },
+                        {
+                            "name": "storageBucket",
+                            "description": "Storage bucket. If not specified, it uses the default bucket.",
+                            "optional": true,
+                            "$ref": "Storage.StorageBucket"
                         }
                     ],
                     "returns": [
@@ -8986,7 +9867,7 @@
                         },
                         {
                             "name": "commands",
-                            "description": "Editing commands to send with the key event (e.g., 'selectAll') (default: []).\nThese are related to but not equal the command names used in `document.execCommand` and NSStandardKeyBindingResponding.\nSee https://source.chromium.org/chromium/chromium/src/+/master:third_party/blink/renderer/core/editing/commands/editor_command_names.h for valid command names.",
+                            "description": "Editing commands to send with the key event (e.g., 'selectAll') (default: []).\nThese are related to but not equal the command names used in `document.execCommand` and NSStandardKeyBindingResponding.\nSee https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/editing/commands/editor_command_names.h for valid command names.",
                             "experimental": true,
                             "optional": true,
                             "type": "array",
@@ -9690,7 +10571,6 @@
                         {
                             "name": "compositingReasons",
                             "description": "A list of strings specifying reasons for the given layer to become composited.",
-                            "deprecated": true,
                             "type": "array",
                             "items": {
                                 "type": "string"
@@ -10279,6 +11159,7 @@
                         "TextTrack",
                         "XHR",
                         "Fetch",
+                        "Prefetch",
                         "EventSource",
                         "WebSocket",
                         "Manifest",
@@ -10484,6 +11365,12 @@
                             "experimental": true,
                             "type": "number"
                         },
+                        {
+                            "name": "receiveHeadersStart",
+                            "description": "Started receiving response headers.",
+                            "experimental": true,
+                            "type": "number"
+                        },
                         {
                             "name": "receiveHeadersEnd",
                             "description": "Finished receiving response headers.",
@@ -10735,6 +11622,17 @@
                             "name": "certificateTransparencyCompliance",
                             "description": "Whether the request complied with Certificate Transparency policy",
                             "$ref": "CertificateTransparencyCompliance"
+                        },
+                        {
+                            "name": "serverSignatureAlgorithm",
+                            "description": "The signature algorithm used by the server in the TLS server signature,\nrepresented as a TLS SignatureScheme code point. Omitted if not\napplicable or not known.",
+                            "optional": true,
+                            "type": "integer"
+                        },
+                        {
+                            "name": "encryptedClientHello",
+                            "description": "Whether the connection used Encrypted ClientHello",
+                            "type": "boolean"
                         }
                     ]
                 },
@@ -10801,7 +11699,11 @@
                         "InsecurePrivateNetwork",
                         "InvalidPrivateNetworkAccess",
                         "UnexpectedPrivateNetworkAccess",
-                        "NoCorsRedirectModeNotFollow"
+                        "NoCorsRedirectModeNotFollow",
+                        "PreflightMissingPrivateNetworkAccessId",
+                        "PreflightMissingPrivateNetworkAccessName",
+                        "PrivateNetworkAccessPermissionUnavailable",
+                        "PrivateNetworkAccessPermissionDenied"
                     ]
                 },
                 {
@@ -10836,12 +11738,12 @@
                     "type": "object",
                     "properties": [
                         {
-                            "name": "type",
+                            "name": "operation",
                             "$ref": "TrustTokenOperationType"
                         },
                         {
                             "name": "refreshPolicy",
-                            "description": "Only set for \"token-redemption\" type and determine whether\nto request a fresh SRR or use a still valid cached SRR.",
+                            "description": "Only set for \"token-redemption\" operation and determine whether\nto request a fresh SRR or use a still valid cached SRR.",
                             "type": "string",
                             "enum": [
                                 "UseCached",
@@ -10869,6 +11771,22 @@
                         "Signing"
                     ]
                 },
+                {
+                    "id": "AlternateProtocolUsage",
+                    "description": "The reason why Chrome uses a specific transport protocol for HTTP semantics.",
+                    "experimental": true,
+                    "type": "string",
+                    "enum": [
+                        "alternativeJobWonWithoutRace",
+                        "alternativeJobWonRace",
+                        "mainJobWonRace",
+                        "mappingMissing",
+                        "broken",
+                        "dnsAlpnH3JobWonWithoutRace",
+                        "dnsAlpnH3JobWonRace",
+                        "unspecifiedReason"
+                    ]
+                },
                 {
                     "id": "Response",
                     "description": "HTTP response data.",
@@ -10994,6 +11912,13 @@
                             "optional": true,
                             "type": "string"
                         },
+                        {
+                            "name": "alternateProtocolUsage",
+                            "description": "The reason why Chrome uses a specific transport protocol for HTTP semantics.",
+                            "experimental": true,
+                            "optional": true,
+                            "$ref": "AlternateProtocolUsage"
+                        },
                         {
                             "name": "securityState",
                             "description": "Security state of the request resource.",
@@ -11267,6 +12192,7 @@
                         "SameSiteUnspecifiedTreatedAsLax",
                         "SameSiteNoneInsecure",
                         "UserPreferences",
+                        "ThirdPartyBlockedInFirstPartySet",
                         "SyntaxError",
                         "SchemeNotSupported",
                         "OverwriteSecure",
@@ -11295,6 +12221,7 @@
                         "SameSiteUnspecifiedTreatedAsLax",
                         "SameSiteNoneInsecure",
                         "UserPreferences",
+                        "ThirdPartyBlockedInFirstPartySet",
                         "UnknownError",
                         "SchemefulSameSiteStrict",
                         "SchemefulSameSiteLax",
@@ -11784,8 +12711,10 @@
                     "enum": [
                         "SameOrigin",
                         "SameOriginAllowPopups",
+                        "RestrictProperties",
                         "UnsafeNone",
-                        "SameOriginPlusCoep"
+                        "SameOriginPlusCoep",
+                        "RestrictPropertiesPlusCoep"
                     ]
                 },
                 {
@@ -11848,6 +12777,34 @@
                         }
                     ]
                 },
+                {
+                    "id": "ContentSecurityPolicySource",
+                    "experimental": true,
+                    "type": "string",
+                    "enum": [
+                        "HTTP",
+                        "Meta"
+                    ]
+                },
+                {
+                    "id": "ContentSecurityPolicyStatus",
+                    "experimental": true,
+                    "type": "object",
+                    "properties": [
+                        {
+                            "name": "effectiveDirectives",
+                            "type": "string"
+                        },
+                        {
+                            "name": "isEnforced",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "source",
+                            "$ref": "ContentSecurityPolicySource"
+                        }
+                    ]
+                },
                 {
                     "id": "SecurityIsolationStatus",
                     "experimental": true,
@@ -11862,6 +12819,14 @@
                             "name": "coep",
                             "optional": true,
                             "$ref": "CrossOriginEmbedderPolicyStatus"
+                        },
+                        {
+                            "name": "csp",
+                            "optional": true,
+                            "type": "array",
+                            "items": {
+                                "$ref": "ContentSecurityPolicyStatus"
+                            }
                         }
                     ]
                 },
@@ -12218,7 +13183,8 @@
                 },
                 {
                     "name": "getAllCookies",
-                    "description": "Returns all browser cookies. Depending on the backend support, will return detailed cookie\ninformation in the `cookies` field.",
+                    "description": "Returns all browser cookies. Depending on the backend support, will return detailed cookie\ninformation in the `cookies` field.\nDeprecated. Use Storage.getCookies instead.",
+                    "deprecated": true,
                     "returns": [
                         {
                             "name": "cookies",
@@ -13301,6 +14267,12 @@
                             "description": "The client security state set for the request.",
                             "optional": true,
                             "$ref": "ClientSecurityState"
+                        },
+                        {
+                            "name": "siteHasCookieInOtherPartition",
+                            "description": "Whether the site has partitioned cookies stored in a partition different than the current one.",
+                            "optional": true,
+                            "type": "boolean"
                         }
                     ]
                 },
@@ -13342,6 +14314,18 @@
                             "description": "Raw response header text as it was received over the wire. The raw text may not always be\navailable, such as in the case of HTTP/2 or QUIC.",
                             "optional": true,
                             "type": "string"
+                        },
+                        {
+                            "name": "cookiePartitionKey",
+                            "description": "The cookie partition key that will be used to store partitioned cookies set in this response.\nOnly sent when partitioned cookies are enabled.",
+                            "optional": true,
+                            "type": "string"
+                        },
+                        {
+                            "name": "cookiePartitionKeyOpaque",
+                            "description": "True if partitioned cookies are enabled, but the partition key is not serializeable to string.",
+                            "optional": true,
+                            "type": "boolean"
                         }
                     ]
                 },
@@ -13357,10 +14341,12 @@
                             "enum": [
                                 "Ok",
                                 "InvalidArgument",
+                                "MissingIssuerKeys",
                                 "FailedPrecondition",
                                 "ResourceExhausted",
                                 "AlreadyExists",
                                 "Unavailable",
+                                "Unauthorized",
                                 "BadResponse",
                                 "InternalError",
                                 "UnknownError",
@@ -13938,6 +14924,7 @@
                     "enum": [
                         "rgb",
                         "hsl",
+                        "hwb",
                         "hex"
                     ]
                 },
@@ -14676,6 +15663,24 @@
                         }
                     ]
                 },
+                {
+                    "id": "AdScriptId",
+                    "description": "Identifies the bottom-most script which caused the frame to be labelled\nas an ad.",
+                    "experimental": true,
+                    "type": "object",
+                    "properties": [
+                        {
+                            "name": "scriptId",
+                            "description": "Script Id of the bottom-most script which caused the frame to be labelled\nas an ad.",
+                            "$ref": "Runtime.ScriptId"
+                        },
+                        {
+                            "name": "debuggerId",
+                            "description": "Id of adScriptId's debugger.",
+                            "$ref": "Runtime.UniqueDebuggerId"
+                        }
+                    ]
+                },
                 {
                     "id": "SecureContextType",
                     "description": "Indicates whether the frame is a secure context and why it is the case.",
@@ -14720,28 +15725,34 @@
                         "ambient-light-sensor",
                         "attribution-reporting",
                         "autoplay",
+                        "bluetooth",
+                        "browsing-topics",
                         "camera",
                         "ch-dpr",
                         "ch-device-memory",
                         "ch-downlink",
                         "ch-ect",
                         "ch-prefers-color-scheme",
+                        "ch-prefers-reduced-motion",
                         "ch-rtt",
+                        "ch-save-data",
                         "ch-ua",
                         "ch-ua-arch",
                         "ch-ua-bitness",
                         "ch-ua-platform",
                         "ch-ua-model",
                         "ch-ua-mobile",
+                        "ch-ua-form-factor",
                         "ch-ua-full-version",
                         "ch-ua-full-version-list",
                         "ch-ua-platform-version",
-                        "ch-ua-reduced",
+                        "ch-ua-wow64",
                         "ch-viewport-height",
                         "ch-viewport-width",
                         "ch-width",
                         "clipboard-read",
                         "clipboard-write",
+                        "compute-pressure",
                         "cross-origin-isolated",
                         "direct-sockets",
                         "display-capture",
@@ -14756,27 +15767,36 @@
                         "geolocation",
                         "gyroscope",
                         "hid",
+                        "identity-credentials-get",
                         "idle-detection",
                         "interest-cohort",
                         "join-ad-interest-group",
                         "keyboard-map",
+                        "local-fonts",
                         "magnetometer",
                         "microphone",
                         "midi",
                         "otp-credentials",
                         "payment",
                         "picture-in-picture",
+                        "private-aggregation",
+                        "private-state-token-issuance",
+                        "private-state-token-redemption",
                         "publickey-credentials-get",
                         "run-ad-auction",
                         "screen-wake-lock",
                         "serial",
                         "shared-autofill",
-                        "storage-access-api",
+                        "shared-storage",
+                        "shared-storage-select-url",
+                        "smart-card",
+                        "storage-access",
                         "sync-xhr",
-                        "trust-token-redemption",
+                        "unload",
                         "usb",
                         "vertical-scroll",
                         "web-share",
+                        "window-management",
                         "window-placement",
                         "xr-spatial-tracking"
                     ]
@@ -14788,7 +15808,9 @@
                     "type": "string",
                     "enum": [
                         "Header",
-                        "IframeAttribute"
+                        "IframeAttribute",
+                        "InFencedFrameTree",
+                        "InIsolatedApp"
                     ]
                 },
                 {
@@ -15433,13 +16455,31 @@
                             "type": "string"
                         },
                         {
-                            "name": "pictograph",
-                            "description": "The pictograph font-family.",
+                            "name": "math",
+                            "description": "The math font-family.",
                             "optional": true,
                             "type": "string"
                         }
                     ]
                 },
+                {
+                    "id": "ScriptFontFamilies",
+                    "description": "Font families collection for a script.",
+                    "experimental": true,
+                    "type": "object",
+                    "properties": [
+                        {
+                            "name": "script",
+                            "description": "Name of the script which these font families are defined for.",
+                            "type": "string"
+                        },
+                        {
+                            "name": "fontFamilies",
+                            "description": "Generic font families collection for the script.",
+                            "$ref": "FontFamilies"
+                        }
+                    ]
+                },
                 {
                     "id": "FontSizes",
                     "description": "Default font sizes.",
@@ -15559,6 +16599,18 @@
                         }
                     ]
                 },
+                {
+                    "id": "AutoResponseMode",
+                    "description": "Enum of possible auto-reponse for permisison / prompt dialogs.",
+                    "experimental": true,
+                    "type": "string",
+                    "enum": [
+                        "none",
+                        "autoAccept",
+                        "autoReject",
+                        "autoOptOut"
+                    ]
+                },
                 {
                     "id": "NavigationType",
                     "description": "The type of a frameNavigated event.",
@@ -15575,7 +16627,7 @@
                     "experimental": true,
                     "type": "string",
                     "enum": [
-                        "NotMainFrame",
+                        "NotPrimaryMainFrame",
                         "BackForwardCacheDisabled",
                         "RelatedActiveContentsExist",
                         "HTTPStatusNotOK",
@@ -15591,7 +16643,6 @@
                         "JavaScriptExecution",
                         "RendererProcessKilled",
                         "RendererProcessCrashed",
-                        "GrantedMediaStreamAccess",
                         "SchedulerTrackedFeatureUsed",
                         "ConflictingBrowsingInstance",
                         "CacheFlushed",
@@ -15618,7 +16669,6 @@
                         "ForegroundCacheLimit",
                         "BrowsingInstanceNotSwapped",
                         "BackForwardCacheDisabledForDelegate",
-                        "OptInUnloadHeaderNotPresent",
                         "UnloadHandlerExistsInMainFrame",
                         "UnloadHandlerExistsInSubFrame",
                         "ServiceWorkerUnregistration",
@@ -15628,6 +16678,10 @@
                         "NoResponseHead",
                         "Unknown",
                         "ActivationNavigationsDisallowedForBug1234857",
+                        "ErrorDocument",
+                        "FencedFramesEmbedder",
+                        "CookieDisabled",
+                        "HTTPAuthRequired",
                         "WebSocket",
                         "WebTransport",
                         "WebRTC",
@@ -15639,15 +16693,12 @@
                         "DocumentLoaded",
                         "DedicatedWorkerOrWorklet",
                         "OutstandingNetworkRequestOthers",
-                        "OutstandingIndexedDBTransaction",
-                        "RequestedNotificationsPermission",
                         "RequestedMIDIPermission",
                         "RequestedAudioCapturePermission",
                         "RequestedVideoCapturePermission",
                         "RequestedBackForwardCacheBlockedSensors",
                         "RequestedBackgroundWorkPermission",
                         "BroadcastChannel",
-                        "IndexedDBConnection",
                         "WebXR",
                         "SharedWorker",
                         "WebLocks",
@@ -15671,7 +16722,13 @@
                         "OutstandingNetworkRequestDirectSocket",
                         "InjectedJavascript",
                         "InjectedStyleSheet",
+                        "KeepaliveRequest",
+                        "IndexedDBEvent",
                         "Dummy",
+                        "JsNetworkRequestReceivedCacheControlNoStoreResource",
+                        "WebRTCSticky",
+                        "WebTransportSticky",
+                        "WebSocketSticky",
                         "ContentSecurityHandler",
                         "ContentWebAuthenticationAPI",
                         "ContentFileChooser",
@@ -15680,7 +16737,6 @@
                         "ContentMediaDevicesDispatcherHost",
                         "ContentWebBluetooth",
                         "ContentWebUSB",
-                        "ContentMediaSession",
                         "ContentMediaSessionService",
                         "ContentScreenReader",
                         "EmbedderPopupBlockerTabHelper",
@@ -15725,6 +16781,12 @@
                             "name": "reason",
                             "description": "Not restored reason",
                             "$ref": "BackForwardCacheNotRestoredReason"
+                        },
+                        {
+                            "name": "context",
+                            "description": "Context associated with the reason. The meaning of this context is\ndependent on the reason:\n- EmbedderExtensionSentMessageToCachedFrame: the extension ID.",
+                            "optional": true,
+                            "type": "string"
                         }
                     ]
                 },
@@ -15798,6 +16860,13 @@
                             "experimental": true,
                             "optional": true,
                             "type": "boolean"
+                        },
+                        {
+                            "name": "runImmediately",
+                            "description": "If true, runs the script immediately on existing execution contexts or worlds.\nDefault: false.",
+                            "experimental": true,
+                            "optional": true,
+                            "type": "boolean"
                         }
                     ],
                     "returns": [
@@ -15852,6 +16921,13 @@
                             "experimental": true,
                             "optional": true,
                             "type": "boolean"
+                        },
+                        {
+                            "name": "optimizeForSpeed",
+                            "description": "Optimize image encoding for speed, not for resulting size (defaults to false)",
+                            "experimental": true,
+                            "optional": true,
+                            "type": "boolean"
                         }
                     ],
                     "returns": [
@@ -16007,7 +17083,9 @@
                 },
                 {
                     "name": "getManifestIcons",
+                    "description": "Deprecated because it's not guaranteed that the returned icon is in fact the one used for PWA installation.",
                     "experimental": true,
+                    "deprecated": true,
                     "returns": [
                         {
                             "name": "primaryIcon",
@@ -16035,9 +17113,27 @@
                         }
                     ]
                 },
+                {
+                    "name": "getAdScriptId",
+                    "experimental": true,
+                    "parameters": [
+                        {
+                            "name": "frameId",
+                            "$ref": "FrameId"
+                        }
+                    ],
+                    "returns": [
+                        {
+                            "name": "adScriptId",
+                            "description": "Identifies the bottom-most script which caused the frame to be labelled\nas an ad. Only sent if frame is labelled as an ad and id is available.",
+                            "optional": true,
+                            "$ref": "AdScriptId"
+                        }
+                    ]
+                },
                 {
                     "name": "getCookies",
-                    "description": "Returns all browser cookies. Depending on the backend support, will return detailed cookie\ninformation in the `cookies` field.",
+                    "description": "Returns all browser cookies for the page and all of its subframes. Depending\non the backend support, will return detailed cookie information in the\n`cookies` field.",
                     "experimental": true,
                     "deprecated": true,
                     "redirect": "Network",
@@ -16069,19 +17165,19 @@
                     "returns": [
                         {
                             "name": "layoutViewport",
-                            "description": "Deprecated metrics relating to the layout viewport. Can be in DP or in CSS pixels depending on the `enable-use-zoom-for-dsf` flag. Use `cssLayoutViewport` instead.",
+                            "description": "Deprecated metrics relating to the layout viewport. Is in device pixels. Use `cssLayoutViewport` instead.",
                             "deprecated": true,
                             "$ref": "LayoutViewport"
                         },
                         {
                             "name": "visualViewport",
-                            "description": "Deprecated metrics relating to the visual viewport. Can be in DP or in CSS pixels depending on the `enable-use-zoom-for-dsf` flag. Use `cssVisualViewport` instead.",
+                            "description": "Deprecated metrics relating to the visual viewport. Is in device pixels. Use `cssVisualViewport` instead.",
                             "deprecated": true,
                             "$ref": "VisualViewport"
                         },
                         {
                             "name": "contentSize",
-                            "description": "Deprecated size of scrollable area. Can be in DP or in CSS pixels depending on the `enable-use-zoom-for-dsf` flag. Use `cssContentSize` instead.",
+                            "description": "Deprecated size of scrollable area. Is in DP. Use `cssContentSize` instead.",
                             "deprecated": true,
                             "$ref": "DOM.Rect"
                         },
@@ -16226,7 +17322,7 @@
                         },
                         {
                             "name": "loaderId",
-                            "description": "Loader identifier.",
+                            "description": "Loader identifier. This is omitted in case of same-document navigation,\nas the previously committed loaderId would not change.",
                             "optional": true,
                             "$ref": "Network.LoaderId"
                         },
@@ -16315,16 +17411,10 @@
                         },
                         {
                             "name": "pageRanges",
-                            "description": "Paper ranges to print, e.g., '1-5, 8, 11-13'. Defaults to the empty string, which means\nprint all pages.",
+                            "description": "Paper ranges to print, one based, e.g., '1-5, 8, 11-13'. Pages are\nprinted in the document order, not in the order specified, and no\nmore than once.\nDefaults to empty string, which implies the entire document is printed.\nThe page numbers are quietly capped to actual page count of the\ndocument, and ranges beyond the end of the document are ignored.\nIf this results in no pages to print, an error is reported.\nIt is an error to specify a range with start greater than end.",
                             "optional": true,
                             "type": "string"
                         },
-                        {
-                            "name": "ignoreInvalidPageRanges",
-                            "description": "Whether to silently ignore invalid but successfully parsed page ranges, such as '3-2'.\nDefaults to false.",
-                            "optional": true,
-                            "type": "boolean"
-                        },
                         {
                             "name": "headerTemplate",
                             "description": "HTML template for the print header. Should be valid HTML markup with following\nclasses used to inject printing values into them:\n- `date`: formatted print date\n- `title`: document title\n- `url`: document location\n- `pageNumber`: current page number\n- `totalPages`: total pages in the document\n\nFor example, `<span class=title></span>` would generate span containing the title.",
@@ -16640,6 +17730,15 @@
                             "name": "fontFamilies",
                             "description": "Specifies font families to set. If a font family is not specified, it won't be changed.",
                             "$ref": "FontFamilies"
+                        },
+                        {
+                            "name": "forScripts",
+                            "description": "Specifies font families to set for individual scripts.",
+                            "optional": true,
+                            "type": "array",
+                            "items": {
+                                "$ref": "ScriptFontFamilies"
+                            }
                         }
                     ]
                 },
@@ -16875,12 +17974,18 @@
                     "parameters": [
                         {
                             "name": "mode",
-                            "type": "string",
-                            "enum": [
-                                "none",
-                                "autoaccept",
-                                "autoreject"
-                            ]
+                            "$ref": "AutoResponseMode"
+                        }
+                    ]
+                },
+                {
+                    "name": "setRPHRegistrationMode",
+                    "description": "Extensions for Custom Handlers API:\nhttps://html.spec.whatwg.org/multipage/system-state.html#rph-automation",
+                    "experimental": true,
+                    "parameters": [
+                        {
+                            "name": "mode",
+                            "$ref": "AutoResponseMode"
                         }
                     ]
                 },
@@ -16917,6 +18022,17 @@
                             "type": "boolean"
                         }
                     ]
+                },
+                {
+                    "name": "setPrerenderingAllowed",
+                    "description": "Enable/disable prerendering manually.\n\nThis command is a short-term solution for https://crbug.com/1440085.\nSee https://docs.google.com/document/d/12HVmFxYj5Jc-eJr5OmWsa2bqTJsbgGLKI6ZIyx0_wpA\nfor more details.\n\nTODO(https://crbug.com/1440085): Remove this once Puppeteer supports tab targets.",
+                    "experimental": true,
+                    "parameters": [
+                        {
+                            "name": "isAllowed",
+                            "type": "boolean"
+                        }
+                    ]
                 }
             ],
             "events": [
@@ -16939,12 +18055,6 @@
                             "experimental": true,
                             "$ref": "FrameId"
                         },
-                        {
-                            "name": "backendNodeId",
-                            "description": "Input node id.",
-                            "experimental": true,
-                            "$ref": "DOM.BackendNodeId"
-                        },
                         {
                             "name": "mode",
                             "description": "Input mode.",
@@ -16953,6 +18063,13 @@
                                 "selectSingle",
                                 "selectMultiple"
                             ]
+                        },
+                        {
+                            "name": "backendNodeId",
+                            "description": "Input node id. Only present for file choosers opened via an <input type=\"file\"> element.",
+                            "experimental": true,
+                            "optional": true,
+                            "$ref": "DOM.BackendNodeId"
                         }
                     ]
                 },
@@ -18394,6 +19511,10 @@
                 "Network"
             ],
             "types": [
+                {
+                    "id": "SerializedStorageKey",
+                    "type": "string"
+                },
                 {
                     "id": "StorageType",
                     "description": "Enum of possible storage types.",
@@ -18408,6 +19529,9 @@
                         "websql",
                         "service_workers",
                         "cache_storage",
+                        "interest_groups",
+                        "shared_storage",
+                        "storage_buckets",
                         "all",
                         "other"
                     ]
@@ -18444,2738 +19568,4462 @@
                             "type": "number"
                         }
                     ]
-                }
-            ],
-            "commands": [
+                },
                 {
-                    "name": "clearDataForOrigin",
-                    "description": "Clears storage for origin.",
-                    "parameters": [
+                    "id": "InterestGroupAccessType",
+                    "description": "Enum of interest group access types.",
+                    "type": "string",
+                    "enum": [
+                        "join",
+                        "leave",
+                        "update",
+                        "loaded",
+                        "bid",
+                        "win"
+                    ]
+                },
+                {
+                    "id": "InterestGroupAd",
+                    "description": "Ad advertising element inside an interest group.",
+                    "type": "object",
+                    "properties": [
                         {
-                            "name": "origin",
-                            "description": "Security origin.",
+                            "name": "renderUrl",
                             "type": "string"
                         },
                         {
-                            "name": "storageTypes",
-                            "description": "Comma separated list of StorageType to clear.",
+                            "name": "metadata",
+                            "optional": true,
                             "type": "string"
                         }
                     ]
                 },
                 {
-                    "name": "getCookies",
-                    "description": "Returns all browser cookies.",
-                    "parameters": [
+                    "id": "InterestGroupDetails",
+                    "description": "The full details of an interest group.",
+                    "type": "object",
+                    "properties": [
                         {
-                            "name": "browserContextId",
-                            "description": "Browser context to use when called on the browser endpoint.",
+                            "name": "ownerOrigin",
+                            "type": "string"
+                        },
+                        {
+                            "name": "name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "expirationTime",
+                            "$ref": "Network.TimeSinceEpoch"
+                        },
+                        {
+                            "name": "joiningOrigin",
+                            "type": "string"
+                        },
+                        {
+                            "name": "biddingUrl",
                             "optional": true,
-                            "$ref": "Browser.BrowserContextID"
-                        }
-                    ],
-                    "returns": [
+                            "type": "string"
+                        },
                         {
-                            "name": "cookies",
-                            "description": "Array of cookie objects.",
+                            "name": "biddingWasmHelperUrl",
+                            "optional": true,
+                            "type": "string"
+                        },
+                        {
+                            "name": "updateUrl",
+                            "optional": true,
+                            "type": "string"
+                        },
+                        {
+                            "name": "trustedBiddingSignalsUrl",
+                            "optional": true,
+                            "type": "string"
+                        },
+                        {
+                            "name": "trustedBiddingSignalsKeys",
                             "type": "array",
                             "items": {
-                                "$ref": "Network.Cookie"
+                                "type": "string"
                             }
-                        }
-                    ]
-                },
-                {
-                    "name": "setCookies",
-                    "description": "Sets given cookies.",
-                    "parameters": [
+                        },
                         {
-                            "name": "cookies",
-                            "description": "Cookies to be set.",
+                            "name": "userBiddingSignals",
+                            "optional": true,
+                            "type": "string"
+                        },
+                        {
+                            "name": "ads",
                             "type": "array",
                             "items": {
-                                "$ref": "Network.CookieParam"
+                                "$ref": "InterestGroupAd"
                             }
                         },
                         {
-                            "name": "browserContextId",
-                            "description": "Browser context to use when called on the browser endpoint.",
-                            "optional": true,
-                            "$ref": "Browser.BrowserContextID"
+                            "name": "adComponents",
+                            "type": "array",
+                            "items": {
+                                "$ref": "InterestGroupAd"
+                            }
                         }
                     ]
                 },
                 {
-                    "name": "clearCookies",
-                    "description": "Clears cookies.",
-                    "parameters": [
+                    "id": "SharedStorageAccessType",
+                    "description": "Enum of shared storage access types.",
+                    "type": "string",
+                    "enum": [
+                        "documentAddModule",
+                        "documentSelectURL",
+                        "documentRun",
+                        "documentSet",
+                        "documentAppend",
+                        "documentDelete",
+                        "documentClear",
+                        "workletSet",
+                        "workletAppend",
+                        "workletDelete",
+                        "workletClear",
+                        "workletGet",
+                        "workletKeys",
+                        "workletEntries",
+                        "workletLength",
+                        "workletRemainingBudget"
+                    ]
+                },
+                {
+                    "id": "SharedStorageEntry",
+                    "description": "Struct for a single key-value pair in an origin's shared storage.",
+                    "type": "object",
+                    "properties": [
                         {
-                            "name": "browserContextId",
-                            "description": "Browser context to use when called on the browser endpoint.",
-                            "optional": true,
-                            "$ref": "Browser.BrowserContextID"
+                            "name": "key",
+                            "type": "string"
+                        },
+                        {
+                            "name": "value",
+                            "type": "string"
                         }
                     ]
                 },
                 {
-                    "name": "getUsageAndQuota",
-                    "description": "Returns usage and quota in bytes.",
-                    "parameters": [
-                        {
-                            "name": "origin",
-                            "description": "Security origin.",
-                            "type": "string"
-                        }
-                    ],
-                    "returns": [
-                        {
-                            "name": "usage",
-                            "description": "Storage usage (bytes).",
-                            "type": "number"
-                        },
+                    "id": "SharedStorageMetadata",
+                    "description": "Details for an origin's shared storage.",
+                    "type": "object",
+                    "properties": [
                         {
-                            "name": "quota",
-                            "description": "Storage quota (bytes).",
-                            "type": "number"
+                            "name": "creationTime",
+                            "$ref": "Network.TimeSinceEpoch"
                         },
                         {
-                            "name": "overrideActive",
-                            "description": "Whether or not the origin has an active storage quota override",
-                            "type": "boolean"
+                            "name": "length",
+                            "type": "integer"
                         },
                         {
-                            "name": "usageBreakdown",
-                            "description": "Storage usage per type (bytes).",
-                            "type": "array",
-                            "items": {
-                                "$ref": "UsageForType"
-                            }
+                            "name": "remainingBudget",
+                            "type": "number"
                         }
                     ]
                 },
                 {
-                    "name": "overrideQuotaForOrigin",
-                    "description": "Override quota for the specified origin",
-                    "experimental": true,
-                    "parameters": [
+                    "id": "SharedStorageReportingMetadata",
+                    "description": "Pair of reporting metadata details for a candidate URL for `selectURL()`.",
+                    "type": "object",
+                    "properties": [
                         {
-                            "name": "origin",
-                            "description": "Security origin.",
+                            "name": "eventType",
                             "type": "string"
                         },
                         {
-                            "name": "quotaSize",
-                            "description": "The quota size (in bytes) to override the original quota with.\nIf this is called multiple times, the overridden quota will be equal to\nthe quotaSize provided in the final call. If this is called without\nspecifying a quotaSize, the quota will be reset to the default value for\nthe specified origin. If this is called multiple times with different\norigins, the override will be maintained for each origin until it is\ndisabled (called without a quotaSize).",
-                            "optional": true,
-                            "type": "number"
+                            "name": "reportingUrl",
+                            "type": "string"
                         }
                     ]
                 },
                 {
-                    "name": "trackCacheStorageForOrigin",
-                    "description": "Registers origin to be notified when an update occurs to its cache storage list.",
-                    "parameters": [
+                    "id": "SharedStorageUrlWithMetadata",
+                    "description": "Bundles a candidate URL with its reporting metadata.",
+                    "type": "object",
+                    "properties": [
                         {
-                            "name": "origin",
-                            "description": "Security origin.",
+                            "name": "url",
+                            "description": "Spec of candidate URL.",
                             "type": "string"
+                        },
+                        {
+                            "name": "reportingMetadata",
+                            "description": "Any associated reporting metadata.",
+                            "type": "array",
+                            "items": {
+                                "$ref": "SharedStorageReportingMetadata"
+                            }
                         }
                     ]
                 },
                 {
-                    "name": "trackIndexedDBForOrigin",
-                    "description": "Registers origin to be notified when an update occurs to its IndexedDB.",
-                    "parameters": [
+                    "id": "SharedStorageAccessParams",
+                    "description": "Bundles the parameters for shared storage access events whose\npresence/absence can vary according to SharedStorageAccessType.",
+                    "type": "object",
+                    "properties": [
                         {
-                            "name": "origin",
-                            "description": "Security origin.",
+                            "name": "scriptSourceUrl",
+                            "description": "Spec of the module script URL.\nPresent only for SharedStorageAccessType.documentAddModule.",
+                            "optional": true,
                             "type": "string"
-                        }
-                    ]
-                },
-                {
-                    "name": "untrackCacheStorageForOrigin",
-                    "description": "Unregisters origin from receiving notifications for cache storage.",
-                    "parameters": [
+                        },
                         {
-                            "name": "origin",
-                            "description": "Security origin.",
+                            "name": "operationName",
+                            "description": "Name of the registered operation to be run.\nPresent only for SharedStorageAccessType.documentRun and\nSharedStorageAccessType.documentSelectURL.",
+                            "optional": true,
                             "type": "string"
-                        }
-                    ]
-                },
-                {
-                    "name": "untrackIndexedDBForOrigin",
-                    "description": "Unregisters origin from receiving notifications for IndexedDB.",
-                    "parameters": [
+                        },
                         {
-                            "name": "origin",
-                            "description": "Security origin.",
+                            "name": "serializedData",
+                            "description": "The operation's serialized data in bytes (converted to a string).\nPresent only for SharedStorageAccessType.documentRun and\nSharedStorageAccessType.documentSelectURL.",
+                            "optional": true,
                             "type": "string"
-                        }
-                    ]
-                },
-                {
-                    "name": "getTrustTokens",
-                    "description": "Returns the number of stored Trust Tokens per issuer for the\ncurrent browsing context.",
-                    "experimental": true,
-                    "returns": [
+                        },
                         {
-                            "name": "tokens",
+                            "name": "urlsWithMetadata",
+                            "description": "Array of candidate URLs' specs, along with any associated metadata.\nPresent only for SharedStorageAccessType.documentSelectURL.",
+                            "optional": true,
                             "type": "array",
                             "items": {
-                                "$ref": "TrustTokens"
+                                "$ref": "SharedStorageUrlWithMetadata"
                             }
-                        }
-                    ]
-                },
-                {
-                    "name": "clearTrustTokens",
-                    "description": "Removes all Trust Tokens issued by the provided issuerOrigin.\nLeaves other stored data, including the issuer's Redemption Records, intact.",
-                    "experimental": true,
-                    "parameters": [
+                        },
                         {
-                            "name": "issuerOrigin",
+                            "name": "key",
+                            "description": "Key for a specific entry in an origin's shared storage.\nPresent only for SharedStorageAccessType.documentSet,\nSharedStorageAccessType.documentAppend,\nSharedStorageAccessType.documentDelete,\nSharedStorageAccessType.workletSet,\nSharedStorageAccessType.workletAppend,\nSharedStorageAccessType.workletDelete, and\nSharedStorageAccessType.workletGet.",
+                            "optional": true,
                             "type": "string"
-                        }
-                    ],
-                    "returns": [
-                        {
-                            "name": "didDeleteTokens",
-                            "description": "True if any tokens were deleted, false otherwise.",
-                            "type": "boolean"
-                        }
-                    ]
-                }
-            ],
-            "events": [
-                {
-                    "name": "cacheStorageContentUpdated",
-                    "description": "A cache's contents have been modified.",
-                    "parameters": [
+                        },
                         {
-                            "name": "origin",
-                            "description": "Origin to update.",
+                            "name": "value",
+                            "description": "Value for a specific entry in an origin's shared storage.\nPresent only for SharedStorageAccessType.documentSet,\nSharedStorageAccessType.documentAppend,\nSharedStorageAccessType.workletSet, and\nSharedStorageAccessType.workletAppend.",
+                            "optional": true,
                             "type": "string"
                         },
                         {
-                            "name": "cacheName",
-                            "description": "Name of cache in origin.",
-                            "type": "string"
+                            "name": "ignoreIfPresent",
+                            "description": "Whether or not to set an entry for a key if that key is already present.\nPresent only for SharedStorageAccessType.documentSet and\nSharedStorageAccessType.workletSet.",
+                            "optional": true,
+                            "type": "boolean"
                         }
                     ]
                 },
                 {
-                    "name": "cacheStorageListUpdated",
-                    "description": "A cache has been added/deleted.",
-                    "parameters": [
-                        {
-                            "name": "origin",
-                            "description": "Origin to update.",
-                            "type": "string"
-                        }
+                    "id": "StorageBucketsDurability",
+                    "type": "string",
+                    "enum": [
+                        "relaxed",
+                        "strict"
                     ]
                 },
                 {
-                    "name": "indexedDBContentUpdated",
-                    "description": "The origin's IndexedDB object store has been modified.",
-                    "parameters": [
-                        {
-                            "name": "origin",
-                            "description": "Origin to update.",
-                            "type": "string"
-                        },
+                    "id": "StorageBucket",
+                    "type": "object",
+                    "properties": [
                         {
-                            "name": "databaseName",
-                            "description": "Database to update.",
-                            "type": "string"
+                            "name": "storageKey",
+                            "$ref": "SerializedStorageKey"
                         },
                         {
-                            "name": "objectStoreName",
-                            "description": "ObjectStore to update.",
+                            "name": "name",
+                            "description": "If not specified, it is the default bucket of the storageKey.",
+                            "optional": true,
                             "type": "string"
                         }
                     ]
                 },
                 {
-                    "name": "indexedDBListUpdated",
-                    "description": "The origin's IndexedDB database list has been modified.",
-                    "parameters": [
-                        {
-                            "name": "origin",
-                            "description": "Origin to update.",
-                            "type": "string"
-                        }
-                    ]
-                }
-            ]
-        },
-        {
-            "domain": "SystemInfo",
-            "description": "The SystemInfo domain defines methods and events for querying low-level system information.",
-            "experimental": true,
-            "types": [
-                {
-                    "id": "GPUDevice",
-                    "description": "Describes a single graphics processor (GPU).",
+                    "id": "StorageBucketInfo",
                     "type": "object",
                     "properties": [
                         {
-                            "name": "vendorId",
-                            "description": "PCI ID of the GPU vendor, if available; 0 otherwise.",
-                            "type": "number"
+                            "name": "bucket",
+                            "$ref": "StorageBucket"
                         },
                         {
-                            "name": "deviceId",
-                            "description": "PCI ID of the GPU device, if available; 0 otherwise.",
-                            "type": "number"
+                            "name": "id",
+                            "type": "string"
                         },
                         {
-                            "name": "subSysId",
-                            "description": "Sub sys ID of the GPU, only available on Windows.",
-                            "optional": true,
-                            "type": "number"
+                            "name": "expiration",
+                            "$ref": "Network.TimeSinceEpoch"
                         },
                         {
-                            "name": "revision",
-                            "description": "Revision of the GPU, only available on Windows.",
-                            "optional": true,
+                            "name": "quota",
+                            "description": "Storage quota (bytes).",
                             "type": "number"
                         },
                         {
-                            "name": "vendorString",
-                            "description": "String description of the GPU vendor, if the PCI ID is not available.",
-                            "type": "string"
-                        },
-                        {
-                            "name": "deviceString",
-                            "description": "String description of the GPU device, if the PCI ID is not available.",
-                            "type": "string"
-                        },
-                        {
-                            "name": "driverVendor",
-                            "description": "String description of the GPU driver vendor.",
-                            "type": "string"
+                            "name": "persistent",
+                            "type": "boolean"
                         },
                         {
-                            "name": "driverVersion",
-                            "description": "String description of the GPU driver version.",
-                            "type": "string"
+                            "name": "durability",
+                            "$ref": "StorageBucketsDurability"
                         }
                     ]
                 },
                 {
-                    "id": "Size",
-                    "description": "Describes the width and height dimensions of an entity.",
-                    "type": "object",
-                    "properties": [
-                        {
-                            "name": "width",
-                            "description": "Width in pixels.",
-                            "type": "integer"
-                        },
-                        {
-                            "name": "height",
-                            "description": "Height in pixels.",
-                            "type": "integer"
-                        }
+                    "id": "AttributionReportingSourceType",
+                    "experimental": true,
+                    "type": "string",
+                    "enum": [
+                        "navigation",
+                        "event"
                     ]
                 },
                 {
-                    "id": "VideoDecodeAcceleratorCapability",
-                    "description": "Describes a supported video decoding profile with its associated minimum and\nmaximum resolutions.",
+                    "id": "UnsignedInt64AsBase10",
+                    "experimental": true,
+                    "type": "string"
+                },
+                {
+                    "id": "UnsignedInt128AsBase16",
+                    "experimental": true,
+                    "type": "string"
+                },
+                {
+                    "id": "SignedInt64AsBase10",
+                    "experimental": true,
+                    "type": "string"
+                },
+                {
+                    "id": "AttributionReportingFilterDataEntry",
+                    "experimental": true,
                     "type": "object",
                     "properties": [
                         {
-                            "name": "profile",
-                            "description": "Video codec profile that is supported, e.g. VP9 Profile 2.",
+                            "name": "key",
                             "type": "string"
                         },
                         {
-                            "name": "maxResolution",
-                            "description": "Maximum video dimensions in pixels supported for this |profile|.",
-                            "$ref": "Size"
-                        },
-                        {
-                            "name": "minResolution",
-                            "description": "Minimum video dimensions in pixels supported for this |profile|.",
-                            "$ref": "Size"
+                            "name": "values",
+                            "type": "array",
+                            "items": {
+                                "type": "string"
+                            }
                         }
                     ]
                 },
                 {
-                    "id": "VideoEncodeAcceleratorCapability",
-                    "description": "Describes a supported video encoding profile with its associated maximum\nresolution and maximum framerate.",
+                    "id": "AttributionReportingAggregationKeysEntry",
+                    "experimental": true,
                     "type": "object",
                     "properties": [
                         {
-                            "name": "profile",
-                            "description": "Video codec profile that is supported, e.g H264 Main.",
+                            "name": "key",
                             "type": "string"
                         },
                         {
-                            "name": "maxResolution",
-                            "description": "Maximum video dimensions in pixels supported for this |profile|.",
-                            "$ref": "Size"
-                        },
-                        {
-                            "name": "maxFramerateNumerator",
-                            "description": "Maximum encoding framerate in frames per second supported for this\n|profile|, as fraction's numerator and denominator, e.g. 24/1 fps,\n24000/1001 fps, etc.",
-                            "type": "integer"
-                        },
-                        {
-                            "name": "maxFramerateDenominator",
-                            "type": "integer"
+                            "name": "value",
+                            "$ref": "UnsignedInt128AsBase16"
                         }
                     ]
                 },
                 {
-                    "id": "SubsamplingFormat",
-                    "description": "YUV subsampling type of the pixels of a given image.",
-                    "type": "string",
-                    "enum": [
-                        "yuv420",
-                        "yuv422",
-                        "yuv444"
-                    ]
-                },
-                {
-                    "id": "ImageType",
-                    "description": "Image format of a given image.",
-                    "type": "string",
-                    "enum": [
-                        "jpeg",
-                        "webp",
-                        "unknown"
-                    ]
-                },
-                {
-                    "id": "ImageDecodeAcceleratorCapability",
-                    "description": "Describes a supported image decoding profile with its associated minimum and\nmaximum resolutions and subsampling.",
+                    "id": "AttributionReportingSourceRegistration",
+                    "experimental": true,
                     "type": "object",
                     "properties": [
                         {
-                            "name": "imageType",
-                            "description": "Image coded, e.g. Jpeg.",
-                            "$ref": "ImageType"
+                            "name": "time",
+                            "$ref": "Network.TimeSinceEpoch"
                         },
                         {
-                            "name": "maxDimensions",
-                            "description": "Maximum supported dimensions of the image in pixels.",
-                            "$ref": "Size"
+                            "name": "expiry",
+                            "description": "duration in seconds",
+                            "optional": true,
+                            "type": "integer"
                         },
                         {
-                            "name": "minDimensions",
-                            "description": "Minimum supported dimensions of the image in pixels.",
-                            "$ref": "Size"
+                            "name": "eventReportWindow",
+                            "description": "duration in seconds",
+                            "optional": true,
+                            "type": "integer"
                         },
                         {
-                            "name": "subsamplings",
-                            "description": "Optional array of supported subsampling formats, e.g. 4:2:0, if known.",
-                            "type": "array",
-                            "items": {
-                                "$ref": "SubsamplingFormat"
-                            }
-                        }
-                    ]
-                },
-                {
-                    "id": "GPUInfo",
-                    "description": "Provides information about the GPU(s) on the system.",
-                    "type": "object",
-                    "properties": [
+                            "name": "aggregatableReportWindow",
+                            "description": "duration in seconds",
+                            "optional": true,
+                            "type": "integer"
+                        },
                         {
-                            "name": "devices",
-                            "description": "The graphics devices on the system. Element 0 is the primary GPU.",
-                            "type": "array",
-                            "items": {
-                                "$ref": "GPUDevice"
-                            }
+                            "name": "type",
+                            "$ref": "AttributionReportingSourceType"
                         },
                         {
-                            "name": "auxAttributes",
-                            "description": "An optional dictionary of additional GPU related attributes.",
-                            "optional": true,
-                            "type": "object"
+                            "name": "sourceOrigin",
+                            "type": "string"
                         },
                         {
-                            "name": "featureStatus",
-                            "description": "An optional dictionary of graphics features and their status.",
-                            "optional": true,
-                            "type": "object"
+                            "name": "reportingOrigin",
+                            "type": "string"
                         },
                         {
-                            "name": "driverBugWorkarounds",
-                            "description": "An optional array of GPU driver bug workarounds.",
+                            "name": "destinationSites",
                             "type": "array",
                             "items": {
                                 "type": "string"
                             }
                         },
                         {
-                            "name": "videoDecoding",
-                            "description": "Supported accelerated video decoding capabilities.",
-                            "type": "array",
-                            "items": {
-                                "$ref": "VideoDecodeAcceleratorCapability"
-                            }
+                            "name": "eventId",
+                            "$ref": "UnsignedInt64AsBase10"
                         },
                         {
-                            "name": "videoEncoding",
-                            "description": "Supported accelerated video encoding capabilities.",
+                            "name": "priority",
+                            "$ref": "SignedInt64AsBase10"
+                        },
+                        {
+                            "name": "filterData",
                             "type": "array",
                             "items": {
-                                "$ref": "VideoEncodeAcceleratorCapability"
+                                "$ref": "AttributionReportingFilterDataEntry"
                             }
                         },
                         {
-                            "name": "imageDecoding",
-                            "description": "Supported accelerated image decoding capabilities.",
+                            "name": "aggregationKeys",
                             "type": "array",
                             "items": {
-                                "$ref": "ImageDecodeAcceleratorCapability"
+                                "$ref": "AttributionReportingAggregationKeysEntry"
                             }
+                        },
+                        {
+                            "name": "debugKey",
+                            "optional": true,
+                            "$ref": "UnsignedInt64AsBase10"
                         }
                     ]
                 },
                 {
-                    "id": "ProcessInfo",
-                    "description": "Represents process info.",
-                    "type": "object",
-                    "properties": [
-                        {
-                            "name": "type",
-                            "description": "Specifies process type.",
-                            "type": "string"
-                        },
-                        {
-                            "name": "id",
-                            "description": "Specifies process id.",
-                            "type": "integer"
-                        },
-                        {
-                            "name": "cpuTime",
-                            "description": "Specifies cumulative CPU usage in seconds across all threads of the\nprocess since the process start.",
-                            "type": "number"
-                        }
+                    "id": "AttributionReportingSourceRegistrationResult",
+                    "experimental": true,
+                    "type": "string",
+                    "enum": [
+                        "success",
+                        "internalError",
+                        "insufficientSourceCapacity",
+                        "insufficientUniqueDestinationCapacity",
+                        "excessiveReportingOrigins",
+                        "prohibitedByBrowserPolicy",
+                        "successNoised",
+                        "destinationReportingLimitReached",
+                        "destinationGlobalLimitReached",
+                        "destinationBothLimitsReached"
                     ]
                 }
             ],
             "commands": [
                 {
-                    "name": "getInfo",
-                    "description": "Returns information about the system.",
+                    "name": "getStorageKeyForFrame",
+                    "description": "Returns a storage key given a frame id.",
+                    "parameters": [
+                        {
+                            "name": "frameId",
+                            "$ref": "Page.FrameId"
+                        }
+                    ],
                     "returns": [
                         {
-                            "name": "gpu",
-                            "description": "Information about the GPUs on the system.",
-                            "$ref": "GPUInfo"
-                        },
+                            "name": "storageKey",
+                            "$ref": "SerializedStorageKey"
+                        }
+                    ]
+                },
+                {
+                    "name": "clearDataForOrigin",
+                    "description": "Clears storage for origin.",
+                    "parameters": [
                         {
-                            "name": "modelName",
-                            "description": "A platform-dependent description of the model of the machine. On Mac OS, this is, for\nexample, 'MacBookPro'. Will be the empty string if not supported.",
+                            "name": "origin",
+                            "description": "Security origin.",
                             "type": "string"
                         },
                         {
-                            "name": "modelVersion",
-                            "description": "A platform-dependent description of the version of the machine. On Mac OS, this is, for\nexample, '10.1'. Will be the empty string if not supported.",
+                            "name": "storageTypes",
+                            "description": "Comma separated list of StorageType to clear.",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "clearDataForStorageKey",
+                    "description": "Clears storage for storage key.",
+                    "parameters": [
+                        {
+                            "name": "storageKey",
+                            "description": "Storage key.",
                             "type": "string"
                         },
                         {
-                            "name": "commandLine",
-                            "description": "The command line string used to launch the browser. Will be the empty string if not\nsupported.",
+                            "name": "storageTypes",
+                            "description": "Comma separated list of StorageType to clear.",
                             "type": "string"
                         }
                     ]
                 },
                 {
-                    "name": "getProcessInfo",
-                    "description": "Returns information about all running processes.",
+                    "name": "getCookies",
+                    "description": "Returns all browser cookies.",
+                    "parameters": [
+                        {
+                            "name": "browserContextId",
+                            "description": "Browser context to use when called on the browser endpoint.",
+                            "optional": true,
+                            "$ref": "Browser.BrowserContextID"
+                        }
+                    ],
                     "returns": [
                         {
-                            "name": "processInfo",
-                            "description": "An array of process info blocks.",
+                            "name": "cookies",
+                            "description": "Array of cookie objects.",
                             "type": "array",
                             "items": {
-                                "$ref": "ProcessInfo"
+                                "$ref": "Network.Cookie"
                             }
                         }
                     ]
-                }
-            ]
-        },
-        {
-            "domain": "Target",
-            "description": "Supports additional targets discovery and allows to attach to them.",
-            "types": [
-                {
-                    "id": "TargetID",
-                    "type": "string"
-                },
-                {
-                    "id": "SessionID",
-                    "description": "Unique identifier of attached debugging session.",
-                    "type": "string"
                 },
                 {
-                    "id": "TargetInfo",
-                    "type": "object",
-                    "properties": [
-                        {
-                            "name": "targetId",
-                            "$ref": "TargetID"
-                        },
+                    "name": "setCookies",
+                    "description": "Sets given cookies.",
+                    "parameters": [
                         {
-                            "name": "type",
-                            "type": "string"
-                        },
-                        {
-                            "name": "title",
-                            "type": "string"
+                            "name": "cookies",
+                            "description": "Cookies to be set.",
+                            "type": "array",
+                            "items": {
+                                "$ref": "Network.CookieParam"
+                            }
                         },
                         {
-                            "name": "url",
+                            "name": "browserContextId",
+                            "description": "Browser context to use when called on the browser endpoint.",
+                            "optional": true,
+                            "$ref": "Browser.BrowserContextID"
+                        }
+                    ]
+                },
+                {
+                    "name": "clearCookies",
+                    "description": "Clears cookies.",
+                    "parameters": [
+                        {
+                            "name": "browserContextId",
+                            "description": "Browser context to use when called on the browser endpoint.",
+                            "optional": true,
+                            "$ref": "Browser.BrowserContextID"
+                        }
+                    ]
+                },
+                {
+                    "name": "getUsageAndQuota",
+                    "description": "Returns usage and quota in bytes.",
+                    "parameters": [
+                        {
+                            "name": "origin",
+                            "description": "Security origin.",
                             "type": "string"
-                        },
+                        }
+                    ],
+                    "returns": [
                         {
-                            "name": "attached",
-                            "description": "Whether the target has an attached client.",
-                            "type": "boolean"
+                            "name": "usage",
+                            "description": "Storage usage (bytes).",
+                            "type": "number"
                         },
                         {
-                            "name": "openerId",
-                            "description": "Opener target Id",
-                            "optional": true,
-                            "$ref": "TargetID"
+                            "name": "quota",
+                            "description": "Storage quota (bytes).",
+                            "type": "number"
                         },
                         {
-                            "name": "canAccessOpener",
-                            "description": "Whether the target has access to the originating window.",
-                            "experimental": true,
+                            "name": "overrideActive",
+                            "description": "Whether or not the origin has an active storage quota override",
                             "type": "boolean"
                         },
                         {
-                            "name": "openerFrameId",
-                            "description": "Frame id of originating window (is only set if target has an opener).",
-                            "experimental": true,
-                            "optional": true,
-                            "$ref": "Page.FrameId"
+                            "name": "usageBreakdown",
+                            "description": "Storage usage per type (bytes).",
+                            "type": "array",
+                            "items": {
+                                "$ref": "UsageForType"
+                            }
+                        }
+                    ]
+                },
+                {
+                    "name": "overrideQuotaForOrigin",
+                    "description": "Override quota for the specified origin",
+                    "experimental": true,
+                    "parameters": [
+                        {
+                            "name": "origin",
+                            "description": "Security origin.",
+                            "type": "string"
                         },
                         {
-                            "name": "browserContextId",
-                            "experimental": true,
+                            "name": "quotaSize",
+                            "description": "The quota size (in bytes) to override the original quota with.\nIf this is called multiple times, the overridden quota will be equal to\nthe quotaSize provided in the final call. If this is called without\nspecifying a quotaSize, the quota will be reset to the default value for\nthe specified origin. If this is called multiple times with different\norigins, the override will be maintained for each origin until it is\ndisabled (called without a quotaSize).",
                             "optional": true,
-                            "$ref": "Browser.BrowserContextID"
+                            "type": "number"
                         }
                     ]
                 },
                 {
-                    "id": "RemoteLocation",
-                    "experimental": true,
-                    "type": "object",
-                    "properties": [
+                    "name": "trackCacheStorageForOrigin",
+                    "description": "Registers origin to be notified when an update occurs to its cache storage list.",
+                    "parameters": [
                         {
-                            "name": "host",
+                            "name": "origin",
+                            "description": "Security origin.",
                             "type": "string"
-                        },
+                        }
+                    ]
+                },
+                {
+                    "name": "trackCacheStorageForStorageKey",
+                    "description": "Registers storage key to be notified when an update occurs to its cache storage list.",
+                    "parameters": [
                         {
-                            "name": "port",
-                            "type": "integer"
+                            "name": "storageKey",
+                            "description": "Storage key.",
+                            "type": "string"
                         }
                     ]
-                }
-            ],
-            "commands": [
+                },
                 {
-                    "name": "activateTarget",
-                    "description": "Activates (focuses) the target.",
+                    "name": "trackIndexedDBForOrigin",
+                    "description": "Registers origin to be notified when an update occurs to its IndexedDB.",
                     "parameters": [
                         {
-                            "name": "targetId",
-                            "$ref": "TargetID"
+                            "name": "origin",
+                            "description": "Security origin.",
+                            "type": "string"
                         }
                     ]
                 },
                 {
-                    "name": "attachToTarget",
-                    "description": "Attaches to the target with given id.",
+                    "name": "trackIndexedDBForStorageKey",
+                    "description": "Registers storage key to be notified when an update occurs to its IndexedDB.",
                     "parameters": [
                         {
-                            "name": "targetId",
-                            "$ref": "TargetID"
-                        },
+                            "name": "storageKey",
+                            "description": "Storage key.",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "untrackCacheStorageForOrigin",
+                    "description": "Unregisters origin from receiving notifications for cache storage.",
+                    "parameters": [
                         {
-                            "name": "flatten",
-                            "description": "Enables \"flat\" access to the session via specifying sessionId attribute in the commands.\nWe plan to make this the default, deprecate non-flattened mode,\nand eventually retire it. See crbug.com/991325.",
-                            "optional": true,
-                            "type": "boolean"
+                            "name": "origin",
+                            "description": "Security origin.",
+                            "type": "string"
                         }
-                    ],
-                    "returns": [
+                    ]
+                },
+                {
+                    "name": "untrackCacheStorageForStorageKey",
+                    "description": "Unregisters storage key from receiving notifications for cache storage.",
+                    "parameters": [
                         {
-                            "name": "sessionId",
-                            "description": "Id assigned to the session.",
-                            "$ref": "SessionID"
+                            "name": "storageKey",
+                            "description": "Storage key.",
+                            "type": "string"
                         }
                     ]
                 },
                 {
-                    "name": "attachToBrowserTarget",
-                    "description": "Attaches to the browser target, only uses flat sessionId mode.",
+                    "name": "untrackIndexedDBForOrigin",
+                    "description": "Unregisters origin from receiving notifications for IndexedDB.",
+                    "parameters": [
+                        {
+                            "name": "origin",
+                            "description": "Security origin.",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "untrackIndexedDBForStorageKey",
+                    "description": "Unregisters storage key from receiving notifications for IndexedDB.",
+                    "parameters": [
+                        {
+                            "name": "storageKey",
+                            "description": "Storage key.",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "getTrustTokens",
+                    "description": "Returns the number of stored Trust Tokens per issuer for the\ncurrent browsing context.",
                     "experimental": true,
                     "returns": [
                         {
-                            "name": "sessionId",
-                            "description": "Id assigned to the session.",
-                            "$ref": "SessionID"
+                            "name": "tokens",
+                            "type": "array",
+                            "items": {
+                                "$ref": "TrustTokens"
+                            }
                         }
                     ]
                 },
                 {
-                    "name": "closeTarget",
-                    "description": "Closes the target. If the target is a page that gets closed too.",
+                    "name": "clearTrustTokens",
+                    "description": "Removes all Trust Tokens issued by the provided issuerOrigin.\nLeaves other stored data, including the issuer's Redemption Records, intact.",
+                    "experimental": true,
                     "parameters": [
                         {
-                            "name": "targetId",
-                            "$ref": "TargetID"
+                            "name": "issuerOrigin",
+                            "type": "string"
                         }
                     ],
                     "returns": [
                         {
-                            "name": "success",
-                            "description": "Always set to true. If an error occurs, the response indicates protocol error.",
-                            "deprecated": true,
+                            "name": "didDeleteTokens",
+                            "description": "True if any tokens were deleted, false otherwise.",
                             "type": "boolean"
                         }
                     ]
                 },
                 {
-                    "name": "exposeDevToolsProtocol",
-                    "description": "Inject object to the target's main frame that provides a communication\nchannel with browser target.\n\nInjected object will be available as `window[bindingName]`.\n\nThe object has the follwing API:\n- `binding.send(json)` - a method to send messages over the remote debugging protocol\n- `binding.onmessage = json => handleMessage(json)` - a callback that will be called for the protocol notifications and command responses.",
+                    "name": "getInterestGroupDetails",
+                    "description": "Gets details for a named interest group.",
                     "experimental": true,
                     "parameters": [
                         {
-                            "name": "targetId",
-                            "$ref": "TargetID"
+                            "name": "ownerOrigin",
+                            "type": "string"
                         },
                         {
-                            "name": "bindingName",
-                            "description": "Binding name, 'cdp' if not specified.",
-                            "optional": true,
+                            "name": "name",
                             "type": "string"
                         }
+                    ],
+                    "returns": [
+                        {
+                            "name": "details",
+                            "$ref": "InterestGroupDetails"
+                        }
                     ]
                 },
                 {
-                    "name": "createBrowserContext",
-                    "description": "Creates a new empty BrowserContext. Similar to an incognito profile but you can have more than\none.",
+                    "name": "setInterestGroupTracking",
+                    "description": "Enables/Disables issuing of interestGroupAccessed events.",
                     "experimental": true,
                     "parameters": [
                         {
-                            "name": "disposeOnDetach",
-                            "description": "If specified, disposes this context when debugging session disconnects.",
-                            "optional": true,
+                            "name": "enable",
                             "type": "boolean"
-                        },
-                        {
-                            "name": "proxyServer",
-                            "description": "Proxy server, similar to the one passed to --proxy-server",
-                            "optional": true,
-                            "type": "string"
-                        },
+                        }
+                    ]
+                },
+                {
+                    "name": "getSharedStorageMetadata",
+                    "description": "Gets metadata for an origin's shared storage.",
+                    "experimental": true,
+                    "parameters": [
                         {
-                            "name": "proxyBypassList",
-                            "description": "Proxy bypass list, similar to the one passed to --proxy-bypass-list",
-                            "optional": true,
+                            "name": "ownerOrigin",
                             "type": "string"
-                        },
-                        {
-                            "name": "originsWithUniversalNetworkAccess",
-                            "description": "An optional list of origins to grant unlimited cross-origin access to.\nParts of the URL other than those constituting origin are ignored.",
-                            "optional": true,
-                            "type": "array",
-                            "items": {
-                                "type": "string"
-                            }
                         }
                     ],
                     "returns": [
                         {
-                            "name": "browserContextId",
-                            "description": "The id of the context created.",
-                            "$ref": "Browser.BrowserContextID"
+                            "name": "metadata",
+                            "$ref": "SharedStorageMetadata"
                         }
                     ]
                 },
                 {
-                    "name": "getBrowserContexts",
-                    "description": "Returns all browser contexts created with `Target.createBrowserContext` method.",
+                    "name": "getSharedStorageEntries",
+                    "description": "Gets the entries in an given origin's shared storage.",
                     "experimental": true,
+                    "parameters": [
+                        {
+                            "name": "ownerOrigin",
+                            "type": "string"
+                        }
+                    ],
                     "returns": [
                         {
-                            "name": "browserContextIds",
-                            "description": "An array of browser context ids.",
+                            "name": "entries",
                             "type": "array",
                             "items": {
-                                "$ref": "Browser.BrowserContextID"
+                                "$ref": "SharedStorageEntry"
                             }
                         }
                     ]
                 },
                 {
-                    "name": "createTarget",
-                    "description": "Creates a new page.",
+                    "name": "setSharedStorageEntry",
+                    "description": "Sets entry with `key` and `value` for a given origin's shared storage.",
+                    "experimental": true,
                     "parameters": [
                         {
-                            "name": "url",
-                            "description": "The initial URL the page will be navigated to. An empty string indicates about:blank.",
+                            "name": "ownerOrigin",
                             "type": "string"
                         },
                         {
-                            "name": "width",
-                            "description": "Frame width in DIP (headless chrome only).",
-                            "optional": true,
-                            "type": "integer"
-                        },
-                        {
-                            "name": "height",
-                            "description": "Frame height in DIP (headless chrome only).",
-                            "optional": true,
-                            "type": "integer"
-                        },
-                        {
-                            "name": "browserContextId",
-                            "description": "The browser context to create the page in.",
-                            "experimental": true,
-                            "optional": true,
-                            "$ref": "Browser.BrowserContextID"
-                        },
-                        {
-                            "name": "enableBeginFrameControl",
-                            "description": "Whether BeginFrames for this target will be controlled via DevTools (headless chrome only,\nnot supported on MacOS yet, false by default).",
-                            "experimental": true,
-                            "optional": true,
-                            "type": "boolean"
+                            "name": "key",
+                            "type": "string"
                         },
                         {
-                            "name": "newWindow",
-                            "description": "Whether to create a new Window or Tab (chrome-only, false by default).",
-                            "optional": true,
-                            "type": "boolean"
+                            "name": "value",
+                            "type": "string"
                         },
                         {
-                            "name": "background",
-                            "description": "Whether to create the target in background or foreground (chrome-only,\nfalse by default).",
+                            "name": "ignoreIfPresent",
+                            "description": "If `ignoreIfPresent` is included and true, then only sets the entry if\n`key` doesn't already exist.",
                             "optional": true,
                             "type": "boolean"
                         }
-                    ],
-                    "returns": [
-                        {
-                            "name": "targetId",
-                            "description": "The id of the page opened.",
-                            "$ref": "TargetID"
-                        }
                     ]
                 },
                 {
-                    "name": "detachFromTarget",
-                    "description": "Detaches session with given id.",
+                    "name": "deleteSharedStorageEntry",
+                    "description": "Deletes entry for `key` (if it exists) for a given origin's shared storage.",
+                    "experimental": true,
                     "parameters": [
                         {
-                            "name": "sessionId",
-                            "description": "Session to detach.",
-                            "optional": true,
-                            "$ref": "SessionID"
+                            "name": "ownerOrigin",
+                            "type": "string"
                         },
                         {
-                            "name": "targetId",
-                            "description": "Deprecated.",
-                            "deprecated": true,
-                            "optional": true,
-                            "$ref": "TargetID"
+                            "name": "key",
+                            "type": "string"
                         }
                     ]
                 },
                 {
-                    "name": "disposeBrowserContext",
-                    "description": "Deletes a BrowserContext. All the belonging pages will be closed without calling their\nbeforeunload hooks.",
+                    "name": "clearSharedStorageEntries",
+                    "description": "Clears all entries for a given origin's shared storage.",
                     "experimental": true,
                     "parameters": [
                         {
-                            "name": "browserContextId",
-                            "$ref": "Browser.BrowserContextID"
+                            "name": "ownerOrigin",
+                            "type": "string"
                         }
                     ]
                 },
                 {
-                    "name": "getTargetInfo",
-                    "description": "Returns information about a target.",
+                    "name": "resetSharedStorageBudget",
+                    "description": "Resets the budget for `ownerOrigin` by clearing all budget withdrawals.",
                     "experimental": true,
                     "parameters": [
                         {
-                            "name": "targetId",
-                            "optional": true,
-                            "$ref": "TargetID"
-                        }
-                    ],
-                    "returns": [
-                        {
-                            "name": "targetInfo",
-                            "$ref": "TargetInfo"
+                            "name": "ownerOrigin",
+                            "type": "string"
                         }
                     ]
                 },
                 {
-                    "name": "getTargets",
-                    "description": "Retrieves a list of available targets.",
-                    "returns": [
+                    "name": "setSharedStorageTracking",
+                    "description": "Enables/disables issuing of sharedStorageAccessed events.",
+                    "experimental": true,
+                    "parameters": [
                         {
-                            "name": "targetInfos",
-                            "description": "The list of targets.",
-                            "type": "array",
-                            "items": {
-                                "$ref": "TargetInfo"
-                            }
+                            "name": "enable",
+                            "type": "boolean"
                         }
                     ]
                 },
                 {
-                    "name": "sendMessageToTarget",
-                    "description": "Sends protocol message over session with given id.\nConsider using flat mode instead; see commands attachToTarget, setAutoAttach,\nand crbug.com/991325.",
-                    "deprecated": true,
+                    "name": "setStorageBucketTracking",
+                    "description": "Set tracking for a storage key's buckets.",
+                    "experimental": true,
                     "parameters": [
                         {
-                            "name": "message",
+                            "name": "storageKey",
                             "type": "string"
                         },
                         {
-                            "name": "sessionId",
-                            "description": "Identifier of the session.",
-                            "optional": true,
-                            "$ref": "SessionID"
-                        },
-                        {
-                            "name": "targetId",
-                            "description": "Deprecated.",
-                            "deprecated": true,
-                            "optional": true,
-                            "$ref": "TargetID"
+                            "name": "enable",
+                            "type": "boolean"
                         }
                     ]
                 },
                 {
-                    "name": "setAutoAttach",
-                    "description": "Controls whether to automatically attach to new targets which are considered to be related to\nthis one. When turned on, attaches to all existing related targets as well. When turned off,\nautomatically detaches from all currently attached targets.\nThis also clears all targets added by `autoAttachRelated` from the list of targets to watch\nfor creation of related targets.",
+                    "name": "deleteStorageBucket",
+                    "description": "Deletes the Storage Bucket with the given storage key and bucket name.",
                     "experimental": true,
                     "parameters": [
                         {
-                            "name": "autoAttach",
-                            "description": "Whether to auto-attach to related targets.",
-                            "type": "boolean"
-                        },
-                        {
-                            "name": "waitForDebuggerOnStart",
-                            "description": "Whether to pause new targets when attaching to them. Use `Runtime.runIfWaitingForDebugger`\nto run paused targets.",
-                            "type": "boolean"
-                        },
-                        {
-                            "name": "flatten",
-                            "description": "Enables \"flat\" access to the session via specifying sessionId attribute in the commands.\nWe plan to make this the default, deprecate non-flattened mode,\nand eventually retire it. See crbug.com/991325.",
-                            "optional": true,
-                            "type": "boolean"
+                            "name": "bucket",
+                            "$ref": "StorageBucket"
                         }
                     ]
                 },
                 {
-                    "name": "autoAttachRelated",
-                    "description": "Adds the specified target to the list of targets that will be monitored for any related target\ncreation (such as child frames, child workers and new versions of service worker) and reported\nthrough `attachedToTarget`. The specified target is also auto-attached.\nThis cancels the effect of any previous `setAutoAttach` and is also cancelled by subsequent\n`setAutoAttach`. Only available at the Browser target.",
+                    "name": "runBounceTrackingMitigations",
+                    "description": "Deletes state for sites identified as potential bounce trackers, immediately.",
                     "experimental": true,
-                    "parameters": [
-                        {
-                            "name": "targetId",
-                            "$ref": "TargetID"
-                        },
+                    "returns": [
                         {
-                            "name": "waitForDebuggerOnStart",
-                            "description": "Whether to pause new targets when attaching to them. Use `Runtime.runIfWaitingForDebugger`\nto run paused targets.",
-                            "type": "boolean"
+                            "name": "deletedSites",
+                            "type": "array",
+                            "items": {
+                                "type": "string"
+                            }
                         }
                     ]
                 },
                 {
-                    "name": "setDiscoverTargets",
-                    "description": "Controls whether to discover available targets and notify via\n`targetCreated/targetInfoChanged/targetDestroyed` events.",
+                    "name": "setAttributionReportingLocalTestingMode",
+                    "description": "https://wicg.github.io/attribution-reporting-api/",
+                    "experimental": true,
                     "parameters": [
                         {
-                            "name": "discover",
-                            "description": "Whether to discover available targets.",
+                            "name": "enabled",
+                            "description": "If enabled, noise is suppressed and reports are sent immediately.",
                             "type": "boolean"
                         }
                     ]
                 },
                 {
-                    "name": "setRemoteLocations",
-                    "description": "Enables target discovery for the specified locations, when `setDiscoverTargets` was set to\n`true`.",
+                    "name": "setAttributionReportingTracking",
+                    "description": "Enables/disables issuing of Attribution Reporting events.",
                     "experimental": true,
                     "parameters": [
                         {
-                            "name": "locations",
-                            "description": "List of remote locations.",
-                            "type": "array",
-                            "items": {
-                                "$ref": "RemoteLocation"
-                            }
+                            "name": "enable",
+                            "type": "boolean"
                         }
                     ]
                 }
             ],
             "events": [
                 {
-                    "name": "attachedToTarget",
-                    "description": "Issued when attached to target because of auto-attach or `attachToTarget` command.",
-                    "experimental": true,
+                    "name": "cacheStorageContentUpdated",
+                    "description": "A cache's contents have been modified.",
                     "parameters": [
                         {
-                            "name": "sessionId",
-                            "description": "Identifier assigned to the session used to send/receive messages.",
-                            "$ref": "SessionID"
+                            "name": "origin",
+                            "description": "Origin to update.",
+                            "type": "string"
                         },
                         {
-                            "name": "targetInfo",
-                            "$ref": "TargetInfo"
+                            "name": "storageKey",
+                            "description": "Storage key to update.",
+                            "type": "string"
                         },
                         {
-                            "name": "waitingForDebugger",
-                            "type": "boolean"
+                            "name": "bucketId",
+                            "description": "Storage bucket to update.",
+                            "type": "string"
+                        },
+                        {
+                            "name": "cacheName",
+                            "description": "Name of cache in origin.",
+                            "type": "string"
                         }
                     ]
                 },
                 {
-                    "name": "detachedFromTarget",
-                    "description": "Issued when detached from target for any reason (including `detachFromTarget` command). Can be\nissued multiple times per target if multiple sessions have been attached to it.",
-                    "experimental": true,
+                    "name": "cacheStorageListUpdated",
+                    "description": "A cache has been added/deleted.",
                     "parameters": [
                         {
-                            "name": "sessionId",
-                            "description": "Detached session identifier.",
-                            "$ref": "SessionID"
+                            "name": "origin",
+                            "description": "Origin to update.",
+                            "type": "string"
                         },
                         {
-                            "name": "targetId",
-                            "description": "Deprecated.",
-                            "deprecated": true,
-                            "optional": true,
-                            "$ref": "TargetID"
+                            "name": "storageKey",
+                            "description": "Storage key to update.",
+                            "type": "string"
+                        },
+                        {
+                            "name": "bucketId",
+                            "description": "Storage bucket to update.",
+                            "type": "string"
                         }
                     ]
                 },
                 {
-                    "name": "receivedMessageFromTarget",
-                    "description": "Notifies about a new protocol message received from the session (as reported in\n`attachedToTarget` event).",
+                    "name": "indexedDBContentUpdated",
+                    "description": "The origin's IndexedDB object store has been modified.",
                     "parameters": [
                         {
-                            "name": "sessionId",
-                            "description": "Identifier of a session which sends a message.",
-                            "$ref": "SessionID"
+                            "name": "origin",
+                            "description": "Origin to update.",
+                            "type": "string"
                         },
                         {
-                            "name": "message",
+                            "name": "storageKey",
+                            "description": "Storage key to update.",
                             "type": "string"
                         },
                         {
-                            "name": "targetId",
-                            "description": "Deprecated.",
-                            "deprecated": true,
-                            "optional": true,
-                            "$ref": "TargetID"
-                        }
-                    ]
-                },
-                {
-                    "name": "targetCreated",
-                    "description": "Issued when a possible inspection target is created.",
-                    "parameters": [
+                            "name": "bucketId",
+                            "description": "Storage bucket to update.",
+                            "type": "string"
+                        },
                         {
-                            "name": "targetInfo",
-                            "$ref": "TargetInfo"
-                        }
-                    ]
-                },
-                {
-                    "name": "targetDestroyed",
-                    "description": "Issued when a target is destroyed.",
-                    "parameters": [
+                            "name": "databaseName",
+                            "description": "Database to update.",
+                            "type": "string"
+                        },
                         {
-                            "name": "targetId",
-                            "$ref": "TargetID"
+                            "name": "objectStoreName",
+                            "description": "ObjectStore to update.",
+                            "type": "string"
                         }
                     ]
                 },
                 {
-                    "name": "targetCrashed",
-                    "description": "Issued when a target has crashed.",
+                    "name": "indexedDBListUpdated",
+                    "description": "The origin's IndexedDB database list has been modified.",
                     "parameters": [
                         {
-                            "name": "targetId",
-                            "$ref": "TargetID"
+                            "name": "origin",
+                            "description": "Origin to update.",
+                            "type": "string"
                         },
                         {
-                            "name": "status",
-                            "description": "Termination status type.",
+                            "name": "storageKey",
+                            "description": "Storage key to update.",
                             "type": "string"
                         },
                         {
-                            "name": "errorCode",
-                            "description": "Termination error code.",
-                            "type": "integer"
+                            "name": "bucketId",
+                            "description": "Storage bucket to update.",
+                            "type": "string"
                         }
                     ]
                 },
                 {
-                    "name": "targetInfoChanged",
-                    "description": "Issued when some information about a target has changed. This only happens between\n`targetCreated` and `targetDestroyed`.",
+                    "name": "interestGroupAccessed",
+                    "description": "One of the interest groups was accessed by the associated page.",
                     "parameters": [
                         {
-                            "name": "targetInfo",
-                            "$ref": "TargetInfo"
+                            "name": "accessTime",
+                            "$ref": "Network.TimeSinceEpoch"
+                        },
+                        {
+                            "name": "type",
+                            "$ref": "InterestGroupAccessType"
+                        },
+                        {
+                            "name": "ownerOrigin",
+                            "type": "string"
+                        },
+                        {
+                            "name": "name",
+                            "type": "string"
                         }
                     ]
-                }
-            ]
-        },
-        {
-            "domain": "Tethering",
-            "description": "The Tethering domain defines methods and events for browser port binding.",
-            "experimental": true,
-            "commands": [
+                },
                 {
-                    "name": "bind",
-                    "description": "Request browser port binding.",
+                    "name": "sharedStorageAccessed",
+                    "description": "Shared storage was accessed by the associated page.\nThe following parameters are included in all events.",
                     "parameters": [
                         {
-                            "name": "port",
-                            "description": "Port number to bind.",
-                            "type": "integer"
+                            "name": "accessTime",
+                            "description": "Time of the access.",
+                            "$ref": "Network.TimeSinceEpoch"
+                        },
+                        {
+                            "name": "type",
+                            "description": "Enum value indicating the Shared Storage API method invoked.",
+                            "$ref": "SharedStorageAccessType"
+                        },
+                        {
+                            "name": "mainFrameId",
+                            "description": "DevTools Frame Token for the primary frame tree's root.",
+                            "$ref": "Page.FrameId"
+                        },
+                        {
+                            "name": "ownerOrigin",
+                            "description": "Serialized origin for the context that invoked the Shared Storage API.",
+                            "type": "string"
+                        },
+                        {
+                            "name": "params",
+                            "description": "The sub-parameters warapped by `params` are all optional and their\npresence/absence depends on `type`.",
+                            "$ref": "SharedStorageAccessParams"
                         }
                     ]
                 },
                 {
-                    "name": "unbind",
-                    "description": "Request browser port unbinding.",
+                    "name": "storageBucketCreatedOrUpdated",
                     "parameters": [
                         {
-                            "name": "port",
-                            "description": "Port number to unbind.",
-                            "type": "integer"
+                            "name": "bucketInfo",
+                            "$ref": "StorageBucketInfo"
                         }
                     ]
-                }
-            ],
-            "events": [
+                },
                 {
-                    "name": "accepted",
-                    "description": "Informs that port was successfully bound and got a specified connection id.",
+                    "name": "storageBucketDeleted",
                     "parameters": [
                         {
-                            "name": "port",
-                            "description": "Port number that was successfully bound.",
-                            "type": "integer"
+                            "name": "bucketId",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "attributionReportingSourceRegistered",
+                    "description": "TODO(crbug.com/1458532): Add other Attribution Reporting events, e.g.\ntrigger registration.",
+                    "experimental": true,
+                    "parameters": [
+                        {
+                            "name": "registration",
+                            "$ref": "AttributionReportingSourceRegistration"
                         },
                         {
-                            "name": "connectionId",
-                            "description": "Connection id to be used.",
-                            "type": "string"
+                            "name": "result",
+                            "$ref": "AttributionReportingSourceRegistrationResult"
                         }
                     ]
                 }
             ]
         },
         {
-            "domain": "Tracing",
+            "domain": "SystemInfo",
+            "description": "The SystemInfo domain defines methods and events for querying low-level system information.",
             "experimental": true,
-            "dependencies": [
-                "IO"
-            ],
             "types": [
                 {
-                    "id": "MemoryDumpConfig",
-                    "description": "Configuration for memory dump. Used only when \"memory-infra\" category is enabled.",
-                    "type": "object"
-                },
-                {
-                    "id": "TraceConfig",
+                    "id": "GPUDevice",
+                    "description": "Describes a single graphics processor (GPU).",
                     "type": "object",
                     "properties": [
                         {
-                            "name": "recordMode",
-                            "description": "Controls how the trace buffer stores data.",
-                            "optional": true,
-                            "type": "string",
-                            "enum": [
-                                "recordUntilFull",
-                                "recordContinuously",
-                                "recordAsMuchAsPossible",
-                                "echoToConsole"
-                            ]
+                            "name": "vendorId",
+                            "description": "PCI ID of the GPU vendor, if available; 0 otherwise.",
+                            "type": "number"
                         },
                         {
-                            "name": "enableSampling",
-                            "description": "Turns on JavaScript stack sampling.",
-                            "optional": true,
-                            "type": "boolean"
+                            "name": "deviceId",
+                            "description": "PCI ID of the GPU device, if available; 0 otherwise.",
+                            "type": "number"
                         },
                         {
-                            "name": "enableSystrace",
-                            "description": "Turns on system tracing.",
+                            "name": "subSysId",
+                            "description": "Sub sys ID of the GPU, only available on Windows.",
                             "optional": true,
-                            "type": "boolean"
+                            "type": "number"
                         },
                         {
-                            "name": "enableArgumentFilter",
-                            "description": "Turns on argument filter.",
+                            "name": "revision",
+                            "description": "Revision of the GPU, only available on Windows.",
                             "optional": true,
-                            "type": "boolean"
+                            "type": "number"
                         },
                         {
-                            "name": "includedCategories",
-                            "description": "Included category filters.",
-                            "optional": true,
-                            "type": "array",
-                            "items": {
-                                "type": "string"
-                            }
+                            "name": "vendorString",
+                            "description": "String description of the GPU vendor, if the PCI ID is not available.",
+                            "type": "string"
                         },
                         {
-                            "name": "excludedCategories",
-                            "description": "Excluded category filters.",
-                            "optional": true,
-                            "type": "array",
-                            "items": {
-                                "type": "string"
-                            }
+                            "name": "deviceString",
+                            "description": "String description of the GPU device, if the PCI ID is not available.",
+                            "type": "string"
                         },
                         {
-                            "name": "syntheticDelays",
-                            "description": "Configuration to synthesize the delays in tracing.",
-                            "optional": true,
-                            "type": "array",
-                            "items": {
-                                "type": "string"
-                            }
+                            "name": "driverVendor",
+                            "description": "String description of the GPU driver vendor.",
+                            "type": "string"
                         },
                         {
-                            "name": "memoryDumpConfig",
-                            "description": "Configuration for memory dump triggers. Used only when \"memory-infra\" category is enabled.",
-                            "optional": true,
-                            "$ref": "MemoryDumpConfig"
+                            "name": "driverVersion",
+                            "description": "String description of the GPU driver version.",
+                            "type": "string"
                         }
                     ]
                 },
                 {
-                    "id": "StreamFormat",
-                    "description": "Data format of a trace. Can be either the legacy JSON format or the\nprotocol buffer format. Note that the JSON format will be deprecated soon.",
-                    "type": "string",
-                    "enum": [
-                        "json",
-                        "proto"
+                    "id": "Size",
+                    "description": "Describes the width and height dimensions of an entity.",
+                    "type": "object",
+                    "properties": [
+                        {
+                            "name": "width",
+                            "description": "Width in pixels.",
+                            "type": "integer"
+                        },
+                        {
+                            "name": "height",
+                            "description": "Height in pixels.",
+                            "type": "integer"
+                        }
                     ]
                 },
                 {
-                    "id": "StreamCompression",
-                    "description": "Compression type to use for traces returned via streams.",
-                    "type": "string",
-                    "enum": [
-                        "none",
-                        "gzip"
+                    "id": "VideoDecodeAcceleratorCapability",
+                    "description": "Describes a supported video decoding profile with its associated minimum and\nmaximum resolutions.",
+                    "type": "object",
+                    "properties": [
+                        {
+                            "name": "profile",
+                            "description": "Video codec profile that is supported, e.g. VP9 Profile 2.",
+                            "type": "string"
+                        },
+                        {
+                            "name": "maxResolution",
+                            "description": "Maximum video dimensions in pixels supported for this |profile|.",
+                            "$ref": "Size"
+                        },
+                        {
+                            "name": "minResolution",
+                            "description": "Minimum video dimensions in pixels supported for this |profile|.",
+                            "$ref": "Size"
+                        }
                     ]
                 },
                 {
-                    "id": "MemoryDumpLevelOfDetail",
-                    "description": "Details exposed when memory request explicitly declared.\nKeep consistent with memory_dump_request_args.h and\nmemory_instrumentation.mojom",
-                    "type": "string",
-                    "enum": [
-                        "background",
-                        "light",
-                        "detailed"
+                    "id": "VideoEncodeAcceleratorCapability",
+                    "description": "Describes a supported video encoding profile with its associated maximum\nresolution and maximum framerate.",
+                    "type": "object",
+                    "properties": [
+                        {
+                            "name": "profile",
+                            "description": "Video codec profile that is supported, e.g H264 Main.",
+                            "type": "string"
+                        },
+                        {
+                            "name": "maxResolution",
+                            "description": "Maximum video dimensions in pixels supported for this |profile|.",
+                            "$ref": "Size"
+                        },
+                        {
+                            "name": "maxFramerateNumerator",
+                            "description": "Maximum encoding framerate in frames per second supported for this\n|profile|, as fraction's numerator and denominator, e.g. 24/1 fps,\n24000/1001 fps, etc.",
+                            "type": "integer"
+                        },
+                        {
+                            "name": "maxFramerateDenominator",
+                            "type": "integer"
+                        }
                     ]
                 },
                 {
-                    "id": "TracingBackend",
-                    "description": "Backend type to use for tracing. `chrome` uses the Chrome-integrated\ntracing service and is supported on all platforms. `system` is only\nsupported on Chrome OS and uses the Perfetto system tracing service.\n`auto` chooses `system` when the perfettoConfig provided to Tracing.start\nspecifies at least one non-Chrome data source; otherwise uses `chrome`.",
+                    "id": "SubsamplingFormat",
+                    "description": "YUV subsampling type of the pixels of a given image.",
                     "type": "string",
                     "enum": [
-                        "auto",
-                        "chrome",
-                        "system"
+                        "yuv420",
+                        "yuv422",
+                        "yuv444"
                     ]
-                }
-            ],
-            "commands": [
-                {
-                    "name": "end",
-                    "description": "Stop trace events collection."
                 },
                 {
-                    "name": "getCategories",
-                    "description": "Gets supported tracing categories.",
-                    "returns": [
-                        {
-                            "name": "categories",
-                            "description": "A list of supported tracing categories.",
-                            "type": "array",
-                            "items": {
-                                "type": "string"
-                            }
-                        }
+                    "id": "ImageType",
+                    "description": "Image format of a given image.",
+                    "type": "string",
+                    "enum": [
+                        "jpeg",
+                        "webp",
+                        "unknown"
                     ]
                 },
                 {
-                    "name": "recordClockSyncMarker",
-                    "description": "Record a clock sync marker in the trace.",
-                    "parameters": [
-                        {
-                            "name": "syncId",
-                            "description": "The ID of this clock sync marker",
-                            "type": "string"
-                        }
-                    ]
-                },
-                {
-                    "name": "requestMemoryDump",
-                    "description": "Request a global memory dump.",
-                    "parameters": [
+                    "id": "ImageDecodeAcceleratorCapability",
+                    "description": "Describes a supported image decoding profile with its associated minimum and\nmaximum resolutions and subsampling.",
+                    "type": "object",
+                    "properties": [
                         {
-                            "name": "deterministic",
-                            "description": "Enables more deterministic results by forcing garbage collection",
-                            "optional": true,
-                            "type": "boolean"
+                            "name": "imageType",
+                            "description": "Image coded, e.g. Jpeg.",
+                            "$ref": "ImageType"
                         },
                         {
-                            "name": "levelOfDetail",
-                            "description": "Specifies level of details in memory dump. Defaults to \"detailed\".",
-                            "optional": true,
-                            "$ref": "MemoryDumpLevelOfDetail"
-                        }
-                    ],
-                    "returns": [
+                            "name": "maxDimensions",
+                            "description": "Maximum supported dimensions of the image in pixels.",
+                            "$ref": "Size"
+                        },
                         {
-                            "name": "dumpGuid",
-                            "description": "GUID of the resulting global memory dump.",
-                            "type": "string"
+                            "name": "minDimensions",
+                            "description": "Minimum supported dimensions of the image in pixels.",
+                            "$ref": "Size"
                         },
                         {
-                            "name": "success",
-                            "description": "True iff the global memory dump succeeded.",
-                            "type": "boolean"
+                            "name": "subsamplings",
+                            "description": "Optional array of supported subsampling formats, e.g. 4:2:0, if known.",
+                            "type": "array",
+                            "items": {
+                                "$ref": "SubsamplingFormat"
+                            }
                         }
                     ]
                 },
                 {
-                    "name": "start",
-                    "description": "Start trace events collection.",
-                    "parameters": [
+                    "id": "GPUInfo",
+                    "description": "Provides information about the GPU(s) on the system.",
+                    "type": "object",
+                    "properties": [
                         {
-                            "name": "categories",
-                            "description": "Category/tag filter",
-                            "deprecated": true,
-                            "optional": true,
-                            "type": "string"
+                            "name": "devices",
+                            "description": "The graphics devices on the system. Element 0 is the primary GPU.",
+                            "type": "array",
+                            "items": {
+                                "$ref": "GPUDevice"
+                            }
                         },
                         {
-                            "name": "options",
-                            "description": "Tracing options",
-                            "deprecated": true,
+                            "name": "auxAttributes",
+                            "description": "An optional dictionary of additional GPU related attributes.",
                             "optional": true,
-                            "type": "string"
+                            "type": "object"
                         },
                         {
-                            "name": "bufferUsageReportingInterval",
-                            "description": "If set, the agent will issue bufferUsage events at this interval, specified in milliseconds",
+                            "name": "featureStatus",
+                            "description": "An optional dictionary of graphics features and their status.",
                             "optional": true,
-                            "type": "number"
+                            "type": "object"
                         },
                         {
-                            "name": "transferMode",
-                            "description": "Whether to report trace events as series of dataCollected events or to save trace to a\nstream (defaults to `ReportEvents`).",
-                            "optional": true,
-                            "type": "string",
-                            "enum": [
-                                "ReportEvents",
-                                "ReturnAsStream"
-                            ]
+                            "name": "driverBugWorkarounds",
+                            "description": "An optional array of GPU driver bug workarounds.",
+                            "type": "array",
+                            "items": {
+                                "type": "string"
+                            }
                         },
                         {
-                            "name": "streamFormat",
-                            "description": "Trace data format to use. This only applies when using `ReturnAsStream`\ntransfer mode (defaults to `json`).",
-                            "optional": true,
-                            "$ref": "StreamFormat"
+                            "name": "videoDecoding",
+                            "description": "Supported accelerated video decoding capabilities.",
+                            "type": "array",
+                            "items": {
+                                "$ref": "VideoDecodeAcceleratorCapability"
+                            }
                         },
                         {
-                            "name": "streamCompression",
-                            "description": "Compression format to use. This only applies when using `ReturnAsStream`\ntransfer mode (defaults to `none`)",
-                            "optional": true,
-                            "$ref": "StreamCompression"
+                            "name": "videoEncoding",
+                            "description": "Supported accelerated video encoding capabilities.",
+                            "type": "array",
+                            "items": {
+                                "$ref": "VideoEncodeAcceleratorCapability"
+                            }
                         },
                         {
-                            "name": "traceConfig",
-                            "optional": true,
-                            "$ref": "TraceConfig"
-                        },
+                            "name": "imageDecoding",
+                            "description": "Supported accelerated image decoding capabilities.",
+                            "type": "array",
+                            "items": {
+                                "$ref": "ImageDecodeAcceleratorCapability"
+                            }
+                        }
+                    ]
+                },
+                {
+                    "id": "ProcessInfo",
+                    "description": "Represents process info.",
+                    "type": "object",
+                    "properties": [
                         {
-                            "name": "perfettoConfig",
-                            "description": "Base64-encoded serialized perfetto.protos.TraceConfig protobuf message\nWhen specified, the parameters `categories`, `options`, `traceConfig`\nare ignored. (Encoded as a base64 string when passed over JSON)",
-                            "optional": true,
+                            "name": "type",
+                            "description": "Specifies process type.",
                             "type": "string"
                         },
                         {
-                            "name": "tracingBackend",
-                            "description": "Backend type (defaults to `auto`)",
-                            "optional": true,
-                            "$ref": "TracingBackend"
+                            "name": "id",
+                            "description": "Specifies process id.",
+                            "type": "integer"
+                        },
+                        {
+                            "name": "cpuTime",
+                            "description": "Specifies cumulative CPU usage in seconds across all threads of the\nprocess since the process start.",
+                            "type": "number"
                         }
                     ]
                 }
             ],
-            "events": [
+            "commands": [
                 {
-                    "name": "bufferUsage",
-                    "parameters": [
+                    "name": "getInfo",
+                    "description": "Returns information about the system.",
+                    "returns": [
                         {
-                            "name": "percentFull",
-                            "description": "A number in range [0..1] that indicates the used size of event buffer as a fraction of its\ntotal size.",
-                            "optional": true,
-                            "type": "number"
+                            "name": "gpu",
+                            "description": "Information about the GPUs on the system.",
+                            "$ref": "GPUInfo"
                         },
                         {
-                            "name": "eventCount",
-                            "description": "An approximate number of events in the trace log.",
-                            "optional": true,
-                            "type": "number"
+                            "name": "modelName",
+                            "description": "A platform-dependent description of the model of the machine. On Mac OS, this is, for\nexample, 'MacBookPro'. Will be the empty string if not supported.",
+                            "type": "string"
                         },
                         {
-                            "name": "value",
-                            "description": "A number in range [0..1] that indicates the used size of event buffer as a fraction of its\ntotal size.",
-                            "optional": true,
-                            "type": "number"
+                            "name": "modelVersion",
+                            "description": "A platform-dependent description of the version of the machine. On Mac OS, this is, for\nexample, '10.1'. Will be the empty string if not supported.",
+                            "type": "string"
+                        },
+                        {
+                            "name": "commandLine",
+                            "description": "The command line string used to launch the browser. Will be the empty string if not\nsupported.",
+                            "type": "string"
                         }
                     ]
                 },
                 {
-                    "name": "dataCollected",
-                    "description": "Contains an bucket of collected trace events. When tracing is stopped collected events will be\nsend as a sequence of dataCollected events followed by tracingComplete event.",
+                    "name": "getFeatureState",
+                    "description": "Returns information about the feature state.",
                     "parameters": [
                         {
-                            "name": "value",
-                            "type": "array",
-                            "items": {
-                                "type": "object"
-                            }
+                            "name": "featureState",
+                            "type": "string"
+                        }
+                    ],
+                    "returns": [
+                        {
+                            "name": "featureEnabled",
+                            "type": "boolean"
                         }
                     ]
                 },
                 {
-                    "name": "tracingComplete",
-                    "description": "Signals that tracing is stopped and there is no trace buffers pending flush, all data were\ndelivered via dataCollected events.",
-                    "parameters": [
-                        {
-                            "name": "dataLossOccurred",
-                            "description": "Indicates whether some trace data is known to have been lost, e.g. because the trace ring\nbuffer wrapped around.",
-                            "type": "boolean"
-                        },
-                        {
-                            "name": "stream",
-                            "description": "A handle of the stream that holds resulting trace data.",
-                            "optional": true,
-                            "$ref": "IO.StreamHandle"
-                        },
-                        {
-                            "name": "traceFormat",
-                            "description": "Trace data format of returned stream.",
-                            "optional": true,
-                            "$ref": "StreamFormat"
-                        },
+                    "name": "getProcessInfo",
+                    "description": "Returns information about all running processes.",
+                    "returns": [
                         {
-                            "name": "streamCompression",
-                            "description": "Compression format of returned stream.",
-                            "optional": true,
-                            "$ref": "StreamCompression"
+                            "name": "processInfo",
+                            "description": "An array of process info blocks.",
+                            "type": "array",
+                            "items": {
+                                "$ref": "ProcessInfo"
+                            }
                         }
                     ]
                 }
             ]
         },
         {
-            "domain": "Fetch",
-            "description": "A domain for letting clients substitute browser's network layer with client code.",
-            "dependencies": [
-                "Network",
-                "IO",
-                "Page"
-            ],
+            "domain": "Target",
+            "description": "Supports additional targets discovery and allows to attach to them.",
             "types": [
                 {
-                    "id": "RequestId",
-                    "description": "Unique request identifier.",
+                    "id": "TargetID",
                     "type": "string"
                 },
                 {
-                    "id": "RequestStage",
-                    "description": "Stages of the request to handle. Request will intercept before the request is\nsent. Response will intercept after the response is received (but before response\nbody is received).",
-                    "type": "string",
-                    "enum": [
-                        "Request",
-                        "Response"
-                    ]
+                    "id": "SessionID",
+                    "description": "Unique identifier of attached debugging session.",
+                    "type": "string"
                 },
                 {
-                    "id": "RequestPattern",
+                    "id": "TargetInfo",
                     "type": "object",
                     "properties": [
                         {
-                            "name": "urlPattern",
-                            "description": "Wildcards (`'*'` -> zero or more, `'?'` -> exactly one) are allowed. Escape character is\nbackslash. Omitting is equivalent to `\"*\"`.",
-                            "optional": true,
+                            "name": "targetId",
+                            "$ref": "TargetID"
+                        },
+                        {
+                            "name": "type",
                             "type": "string"
                         },
                         {
-                            "name": "resourceType",
-                            "description": "If set, only requests for matching resource types will be intercepted.",
+                            "name": "title",
+                            "type": "string"
+                        },
+                        {
+                            "name": "url",
+                            "type": "string"
+                        },
+                        {
+                            "name": "attached",
+                            "description": "Whether the target has an attached client.",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "openerId",
+                            "description": "Opener target Id",
                             "optional": true,
-                            "$ref": "Network.ResourceType"
+                            "$ref": "TargetID"
                         },
                         {
-                            "name": "requestStage",
-                            "description": "Stage at which to begin intercepting requests. Default is Request.",
+                            "name": "canAccessOpener",
+                            "description": "Whether the target has access to the originating window.",
+                            "experimental": true,
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "openerFrameId",
+                            "description": "Frame id of originating window (is only set if target has an opener).",
+                            "experimental": true,
                             "optional": true,
-                            "$ref": "RequestStage"
-                        }
-                    ]
-                },
-                {
-                    "id": "HeaderEntry",
-                    "description": "Response HTTP header entry",
-                    "type": "object",
-                    "properties": [
+                            "$ref": "Page.FrameId"
+                        },
                         {
-                            "name": "name",
-                            "type": "string"
+                            "name": "browserContextId",
+                            "experimental": true,
+                            "optional": true,
+                            "$ref": "Browser.BrowserContextID"
                         },
                         {
-                            "name": "value",
+                            "name": "subtype",
+                            "description": "Provides additional details for specific target types. For example, for\nthe type of \"page\", this may be set to \"portal\" or \"prerender\".",
+                            "experimental": true,
+                            "optional": true,
                             "type": "string"
                         }
                     ]
                 },
                 {
-                    "id": "AuthChallenge",
-                    "description": "Authorization challenge for HTTP status code 401 or 407.",
+                    "id": "FilterEntry",
+                    "description": "A filter used by target query/discovery/auto-attach operations.",
+                    "experimental": true,
                     "type": "object",
                     "properties": [
                         {
-                            "name": "source",
-                            "description": "Source of the authentication challenge.",
+                            "name": "exclude",
+                            "description": "If set, causes exclusion of mathcing targets from the list.",
                             "optional": true,
-                            "type": "string",
-                            "enum": [
-                                "Server",
-                                "Proxy"
-                            ]
-                        },
-                        {
-                            "name": "origin",
-                            "description": "Origin of the challenger.",
-                            "type": "string"
-                        },
-                        {
-                            "name": "scheme",
-                            "description": "The authentication scheme used, such as basic or digest",
-                            "type": "string"
+                            "type": "boolean"
                         },
                         {
-                            "name": "realm",
-                            "description": "The realm of the challenge. May be empty.",
+                            "name": "type",
+                            "description": "If not present, matches any type.",
+                            "optional": true,
                             "type": "string"
                         }
                     ]
                 },
                 {
-                    "id": "AuthChallengeResponse",
-                    "description": "Response to an AuthChallenge.",
+                    "id": "TargetFilter",
+                    "description": "The entries in TargetFilter are matched sequentially against targets and\nthe first entry that matches determines if the target is included or not,\ndepending on the value of `exclude` field in the entry.\nIf filter is not specified, the one assumed is\n[{type: \"browser\", exclude: true}, {type: \"tab\", exclude: true}, {}]\n(i.e. include everything but `browser` and `tab`).",
+                    "experimental": true,
+                    "type": "array",
+                    "items": {
+                        "$ref": "FilterEntry"
+                    }
+                },
+                {
+                    "id": "RemoteLocation",
+                    "experimental": true,
                     "type": "object",
                     "properties": [
                         {
-                            "name": "response",
-                            "description": "The decision on what to do in response to the authorization challenge.  Default means\ndeferring to the default behavior of the net stack, which will likely either the Cancel\nauthentication or display a popup dialog box.",
-                            "type": "string",
-                            "enum": [
-                                "Default",
-                                "CancelAuth",
-                                "ProvideCredentials"
-                            ]
-                        },
-                        {
-                            "name": "username",
-                            "description": "The username to provide, possibly empty. Should only be set if response is\nProvideCredentials.",
-                            "optional": true,
+                            "name": "host",
                             "type": "string"
                         },
                         {
-                            "name": "password",
-                            "description": "The password to provide, possibly empty. Should only be set if response is\nProvideCredentials.",
-                            "optional": true,
-                            "type": "string"
+                            "name": "port",
+                            "type": "integer"
                         }
                     ]
                 }
             ],
             "commands": [
                 {
-                    "name": "disable",
-                    "description": "Disables the fetch domain."
+                    "name": "activateTarget",
+                    "description": "Activates (focuses) the target.",
+                    "parameters": [
+                        {
+                            "name": "targetId",
+                            "$ref": "TargetID"
+                        }
+                    ]
                 },
                 {
-                    "name": "enable",
-                    "description": "Enables issuing of requestPaused events. A request will be paused until client\ncalls one of failRequest, fulfillRequest or continueRequest/continueWithAuth.",
+                    "name": "attachToTarget",
+                    "description": "Attaches to the target with given id.",
                     "parameters": [
                         {
-                            "name": "patterns",
-                            "description": "If specified, only requests matching any of these patterns will produce\nfetchRequested event and will be paused until clients response. If not set,\nall requests will be affected.",
-                            "optional": true,
-                            "type": "array",
-                            "items": {
-                                "$ref": "RequestPattern"
-                            }
+                            "name": "targetId",
+                            "$ref": "TargetID"
                         },
                         {
-                            "name": "handleAuthRequests",
-                            "description": "If true, authRequired events will be issued and requests will be paused\nexpecting a call to continueWithAuth.",
+                            "name": "flatten",
+                            "description": "Enables \"flat\" access to the session via specifying sessionId attribute in the commands.\nWe plan to make this the default, deprecate non-flattened mode,\nand eventually retire it. See crbug.com/991325.",
                             "optional": true,
                             "type": "boolean"
                         }
+                    ],
+                    "returns": [
+                        {
+                            "name": "sessionId",
+                            "description": "Id assigned to the session.",
+                            "$ref": "SessionID"
+                        }
                     ]
                 },
                 {
-                    "name": "failRequest",
-                    "description": "Causes the request to fail with specified reason.",
-                    "parameters": [
-                        {
-                            "name": "requestId",
-                            "description": "An id the client received in requestPaused event.",
-                            "$ref": "RequestId"
-                        },
+                    "name": "attachToBrowserTarget",
+                    "description": "Attaches to the browser target, only uses flat sessionId mode.",
+                    "experimental": true,
+                    "returns": [
                         {
-                            "name": "errorReason",
-                            "description": "Causes the request to fail with the given reason.",
-                            "$ref": "Network.ErrorReason"
+                            "name": "sessionId",
+                            "description": "Id assigned to the session.",
+                            "$ref": "SessionID"
                         }
                     ]
                 },
                 {
-                    "name": "fulfillRequest",
-                    "description": "Provides response to the request.",
+                    "name": "closeTarget",
+                    "description": "Closes the target. If the target is a page that gets closed too.",
                     "parameters": [
                         {
-                            "name": "requestId",
-                            "description": "An id the client received in requestPaused event.",
-                            "$ref": "RequestId"
-                        },
-                        {
-                            "name": "responseCode",
-                            "description": "An HTTP response code.",
-                            "type": "integer"
-                        },
-                        {
-                            "name": "responseHeaders",
-                            "description": "Response headers.",
-                            "optional": true,
-                            "type": "array",
-                            "items": {
-                                "$ref": "HeaderEntry"
-                            }
-                        },
+                            "name": "targetId",
+                            "$ref": "TargetID"
+                        }
+                    ],
+                    "returns": [
                         {
-                            "name": "binaryResponseHeaders",
-                            "description": "Alternative way of specifying response headers as a \\0-separated\nseries of name: value pairs. Prefer the above method unless you\nneed to represent some non-UTF8 values that can't be transmitted\nover the protocol as text. (Encoded as a base64 string when passed over JSON)",
-                            "optional": true,
-                            "type": "string"
-                        },
+                            "name": "success",
+                            "description": "Always set to true. If an error occurs, the response indicates protocol error.",
+                            "deprecated": true,
+                            "type": "boolean"
+                        }
+                    ]
+                },
+                {
+                    "name": "exposeDevToolsProtocol",
+                    "description": "Inject object to the target's main frame that provides a communication\nchannel with browser target.\n\nInjected object will be available as `window[bindingName]`.\n\nThe object has the follwing API:\n- `binding.send(json)` - a method to send messages over the remote debugging protocol\n- `binding.onmessage = json => handleMessage(json)` - a callback that will be called for the protocol notifications and command responses.",
+                    "experimental": true,
+                    "parameters": [
                         {
-                            "name": "body",
-                            "description": "A response body. If absent, original response body will be used if\nthe request is intercepted at the response stage and empty body\nwill be used if the request is intercepted at the request stage. (Encoded as a base64 string when passed over JSON)",
-                            "optional": true,
-                            "type": "string"
+                            "name": "targetId",
+                            "$ref": "TargetID"
                         },
                         {
-                            "name": "responsePhrase",
-                            "description": "A textual representation of responseCode.\nIf absent, a standard phrase matching responseCode is used.",
+                            "name": "bindingName",
+                            "description": "Binding name, 'cdp' if not specified.",
                             "optional": true,
                             "type": "string"
                         }
                     ]
                 },
                 {
-                    "name": "continueRequest",
-                    "description": "Continues the request, optionally modifying some of its parameters.",
+                    "name": "createBrowserContext",
+                    "description": "Creates a new empty BrowserContext. Similar to an incognito profile but you can have more than\none.",
+                    "experimental": true,
                     "parameters": [
                         {
-                            "name": "requestId",
-                            "description": "An id the client received in requestPaused event.",
-                            "$ref": "RequestId"
-                        },
-                        {
-                            "name": "url",
-                            "description": "If set, the request url will be modified in a way that's not observable by page.",
+                            "name": "disposeOnDetach",
+                            "description": "If specified, disposes this context when debugging session disconnects.",
                             "optional": true,
-                            "type": "string"
+                            "type": "boolean"
                         },
                         {
-                            "name": "method",
-                            "description": "If set, the request method is overridden.",
+                            "name": "proxyServer",
+                            "description": "Proxy server, similar to the one passed to --proxy-server",
                             "optional": true,
                             "type": "string"
                         },
                         {
-                            "name": "postData",
-                            "description": "If set, overrides the post data in the request. (Encoded as a base64 string when passed over JSON)",
+                            "name": "proxyBypassList",
+                            "description": "Proxy bypass list, similar to the one passed to --proxy-bypass-list",
                             "optional": true,
                             "type": "string"
                         },
                         {
-                            "name": "headers",
-                            "description": "If set, overrides the request headers.",
+                            "name": "originsWithUniversalNetworkAccess",
+                            "description": "An optional list of origins to grant unlimited cross-origin access to.\nParts of the URL other than those constituting origin are ignored.",
                             "optional": true,
                             "type": "array",
                             "items": {
-                                "$ref": "HeaderEntry"
+                                "type": "string"
                             }
-                        },
-                        {
-                            "name": "interceptResponse",
-                            "description": "If set, overrides response interception behavior for this request.",
-                            "experimental": true,
-                            "optional": true,
-                            "type": "boolean"
                         }
-                    ]
-                },
-                {
-                    "name": "continueWithAuth",
-                    "description": "Continues a request supplying authChallengeResponse following authRequired event.",
-                    "parameters": [
-                        {
-                            "name": "requestId",
-                            "description": "An id the client received in authRequired event.",
-                            "$ref": "RequestId"
-                        },
+                    ],
+                    "returns": [
                         {
-                            "name": "authChallengeResponse",
-                            "description": "Response to  with an authChallenge.",
-                            "$ref": "AuthChallengeResponse"
+                            "name": "browserContextId",
+                            "description": "The id of the context created.",
+                            "$ref": "Browser.BrowserContextID"
                         }
                     ]
                 },
                 {
-                    "name": "continueResponse",
-                    "description": "Continues loading of the paused response, optionally modifying the\nresponse headers. If either responseCode or headers are modified, all of them\nmust be present.",
+                    "name": "getBrowserContexts",
+                    "description": "Returns all browser contexts created with `Target.createBrowserContext` method.",
                     "experimental": true,
+                    "returns": [
+                        {
+                            "name": "browserContextIds",
+                            "description": "An array of browser context ids.",
+                            "type": "array",
+                            "items": {
+                                "$ref": "Browser.BrowserContextID"
+                            }
+                        }
+                    ]
+                },
+                {
+                    "name": "createTarget",
+                    "description": "Creates a new page.",
                     "parameters": [
                         {
-                            "name": "requestId",
-                            "description": "An id the client received in requestPaused event.",
-                            "$ref": "RequestId"
+                            "name": "url",
+                            "description": "The initial URL the page will be navigated to. An empty string indicates about:blank.",
+                            "type": "string"
                         },
                         {
-                            "name": "responseCode",
-                            "description": "An HTTP response code. If absent, original response code will be used.",
+                            "name": "width",
+                            "description": "Frame width in DIP (headless chrome only).",
                             "optional": true,
                             "type": "integer"
                         },
                         {
-                            "name": "responsePhrase",
-                            "description": "A textual representation of responseCode.\nIf absent, a standard phrase matching responseCode is used.",
+                            "name": "height",
+                            "description": "Frame height in DIP (headless chrome only).",
                             "optional": true,
-                            "type": "string"
+                            "type": "integer"
                         },
                         {
-                            "name": "responseHeaders",
-                            "description": "Response headers. If absent, original response headers will be used.",
+                            "name": "browserContextId",
+                            "description": "The browser context to create the page in.",
+                            "experimental": true,
                             "optional": true,
-                            "type": "array",
-                            "items": {
-                                "$ref": "HeaderEntry"
-                            }
+                            "$ref": "Browser.BrowserContextID"
                         },
                         {
-                            "name": "binaryResponseHeaders",
-                            "description": "Alternative way of specifying response headers as a \\0-separated\nseries of name: value pairs. Prefer the above method unless you\nneed to represent some non-UTF8 values that can't be transmitted\nover the protocol as text. (Encoded as a base64 string when passed over JSON)",
+                            "name": "enableBeginFrameControl",
+                            "description": "Whether BeginFrames for this target will be controlled via DevTools (headless chrome only,\nnot supported on MacOS yet, false by default).",
+                            "experimental": true,
                             "optional": true,
-                            "type": "string"
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "newWindow",
+                            "description": "Whether to create a new Window or Tab (chrome-only, false by default).",
+                            "optional": true,
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "background",
+                            "description": "Whether to create the target in background or foreground (chrome-only,\nfalse by default).",
+                            "optional": true,
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "forTab",
+                            "description": "Whether to create the target of type \"tab\".",
+                            "experimental": true,
+                            "optional": true,
+                            "type": "boolean"
+                        }
+                    ],
+                    "returns": [
+                        {
+                            "name": "targetId",
+                            "description": "The id of the page opened.",
+                            "$ref": "TargetID"
                         }
                     ]
                 },
                 {
-                    "name": "getResponseBody",
-                    "description": "Causes the body of the response to be received from the server and\nreturned as a single string. May only be issued for a request that\nis paused in the Response stage and is mutually exclusive with\ntakeResponseBodyForInterceptionAsStream. Calling other methods that\naffect the request or disabling fetch domain before body is received\nresults in an undefined behavior.",
+                    "name": "detachFromTarget",
+                    "description": "Detaches session with given id.",
                     "parameters": [
                         {
-                            "name": "requestId",
-                            "description": "Identifier for the intercepted request to get body for.",
-                            "$ref": "RequestId"
+                            "name": "sessionId",
+                            "description": "Session to detach.",
+                            "optional": true,
+                            "$ref": "SessionID"
+                        },
+                        {
+                            "name": "targetId",
+                            "description": "Deprecated.",
+                            "deprecated": true,
+                            "optional": true,
+                            "$ref": "TargetID"
+                        }
+                    ]
+                },
+                {
+                    "name": "disposeBrowserContext",
+                    "description": "Deletes a BrowserContext. All the belonging pages will be closed without calling their\nbeforeunload hooks.",
+                    "experimental": true,
+                    "parameters": [
+                        {
+                            "name": "browserContextId",
+                            "$ref": "Browser.BrowserContextID"
+                        }
+                    ]
+                },
+                {
+                    "name": "getTargetInfo",
+                    "description": "Returns information about a target.",
+                    "experimental": true,
+                    "parameters": [
+                        {
+                            "name": "targetId",
+                            "optional": true,
+                            "$ref": "TargetID"
                         }
                     ],
                     "returns": [
                         {
-                            "name": "body",
-                            "description": "Response body.",
+                            "name": "targetInfo",
+                            "$ref": "TargetInfo"
+                        }
+                    ]
+                },
+                {
+                    "name": "getTargets",
+                    "description": "Retrieves a list of available targets.",
+                    "parameters": [
+                        {
+                            "name": "filter",
+                            "description": "Only targets matching filter will be reported. If filter is not specified\nand target discovery is currently enabled, a filter used for target discovery\nis used for consistency.",
+                            "experimental": true,
+                            "optional": true,
+                            "$ref": "TargetFilter"
+                        }
+                    ],
+                    "returns": [
+                        {
+                            "name": "targetInfos",
+                            "description": "The list of targets.",
+                            "type": "array",
+                            "items": {
+                                "$ref": "TargetInfo"
+                            }
+                        }
+                    ]
+                },
+                {
+                    "name": "sendMessageToTarget",
+                    "description": "Sends protocol message over session with given id.\nConsider using flat mode instead; see commands attachToTarget, setAutoAttach,\nand crbug.com/991325.",
+                    "deprecated": true,
+                    "parameters": [
+                        {
+                            "name": "message",
                             "type": "string"
                         },
                         {
-                            "name": "base64Encoded",
-                            "description": "True, if content was sent as base64.",
+                            "name": "sessionId",
+                            "description": "Identifier of the session.",
+                            "optional": true,
+                            "$ref": "SessionID"
+                        },
+                        {
+                            "name": "targetId",
+                            "description": "Deprecated.",
+                            "deprecated": true,
+                            "optional": true,
+                            "$ref": "TargetID"
+                        }
+                    ]
+                },
+                {
+                    "name": "setAutoAttach",
+                    "description": "Controls whether to automatically attach to new targets which are considered to be related to\nthis one. When turned on, attaches to all existing related targets as well. When turned off,\nautomatically detaches from all currently attached targets.\nThis also clears all targets added by `autoAttachRelated` from the list of targets to watch\nfor creation of related targets.",
+                    "experimental": true,
+                    "parameters": [
+                        {
+                            "name": "autoAttach",
+                            "description": "Whether to auto-attach to related targets.",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "waitForDebuggerOnStart",
+                            "description": "Whether to pause new targets when attaching to them. Use `Runtime.runIfWaitingForDebugger`\nto run paused targets.",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "flatten",
+                            "description": "Enables \"flat\" access to the session via specifying sessionId attribute in the commands.\nWe plan to make this the default, deprecate non-flattened mode,\nand eventually retire it. See crbug.com/991325.",
+                            "optional": true,
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "filter",
+                            "description": "Only targets matching filter will be attached.",
+                            "experimental": true,
+                            "optional": true,
+                            "$ref": "TargetFilter"
+                        }
+                    ]
+                },
+                {
+                    "name": "autoAttachRelated",
+                    "description": "Adds the specified target to the list of targets that will be monitored for any related target\ncreation (such as child frames, child workers and new versions of service worker) and reported\nthrough `attachedToTarget`. The specified target is also auto-attached.\nThis cancels the effect of any previous `setAutoAttach` and is also cancelled by subsequent\n`setAutoAttach`. Only available at the Browser target.",
+                    "experimental": true,
+                    "parameters": [
+                        {
+                            "name": "targetId",
+                            "$ref": "TargetID"
+                        },
+                        {
+                            "name": "waitForDebuggerOnStart",
+                            "description": "Whether to pause new targets when attaching to them. Use `Runtime.runIfWaitingForDebugger`\nto run paused targets.",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "filter",
+                            "description": "Only targets matching filter will be attached.",
+                            "experimental": true,
+                            "optional": true,
+                            "$ref": "TargetFilter"
+                        }
+                    ]
+                },
+                {
+                    "name": "setDiscoverTargets",
+                    "description": "Controls whether to discover available targets and notify via\n`targetCreated/targetInfoChanged/targetDestroyed` events.",
+                    "parameters": [
+                        {
+                            "name": "discover",
+                            "description": "Whether to discover available targets.",
                             "type": "boolean"
+                        },
+                        {
+                            "name": "filter",
+                            "description": "Only targets matching filter will be attached. If `discover` is false,\n`filter` must be omitted or empty.",
+                            "experimental": true,
+                            "optional": true,
+                            "$ref": "TargetFilter"
+                        }
+                    ]
+                },
+                {
+                    "name": "setRemoteLocations",
+                    "description": "Enables target discovery for the specified locations, when `setDiscoverTargets` was set to\n`true`.",
+                    "experimental": true,
+                    "parameters": [
+                        {
+                            "name": "locations",
+                            "description": "List of remote locations.",
+                            "type": "array",
+                            "items": {
+                                "$ref": "RemoteLocation"
+                            }
+                        }
+                    ]
+                }
+            ],
+            "events": [
+                {
+                    "name": "attachedToTarget",
+                    "description": "Issued when attached to target because of auto-attach or `attachToTarget` command.",
+                    "experimental": true,
+                    "parameters": [
+                        {
+                            "name": "sessionId",
+                            "description": "Identifier assigned to the session used to send/receive messages.",
+                            "$ref": "SessionID"
+                        },
+                        {
+                            "name": "targetInfo",
+                            "$ref": "TargetInfo"
+                        },
+                        {
+                            "name": "waitingForDebugger",
+                            "type": "boolean"
+                        }
+                    ]
+                },
+                {
+                    "name": "detachedFromTarget",
+                    "description": "Issued when detached from target for any reason (including `detachFromTarget` command). Can be\nissued multiple times per target if multiple sessions have been attached to it.",
+                    "experimental": true,
+                    "parameters": [
+                        {
+                            "name": "sessionId",
+                            "description": "Detached session identifier.",
+                            "$ref": "SessionID"
+                        },
+                        {
+                            "name": "targetId",
+                            "description": "Deprecated.",
+                            "deprecated": true,
+                            "optional": true,
+                            "$ref": "TargetID"
+                        }
+                    ]
+                },
+                {
+                    "name": "receivedMessageFromTarget",
+                    "description": "Notifies about a new protocol message received from the session (as reported in\n`attachedToTarget` event).",
+                    "parameters": [
+                        {
+                            "name": "sessionId",
+                            "description": "Identifier of a session which sends a message.",
+                            "$ref": "SessionID"
+                        },
+                        {
+                            "name": "message",
+                            "type": "string"
+                        },
+                        {
+                            "name": "targetId",
+                            "description": "Deprecated.",
+                            "deprecated": true,
+                            "optional": true,
+                            "$ref": "TargetID"
+                        }
+                    ]
+                },
+                {
+                    "name": "targetCreated",
+                    "description": "Issued when a possible inspection target is created.",
+                    "parameters": [
+                        {
+                            "name": "targetInfo",
+                            "$ref": "TargetInfo"
+                        }
+                    ]
+                },
+                {
+                    "name": "targetDestroyed",
+                    "description": "Issued when a target is destroyed.",
+                    "parameters": [
+                        {
+                            "name": "targetId",
+                            "$ref": "TargetID"
+                        }
+                    ]
+                },
+                {
+                    "name": "targetCrashed",
+                    "description": "Issued when a target has crashed.",
+                    "parameters": [
+                        {
+                            "name": "targetId",
+                            "$ref": "TargetID"
+                        },
+                        {
+                            "name": "status",
+                            "description": "Termination status type.",
+                            "type": "string"
+                        },
+                        {
+                            "name": "errorCode",
+                            "description": "Termination error code.",
+                            "type": "integer"
+                        }
+                    ]
+                },
+                {
+                    "name": "targetInfoChanged",
+                    "description": "Issued when some information about a target has changed. This only happens between\n`targetCreated` and `targetDestroyed`.",
+                    "parameters": [
+                        {
+                            "name": "targetInfo",
+                            "$ref": "TargetInfo"
+                        }
+                    ]
+                }
+            ]
+        },
+        {
+            "domain": "Tethering",
+            "description": "The Tethering domain defines methods and events for browser port binding.",
+            "experimental": true,
+            "commands": [
+                {
+                    "name": "bind",
+                    "description": "Request browser port binding.",
+                    "parameters": [
+                        {
+                            "name": "port",
+                            "description": "Port number to bind.",
+                            "type": "integer"
+                        }
+                    ]
+                },
+                {
+                    "name": "unbind",
+                    "description": "Request browser port unbinding.",
+                    "parameters": [
+                        {
+                            "name": "port",
+                            "description": "Port number to unbind.",
+                            "type": "integer"
+                        }
+                    ]
+                }
+            ],
+            "events": [
+                {
+                    "name": "accepted",
+                    "description": "Informs that port was successfully bound and got a specified connection id.",
+                    "parameters": [
+                        {
+                            "name": "port",
+                            "description": "Port number that was successfully bound.",
+                            "type": "integer"
+                        },
+                        {
+                            "name": "connectionId",
+                            "description": "Connection id to be used.",
+                            "type": "string"
+                        }
+                    ]
+                }
+            ]
+        },
+        {
+            "domain": "Tracing",
+            "experimental": true,
+            "dependencies": [
+                "IO"
+            ],
+            "types": [
+                {
+                    "id": "MemoryDumpConfig",
+                    "description": "Configuration for memory dump. Used only when \"memory-infra\" category is enabled.",
+                    "type": "object"
+                },
+                {
+                    "id": "TraceConfig",
+                    "type": "object",
+                    "properties": [
+                        {
+                            "name": "recordMode",
+                            "description": "Controls how the trace buffer stores data.",
+                            "optional": true,
+                            "type": "string",
+                            "enum": [
+                                "recordUntilFull",
+                                "recordContinuously",
+                                "recordAsMuchAsPossible",
+                                "echoToConsole"
+                            ]
+                        },
+                        {
+                            "name": "traceBufferSizeInKb",
+                            "description": "Size of the trace buffer in kilobytes. If not specified or zero is passed, a default value\nof 200 MB would be used.",
+                            "optional": true,
+                            "type": "number"
+                        },
+                        {
+                            "name": "enableSampling",
+                            "description": "Turns on JavaScript stack sampling.",
+                            "optional": true,
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "enableSystrace",
+                            "description": "Turns on system tracing.",
+                            "optional": true,
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "enableArgumentFilter",
+                            "description": "Turns on argument filter.",
+                            "optional": true,
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "includedCategories",
+                            "description": "Included category filters.",
+                            "optional": true,
+                            "type": "array",
+                            "items": {
+                                "type": "string"
+                            }
+                        },
+                        {
+                            "name": "excludedCategories",
+                            "description": "Excluded category filters.",
+                            "optional": true,
+                            "type": "array",
+                            "items": {
+                                "type": "string"
+                            }
+                        },
+                        {
+                            "name": "syntheticDelays",
+                            "description": "Configuration to synthesize the delays in tracing.",
+                            "optional": true,
+                            "type": "array",
+                            "items": {
+                                "type": "string"
+                            }
+                        },
+                        {
+                            "name": "memoryDumpConfig",
+                            "description": "Configuration for memory dump triggers. Used only when \"memory-infra\" category is enabled.",
+                            "optional": true,
+                            "$ref": "MemoryDumpConfig"
+                        }
+                    ]
+                },
+                {
+                    "id": "StreamFormat",
+                    "description": "Data format of a trace. Can be either the legacy JSON format or the\nprotocol buffer format. Note that the JSON format will be deprecated soon.",
+                    "type": "string",
+                    "enum": [
+                        "json",
+                        "proto"
+                    ]
+                },
+                {
+                    "id": "StreamCompression",
+                    "description": "Compression type to use for traces returned via streams.",
+                    "type": "string",
+                    "enum": [
+                        "none",
+                        "gzip"
+                    ]
+                },
+                {
+                    "id": "MemoryDumpLevelOfDetail",
+                    "description": "Details exposed when memory request explicitly declared.\nKeep consistent with memory_dump_request_args.h and\nmemory_instrumentation.mojom",
+                    "type": "string",
+                    "enum": [
+                        "background",
+                        "light",
+                        "detailed"
+                    ]
+                },
+                {
+                    "id": "TracingBackend",
+                    "description": "Backend type to use for tracing. `chrome` uses the Chrome-integrated\ntracing service and is supported on all platforms. `system` is only\nsupported on Chrome OS and uses the Perfetto system tracing service.\n`auto` chooses `system` when the perfettoConfig provided to Tracing.start\nspecifies at least one non-Chrome data source; otherwise uses `chrome`.",
+                    "type": "string",
+                    "enum": [
+                        "auto",
+                        "chrome",
+                        "system"
+                    ]
+                }
+            ],
+            "commands": [
+                {
+                    "name": "end",
+                    "description": "Stop trace events collection."
+                },
+                {
+                    "name": "getCategories",
+                    "description": "Gets supported tracing categories.",
+                    "returns": [
+                        {
+                            "name": "categories",
+                            "description": "A list of supported tracing categories.",
+                            "type": "array",
+                            "items": {
+                                "type": "string"
+                            }
+                        }
+                    ]
+                },
+                {
+                    "name": "recordClockSyncMarker",
+                    "description": "Record a clock sync marker in the trace.",
+                    "parameters": [
+                        {
+                            "name": "syncId",
+                            "description": "The ID of this clock sync marker",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "requestMemoryDump",
+                    "description": "Request a global memory dump.",
+                    "parameters": [
+                        {
+                            "name": "deterministic",
+                            "description": "Enables more deterministic results by forcing garbage collection",
+                            "optional": true,
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "levelOfDetail",
+                            "description": "Specifies level of details in memory dump. Defaults to \"detailed\".",
+                            "optional": true,
+                            "$ref": "MemoryDumpLevelOfDetail"
+                        }
+                    ],
+                    "returns": [
+                        {
+                            "name": "dumpGuid",
+                            "description": "GUID of the resulting global memory dump.",
+                            "type": "string"
+                        },
+                        {
+                            "name": "success",
+                            "description": "True iff the global memory dump succeeded.",
+                            "type": "boolean"
+                        }
+                    ]
+                },
+                {
+                    "name": "start",
+                    "description": "Start trace events collection.",
+                    "parameters": [
+                        {
+                            "name": "categories",
+                            "description": "Category/tag filter",
+                            "deprecated": true,
+                            "optional": true,
+                            "type": "string"
+                        },
+                        {
+                            "name": "options",
+                            "description": "Tracing options",
+                            "deprecated": true,
+                            "optional": true,
+                            "type": "string"
+                        },
+                        {
+                            "name": "bufferUsageReportingInterval",
+                            "description": "If set, the agent will issue bufferUsage events at this interval, specified in milliseconds",
+                            "optional": true,
+                            "type": "number"
+                        },
+                        {
+                            "name": "transferMode",
+                            "description": "Whether to report trace events as series of dataCollected events or to save trace to a\nstream (defaults to `ReportEvents`).",
+                            "optional": true,
+                            "type": "string",
+                            "enum": [
+                                "ReportEvents",
+                                "ReturnAsStream"
+                            ]
+                        },
+                        {
+                            "name": "streamFormat",
+                            "description": "Trace data format to use. This only applies when using `ReturnAsStream`\ntransfer mode (defaults to `json`).",
+                            "optional": true,
+                            "$ref": "StreamFormat"
+                        },
+                        {
+                            "name": "streamCompression",
+                            "description": "Compression format to use. This only applies when using `ReturnAsStream`\ntransfer mode (defaults to `none`)",
+                            "optional": true,
+                            "$ref": "StreamCompression"
+                        },
+                        {
+                            "name": "traceConfig",
+                            "optional": true,
+                            "$ref": "TraceConfig"
+                        },
+                        {
+                            "name": "perfettoConfig",
+                            "description": "Base64-encoded serialized perfetto.protos.TraceConfig protobuf message\nWhen specified, the parameters `categories`, `options`, `traceConfig`\nare ignored. (Encoded as a base64 string when passed over JSON)",
+                            "optional": true,
+                            "type": "string"
+                        },
+                        {
+                            "name": "tracingBackend",
+                            "description": "Backend type (defaults to `auto`)",
+                            "optional": true,
+                            "$ref": "TracingBackend"
+                        }
+                    ]
+                }
+            ],
+            "events": [
+                {
+                    "name": "bufferUsage",
+                    "parameters": [
+                        {
+                            "name": "percentFull",
+                            "description": "A number in range [0..1] that indicates the used size of event buffer as a fraction of its\ntotal size.",
+                            "optional": true,
+                            "type": "number"
+                        },
+                        {
+                            "name": "eventCount",
+                            "description": "An approximate number of events in the trace log.",
+                            "optional": true,
+                            "type": "number"
+                        },
+                        {
+                            "name": "value",
+                            "description": "A number in range [0..1] that indicates the used size of event buffer as a fraction of its\ntotal size.",
+                            "optional": true,
+                            "type": "number"
+                        }
+                    ]
+                },
+                {
+                    "name": "dataCollected",
+                    "description": "Contains a bucket of collected trace events. When tracing is stopped collected events will be\nsent as a sequence of dataCollected events followed by tracingComplete event.",
+                    "parameters": [
+                        {
+                            "name": "value",
+                            "type": "array",
+                            "items": {
+                                "type": "object"
+                            }
+                        }
+                    ]
+                },
+                {
+                    "name": "tracingComplete",
+                    "description": "Signals that tracing is stopped and there is no trace buffers pending flush, all data were\ndelivered via dataCollected events.",
+                    "parameters": [
+                        {
+                            "name": "dataLossOccurred",
+                            "description": "Indicates whether some trace data is known to have been lost, e.g. because the trace ring\nbuffer wrapped around.",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "stream",
+                            "description": "A handle of the stream that holds resulting trace data.",
+                            "optional": true,
+                            "$ref": "IO.StreamHandle"
+                        },
+                        {
+                            "name": "traceFormat",
+                            "description": "Trace data format of returned stream.",
+                            "optional": true,
+                            "$ref": "StreamFormat"
+                        },
+                        {
+                            "name": "streamCompression",
+                            "description": "Compression format of returned stream.",
+                            "optional": true,
+                            "$ref": "StreamCompression"
+                        }
+                    ]
+                }
+            ]
+        },
+        {
+            "domain": "Fetch",
+            "description": "A domain for letting clients substitute browser's network layer with client code.",
+            "dependencies": [
+                "Network",
+                "IO",
+                "Page"
+            ],
+            "types": [
+                {
+                    "id": "RequestId",
+                    "description": "Unique request identifier.",
+                    "type": "string"
+                },
+                {
+                    "id": "RequestStage",
+                    "description": "Stages of the request to handle. Request will intercept before the request is\nsent. Response will intercept after the response is received (but before response\nbody is received).",
+                    "type": "string",
+                    "enum": [
+                        "Request",
+                        "Response"
+                    ]
+                },
+                {
+                    "id": "RequestPattern",
+                    "type": "object",
+                    "properties": [
+                        {
+                            "name": "urlPattern",
+                            "description": "Wildcards (`'*'` -> zero or more, `'?'` -> exactly one) are allowed. Escape character is\nbackslash. Omitting is equivalent to `\"*\"`.",
+                            "optional": true,
+                            "type": "string"
+                        },
+                        {
+                            "name": "resourceType",
+                            "description": "If set, only requests for matching resource types will be intercepted.",
+                            "optional": true,
+                            "$ref": "Network.ResourceType"
+                        },
+                        {
+                            "name": "requestStage",
+                            "description": "Stage at which to begin intercepting requests. Default is Request.",
+                            "optional": true,
+                            "$ref": "RequestStage"
+                        }
+                    ]
+                },
+                {
+                    "id": "HeaderEntry",
+                    "description": "Response HTTP header entry",
+                    "type": "object",
+                    "properties": [
+                        {
+                            "name": "name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "value",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "id": "AuthChallenge",
+                    "description": "Authorization challenge for HTTP status code 401 or 407.",
+                    "type": "object",
+                    "properties": [
+                        {
+                            "name": "source",
+                            "description": "Source of the authentication challenge.",
+                            "optional": true,
+                            "type": "string",
+                            "enum": [
+                                "Server",
+                                "Proxy"
+                            ]
+                        },
+                        {
+                            "name": "origin",
+                            "description": "Origin of the challenger.",
+                            "type": "string"
+                        },
+                        {
+                            "name": "scheme",
+                            "description": "The authentication scheme used, such as basic or digest",
+                            "type": "string"
+                        },
+                        {
+                            "name": "realm",
+                            "description": "The realm of the challenge. May be empty.",
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "id": "AuthChallengeResponse",
+                    "description": "Response to an AuthChallenge.",
+                    "type": "object",
+                    "properties": [
+                        {
+                            "name": "response",
+                            "description": "The decision on what to do in response to the authorization challenge.  Default means\ndeferring to the default behavior of the net stack, which will likely either the Cancel\nauthentication or display a popup dialog box.",
+                            "type": "string",
+                            "enum": [
+                                "Default",
+                                "CancelAuth",
+                                "ProvideCredentials"
+                            ]
+                        },
+                        {
+                            "name": "username",
+                            "description": "The username to provide, possibly empty. Should only be set if response is\nProvideCredentials.",
+                            "optional": true,
+                            "type": "string"
+                        },
+                        {
+                            "name": "password",
+                            "description": "The password to provide, possibly empty. Should only be set if response is\nProvideCredentials.",
+                            "optional": true,
+                            "type": "string"
+                        }
+                    ]
+                }
+            ],
+            "commands": [
+                {
+                    "name": "disable",
+                    "description": "Disables the fetch domain."
+                },
+                {
+                    "name": "enable",
+                    "description": "Enables issuing of requestPaused events. A request will be paused until client\ncalls one of failRequest, fulfillRequest or continueRequest/continueWithAuth.",
+                    "parameters": [
+                        {
+                            "name": "patterns",
+                            "description": "If specified, only requests matching any of these patterns will produce\nfetchRequested event and will be paused until clients response. If not set,\nall requests will be affected.",
+                            "optional": true,
+                            "type": "array",
+                            "items": {
+                                "$ref": "RequestPattern"
+                            }
+                        },
+                        {
+                            "name": "handleAuthRequests",
+                            "description": "If true, authRequired events will be issued and requests will be paused\nexpecting a call to continueWithAuth.",
+                            "optional": true,
+                            "type": "boolean"
+                        }
+                    ]
+                },
+                {
+                    "name": "failRequest",
+                    "description": "Causes the request to fail with specified reason.",
+                    "parameters": [
+                        {
+                            "name": "requestId",
+                            "description": "An id the client received in requestPaused event.",
+                            "$ref": "RequestId"
+                        },
+                        {
+                            "name": "errorReason",
+                            "description": "Causes the request to fail with the given reason.",
+                            "$ref": "Network.ErrorReason"
+                        }
+                    ]
+                },
+                {
+                    "name": "fulfillRequest",
+                    "description": "Provides response to the request.",
+                    "parameters": [
+                        {
+                            "name": "requestId",
+                            "description": "An id the client received in requestPaused event.",
+                            "$ref": "RequestId"
+                        },
+                        {
+                            "name": "responseCode",
+                            "description": "An HTTP response code.",
+                            "type": "integer"
+                        },
+                        {
+                            "name": "responseHeaders",
+                            "description": "Response headers.",
+                            "optional": true,
+                            "type": "array",
+                            "items": {
+                                "$ref": "HeaderEntry"
+                            }
+                        },
+                        {
+                            "name": "binaryResponseHeaders",
+                            "description": "Alternative way of specifying response headers as a \\0-separated\nseries of name: value pairs. Prefer the above method unless you\nneed to represent some non-UTF8 values that can't be transmitted\nover the protocol as text. (Encoded as a base64 string when passed over JSON)",
+                            "optional": true,
+                            "type": "string"
+                        },
+                        {
+                            "name": "body",
+                            "description": "A response body. If absent, original response body will be used if\nthe request is intercepted at the response stage and empty body\nwill be used if the request is intercepted at the request stage. (Encoded as a base64 string when passed over JSON)",
+                            "optional": true,
+                            "type": "string"
+                        },
+                        {
+                            "name": "responsePhrase",
+                            "description": "A textual representation of responseCode.\nIf absent, a standard phrase matching responseCode is used.",
+                            "optional": true,
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "continueRequest",
+                    "description": "Continues the request, optionally modifying some of its parameters.",
+                    "parameters": [
+                        {
+                            "name": "requestId",
+                            "description": "An id the client received in requestPaused event.",
+                            "$ref": "RequestId"
+                        },
+                        {
+                            "name": "url",
+                            "description": "If set, the request url will be modified in a way that's not observable by page.",
+                            "optional": true,
+                            "type": "string"
+                        },
+                        {
+                            "name": "method",
+                            "description": "If set, the request method is overridden.",
+                            "optional": true,
+                            "type": "string"
+                        },
+                        {
+                            "name": "postData",
+                            "description": "If set, overrides the post data in the request. (Encoded as a base64 string when passed over JSON)",
+                            "optional": true,
+                            "type": "string"
+                        },
+                        {
+                            "name": "headers",
+                            "description": "If set, overrides the request headers. Note that the overrides do not\nextend to subsequent redirect hops, if a redirect happens. Another override\nmay be applied to a different request produced by a redirect.",
+                            "optional": true,
+                            "type": "array",
+                            "items": {
+                                "$ref": "HeaderEntry"
+                            }
+                        },
+                        {
+                            "name": "interceptResponse",
+                            "description": "If set, overrides response interception behavior for this request.",
+                            "experimental": true,
+                            "optional": true,
+                            "type": "boolean"
+                        }
+                    ]
+                },
+                {
+                    "name": "continueWithAuth",
+                    "description": "Continues a request supplying authChallengeResponse following authRequired event.",
+                    "parameters": [
+                        {
+                            "name": "requestId",
+                            "description": "An id the client received in authRequired event.",
+                            "$ref": "RequestId"
+                        },
+                        {
+                            "name": "authChallengeResponse",
+                            "description": "Response to  with an authChallenge.",
+                            "$ref": "AuthChallengeResponse"
+                        }
+                    ]
+                },
+                {
+                    "name": "continueResponse",
+                    "description": "Continues loading of the paused response, optionally modifying the\nresponse headers. If either responseCode or headers are modified, all of them\nmust be present.",
+                    "experimental": true,
+                    "parameters": [
+                        {
+                            "name": "requestId",
+                            "description": "An id the client received in requestPaused event.",
+                            "$ref": "RequestId"
+                        },
+                        {
+                            "name": "responseCode",
+                            "description": "An HTTP response code. If absent, original response code will be used.",
+                            "optional": true,
+                            "type": "integer"
+                        },
+                        {
+                            "name": "responsePhrase",
+                            "description": "A textual representation of responseCode.\nIf absent, a standard phrase matching responseCode is used.",
+                            "optional": true,
+                            "type": "string"
+                        },
+                        {
+                            "name": "responseHeaders",
+                            "description": "Response headers. If absent, original response headers will be used.",
+                            "optional": true,
+                            "type": "array",
+                            "items": {
+                                "$ref": "HeaderEntry"
+                            }
+                        },
+                        {
+                            "name": "binaryResponseHeaders",
+                            "description": "Alternative way of specifying response headers as a \\0-separated\nseries of name: value pairs. Prefer the above method unless you\nneed to represent some non-UTF8 values that can't be transmitted\nover the protocol as text. (Encoded as a base64 string when passed over JSON)",
+                            "optional": true,
+                            "type": "string"
+                        }
+                    ]
+                },
+                {
+                    "name": "getResponseBody",
+                    "description": "Causes the body of the response to be received from the server and\nreturned as a single string. May only be issued for a request that\nis paused in the Response stage and is mutually exclusive with\ntakeResponseBodyForInterceptionAsStream. Calling other methods that\naffect the request or disabling fetch domain before body is received\nresults in an undefined behavior.",
+                    "parameters": [
+                        {
+                            "name": "requestId",
+                            "description": "Identifier for the intercepted request to get body for.",
+                            "$ref": "RequestId"
+                        }
+                    ],
+                    "returns": [
+                        {
+                            "name": "body",
+                            "description": "Response body.",
+                            "type": "string"
+                        },
+                        {
+                            "name": "base64Encoded",
+                            "description": "True, if content was sent as base64.",
+                            "type": "boolean"
+                        }
+                    ]
+                },
+                {
+                    "name": "takeResponseBodyAsStream",
+                    "description": "Returns a handle to the stream representing the response body.\nThe request must be paused in the HeadersReceived stage.\nNote that after this command the request can't be continued\nas is -- client either needs to cancel it or to provide the\nresponse body.\nThe stream only supports sequential read, IO.read will fail if the position\nis specified.\nThis method is mutually exclusive with getResponseBody.\nCalling other methods that affect the request or disabling fetch\ndomain before body is received results in an undefined behavior.",
+                    "parameters": [
+                        {
+                            "name": "requestId",
+                            "$ref": "RequestId"
+                        }
+                    ],
+                    "returns": [
+                        {
+                            "name": "stream",
+                            "$ref": "IO.StreamHandle"
+                        }
+                    ]
+                }
+            ],
+            "events": [
+                {
+                    "name": "requestPaused",
+                    "description": "Issued when the domain is enabled and the request URL matches the\nspecified filter. The request is paused until the client responds\nwith one of continueRequest, failRequest or fulfillRequest.\nThe stage of the request can be determined by presence of responseErrorReason\nand responseStatusCode -- the request is at the response stage if either\nof these fields is present and in the request stage otherwise.",
+                    "parameters": [
+                        {
+                            "name": "requestId",
+                            "description": "Each request the page makes will have a unique id.",
+                            "$ref": "RequestId"
+                        },
+                        {
+                            "name": "request",
+                            "description": "The details of the request.",
+                            "$ref": "Network.Request"
+                        },
+                        {
+                            "name": "frameId",
+                            "description": "The id of the frame that initiated the request.",
+                            "$ref": "Page.FrameId"
+                        },
+                        {
+                            "name": "resourceType",
+                            "description": "How the requested resource will be used.",
+                            "$ref": "Network.ResourceType"
+                        },
+                        {
+                            "name": "responseErrorReason",
+                            "description": "Response error if intercepted at response stage.",
+                            "optional": true,
+                            "$ref": "Network.ErrorReason"
+                        },
+                        {
+                            "name": "responseStatusCode",
+                            "description": "Response code if intercepted at response stage.",
+                            "optional": true,
+                            "type": "integer"
+                        },
+                        {
+                            "name": "responseStatusText",
+                            "description": "Response status text if intercepted at response stage.",
+                            "optional": true,
+                            "type": "string"
+                        },
+                        {
+                            "name": "responseHeaders",
+                            "description": "Response headers if intercepted at the response stage.",
+                            "optional": true,
+                            "type": "array",
+                            "items": {
+                                "$ref": "HeaderEntry"
+                            }
+                        },
+                        {
+                            "name": "networkId",
+                            "description": "If the intercepted request had a corresponding Network.requestWillBeSent event fired for it,\nthen this networkId will be the same as the requestId present in the requestWillBeSent event.",
+                            "optional": true,
+                            "$ref": "Network.RequestId"
+                        },
+                        {
+                            "name": "redirectedRequestId",
+                            "description": "If the request is due to a redirect response from the server, the id of the request that\nhas caused the redirect.",
+                            "experimental": true,
+                            "optional": true,
+                            "$ref": "RequestId"
+                        }
+                    ]
+                },
+                {
+                    "name": "authRequired",
+                    "description": "Issued when the domain is enabled with handleAuthRequests set to true.\nThe request is paused until client responds with continueWithAuth.",
+                    "parameters": [
+                        {
+                            "name": "requestId",
+                            "description": "Each request the page makes will have a unique id.",
+                            "$ref": "RequestId"
+                        },
+                        {
+                            "name": "request",
+                            "description": "The details of the request.",
+                            "$ref": "Network.Request"
+                        },
+                        {
+                            "name": "frameId",
+                            "description": "The id of the frame that initiated the request.",
+                            "$ref": "Page.FrameId"
+                        },
+                        {
+                            "name": "resourceType",
+                            "description": "How the requested resource will be used.",
+                            "$ref": "Network.ResourceType"
+                        },
+                        {
+                            "name": "authChallenge",
+                            "description": "Details of the Authorization Challenge encountered.\nIf this is set, client should respond with continueRequest that\ncontains AuthChallengeResponse.",
+                            "$ref": "AuthChallenge"
+                        }
+                    ]
+                }
+            ]
+        },
+        {
+            "domain": "WebAudio",
+            "description": "This domain allows inspection of Web Audio API.\nhttps://webaudio.github.io/web-audio-api/",
+            "experimental": true,
+            "types": [
+                {
+                    "id": "GraphObjectId",
+                    "description": "An unique ID for a graph object (AudioContext, AudioNode, AudioParam) in Web Audio API",
+                    "type": "string"
+                },
+                {
+                    "id": "ContextType",
+                    "description": "Enum of BaseAudioContext types",
+                    "type": "string",
+                    "enum": [
+                        "realtime",
+                        "offline"
+                    ]
+                },
+                {
+                    "id": "ContextState",
+                    "description": "Enum of AudioContextState from the spec",
+                    "type": "string",
+                    "enum": [
+                        "suspended",
+                        "running",
+                        "closed"
+                    ]
+                },
+                {
+                    "id": "NodeType",
+                    "description": "Enum of AudioNode types",
+                    "type": "string"
+                },
+                {
+                    "id": "ChannelCountMode",
+                    "description": "Enum of AudioNode::ChannelCountMode from the spec",
+                    "type": "string",
+                    "enum": [
+                        "clamped-max",
+                        "explicit",
+                        "max"
+                    ]
+                },
+                {
+                    "id": "ChannelInterpretation",
+                    "description": "Enum of AudioNode::ChannelInterpretation from the spec",
+                    "type": "string",
+                    "enum": [
+                        "discrete",
+                        "speakers"
+                    ]
+                },
+                {
+                    "id": "ParamType",
+                    "description": "Enum of AudioParam types",
+                    "type": "string"
+                },
+                {
+                    "id": "AutomationRate",
+                    "description": "Enum of AudioParam::AutomationRate from the spec",
+                    "type": "string",
+                    "enum": [
+                        "a-rate",
+                        "k-rate"
+                    ]
+                },
+                {
+                    "id": "ContextRealtimeData",
+                    "description": "Fields in AudioContext that change in real-time.",
+                    "type": "object",
+                    "properties": [
+                        {
+                            "name": "currentTime",
+                            "description": "The current context time in second in BaseAudioContext.",
+                            "type": "number"
+                        },
+                        {
+                            "name": "renderCapacity",
+                            "description": "The time spent on rendering graph divided by render quantum duration,\nand multiplied by 100. 100 means the audio renderer reached the full\ncapacity and glitch may occur.",
+                            "type": "number"
+                        },
+                        {
+                            "name": "callbackIntervalMean",
+                            "description": "A running mean of callback interval.",
+                            "type": "number"
+                        },
+                        {
+                            "name": "callbackIntervalVariance",
+                            "description": "A running variance of callback interval.",
+                            "type": "number"
+                        }
+                    ]
+                },
+                {
+                    "id": "BaseAudioContext",
+                    "description": "Protocol object for BaseAudioContext",
+                    "type": "object",
+                    "properties": [
+                        {
+                            "name": "contextId",
+                            "$ref": "GraphObjectId"
+                        },
+                        {
+                            "name": "contextType",
+                            "$ref": "ContextType"
+                        },
+                        {
+                            "name": "contextState",
+                            "$ref": "ContextState"
+                        },
+                        {
+                            "name": "realtimeData",
+                            "optional": true,
+                            "$ref": "ContextRealtimeData"
+                        },
+                        {
+                            "name": "callbackBufferSize",
+                            "description": "Platform-dependent callback buffer size.",
+                            "type": "number"
+                        },
+                        {
+                            "name": "maxOutputChannelCount",
+                            "description": "Number of output channels supported by audio hardware in use.",
+                            "type": "number"
+                        },
+                        {
+                            "name": "sampleRate",
+                            "description": "Context sample rate.",
+                            "type": "number"
+                        }
+                    ]
+                },
+                {
+                    "id": "AudioListener",
+                    "description": "Protocol object for AudioListener",
+                    "type": "object",
+                    "properties": [
+                        {
+                            "name": "listenerId",
+                            "$ref": "GraphObjectId"
+                        },
+                        {
+                            "name": "contextId",
+                            "$ref": "GraphObjectId"
+                        }
+                    ]
+                },
+                {
+                    "id": "AudioNode",
+                    "description": "Protocol object for AudioNode",
+                    "type": "object",
+                    "properties": [
+                        {
+                            "name": "nodeId",
+                            "$ref": "GraphObjectId"
+                        },
+                        {
+                            "name": "contextId",
+                            "$ref": "GraphObjectId"
+                        },
+                        {
+                            "name": "nodeType",
+                            "$ref": "NodeType"
+                        },
+                        {
+                            "name": "numberOfInputs",
+                            "type": "number"
+                        },
+                        {
+                            "name": "numberOfOutputs",
+                            "type": "number"
+                        },
+                        {
+                            "name": "channelCount",
+                            "type": "number"
+                        },
+                        {
+                            "name": "channelCountMode",
+                            "$ref": "ChannelCountMode"
+                        },
+                        {
+                            "name": "channelInterpretation",
+                            "$ref": "ChannelInterpretation"
+                        }
+                    ]
+                },
+                {
+                    "id": "AudioParam",
+                    "description": "Protocol object for AudioParam",
+                    "type": "object",
+                    "properties": [
+                        {
+                            "name": "paramId",
+                            "$ref": "GraphObjectId"
+                        },
+                        {
+                            "name": "nodeId",
+                            "$ref": "GraphObjectId"
+                        },
+                        {
+                            "name": "contextId",
+                            "$ref": "GraphObjectId"
+                        },
+                        {
+                            "name": "paramType",
+                            "$ref": "ParamType"
+                        },
+                        {
+                            "name": "rate",
+                            "$ref": "AutomationRate"
+                        },
+                        {
+                            "name": "defaultValue",
+                            "type": "number"
+                        },
+                        {
+                            "name": "minValue",
+                            "type": "number"
+                        },
+                        {
+                            "name": "maxValue",
+                            "type": "number"
+                        }
+                    ]
+                }
+            ],
+            "commands": [
+                {
+                    "name": "enable",
+                    "description": "Enables the WebAudio domain and starts sending context lifetime events."
+                },
+                {
+                    "name": "disable",
+                    "description": "Disables the WebAudio domain."
+                },
+                {
+                    "name": "getRealtimeData",
+                    "description": "Fetch the realtime data from the registered contexts.",
+                    "parameters": [
+                        {
+                            "name": "contextId",
+                            "$ref": "GraphObjectId"
+                        }
+                    ],
+                    "returns": [
+                        {
+                            "name": "realtimeData",
+                            "$ref": "ContextRealtimeData"
+                        }
+                    ]
+                }
+            ],
+            "events": [
+                {
+                    "name": "contextCreated",
+                    "description": "Notifies that a new BaseAudioContext has been created.",
+                    "parameters": [
+                        {
+                            "name": "context",
+                            "$ref": "BaseAudioContext"
+                        }
+                    ]
+                },
+                {
+                    "name": "contextWillBeDestroyed",
+                    "description": "Notifies that an existing BaseAudioContext will be destroyed.",
+                    "parameters": [
+                        {
+                            "name": "contextId",
+                            "$ref": "GraphObjectId"
+                        }
+                    ]
+                },
+                {
+                    "name": "contextChanged",
+                    "description": "Notifies that existing BaseAudioContext has changed some properties (id stays the same)..",
+                    "parameters": [
+                        {
+                            "name": "context",
+                            "$ref": "BaseAudioContext"
+                        }
+                    ]
+                },
+                {
+                    "name": "audioListenerCreated",
+                    "description": "Notifies that the construction of an AudioListener has finished.",
+                    "parameters": [
+                        {
+                            "name": "listener",
+                            "$ref": "AudioListener"
+                        }
+                    ]
+                },
+                {
+                    "name": "audioListenerWillBeDestroyed",
+                    "description": "Notifies that a new AudioListener has been created.",
+                    "parameters": [
+                        {
+                            "name": "contextId",
+                            "$ref": "GraphObjectId"
+                        },
+                        {
+                            "name": "listenerId",
+                            "$ref": "GraphObjectId"
+                        }
+                    ]
+                },
+                {
+                    "name": "audioNodeCreated",
+                    "description": "Notifies that a new AudioNode has been created.",
+                    "parameters": [
+                        {
+                            "name": "node",
+                            "$ref": "AudioNode"
+                        }
+                    ]
+                },
+                {
+                    "name": "audioNodeWillBeDestroyed",
+                    "description": "Notifies that an existing AudioNode has been destroyed.",
+                    "parameters": [
+                        {
+                            "name": "contextId",
+                            "$ref": "GraphObjectId"
+                        },
+                        {
+                            "name": "nodeId",
+                            "$ref": "GraphObjectId"
                         }
                     ]
                 },
                 {
-                    "name": "takeResponseBodyAsStream",
-                    "description": "Returns a handle to the stream representing the response body.\nThe request must be paused in the HeadersReceived stage.\nNote that after this command the request can't be continued\nas is -- client either needs to cancel it or to provide the\nresponse body.\nThe stream only supports sequential read, IO.read will fail if the position\nis specified.\nThis method is mutually exclusive with getResponseBody.\nCalling other methods that affect the request or disabling fetch\ndomain before body is received results in an undefined behavior.",
+                    "name": "audioParamCreated",
+                    "description": "Notifies that a new AudioParam has been created.",
                     "parameters": [
                         {
-                            "name": "requestId",
-                            "$ref": "RequestId"
+                            "name": "param",
+                            "$ref": "AudioParam"
                         }
-                    ],
-                    "returns": [
+                    ]
+                },
+                {
+                    "name": "audioParamWillBeDestroyed",
+                    "description": "Notifies that an existing AudioParam has been destroyed.",
+                    "parameters": [
                         {
-                            "name": "stream",
-                            "$ref": "IO.StreamHandle"
+                            "name": "contextId",
+                            "$ref": "GraphObjectId"
+                        },
+                        {
+                            "name": "nodeId",
+                            "$ref": "GraphObjectId"
+                        },
+                        {
+                            "name": "paramId",
+                            "$ref": "GraphObjectId"
                         }
                     ]
-                }
-            ],
-            "events": [
+                },
                 {
-                    "name": "requestPaused",
-                    "description": "Issued when the domain is enabled and the request URL matches the\nspecified filter. The request is paused until the client responds\nwith one of continueRequest, failRequest or fulfillRequest.\nThe stage of the request can be determined by presence of responseErrorReason\nand responseStatusCode -- the request is at the response stage if either\nof these fields is present and in the request stage otherwise.",
+                    "name": "nodesConnected",
+                    "description": "Notifies that two AudioNodes are connected.",
                     "parameters": [
                         {
-                            "name": "requestId",
-                            "description": "Each request the page makes will have a unique id.",
-                            "$ref": "RequestId"
+                            "name": "contextId",
+                            "$ref": "GraphObjectId"
                         },
                         {
-                            "name": "request",
-                            "description": "The details of the request.",
-                            "$ref": "Network.Request"
+                            "name": "sourceId",
+                            "$ref": "GraphObjectId"
                         },
                         {
-                            "name": "frameId",
-                            "description": "The id of the frame that initiated the request.",
-                            "$ref": "Page.FrameId"
+                            "name": "destinationId",
+                            "$ref": "GraphObjectId"
                         },
                         {
-                            "name": "resourceType",
-                            "description": "How the requested resource will be used.",
-                            "$ref": "Network.ResourceType"
+                            "name": "sourceOutputIndex",
+                            "optional": true,
+                            "type": "number"
                         },
                         {
-                            "name": "responseErrorReason",
-                            "description": "Response error if intercepted at response stage.",
+                            "name": "destinationInputIndex",
                             "optional": true,
-                            "$ref": "Network.ErrorReason"
+                            "type": "number"
+                        }
+                    ]
+                },
+                {
+                    "name": "nodesDisconnected",
+                    "description": "Notifies that AudioNodes are disconnected. The destination can be null, and it means all the outgoing connections from the source are disconnected.",
+                    "parameters": [
+                        {
+                            "name": "contextId",
+                            "$ref": "GraphObjectId"
                         },
                         {
-                            "name": "responseStatusCode",
-                            "description": "Response code if intercepted at response stage.",
-                            "optional": true,
-                            "type": "integer"
+                            "name": "sourceId",
+                            "$ref": "GraphObjectId"
                         },
                         {
-                            "name": "responseStatusText",
-                            "description": "Response status text if intercepted at response stage.",
-                            "optional": true,
-                            "type": "string"
+                            "name": "destinationId",
+                            "$ref": "GraphObjectId"
                         },
                         {
-                            "name": "responseHeaders",
-                            "description": "Response headers if intercepted at the response stage.",
+                            "name": "sourceOutputIndex",
                             "optional": true,
-                            "type": "array",
-                            "items": {
-                                "$ref": "HeaderEntry"
-                            }
+                            "type": "number"
                         },
                         {
-                            "name": "networkId",
-                            "description": "If the intercepted request had a corresponding Network.requestWillBeSent event fired for it,\nthen this networkId will be the same as the requestId present in the requestWillBeSent event.",
+                            "name": "destinationInputIndex",
                             "optional": true,
-                            "$ref": "RequestId"
+                            "type": "number"
                         }
                     ]
                 },
                 {
-                    "name": "authRequired",
-                    "description": "Issued when the domain is enabled with handleAuthRequests set to true.\nThe request is paused until client responds with continueWithAuth.",
+                    "name": "nodeParamConnected",
+                    "description": "Notifies that an AudioNode is connected to an AudioParam.",
                     "parameters": [
                         {
-                            "name": "requestId",
-                            "description": "Each request the page makes will have a unique id.",
-                            "$ref": "RequestId"
+                            "name": "contextId",
+                            "$ref": "GraphObjectId"
                         },
                         {
-                            "name": "request",
-                            "description": "The details of the request.",
-                            "$ref": "Network.Request"
+                            "name": "sourceId",
+                            "$ref": "GraphObjectId"
                         },
                         {
-                            "name": "frameId",
-                            "description": "The id of the frame that initiated the request.",
-                            "$ref": "Page.FrameId"
+                            "name": "destinationId",
+                            "$ref": "GraphObjectId"
                         },
                         {
-                            "name": "resourceType",
-                            "description": "How the requested resource will be used.",
-                            "$ref": "Network.ResourceType"
+                            "name": "sourceOutputIndex",
+                            "optional": true,
+                            "type": "number"
+                        }
+                    ]
+                },
+                {
+                    "name": "nodeParamDisconnected",
+                    "description": "Notifies that an AudioNode is disconnected to an AudioParam.",
+                    "parameters": [
+                        {
+                            "name": "contextId",
+                            "$ref": "GraphObjectId"
                         },
                         {
-                            "name": "authChallenge",
-                            "description": "Details of the Authorization Challenge encountered.\nIf this is set, client should respond with continueRequest that\ncontains AuthChallengeResponse.",
-                            "$ref": "AuthChallenge"
+                            "name": "sourceId",
+                            "$ref": "GraphObjectId"
+                        },
+                        {
+                            "name": "destinationId",
+                            "$ref": "GraphObjectId"
+                        },
+                        {
+                            "name": "sourceOutputIndex",
+                            "optional": true,
+                            "type": "number"
                         }
                     ]
                 }
             ]
         },
         {
-            "domain": "WebAudio",
-            "description": "This domain allows inspection of Web Audio API.\nhttps://webaudio.github.io/web-audio-api/",
+            "domain": "WebAuthn",
+            "description": "This domain allows configuring virtual authenticators to test the WebAuthn\nAPI.",
             "experimental": true,
             "types": [
                 {
-                    "id": "GraphObjectId",
-                    "description": "An unique ID for a graph object (AudioContext, AudioNode, AudioParam) in Web Audio API",
-                    "type": "string"
-                },
-                {
-                    "id": "ContextType",
-                    "description": "Enum of BaseAudioContext types",
-                    "type": "string",
-                    "enum": [
-                        "realtime",
-                        "offline"
-                    ]
-                },
-                {
-                    "id": "ContextState",
-                    "description": "Enum of AudioContextState from the spec",
-                    "type": "string",
-                    "enum": [
-                        "suspended",
-                        "running",
-                        "closed"
-                    ]
-                },
-                {
-                    "id": "NodeType",
-                    "description": "Enum of AudioNode types",
+                    "id": "AuthenticatorId",
                     "type": "string"
                 },
                 {
-                    "id": "ChannelCountMode",
-                    "description": "Enum of AudioNode::ChannelCountMode from the spec",
+                    "id": "AuthenticatorProtocol",
                     "type": "string",
                     "enum": [
-                        "clamped-max",
-                        "explicit",
-                        "max"
+                        "u2f",
+                        "ctap2"
                     ]
                 },
                 {
-                    "id": "ChannelInterpretation",
-                    "description": "Enum of AudioNode::ChannelInterpretation from the spec",
+                    "id": "Ctap2Version",
                     "type": "string",
                     "enum": [
-                        "discrete",
-                        "speakers"
+                        "ctap2_0",
+                        "ctap2_1"
                     ]
                 },
                 {
-                    "id": "ParamType",
-                    "description": "Enum of AudioParam types",
-                    "type": "string"
-                },
-                {
-                    "id": "AutomationRate",
-                    "description": "Enum of AudioParam::AutomationRate from the spec",
+                    "id": "AuthenticatorTransport",
                     "type": "string",
                     "enum": [
-                        "a-rate",
-                        "k-rate"
+                        "usb",
+                        "nfc",
+                        "ble",
+                        "cable",
+                        "internal"
                     ]
                 },
                 {
-                    "id": "ContextRealtimeData",
-                    "description": "Fields in AudioContext that change in real-time.",
+                    "id": "VirtualAuthenticatorOptions",
                     "type": "object",
                     "properties": [
                         {
-                            "name": "currentTime",
-                            "description": "The current context time in second in BaseAudioContext.",
-                            "type": "number"
+                            "name": "protocol",
+                            "$ref": "AuthenticatorProtocol"
                         },
                         {
-                            "name": "renderCapacity",
-                            "description": "The time spent on rendering graph divided by render quantum duration,\nand multiplied by 100. 100 means the audio renderer reached the full\ncapacity and glitch may occur.",
-                            "type": "number"
+                            "name": "ctap2Version",
+                            "description": "Defaults to ctap2_0. Ignored if |protocol| == u2f.",
+                            "optional": true,
+                            "$ref": "Ctap2Version"
+                        },
+                        {
+                            "name": "transport",
+                            "$ref": "AuthenticatorTransport"
+                        },
+                        {
+                            "name": "hasResidentKey",
+                            "description": "Defaults to false.",
+                            "optional": true,
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "hasUserVerification",
+                            "description": "Defaults to false.",
+                            "optional": true,
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "hasLargeBlob",
+                            "description": "If set to true, the authenticator will support the largeBlob extension.\nhttps://w3c.github.io/webauthn#largeBlob\nDefaults to false.",
+                            "optional": true,
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "hasCredBlob",
+                            "description": "If set to true, the authenticator will support the credBlob extension.\nhttps://fidoalliance.org/specs/fido-v2.1-rd-20201208/fido-client-to-authenticator-protocol-v2.1-rd-20201208.html#sctn-credBlob-extension\nDefaults to false.",
+                            "optional": true,
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "hasMinPinLength",
+                            "description": "If set to true, the authenticator will support the minPinLength extension.\nhttps://fidoalliance.org/specs/fido-v2.1-ps-20210615/fido-client-to-authenticator-protocol-v2.1-ps-20210615.html#sctn-minpinlength-extension\nDefaults to false.",
+                            "optional": true,
+                            "type": "boolean"
                         },
                         {
-                            "name": "callbackIntervalMean",
-                            "description": "A running mean of callback interval.",
-                            "type": "number"
+                            "name": "hasPrf",
+                            "description": "If set to true, the authenticator will support the prf extension.\nhttps://w3c.github.io/webauthn/#prf-extension\nDefaults to false.",
+                            "optional": true,
+                            "type": "boolean"
                         },
                         {
-                            "name": "callbackIntervalVariance",
-                            "description": "A running variance of callback interval.",
-                            "type": "number"
+                            "name": "automaticPresenceSimulation",
+                            "description": "If set to true, tests of user presence will succeed immediately.\nOtherwise, they will not be resolved. Defaults to true.",
+                            "optional": true,
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "isUserVerified",
+                            "description": "Sets whether User Verification succeeds or fails for an authenticator.\nDefaults to false.",
+                            "optional": true,
+                            "type": "boolean"
                         }
                     ]
                 },
                 {
-                    "id": "BaseAudioContext",
-                    "description": "Protocol object for BaseAudioContext",
+                    "id": "Credential",
                     "type": "object",
                     "properties": [
                         {
-                            "name": "contextId",
-                            "$ref": "GraphObjectId"
+                            "name": "credentialId",
+                            "type": "string"
                         },
                         {
-                            "name": "contextType",
-                            "$ref": "ContextType"
+                            "name": "isResidentCredential",
+                            "type": "boolean"
                         },
                         {
-                            "name": "contextState",
-                            "$ref": "ContextState"
+                            "name": "rpId",
+                            "description": "Relying Party ID the credential is scoped to. Must be set when adding a\ncredential.",
+                            "optional": true,
+                            "type": "string"
                         },
                         {
-                            "name": "realtimeData",
-                            "optional": true,
-                            "$ref": "ContextRealtimeData"
+                            "name": "privateKey",
+                            "description": "The ECDSA P-256 private key in PKCS#8 format. (Encoded as a base64 string when passed over JSON)",
+                            "type": "string"
                         },
                         {
-                            "name": "callbackBufferSize",
-                            "description": "Platform-dependent callback buffer size.",
-                            "type": "number"
+                            "name": "userHandle",
+                            "description": "An opaque byte sequence with a maximum size of 64 bytes mapping the\ncredential to a specific user. (Encoded as a base64 string when passed over JSON)",
+                            "optional": true,
+                            "type": "string"
                         },
                         {
-                            "name": "maxOutputChannelCount",
-                            "description": "Number of output channels supported by audio hardware in use.",
-                            "type": "number"
+                            "name": "signCount",
+                            "description": "Signature counter. This is incremented by one for each successful\nassertion.\nSee https://w3c.github.io/webauthn/#signature-counter",
+                            "type": "integer"
                         },
                         {
-                            "name": "sampleRate",
-                            "description": "Context sample rate.",
-                            "type": "number"
+                            "name": "largeBlob",
+                            "description": "The large blob associated with the credential.\nSee https://w3c.github.io/webauthn/#sctn-large-blob-extension (Encoded as a base64 string when passed over JSON)",
+                            "optional": true,
+                            "type": "string"
+                        }
+                    ]
+                }
+            ],
+            "commands": [
+                {
+                    "name": "enable",
+                    "description": "Enable the WebAuthn domain and start intercepting credential storage and\nretrieval with a virtual authenticator.",
+                    "parameters": [
+                        {
+                            "name": "enableUI",
+                            "description": "Whether to enable the WebAuthn user interface. Enabling the UI is\nrecommended for debugging and demo purposes, as it is closer to the real\nexperience. Disabling the UI is recommended for automated testing.\nSupported at the embedder's discretion if UI is available.\nDefaults to false.",
+                            "optional": true,
+                            "type": "boolean"
                         }
                     ]
                 },
                 {
-                    "id": "AudioListener",
-                    "description": "Protocol object for AudioListener",
-                    "type": "object",
-                    "properties": [
+                    "name": "disable",
+                    "description": "Disable the WebAuthn domain."
+                },
+                {
+                    "name": "addVirtualAuthenticator",
+                    "description": "Creates and adds a virtual authenticator.",
+                    "parameters": [
                         {
-                            "name": "listenerId",
-                            "$ref": "GraphObjectId"
-                        },
+                            "name": "options",
+                            "$ref": "VirtualAuthenticatorOptions"
+                        }
+                    ],
+                    "returns": [
                         {
-                            "name": "contextId",
-                            "$ref": "GraphObjectId"
+                            "name": "authenticatorId",
+                            "$ref": "AuthenticatorId"
                         }
                     ]
                 },
                 {
-                    "id": "AudioNode",
-                    "description": "Protocol object for AudioNode",
-                    "type": "object",
-                    "properties": [
-                        {
-                            "name": "nodeId",
-                            "$ref": "GraphObjectId"
-                        },
+                    "name": "setResponseOverrideBits",
+                    "description": "Resets parameters isBogusSignature, isBadUV, isBadUP to false if they are not present.",
+                    "parameters": [
                         {
-                            "name": "contextId",
-                            "$ref": "GraphObjectId"
+                            "name": "authenticatorId",
+                            "$ref": "AuthenticatorId"
                         },
                         {
-                            "name": "nodeType",
-                            "$ref": "NodeType"
+                            "name": "isBogusSignature",
+                            "description": "If isBogusSignature is set, overrides the signature in the authenticator response to be zero.\nDefaults to false.",
+                            "optional": true,
+                            "type": "boolean"
                         },
                         {
-                            "name": "numberOfInputs",
-                            "type": "number"
+                            "name": "isBadUV",
+                            "description": "If isBadUV is set, overrides the UV bit in the flags in the authenticator response to\nbe zero. Defaults to false.",
+                            "optional": true,
+                            "type": "boolean"
                         },
                         {
-                            "name": "numberOfOutputs",
-                            "type": "number"
-                        },
+                            "name": "isBadUP",
+                            "description": "If isBadUP is set, overrides the UP bit in the flags in the authenticator response to\nbe zero. Defaults to false.",
+                            "optional": true,
+                            "type": "boolean"
+                        }
+                    ]
+                },
+                {
+                    "name": "removeVirtualAuthenticator",
+                    "description": "Removes the given authenticator.",
+                    "parameters": [
                         {
-                            "name": "channelCount",
-                            "type": "number"
-                        },
+                            "name": "authenticatorId",
+                            "$ref": "AuthenticatorId"
+                        }
+                    ]
+                },
+                {
+                    "name": "addCredential",
+                    "description": "Adds the credential to the specified authenticator.",
+                    "parameters": [
                         {
-                            "name": "channelCountMode",
-                            "$ref": "ChannelCountMode"
+                            "name": "authenticatorId",
+                            "$ref": "AuthenticatorId"
                         },
                         {
-                            "name": "channelInterpretation",
-                            "$ref": "ChannelInterpretation"
+                            "name": "credential",
+                            "$ref": "Credential"
                         }
                     ]
                 },
                 {
-                    "id": "AudioParam",
-                    "description": "Protocol object for AudioParam",
-                    "type": "object",
-                    "properties": [
-                        {
-                            "name": "paramId",
-                            "$ref": "GraphObjectId"
-                        },
+                    "name": "getCredential",
+                    "description": "Returns a single credential stored in the given virtual authenticator that\nmatches the credential ID.",
+                    "parameters": [
                         {
-                            "name": "nodeId",
-                            "$ref": "GraphObjectId"
+                            "name": "authenticatorId",
+                            "$ref": "AuthenticatorId"
                         },
                         {
-                            "name": "contextId",
-                            "$ref": "GraphObjectId"
-                        },
+                            "name": "credentialId",
+                            "type": "string"
+                        }
+                    ],
+                    "returns": [
                         {
-                            "name": "paramType",
-                            "$ref": "ParamType"
-                        },
+                            "name": "credential",
+                            "$ref": "Credential"
+                        }
+                    ]
+                },
+                {
+                    "name": "getCredentials",
+                    "description": "Returns all the credentials stored in the given virtual authenticator.",
+                    "parameters": [
                         {
-                            "name": "rate",
-                            "$ref": "AutomationRate"
-                        },
+                            "name": "authenticatorId",
+                            "$ref": "AuthenticatorId"
+                        }
+                    ],
+                    "returns": [
                         {
-                            "name": "defaultValue",
-                            "type": "number"
-                        },
+                            "name": "credentials",
+                            "type": "array",
+                            "items": {
+                                "$ref": "Credential"
+                            }
+                        }
+                    ]
+                },
+                {
+                    "name": "removeCredential",
+                    "description": "Removes a credential from the authenticator.",
+                    "parameters": [
                         {
-                            "name": "minValue",
-                            "type": "number"
+                            "name": "authenticatorId",
+                            "$ref": "AuthenticatorId"
                         },
                         {
-                            "name": "maxValue",
-                            "type": "number"
+                            "name": "credentialId",
+                            "type": "string"
                         }
                     ]
-                }
-            ],
-            "commands": [
-                {
-                    "name": "enable",
-                    "description": "Enables the WebAudio domain and starts sending context lifetime events."
                 },
                 {
-                    "name": "disable",
-                    "description": "Disables the WebAudio domain."
+                    "name": "clearCredentials",
+                    "description": "Clears all the credentials from the specified device.",
+                    "parameters": [
+                        {
+                            "name": "authenticatorId",
+                            "$ref": "AuthenticatorId"
+                        }
+                    ]
                 },
                 {
-                    "name": "getRealtimeData",
-                    "description": "Fetch the realtime data from the registered contexts.",
+                    "name": "setUserVerified",
+                    "description": "Sets whether User Verification succeeds or fails for an authenticator.\nThe default is true.",
                     "parameters": [
                         {
-                            "name": "contextId",
-                            "$ref": "GraphObjectId"
+                            "name": "authenticatorId",
+                            "$ref": "AuthenticatorId"
+                        },
+                        {
+                            "name": "isUserVerified",
+                            "type": "boolean"
                         }
-                    ],
-                    "returns": [
+                    ]
+                },
+                {
+                    "name": "setAutomaticPresenceSimulation",
+                    "description": "Sets whether tests of user presence will succeed immediately (if true) or fail to resolve (if false) for an authenticator.\nThe default is true.",
+                    "parameters": [
                         {
-                            "name": "realtimeData",
-                            "$ref": "ContextRealtimeData"
+                            "name": "authenticatorId",
+                            "$ref": "AuthenticatorId"
+                        },
+                        {
+                            "name": "enabled",
+                            "type": "boolean"
                         }
                     ]
                 }
             ],
             "events": [
                 {
-                    "name": "contextCreated",
-                    "description": "Notifies that a new BaseAudioContext has been created.",
+                    "name": "credentialAdded",
+                    "description": "Triggered when a credential is added to an authenticator.",
                     "parameters": [
                         {
-                            "name": "context",
-                            "$ref": "BaseAudioContext"
+                            "name": "authenticatorId",
+                            "$ref": "AuthenticatorId"
+                        },
+                        {
+                            "name": "credential",
+                            "$ref": "Credential"
                         }
                     ]
                 },
                 {
-                    "name": "contextWillBeDestroyed",
-                    "description": "Notifies that an existing BaseAudioContext will be destroyed.",
+                    "name": "credentialAsserted",
+                    "description": "Triggered when a credential is used in a webauthn assertion.",
                     "parameters": [
                         {
-                            "name": "contextId",
-                            "$ref": "GraphObjectId"
+                            "name": "authenticatorId",
+                            "$ref": "AuthenticatorId"
+                        },
+                        {
+                            "name": "credential",
+                            "$ref": "Credential"
                         }
                     ]
+                }
+            ]
+        },
+        {
+            "domain": "Media",
+            "description": "This domain allows detailed inspection of media elements",
+            "experimental": true,
+            "types": [
+                {
+                    "id": "PlayerId",
+                    "description": "Players will get an ID that is unique within the agent context.",
+                    "type": "string"
                 },
                 {
-                    "name": "contextChanged",
-                    "description": "Notifies that existing BaseAudioContext has changed some properties (id stays the same)..",
-                    "parameters": [
+                    "id": "Timestamp",
+                    "type": "number"
+                },
+                {
+                    "id": "PlayerMessage",
+                    "description": "Have one type per entry in MediaLogRecord::Type\nCorresponds to kMessage",
+                    "type": "object",
+                    "properties": [
                         {
-                            "name": "context",
-                            "$ref": "BaseAudioContext"
+                            "name": "level",
+                            "description": "Keep in sync with MediaLogMessageLevel\nWe are currently keeping the message level 'error' separate from the\nPlayerError type because right now they represent different things,\nthis one being a DVLOG(ERROR) style log message that gets printed\nbased on what log level is selected in the UI, and the other is a\nrepresentation of a media::PipelineStatus object. Soon however we're\ngoing to be moving away from using PipelineStatus for errors and\nintroducing a new error type which should hopefully let us integrate\nthe error log level into the PlayerError type.",
+                            "type": "string",
+                            "enum": [
+                                "error",
+                                "warning",
+                                "info",
+                                "debug"
+                            ]
+                        },
+                        {
+                            "name": "message",
+                            "type": "string"
                         }
                     ]
                 },
                 {
-                    "name": "audioListenerCreated",
-                    "description": "Notifies that the construction of an AudioListener has finished.",
-                    "parameters": [
+                    "id": "PlayerProperty",
+                    "description": "Corresponds to kMediaPropertyChange",
+                    "type": "object",
+                    "properties": [
                         {
-                            "name": "listener",
-                            "$ref": "AudioListener"
+                            "name": "name",
+                            "type": "string"
+                        },
+                        {
+                            "name": "value",
+                            "type": "string"
                         }
                     ]
                 },
                 {
-                    "name": "audioListenerWillBeDestroyed",
-                    "description": "Notifies that a new AudioListener has been created.",
-                    "parameters": [
+                    "id": "PlayerEvent",
+                    "description": "Corresponds to kMediaEventTriggered",
+                    "type": "object",
+                    "properties": [
                         {
-                            "name": "contextId",
-                            "$ref": "GraphObjectId"
+                            "name": "timestamp",
+                            "$ref": "Timestamp"
                         },
                         {
-                            "name": "listenerId",
-                            "$ref": "GraphObjectId"
+                            "name": "value",
+                            "type": "string"
                         }
                     ]
                 },
                 {
-                    "name": "audioNodeCreated",
-                    "description": "Notifies that a new AudioNode has been created.",
-                    "parameters": [
+                    "id": "PlayerErrorSourceLocation",
+                    "description": "Represents logged source line numbers reported in an error.\nNOTE: file and line are from chromium c++ implementation code, not js.",
+                    "type": "object",
+                    "properties": [
                         {
-                            "name": "node",
-                            "$ref": "AudioNode"
+                            "name": "file",
+                            "type": "string"
+                        },
+                        {
+                            "name": "line",
+                            "type": "integer"
                         }
                     ]
                 },
                 {
-                    "name": "audioNodeWillBeDestroyed",
-                    "description": "Notifies that an existing AudioNode has been destroyed.",
-                    "parameters": [
+                    "id": "PlayerError",
+                    "description": "Corresponds to kMediaError",
+                    "type": "object",
+                    "properties": [
                         {
-                            "name": "contextId",
-                            "$ref": "GraphObjectId"
+                            "name": "errorType",
+                            "type": "string"
                         },
                         {
-                            "name": "nodeId",
-                            "$ref": "GraphObjectId"
+                            "name": "code",
+                            "description": "Code is the numeric enum entry for a specific set of error codes, such\nas PipelineStatusCodes in media/base/pipeline_status.h",
+                            "type": "integer"
+                        },
+                        {
+                            "name": "stack",
+                            "description": "A trace of where this error was caused / where it passed through.",
+                            "type": "array",
+                            "items": {
+                                "$ref": "PlayerErrorSourceLocation"
+                            }
+                        },
+                        {
+                            "name": "cause",
+                            "description": "Errors potentially have a root cause error, ie, a DecoderError might be\ncaused by an WindowsError",
+                            "type": "array",
+                            "items": {
+                                "$ref": "PlayerError"
+                            }
+                        },
+                        {
+                            "name": "data",
+                            "description": "Extra data attached to an error, such as an HRESULT, Video Codec, etc.",
+                            "type": "object"
                         }
                     ]
-                },
+                }
+            ],
+            "events": [
                 {
-                    "name": "audioParamCreated",
-                    "description": "Notifies that a new AudioParam has been created.",
+                    "name": "playerPropertiesChanged",
+                    "description": "This can be called multiple times, and can be used to set / override /\nremove player properties. A null propValue indicates removal.",
                     "parameters": [
                         {
-                            "name": "param",
-                            "$ref": "AudioParam"
+                            "name": "playerId",
+                            "$ref": "PlayerId"
+                        },
+                        {
+                            "name": "properties",
+                            "type": "array",
+                            "items": {
+                                "$ref": "PlayerProperty"
+                            }
                         }
                     ]
                 },
                 {
-                    "name": "audioParamWillBeDestroyed",
-                    "description": "Notifies that an existing AudioParam has been destroyed.",
+                    "name": "playerEventsAdded",
+                    "description": "Send events as a list, allowing them to be batched on the browser for less\ncongestion. If batched, events must ALWAYS be in chronological order.",
                     "parameters": [
                         {
-                            "name": "contextId",
-                            "$ref": "GraphObjectId"
-                        },
-                        {
-                            "name": "nodeId",
-                            "$ref": "GraphObjectId"
+                            "name": "playerId",
+                            "$ref": "PlayerId"
                         },
                         {
-                            "name": "paramId",
-                            "$ref": "GraphObjectId"
+                            "name": "events",
+                            "type": "array",
+                            "items": {
+                                "$ref": "PlayerEvent"
+                            }
                         }
                     ]
                 },
                 {
-                    "name": "nodesConnected",
-                    "description": "Notifies that two AudioNodes are connected.",
+                    "name": "playerMessagesLogged",
+                    "description": "Send a list of any messages that need to be delivered.",
                     "parameters": [
                         {
-                            "name": "contextId",
-                            "$ref": "GraphObjectId"
-                        },
-                        {
-                            "name": "sourceId",
-                            "$ref": "GraphObjectId"
-                        },
-                        {
-                            "name": "destinationId",
-                            "$ref": "GraphObjectId"
-                        },
-                        {
-                            "name": "sourceOutputIndex",
-                            "optional": true,
-                            "type": "number"
+                            "name": "playerId",
+                            "$ref": "PlayerId"
                         },
                         {
-                            "name": "destinationInputIndex",
-                            "optional": true,
-                            "type": "number"
+                            "name": "messages",
+                            "type": "array",
+                            "items": {
+                                "$ref": "PlayerMessage"
+                            }
                         }
                     ]
                 },
                 {
-                    "name": "nodesDisconnected",
-                    "description": "Notifies that AudioNodes are disconnected. The destination can be null, and it means all the outgoing connections from the source are disconnected.",
+                    "name": "playerErrorsRaised",
+                    "description": "Send a list of any errors that need to be delivered.",
                     "parameters": [
                         {
-                            "name": "contextId",
-                            "$ref": "GraphObjectId"
+                            "name": "playerId",
+                            "$ref": "PlayerId"
                         },
                         {
-                            "name": "sourceId",
-                            "$ref": "GraphObjectId"
-                        },
+                            "name": "errors",
+                            "type": "array",
+                            "items": {
+                                "$ref": "PlayerError"
+                            }
+                        }
+                    ]
+                },
+                {
+                    "name": "playersCreated",
+                    "description": "Called whenever a player is created, or when a new agent joins and receives\na list of active players. If an agent is restored, it will receive the full\nlist of player ids and all events again.",
+                    "parameters": [
                         {
-                            "name": "destinationId",
-                            "$ref": "GraphObjectId"
-                        },
+                            "name": "players",
+                            "type": "array",
+                            "items": {
+                                "$ref": "PlayerId"
+                            }
+                        }
+                    ]
+                }
+            ],
+            "commands": [
+                {
+                    "name": "enable",
+                    "description": "Enables the Media domain"
+                },
+                {
+                    "name": "disable",
+                    "description": "Disables the Media domain."
+                }
+            ]
+        },
+        {
+            "domain": "DeviceAccess",
+            "experimental": true,
+            "types": [
+                {
+                    "id": "RequestId",
+                    "description": "Device request id.",
+                    "type": "string"
+                },
+                {
+                    "id": "DeviceId",
+                    "description": "A device id.",
+                    "type": "string"
+                },
+                {
+                    "id": "PromptDevice",
+                    "description": "Device information displayed in a user prompt to select a device.",
+                    "type": "object",
+                    "properties": [
                         {
-                            "name": "sourceOutputIndex",
-                            "optional": true,
-                            "type": "number"
+                            "name": "id",
+                            "$ref": "DeviceId"
                         },
                         {
-                            "name": "destinationInputIndex",
-                            "optional": true,
-                            "type": "number"
+                            "name": "name",
+                            "description": "Display name as it appears in a device request user prompt.",
+                            "type": "string"
                         }
                     ]
+                }
+            ],
+            "commands": [
+                {
+                    "name": "enable",
+                    "description": "Enable events in this domain."
                 },
                 {
-                    "name": "nodeParamConnected",
-                    "description": "Notifies that an AudioNode is connected to an AudioParam.",
+                    "name": "disable",
+                    "description": "Disable events in this domain."
+                },
+                {
+                    "name": "selectPrompt",
+                    "description": "Select a device in response to a DeviceAccess.deviceRequestPrompted event.",
                     "parameters": [
                         {
-                            "name": "contextId",
-                            "$ref": "GraphObjectId"
-                        },
-                        {
-                            "name": "sourceId",
-                            "$ref": "GraphObjectId"
-                        },
-                        {
-                            "name": "destinationId",
-                            "$ref": "GraphObjectId"
+                            "name": "id",
+                            "$ref": "RequestId"
                         },
                         {
-                            "name": "sourceOutputIndex",
-                            "optional": true,
-                            "type": "number"
+                            "name": "deviceId",
+                            "$ref": "DeviceId"
                         }
                     ]
                 },
                 {
-                    "name": "nodeParamDisconnected",
-                    "description": "Notifies that an AudioNode is disconnected to an AudioParam.",
+                    "name": "cancelPrompt",
+                    "description": "Cancel a prompt in response to a DeviceAccess.deviceRequestPrompted event.",
                     "parameters": [
                         {
-                            "name": "contextId",
-                            "$ref": "GraphObjectId"
-                        },
-                        {
-                            "name": "sourceId",
-                            "$ref": "GraphObjectId"
-                        },
+                            "name": "id",
+                            "$ref": "RequestId"
+                        }
+                    ]
+                }
+            ],
+            "events": [
+                {
+                    "name": "deviceRequestPrompted",
+                    "description": "A device request opened a user prompt to select a device. Respond with the\nselectPrompt or cancelPrompt command.",
+                    "parameters": [
                         {
-                            "name": "destinationId",
-                            "$ref": "GraphObjectId"
+                            "name": "id",
+                            "$ref": "RequestId"
                         },
                         {
-                            "name": "sourceOutputIndex",
-                            "optional": true,
-                            "type": "number"
+                            "name": "devices",
+                            "type": "array",
+                            "items": {
+                                "$ref": "PromptDevice"
+                            }
                         }
                     ]
                 }
             ]
         },
         {
-            "domain": "WebAuthn",
-            "description": "This domain allows configuring virtual authenticators to test the WebAuthn\nAPI.",
+            "domain": "Preload",
             "experimental": true,
             "types": [
                 {
-                    "id": "AuthenticatorId",
+                    "id": "RuleSetId",
+                    "description": "Unique id",
                     "type": "string"
                 },
                 {
-                    "id": "AuthenticatorProtocol",
-                    "type": "string",
-                    "enum": [
-                        "u2f",
-                        "ctap2"
-                    ]
-                },
-                {
-                    "id": "Ctap2Version",
-                    "type": "string",
-                    "enum": [
-                        "ctap2_0",
-                        "ctap2_1"
-                    ]
-                },
-                {
-                    "id": "AuthenticatorTransport",
-                    "type": "string",
-                    "enum": [
-                        "usb",
-                        "nfc",
-                        "ble",
-                        "cable",
-                        "internal"
-                    ]
-                },
-                {
-                    "id": "VirtualAuthenticatorOptions",
+                    "id": "RuleSet",
+                    "description": "Corresponds to SpeculationRuleSet",
                     "type": "object",
                     "properties": [
                         {
-                            "name": "protocol",
-                            "$ref": "AuthenticatorProtocol"
-                        },
-                        {
-                            "name": "ctap2Version",
-                            "description": "Defaults to ctap2_0. Ignored if |protocol| == u2f.",
-                            "optional": true,
-                            "$ref": "Ctap2Version"
-                        },
-                        {
-                            "name": "transport",
-                            "$ref": "AuthenticatorTransport"
+                            "name": "id",
+                            "$ref": "RuleSetId"
                         },
                         {
-                            "name": "hasResidentKey",
-                            "description": "Defaults to false.",
-                            "optional": true,
-                            "type": "boolean"
+                            "name": "loaderId",
+                            "description": "Identifies a document which the rule set is associated with.",
+                            "$ref": "Network.LoaderId"
                         },
                         {
-                            "name": "hasUserVerification",
-                            "description": "Defaults to false.",
-                            "optional": true,
-                            "type": "boolean"
+                            "name": "sourceText",
+                            "description": "Source text of JSON representing the rule set. If it comes from\n<script> tag, it is the textContent of the node. Note that it is\na JSON for valid case.\n\nSee also:\n- https://wicg.github.io/nav-speculation/speculation-rules.html\n- https://github.com/WICG/nav-speculation/blob/main/triggers.md",
+                            "type": "string"
                         },
                         {
-                            "name": "hasLargeBlob",
-                            "description": "If set to true, the authenticator will support the largeBlob extension.\nhttps://w3c.github.io/webauthn#largeBlob\nDefaults to false.",
+                            "name": "backendNodeId",
+                            "description": "A speculation rule set is either added through an inline\n<script> tag or through an external resource via the\n'Speculation-Rules' HTTP header. For the first case, we include\nthe BackendNodeId of the relevant <script> tag. For the second\ncase, we include the external URL where the rule set was loaded\nfrom, and also RequestId if Network domain is enabled.\n\nSee also:\n- https://wicg.github.io/nav-speculation/speculation-rules.html#speculation-rules-script\n- https://wicg.github.io/nav-speculation/speculation-rules.html#speculation-rules-header",
                             "optional": true,
-                            "type": "boolean"
+                            "$ref": "DOM.BackendNodeId"
                         },
                         {
-                            "name": "hasCredBlob",
-                            "description": "If set to true, the authenticator will support the credBlob extension.\nhttps://fidoalliance.org/specs/fido-v2.1-rd-20201208/fido-client-to-authenticator-protocol-v2.1-rd-20201208.html#sctn-credBlob-extension\nDefaults to false.",
+                            "name": "url",
                             "optional": true,
-                            "type": "boolean"
+                            "type": "string"
                         },
                         {
-                            "name": "hasMinPinLength",
-                            "description": "If set to true, the authenticator will support the minPinLength extension.\nhttps://fidoalliance.org/specs/fido-v2.1-ps-20210615/fido-client-to-authenticator-protocol-v2.1-ps-20210615.html#sctn-minpinlength-extension\nDefaults to false.",
+                            "name": "requestId",
                             "optional": true,
-                            "type": "boolean"
+                            "$ref": "Network.RequestId"
                         },
                         {
-                            "name": "automaticPresenceSimulation",
-                            "description": "If set to true, tests of user presence will succeed immediately.\nOtherwise, they will not be resolved. Defaults to true.",
+                            "name": "errorType",
+                            "description": "Error information\n`errorMessage` is null iff `errorType` is null.",
                             "optional": true,
-                            "type": "boolean"
+                            "$ref": "RuleSetErrorType"
                         },
                         {
-                            "name": "isUserVerified",
-                            "description": "Sets whether User Verification succeeds or fails for an authenticator.\nDefaults to false.",
+                            "name": "errorMessage",
+                            "description": "TODO(https://crbug.com/1425354): Replace this property with structured error.",
+                            "deprecated": true,
                             "optional": true,
-                            "type": "boolean"
+                            "type": "string"
                         }
                     ]
                 },
                 {
-                    "id": "Credential",
+                    "id": "RuleSetErrorType",
+                    "type": "string",
+                    "enum": [
+                        "SourceIsNotJsonObject",
+                        "InvalidRulesSkipped"
+                    ]
+                },
+                {
+                    "id": "SpeculationAction",
+                    "description": "The type of preloading attempted. It corresponds to\nmojom::SpeculationAction (although PrefetchWithSubresources is omitted as it\nisn't being used by clients).",
+                    "type": "string",
+                    "enum": [
+                        "Prefetch",
+                        "Prerender"
+                    ]
+                },
+                {
+                    "id": "SpeculationTargetHint",
+                    "description": "Corresponds to mojom::SpeculationTargetHint.\nSee https://github.com/WICG/nav-speculation/blob/main/triggers.md#window-name-targeting-hints",
+                    "type": "string",
+                    "enum": [
+                        "Blank",
+                        "Self"
+                    ]
+                },
+                {
+                    "id": "PreloadingAttemptKey",
+                    "description": "A key that identifies a preloading attempt.\n\nThe url used is the url specified by the trigger (i.e. the initial URL), and\nnot the final url that is navigated to. For example, prerendering allows\nsame-origin main frame navigations during the attempt, but the attempt is\nstill keyed with the initial URL.",
                     "type": "object",
                     "properties": [
                         {
-                            "name": "credentialId",
-                            "type": "string"
-                        },
-                        {
-                            "name": "isResidentCredential",
-                            "type": "boolean"
+                            "name": "loaderId",
+                            "$ref": "Network.LoaderId"
                         },
                         {
-                            "name": "rpId",
-                            "description": "Relying Party ID the credential is scoped to. Must be set when adding a\ncredential.",
-                            "optional": true,
-                            "type": "string"
+                            "name": "action",
+                            "$ref": "SpeculationAction"
                         },
                         {
-                            "name": "privateKey",
-                            "description": "The ECDSA P-256 private key in PKCS#8 format. (Encoded as a base64 string when passed over JSON)",
+                            "name": "url",
                             "type": "string"
                         },
                         {
-                            "name": "userHandle",
-                            "description": "An opaque byte sequence with a maximum size of 64 bytes mapping the\ncredential to a specific user. (Encoded as a base64 string when passed over JSON)",
+                            "name": "targetHint",
                             "optional": true,
-                            "type": "string"
+                            "$ref": "SpeculationTargetHint"
+                        }
+                    ]
+                },
+                {
+                    "id": "PreloadingAttemptSource",
+                    "description": "Lists sources for a preloading attempt, specifically the ids of rule sets\nthat had a speculation rule that triggered the attempt, and the\nBackendNodeIds of <a href> or <area href> elements that triggered the\nattempt (in the case of attempts triggered by a document rule). It is\npossible for mulitple rule sets and links to trigger a single attempt.",
+                    "type": "object",
+                    "properties": [
+                        {
+                            "name": "key",
+                            "$ref": "PreloadingAttemptKey"
                         },
                         {
-                            "name": "signCount",
-                            "description": "Signature counter. This is incremented by one for each successful\nassertion.\nSee https://w3c.github.io/webauthn/#signature-counter",
-                            "type": "integer"
+                            "name": "ruleSetIds",
+                            "type": "array",
+                            "items": {
+                                "$ref": "RuleSetId"
+                            }
                         },
                         {
-                            "name": "largeBlob",
-                            "description": "The large blob associated with the credential.\nSee https://w3c.github.io/webauthn/#sctn-large-blob-extension (Encoded as a base64 string when passed over JSON)",
-                            "optional": true,
-                            "type": "string"
+                            "name": "nodeIds",
+                            "type": "array",
+                            "items": {
+                                "$ref": "DOM.BackendNodeId"
+                            }
                         }
                     ]
-                }
-            ],
-            "commands": [
-                {
-                    "name": "enable",
-                    "description": "Enable the WebAuthn domain and start intercepting credential storage and\nretrieval with a virtual authenticator."
                 },
                 {
-                    "name": "disable",
-                    "description": "Disable the WebAuthn domain."
+                    "id": "PrerenderFinalStatus",
+                    "description": "List of FinalStatus reasons for Prerender2.",
+                    "type": "string",
+                    "enum": [
+                        "Activated",
+                        "Destroyed",
+                        "LowEndDevice",
+                        "InvalidSchemeRedirect",
+                        "InvalidSchemeNavigation",
+                        "InProgressNavigation",
+                        "NavigationRequestBlockedByCsp",
+                        "MainFrameNavigation",
+                        "MojoBinderPolicy",
+                        "RendererProcessCrashed",
+                        "RendererProcessKilled",
+                        "Download",
+                        "TriggerDestroyed",
+                        "NavigationNotCommitted",
+                        "NavigationBadHttpStatus",
+                        "ClientCertRequested",
+                        "NavigationRequestNetworkError",
+                        "MaxNumOfRunningPrerendersExceeded",
+                        "CancelAllHostsForTesting",
+                        "DidFailLoad",
+                        "Stop",
+                        "SslCertificateError",
+                        "LoginAuthRequested",
+                        "UaChangeRequiresReload",
+                        "BlockedByClient",
+                        "AudioOutputDeviceRequested",
+                        "MixedContent",
+                        "TriggerBackgrounded",
+                        "EmbedderTriggeredAndCrossOriginRedirected",
+                        "MemoryLimitExceeded",
+                        "FailToGetMemoryUsage",
+                        "DataSaverEnabled",
+                        "HasEffectiveUrl",
+                        "ActivatedBeforeStarted",
+                        "InactivePageRestriction",
+                        "StartFailed",
+                        "TimeoutBackgrounded",
+                        "CrossSiteRedirectInInitialNavigation",
+                        "CrossSiteNavigationInInitialNavigation",
+                        "SameSiteCrossOriginRedirectNotOptInInInitialNavigation",
+                        "SameSiteCrossOriginNavigationNotOptInInInitialNavigation",
+                        "ActivationNavigationParameterMismatch",
+                        "ActivatedInBackground",
+                        "EmbedderHostDisallowed",
+                        "ActivationNavigationDestroyedBeforeSuccess",
+                        "TabClosedByUserGesture",
+                        "TabClosedWithoutUserGesture",
+                        "PrimaryMainFrameRendererProcessCrashed",
+                        "PrimaryMainFrameRendererProcessKilled",
+                        "ActivationFramePolicyNotCompatible",
+                        "PreloadingDisabled",
+                        "BatterySaverEnabled",
+                        "ActivatedDuringMainFrameNavigation",
+                        "PreloadingUnsupportedByWebContents",
+                        "CrossSiteRedirectInMainFrameNavigation",
+                        "CrossSiteNavigationInMainFrameNavigation",
+                        "SameSiteCrossOriginRedirectNotOptInInMainFrameNavigation",
+                        "SameSiteCrossOriginNavigationNotOptInInMainFrameNavigation",
+                        "MemoryPressureOnTrigger",
+                        "MemoryPressureAfterTriggered",
+                        "PrerenderingDisabledByDevTools",
+                        "ResourceLoadBlockedByClient"
+                    ]
+                },
+                {
+                    "id": "PreloadingStatus",
+                    "description": "Preloading status values, see also PreloadingTriggeringOutcome. This\nstatus is shared by prefetchStatusUpdated and prerenderStatusUpdated.",
+                    "type": "string",
+                    "enum": [
+                        "Pending",
+                        "Running",
+                        "Ready",
+                        "Success",
+                        "Failure",
+                        "NotSupported"
+                    ]
                 },
                 {
-                    "name": "addVirtualAuthenticator",
-                    "description": "Creates and adds a virtual authenticator.",
-                    "parameters": [
-                        {
-                            "name": "options",
-                            "$ref": "VirtualAuthenticatorOptions"
-                        }
-                    ],
-                    "returns": [
-                        {
-                            "name": "authenticatorId",
-                            "$ref": "AuthenticatorId"
-                        }
+                    "id": "PrefetchStatus",
+                    "description": "TODO(https://crbug.com/1384419): revisit the list of PrefetchStatus and\nfilter out the ones that aren't necessary to the developers.",
+                    "type": "string",
+                    "enum": [
+                        "PrefetchAllowed",
+                        "PrefetchFailedIneligibleRedirect",
+                        "PrefetchFailedInvalidRedirect",
+                        "PrefetchFailedMIMENotSupported",
+                        "PrefetchFailedNetError",
+                        "PrefetchFailedNon2XX",
+                        "PrefetchFailedPerPageLimitExceeded",
+                        "PrefetchEvicted",
+                        "PrefetchHeldback",
+                        "PrefetchIneligibleRetryAfter",
+                        "PrefetchIsPrivacyDecoy",
+                        "PrefetchIsStale",
+                        "PrefetchNotEligibleBrowserContextOffTheRecord",
+                        "PrefetchNotEligibleDataSaverEnabled",
+                        "PrefetchNotEligibleExistingProxy",
+                        "PrefetchNotEligibleHostIsNonUnique",
+                        "PrefetchNotEligibleNonDefaultStoragePartition",
+                        "PrefetchNotEligibleSameSiteCrossOriginPrefetchRequiredProxy",
+                        "PrefetchNotEligibleSchemeIsNotHttps",
+                        "PrefetchNotEligibleUserHasCookies",
+                        "PrefetchNotEligibleUserHasServiceWorker",
+                        "PrefetchNotEligibleBatterySaverEnabled",
+                        "PrefetchNotEligiblePreloadingDisabled",
+                        "PrefetchNotFinishedInTime",
+                        "PrefetchNotStarted",
+                        "PrefetchNotUsedCookiesChanged",
+                        "PrefetchProxyNotAvailable",
+                        "PrefetchResponseUsed",
+                        "PrefetchSuccessfulButNotUsed",
+                        "PrefetchNotUsedProbeFailed"
                     ]
+                }
+            ],
+            "commands": [
+                {
+                    "name": "enable"
                 },
                 {
-                    "name": "removeVirtualAuthenticator",
-                    "description": "Removes the given authenticator.",
+                    "name": "disable"
+                }
+            ],
+            "events": [
+                {
+                    "name": "ruleSetUpdated",
+                    "description": "Upsert. Currently, it is only emitted when a rule set added.",
                     "parameters": [
                         {
-                            "name": "authenticatorId",
-                            "$ref": "AuthenticatorId"
+                            "name": "ruleSet",
+                            "$ref": "RuleSet"
                         }
                     ]
                 },
-                {
-                    "name": "addCredential",
-                    "description": "Adds the credential to the specified authenticator.",
+                {
+                    "name": "ruleSetRemoved",
                     "parameters": [
                         {
-                            "name": "authenticatorId",
-                            "$ref": "AuthenticatorId"
-                        },
-                        {
-                            "name": "credential",
-                            "$ref": "Credential"
+                            "name": "id",
+                            "$ref": "RuleSetId"
                         }
                     ]
                 },
                 {
-                    "name": "getCredential",
-                    "description": "Returns a single credential stored in the given virtual authenticator that\nmatches the credential ID.",
+                    "name": "prerenderAttemptCompleted",
+                    "description": "Fired when a prerender attempt is completed.",
                     "parameters": [
                         {
-                            "name": "authenticatorId",
-                            "$ref": "AuthenticatorId"
+                            "name": "key",
+                            "$ref": "PreloadingAttemptKey"
                         },
                         {
-                            "name": "credentialId",
+                            "name": "initiatingFrameId",
+                            "description": "The frame id of the frame initiating prerendering.",
+                            "$ref": "Page.FrameId"
+                        },
+                        {
+                            "name": "prerenderingUrl",
                             "type": "string"
-                        }
-                    ],
-                    "returns": [
+                        },
                         {
-                            "name": "credential",
-                            "$ref": "Credential"
+                            "name": "finalStatus",
+                            "$ref": "PrerenderFinalStatus"
+                        },
+                        {
+                            "name": "disallowedApiMethod",
+                            "description": "This is used to give users more information about the name of the API call\nthat is incompatible with prerender and has caused the cancellation of the attempt",
+                            "optional": true,
+                            "type": "string"
                         }
                     ]
                 },
                 {
-                    "name": "getCredentials",
-                    "description": "Returns all the credentials stored in the given virtual authenticator.",
+                    "name": "preloadEnabledStateUpdated",
+                    "description": "Fired when a preload enabled state is updated.",
                     "parameters": [
                         {
-                            "name": "authenticatorId",
-                            "$ref": "AuthenticatorId"
-                        }
-                    ],
-                    "returns": [
+                            "name": "disabledByPreference",
+                            "type": "boolean"
+                        },
                         {
-                            "name": "credentials",
-                            "type": "array",
-                            "items": {
-                                "$ref": "Credential"
-                            }
+                            "name": "disabledByDataSaver",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "disabledByBatterySaver",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "disabledByHoldbackPrefetchSpeculationRules",
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "disabledByHoldbackPrerenderSpeculationRules",
+                            "type": "boolean"
                         }
                     ]
                 },
                 {
-                    "name": "removeCredential",
-                    "description": "Removes a credential from the authenticator.",
+                    "name": "prefetchStatusUpdated",
+                    "description": "Fired when a prefetch attempt is updated.",
                     "parameters": [
                         {
-                            "name": "authenticatorId",
-                            "$ref": "AuthenticatorId"
+                            "name": "key",
+                            "$ref": "PreloadingAttemptKey"
                         },
                         {
-                            "name": "credentialId",
+                            "name": "initiatingFrameId",
+                            "description": "The frame id of the frame initiating prefetch.",
+                            "$ref": "Page.FrameId"
+                        },
+                        {
+                            "name": "prefetchUrl",
                             "type": "string"
-                        }
-                    ]
-                },
-                {
-                    "name": "clearCredentials",
-                    "description": "Clears all the credentials from the specified device.",
-                    "parameters": [
+                        },
                         {
-                            "name": "authenticatorId",
-                            "$ref": "AuthenticatorId"
+                            "name": "status",
+                            "$ref": "PreloadingStatus"
+                        },
+                        {
+                            "name": "prefetchStatus",
+                            "$ref": "PrefetchStatus"
+                        },
+                        {
+                            "name": "requestId",
+                            "$ref": "Network.RequestId"
                         }
                     ]
                 },
                 {
-                    "name": "setUserVerified",
-                    "description": "Sets whether User Verification succeeds or fails for an authenticator.\nThe default is true.",
+                    "name": "prerenderStatusUpdated",
+                    "description": "Fired when a prerender attempt is updated.",
                     "parameters": [
                         {
-                            "name": "authenticatorId",
-                            "$ref": "AuthenticatorId"
+                            "name": "key",
+                            "$ref": "PreloadingAttemptKey"
                         },
                         {
-                            "name": "isUserVerified",
-                            "type": "boolean"
+                            "name": "status",
+                            "$ref": "PreloadingStatus"
+                        },
+                        {
+                            "name": "prerenderStatus",
+                            "optional": true,
+                            "$ref": "PrerenderFinalStatus"
+                        },
+                        {
+                            "name": "disallowedMojoInterface",
+                            "description": "This is used to give users more information about the name of Mojo interface\nthat is incompatible with prerender and has caused the cancellation of the attempt.",
+                            "optional": true,
+                            "type": "string"
                         }
                     ]
                 },
                 {
-                    "name": "setAutomaticPresenceSimulation",
-                    "description": "Sets whether tests of user presence will succeed immediately (if true) or fail to resolve (if false) for an authenticator.\nThe default is true.",
+                    "name": "preloadingAttemptSourcesUpdated",
+                    "description": "Send a list of sources for all preloading attempts in a document.",
                     "parameters": [
                         {
-                            "name": "authenticatorId",
-                            "$ref": "AuthenticatorId"
+                            "name": "loaderId",
+                            "$ref": "Network.LoaderId"
                         },
                         {
-                            "name": "enabled",
-                            "type": "boolean"
+                            "name": "preloadingAttemptSources",
+                            "type": "array",
+                            "items": {
+                                "$ref": "PreloadingAttemptSource"
+                            }
                         }
                     ]
                 }
             ]
         },
         {
-            "domain": "Media",
-            "description": "This domain allows detailed inspection of media elements",
+            "domain": "FedCm",
+            "description": "This domain allows interacting with the FedCM dialog.",
             "experimental": true,
             "types": [
                 {
-                    "id": "PlayerId",
-                    "description": "Players will get an ID that is unique within the agent context.",
-                    "type": "string"
+                    "id": "LoginState",
+                    "description": "Whether this is a sign-up or sign-in action for this account, i.e.\nwhether this account has ever been used to sign in to this RP before.",
+                    "type": "string",
+                    "enum": [
+                        "SignIn",
+                        "SignUp"
+                    ]
                 },
                 {
-                    "id": "Timestamp",
-                    "type": "number"
+                    "id": "DialogType",
+                    "description": "Whether the dialog shown is an account chooser or an auto re-authentication dialog.",
+                    "type": "string",
+                    "enum": [
+                        "AccountChooser",
+                        "AutoReauthn"
+                    ]
                 },
                 {
-                    "id": "PlayerMessage",
-                    "description": "Have one type per entry in MediaLogRecord::Type\nCorresponds to kMessage",
+                    "id": "Account",
+                    "description": "Corresponds to IdentityRequestAccount",
                     "type": "object",
                     "properties": [
                         {
-                            "name": "level",
-                            "description": "Keep in sync with MediaLogMessageLevel\nWe are currently keeping the message level 'error' separate from the\nPlayerError type because right now they represent different things,\nthis one being a DVLOG(ERROR) style log message that gets printed\nbased on what log level is selected in the UI, and the other is a\nrepresentation of a media::PipelineStatus object. Soon however we're\ngoing to be moving away from using PipelineStatus for errors and\nintroducing a new error type which should hopefully let us integrate\nthe error log level into the PlayerError type.",
-                            "type": "string",
-                            "enum": [
-                                "error",
-                                "warning",
-                                "info",
-                                "debug"
-                            ]
+                            "name": "accountId",
+                            "type": "string"
                         },
                         {
-                            "name": "message",
+                            "name": "email",
                             "type": "string"
-                        }
-                    ]
-                },
-                {
-                    "id": "PlayerProperty",
-                    "description": "Corresponds to kMediaPropertyChange",
-                    "type": "object",
-                    "properties": [
+                        },
                         {
                             "name": "name",
                             "type": "string"
                         },
                         {
-                            "name": "value",
+                            "name": "givenName",
                             "type": "string"
-                        }
-                    ]
-                },
-                {
-                    "id": "PlayerEvent",
-                    "description": "Corresponds to kMediaEventTriggered",
-                    "type": "object",
-                    "properties": [
+                        },
                         {
-                            "name": "timestamp",
-                            "$ref": "Timestamp"
+                            "name": "pictureUrl",
+                            "type": "string"
                         },
                         {
-                            "name": "value",
+                            "name": "idpConfigUrl",
                             "type": "string"
-                        }
-                    ]
-                },
-                {
-                    "id": "PlayerError",
-                    "description": "Corresponds to kMediaError",
-                    "type": "object",
-                    "properties": [
+                        },
                         {
-                            "name": "type",
-                            "type": "string",
-                            "enum": [
-                                "pipeline_error",
-                                "media_error"
-                            ]
+                            "name": "idpSigninUrl",
+                            "type": "string"
                         },
                         {
-                            "name": "errorCode",
-                            "description": "When this switches to using media::Status instead of PipelineStatus\nwe can remove \"errorCode\" and replace it with the fields from\na Status instance. This also seems like a duplicate of the error\nlevel enum - there is a todo bug to have that level removed and\nuse this instead. (crbug.com/1068454)",
+                            "name": "loginState",
+                            "$ref": "LoginState"
+                        },
+                        {
+                            "name": "termsOfServiceUrl",
+                            "description": "These two are only set if the loginState is signUp",
+                            "optional": true,
+                            "type": "string"
+                        },
+                        {
+                            "name": "privacyPolicyUrl",
+                            "optional": true,
                             "type": "string"
                         }
                     ]
@@ -21183,95 +24031,81 @@
             ],
             "events": [
                 {
-                    "name": "playerPropertiesChanged",
-                    "description": "This can be called multiple times, and can be used to set / override /\nremove player properties. A null propValue indicates removal.",
+                    "name": "dialogShown",
                     "parameters": [
                         {
-                            "name": "playerId",
-                            "$ref": "PlayerId"
+                            "name": "dialogId",
+                            "type": "string"
                         },
                         {
-                            "name": "properties",
+                            "name": "dialogType",
+                            "$ref": "DialogType"
+                        },
+                        {
+                            "name": "accounts",
                             "type": "array",
                             "items": {
-                                "$ref": "PlayerProperty"
+                                "$ref": "Account"
                             }
-                        }
-                    ]
-                },
-                {
-                    "name": "playerEventsAdded",
-                    "description": "Send events as a list, allowing them to be batched on the browser for less\ncongestion. If batched, events must ALWAYS be in chronological order.",
-                    "parameters": [
+                        },
                         {
-                            "name": "playerId",
-                            "$ref": "PlayerId"
+                            "name": "title",
+                            "description": "These exist primarily so that the caller can verify the\nRP context was used appropriately.",
+                            "type": "string"
                         },
                         {
-                            "name": "events",
-                            "type": "array",
-                            "items": {
-                                "$ref": "PlayerEvent"
-                            }
+                            "name": "subtitle",
+                            "optional": true,
+                            "type": "string"
                         }
                     ]
-                },
+                }
+            ],
+            "commands": [
                 {
-                    "name": "playerMessagesLogged",
-                    "description": "Send a list of any messages that need to be delivered.",
+                    "name": "enable",
                     "parameters": [
                         {
-                            "name": "playerId",
-                            "$ref": "PlayerId"
-                        },
-                        {
-                            "name": "messages",
-                            "type": "array",
-                            "items": {
-                                "$ref": "PlayerMessage"
-                            }
+                            "name": "disableRejectionDelay",
+                            "description": "Allows callers to disable the promise rejection delay that would\nnormally happen, if this is unimportant to what's being tested.\n(step 4 of https://fedidcg.github.io/FedCM/#browser-api-rp-sign-in)",
+                            "optional": true,
+                            "type": "boolean"
                         }
                     ]
                 },
                 {
-                    "name": "playerErrorsRaised",
-                    "description": "Send a list of any errors that need to be delivered.",
+                    "name": "disable"
+                },
+                {
+                    "name": "selectAccount",
                     "parameters": [
                         {
-                            "name": "playerId",
-                            "$ref": "PlayerId"
+                            "name": "dialogId",
+                            "type": "string"
                         },
                         {
-                            "name": "errors",
-                            "type": "array",
-                            "items": {
-                                "$ref": "PlayerError"
-                            }
+                            "name": "accountIndex",
+                            "type": "integer"
                         }
                     ]
                 },
                 {
-                    "name": "playersCreated",
-                    "description": "Called whenever a player is created, or when a new agent joins and receives\na list of active players. If an agent is restored, it will receive the full\nlist of player ids and all events again.",
+                    "name": "dismissDialog",
                     "parameters": [
                         {
-                            "name": "players",
-                            "type": "array",
-                            "items": {
-                                "$ref": "PlayerId"
-                            }
+                            "name": "dialogId",
+                            "type": "string"
+                        },
+                        {
+                            "name": "triggerCooldown",
+                            "optional": true,
+                            "type": "boolean"
                         }
                     ]
-                }
-            ],
-            "commands": [
-                {
-                    "name": "enable",
-                    "description": "Enables the Media domain"
                 },
                 {
-                    "name": "disable",
-                    "description": "Disables the Media domain."
+                    "name": "resetCooldown",
+                    "description": "Resets the cooldown time, if any, to allow the next FedCM call to show\na dialog even if one was recently dismissed by the user."
                 }
             ]
         }
diff --git a/json/js_protocol.json b/json/js_protocol.json
index 727d69e..18587d7 100644
--- a/json/js_protocol.json
+++ b/json/js_protocol.json
@@ -205,7 +205,8 @@
                         },
                         {
                             "name": "url",
-                            "description": "JavaScript script name or url.",
+                            "description": "JavaScript script name or url.\nDeprecated in favor of using the `location.scriptId` to resolve the URL via a previously\nsent `Debugger.scriptParsed` event.",
+                            "deprecated": true,
                             "type": "string"
                         },
                         {
@@ -226,6 +227,13 @@
                             "description": "The value being returned, if the function is at return point.",
                             "optional": true,
                             "$ref": "Runtime.RemoteObject"
+                        },
+                        {
+                            "name": "canBeRestarted",
+                            "description": "Valid only while the VM is paused and indicates whether this frame\ncan be restarted or not. Note that a `true` value here does not\nguarantee that Debugger#restartFrame with this CallFrameId will be\nsuccessful, but it is very likely.",
+                            "experimental": true,
+                            "optional": true,
+                            "type": "boolean"
                         }
                     ]
                 },
@@ -324,6 +332,29 @@
                         }
                     ]
                 },
+                {
+                    "id": "WasmDisassemblyChunk",
+                    "experimental": true,
+                    "type": "object",
+                    "properties": [
+                        {
+                            "name": "lines",
+                            "description": "The next chunk of disassembled lines.",
+                            "type": "array",
+                            "items": {
+                                "type": "string"
+                            }
+                        },
+                        {
+                            "name": "bytecodeOffsets",
+                            "description": "The bytecode offsets describing the start of each line.",
+                            "type": "array",
+                            "items": {
+                                "type": "integer"
+                            }
+                        }
+                    ]
+                },
                 {
                     "id": "ScriptLanguage",
                     "description": "Enum of possible script languages.",
@@ -534,6 +565,61 @@
                         }
                     ]
                 },
+                {
+                    "name": "disassembleWasmModule",
+                    "experimental": true,
+                    "parameters": [
+                        {
+                            "name": "scriptId",
+                            "description": "Id of the script to disassemble",
+                            "$ref": "Runtime.ScriptId"
+                        }
+                    ],
+                    "returns": [
+                        {
+                            "name": "streamId",
+                            "description": "For large modules, return a stream from which additional chunks of\ndisassembly can be read successively.",
+                            "optional": true,
+                            "type": "string"
+                        },
+                        {
+                            "name": "totalNumberOfLines",
+                            "description": "The total number of lines in the disassembly text.",
+                            "type": "integer"
+                        },
+                        {
+                            "name": "functionBodyOffsets",
+                            "description": "The offsets of all function bodies, in the format [start1, end1,\nstart2, end2, ...] where all ends are exclusive.",
+                            "type": "array",
+                            "items": {
+                                "type": "integer"
+                            }
+                        },
+                        {
+                            "name": "chunk",
+                            "description": "The first chunk of disassembly.",
+                            "$ref": "WasmDisassemblyChunk"
+                        }
+                    ]
+                },
+                {
+                    "name": "nextWasmDisassemblyChunk",
+                    "description": "Disassemble the next chunk of lines for the module corresponding to the\nstream. If disassembly is complete, this API will invalidate the streamId\nand return an empty chunk. Any subsequent calls for the now invalid stream\nwill return errors.",
+                    "experimental": true,
+                    "parameters": [
+                        {
+                            "name": "streamId",
+                            "type": "string"
+                        }
+                    ],
+                    "returns": [
+                        {
+                            "name": "chunk",
+                            "description": "The next chunk of disassembly.",
+                            "$ref": "WasmDisassemblyChunk"
+                        }
+                    ]
+                },
                 {
                     "name": "getWasmBytecode",
                     "description": "This command is deprecated. Use getScriptSource instead.",
@@ -598,19 +684,29 @@
                 },
                 {
                     "name": "restartFrame",
-                    "description": "Restarts particular call frame from the beginning.",
-                    "deprecated": true,
+                    "description": "Restarts particular call frame from the beginning. The old, deprecated\nbehavior of `restartFrame` is to stay paused and allow further CDP commands\nafter a restart was scheduled. This can cause problems with restarting, so\nwe now continue execution immediatly after it has been scheduled until we\nreach the beginning of the restarted frame.\n\nTo stay back-wards compatible, `restartFrame` now expects a `mode`\nparameter to be present. If the `mode` parameter is missing, `restartFrame`\nerrors out.\n\nThe various return values are deprecated and `callFrames` is always empty.\nUse the call frames from the `Debugger#paused` events instead, that fires\nonce V8 pauses at the beginning of the restarted function.",
                     "parameters": [
                         {
                             "name": "callFrameId",
                             "description": "Call frame identifier to evaluate on.",
                             "$ref": "CallFrameId"
+                        },
+                        {
+                            "name": "mode",
+                            "description": "The `mode` parameter must be present and set to 'StepInto', otherwise\n`restartFrame` will error out.",
+                            "experimental": true,
+                            "optional": true,
+                            "type": "string",
+                            "enum": [
+                                "StepInto"
+                            ]
                         }
                     ],
                     "returns": [
                         {
                             "name": "callFrames",
                             "description": "New stack trace.",
+                            "deprecated": true,
                             "type": "array",
                             "items": {
                                 "$ref": "CallFrame"
@@ -619,13 +715,14 @@
                         {
                             "name": "asyncStackTrace",
                             "description": "Async stack trace, if any.",
+                            "deprecated": true,
                             "optional": true,
                             "$ref": "Runtime.StackTrace"
                         },
                         {
                             "name": "asyncStackTraceId",
                             "description": "Async stack trace, if any.",
-                            "experimental": true,
+                            "deprecated": true,
                             "optional": true,
                             "$ref": "Runtime.StackTraceId"
                         }
@@ -871,7 +968,7 @@
                 },
                 {
                     "name": "setPauseOnExceptions",
-                    "description": "Defines pause on exceptions state. Can be set to stop on all exceptions, uncaught exceptions or\nno exceptions. Initial pause on exceptions state is `none`.",
+                    "description": "Defines pause on exceptions state. Can be set to stop on all exceptions, uncaught exceptions,\nor caught exceptions, no exceptions. Initial pause on exceptions state is `none`.",
                     "parameters": [
                         {
                             "name": "state",
@@ -879,6 +976,7 @@
                             "type": "string",
                             "enum": [
                                 "none",
+                                "caught",
                                 "uncaught",
                                 "all"
                             ]
@@ -899,7 +997,7 @@
                 },
                 {
                     "name": "setScriptSource",
-                    "description": "Edits JavaScript source live.",
+                    "description": "Edits JavaScript source live.\n\nIn general, functions that are currently on the stack can not be edited with\na single exception: If the edited function is the top-most stack frame and\nthat is the only activation of that function on the stack. In this case\nthe live edit will be successful and a `Debugger.restartFrame` for the\ntop-most function is automatically triggered.",
                     "parameters": [
                         {
                             "name": "scriptId",
@@ -916,12 +1014,20 @@
                             "description": "If true the change will not actually be applied. Dry run may be used to get result\ndescription without actually modifying the code.",
                             "optional": true,
                             "type": "boolean"
+                        },
+                        {
+                            "name": "allowTopFrameEditing",
+                            "description": "If true, then `scriptSource` is allowed to change the function on top of the stack\nas long as the top-most stack frame is the only activation of that function.",
+                            "experimental": true,
+                            "optional": true,
+                            "type": "boolean"
                         }
                     ],
                     "returns": [
                         {
                             "name": "callFrames",
                             "description": "New stack trace in case editing has happened while VM was stopped.",
+                            "deprecated": true,
                             "optional": true,
                             "type": "array",
                             "items": {
@@ -931,25 +1037,40 @@
                         {
                             "name": "stackChanged",
                             "description": "Whether current call stack  was modified after applying the changes.",
+                            "deprecated": true,
                             "optional": true,
                             "type": "boolean"
                         },
                         {
                             "name": "asyncStackTrace",
                             "description": "Async stack trace, if any.",
+                            "deprecated": true,
                             "optional": true,
                             "$ref": "Runtime.StackTrace"
                         },
                         {
                             "name": "asyncStackTraceId",
                             "description": "Async stack trace, if any.",
-                            "experimental": true,
+                            "deprecated": true,
                             "optional": true,
                             "$ref": "Runtime.StackTraceId"
                         },
+                        {
+                            "name": "status",
+                            "description": "Whether the operation was successful or not. Only `Ok` denotes a\nsuccessful live edit while the other enum variants denote why\nthe live edit failed.",
+                            "experimental": true,
+                            "type": "string",
+                            "enum": [
+                                "Ok",
+                                "CompileError",
+                                "BlockedByActiveGenerator",
+                                "BlockedByActiveFunction",
+                                "BlockedByTopLevelEsModuleChange"
+                            ]
+                        },
                         {
                             "name": "exceptionDetails",
-                            "description": "Exception details if any.",
+                            "description": "Exception details if any. Only present when `status` is `CompileError`.",
                             "optional": true,
                             "$ref": "Runtime.ExceptionDetails"
                         }
@@ -1081,7 +1202,8 @@
                                 "OOM",
                                 "other",
                                 "promiseRejection",
-                                "XHR"
+                                "XHR",
+                                "step"
                             ]
                         },
                         {
@@ -1167,12 +1289,12 @@
                         },
                         {
                             "name": "hash",
-                            "description": "Content hash of the script.",
+                            "description": "Content hash of the script, SHA-256.",
                             "type": "string"
                         },
                         {
                             "name": "executionContextAuxData",
-                            "description": "Embedder-specific auxiliary data.",
+                            "description": "Embedder-specific auxiliary data likely matching {isDefault: boolean, type: 'default'|'isolated'|'worker', frameId: string}",
                             "optional": true,
                             "type": "object"
                         },
@@ -1271,12 +1393,12 @@
                         },
                         {
                             "name": "hash",
-                            "description": "Content hash of the script.",
+                            "description": "Content hash of the script, SHA-256.",
                             "type": "string"
                         },
                         {
                             "name": "executionContextAuxData",
-                            "description": "Embedder-specific auxiliary data.",
+                            "description": "Embedder-specific auxiliary data likely matching {isDefault: boolean, type: 'default'|'isolated'|'worker', frameId: string}",
                             "optional": true,
                             "type": "object"
                         },
@@ -1511,6 +1633,18 @@
                             "description": "Average sample interval in bytes. Poisson distribution is used for the intervals. The\ndefault value is 32768 bytes.",
                             "optional": true,
                             "type": "number"
+                        },
+                        {
+                            "name": "includeObjectsCollectedByMajorGC",
+                            "description": "By default, the sampling heap profiler reports only objects which are\nstill alive when the profile is returned via getSamplingProfile or\nstopSampling, which is useful for determining what functions contribute\nthe most to steady-state memory usage. This flag instructs the sampling\nheap profiler to also include information about objects discarded by\nmajor GC, which will show which functions cause large temporary memory\nusage or long GC pauses.",
+                            "optional": true,
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "includeObjectsCollectedByMinorGC",
+                            "description": "By default, the sampling heap profiler reports only objects which are\nstill alive when the profile is returned via getSamplingProfile or\nstopSampling, which is useful for determining what functions contribute\nthe most to steady-state memory usage. This flag instructs the sampling\nheap profiler to also include information about objects discarded by\nminor GC, which is useful when tuning a latency-sensitive application\nfor minimal GC activity.",
+                            "optional": true,
+                            "type": "boolean"
                         }
                     ]
                 },
@@ -1545,6 +1679,8 @@
                         },
                         {
                             "name": "treatGlobalObjectsAsRoots",
+                            "description": "Deprecated in favor of `exposeInternals`.",
+                            "deprecated": true,
                             "optional": true,
                             "type": "boolean"
                         },
@@ -1553,6 +1689,13 @@
                             "description": "If true, numerical values are included in the snapshot",
                             "optional": true,
                             "type": "boolean"
+                        },
+                        {
+                            "name": "exposeInternals",
+                            "description": "If true, exposes internals of the snapshot.",
+                            "experimental": true,
+                            "optional": true,
+                            "type": "boolean"
                         }
                     ]
                 },
@@ -1567,7 +1710,8 @@
                         },
                         {
                             "name": "treatGlobalObjectsAsRoots",
-                            "description": "If true, a raw snapshot without artificial roots will be generated",
+                            "description": "If true, a raw snapshot without artificial roots will be generated.\nDeprecated in favor of `exposeInternals`.",
+                            "deprecated": true,
                             "optional": true,
                             "type": "boolean"
                         },
@@ -1576,6 +1720,13 @@
                             "description": "If true, numerical values are included in the snapshot",
                             "optional": true,
                             "type": "boolean"
+                        },
+                        {
+                            "name": "exposeInternals",
+                            "description": "If true, exposes internals of the snapshot.",
+                            "experimental": true,
+                            "optional": true,
+                            "type": "boolean"
                         }
                     ]
                 }
@@ -1826,66 +1977,6 @@
                             }
                         }
                     ]
-                },
-                {
-                    "id": "TypeObject",
-                    "description": "Describes a type collected during runtime.",
-                    "experimental": true,
-                    "type": "object",
-                    "properties": [
-                        {
-                            "name": "name",
-                            "description": "Name of a type collected with type profiling.",
-                            "type": "string"
-                        }
-                    ]
-                },
-                {
-                    "id": "TypeProfileEntry",
-                    "description": "Source offset and types for a parameter or return value.",
-                    "experimental": true,
-                    "type": "object",
-                    "properties": [
-                        {
-                            "name": "offset",
-                            "description": "Source offset of the parameter or end of function for return values.",
-                            "type": "integer"
-                        },
-                        {
-                            "name": "types",
-                            "description": "The types for this parameter or return value.",
-                            "type": "array",
-                            "items": {
-                                "$ref": "TypeObject"
-                            }
-                        }
-                    ]
-                },
-                {
-                    "id": "ScriptTypeProfile",
-                    "description": "Type profile data collected during runtime for a JavaScript script.",
-                    "experimental": true,
-                    "type": "object",
-                    "properties": [
-                        {
-                            "name": "scriptId",
-                            "description": "JavaScript script id.",
-                            "$ref": "Runtime.ScriptId"
-                        },
-                        {
-                            "name": "url",
-                            "description": "JavaScript script name or url.",
-                            "type": "string"
-                        },
-                        {
-                            "name": "entries",
-                            "description": "Type profile entries for parameters and return values of the functions in the script.",
-                            "type": "array",
-                            "items": {
-                                "$ref": "TypeProfileEntry"
-                            }
-                        }
-                    ]
                 }
             ],
             "commands": [
@@ -1954,11 +2045,6 @@
                         }
                     ]
                 },
-                {
-                    "name": "startTypeProfile",
-                    "description": "Enable type profile.",
-                    "experimental": true
-                },
                 {
                     "name": "stop",
                     "returns": [
@@ -1973,11 +2059,6 @@
                     "name": "stopPreciseCoverage",
                     "description": "Disable precise code coverage. Disabling releases unnecessary execution count records and allows\nexecuting optimized code."
                 },
-                {
-                    "name": "stopTypeProfile",
-                    "description": "Disable type profile. Disabling releases type profile data collected so far.",
-                    "experimental": true
-                },
                 {
                     "name": "takePreciseCoverage",
                     "description": "Collect coverage data for the current isolate, and resets execution counters. Precise code\ncoverage needs to have started.",
@@ -1996,21 +2077,6 @@
                             "type": "number"
                         }
                     ]
-                },
-                {
-                    "name": "takeTypeProfile",
-                    "description": "Collect type profile.",
-                    "experimental": true,
-                    "returns": [
-                        {
-                            "name": "result",
-                            "description": "Type profile for all scripts since startTypeProfile() was turned on.",
-                            "type": "array",
-                            "items": {
-                                "$ref": "ScriptTypeProfile"
-                            }
-                        }
-                    ]
                 }
             ],
             "events": [
@@ -2095,6 +2161,86 @@
                     "description": "Unique script identifier.",
                     "type": "string"
                 },
+                {
+                    "id": "SerializationOptions",
+                    "description": "Represents options for serialization. Overrides `generatePreview`, `returnByValue` and\n`generateWebDriverValue`.",
+                    "type": "object",
+                    "properties": [
+                        {
+                            "name": "serialization",
+                            "type": "string",
+                            "enum": [
+                                "deep",
+                                "json",
+                                "idOnly"
+                            ]
+                        },
+                        {
+                            "name": "maxDepth",
+                            "description": "Deep serialization depth. Default is full depth. Respected only in `deep` serialization mode.",
+                            "optional": true,
+                            "type": "integer"
+                        },
+                        {
+                            "name": "additionalParameters",
+                            "description": "Embedder-specific parameters. For example if connected to V8 in Chrome these control DOM\nserialization via `maxNodeDepth: integer` and `includeShadowTree: \"none\" | \"open\" | \"all\"`.\nValues can be only of type string or integer.",
+                            "optional": true,
+                            "type": "object"
+                        }
+                    ]
+                },
+                {
+                    "id": "DeepSerializedValue",
+                    "description": "Represents deep serialized value.",
+                    "type": "object",
+                    "properties": [
+                        {
+                            "name": "type",
+                            "type": "string",
+                            "enum": [
+                                "undefined",
+                                "null",
+                                "string",
+                                "number",
+                                "boolean",
+                                "bigint",
+                                "regexp",
+                                "date",
+                                "symbol",
+                                "array",
+                                "object",
+                                "function",
+                                "map",
+                                "set",
+                                "weakmap",
+                                "weakset",
+                                "error",
+                                "proxy",
+                                "promise",
+                                "typedarray",
+                                "arraybuffer",
+                                "node",
+                                "window"
+                            ]
+                        },
+                        {
+                            "name": "value",
+                            "optional": true,
+                            "type": "any"
+                        },
+                        {
+                            "name": "objectId",
+                            "optional": true,
+                            "type": "string"
+                        },
+                        {
+                            "name": "weakLocalObjectReference",
+                            "description": "Set if value reference met more then once during serialization. In such\ncase, value is provided only to one of the serialized values. Unique\nper value in the scope of one CDP call.",
+                            "optional": true,
+                            "type": "integer"
+                        }
+                    ]
+                },
                 {
                     "id": "RemoteObjectId",
                     "description": "Unique object identifier.",
@@ -2176,6 +2322,20 @@
                             "optional": true,
                             "type": "string"
                         },
+                        {
+                            "name": "webDriverValue",
+                            "description": "Deprecated. Use `deepSerializedValue` instead. WebDriver BiDi representation of the value.",
+                            "deprecated": true,
+                            "optional": true,
+                            "$ref": "DeepSerializedValue"
+                        },
+                        {
+                            "name": "deepSerializedValue",
+                            "description": "Deep serialized value.",
+                            "experimental": true,
+                            "optional": true,
+                            "$ref": "DeepSerializedValue"
+                        },
                         {
                             "name": "objectId",
                             "description": "Unique object identifier (for non-primitive values).",
@@ -2549,7 +2709,7 @@
                         },
                         {
                             "name": "auxData",
-                            "description": "Embedder-specific auxiliary data.",
+                            "description": "Embedder-specific auxiliary data likely matching {isDefault: boolean, type: 'default'|'isolated'|'worker', frameId: string}",
                             "optional": true,
                             "type": "object"
                         }
@@ -2788,7 +2948,7 @@
                         },
                         {
                             "name": "returnByValue",
-                            "description": "Whether the result is expected to be a JSON object which should be sent by value.",
+                            "description": "Whether the result is expected to be a JSON object which should be sent by value.\nCan be overriden by `serializationOptions`.",
                             "optional": true,
                             "type": "boolean"
                         },
@@ -2829,6 +2989,27 @@
                             "experimental": true,
                             "optional": true,
                             "type": "boolean"
+                        },
+                        {
+                            "name": "uniqueContextId",
+                            "description": "An alternative way to specify the execution context to call function on.\nCompared to contextId that may be reused across processes, this is guaranteed to be\nsystem-unique, so it can be used to prevent accidental function call\nin context different than intended (e.g. as a result of navigation across process\nboundaries).\nThis is mutually exclusive with `executionContextId`.",
+                            "experimental": true,
+                            "optional": true,
+                            "type": "string"
+                        },
+                        {
+                            "name": "generateWebDriverValue",
+                            "description": "Deprecated. Use `serializationOptions: {serialization:\"deep\"}` instead.\nWhether the result should contain `webDriverValue`, serialized according to\nhttps://w3c.github.io/webdriver-bidi. This is mutually exclusive with `returnByValue`, but\nresulting `objectId` is still provided.",
+                            "deprecated": true,
+                            "optional": true,
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "serializationOptions",
+                            "description": "Specifies the result serialization. If provided, overrides\n`generatePreview`, `returnByValue` and `generateWebDriverValue`.",
+                            "experimental": true,
+                            "optional": true,
+                            "$ref": "SerializationOptions"
                         }
                     ],
                     "returns": [
@@ -2997,6 +3178,20 @@
                             "experimental": true,
                             "optional": true,
                             "type": "string"
+                        },
+                        {
+                            "name": "generateWebDriverValue",
+                            "description": "Deprecated. Use `serializationOptions: {serialization:\"deep\"}` instead.\nWhether the result should contain `webDriverValue`, serialized\naccording to\nhttps://w3c.github.io/webdriver-bidi. This is mutually exclusive with `returnByValue`, but\nresulting `objectId` is still provided.",
+                            "deprecated": true,
+                            "optional": true,
+                            "type": "boolean"
+                        },
+                        {
+                            "name": "serializationOptions",
+                            "description": "Specifies the result serialization. If provided, overrides\n`generatePreview`, `returnByValue` and `generateWebDriverValue`.",
+                            "experimental": true,
+                            "optional": true,
+                            "$ref": "SerializationOptions"
                         }
                     ],
                     "returns": [
@@ -3323,6 +3518,25 @@
                             "type": "string"
                         }
                     ]
+                },
+                {
+                    "name": "getExceptionDetails",
+                    "description": "This method tries to lookup and populate exception details for a\nJavaScript Error object.\nNote that the stackTrace portion of the resulting exceptionDetails will\nonly be populated if the Runtime domain was enabled at the time when the\nError was thrown.",
+                    "experimental": true,
+                    "parameters": [
+                        {
+                            "name": "errorObjectId",
+                            "description": "The error object for which to resolve the exception details.",
+                            "$ref": "RemoteObjectId"
+                        }
+                    ],
+                    "returns": [
+                        {
+                            "name": "exceptionDetails",
+                            "optional": true,
+                            "$ref": "ExceptionDetails"
+                        }
+                    ]
                 }
             ],
             "events": [
@@ -3457,7 +3671,14 @@
                         {
                             "name": "executionContextId",
                             "description": "Id of the destroyed context",
+                            "deprecated": true,
                             "$ref": "ExecutionContextId"
+                        },
+                        {
+                            "name": "executionContextUniqueId",
+                            "description": "Unique Id of the destroyed context",
+                            "experimental": true,
+                            "type": "string"
                         }
                     ]
                 },
diff --git a/package.json b/package.json
index 37421bb..1ef1c00 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
   "name": "devtools-protocol",
-  "version": "0.0.957947",
+  "version": "0.0.1166296",
   "description": "The Chrome DevTools Protocol JSON",
   "repository": "https://github.com/ChromeDevTools/devtools-protocol",
   "author": "The Chromium Authors",
diff --git a/pdl/browser_protocol.pdl b/pdl/browser_protocol.pdl
index a40434c..11c0758 100644
--- a/pdl/browser_protocol.pdl
+++ b/pdl/browser_protocol.pdl
@@ -1,8 +1,8 @@
-# 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.
 #
-# Contributing to Chrome DevTools Protocol: https://docs.google.com/document/d/1c-COD2kaK__5iMM5SEx-PzNA7HFmgttcYfOHHX0HaOM/edit?usp=sharing
+# Contributing to Chrome DevTools Protocol: https://goo.gle/devtools-contribution-guide-cdp
 
 version
   major 1
@@ -168,6 +168,8 @@ experimental domain Accessibility
       optional array of AXProperty ignoredReasons
       # This `Node`'s role, whether explicit or implicit.
       optional AXValue role
+      # This `Node`'s Chrome raw role.
+      optional AXValue chromeRole
       # The accessible name for this `Node`.
       optional AXValue name
       # The accessible description for this `Node`.
@@ -201,7 +203,7 @@ experimental domain Accessibility
       optional DOM.BackendNodeId backendNodeId
       # JavaScript object id of the node wrapper to get the partial accessibility tree for.
       optional Runtime.RemoteObjectId objectId
-      # Whether to fetch this nodes ancestors, siblings and children. Defaults to true.
+      # Whether to fetch this node's ancestors, siblings and children. Defaults to true.
       optional boolean fetchRelatives
     returns
       # The `Accessibility.AXNode` for this DOM node, if it exists, plus its ancestors, siblings and
@@ -214,8 +216,6 @@ experimental domain Accessibility
       # The maximum depth at which descendants of the root node should be retrieved.
       # If omitted, the full tree is returned.
       optional integer depth
-      # Deprecated. This parameter has been renamed to `depth`. If depth is not provided, max_depth will be used.
-      deprecated optional integer max_depth
       # The frame for whose document the AX tree should be retrieved.
       # If omited, the root frame is used.
       optional Page.FrameId frameId
@@ -473,7 +473,7 @@ experimental domain Audits
     properties
       Page.FrameId frameId
 
-  type SameSiteCookieExclusionReason extends string
+  type CookieExclusionReason extends string
     enum
       ExcludeSameSiteUnspecifiedTreatedAsLax
       ExcludeSameSiteNoneInsecure
@@ -481,8 +481,10 @@ experimental domain Audits
       ExcludeSameSiteStrict
       ExcludeInvalidSameParty
       ExcludeSamePartyCrossPartyContext
+      ExcludeDomainNonASCII
+      ExcludeThirdPartyCookieBlockedInFirstPartySet
 
-  type SameSiteCookieWarningReason extends string
+  type CookieWarningReason extends string
     enum
       WarnSameSiteUnspecifiedCrossSiteContext
       WarnSameSiteNoneInsecure
@@ -492,8 +494,10 @@ experimental domain Audits
       WarnSameSiteStrictCrossDowngradeLax
       WarnSameSiteLaxCrossDowngradeStrict
       WarnSameSiteLaxCrossDowngradeLax
+      WarnAttributeValueExceedsMaxSize
+      WarnDomainNonASCII
 
-  type SameSiteCookieOperation extends string
+  type CookieOperation extends string
     enum
       SetCookie
       ReadCookie
@@ -501,7 +505,7 @@ experimental domain Audits
   # 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.
-  type SameSiteCookieIssueDetails extends object
+  type CookieIssueDetails extends object
     properties
       # If AffectedCookie is not set then rawCookieLine contains the raw
       # Set-Cookie header string. This hints at a problem where the
@@ -509,11 +513,11 @@ experimental domain Audits
       # that no valid cookie could be created.
       optional AffectedCookie cookie
       optional string rawCookieLine
-      array of SameSiteCookieWarningReason cookieWarningReasons
-      array of SameSiteCookieExclusionReason cookieExclusionReasons
+      array of CookieWarningReason cookieWarningReasons
+      array of CookieExclusionReason cookieExclusionReasons
       # Optionally identifies the site-for-cookies and the cookie url, which
       # may be used by the front-end as additional context.
-      SameSiteCookieOperation operation
+      CookieOperation operation
       optional string siteForCookies
       optional string cookieUrl
       optional AffectedRequest request
@@ -526,6 +530,7 @@ experimental domain Audits
 
   type MixedContentResourceType extends string
     enum
+      AttributionSrc
       Audio
       Beacon
       CSPReport
@@ -653,25 +658,6 @@ experimental domain Audits
       boolean isWarning
       SharedArrayBufferIssueType type
 
-  type TwaQualityEnforcementViolationType extends string
-    enum
-      kHttpError
-      kUnavailableOffline
-      kDigitalAssetLinks
-
-  type TrustedWebActivityIssueDetails extends object
-    properties
-      # The url that triggers the violation.
-      string url
-      TwaQualityEnforcementViolationType violationType
-      optional integer httpStatusCode
-      # The package name of the Trusted Web Activity client app. This field is
-      # only used when violation type is kDigitalAssetLinks.
-      optional string packageName
-      # The signature of the Trusted Web Activity client app. This field is only
-      # used when violation type is kDigitalAssetLinks.
-      optional string signature
-
   type LowTextContrastIssueDetails extends object
     properties
       DOM.BackendNodeId violatingNodeId
@@ -697,24 +683,26 @@ experimental domain Audits
   type AttributionReportingIssueType extends string
     enum
       PermissionPolicyDisabled
-      InvalidAttributionSourceEventId
-      InvalidAttributionData
-      AttributionSourceUntrustworthyOrigin
-      AttributionUntrustworthyOrigin
-      AttributionTriggerDataTooLarge
-      AttributionEventSourceTriggerDataTooLarge
-      InvalidAttributionSourceExpiry
-      InvalidAttributionSourcePriority
-      InvalidEventSourceTriggerData
-      InvalidTriggerPriority
-      InvalidTriggerDedupKey
+      UntrustworthyReportingOrigin
+      InsecureContext
+      # TODO(apaseltiner): Rename this to InvalidRegisterSourceHeader
+      InvalidHeader
+      InvalidRegisterTriggerHeader
+      SourceAndTriggerHeaders
+      SourceIgnored
+      TriggerIgnored
+      OsSourceIgnored
+      OsTriggerIgnored
+      InvalidRegisterOsSourceHeader
+      InvalidRegisterOsTriggerHeader
+      WebAndOsHeaders
+      NoWebOrOsSupport
 
   # Details for issues around "Attribution Reporting API" usage.
-  # Explainer: https://github.com/WICG/conversion-measurement-api
+  # Explainer: https://github.com/WICG/attribution-reporting-api
   type AttributionReportingIssueDetails extends object
     properties
       AttributionReportingIssueType violationType
-      optional AffectedFrame frame
       optional AffectedRequest request
       optional DOM.BackendNodeId violatingNodeId
       optional string invalidParameter
@@ -731,21 +719,25 @@ experimental domain Audits
       Page.FrameId frameId
       Network.LoaderId loaderId
 
-  type NavigatorUserAgentIssueDetails extends object
+  deprecated type NavigatorUserAgentIssueDetails extends object
     properties
       string url
       optional SourceCodeLocation location
 
-  type WasmCrossOriginModuleSharingIssueDetails extends object
-    properties
-      string wasmModuleUrl
-      string sourceOrigin
-      string targetOrigin
-      boolean isWarning
-
   type GenericIssueErrorType extends string
     enum
       CrossOriginPortalPostMessageError
+      FormLabelForNameError
+      FormDuplicateIdForInputError
+      FormInputWithNoLabelError
+      FormAutocompleteAttributeEmptyError
+      FormEmptyIdAndNameAttributesForInputError
+      FormAriaLabelledByToNonExistingId
+      FormInputAssignedAutocompleteValueToIdOrNameAttributeError
+      FormLabelHasNeitherForNorNestedInput
+      FormLabelForMatchesNonExistingIdError
+      FormInputHasWrongButWellIntendedAutocompleteValueError
+      ResponseWasBlockedByORB
 
   # Depending on the concrete errorType, different properties are set.
   type GenericIssueDetails extends object
@@ -753,23 +745,27 @@ experimental domain Audits
       # Issues with the same errorType are aggregated in the frontend.
       GenericIssueErrorType errorType
       optional Page.FrameId frameId
+      optional DOM.BackendNodeId violatingNodeId
+      optional string violatingNodeAttribute
+      optional AffectedRequest request
 
   # This issue tracks information needed to print a deprecation message.
-  # The formatting is inherited from the old console.log version, see more at:
-  # https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/frame/deprecation.cc
-  # TODO(crbug.com/1264960): Re-work format to add i18n support per:
-  # https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/public/devtools_protocol/README.md
+  # https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/frame/third_party/blink/renderer/core/frame/deprecation/README.md
   type DeprecationIssueDetails extends object
     properties
       optional AffectedFrame affectedFrame
       SourceCodeLocation sourceCodeLocation
-      # The content of the deprecation issue (this won't be translated),
-      # e.g. "window.inefficientLegacyStorageMethod will be removed in M97,
-      # around January 2022. Please use Web Storage or Indexed Database
-      # instead. This standard was abandoned in January, 1970. See
-      # https://www.chromestatus.com/feature/5684870116278272 for more details."
-      deprecated optional string message
-      string deprecationType
+      # One of the deprecation names from third_party/blink/renderer/core/frame/deprecation/deprecation.json5
+      string type
+
+  # This issue warns about sites in the redirect chain of a finished navigation
+  # that may be flagged as trackers and have their state cleared if they don't
+  # receive a user interaction. Note that in this context 'site' means eTLD+1.
+  # For example, if the URL `https://example.test:80/bounce` was in the
+  # redirect chain, the site reported would be `example.test`.
+  type BounceTrackingIssueDetails extends object
+    properties
+      array of string trackingSites
 
   type ClientHintIssueReason extends string
     enum
@@ -780,6 +776,71 @@ experimental domain Audits
       # are respected. Any injected via javascript (or other means) are ignored.
       MetaTagModifiedHTML
 
+  type FederatedAuthRequestIssueDetails extends object
+    properties
+      FederatedAuthRequestIssueReason federatedAuthRequestIssueReason
+
+  # Represents the failure reason when a federated authentication reason fails.
+  # Should be updated alongside RequestIdTokenStatus in
+  # third_party/blink/public/mojom/devtools/inspector_issue.mojom to include
+  # all cases except for success.
+  type FederatedAuthRequestIssueReason extends string
+    enum
+      ShouldEmbargo
+      TooManyRequests
+      WellKnownHttpNotFound
+      WellKnownNoResponse
+      WellKnownInvalidResponse
+      WellKnownListEmpty
+      WellKnownInvalidContentType
+      ConfigNotInWellKnown
+      WellKnownTooBig
+      ConfigHttpNotFound
+      ConfigNoResponse
+      ConfigInvalidResponse
+      ConfigInvalidContentType
+      ClientMetadataHttpNotFound
+      ClientMetadataNoResponse
+      ClientMetadataInvalidResponse
+      ClientMetadataInvalidContentType
+      DisabledInSettings
+      ErrorFetchingSignin
+      InvalidSigninResponse
+      AccountsHttpNotFound
+      AccountsNoResponse
+      AccountsInvalidResponse
+      AccountsListEmpty
+      AccountsInvalidContentType
+      IdTokenHttpNotFound
+      IdTokenNoResponse
+      IdTokenInvalidResponse
+      IdTokenInvalidRequest
+      IdTokenInvalidContentType
+      ErrorIdToken
+      Canceled
+      RpPageNotVisible
+      SilentMediationFailure
+      ThirdPartyCookiesBlocked
+
+  type FederatedAuthUserInfoRequestIssueDetails extends object
+    properties
+      FederatedAuthUserInfoRequestIssueReason federatedAuthUserInfoRequestIssueReason
+
+  # Represents the failure reason when a getUserInfo() call fails.
+  # Should be updated alongside FederatedAuthUserInfoRequestResult in
+  # third_party/blink/public/mojom/devtools/inspector_issue.mojom.
+  type FederatedAuthUserInfoRequestIssueReason extends string
+    enum
+      NotSameOrigin
+      NotIframe
+      NotPotentiallyTrustworthy
+      NoApiPermission
+      NotSignedInWithIdp
+      NoAccountSharingPermission
+      InvalidConfigOrWellKnown
+      InvalidAccountsResponse
+      NoReturningUserFromFetchedAccounts
+
   # This issue tracks client hints related issues. It's used to deprecate old
   # features, encourage the use of new ones, and provide general guidance.
   type ClientHintIssueDetails extends object
@@ -787,49 +848,77 @@ experimental domain Audits
       SourceCodeLocation sourceCodeLocation
       ClientHintIssueReason clientHintIssueReason
 
+  type FailedRequestInfo extends object
+    properties
+      # The URL that failed to load.
+      string url
+      # The failure message for the failed request.
+      string failureMessage
+      optional Network.RequestId requestId
+
+  type StyleSheetLoadingIssueReason extends string
+    enum
+      LateImportRule
+      RequestFailed
+
+  # This issue warns when a referenced stylesheet couldn't be loaded.
+  type StylesheetLoadingIssueDetails extends object
+    properties
+      # Source code position that referenced the failing stylesheet.
+      SourceCodeLocation sourceCodeLocation
+      # Reason why the stylesheet couldn't be loaded.
+      StyleSheetLoadingIssueReason styleSheetLoadingIssueReason
+      # Contains additional info when the failure was due to a request.
+      optional FailedRequestInfo failedRequestInfo
+
   # A unique identifier for the type of issue. Each type may use one of the
   # optional fields in InspectorIssueDetails to convey more specific
   # information about the kind of issue.
   type InspectorIssueCode extends string
     enum
-      SameSiteCookieIssue
+      CookieIssue
       MixedContentIssue
       BlockedByResponseIssue
       HeavyAdIssue
       ContentSecurityPolicyIssue
       SharedArrayBufferIssue
-      TrustedWebActivityIssue
       LowTextContrastIssue
       CorsIssue
       AttributionReportingIssue
       QuirksModeIssue
+      # Deprecated
       NavigatorUserAgentIssue
-      WasmCrossOriginModuleSharingIssue
       GenericIssue
       DeprecationIssue
       ClientHintIssue
+      FederatedAuthRequestIssue
+      BounceTrackingIssue
+      StylesheetLoadingIssue
+      FederatedAuthUserInfoRequestIssue
 
   # 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
   # add a new optional field to this type.
   type InspectorIssueDetails extends object
     properties
-      optional SameSiteCookieIssueDetails sameSiteCookieIssueDetails
+      optional CookieIssueDetails cookieIssueDetails
       optional MixedContentIssueDetails mixedContentIssueDetails
       optional BlockedByResponseIssueDetails blockedByResponseIssueDetails
       optional HeavyAdIssueDetails heavyAdIssueDetails
       optional ContentSecurityPolicyIssueDetails contentSecurityPolicyIssueDetails
       optional SharedArrayBufferIssueDetails sharedArrayBufferIssueDetails
-      optional TrustedWebActivityIssueDetails twaQualityEnforcementDetails
       optional LowTextContrastIssueDetails lowTextContrastIssueDetails
       optional CorsIssueDetails corsIssueDetails
       optional AttributionReportingIssueDetails attributionReportingIssueDetails
       optional QuirksModeIssueDetails quirksModeIssueDetails
-      optional NavigatorUserAgentIssueDetails navigatorUserAgentIssueDetails
-      optional WasmCrossOriginModuleSharingIssueDetails wasmCrossOriginModuleSharingIssue
+      deprecated optional NavigatorUserAgentIssueDetails navigatorUserAgentIssueDetails
       optional GenericIssueDetails genericIssueDetails
       optional DeprecationIssueDetails deprecationIssueDetails
       optional ClientHintIssueDetails clientHintIssueDetails
+      optional FederatedAuthRequestIssueDetails federatedAuthRequestIssueDetails
+      optional BounceTrackingIssueDetails bounceTrackingIssueDetails
+      optional StylesheetLoadingIssueDetails stylesheetLoadingIssueDetails
+      optional FederatedAuthUserInfoRequestIssueDetails federatedAuthUserInfoRequestIssueDetails
 
   # A unique id for a DevTools inspector issue. Allows other entities (e.g.
   # exceptions, CDP message, console messages, etc.) to reference an issue.
@@ -881,10 +970,61 @@ experimental domain Audits
       # Whether to report WCAG AAA level issues. Default is false.
       optional boolean reportAAA
 
+  # Runs the form issues check for the target page. Found issues are reported
+  # using Audits.issueAdded event.
+  command checkFormsIssues
+    returns
+      array of GenericIssueDetails formIssues
+
   event issueAdded
     parameters
       InspectorIssue issue
 
+# Defines commands and events for Autofill.
+experimental domain Autofill
+  type CreditCard extends object
+    properties
+      # 16-digit credit card number.
+      string number
+      # Name of the credit card owner.
+      string name
+      # 2-digit expiry month.
+      string expiryMonth
+      # 4-digit expiry year.
+      string expiryYear
+      # 3-digit card verification code.
+      string cvc
+
+  type AddressField extends object
+    properties
+      # address field name, for example GIVEN_NAME.
+      string name
+      # address field name, for example Jon Doe.
+      string value
+
+  type Address extends object
+    properties
+      # fields and values defining a test address.
+      array of AddressField fields
+
+  # Trigger autofill on a form identified by the fieldId.
+  # If the field and related form cannot be autofilled, returns an error.
+  command trigger
+    parameters
+      # Identifies a field that serves as an anchor for autofill.
+      DOM.BackendNodeId fieldId
+      # Identifies the frame that field belongs to.
+      optional Page.FrameId frameId
+      # Credit card information to fill out the form. Credit card data is not saved.
+      CreditCard card
+
+  # Set addresses so that developers can verify their forms implementation.
+  command setAddresses
+    # Test addresses for the available countries.
+    parameters
+      array of Address addresses
+
+
 # Defines events for background web platform features.
 experimental domain BackgroundService
   # The Background Service that will be associated with the commands/events.
@@ -948,6 +1088,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.
@@ -994,6 +1136,8 @@ domain Browser
       durableStorage
       flash
       geolocation
+      idleDetection
+      localFonts
       midi
       midiSysex
       nfc
@@ -1002,11 +1146,13 @@ domain Browser
       periodicBackgroundSync
       protectedMediaIdentifier
       sensors
+      storageAccess
+      topLevelStorageAccess
       videoCapture
       videoCapturePanTiltZoom
-      idleDetection
       wakeLockScreen
       wakeLockSystem
+      windowManagement
 
   experimental type PermissionSetting extends string
     enum
@@ -1177,7 +1323,7 @@ domain Browser
       # substring in their name are extracted. An empty or absent query returns
       # all histograms.
       optional string query
-      # If true, retrieve delta since last call.
+      # If true, retrieve delta since last delta call.
       optional boolean delta
 
     returns
@@ -1189,7 +1335,7 @@ domain Browser
     parameters
       # Requested histogram name.
       string name
-      # If true, retrieve delta since last call.
+      # If true, retrieve delta since last delta call.
       optional boolean delta
     returns
       # Histogram.
@@ -1238,6 +1384,12 @@ domain Browser
     parameters
       BrowserCommandId commandId
 
+  # Allows a site to use privacy sandbox features that require enrollment
+  # without the site actually being enrolled. Only supported on page targets.
+  command addPrivacySandboxEnrollmentOverride
+    parameters
+      string url
+
 # This domain exposes CSS read/write operations. All CSS objects (stylesheets, rules, and styles)
 # have an associated `id` used in subsequent operations on the related object. Each object type has
 # a specific `id` structure, and those are not interchangeable between objects of different kinds.
@@ -1265,6 +1417,8 @@ experimental domain CSS
     properties
       # Pseudo element type.
       DOM.PseudoType pseudoType
+      # Pseudo element custom ident.
+      optional string pseudoIdentifier
       # Matches of CSS rules applicable to the pseudo style.
       array of RuleMatch matches
 
@@ -1276,6 +1430,12 @@ experimental domain CSS
       # Matches of CSS rules matching the ancestor node in the style inheritance chain.
       array of RuleMatch matchedCSSRules
 
+  # Inherited pseudo element matches from pseudos of an ancestor node.
+  type InheritedPseudoElementMatches extends object
+    properties
+      # Matches of pseudo styles from the pseudos of an ancestor node.
+      array of PseudoElementMatches pseudoElements
+
   # Match data for a CSS rule.
   type RuleMatch extends object
     properties
@@ -1291,6 +1451,20 @@ experimental domain CSS
       string text
       # Value range in the underlying resource (if available).
       optional SourceRange range
+      # Specificity of the selector.
+      experimental optional Specificity specificity
+
+  # Specificity:
+  # https://drafts.csswg.org/selectors/#specificity-rules
+  experimental type Specificity extends object
+    properties
+      # The a component, which represents the number of ID selectors.
+      integer a
+      # The b component, which represents the number of class selectors, attributes selectors, and
+      # pseudo-classes.
+      integer b
+      # The c component, which represents the number of type selectors and pseudo-elements.
+      integer c
 
   # Selector list data.
   type SelectorList extends object
@@ -1344,6 +1518,8 @@ experimental domain CSS
       number endLine
       # Column offset of the end of the stylesheet within the resource (zero based).
       number endColumn
+      # If the style sheet was loaded from a network resource, this indicates when the resource failed to load
+      experimental optional boolean loadingFailed
 
   # CSS rule representation.
   type CSSRule extends object
@@ -1353,6 +1529,8 @@ experimental domain CSS
       optional StyleSheetId styleSheetId
       # Rule selector data.
       SelectorList selectorList
+      # Array of selectors from ancestor style rules, sorted by distance from the current rule.
+      experimental optional array of string nestingSelectors
       # Parent stylesheet's origin.
       StyleSheetOrigin origin
       # Associated style declaration.
@@ -1363,6 +1541,28 @@ experimental domain CSS
       # Container query list array (for rules involving container queries).
       # The array enumerates container queries starting with the innermost one, going outwards.
       experimental optional array of CSSContainerQuery containerQueries
+      # @supports CSS at-rule array.
+      # The array enumerates @supports at-rules starting with the innermost one, going outwards.
+      experimental optional array of CSSSupports supports
+      # Cascade layer array. Contains the layer hierarchy that this rule belongs to starting
+      # with the innermost layer and going outwards.
+      experimental optional array of CSSLayer layers
+      # @scope CSS at-rule array.
+      # The array enumerates @scope at-rules starting with the innermost one, going outwards.
+      experimental optional array of CSSScope scopes
+      # The array keeps the types of ancestor CSSRules from the innermost going outwards.
+      experimental optional array of CSSRuleType ruleTypes
+
+  # Enum indicating the type of a CSS rule, used to represent the order of a style rule's ancestors.
+  # This list only contains rule types that are collected during the ancestor rule collection.
+  experimental type CSSRuleType extends string
+    enum
+      MediaRule
+      SupportsRule
+      ContainerRule
+      LayerRule
+      ScopeRule
+      StyleRule
 
   # CSS coverage information.
   type RuleUsage extends object
@@ -1439,6 +1639,9 @@ experimental domain CSS
       optional boolean disabled
       # The entire property range in the enclosing style declaration (if available).
       optional SourceRange range
+      # Parsed longhand components of this property if it is a shorthand.
+      # This field will be empty if the given property is not a shorthand.
+      experimental optional array of CSSProperty longhandProperties
 
   # CSS media rule descriptor.
   type CSSMedia extends object
@@ -1498,6 +1701,56 @@ 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
+    properties
+      # Supports rule text.
+      string text
+      # Whether the supports condition is satisfied.
+      boolean active
+      # The associated rule header range in the enclosing stylesheet (if
+      # available).
+      optional SourceRange range
+      # Identifier of the stylesheet containing this object (if exists).
+      optional StyleSheetId styleSheetId
+
+  # CSS Scope at-rule descriptor.
+  experimental type CSSScope extends object
+    properties
+      # Scope rule text.
+      string text
+      # The associated rule header range in the enclosing stylesheet (if
+      # available).
+      optional SourceRange range
+      # Identifier of the stylesheet containing this object (if exists).
+      optional StyleSheetId styleSheetId
+
+  # CSS Layer at-rule descriptor.
+  experimental type CSSLayer extends object
+    properties
+      # Layer name.
+      string text
+      # The associated rule header range in the enclosing stylesheet (if
+      # available).
+      optional SourceRange range
+      # Identifier of the stylesheet containing this object (if exists).
+      optional StyleSheetId styleSheetId
+
+  # CSS Layer data.
+  experimental type CSSLayerData extends object
+    properties
+      # Layer name.
+      string name
+      # Direct sub-layers
+      optional array of CSSLayerData subLayers
+      # Layer order. The order determines the order of the layer in the cascade order.
+      # A higher number has higher priority in the cascade order.
+      number order
 
   # Information about amount of glyphs that were rendered with given font.
   type PlatformFontUsage extends object
@@ -1537,6 +1790,8 @@ experimental domain CSS
       string fontWeight
       # The font-stretch.
       string fontStretch
+      # The font-display.
+      string fontDisplay
       # The unicode-range.
       string unicodeRange
       # The src.
@@ -1546,6 +1801,24 @@ experimental domain CSS
       # Available variation settings (a.k.a. "axes").
       optional array of FontVariationAxis fontVariationAxes
 
+  # CSS try rule representation.
+  type CSSTryRule extends object
+    properties
+      # 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 position-fallback rule representation.
+  type CSSPositionFallbackRule extends object
+    properties
+      Value name
+      # List of keyframes.
+      array of CSSTryRule tryRules
+
   # CSS keyframes rule representation.
   type CSSKeyframesRule extends object
     properties
@@ -1675,8 +1948,14 @@ experimental domain CSS
       optional array of PseudoElementMatches pseudoElements
       # A chain of inherited styles (from the immediate node parent up to the DOM tree root).
       optional array of InheritedStyleEntry inherited
+      # A chain of inherited pseudo element styles (from the immediate node parent up to the DOM tree root).
+      optional array of InheritedPseudoElementMatches inheritedPseudoElements
       # 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
+      # Id of the first parent element that does not have display: contents.
+      experimental optional DOM.NodeId parentLayoutNodeId
 
   # Returns all media queries parsed by the rendering engine.
   command getMediaQueries
@@ -1700,6 +1979,16 @@ experimental domain CSS
       # The stylesheet text.
       string text
 
+  # Returns all layers parsed by the rendering engine for the tree scope of a node.
+  # Given a DOM element identified by nodeId, getLayersForNode returns the root
+  # layer for the nearest ancestor document or shadow root. The layer root contains
+  # the full layer tree for the tree scope and their ordering.
+  experimental command getLayersForNode
+    parameters
+      DOM.NodeId nodeId
+    returns
+      CSSLayerData rootLayer
+
   # 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.
@@ -1713,7 +2002,7 @@ experimental domain CSS
   # Polls the next batch of computed style updates.
   experimental command takeComputedStyleUpdates
     returns
-      # The list of node Ids that have their tracked computed styles updated
+      # The list of node Ids that have their tracked computed styles updated.
       array of DOM.NodeId nodeIds
 
   # Find a rule with the given active property for the given node and set the new value for this
@@ -1755,6 +2044,26 @@ experimental domain CSS
       # The resulting CSS container query rule after modification.
       CSSContainerQuery containerQuery
 
+  # Modifies the expression of a supports at-rule.
+  experimental command setSupportsText
+    parameters
+      StyleSheetId styleSheetId
+      SourceRange range
+      string text
+    returns
+      # The resulting CSS Supports rule after modification.
+      CSSSupports supports
+
+  # Modifies the expression of a scope at-rule.
+  experimental command setScopeText
+    parameters
+      StyleSheetId styleSheetId
+      SourceRange range
+      string text
+    returns
+      # The resulting CSS Scope rule after modification.
+      CSSScope scope
+
   # Modifies the rule selector.
   command setRuleSelector
     parameters
@@ -1786,13 +2095,13 @@ experimental domain CSS
   command startRuleUsageTracking
 
   # Stop tracking rule usage and return the list of rules that were used since last call to
-  # `takeCoverageDelta` (or since start of coverage instrumentation)
+  # `takeCoverageDelta` (or since start of coverage instrumentation).
   command stopRuleUsageTracking
     returns
       array of RuleUsage ruleUsage
 
   # Obtain list of rules that became used since last call to this method (or since start of coverage
-  # instrumentation)
+  # instrumentation).
   command takeCoverageDelta
     returns
       array of RuleUsage coverage
@@ -1806,7 +2115,7 @@ experimental domain CSS
       boolean enabled
 
   # Fires whenever a web font is updated.  A non-empty font parameter indicates a successfully loaded
-  # web font
+  # web font.
   event fontsUpdated
     parameters
       # The web font that has loaded.
@@ -1834,6 +2143,7 @@ experimental domain CSS
       StyleSheetId styleSheetId
 
 experimental domain CacheStorage
+  depends on Storage
 
   # Unique identifier of the Cache object.
   type CacheId extends string
@@ -1875,6 +2185,10 @@ experimental domain CacheStorage
       CacheId cacheId
       # Security origin of the cache.
       string securityOrigin
+      # Storage key of the cache.
+      string storageKey
+      # Storage bucket of the cache.
+      optional Storage.StorageBucket storageBucket
       # The name of the cache.
       string cacheName
 
@@ -1906,8 +2220,13 @@ experimental domain CacheStorage
   # Requests cache names.
   command requestCacheNames
     parameters
+      # At least and at most one of securityOrigin, storageKey, storageBucket must be specified.
       # Security origin.
-      string securityOrigin
+      optional string securityOrigin
+      # Storage key.
+      optional string storageKey
+      # Storage bucket. If not specified, it uses the default bucket.
+      optional Storage.StorageBucket storageBucket
     returns
       # Caches for the security origin.
       array of Cache caches
@@ -2050,10 +2369,11 @@ domain DOM
       scrollbar-corner
       resizer
       input-list-button
-      transition
-      transition-container
-      transition-old-content
-      transition-new-content
+      view-transition
+      view-transition-group
+      view-transition-image-pair
+      view-transition-old
+      view-transition-new
 
   # Shadow root type.
   type ShadowRootType extends string
@@ -2069,6 +2389,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
@@ -2113,6 +2447,9 @@ domain DOM
       optional string value
       # Pseudo element type for this node.
       optional PseudoType pseudoType
+      # Pseudo element identifier for this node. Only present if there is a
+      # valid pseudoType.
+      optional string pseudoIdentifier
       # Shadow root type.
       optional ShadowRootType shadowRootType
       # Frame ID for frame owner elements.
@@ -2134,6 +2471,7 @@ domain DOM
       # Whether the node is SVG.
       optional boolean isSVG
       optional CompatibilityMode compatibilityMode
+      optional BackendNode assignedSlot
 
   # A structure holding an RGBA color.
   type RGBA extends object
@@ -2268,6 +2606,13 @@ domain DOM
 
   # Enables DOM agent for the given page.
   command enable
+    parameters
+      # Whether to include whitespaces in the children array of returned Nodes.
+      experimental optional enum includeWhitespace
+        # Strip whitespaces from child arrays (default).
+        none
+        # Return all children including block-level whitespace nodes.
+        all
 
   # Focuses the given element.
   command focus
@@ -2316,6 +2661,7 @@ domain DOM
       array of Quad quads
 
   # Returns the root DOM node (and optionally the subtree) to the caller.
+  # Implicitly enables the DOM domain events for the current target.
   command getDocument
     parameters
       # The maximum depth at which children should be retrieved, defaults to 1. Use -1 for the
@@ -2500,6 +2846,14 @@ domain DOM
       # Query selector result.
       array of NodeId nodeIds
 
+  # Returns NodeIds of current top layer elements.
+  # Top layer is rendered closest to the user within a viewport, therefore its elements always
+  # appear on top of all other content.
+  experimental command getTopLayerElements
+    returns
+      # NodeIds of top layer elements
+      array of NodeId nodeIds
+
   # Re-does the last undone action.
   experimental command redo
 
@@ -2662,13 +3016,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
@@ -2722,7 +3079,7 @@ domain DOM
     parameters
       # Id of the node that has changed.
       NodeId parentNodeId
-      # If of the previous siblint.
+      # Id of the previous sibling.
       NodeId previousNodeId
       # Inserted node data.
       Node node
@@ -2760,6 +3117,9 @@ domain DOM
       # The added pseudo element.
       Node pseudoElement
 
+  # Called when top layer elements are changed.
+  experimental event topLayerElementsUpdated
+
   # Called when a pseudo element is removed from an element.
   experimental event pseudoElementRemoved
     parameters
@@ -3137,6 +3497,9 @@ experimental domain DOMSnapshot
       optional RareIntegerData contentDocumentIndex
       # Type of a pseudo element node.
       optional RareStringData pseudoType
+      # Pseudo element identifier for this node. Only present if there is a
+      # valid pseudoType.
+      optional RareStringData pseudoIdentifier
       # Whether this DOM node responds to mouse clicks. This includes nodes that have had click
       # event listeners attached via JavaScript as well as anchor tags that naturally navigate when
       # clicked.
@@ -3246,11 +3609,15 @@ experimental domain DOMSnapshot
 # Query and modify DOM storage.
 experimental domain DOMStorage
 
+  type SerializedStorageKey extends string
+
   # DOM Storage identifier.
   type StorageId extends object
     properties
       # Security origin for the storage.
-      string securityOrigin
+      optional string securityOrigin
+      # Represents a key by which DOM Storage keys its CachedStorageAreas
+      optional SerializedStorageKey storageKey
       # Whether the storage is local storage (not session storage).
       boolean isLocalStorage
 
@@ -3428,7 +3795,9 @@ domain Emulation
   # Missing optional values will be filled in by the target with what it would normally use.
   experimental type UserAgentMetadata extends object
     properties
+      # Brands appearing in Sec-CH-UA.
       optional array of UserAgentBrandVersion brands
+      # Brands appearing in Sec-CH-UA-Full-Version-List.
       optional array of UserAgentBrandVersion fullVersionList
       deprecated optional string fullVersion
       string platform
@@ -3436,6 +3805,8 @@ domain Emulation
       string architecture
       string model
       boolean mobile
+      optional string bitness
+      optional boolean wow64
 
   # Tells whether emulation is supported.
   command canEmulate
@@ -3544,11 +3915,13 @@ domain Emulation
   # Emulates the given vision deficiency.
   experimental command setEmulatedVisionDeficiency
     parameters
-      # Vision deficiency to emulate.
+      # Vision deficiency to emulate. Order: best-effort emulations come first, followed by any
+      # physiologically accurate emulations for medically recognized color vision deficiencies.
       enum type
         none
-        achromatopsia
         blurredVision
+        reducedContrast
+        achromatopsia
         deuteranopia
         protanopia
         tritanopia
@@ -3612,9 +3985,6 @@ domain Emulation
       # If set this specifies the maximum number of tasks that can be run before virtual is forced
       # forwards to prevent deadlock.
       optional integer maxVirtualTimeTaskStarvationCount
-      # If set the virtual time policy change should be deferred until any frame starts navigating.
-      # Note any previous deferred policy change is superseded.
-      optional boolean waitForNavigation
       # If set, base::Time::Now will be overridden to initially return this value.
       optional Network.TimeSinceEpoch initialVirtualTime
     returns
@@ -3652,7 +4022,6 @@ domain Emulation
   experimental type DisabledImageType extends string
     enum
       avif
-      jxl
       webp
 
   experimental command setDisabledImageTypes
@@ -3660,6 +4029,11 @@ domain Emulation
       # Image types to disable.
       array of DisabledImageType imageTypes
 
+  experimental command setHardwareConcurrencyOverride
+    parameters
+      # Hardware concurrency to report
+      integer hardwareConcurrency
+
   # Allows overriding user agent with the given string.
   command setUserAgentOverride
     parameters
@@ -3672,6 +4046,12 @@ domain Emulation
       # To be sent in Sec-CH-UA-* headers and returned in navigator.userAgentData
       experimental optional UserAgentMetadata userAgentMetadata
 
+  # Allows overriding the automation flag.
+  experimental command setAutomationOverride
+    parameters
+      # Whether the override should be enabled.
+      boolean enabled
+
 # This domain provides experimental commands only supported in headless mode.
 experimental domain HeadlessExperimental
   depends on Page
@@ -3684,13 +4064,16 @@ experimental domain HeadlessExperimental
       optional enum format
         jpeg
         png
-      # Compression quality from range [0..100] (jpeg only).
+        webp
+      # Compression quality from range [0..100] (jpeg and webp 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
   # BeginFrameControl. Designed for use with --run-all-compositor-stages-before-draw, see also
-  # https://goo.gl/3zHXhB for more background.
+  # https://goo.gle/chrome-headless-rendering for more background.
   command beginFrame
     parameters
       # Timestamp of this BeginFrame in Renderer TimeTicks (milliseconds of uptime). If not set,
@@ -3715,18 +4098,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
@@ -3770,6 +4145,7 @@ domain IO
 
 experimental domain IndexedDB
   depends on Runtime
+  depends on Storage
 
   # Database with an array of object stores.
   type DatabaseWithObjectStores extends object
@@ -3862,8 +4238,13 @@ experimental domain IndexedDB
   # Clears all entries from an object store.
   command clearObjectStore
     parameters
+      # At least and at most one of securityOrigin, storageKey, or storageBucket must be specified.
       # Security origin.
-      string securityOrigin
+      optional string securityOrigin
+      # Storage key.
+      optional string storageKey
+      # Storage bucket. If not specified, it uses the default bucket.
+      optional Storage.StorageBucket storageBucket
       # Database name.
       string databaseName
       # Object store name.
@@ -3872,15 +4253,26 @@ experimental domain IndexedDB
   # Deletes a database.
   command deleteDatabase
     parameters
+      # At least and at most one of securityOrigin, storageKey, or storageBucket must be specified.
       # Security origin.
-      string securityOrigin
+      optional string securityOrigin
+      # Storage key.
+      optional string storageKey
+      # Storage bucket. If not specified, it uses the default bucket.
+      optional Storage.StorageBucket storageBucket
       # Database name.
       string databaseName
 
   # Delete a range of entries from an object store
   command deleteObjectStoreEntries
     parameters
-      string securityOrigin
+      # At least and at most one of securityOrigin, storageKey, or storageBucket must be specified.
+      # Security origin.
+      optional string securityOrigin
+      # Storage key.
+      optional string storageKey
+      # Storage bucket. If not specified, it uses the default bucket.
+      optional Storage.StorageBucket storageBucket
       string databaseName
       string objectStoreName
       # Range of entry keys to delete
@@ -3895,8 +4287,13 @@ experimental domain IndexedDB
   # Requests data from object store or index.
   command requestData
     parameters
+      # At least and at most one of securityOrigin, storageKey, or storageBucket must be specified.
       # Security origin.
-      string securityOrigin
+      optional string securityOrigin
+      # Storage key.
+      optional string storageKey
+      # Storage bucket. If not specified, it uses the default bucket.
+      optional Storage.StorageBucket storageBucket
       # Database name.
       string databaseName
       # Object store name.
@@ -3915,11 +4312,16 @@ experimental domain IndexedDB
       # If true, there are more entries to fetch in the given range.
       boolean hasMore
 
-  # Gets metadata of an object store
+  # Gets metadata of an object store.
   command getMetadata
     parameters
+      # At least and at most one of securityOrigin, storageKey, or storageBucket must be specified.
       # Security origin.
-      string securityOrigin
+      optional string securityOrigin
+      # Storage key.
+      optional string storageKey
+      # Storage bucket. If not specified, it uses the default bucket.
+      optional Storage.StorageBucket storageBucket
       # Database name.
       string databaseName
       # Object store name.
@@ -3935,8 +4337,13 @@ experimental domain IndexedDB
   # Requests database with given name in given frame.
   command requestDatabase
     parameters
+      # At least and at most one of securityOrigin, storageKey, or storageBucket must be specified.
       # Security origin.
-      string securityOrigin
+      optional string securityOrigin
+      # Storage key.
+      optional string storageKey
+      # Storage bucket. If not specified, it uses the default bucket.
+      optional Storage.StorageBucket storageBucket
       # Database name.
       string databaseName
     returns
@@ -3946,8 +4353,13 @@ experimental domain IndexedDB
   # Requests database names for given security origin.
   command requestDatabaseNames
     parameters
+      # At least and at most one of securityOrigin, storageKey, or storageBucket must be specified.
       # Security origin.
-      string securityOrigin
+      optional string securityOrigin
+      # Storage key.
+      optional string storageKey
+      # Storage bucket. If not specified, it uses the default bucket.
+      optional Storage.StorageBucket storageBucket
     returns
       # Database names for origin.
       array of string databaseNames
@@ -4083,7 +4495,7 @@ domain Input
       optional integer location
       # Editing commands to send with the key event (e.g., 'selectAll') (default: []).
       # These are related to but not equal the command names used in `document.execCommand` and NSStandardKeyBindingResponding.
-      # See https://source.chromium.org/chromium/chromium/src/+/master:third_party/blink/renderer/core/editing/commands/editor_command_names.h for valid command names.
+      # See https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/editing/commands/editor_command_names.h for valid command names.
       experimental optional array of string commands
 
   # This method emulates inserting text that doesn't come from a key press,
@@ -4389,7 +4801,7 @@ experimental domain LayerTree
       LayerId layerId
     returns
       # A list of strings specifying reasons for the given layer to become composited.
-      deprecated array of string compositingReasons
+      array of string compositingReasons
       # A list of strings specifying reason IDs for the given layer to become composited.
       array of string compositingReasonIds
 
@@ -4669,6 +5081,7 @@ domain Network
       TextTrack
       XHR
       Fetch
+      Prefetch
       EventSource
       WebSocket
       Manifest
@@ -4790,6 +5203,8 @@ domain Network
       experimental number pushStart
       # Time the server finished pushing request.
       experimental number pushEnd
+      # Started receiving response headers.
+      experimental number receiveHeadersStart
       # Finished receiving response headers.
       number receiveHeadersEnd
 
@@ -4897,6 +5312,12 @@ domain Network
       array of SignedCertificateTimestamp signedCertificateTimestampList
       # Whether the request complied with Certificate Transparency policy
       CertificateTransparencyCompliance certificateTransparencyCompliance
+      # The signature algorithm used by the server in the TLS server signature,
+      # represented as a TLS SignatureScheme code point. Omitted if not
+      # applicable or not known.
+      optional integer serverSignatureAlgorithm
+      # Whether the connection used Encrypted ClientHello
+      boolean encryptedClientHello
 
   # Whether the request complied with Certificate Transparency policy.
   type CertificateTransparencyCompliance extends string
@@ -4963,6 +5384,21 @@ domain Network
       # address space.
       UnexpectedPrivateNetworkAccess
       NoCorsRedirectModeNotFollow
+      # Request was a private network request and needed user permission yet did
+      # not carry `Private-Network-Access-Id` in the preflight response.
+      # https://github.com/WICG/private-network-access/blob/main/permission_prompt/explainer.md
+      PreflightMissingPrivateNetworkAccessId
+      # Request was a private network request and needed user permission yet did
+      # not carry `Private-Network-Access-Name` in the preflight response.
+      # https://github.com/WICG/private-network-access/blob/main/permission_prompt/explainer.md
+      PreflightMissingPrivateNetworkAccessName
+      # Request was a private network request and needed user permission yet not
+      # able to request for permission.
+      # https://github.com/WICG/private-network-access/blob/main/permission_prompt/explainer.md
+      PrivateNetworkAccessPermissionUnavailable
+      # Request was a private network request and is denied by user permission.
+      # https://github.com/WICG/private-network-access/blob/main/permission_prompt/explainer.md
+      PrivateNetworkAccessPermissionDenied
 
   type CorsErrorStatus extends object
     properties
@@ -4982,9 +5418,9 @@ domain Network
   # are specified in third_party/blink/renderer/core/fetch/trust_token.idl.
   experimental type TrustTokenParams extends object
     properties
-      TrustTokenOperationType type
+      TrustTokenOperationType operation
 
-      # Only set for "token-redemption" type and determine whether
+      # Only set for "token-redemption" operation and determine whether
       # to request a fresh SRR or use a still valid cached SRR.
       enum refreshPolicy
         UseCached
@@ -5003,6 +5439,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
@@ -5048,6 +5508,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.
@@ -5180,6 +5642,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.
@@ -5244,6 +5709,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
@@ -5554,7 +6022,8 @@ domain Network
 
   # Returns all browser cookies. Depending on the backend support, will return detailed cookie
   # information in the `cookies` field.
-  command getAllCookies
+  # Deprecated. Use Storage.getCookies instead.
+  deprecated command getAllCookies
     returns
       # Array of cookie objects.
       array of Cookie cookies
@@ -6051,6 +6520,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
@@ -6075,6 +6546,11 @@ domain Network
       # Raw response header text as it was received over the wire. The raw text may not always be
       # available, such as in the case of HTTP/2 or QUIC.
       optional string headersText
+      # 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.
+      optional boolean cookiePartitionKeyOpaque
 
   # Fired exactly once for each Trust Token operation. Depending on
   # the type of the operation and whether the operation succeeded or
@@ -6089,10 +6565,12 @@ domain Network
       enum status
         Ok
         InvalidArgument
+        MissingIssuerKeys
         FailedPrecondition
         ResourceExhausted
         AlreadyExists
         Unavailable
+        Unauthorized
         BadResponse
         InternalError
         UnknownError
@@ -6154,8 +6632,10 @@ domain Network
     enum
       SameOrigin
       SameOriginAllowPopups
+      RestrictProperties
       UnsafeNone
       SameOriginPlusCoep
+      RestrictPropertiesPlusCoep
 
   experimental type CrossOriginOpenerPolicyStatus extends object
     properties
@@ -6177,10 +6657,22 @@ domain Network
       optional string reportingEndpoint
       optional string reportOnlyReportingEndpoint
 
+  experimental type ContentSecurityPolicySource extends string
+    enum
+      HTTP
+      Meta
+
+  experimental type ContentSecurityPolicyStatus extends object
+    properties
+      string effectiveDirectives
+      boolean isEnforced
+      ContentSecurityPolicySource source
+
   experimental type SecurityIsolationStatus extends object
     properties
       optional CrossOriginOpenerPolicyStatus coop
       optional CrossOriginEmbedderPolicyStatus coep
+      optional array of ContentSecurityPolicyStatus csp
 
   # Returns information about the COEP/COOP isolation status.
   experimental command getSecurityIsolationStatus
@@ -6447,6 +6939,7 @@ experimental domain Overlay
     enum
       rgb
       hsl
+      hwb
       hex
 
   # Configurations for Persistent Grid Highlight
@@ -6795,6 +7288,16 @@ domain Page
       AdFrameType adFrameType
       optional array of AdFrameExplanation explanations
 
+  # Identifies the bottom-most script which caused the frame to be labelled
+  # as an ad.
+  experimental type AdScriptId extends object
+    properties
+      # Script Id of the bottom-most script which caused the frame to be labelled
+      # as an ad.
+      Runtime.ScriptId scriptId
+      # Id of adScriptId's debugger.
+      Runtime.UniqueDebuggerId debuggerId
+
   # Indicates whether the frame is a secure context and why it is the case.
   experimental type SecureContextType extends string
     enum
@@ -6832,28 +7335,34 @@ domain Page
       ambient-light-sensor
       attribution-reporting
       autoplay
+      bluetooth
+      browsing-topics
       camera
       ch-dpr
       ch-device-memory
       ch-downlink
       ch-ect
       ch-prefers-color-scheme
+      ch-prefers-reduced-motion
       ch-rtt
+      ch-save-data
       ch-ua
       ch-ua-arch
       ch-ua-bitness
       ch-ua-platform
       ch-ua-model
       ch-ua-mobile
+      ch-ua-form-factor
       ch-ua-full-version
       ch-ua-full-version-list
       ch-ua-platform-version
-      ch-ua-reduced
+      ch-ua-wow64
       ch-viewport-height
       ch-viewport-width
       ch-width
       clipboard-read
       clipboard-write
+      compute-pressure
       cross-origin-isolated
       direct-sockets
       display-capture
@@ -6868,27 +7377,37 @@ domain Page
       geolocation
       gyroscope
       hid
+      identity-credentials-get
       idle-detection
       interest-cohort
       join-ad-interest-group
       keyboard-map
+      local-fonts
       magnetometer
       microphone
       midi
       otp-credentials
       payment
       picture-in-picture
+      private-aggregation
+      private-state-token-issuance
+      private-state-token-redemption
       publickey-credentials-get
       run-ad-auction
       screen-wake-lock
       serial
       shared-autofill
-      storage-access-api
+      shared-storage
+      shared-storage-select-url
+      smart-card
+      storage-access
       sync-xhr
-      trust-token-redemption
+      unload
       usb
       vertical-scroll
       web-share
+      # Alias for 'window-placement' (crbug.com/1328581).
+      window-management
       window-placement
       xr-spatial-tracking
 
@@ -6899,6 +7418,10 @@ domain Page
       Header
       # Declaration in iframe attribute.
       IframeAttribute
+      # Inside fenced frame.
+      InFencedFrameTree
+      # Inside an Isolated Application.
+      InIsolatedApp
 
   experimental type PermissionsPolicyBlockLocator extends object
     properties
@@ -7174,8 +7697,16 @@ domain Page
       optional string cursive
       # The fantasy font-family.
       optional string fantasy
-      # The pictograph font-family.
-      optional string pictograph
+      # The math font-family.
+      optional string math
+
+  # Font families collection for a script.
+  experimental type ScriptFontFamilies extends object
+    properties
+      # Name of the script which these font families are defined for.
+      string script
+      # Generic font families collection for the script.
+      FontFamilies fontFamilies
 
   # Default font sizes.
   experimental type FontSizes extends object
@@ -7258,6 +7789,9 @@ domain Page
       # Specifies whether command line API should be available to the script, defaults
       # to false.
       experimental optional boolean includeCommandLineAPI
+      # If true, runs the script immediately on existing execution contexts or worlds.
+      # Default: false.
+      experimental optional boolean runImmediately
     returns
       # Identifier of the added script.
       ScriptIdentifier identifier
@@ -7281,6 +7815,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
@@ -7355,7 +7891,8 @@ domain Page
     returns
       array of InstallabilityError installabilityErrors
 
-  experimental command getManifestIcons
+  # Deprecated because it's not guaranteed that the returned icon is in fact the one used for PWA installation.
+  experimental deprecated command getManifestIcons
     returns
       optional binary primaryIcon
 
@@ -7368,8 +7905,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
@@ -7386,11 +7932,11 @@ domain Page
   # Returns metrics relating to the layouting of the page, such as viewport bounds/scale.
   command getLayoutMetrics
     returns
-      # Deprecated metrics relating to the layout viewport. Can be in DP or in CSS pixels depending on the `enable-use-zoom-for-dsf` flag. Use `cssLayoutViewport` instead.
+      # Deprecated metrics relating to the layout viewport. Is in device pixels. Use `cssLayoutViewport` instead.
       deprecated LayoutViewport layoutViewport
-      # Deprecated metrics relating to the visual viewport. Can be in DP or in CSS pixels depending on the `enable-use-zoom-for-dsf` flag. Use `cssVisualViewport` instead.
+      # Deprecated metrics relating to the visual viewport. Is in device pixels. Use `cssVisualViewport` instead.
       deprecated VisualViewport visualViewport
-      # Deprecated size of scrollable area. Can be in DP or in CSS pixels depending on the `enable-use-zoom-for-dsf` flag. Use `cssContentSize` instead.
+      # Deprecated size of scrollable area. Is in DP. Use `cssContentSize` instead.
       deprecated DOM.Rect contentSize
       # Metrics relating to the layout viewport in CSS pixels.
       LayoutViewport cssLayoutViewport
@@ -7454,7 +8000,8 @@ domain Page
     returns
       # Frame id that has navigated (or failed to navigate)
       FrameId frameId
-      # Loader identifier.
+      # Loader identifier. This is omitted in case of same-document navigation,
+      # as the previously committed loaderId would not change.
       optional Network.LoaderId loaderId
       # User friendly error message, present if and only if navigation has failed.
       optional string errorText
@@ -7488,12 +8035,15 @@ domain Page
       optional number marginLeft
       # Right margin in inches. Defaults to 1cm (~0.4 inches).
       optional number marginRight
-      # Paper ranges to print, e.g., '1-5, 8, 11-13'. Defaults to the empty string, which means
-      # print all pages.
+      # Paper ranges to print, one based, e.g., '1-5, 8, 11-13'. Pages are
+      # printed in the document order, not in the order specified, and no
+      # more than once.
+      # Defaults to empty string, which implies the entire document is printed.
+      # The page numbers are quietly capped to actual page count of the
+      # document, and ranges beyond the end of the document are ignored.
+      # If this results in no pages to print, an error is reported.
+      # It is an error to specify a range with start greater than end.
       optional string pageRanges
-      # Whether to silently ignore invalid but successfully parsed page ranges, such as '3-2'.
-      # Defaults to false.
-      optional boolean ignoreInvalidPageRanges
       # HTML template for the print header. Should be valid HTML markup with following
       # classes used to inject printing values into them:
       # - `date`: formatted print date
@@ -7637,6 +8187,8 @@ domain Page
     parameters
       # Specifies font families to set. If a font family is not specified, it won't be changed.
       FontFamilies fontFamilies
+      # Specifies font families to set for individual scripts.
+      optional array of ScriptFontFamilies forScripts
 
   # Set default font sizes.
   experimental command setFontSizes
@@ -7754,14 +8306,25 @@ domain Page
   # Clears seeded compilation cache.
   experimental command clearCompilationCache
 
-  # Sets the Secure Payment Confirmation transaction mode.
+  # Enum of possible auto-reponse for permisison / prompt dialogs.
+  experimental type AutoResponseMode extends string
+    enum
+      none
+      autoAccept
+      autoReject
+      autoOptOut
+
+# Sets the Secure Payment Confirmation transaction mode.
   # https://w3c.github.io/secure-payment-confirmation/#sctn-automation-set-spc-transaction-mode
   experimental command setSPCTransactionMode
     parameters
-      enum mode
-        none
-        autoaccept
-        autoreject
+      AutoResponseMode mode
+
+  # Extensions for Custom Handlers API:
+  # https://html.spec.whatwg.org/multipage/system-state.html#rph-automation
+  experimental command setRPHRegistrationMode
+    parameters
+      AutoResponseMode mode
 
   # Generates a report for testing.
   experimental command generateTestReport
@@ -7790,12 +8353,12 @@ domain Page
     parameters
       # Id of the frame containing input node.
       experimental FrameId frameId
-      # Input node id.
-      experimental DOM.BackendNodeId backendNodeId
       # Input mode.
       enum mode
         selectSingle
         selectMultiple
+      # Input node id. Only present for file choosers opened via an <input type="file"> element.
+      experimental optional DOM.BackendNodeId backendNodeId
 
   # Fired when frame has been attached to its parent.
   event frameAttached
@@ -7958,7 +8521,7 @@ domain Page
   # List of not restored reasons for back-forward cache.
   experimental type BackForwardCacheNotRestoredReason extends string
     enum
-      NotMainFrame
+      NotPrimaryMainFrame
       BackForwardCacheDisabled
       RelatedActiveContentsExist
       HTTPStatusNotOK
@@ -7974,7 +8537,6 @@ domain Page
       JavaScriptExecution
       RendererProcessKilled
       RendererProcessCrashed
-      GrantedMediaStreamAccess
       SchedulerTrackedFeatureUsed
       ConflictingBrowsingInstance
       CacheFlushed
@@ -8001,7 +8563,6 @@ domain Page
       ForegroundCacheLimit
       BrowsingInstanceNotSwapped
       BackForwardCacheDisabledForDelegate
-      OptInUnloadHeaderNotPresent
       UnloadHandlerExistsInMainFrame
       UnloadHandlerExistsInSubFrame
       ServiceWorkerUnregistration
@@ -8011,6 +8572,10 @@ domain Page
       NoResponseHead
       Unknown
       ActivationNavigationsDisallowedForBug1234857
+      ErrorDocument
+      FencedFramesEmbedder
+      CookieDisabled
+      HTTPAuthRequired
       #Blocklisted features
       WebSocket
       WebTransport
@@ -8023,15 +8588,12 @@ domain Page
       DocumentLoaded
       DedicatedWorkerOrWorklet
       OutstandingNetworkRequestOthers
-      OutstandingIndexedDBTransaction
-      RequestedNotificationsPermission
       RequestedMIDIPermission
       RequestedAudioCapturePermission
       RequestedVideoCapturePermission
       RequestedBackForwardCacheBlockedSensors
       RequestedBackgroundWorkPermission
       BroadcastChannel
-      IndexedDBConnection
       WebXR
       SharedWorker
       WebLocks
@@ -8055,8 +8617,14 @@ domain Page
       OutstandingNetworkRequestDirectSocket
       InjectedJavascript
       InjectedStyleSheet
+      KeepaliveRequest
+      IndexedDBEvent
       Dummy
-      # Disabled for render frame host reasons
+      JsNetworkRequestReceivedCacheControlNoStoreResource
+      WebRTCSticky
+      WebTransportSticky
+      WebSocketSticky
+      # Disabled for RenderFrameHost reasons
       # See content/browser/renderer_host/back_forward_cache_disable.h for explanations.
       ContentSecurityHandler
       ContentWebAuthenticationAPI
@@ -8066,7 +8634,6 @@ domain Page
       ContentMediaDevicesDispatcherHost
       ContentWebBluetooth
       ContentWebUSB
-      ContentMediaSession
       ContentMediaSessionService
       ContentScreenReader
 
@@ -8100,6 +8667,11 @@ domain Page
       BackForwardCacheNotRestoredReasonType type
       # Not restored reason
       BackForwardCacheNotRestoredReason reason
+      # Context associated with the reason. The meaning of this context is
+      # dependent on the reason:
+      # - EmbedderExtensionSentMessageToCachedFrame: the extension ID.
+      #
+      optional string context
 
   experimental type BackForwardCacheNotRestoredExplanationTree extends object
     properties
@@ -8174,6 +8746,17 @@ domain Page
       # Base64-encoded data
       binary data
 
+  # Enable/disable prerendering manually.
+  #
+  # This command is a short-term solution for https://crbug.com/1440085.
+  # See https://docs.google.com/document/d/12HVmFxYj5Jc-eJr5OmWsa2bqTJsbgGLKI6ZIyx0_wpA
+  # for more details.
+  #
+  # TODO(https://crbug.com/1440085): Remove this once Puppeteer supports tab targets.
+  experimental command setPrerenderingAllowed
+    parameters
+      boolean isAllowed
+
 domain Performance
 
   # Run-time execution metric.
@@ -8604,6 +9187,8 @@ experimental domain Storage
   depends on Browser
   depends on Network
 
+  type SerializedStorageKey extends string
+
   # Enum of possible storage types.
   type StorageType extends string
     enum
@@ -8616,6 +9201,9 @@ experimental domain Storage
       websql
       service_workers
       cache_storage
+      interest_groups
+      shared_storage
+      storage_buckets
       all
       other
 
@@ -8634,6 +9222,151 @@ experimental domain Storage
       string issuerOrigin
       number count
 
+  # Enum of interest group access types.
+  type InterestGroupAccessType extends string
+    enum
+      join
+      leave
+      update
+      loaded
+      bid
+      win
+
+  # Ad advertising element inside an interest group.
+  type InterestGroupAd extends object
+    properties
+      string renderUrl
+      optional string metadata
+
+  # The full details of an interest group.
+  type InterestGroupDetails extends object
+    properties
+      string ownerOrigin
+      string name
+      Network.TimeSinceEpoch expirationTime
+      string joiningOrigin
+      optional string biddingUrl
+      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 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
+
+  type StorageBucketsDurability extends string
+    enum
+      relaxed
+      strict
+
+  type StorageBucket extends object
+    properties
+      SerializedStorageKey storageKey
+      # If not specified, it is the default bucket of the storageKey.
+      optional string name
+
+  type StorageBucketInfo extends object
+    properties
+      StorageBucket bucket
+      string id
+      Network.TimeSinceEpoch expiration
+      # Storage quota (bytes).
+      number quota
+      boolean persistent
+      StorageBucketsDurability durability
+
+  # Returns a storage key given a frame id.
+  command getStorageKeyForFrame
+    parameters
+      Page.FrameId frameId
+    returns
+      SerializedStorageKey storageKey
+
   # Clears storage for origin.
   command clearDataForOrigin
     parameters
@@ -8642,6 +9375,14 @@ experimental domain Storage
       # Comma separated list of StorageType to clear.
       string storageTypes
 
+  # Clears storage for storage key.
+  command clearDataForStorageKey
+    parameters
+      # Storage key.
+      string storageKey
+      # Comma separated list of StorageType to clear.
+      string storageTypes
+
   # Returns all browser cookies.
   command getCookies
     parameters
@@ -8700,24 +9441,48 @@ 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
       # Security origin.
       string origin
 
+  # Registers storage key to be notified when an update occurs to its IndexedDB.
+  command trackIndexedDBForStorageKey
+    parameters
+      # Storage key.
+      string storageKey
+
   # Unregisters origin from receiving notifications for cache storage.
   command untrackCacheStorageForOrigin
     parameters
       # 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
       # Security origin.
       string origin
 
+  # Unregisters storage key from receiving notifications for IndexedDB.
+  command untrackIndexedDBForStorageKey
+    parameters
+      # Storage key.
+      string storageKey
+
   # Returns the number of stored Trust Tokens per issuer for the
   # current browsing context.
   experimental command getTrustTokens
@@ -8733,11 +9498,89 @@ experimental domain Storage
       # True if any tokens were deleted, false otherwise.
       boolean didDeleteTokens
 
+  # Gets details for a named interest group.
+  experimental command getInterestGroupDetails
+    parameters
+      string ownerOrigin
+      string name
+    returns
+      InterestGroupDetails details
+
+  # Enables/Disables issuing of interestGroupAccessed events.
+  experimental command setInterestGroupTracking
+    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
+
+  # Resets the budget for `ownerOrigin` by clearing all budget withdrawals.
+  experimental command resetSharedStorageBudget
+    parameters
+      string ownerOrigin
+
+  # Enables/disables issuing of sharedStorageAccessed events.
+  experimental command setSharedStorageTracking
+    parameters
+      boolean enable
+
+  # Set tracking for a storage key's buckets.
+  experimental command setStorageBucketTracking
+    parameters
+      string storageKey
+      boolean enable
+
+  # Deletes the Storage Bucket with the given storage key and bucket name.
+  experimental command deleteStorageBucket
+    parameters
+      StorageBucket bucket
+
+  # Deletes state for sites identified as potential bounce trackers, immediately.
+  experimental command runBounceTrackingMitigations
+    returns
+      array of string deletedSites
+
   # A cache's contents have been modified.
   event cacheStorageContentUpdated
     parameters
       # Origin to update.
       string origin
+      # Storage key to update.
+      string storageKey
+      # Storage bucket to update.
+      string bucketId
       # Name of cache in origin.
       string cacheName
 
@@ -8746,12 +9589,20 @@ experimental domain Storage
     parameters
       # Origin to update.
       string origin
+      # Storage key to update.
+      string storageKey
+      # Storage bucket to update.
+      string bucketId
 
   # The origin's IndexedDB object store has been modified.
   event indexedDBContentUpdated
     parameters
       # Origin to update.
       string origin
+      # Storage key to update.
+      string storageKey
+      # Storage bucket to update.
+      string bucketId
       # Database to update.
       string databaseName
       # ObjectStore to update.
@@ -8762,6 +9613,111 @@ experimental domain Storage
     parameters
       # Origin to update.
       string origin
+      # Storage key to update.
+      string storageKey
+      # Storage bucket to update.
+      string bucketId
+
+  # One of the interest groups was accessed by the associated page.
+  event interestGroupAccessed
+    parameters
+      Network.TimeSinceEpoch accessTime
+      InterestGroupAccessType type
+      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
+
+  event storageBucketCreatedOrUpdated
+    parameters
+      StorageBucketInfo bucketInfo
+
+  event storageBucketDeleted
+    parameters
+      string bucketId
+
+  # https://wicg.github.io/attribution-reporting-api/
+  experimental command setAttributionReportingLocalTestingMode
+    parameters
+      # If enabled, noise is suppressed and reports are sent immediately.
+      boolean enabled
+
+  # Enables/disables issuing of Attribution Reporting events.
+  experimental command setAttributionReportingTracking
+    parameters
+      boolean enable
+
+  experimental type AttributionReportingSourceType extends string
+    enum
+      navigation
+      event
+
+  experimental type UnsignedInt64AsBase10 extends string
+  experimental type UnsignedInt128AsBase16 extends string
+  experimental type SignedInt64AsBase10 extends string
+
+  experimental type AttributionReportingFilterDataEntry extends object
+    properties
+      string key
+      array of string values
+
+  experimental type AttributionReportingAggregationKeysEntry extends object
+    properties
+      string key
+      UnsignedInt128AsBase16 value
+
+  experimental type AttributionReportingSourceRegistration extends object
+    properties
+      Network.TimeSinceEpoch time
+      # duration in seconds
+      optional integer expiry
+      # duration in seconds
+      optional integer eventReportWindow
+      # duration in seconds
+      optional integer aggregatableReportWindow
+      AttributionReportingSourceType type
+      string sourceOrigin
+      string reportingOrigin
+      array of string destinationSites
+      UnsignedInt64AsBase10 eventId
+      SignedInt64AsBase10 priority
+      array of AttributionReportingFilterDataEntry filterData
+      array of AttributionReportingAggregationKeysEntry aggregationKeys
+      optional UnsignedInt64AsBase10 debugKey
+
+  experimental type AttributionReportingSourceRegistrationResult extends string
+    enum
+      success
+      internalError
+      insufficientSourceCapacity
+      insufficientUniqueDestinationCapacity
+      excessiveReportingOrigins
+      prohibitedByBrowserPolicy
+      successNoised
+      destinationReportingLimitReached
+      destinationGlobalLimitReached
+      destinationBothLimitsReached
+
+  # TODO(crbug.com/1458532): Add other Attribution Reporting events, e.g.
+  # trigger registration.
+  experimental event attributionReportingSourceRegistered
+    parameters
+      AttributionReportingSourceRegistration registration
+      AttributionReportingSourceRegistrationResult result
 
 # The SystemInfo domain defines methods and events for querying low-level system information.
 experimental domain SystemInfo
@@ -8890,6 +9846,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
@@ -8919,6 +9882,25 @@ 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
+    properties
+      # If set, causes exclusion of mathcing targets from the list.
+      optional boolean exclude
+      # If not present, matches any type.
+      optional string type
+
+  # The entries in TargetFilter are matched sequentially against targets and
+  # the first entry that matches determines if the target is included or not,
+  # depending on the value of `exclude` field in the entry.
+  # If filter is not specified, the one assumed is
+  # [{type: "browser", exclude: true}, {type: "tab", exclude: true}, {}]
+  # (i.e. include everything but `browser` and `tab`).
+  experimental type TargetFilter extends array of FilterEntry
 
   experimental type RemoteLocation extends object
     properties
@@ -8983,7 +9965,6 @@ domain Target
       # 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
-
     returns
       # The id of the context created.
       Browser.BrowserContextID browserContextId
@@ -9013,6 +9994,8 @@ domain Target
       # Whether to create the target in background or foreground (chrome-only,
       # false by default).
       optional boolean background
+      # Whether to create the target of type "tab".
+      experimental optional boolean forTab
     returns
       # The id of the page opened.
       TargetID targetId
@@ -9040,6 +10023,11 @@ domain Target
 
   # Retrieves a list of available targets.
   command getTargets
+    parameters
+      # Only targets matching filter will be reported. If filter is not specified
+      # and target discovery is currently enabled, a filter used for target discovery
+      # is used for consistency.
+      experimental optional TargetFilter filter
     returns
       # The list of targets.
       array of TargetInfo targetInfos
@@ -9071,6 +10059,8 @@ domain Target
       # We plan to make this the default, deprecate non-flattened mode,
       # and eventually retire it. See crbug.com/991325.
       optional boolean flatten
+      # Only targets matching filter will be attached.
+      experimental optional TargetFilter filter
 
   # Adds the specified target to the list of targets that will be monitored for any related target
   # creation (such as child frames, child workers and new versions of service worker) and reported
@@ -9083,6 +10073,8 @@ domain Target
       # Whether to pause new targets when attaching to them. Use `Runtime.runIfWaitingForDebugger`
       # to run paused targets.
       boolean waitForDebuggerOnStart
+      # Only targets matching filter will be attached.
+      experimental optional TargetFilter filter
 
   # Controls whether to discover available targets and notify via
   # `targetCreated/targetInfoChanged/targetDestroyed` events.
@@ -9090,6 +10082,9 @@ domain Target
     parameters
       # Whether to discover available targets.
       boolean discover
+      # Only targets matching filter will be attached. If `discover` is false,
+      # `filter` must be omitted or empty.
+      experimental optional TargetFilter filter
 
   # Enables target discovery for the specified locations, when `setDiscoverTargets` was set to
   # `true`.
@@ -9187,6 +10182,9 @@ experimental domain Tracing
         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
       # Turns on JavaScript stack sampling.
       optional boolean enableSampling
       # Turns on system tracing.
@@ -9302,8 +10300,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
@@ -9442,7 +10440,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
@@ -9533,7 +10533,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.
@@ -9800,6 +10803,10 @@ experimental domain WebAuthn
       # https://fidoalliance.org/specs/fido-v2.1-ps-20210615/fido-client-to-authenticator-protocol-v2.1-ps-20210615.html#sctn-minpinlength-extension
       # Defaults to false.
       optional boolean hasMinPinLength
+      # If set to true, the authenticator will support the prf extension.
+      # https://w3c.github.io/webauthn/#prf-extension
+      # Defaults to false.
+      optional boolean hasPrf
       # If set to true, tests of user presence will succeed immediately.
       # Otherwise, they will not be resolved. Defaults to true.
       optional boolean automaticPresenceSimulation
@@ -9830,6 +10837,13 @@ experimental domain WebAuthn
   # Enable the WebAuthn domain and start intercepting credential storage and
   # retrieval with a virtual authenticator.
   command enable
+    parameters
+      # Whether to enable the WebAuthn user interface. Enabling the UI is
+      # recommended for debugging and demo purposes, as it is closer to the real
+      # experience. Disabling the UI is recommended for automated testing.
+      # Supported at the embedder's discretion if UI is available.
+      # Defaults to false.
+      optional boolean enableUI
 
   # Disable the WebAuthn domain.
   command disable
@@ -9841,6 +10855,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
@@ -9893,6 +10921,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
 
@@ -9933,19 +10973,27 @@ experimental domain Media
       Timestamp timestamp
       string value
 
+  # Represents logged source line numbers reported in an error.
+  # NOTE: file and line are from chromium c++ implementation code, not js.
+  type PlayerErrorSourceLocation extends object
+    properties
+      string file
+      integer line
+
   # Corresponds to kMediaError
   type PlayerError extends object
     properties
-      enum type
-        # Compatability until we switch to media_error
-        pipeline_error
-        media_error
-      # When this switches to using media::Status instead of PipelineStatus
-      # we can remove "errorCode" and replace it with the fields from
-      # a Status instance. This also seems like a duplicate of the error
-      # level enum - there is a todo bug to have that level removed and
-      # use this instead. (crbug.com/1068454)
-      string errorCode
+      string errorType
+      # Code is the numeric enum entry for a specific set of error codes, such
+      # as PipelineStatusCodes in media/base/pipeline_status.h
+      integer code
+      # A trace of where this error was caused / where it passed through.
+      array of PlayerErrorSourceLocation stack
+      # Errors potentially have a root cause error, ie, a DecoderError might be
+      # caused by an WindowsError
+      array of PlayerError cause
+      # Extra data attached to an error, such as an HRESULT, Video Codec, etc.
+      object data
 
   # This can be called multiple times, and can be used to set / override /
   # remove player properties. A null propValue indicates removal.
@@ -9985,3 +11033,367 @@ experimental domain Media
 
   # Disables the Media domain.
   command disable
+
+experimental domain DeviceAccess
+  # Device request id.
+  type RequestId extends string
+
+  # A device id.
+  type DeviceId extends string
+
+  # Device information displayed in a user prompt to select a device.
+  type PromptDevice extends object
+    properties
+      DeviceId id
+      # Display name as it appears in a device request user prompt.
+      string name
+
+  # Enable events in this domain.
+  command enable
+
+  # Disable events in this domain.
+  command disable
+
+  # Select a device in response to a DeviceAccess.deviceRequestPrompted event.
+  command selectPrompt
+    parameters
+      RequestId id
+      DeviceId deviceId
+
+  # Cancel a prompt in response to a DeviceAccess.deviceRequestPrompted event.
+  command cancelPrompt
+    parameters
+      RequestId id
+
+  # A device request opened a user prompt to select a device. Respond with the
+  # selectPrompt or cancelPrompt command.
+  event deviceRequestPrompted
+    parameters
+      RequestId id
+      array of PromptDevice devices
+
+experimental domain Preload
+  # Unique id
+  type RuleSetId extends string
+
+  # Corresponds to SpeculationRuleSet
+  type RuleSet extends object
+    properties
+      RuleSetId id
+      # Identifies a document which the rule set is associated with.
+      Network.LoaderId loaderId
+      # Source text of JSON representing the rule set. If it comes from
+      # <script> tag, it is the textContent of the node. Note that it is
+      # a JSON for valid case.
+      #
+      # See also:
+      # - https://wicg.github.io/nav-speculation/speculation-rules.html
+      # - https://github.com/WICG/nav-speculation/blob/main/triggers.md
+      string sourceText
+      # A speculation rule set is either added through an inline
+      # <script> tag or through an external resource via the
+      # 'Speculation-Rules' HTTP header. For the first case, we include
+      # the BackendNodeId of the relevant <script> tag. For the second
+      # case, we include the external URL where the rule set was loaded
+      # from, and also RequestId if Network domain is enabled.
+      #
+      # See also:
+      # - https://wicg.github.io/nav-speculation/speculation-rules.html#speculation-rules-script
+      # - https://wicg.github.io/nav-speculation/speculation-rules.html#speculation-rules-header
+      optional DOM.BackendNodeId backendNodeId
+      optional string url
+      optional Network.RequestId requestId
+      # Error information
+      # `errorMessage` is null iff `errorType` is null.
+      optional RuleSetErrorType errorType
+      # TODO(https://crbug.com/1425354): Replace this property with structured error.
+      deprecated optional string errorMessage
+
+  type RuleSetErrorType extends string
+    enum
+      SourceIsNotJsonObject
+      InvalidRulesSkipped
+
+  # The type of preloading attempted. It corresponds to
+  # mojom::SpeculationAction (although PrefetchWithSubresources is omitted as it
+  # isn't being used by clients).
+  type SpeculationAction extends string
+    enum
+      Prefetch
+      Prerender
+
+  # Corresponds to mojom::SpeculationTargetHint.
+  # See https://github.com/WICG/nav-speculation/blob/main/triggers.md#window-name-targeting-hints
+  type SpeculationTargetHint extends string
+    enum
+      Blank
+      Self
+
+  # A key that identifies a preloading attempt.
+  #
+  # The url used is the url specified by the trigger (i.e. the initial URL), and
+  # not the final url that is navigated to. For example, prerendering allows
+  # same-origin main frame navigations during the attempt, but the attempt is
+  # still keyed with the initial URL.
+  type PreloadingAttemptKey extends object
+    properties
+      Network.LoaderId loaderId
+      SpeculationAction action
+      string url
+      optional SpeculationTargetHint targetHint
+
+  # Lists sources for a preloading attempt, specifically the ids of rule sets
+  # that had a speculation rule that triggered the attempt, and the
+  # BackendNodeIds of <a href> or <area href> 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.
+  type PreloadingAttemptSource extends object
+    properties
+      PreloadingAttemptKey key
+      array of RuleSetId ruleSetIds
+      array of DOM.BackendNodeId nodeIds
+
+  command enable
+
+  command disable
+
+  # Upsert. Currently, it is only emitted when a rule set added.
+  event ruleSetUpdated
+    parameters
+      RuleSet ruleSet
+
+  event ruleSetRemoved
+    parameters
+      RuleSetId id
+
+  # List of FinalStatus reasons for Prerender2.
+  type PrerenderFinalStatus extends string
+    enum
+      Activated
+      Destroyed
+      LowEndDevice
+      InvalidSchemeRedirect
+      InvalidSchemeNavigation
+      InProgressNavigation
+      NavigationRequestBlockedByCsp
+      MainFrameNavigation
+      MojoBinderPolicy
+      RendererProcessCrashed
+      RendererProcessKilled
+      Download
+      TriggerDestroyed
+      NavigationNotCommitted
+      NavigationBadHttpStatus
+      ClientCertRequested
+      NavigationRequestNetworkError
+      MaxNumOfRunningPrerendersExceeded
+      CancelAllHostsForTesting
+      DidFailLoad
+      Stop
+      SslCertificateError
+      LoginAuthRequested
+      UaChangeRequiresReload
+      BlockedByClient
+      AudioOutputDeviceRequested
+      MixedContent
+      TriggerBackgrounded
+      EmbedderTriggeredAndCrossOriginRedirected
+      MemoryLimitExceeded
+      # Prerenders can be cancelled when Chrome uses excessive memory. This is
+      # recorded when it fails to get the memory usage.
+      FailToGetMemoryUsage
+      DataSaverEnabled
+      HasEffectiveUrl
+      ActivatedBeforeStarted
+      InactivePageRestriction
+      StartFailed
+      TimeoutBackgrounded
+      CrossSiteRedirectInInitialNavigation
+      CrossSiteNavigationInInitialNavigation
+      SameSiteCrossOriginRedirectNotOptInInInitialNavigation
+      SameSiteCrossOriginNavigationNotOptInInInitialNavigation
+      ActivationNavigationParameterMismatch
+      ActivatedInBackground
+      EmbedderHostDisallowed
+      ActivationNavigationDestroyedBeforeSuccess
+      TabClosedByUserGesture
+      TabClosedWithoutUserGesture
+      PrimaryMainFrameRendererProcessCrashed
+      PrimaryMainFrameRendererProcessKilled
+      ActivationFramePolicyNotCompatible
+      PreloadingDisabled
+      BatterySaverEnabled
+      ActivatedDuringMainFrameNavigation
+      PreloadingUnsupportedByWebContents
+      CrossSiteRedirectInMainFrameNavigation
+      CrossSiteNavigationInMainFrameNavigation
+      SameSiteCrossOriginRedirectNotOptInInMainFrameNavigation
+      SameSiteCrossOriginNavigationNotOptInInMainFrameNavigation
+      MemoryPressureOnTrigger
+      MemoryPressureAfterTriggered
+      PrerenderingDisabledByDevTools
+      ResourceLoadBlockedByClient
+
+  # Fired when a prerender attempt is completed.
+  event prerenderAttemptCompleted
+    parameters
+      PreloadingAttemptKey key
+      # The frame id of the frame initiating prerendering.
+      Page.FrameId initiatingFrameId
+      string prerenderingUrl
+      PrerenderFinalStatus finalStatus
+      # This is used to give users more information about the name of the API call
+      # that is incompatible with prerender and has caused the cancellation of the attempt
+      optional string disallowedApiMethod
+
+  # Fired when a preload enabled state is updated.
+  event preloadEnabledStateUpdated
+    parameters
+      boolean disabledByPreference
+      boolean disabledByDataSaver
+      boolean disabledByBatterySaver
+      boolean disabledByHoldbackPrefetchSpeculationRules
+      boolean disabledByHoldbackPrerenderSpeculationRules
+
+  # Preloading status values, see also PreloadingTriggeringOutcome. This
+  # status is shared by prefetchStatusUpdated and prerenderStatusUpdated.
+  type PreloadingStatus extends string
+    enum
+      Pending
+      Running
+      Ready
+      Success
+      Failure
+      # PreloadingTriggeringOutcome which not used by prefetch nor prerender.
+      NotSupported
+
+  # TODO(https://crbug.com/1384419): revisit the list of PrefetchStatus and
+  # filter out the ones that aren't necessary to the developers.
+  type PrefetchStatus extends string
+    enum
+      # Prefetch is not disabled by PrefetchHeldback.
+      PrefetchAllowed
+      PrefetchFailedIneligibleRedirect
+      PrefetchFailedInvalidRedirect
+      PrefetchFailedMIMENotSupported
+      PrefetchFailedNetError
+      PrefetchFailedNon2XX
+      PrefetchFailedPerPageLimitExceeded
+      PrefetchEvicted
+      PrefetchHeldback
+      # A previous prefetch to the origin got a HTTP 503 response with an
+      # Retry-After header that has no elapsed yet.
+      PrefetchIneligibleRetryAfter
+      PrefetchIsPrivacyDecoy
+      PrefetchIsStale
+      PrefetchNotEligibleBrowserContextOffTheRecord
+      PrefetchNotEligibleDataSaverEnabled
+      PrefetchNotEligibleExistingProxy
+      PrefetchNotEligibleHostIsNonUnique
+      PrefetchNotEligibleNonDefaultStoragePartition
+      PrefetchNotEligibleSameSiteCrossOriginPrefetchRequiredProxy
+      PrefetchNotEligibleSchemeIsNotHttps
+      PrefetchNotEligibleUserHasCookies
+      PrefetchNotEligibleUserHasServiceWorker
+      PrefetchNotEligibleBatterySaverEnabled
+      PrefetchNotEligiblePreloadingDisabled
+      PrefetchNotFinishedInTime
+      PrefetchNotStarted
+      PrefetchNotUsedCookiesChanged
+      PrefetchProxyNotAvailable
+      # The response of the prefetch is used for the next navigation. This is
+      # the final successful state.
+      PrefetchResponseUsed
+      # The prefetch finished successfully but was never used.
+      PrefetchSuccessfulButNotUsed
+      PrefetchNotUsedProbeFailed
+
+  # Fired when a prefetch attempt is updated.
+  event prefetchStatusUpdated
+    parameters
+      PreloadingAttemptKey key
+      # The frame id of the frame initiating prefetch.
+      Page.FrameId initiatingFrameId
+      string prefetchUrl
+      PreloadingStatus status
+      PrefetchStatus prefetchStatus
+      Network.RequestId requestId
+
+  # Fired when a prerender attempt is updated.
+  event prerenderStatusUpdated
+    parameters
+      PreloadingAttemptKey key
+      PreloadingStatus status
+      optional PrerenderFinalStatus prerenderStatus
+      # This is used to give users more information about the name of Mojo interface
+      # that is incompatible with prerender and has caused the cancellation of the attempt.
+      optional string disallowedMojoInterface
+
+  # Send a list of sources for all preloading attempts in a document.
+  event preloadingAttemptSourcesUpdated
+    parameters
+      Network.LoaderId loaderId
+      array of PreloadingAttemptSource preloadingAttemptSources
+
+# This domain allows interacting with the FedCM dialog.
+experimental domain FedCm
+  # Whether this is a sign-up or sign-in action for this account, i.e.
+  # whether this account has ever been used to sign in to this RP before.
+  type LoginState extends string
+    enum
+      SignIn
+      SignUp
+
+  # Whether the dialog shown is an account chooser or an auto re-authentication dialog.
+  type DialogType extends string
+    enum
+      AccountChooser
+      AutoReauthn
+
+  # Corresponds to IdentityRequestAccount
+  type Account extends object
+    properties
+      string accountId
+      string email
+      string name
+      string givenName
+      string pictureUrl
+      string idpConfigUrl
+      string idpSigninUrl
+      LoginState loginState
+      # These two are only set if the loginState is signUp
+      optional string termsOfServiceUrl
+      optional string privacyPolicyUrl
+
+  event dialogShown
+    parameters
+      string dialogId
+      DialogType dialogType
+      array of Account accounts
+      # These exist primarily so that the caller can verify the
+      # RP context was used appropriately.
+      string title
+      optional string subtitle
+
+  command enable
+    parameters
+      # Allows callers to disable the promise rejection delay that would
+      # normally happen, if this is unimportant to what's being tested.
+      # (step 4 of https://fedidcg.github.io/FedCM/#browser-api-rp-sign-in)
+      optional boolean disableRejectionDelay
+
+  command disable
+
+  command selectAccount
+    parameters
+      string dialogId
+      integer accountIndex
+
+  command dismissDialog
+    parameters
+      string dialogId
+      optional boolean triggerCooldown
+
+  # Resets the cooldown time, if any, to allow the next FedCM call to show
+  # a dialog even if one was recently dismissed by the user.
+  command resetCooldown
diff --git a/pdl/js_protocol.pdl b/pdl/js_protocol.pdl
index b34c855..ed62263 100644
--- a/pdl/js_protocol.pdl
+++ b/pdl/js_protocol.pdl
@@ -104,13 +104,20 @@ domain Debugger
       # Location in the source code.
       Location location
       # JavaScript script name or url.
-      string url
+      # Deprecated in favor of using the `location.scriptId` to resolve the URL via a previously
+      # sent `Debugger.scriptParsed` event.
+      deprecated string url
       # Scope chain for this call frame.
       array of Scope scopeChain
       # `this` object for this call frame.
       Runtime.RemoteObject this
       # The value being returned, if the function is at return point.
       optional Runtime.RemoteObject returnValue
+      # Valid only while the VM is paused and indicates whether this frame
+      # can be restarted or not. Note that a `true` value here does not
+      # guarantee that Debugger#restartFrame with this CallFrameId will be
+      # successful, but it is very likely.
+      experimental optional boolean canBeRestarted
 
   # Scope description.
   type Scope extends object
@@ -237,6 +244,40 @@ domain Debugger
       # Wasm bytecode.
       optional binary bytecode
 
+  experimental type WasmDisassemblyChunk extends object
+    properties
+      # The next chunk of disassembled lines.
+      array of string lines
+      # The bytecode offsets describing the start of each line.
+      array of integer bytecodeOffsets
+
+  experimental command disassembleWasmModule
+    parameters
+      # Id of the script to disassemble
+      Runtime.ScriptId scriptId
+    returns
+      # For large modules, return a stream from which additional chunks of
+      # disassembly can be read successively.
+      optional string streamId
+      # The total number of lines in the disassembly text.
+      integer totalNumberOfLines
+      # The offsets of all function bodies, in the format [start1, end1,
+      # start2, end2, ...] where all ends are exclusive.
+      array of integer functionBodyOffsets
+      # The first chunk of disassembly.
+      WasmDisassemblyChunk chunk
+
+  # Disassemble the next chunk of lines for the module corresponding to the
+  # stream. If disassembly is complete, this API will invalidate the streamId
+  # and return an empty chunk. Any subsequent calls for the now invalid stream
+  # will return errors.
+  experimental command nextWasmDisassemblyChunk
+    parameters
+      string streamId
+    returns
+      # The next chunk of disassembly.
+      WasmDisassemblyChunk chunk
+
   # This command is deprecated. Use getScriptSource instead.
   deprecated command getWasmBytecode
     parameters
@@ -266,18 +307,35 @@ domain Debugger
     parameters
       BreakpointId breakpointId
 
-  # Restarts particular call frame from the beginning.
-  deprecated command restartFrame
+  # Restarts particular call frame from the beginning. The old, deprecated
+  # behavior of `restartFrame` is to stay paused and allow further CDP commands
+  # after a restart was scheduled. This can cause problems with restarting, so
+  # we now continue execution immediatly after it has been scheduled until we
+  # reach the beginning of the restarted frame.
+  #
+  # To stay back-wards compatible, `restartFrame` now expects a `mode`
+  # parameter to be present. If the `mode` parameter is missing, `restartFrame`
+  # errors out.
+  #
+  # The various return values are deprecated and `callFrames` is always empty.
+  # Use the call frames from the `Debugger#paused` events instead, that fires
+  # once V8 pauses at the beginning of the restarted function.
+  command restartFrame
     parameters
       # Call frame identifier to evaluate on.
       CallFrameId callFrameId
+      # The `mode` parameter must be present and set to 'StepInto', otherwise
+      # `restartFrame` will error out.
+      experimental optional enum mode
+        # Pause at the beginning of the restarted function
+        StepInto
     returns
       # New stack trace.
-      array of CallFrame callFrames
+      deprecated array of CallFrame callFrames
       # Async stack trace, if any.
-      optional Runtime.StackTrace asyncStackTrace
+      deprecated optional Runtime.StackTrace asyncStackTrace
       # Async stack trace, if any.
-      experimental optional Runtime.StackTraceId asyncStackTraceId
+      deprecated optional Runtime.StackTraceId asyncStackTraceId
 
   # Resumes JavaScript execution.
   command resume
@@ -400,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
 
@@ -417,6 +476,12 @@ domain Debugger
       Runtime.CallArgument newValue
 
   # Edits JavaScript source live.
+  #
+  # In general, functions that are currently on the stack can not be edited with
+  # a single exception: If the edited function is the top-most stack frame and
+  # that is the only activation of that function on the stack. In this case
+  # the live edit will be successful and a `Debugger.restartFrame` for the
+  # top-most function is automatically triggered.
   command setScriptSource
     parameters
       # Id of the script to edit.
@@ -426,16 +491,28 @@ domain Debugger
       #  If true the change will not actually be applied. Dry run may be used to get result
       # description without actually modifying the code.
       optional boolean dryRun
+      # If true, then `scriptSource` is allowed to change the function on top of the stack
+      # as long as the top-most stack frame is the only activation of that function.
+      experimental optional boolean allowTopFrameEditing
     returns
       # New stack trace in case editing has happened while VM was stopped.
-      optional array of CallFrame callFrames
+      deprecated optional array of CallFrame callFrames
       # Whether current call stack  was modified after applying the changes.
-      optional boolean stackChanged
+      deprecated optional boolean stackChanged
       # Async stack trace, if any.
-      optional Runtime.StackTrace asyncStackTrace
+      deprecated optional Runtime.StackTrace asyncStackTrace
       # Async stack trace, if any.
-      experimental optional Runtime.StackTraceId asyncStackTraceId
-      # Exception details if any.
+      deprecated optional Runtime.StackTraceId asyncStackTraceId
+      # Whether the operation was successful or not. Only `Ok` denotes a
+      # successful live edit while the other enum variants denote why
+      # the live edit failed.
+      experimental enum status
+        Ok
+        CompileError
+        BlockedByActiveGenerator
+        BlockedByActiveFunction
+        BlockedByTopLevelEsModuleChange
+      # Exception details if any. Only present when `status` is `CompileError`.
       optional Runtime.ExceptionDetails exceptionDetails
 
   # Makes page not interrupt on any pauses (breakpoint, exception, dom exception etc).
@@ -503,6 +580,7 @@ domain Debugger
         other
         promiseRejection
         XHR
+        step
       # Object containing break-specific auxiliary properties.
       optional object data
       # Hit breakpoints IDs
@@ -552,9 +630,9 @@ domain Debugger
       integer endColumn
       # Specifies script creation context.
       Runtime.ExecutionContextId executionContextId
-      # Content hash of the script.
+      # Content hash of the script, SHA-256.
       string hash
-      # Embedder-specific auxiliary data.
+      # Embedder-specific auxiliary data likely matching {isDefault: boolean, type: 'default'|'isolated'|'worker', frameId: string}
       optional object executionContextAuxData
       # URL of source map associated with script (if any).
       optional string sourceMapURL
@@ -591,9 +669,9 @@ domain Debugger
       integer endColumn
       # Specifies script creation context.
       Runtime.ExecutionContextId executionContextId
-      # Content hash of the script.
+      # Content hash of the script, SHA-256.
       string hash
-      # Embedder-specific auxiliary data.
+      # Embedder-specific auxiliary data likely matching {isDefault: boolean, type: 'default'|'isolated'|'worker', frameId: string}
       optional object executionContextAuxData
       # True, if this script is generated as a result of the live edit operation.
       experimental optional boolean isLiveEdit
@@ -691,6 +769,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
@@ -706,18 +800,24 @@ experimental domain HeapProfiler
       # If true 'reportHeapSnapshotProgress' events will be generated while snapshot is being taken
       # when the tracking is stopped.
       optional boolean reportProgress
-      optional boolean treatGlobalObjectsAsRoots
+      # Deprecated in favor of `exposeInternals`.
+      deprecated optional boolean treatGlobalObjectsAsRoots
       # If true, numerical values are included in the snapshot
       optional boolean captureNumericValue
+      # If true, exposes internals of the snapshot.
+      experimental optional boolean exposeInternals
 
   command takeHeapSnapshot
     parameters
       # If true 'reportHeapSnapshotProgress' events will be generated while snapshot is being taken.
       optional boolean reportProgress
-      # If true, a raw snapshot without artificial roots will be generated
-      optional boolean treatGlobalObjectsAsRoots
+      # If true, a raw snapshot without artificial roots will be generated.
+      # Deprecated in favor of `exposeInternals`.
+      deprecated optional boolean treatGlobalObjectsAsRoots
       # If true, numerical values are included in the snapshot
       optional boolean captureNumericValue
+      # If true, exposes internals of the snapshot.
+      experimental optional boolean exposeInternals
 
   event addHeapSnapshotChunk
     parameters
@@ -821,30 +921,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
@@ -879,9 +955,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.
@@ -891,9 +964,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
@@ -903,12 +973,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
@@ -950,6 +1014,65 @@ domain Runtime
   # Unique script identifier.
   type ScriptId extends string
 
+  # Represents options for serialization. Overrides `generatePreview`, `returnByValue` and
+  # `generateWebDriverValue`.
+  type SerializationOptions extends object
+    properties
+      enum serialization
+        # Whether the result should be deep-serialized. The result is put into
+        # `deepSerializedValue` and `ObjectId` is provided.
+        deep
+        # Whether the result is expected to be a JSON object which should be sent by value.
+        # The result is put either into `value` or into `unserializableValue`. Synonym of
+        # `returnByValue: true`. Overrides `returnByValue`.
+        json
+        # Only remote object id is put in the result. Same bahaviour as if no
+        # `serializationOptions`, `generatePreview`, `returnByValue` nor `generateWebDriverValue`
+        # are provided.
+        idOnly
+
+      # Deep serialization depth. Default is full depth. Respected only in `deep` serialization mode.
+      optional integer maxDepth
+
+      # Embedder-specific parameters. For example if connected to V8 in Chrome these control DOM
+      # serialization via `maxNodeDepth: integer` and `includeShadowTree: "none" | "open" | "all"`.
+      # Values can be only of type string or integer.
+      optional object additionalParameters
+
+  # Represents deep serialized value.
+  type DeepSerializedValue extends object
+    properties
+      enum type
+        undefined
+        null
+        string
+        number
+        boolean
+        bigint
+        regexp
+        date
+        symbol
+        array
+        object
+        function
+        map
+        set
+        weakmap
+        weakset
+        error
+        proxy
+        promise
+        typedarray
+        arraybuffer
+        node
+        window
+      optional any value
+      optional string objectId
+      # Set if value reference met more then once during serialization. In such
+      # case, value is provided only to one of the serialized values. Unique
+      # per value in the scope of one CDP call.
+      optional integer weakLocalObjectReference
+
   # Unique object identifier.
   type RemoteObjectId extends string
 
@@ -1002,6 +1125,10 @@ domain Runtime
       optional UnserializableValue unserializableValue
       # String representation of the object.
       optional string description
+      # Deprecated. Use `deepSerializedValue` instead. WebDriver BiDi representation of the value.
+      deprecated optional DeepSerializedValue webDriverValue
+      # Deep serialized value.
+      experimental optional DeepSerializedValue deepSerializedValue
       # Unique object identifier (for non-primitive values).
       optional RemoteObjectId objectId
       # Preview containing abbreviated property values. Specified for `object` type values only.
@@ -1187,7 +1314,7 @@ domain Runtime
       # multiple processes, so can be reliably used to identify specific context while backend
       # performs a cross-process navigation.
       experimental string uniqueId
-      # Embedder-specific auxiliary data.
+      # Embedder-specific auxiliary data likely matching {isDefault: boolean, type: 'default'|'isolated'|'worker', frameId: string}
       optional object auxData
 
   # Detailed information about exception (or error) that was thrown during script compilation or
@@ -1291,6 +1418,7 @@ domain Runtime
       # execution. Overrides `setPauseOnException` state.
       optional boolean silent
       # Whether the result is expected to be a JSON object which should be sent by value.
+      # Can be overriden by `serializationOptions`.
       optional boolean returnByValue
       # Whether preview should be generated for the result.
       experimental optional boolean generatePreview
@@ -1307,6 +1435,22 @@ domain Runtime
       optional string objectGroup
       # Whether to throw an exception if side effect cannot be ruled out during evaluation.
       experimental optional boolean throwOnSideEffect
+      # An alternative way to specify the execution context to call function on.
+      # Compared to contextId that may be reused across processes, this is guaranteed to be
+      # system-unique, so it can be used to prevent accidental function call
+      # in context different than intended (e.g. as a result of navigation across process
+      # boundaries).
+      # This is mutually exclusive with `executionContextId`.
+      experimental optional string uniqueContextId
+      # Deprecated. Use `serializationOptions: {serialization:"deep"}` instead.
+      # Whether the result should contain `webDriverValue`, serialized according to
+      # https://w3c.github.io/webdriver-bidi. This is mutually exclusive with `returnByValue`, but
+      # resulting `objectId` is still provided.
+      deprecated optional boolean generateWebDriverValue
+      # Specifies the result serialization. If provided, overrides
+      # `generatePreview`, `returnByValue` and `generateWebDriverValue`.
+      experimental optional SerializationOptions serializationOptions
+
     returns
       # Call result.
       RemoteObject result
@@ -1392,6 +1536,15 @@ domain Runtime
       # boundaries).
       # This is mutually exclusive with `contextId`.
       experimental optional string uniqueContextId
+      # Deprecated. Use `serializationOptions: {serialization:"deep"}` instead.
+      # Whether the result should contain `webDriverValue`, serialized
+      # according to
+      # https://w3c.github.io/webdriver-bidi. This is mutually exclusive with `returnByValue`, but
+      # resulting `objectId` is still provided.
+      deprecated optional boolean generateWebDriverValue
+      # Specifies the result serialization. If provided, overrides
+      # `generatePreview`, `returnByValue` and `generateWebDriverValue`.
+      experimental optional SerializationOptions serializationOptions
     returns
       # Evaluation result.
       RemoteObject result
@@ -1550,6 +1703,18 @@ domain Runtime
     parameters
       string name
 
+  # This method tries to lookup and populate exception details for a
+  # JavaScript Error object.
+  # Note that the stackTrace portion of the resulting exceptionDetails will
+  # only be populated if the Runtime domain was enabled at the time when the
+  # Error was thrown.
+  experimental command getExceptionDetails
+    parameters
+      # The error object for which to resolve the exception details.
+      RemoteObjectId errorObjectId
+    returns
+      optional ExceptionDetails exceptionDetails
+
   # Notification is issued every time when binding is called.
   experimental event bindingCalled
     parameters
@@ -1621,7 +1786,9 @@ domain Runtime
   event executionContextDestroyed
     parameters
       # Id of the destroyed context
-      ExecutionContextId executionContextId
+      deprecated ExecutionContextId executionContextId
+      # Unique Id of the destroyed context
+      experimental string executionContextUniqueId
 
   # Issued when all executionContexts were cleared in browser
   event executionContextsCleared
diff --git a/types/protocol-mapping.d.ts b/types/protocol-mapping.d.ts
index 3087635..636da22 100644
--- a/types/protocol-mapping.d.ts
+++ b/types/protocol-mapping.d.ts
@@ -133,7 +133,7 @@ export namespace ProtocolMapping {
         'Browser.downloadProgress': [Protocol.Browser.DownloadProgressEvent];
         /**
          * Fires whenever a web font is updated.  A non-empty font parameter indicates a successfully loaded
-         * web font
+         * web font.
          */
         'CSS.fontsUpdated': [Protocol.CSS.FontsUpdatedEvent];
         /**
@@ -203,6 +203,10 @@ export namespace ProtocolMapping {
          * Called when a pseudo element is added to an element.
          */
         'DOM.pseudoElementAdded': [Protocol.DOM.PseudoElementAddedEvent];
+        /**
+         * Called when top layer elements are changed.
+         */
+        'DOM.topLayerElementsUpdated': [];
         /**
          * Called when a pseudo element is removed from an element.
          */
@@ -229,12 +233,6 @@ export namespace ProtocolMapping {
          * Notification sent after the virtual time budget for the current VirtualTimePolicy has run out.
          */
         'Emulation.virtualTimeBudgetExpired': [];
-        /**
-         * 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.
-         */
-        'HeadlessExperimental.needsBeginFramesChanged': [Protocol.HeadlessExperimental.NeedsBeginFramesChangedEvent];
         /**
          * Emitted only when `Input.setInterceptDrags` is enabled. Use this data with `Input.dispatchDragEvent` to
          * restore normal drag and drop behavior.
@@ -549,6 +547,22 @@ export namespace ProtocolMapping {
          * The origin's IndexedDB database list has been modified.
          */
         'Storage.indexedDBListUpdated': [Protocol.Storage.IndexedDBListUpdatedEvent];
+        /**
+         * One of the interest groups was accessed by the associated page.
+         */
+        'Storage.interestGroupAccessed': [Protocol.Storage.InterestGroupAccessedEvent];
+        /**
+         * Shared storage was accessed by the associated page.
+         * The following parameters are included in all events.
+         */
+        'Storage.sharedStorageAccessed': [Protocol.Storage.SharedStorageAccessedEvent];
+        'Storage.storageBucketCreatedOrUpdated': [Protocol.Storage.StorageBucketCreatedOrUpdatedEvent];
+        'Storage.storageBucketDeleted': [Protocol.Storage.StorageBucketDeletedEvent];
+        /**
+         * TODO(crbug.com/1458532): Add other Attribution Reporting events, e.g.
+         * trigger registration.
+         */
+        'Storage.attributionReportingSourceRegistered': [Protocol.Storage.AttributionReportingSourceRegisteredEvent];
         /**
          * Issued when attached to target because of auto-attach or `attachToTarget` command.
          */
@@ -586,8 +600,8 @@ export namespace ProtocolMapping {
         'Tethering.accepted': [Protocol.Tethering.AcceptedEvent];
         'Tracing.bufferUsage': [Protocol.Tracing.BufferUsageEvent];
         /**
-         * 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.
          */
         'Tracing.dataCollected': [Protocol.Tracing.DataCollectedEvent];
         /**
@@ -661,6 +675,14 @@ export namespace ProtocolMapping {
          * Notifies that an AudioNode is disconnected to an AudioParam.
          */
         'WebAudio.nodeParamDisconnected': [Protocol.WebAudio.NodeParamDisconnectedEvent];
+        /**
+         * Triggered when a credential is added to an authenticator.
+         */
+        'WebAuthn.credentialAdded': [Protocol.WebAuthn.CredentialAddedEvent];
+        /**
+         * Triggered when a credential is used in a webauthn assertion.
+         */
+        'WebAuthn.credentialAsserted': [Protocol.WebAuthn.CredentialAssertedEvent];
         /**
          * This can be called multiple times, and can be used to set / override /
          * remove player properties. A null propValue indicates removal.
@@ -685,6 +707,37 @@ export namespace ProtocolMapping {
          * list of player ids and all events again.
          */
         'Media.playersCreated': [Protocol.Media.PlayersCreatedEvent];
+        /**
+         * A device request opened a user prompt to select a device. Respond with the
+         * selectPrompt or cancelPrompt command.
+         */
+        'DeviceAccess.deviceRequestPrompted': [Protocol.DeviceAccess.DeviceRequestPromptedEvent];
+        /**
+         * Upsert. Currently, it is only emitted when a rule set added.
+         */
+        'Preload.ruleSetUpdated': [Protocol.Preload.RuleSetUpdatedEvent];
+        'Preload.ruleSetRemoved': [Protocol.Preload.RuleSetRemovedEvent];
+        /**
+         * Fired when a prerender attempt is completed.
+         */
+        'Preload.prerenderAttemptCompleted': [Protocol.Preload.PrerenderAttemptCompletedEvent];
+        /**
+         * Fired when a preload enabled state is updated.
+         */
+        'Preload.preloadEnabledStateUpdated': [Protocol.Preload.PreloadEnabledStateUpdatedEvent];
+        /**
+         * Fired when a prefetch attempt is updated.
+         */
+        'Preload.prefetchStatusUpdated': [Protocol.Preload.PrefetchStatusUpdatedEvent];
+        /**
+         * Fired when a prerender attempt is updated.
+         */
+        'Preload.prerenderStatusUpdated': [Protocol.Preload.PrerenderStatusUpdatedEvent];
+        /**
+         * Send a list of sources for all preloading attempts in a document.
+         */
+        'Preload.preloadingAttemptSourcesUpdated': [Protocol.Preload.PreloadingAttemptSourcesUpdatedEvent];
+        'FedCm.dialogShown': [Protocol.FedCm.DialogShownEvent];
     }
 
     export interface Commands {
@@ -754,6 +807,20 @@ export namespace ProtocolMapping {
             paramsType: [Protocol.Debugger.GetScriptSourceRequest];
             returnType: Protocol.Debugger.GetScriptSourceResponse;
         };
+        'Debugger.disassembleWasmModule': {
+            paramsType: [Protocol.Debugger.DisassembleWasmModuleRequest];
+            returnType: Protocol.Debugger.DisassembleWasmModuleResponse;
+        };
+        /**
+         * Disassemble the next chunk of lines for the module corresponding to the
+         * stream. If disassembly is complete, this API will invalidate the streamId
+         * and return an empty chunk. Any subsequent calls for the now invalid stream
+         * will return errors.
+         */
+        'Debugger.nextWasmDisassemblyChunk': {
+            paramsType: [Protocol.Debugger.NextWasmDisassemblyChunkRequest];
+            returnType: Protocol.Debugger.NextWasmDisassemblyChunkResponse;
+        };
         /**
          * This command is deprecated. Use getScriptSource instead.
          */
@@ -787,7 +854,19 @@ export namespace ProtocolMapping {
             returnType: void;
         };
         /**
-         * Restarts particular call frame from the beginning.
+         * Restarts particular call frame from the beginning. The old, deprecated
+         * behavior of `restartFrame` is to stay paused and allow further CDP commands
+         * after a restart was scheduled. This can cause problems with restarting, so
+         * we now continue execution immediatly after it has been scheduled until we
+         * reach the beginning of the restarted frame.
+         * 
+         * To stay back-wards compatible, `restartFrame` now expects a `mode`
+         * parameter to be present. If the `mode` parameter is missing, `restartFrame`
+         * errors out.
+         * 
+         * The various return values are deprecated and `callFrames` is always empty.
+         * Use the call frames from the `Debugger#paused` events instead, that fires
+         * once V8 pauses at the beginning of the restarted function.
          */
         'Debugger.restartFrame': {
             paramsType: [Protocol.Debugger.RestartFrameRequest];
@@ -874,8 +953,8 @@ export namespace ProtocolMapping {
             returnType: void;
         };
         /**
-         * 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`.
          */
         'Debugger.setPauseOnExceptions': {
             paramsType: [Protocol.Debugger.SetPauseOnExceptionsRequest];
@@ -890,6 +969,12 @@ export namespace ProtocolMapping {
         };
         /**
          * Edits JavaScript source live.
+         * 
+         * In general, functions that are currently on the stack can not be edited with
+         * a single exception: If the edited function is the top-most stack frame and
+         * that is the only activation of that function on the stack. In this case
+         * the live edit will be successful and a `Debugger.restartFrame` for the
+         * top-most function is automatically triggered.
          */
         'Debugger.setScriptSource': {
             paramsType: [Protocol.Debugger.SetScriptSourceRequest];
@@ -1019,13 +1104,6 @@ export namespace ProtocolMapping {
             paramsType: [Protocol.Profiler.StartPreciseCoverageRequest?];
             returnType: Protocol.Profiler.StartPreciseCoverageResponse;
         };
-        /**
-         * Enable type profile.
-         */
-        'Profiler.startTypeProfile': {
-            paramsType: [];
-            returnType: void;
-        };
         'Profiler.stop': {
             paramsType: [];
             returnType: Protocol.Profiler.StopResponse;
@@ -1038,13 +1116,6 @@ export namespace ProtocolMapping {
             paramsType: [];
             returnType: void;
         };
-        /**
-         * Disable type profile. Disabling releases type profile data collected so far.
-         */
-        'Profiler.stopTypeProfile': {
-            paramsType: [];
-            returnType: void;
-        };
         /**
          * Collect coverage data for the current isolate, and resets execution counters. Precise code
          * coverage needs to have started.
@@ -1053,13 +1124,6 @@ export namespace ProtocolMapping {
             paramsType: [];
             returnType: Protocol.Profiler.TakePreciseCoverageResponse;
         };
-        /**
-         * Collect type profile.
-         */
-        'Profiler.takeTypeProfile': {
-            paramsType: [];
-            returnType: Protocol.Profiler.TakeTypeProfileResponse;
-        };
         /**
          * Add handler to promise with given promise object id.
          */
@@ -1217,6 +1281,17 @@ export namespace ProtocolMapping {
             paramsType: [Protocol.Runtime.RemoveBindingRequest];
             returnType: void;
         };
+        /**
+         * This method tries to lookup and populate exception details for a
+         * JavaScript Error object.
+         * Note that the stackTrace portion of the resulting exceptionDetails will
+         * only be populated if the Runtime domain was enabled at the time when the
+         * Error was thrown.
+         */
+        'Runtime.getExceptionDetails': {
+            paramsType: [Protocol.Runtime.GetExceptionDetailsRequest];
+            returnType: Protocol.Runtime.GetExceptionDetailsResponse;
+        };
         /**
          * Returns supported domains.
          */
@@ -1389,6 +1464,29 @@ export namespace ProtocolMapping {
             paramsType: [Protocol.Audits.CheckContrastRequest?];
             returnType: void;
         };
+        /**
+         * Runs the form issues check for the target page. Found issues are reported
+         * using Audits.issueAdded event.
+         */
+        'Audits.checkFormsIssues': {
+            paramsType: [];
+            returnType: Protocol.Audits.CheckFormsIssuesResponse;
+        };
+        /**
+         * Trigger autofill on a form identified by the fieldId.
+         * If the field and related form cannot be autofilled, returns an error.
+         */
+        'Autofill.trigger': {
+            paramsType: [Protocol.Autofill.TriggerRequest];
+            returnType: void;
+        };
+        /**
+         * Set addresses so that developers can verify their forms implementation.
+         */
+        'Autofill.setAddresses': {
+            paramsType: [Protocol.Autofill.SetAddressesRequest];
+            returnType: void;
+        };
         /**
          * Enables event updates for the service.
          */
@@ -1537,6 +1635,14 @@ export namespace ProtocolMapping {
             paramsType: [Protocol.Browser.ExecuteBrowserCommandRequest];
             returnType: void;
         };
+        /**
+         * Allows a site to use privacy sandbox features that require enrollment
+         * without the site actually being enrolled. Only supported on page targets.
+         */
+        'Browser.addPrivacySandboxEnrollmentOverride': {
+            paramsType: [Protocol.Browser.AddPrivacySandboxEnrollmentOverrideRequest];
+            returnType: void;
+        };
         /**
          * Inserts a new rule with the given `ruleText` in a stylesheet with given `styleSheetId`, at the
          * position specified by `location`.
@@ -1630,6 +1736,16 @@ export namespace ProtocolMapping {
             paramsType: [Protocol.CSS.GetStyleSheetTextRequest];
             returnType: Protocol.CSS.GetStyleSheetTextResponse;
         };
+        /**
+         * Returns all layers parsed by the rendering engine for the tree scope of a node.
+         * Given a DOM element identified by nodeId, getLayersForNode returns the root
+         * layer for the nearest ancestor document or shadow root. The layer root contains
+         * the full layer tree for the tree scope and their ordering.
+         */
+        'CSS.getLayersForNode': {
+            paramsType: [Protocol.CSS.GetLayersForNodeRequest];
+            returnType: Protocol.CSS.GetLayersForNodeResponse;
+        };
         /**
          * Starts tracking the given computed styles for updates. The specified array of properties
          * replaces the one previously specified. Pass empty array to disable tracking.
@@ -1678,6 +1794,20 @@ export namespace ProtocolMapping {
             paramsType: [Protocol.CSS.SetContainerQueryTextRequest];
             returnType: Protocol.CSS.SetContainerQueryTextResponse;
         };
+        /**
+         * Modifies the expression of a supports at-rule.
+         */
+        'CSS.setSupportsText': {
+            paramsType: [Protocol.CSS.SetSupportsTextRequest];
+            returnType: Protocol.CSS.SetSupportsTextResponse;
+        };
+        /**
+         * Modifies the expression of a scope at-rule.
+         */
+        'CSS.setScopeText': {
+            paramsType: [Protocol.CSS.SetScopeTextRequest];
+            returnType: Protocol.CSS.SetScopeTextResponse;
+        };
         /**
          * Modifies the rule selector.
          */
@@ -1708,7 +1838,7 @@ export namespace ProtocolMapping {
         };
         /**
          * Stop tracking rule usage and return the list of rules that were used since last call to
-         * `takeCoverageDelta` (or since start of coverage instrumentation)
+         * `takeCoverageDelta` (or since start of coverage instrumentation).
          */
         'CSS.stopRuleUsageTracking': {
             paramsType: [];
@@ -1716,7 +1846,7 @@ export namespace ProtocolMapping {
         };
         /**
          * Obtain list of rules that became used since last call to this method (or since start of coverage
-         * instrumentation)
+         * instrumentation).
          */
         'CSS.takeCoverageDelta': {
             paramsType: [];
@@ -1747,7 +1877,7 @@ export namespace ProtocolMapping {
          * Requests cache names.
          */
         'CacheStorage.requestCacheNames': {
-            paramsType: [Protocol.CacheStorage.RequestCacheNamesRequest];
+            paramsType: [Protocol.CacheStorage.RequestCacheNamesRequest?];
             returnType: Protocol.CacheStorage.RequestCacheNamesResponse;
         };
         /**
@@ -1862,7 +1992,7 @@ export namespace ProtocolMapping {
          * Enables DOM agent for the given page.
          */
         'DOM.enable': {
-            paramsType: [];
+            paramsType: [Protocol.DOM.EnableRequest?];
             returnType: void;
         };
         /**
@@ -1896,6 +2026,7 @@ export namespace ProtocolMapping {
         };
         /**
          * Returns the root DOM node (and optionally the subtree) to the caller.
+         * Implicitly enables the DOM domain events for the current target.
          */
         'DOM.getDocument': {
             paramsType: [Protocol.DOM.GetDocumentRequest?];
@@ -2018,6 +2149,15 @@ export namespace ProtocolMapping {
             paramsType: [Protocol.DOM.QuerySelectorAllRequest];
             returnType: Protocol.DOM.QuerySelectorAllResponse;
         };
+        /**
+         * Returns NodeIds of current top layer elements.
+         * Top layer is rendered closest to the user within a viewport, therefore its elements always
+         * appear on top of all other content.
+         */
+        'DOM.getTopLayerElements': {
+            paramsType: [];
+            returnType: Protocol.DOM.GetTopLayerElementsResponse;
+        };
         /**
          * Re-does the last undone action.
          */
@@ -2152,9 +2292,10 @@ export namespace ProtocolMapping {
             returnType: Protocol.DOM.GetFrameOwnerResponse;
         };
         /**
-         * 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.
          */
         'DOM.getContainerForNode': {
             paramsType: [Protocol.DOM.GetContainerForNodeRequest];
@@ -2529,6 +2670,10 @@ export namespace ProtocolMapping {
             paramsType: [Protocol.Emulation.SetDisabledImageTypesRequest];
             returnType: void;
         };
+        'Emulation.setHardwareConcurrencyOverride': {
+            paramsType: [Protocol.Emulation.SetHardwareConcurrencyOverrideRequest];
+            returnType: void;
+        };
         /**
          * Allows overriding user agent with the given string.
          */
@@ -2536,11 +2681,18 @@ export namespace ProtocolMapping {
             paramsType: [Protocol.Emulation.SetUserAgentOverrideRequest];
             returnType: void;
         };
+        /**
+         * Allows overriding the automation flag.
+         */
+        'Emulation.setAutomationOverride': {
+            paramsType: [Protocol.Emulation.SetAutomationOverrideRequest];
+            returnType: void;
+        };
         /**
          * 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
          * BeginFrameControl. Designed for use with --run-all-compositor-stages-before-draw, see also
-         * https://goo.gl/3zHXhB for more background.
+         * https://goo.gle/chrome-headless-rendering for more background.
          */
         'HeadlessExperimental.beginFrame': {
             paramsType: [Protocol.HeadlessExperimental.BeginFrameRequest?];
@@ -2624,7 +2776,7 @@ export namespace ProtocolMapping {
             returnType: Protocol.IndexedDB.RequestDataResponse;
         };
         /**
-         * Gets metadata of an object store
+         * Gets metadata of an object store.
          */
         'IndexedDB.getMetadata': {
             paramsType: [Protocol.IndexedDB.GetMetadataRequest];
@@ -2641,7 +2793,7 @@ export namespace ProtocolMapping {
          * Requests database names for given security origin.
          */
         'IndexedDB.requestDatabaseNames': {
-            paramsType: [Protocol.IndexedDB.RequestDatabaseNamesRequest];
+            paramsType: [Protocol.IndexedDB.RequestDatabaseNamesRequest?];
             returnType: Protocol.IndexedDB.RequestDatabaseNamesResponse;
         };
         /**
@@ -3000,6 +3152,7 @@ export namespace ProtocolMapping {
         /**
          * Returns all browser cookies. Depending on the backend support, will return detailed cookie
          * information in the `cookies` field.
+         * Deprecated. Use Storage.getCookies instead.
          */
         'Network.getAllCookies': {
             paramsType: [];
@@ -3436,6 +3589,9 @@ export namespace ProtocolMapping {
             paramsType: [];
             returnType: Protocol.Page.GetInstallabilityErrorsResponse;
         };
+        /**
+         * Deprecated because it's not guaranteed that the returned icon is in fact the one used for PWA installation.
+         */
         'Page.getManifestIcons': {
             paramsType: [];
             returnType: Protocol.Page.GetManifestIconsResponse;
@@ -3448,9 +3604,14 @@ export namespace ProtocolMapping {
             paramsType: [];
             returnType: Protocol.Page.GetAppIdResponse;
         };
+        'Page.getAdScriptId': {
+            paramsType: [Protocol.Page.GetAdScriptIdRequest];
+            returnType: Protocol.Page.GetAdScriptIdResponse;
+        };
         /**
-         * Returns all browser cookies. Depending on the backend support, will return detailed cookie
-         * information in the `cookies` field.
+         * 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.
          */
         'Page.getCookies': {
             paramsType: [];
@@ -3734,6 +3895,14 @@ export namespace ProtocolMapping {
             paramsType: [Protocol.Page.SetSPCTransactionModeRequest];
             returnType: void;
         };
+        /**
+         * Extensions for Custom Handlers API:
+         * https://html.spec.whatwg.org/multipage/system-state.html#rph-automation
+         */
+        'Page.setRPHRegistrationMode': {
+            paramsType: [Protocol.Page.SetRPHRegistrationModeRequest];
+            returnType: void;
+        };
         /**
          * Generates a report for testing.
          */
@@ -3757,6 +3926,19 @@ export namespace ProtocolMapping {
             paramsType: [Protocol.Page.SetInterceptFileChooserDialogRequest];
             returnType: void;
         };
+        /**
+         * Enable/disable prerendering manually.
+         * 
+         * This command is a short-term solution for https://crbug.com/1440085.
+         * See https://docs.google.com/document/d/12HVmFxYj5Jc-eJr5OmWsa2bqTJsbgGLKI6ZIyx0_wpA
+         * for more details.
+         * 
+         * TODO(https://crbug.com/1440085): Remove this once Puppeteer supports tab targets.
+         */
+        'Page.setPrerenderingAllowed': {
+            paramsType: [Protocol.Page.SetPrerenderingAllowedRequest];
+            returnType: void;
+        };
         /**
          * Disable collecting and reporting metrics.
          */
@@ -3883,6 +4065,13 @@ export namespace ProtocolMapping {
             paramsType: [Protocol.ServiceWorker.UpdateRegistrationRequest];
             returnType: void;
         };
+        /**
+         * Returns a storage key given a frame id.
+         */
+        'Storage.getStorageKeyForFrame': {
+            paramsType: [Protocol.Storage.GetStorageKeyForFrameRequest];
+            returnType: Protocol.Storage.GetStorageKeyForFrameResponse;
+        };
         /**
          * Clears storage for origin.
          */
@@ -3890,6 +4079,13 @@ export namespace ProtocolMapping {
             paramsType: [Protocol.Storage.ClearDataForOriginRequest];
             returnType: void;
         };
+        /**
+         * Clears storage for storage key.
+         */
+        'Storage.clearDataForStorageKey': {
+            paramsType: [Protocol.Storage.ClearDataForStorageKeyRequest];
+            returnType: void;
+        };
         /**
          * Returns all browser cookies.
          */
@@ -3932,6 +4128,13 @@ export namespace ProtocolMapping {
             paramsType: [Protocol.Storage.TrackCacheStorageForOriginRequest];
             returnType: void;
         };
+        /**
+         * Registers storage key to be notified when an update occurs to its cache storage list.
+         */
+        'Storage.trackCacheStorageForStorageKey': {
+            paramsType: [Protocol.Storage.TrackCacheStorageForStorageKeyRequest];
+            returnType: void;
+        };
         /**
          * Registers origin to be notified when an update occurs to its IndexedDB.
          */
@@ -3939,6 +4142,13 @@ export namespace ProtocolMapping {
             paramsType: [Protocol.Storage.TrackIndexedDBForOriginRequest];
             returnType: void;
         };
+        /**
+         * Registers storage key to be notified when an update occurs to its IndexedDB.
+         */
+        'Storage.trackIndexedDBForStorageKey': {
+            paramsType: [Protocol.Storage.TrackIndexedDBForStorageKeyRequest];
+            returnType: void;
+        };
         /**
          * Unregisters origin from receiving notifications for cache storage.
          */
@@ -3946,6 +4156,13 @@ export namespace ProtocolMapping {
             paramsType: [Protocol.Storage.UntrackCacheStorageForOriginRequest];
             returnType: void;
         };
+        /**
+         * Unregisters storage key from receiving notifications for cache storage.
+         */
+        'Storage.untrackCacheStorageForStorageKey': {
+            paramsType: [Protocol.Storage.UntrackCacheStorageForStorageKeyRequest];
+            returnType: void;
+        };
         /**
          * Unregisters origin from receiving notifications for IndexedDB.
          */
@@ -3953,6 +4170,13 @@ export namespace ProtocolMapping {
             paramsType: [Protocol.Storage.UntrackIndexedDBForOriginRequest];
             returnType: void;
         };
+        /**
+         * Unregisters storage key from receiving notifications for IndexedDB.
+         */
+        'Storage.untrackIndexedDBForStorageKey': {
+            paramsType: [Protocol.Storage.UntrackIndexedDBForStorageKeyRequest];
+            returnType: void;
+        };
         /**
          * Returns the number of stored Trust Tokens per issuer for the
          * current browsing context.
@@ -3969,6 +4193,104 @@ export namespace ProtocolMapping {
             paramsType: [Protocol.Storage.ClearTrustTokensRequest];
             returnType: Protocol.Storage.ClearTrustTokensResponse;
         };
+        /**
+         * Gets details for a named interest group.
+         */
+        'Storage.getInterestGroupDetails': {
+            paramsType: [Protocol.Storage.GetInterestGroupDetailsRequest];
+            returnType: Protocol.Storage.GetInterestGroupDetailsResponse;
+        };
+        /**
+         * Enables/Disables issuing of interestGroupAccessed events.
+         */
+        'Storage.setInterestGroupTracking': {
+            paramsType: [Protocol.Storage.SetInterestGroupTrackingRequest];
+            returnType: void;
+        };
+        /**
+         * Gets metadata for an origin's shared storage.
+         */
+        'Storage.getSharedStorageMetadata': {
+            paramsType: [Protocol.Storage.GetSharedStorageMetadataRequest];
+            returnType: Protocol.Storage.GetSharedStorageMetadataResponse;
+        };
+        /**
+         * Gets the entries in an given origin's shared storage.
+         */
+        'Storage.getSharedStorageEntries': {
+            paramsType: [Protocol.Storage.GetSharedStorageEntriesRequest];
+            returnType: Protocol.Storage.GetSharedStorageEntriesResponse;
+        };
+        /**
+         * Sets entry with `key` and `value` for a given origin's shared storage.
+         */
+        'Storage.setSharedStorageEntry': {
+            paramsType: [Protocol.Storage.SetSharedStorageEntryRequest];
+            returnType: void;
+        };
+        /**
+         * Deletes entry for `key` (if it exists) for a given origin's shared storage.
+         */
+        'Storage.deleteSharedStorageEntry': {
+            paramsType: [Protocol.Storage.DeleteSharedStorageEntryRequest];
+            returnType: void;
+        };
+        /**
+         * Clears all entries for a given origin's shared storage.
+         */
+        'Storage.clearSharedStorageEntries': {
+            paramsType: [Protocol.Storage.ClearSharedStorageEntriesRequest];
+            returnType: void;
+        };
+        /**
+         * Resets the budget for `ownerOrigin` by clearing all budget withdrawals.
+         */
+        'Storage.resetSharedStorageBudget': {
+            paramsType: [Protocol.Storage.ResetSharedStorageBudgetRequest];
+            returnType: void;
+        };
+        /**
+         * Enables/disables issuing of sharedStorageAccessed events.
+         */
+        'Storage.setSharedStorageTracking': {
+            paramsType: [Protocol.Storage.SetSharedStorageTrackingRequest];
+            returnType: void;
+        };
+        /**
+         * Set tracking for a storage key's buckets.
+         */
+        'Storage.setStorageBucketTracking': {
+            paramsType: [Protocol.Storage.SetStorageBucketTrackingRequest];
+            returnType: void;
+        };
+        /**
+         * Deletes the Storage Bucket with the given storage key and bucket name.
+         */
+        'Storage.deleteStorageBucket': {
+            paramsType: [Protocol.Storage.DeleteStorageBucketRequest];
+            returnType: void;
+        };
+        /**
+         * Deletes state for sites identified as potential bounce trackers, immediately.
+         */
+        'Storage.runBounceTrackingMitigations': {
+            paramsType: [];
+            returnType: Protocol.Storage.RunBounceTrackingMitigationsResponse;
+        };
+        /**
+         * https://wicg.github.io/attribution-reporting-api/
+         */
+        'Storage.setAttributionReportingLocalTestingMode': {
+            paramsType: [Protocol.Storage.SetAttributionReportingLocalTestingModeRequest];
+            returnType: void;
+        };
+        /**
+         * Enables/disables issuing of Attribution Reporting events.
+         */
+        'Storage.setAttributionReportingTracking': {
+            paramsType: [Protocol.Storage.SetAttributionReportingTrackingRequest];
+            returnType: void;
+        };
         /**
          * Returns information about the system.
          */
@@ -3976,6 +4298,13 @@ export namespace ProtocolMapping {
             paramsType: [];
             returnType: Protocol.SystemInfo.GetInfoResponse;
         };
+        /**
+         * Returns information about the feature state.
+         */
+        'SystemInfo.getFeatureState': {
+            paramsType: [Protocol.SystemInfo.GetFeatureStateRequest];
+            returnType: Protocol.SystemInfo.GetFeatureStateResponse;
+        };
         /**
          * Returns information about all running processes.
          */
@@ -4073,7 +4402,7 @@ export namespace ProtocolMapping {
          * Retrieves a list of available targets.
          */
         'Target.getTargets': {
-            paramsType: [];
+            paramsType: [Protocol.Target.GetTargetsRequest?];
             returnType: Protocol.Target.GetTargetsResponse;
         };
         /**
@@ -4278,7 +4607,7 @@ export namespace ProtocolMapping {
          * retrieval with a virtual authenticator.
          */
         'WebAuthn.enable': {
-            paramsType: [];
+            paramsType: [Protocol.WebAuthn.EnableRequest?];
             returnType: void;
         };
         /**
@@ -4295,6 +4624,13 @@ export namespace ProtocolMapping {
             paramsType: [Protocol.WebAuthn.AddVirtualAuthenticatorRequest];
             returnType: Protocol.WebAuthn.AddVirtualAuthenticatorResponse;
         };
+        /**
+         * Resets parameters isBogusSignature, isBadUV, isBadUP to false if they are not present.
+         */
+        'WebAuthn.setResponseOverrideBits': {
+            paramsType: [Protocol.WebAuthn.SetResponseOverrideBitsRequest];
+            returnType: void;
+        };
         /**
          * Removes the given authenticator.
          */
@@ -4368,6 +4704,66 @@ export namespace ProtocolMapping {
             paramsType: [];
             returnType: void;
         };
+        /**
+         * Enable events in this domain.
+         */
+        'DeviceAccess.enable': {
+            paramsType: [];
+            returnType: void;
+        };
+        /**
+         * Disable events in this domain.
+         */
+        'DeviceAccess.disable': {
+            paramsType: [];
+            returnType: void;
+        };
+        /**
+         * Select a device in response to a DeviceAccess.deviceRequestPrompted event.
+         */
+        'DeviceAccess.selectPrompt': {
+            paramsType: [Protocol.DeviceAccess.SelectPromptRequest];
+            returnType: void;
+        };
+        /**
+         * Cancel a prompt in response to a DeviceAccess.deviceRequestPrompted event.
+         */
+        'DeviceAccess.cancelPrompt': {
+            paramsType: [Protocol.DeviceAccess.CancelPromptRequest];
+            returnType: void;
+        };
+        'Preload.enable': {
+            paramsType: [];
+            returnType: void;
+        };
+        'Preload.disable': {
+            paramsType: [];
+            returnType: void;
+        };
+        'FedCm.enable': {
+            paramsType: [Protocol.FedCm.EnableRequest?];
+            returnType: void;
+        };
+        'FedCm.disable': {
+            paramsType: [];
+            returnType: void;
+        };
+        'FedCm.selectAccount': {
+            paramsType: [Protocol.FedCm.SelectAccountRequest];
+            returnType: void;
+        };
+        'FedCm.dismissDialog': {
+            paramsType: [Protocol.FedCm.DismissDialogRequest];
+            returnType: void;
+        };
+        /**
+         * Resets the cooldown time, if any, to allow the next FedCM call to show
+         * a dialog even if one was recently dismissed by the user.
+         */
+        'FedCm.resetCooldown': {
+            paramsType: [];
+            returnType: void;
+        };
     }
 }
 
diff --git a/types/protocol-proxy-api.d.ts b/types/protocol-proxy-api.d.ts
index d0d764b..cfc9971 100644
--- a/types/protocol-proxy-api.d.ts
+++ b/types/protocol-proxy-api.d.ts
@@ -28,6 +28,8 @@ export namespace ProtocolProxyApi {
 
         Audits: AuditsApi;
 
+        Autofill: AutofillApi;
+
         BackgroundService: BackgroundServiceApi;
 
         Browser: BrowserApi;
@@ -102,6 +104,12 @@ export namespace ProtocolProxyApi {
 
         Media: MediaApi;
 
+        DeviceAccess: DeviceAccessApi;
+
+        Preload: PreloadApi;
+
+        FedCm: FedCmApi;
+
     }
 
 
@@ -162,6 +170,16 @@ export namespace ProtocolProxyApi {
          */
         getScriptSource(params: Protocol.Debugger.GetScriptSourceRequest): Promise<Protocol.Debugger.GetScriptSourceResponse>;
 
+        disassembleWasmModule(params: Protocol.Debugger.DisassembleWasmModuleRequest): Promise<Protocol.Debugger.DisassembleWasmModuleResponse>;
+
+        /**
+         * Disassemble the next chunk of lines for the module corresponding to the
+         * stream. If disassembly is complete, this API will invalidate the streamId
+         * and return an empty chunk. Any subsequent calls for the now invalid stream
+         * will return errors.
+         */
+        nextWasmDisassemblyChunk(params: Protocol.Debugger.NextWasmDisassemblyChunkRequest): Promise<Protocol.Debugger.NextWasmDisassemblyChunkResponse>;
+
         /**
          * This command is deprecated. Use getScriptSource instead.
          */
@@ -185,7 +203,19 @@ export namespace ProtocolProxyApi {
         removeBreakpoint(params: Protocol.Debugger.RemoveBreakpointRequest): Promise<void>;
 
         /**
-         * Restarts particular call frame from the beginning.
+         * Restarts particular call frame from the beginning. The old, deprecated
+         * behavior of `restartFrame` is to stay paused and allow further CDP commands
+         * after a restart was scheduled. This can cause problems with restarting, so
+         * we now continue execution immediatly after it has been scheduled until we
+         * reach the beginning of the restarted frame.
+         * 
+         * To stay back-wards compatible, `restartFrame` now expects a `mode`
+         * parameter to be present. If the `mode` parameter is missing, `restartFrame`
+         * errors out.
+         * 
+         * The various return values are deprecated and `callFrames` is always empty.
+         * Use the call frames from the `Debugger#paused` events instead, that fires
+         * once V8 pauses at the beginning of the restarted function.
          */
         restartFrame(params: Protocol.Debugger.RestartFrameRequest): Promise<Protocol.Debugger.RestartFrameResponse>;
 
@@ -250,8 +280,8 @@ export namespace ProtocolProxyApi {
         setBreakpointsActive(params: Protocol.Debugger.SetBreakpointsActiveRequest): Promise<void>;
 
         /**
-         * 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`.
          */
         setPauseOnExceptions(params: Protocol.Debugger.SetPauseOnExceptionsRequest): Promise<void>;
 
@@ -262,6 +292,12 @@ export namespace ProtocolProxyApi {
 
         /**
          * Edits JavaScript source live.
+         * 
+         * In general, functions that are currently on the stack can not be edited with
+         * a single exception: If the edited function is the top-most stack frame and
+         * that is the only activation of that function on the stack. In this case
+         * the live edit will be successful and a `Debugger.restartFrame` for the
+         * top-most function is automatically triggered.
          */
         setScriptSource(params: Protocol.Debugger.SetScriptSourceRequest): Promise<Protocol.Debugger.SetScriptSourceResponse>;
 
@@ -393,11 +429,6 @@ export namespace ProtocolProxyApi {
          */
         startPreciseCoverage(params: Protocol.Profiler.StartPreciseCoverageRequest): Promise<Protocol.Profiler.StartPreciseCoverageResponse>;
 
-        /**
-         * Enable type profile.
-         */
-        startTypeProfile(): Promise<void>;
-
         stop(): Promise<Protocol.Profiler.StopResponse>;
 
         /**
@@ -406,22 +437,12 @@ export namespace ProtocolProxyApi {
          */
         stopPreciseCoverage(): Promise<void>;
 
-        /**
-         * Disable type profile. Disabling releases type profile data collected so far.
-         */
-        stopTypeProfile(): Promise<void>;
-
         /**
          * Collect coverage data for the current isolate, and resets execution counters. Precise code
          * coverage needs to have started.
          */
         takePreciseCoverage(): Promise<Protocol.Profiler.TakePreciseCoverageResponse>;
 
-        /**
-         * Collect type profile.
-         */
-        takeTypeProfile(): Promise<Protocol.Profiler.TakeTypeProfileResponse>;
-
         on(event: 'consoleProfileFinished', listener: (params: Protocol.Profiler.ConsoleProfileFinishedEvent) => void): void;
 
         /**
@@ -553,6 +574,15 @@ export namespace ProtocolProxyApi {
          */
         removeBinding(params: Protocol.Runtime.RemoveBindingRequest): Promise<void>;
 
+        /**
+         * This method tries to lookup and populate exception details for a
+         * JavaScript Error object.
+         * Note that the stackTrace portion of the resulting exceptionDetails will
+         * only be populated if the Runtime domain was enabled at the time when the
+         * Error was thrown.
+         */
+        getExceptionDetails(params: Protocol.Runtime.GetExceptionDetailsRequest): Promise<Protocol.Runtime.GetExceptionDetailsResponse>;
+
         /**
          * Notification is issued every time when binding is called.
          */
@@ -758,10 +788,30 @@ export namespace ProtocolProxyApi {
          */
         checkContrast(params: Protocol.Audits.CheckContrastRequest): Promise<void>;
 
+        /**
+         * Runs the form issues check for the target page. Found issues are reported
+         * using Audits.issueAdded event.
+         */
+        checkFormsIssues(): Promise<Protocol.Audits.CheckFormsIssuesResponse>;
+
         on(event: 'issueAdded', listener: (params: Protocol.Audits.IssueAddedEvent) => void): void;
 
     }
 
+    export interface AutofillApi {
+        /**
+         * Trigger autofill on a form identified by the fieldId.
+         * If the field and related form cannot be autofilled, returns an error.
+         */
+        trigger(params: Protocol.Autofill.TriggerRequest): Promise<void>;
+
+        /**
+         * Set addresses so that developers can verify their forms implementation.
+         */
+        setAddresses(params: Protocol.Autofill.SetAddressesRequest): Promise<void>;
+
+    }
+
     export interface BackgroundServiceApi {
         /**
          * Enables event updates for the service.
@@ -883,6 +933,12 @@ export namespace ProtocolProxyApi {
          */
         executeBrowserCommand(params: Protocol.Browser.ExecuteBrowserCommandRequest): Promise<void>;
 
+        /**
+         * Allows a site to use privacy sandbox features that require enrollment
+         * without the site actually being enrolled. Only supported on page targets.
+         */
+        addPrivacySandboxEnrollmentOverride(params: Protocol.Browser.AddPrivacySandboxEnrollmentOverrideRequest): Promise<void>;
+
         /**
          * Fired when page is about to start a download.
          */
@@ -963,6 +1019,14 @@ export namespace ProtocolProxyApi {
          */
         getStyleSheetText(params: Protocol.CSS.GetStyleSheetTextRequest): Promise<Protocol.CSS.GetStyleSheetTextResponse>;
 
+        /**
+         * Returns all layers parsed by the rendering engine for the tree scope of a node.
+         * Given a DOM element identified by nodeId, getLayersForNode returns the root
+         * layer for the nearest ancestor document or shadow root. The layer root contains
+         * the full layer tree for the tree scope and their ordering.
+         */
+        getLayersForNode(params: Protocol.CSS.GetLayersForNodeRequest): Promise<Protocol.CSS.GetLayersForNodeResponse>;
+
         /**
          * Starts tracking the given computed styles for updates. The specified array of properties
          * replaces the one previously specified. Pass empty array to disable tracking.
@@ -999,6 +1063,16 @@ export namespace ProtocolProxyApi {
          */
         setContainerQueryText(params: Protocol.CSS.SetContainerQueryTextRequest): Promise<Protocol.CSS.SetContainerQueryTextResponse>;
 
+        /**
+         * Modifies the expression of a supports at-rule.
+         */
+        setSupportsText(params: Protocol.CSS.SetSupportsTextRequest): Promise<Protocol.CSS.SetSupportsTextResponse>;
+
+        /**
+         * Modifies the expression of a scope at-rule.
+         */
+        setScopeText(params: Protocol.CSS.SetScopeTextRequest): Promise<Protocol.CSS.SetScopeTextResponse>;
+
         /**
          * Modifies the rule selector.
          */
@@ -1021,13 +1095,13 @@ export namespace ProtocolProxyApi {
 
         /**
          * Stop tracking rule usage and return the list of rules that were used since last call to
-         * `takeCoverageDelta` (or since start of coverage instrumentation)
+         * `takeCoverageDelta` (or since start of coverage instrumentation).
          */
         stopRuleUsageTracking(): Promise<Protocol.CSS.StopRuleUsageTrackingResponse>;
 
         /**
          * Obtain list of rules that became used since last call to this method (or since start of coverage
-         * instrumentation)
+         * instrumentation).
          */
         takeCoverageDelta(): Promise<Protocol.CSS.TakeCoverageDeltaResponse>;
 
@@ -1038,7 +1112,7 @@ export namespace ProtocolProxyApi {
 
         /**
          * Fires whenever a web font is updated.  A non-empty font parameter indicates a successfully loaded
-         * web font
+         * web font.
          */
         on(event: 'fontsUpdated', listener: (params: Protocol.CSS.FontsUpdatedEvent) => void): void;
 
@@ -1182,7 +1256,7 @@ export namespace ProtocolProxyApi {
         /**
          * Enables DOM agent for the given page.
          */
-        enable(): Promise<void>;
+        enable(params: Protocol.DOM.EnableRequest): Promise<void>;
 
         /**
          * Focuses the given element.
@@ -1207,6 +1281,7 @@ export namespace ProtocolProxyApi {
 
         /**
          * Returns the root DOM node (and optionally the subtree) to the caller.
+         * Implicitly enables the DOM domain events for the current target.
          */
         getDocument(params: Protocol.DOM.GetDocumentRequest): Promise<Protocol.DOM.GetDocumentResponse>;
 
@@ -1295,6 +1370,13 @@ export namespace ProtocolProxyApi {
          */
         querySelectorAll(params: Protocol.DOM.QuerySelectorAllRequest): Promise<Protocol.DOM.QuerySelectorAllResponse>;
 
+        /**
+         * Returns NodeIds of current top layer elements.
+         * Top layer is rendered closest to the user within a viewport, therefore its elements always
+         * appear on top of all other content.
+         */
+        getTopLayerElements(): Promise<Protocol.DOM.GetTopLayerElementsResponse>;
+
         /**
          * Re-does the last undone action.
          */
@@ -1393,9 +1475,10 @@ export namespace ProtocolProxyApi {
         getFrameOwner(params: Protocol.DOM.GetFrameOwnerRequest): Promise<Protocol.DOM.GetFrameOwnerResponse>;
 
         /**
-         * 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.
          */
         getContainerForNode(params: Protocol.DOM.GetContainerForNodeRequest): Promise<Protocol.DOM.GetContainerForNodeResponse>;
 
@@ -1455,6 +1538,11 @@ export namespace ProtocolProxyApi {
          */
         on(event: 'pseudoElementAdded', listener: (params: Protocol.DOM.PseudoElementAddedEvent) => void): void;
 
+        /**
+         * Called when top layer elements are changed.
+         */
+        on(event: 'topLayerElementsUpdated', listener: () => void): void;
+
         /**
          * Called when a pseudo element is removed from an element.
          */
@@ -1760,11 +1848,18 @@ export namespace ProtocolProxyApi {
 
         setDisabledImageTypes(params: Protocol.Emulation.SetDisabledImageTypesRequest): Promise<void>;
 
+        setHardwareConcurrencyOverride(params: Protocol.Emulation.SetHardwareConcurrencyOverrideRequest): Promise<void>;
+
         /**
          * Allows overriding user agent with the given string.
          */
         setUserAgentOverride(params: Protocol.Emulation.SetUserAgentOverrideRequest): Promise<void>;
 
+        /**
+         * Allows overriding the automation flag.
+         */
+        setAutomationOverride(params: Protocol.Emulation.SetAutomationOverrideRequest): Promise<void>;
+
         /**
          * Notification sent after the virtual time budget for the current VirtualTimePolicy has run out.
          */
@@ -1777,7 +1872,7 @@ export namespace ProtocolProxyApi {
          * 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
          * BeginFrameControl. Designed for use with --run-all-compositor-stages-before-draw, see also
-         * https://goo.gl/3zHXhB for more background.
+         * https://goo.gle/chrome-headless-rendering for more background.
          */
         beginFrame(params: Protocol.HeadlessExperimental.BeginFrameRequest): Promise<Protocol.HeadlessExperimental.BeginFrameResponse>;
 
@@ -1791,13 +1886,6 @@ export namespace ProtocolProxyApi {
          */
         enable(): Promise<void>;
 
-        /**
-         * 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.
-         */
-        on(event: 'needsBeginFramesChanged', listener: (params: Protocol.HeadlessExperimental.NeedsBeginFramesChangedEvent) => void): void;
-
     }
 
     export interface IOApi {
@@ -1850,7 +1938,7 @@ export namespace ProtocolProxyApi {
         requestData(params: Protocol.IndexedDB.RequestDataRequest): Promise<Protocol.IndexedDB.RequestDataResponse>;
 
         /**
-         * Gets metadata of an object store
+         * Gets metadata of an object store.
          */
         getMetadata(params: Protocol.IndexedDB.GetMetadataRequest): Promise<Protocol.IndexedDB.GetMetadataResponse>;
 
@@ -2168,6 +2256,7 @@ export namespace ProtocolProxyApi {
         /**
          * Returns all browser cookies. Depending on the backend support, will return detailed cookie
          * information in the `cookies` field.
+         * Deprecated. Use Storage.getCookies instead.
          */
         getAllCookies(): Promise<Protocol.Network.GetAllCookiesResponse>;
 
@@ -2662,6 +2751,9 @@ export namespace ProtocolProxyApi {
 
         getInstallabilityErrors(): Promise<Protocol.Page.GetInstallabilityErrorsResponse>;
 
+        /**
+         * Deprecated because it's not guaranteed that the returned icon is in fact the one used for PWA installation.
+         */
         getManifestIcons(): Promise<Protocol.Page.GetManifestIconsResponse>;
 
         /**
@@ -2670,9 +2762,12 @@ export namespace ProtocolProxyApi {
          */
         getAppId(): Promise<Protocol.Page.GetAppIdResponse>;
 
+        getAdScriptId(params: Protocol.Page.GetAdScriptIdRequest): Promise<Protocol.Page.GetAdScriptIdResponse>;
+
         /**
-         * Returns all browser cookies. Depending on the backend support, will return detailed cookie
-         * information in the `cookies` field.
+         * 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.
          */
         getCookies(): Promise<Protocol.Page.GetCookiesResponse>;
 
@@ -2878,6 +2973,12 @@ export namespace ProtocolProxyApi {
          */
         setSPCTransactionMode(params: Protocol.Page.SetSPCTransactionModeRequest): Promise<void>;
 
+        /**
+         * Extensions for Custom Handlers API:
+         * https://html.spec.whatwg.org/multipage/system-state.html#rph-automation
+         */
+        setRPHRegistrationMode(params: Protocol.Page.SetRPHRegistrationModeRequest): Promise<void>;
+
         /**
          * Generates a report for testing.
          */
@@ -2895,6 +2996,17 @@ export namespace ProtocolProxyApi {
          */
         setInterceptFileChooserDialog(params: Protocol.Page.SetInterceptFileChooserDialogRequest): Promise<void>;
 
+        /**
+         * Enable/disable prerendering manually.
+         * 
+         * This command is a short-term solution for https://crbug.com/1440085.
+         * See https://docs.google.com/document/d/12HVmFxYj5Jc-eJr5OmWsa2bqTJsbgGLKI6ZIyx0_wpA
+         * for more details.
+         * 
+         * TODO(https://crbug.com/1440085): Remove this once Puppeteer supports tab targets.
+         */
+        setPrerenderingAllowed(params: Protocol.Page.SetPrerenderingAllowedRequest): Promise<void>;
+
         on(event: 'domContentEventFired', listener: (params: Protocol.Page.DomContentEventFiredEvent) => void): void;
 
         /**
@@ -3155,11 +3267,21 @@ export namespace ProtocolProxyApi {
     }
 
     export interface StorageApi {
+        /**
+         * Returns a storage key given a frame id.
+         */
+        getStorageKeyForFrame(params: Protocol.Storage.GetStorageKeyForFrameRequest): Promise<Protocol.Storage.GetStorageKeyForFrameResponse>;
+
         /**
          * Clears storage for origin.
          */
         clearDataForOrigin(params: Protocol.Storage.ClearDataForOriginRequest): Promise<void>;
 
+        /**
+         * Clears storage for storage key.
+         */
+        clearDataForStorageKey(params: Protocol.Storage.ClearDataForStorageKeyRequest): Promise<void>;
+
         /**
          * Returns all browser cookies.
          */
@@ -3190,21 +3312,41 @@ export namespace ProtocolProxyApi {
          */
         trackCacheStorageForOrigin(params: Protocol.Storage.TrackCacheStorageForOriginRequest): Promise<void>;
 
+        /**
+         * Registers storage key to be notified when an update occurs to its cache storage list.
+         */
+        trackCacheStorageForStorageKey(params: Protocol.Storage.TrackCacheStorageForStorageKeyRequest): Promise<void>;
+
         /**
          * Registers origin to be notified when an update occurs to its IndexedDB.
          */
         trackIndexedDBForOrigin(params: Protocol.Storage.TrackIndexedDBForOriginRequest): Promise<void>;
 
+        /**
+         * Registers storage key to be notified when an update occurs to its IndexedDB.
+         */
+        trackIndexedDBForStorageKey(params: Protocol.Storage.TrackIndexedDBForStorageKeyRequest): Promise<void>;
+
         /**
          * Unregisters origin from receiving notifications for cache storage.
          */
         untrackCacheStorageForOrigin(params: Protocol.Storage.UntrackCacheStorageForOriginRequest): Promise<void>;
 
+        /**
+         * Unregisters storage key from receiving notifications for cache storage.
+         */
+        untrackCacheStorageForStorageKey(params: Protocol.Storage.UntrackCacheStorageForStorageKeyRequest): Promise<void>;
+
         /**
          * Unregisters origin from receiving notifications for IndexedDB.
          */
         untrackIndexedDBForOrigin(params: Protocol.Storage.UntrackIndexedDBForOriginRequest): Promise<void>;
 
+        /**
+         * Unregisters storage key from receiving notifications for IndexedDB.
+         */
+        untrackIndexedDBForStorageKey(params: Protocol.Storage.UntrackIndexedDBForStorageKeyRequest): Promise<void>;
+
         /**
          * Returns the number of stored Trust Tokens per issuer for the
          * current browsing context.
@@ -3217,6 +3359,76 @@ export namespace ProtocolProxyApi {
          */
         clearTrustTokens(params: Protocol.Storage.ClearTrustTokensRequest): Promise<Protocol.Storage.ClearTrustTokensResponse>;
 
+        /**
+         * Gets details for a named interest group.
+         */
+        getInterestGroupDetails(params: Protocol.Storage.GetInterestGroupDetailsRequest): Promise<Protocol.Storage.GetInterestGroupDetailsResponse>;
+
+        /**
+         * Enables/Disables issuing of interestGroupAccessed events.
+         */
+        setInterestGroupTracking(params: Protocol.Storage.SetInterestGroupTrackingRequest): Promise<void>;
+
+        /**
+         * Gets metadata for an origin's shared storage.
+         */
+        getSharedStorageMetadata(params: Protocol.Storage.GetSharedStorageMetadataRequest): Promise<Protocol.Storage.GetSharedStorageMetadataResponse>;
+
+        /**
+         * Gets the entries in an given origin's shared storage.
+         */
+        getSharedStorageEntries(params: Protocol.Storage.GetSharedStorageEntriesRequest): Promise<Protocol.Storage.GetSharedStorageEntriesResponse>;
+
+        /**
+         * Sets entry with `key` and `value` for a given origin's shared storage.
+         */
+        setSharedStorageEntry(params: Protocol.Storage.SetSharedStorageEntryRequest): Promise<void>;
+
+        /**
+         * Deletes entry for `key` (if it exists) for a given origin's shared storage.
+         */
+        deleteSharedStorageEntry(params: Protocol.Storage.DeleteSharedStorageEntryRequest): Promise<void>;
+
+        /**
+         * Clears all entries for a given origin's shared storage.
+         */
+        clearSharedStorageEntries(params: Protocol.Storage.ClearSharedStorageEntriesRequest): Promise<void>;
+
+        /**
+         * Resets the budget for `ownerOrigin` by clearing all budget withdrawals.
+         */
+        resetSharedStorageBudget(params: Protocol.Storage.ResetSharedStorageBudgetRequest): Promise<void>;
+
+        /**
+         * Enables/disables issuing of sharedStorageAccessed events.
+         */
+        setSharedStorageTracking(params: Protocol.Storage.SetSharedStorageTrackingRequest): Promise<void>;
+
+        /**
+         * Set tracking for a storage key's buckets.
+         */
+        setStorageBucketTracking(params: Protocol.Storage.SetStorageBucketTrackingRequest): Promise<void>;
+
+        /**
+         * Deletes the Storage Bucket with the given storage key and bucket name.
+         */
+        deleteStorageBucket(params: Protocol.Storage.DeleteStorageBucketRequest): Promise<void>;
+
+        /**
+         * Deletes state for sites identified as potential bounce trackers, immediately.
+         */
+        runBounceTrackingMitigations(): Promise<Protocol.Storage.RunBounceTrackingMitigationsResponse>;
+
+        /**
+         * https://wicg.github.io/attribution-reporting-api/
+         */
+        setAttributionReportingLocalTestingMode(params: Protocol.Storage.SetAttributionReportingLocalTestingModeRequest): Promise<void>;
+
+        /**
+         * Enables/disables issuing of Attribution Reporting events.
+         */
+        setAttributionReportingTracking(params: Protocol.Storage.SetAttributionReportingTrackingRequest): Promise<void>;
+
         /**
          * A cache's contents have been modified.
          */
@@ -3237,6 +3449,27 @@ export namespace ProtocolProxyApi {
          */
         on(event: 'indexedDBListUpdated', listener: (params: Protocol.Storage.IndexedDBListUpdatedEvent) => void): void;
 
+        /**
+         * One of the interest groups was accessed by the associated page.
+         */
+        on(event: 'interestGroupAccessed', listener: (params: Protocol.Storage.InterestGroupAccessedEvent) => void): void;
+
+        /**
+         * Shared storage was accessed by the associated page.
+         * The following parameters are included in all events.
+         */
+        on(event: 'sharedStorageAccessed', listener: (params: Protocol.Storage.SharedStorageAccessedEvent) => void): void;
+
+        on(event: 'storageBucketCreatedOrUpdated', listener: (params: Protocol.Storage.StorageBucketCreatedOrUpdatedEvent) => void): void;
+
+        on(event: 'storageBucketDeleted', listener: (params: Protocol.Storage.StorageBucketDeletedEvent) => void): void;
+
+        /**
+         * TODO(crbug.com/1458532): Add other Attribution Reporting events, e.g.
+         * trigger registration.
+         */
+        on(event: 'attributionReportingSourceRegistered', listener: (params: Protocol.Storage.AttributionReportingSourceRegisteredEvent) => void): void;
+
     }
 
     export interface SystemInfoApi {
@@ -3245,6 +3478,11 @@ export namespace ProtocolProxyApi {
          */
         getInfo(): Promise<Protocol.SystemInfo.GetInfoResponse>;
 
+        /**
+         * Returns information about the feature state.
+         */
+        getFeatureState(params: Protocol.SystemInfo.GetFeatureStateRequest): Promise<Protocol.SystemInfo.GetFeatureStateResponse>;
+
         /**
          * Returns information about all running processes.
          */
@@ -3320,7 +3558,7 @@ export namespace ProtocolProxyApi {
         /**
          * Retrieves a list of available targets.
          */
-        getTargets(): Promise<Protocol.Target.GetTargetsResponse>;
+        getTargets(params: Protocol.Target.GetTargetsRequest): Promise<Protocol.Target.GetTargetsResponse>;
 
         /**
          * Sends protocol message over session with given id.
@@ -3446,8 +3684,8 @@ export namespace ProtocolProxyApi {
         on(event: 'bufferUsage', listener: (params: Protocol.Tracing.BufferUsageEvent) => void): void;
 
         /**
-         * 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.
          */
         on(event: 'dataCollected', listener: (params: Protocol.Tracing.DataCollectedEvent) => void): void;
 
@@ -3628,7 +3866,7 @@ export namespace ProtocolProxyApi {
          * Enable the WebAuthn domain and start intercepting credential storage and
          * retrieval with a virtual authenticator.
          */
-        enable(): Promise<void>;
+        enable(params: Protocol.WebAuthn.EnableRequest): Promise<void>;
 
         /**
          * Disable the WebAuthn domain.
@@ -3640,6 +3878,11 @@ export namespace ProtocolProxyApi {
          */
         addVirtualAuthenticator(params: Protocol.WebAuthn.AddVirtualAuthenticatorRequest): Promise<Protocol.WebAuthn.AddVirtualAuthenticatorResponse>;
 
+        /**
+         * Resets parameters isBogusSignature, isBadUV, isBadUP to false if they are not present.
+         */
+        setResponseOverrideBits(params: Protocol.WebAuthn.SetResponseOverrideBitsRequest): Promise<void>;
+
         /**
          * Removes the given authenticator.
          */
@@ -3683,6 +3926,16 @@ export namespace ProtocolProxyApi {
          */
         setAutomaticPresenceSimulation(params: Protocol.WebAuthn.SetAutomaticPresenceSimulationRequest): Promise<void>;
 
+        /**
+         * Triggered when a credential is added to an authenticator.
+         */
+        on(event: 'credentialAdded', listener: (params: Protocol.WebAuthn.CredentialAddedEvent) => void): void;
+
+        /**
+         * Triggered when a credential is used in a webauthn assertion.
+         */
+        on(event: 'credentialAsserted', listener: (params: Protocol.WebAuthn.CredentialAssertedEvent) => void): void;
+
     }
 
     export interface MediaApi {
@@ -3726,6 +3979,93 @@ export namespace ProtocolProxyApi {
         on(event: 'playersCreated', listener: (params: Protocol.Media.PlayersCreatedEvent) => void): void;
 
     }
+
+    export interface DeviceAccessApi {
+        /**
+         * Enable events in this domain.
+         */
+        enable(): Promise<void>;
+
+        /**
+         * Disable events in this domain.
+         */
+        disable(): Promise<void>;
+
+        /**
+         * Select a device in response to a DeviceAccess.deviceRequestPrompted event.
+         */
+        selectPrompt(params: Protocol.DeviceAccess.SelectPromptRequest): Promise<void>;
+
+        /**
+         * Cancel a prompt in response to a DeviceAccess.deviceRequestPrompted event.
+         */
+        cancelPrompt(params: Protocol.DeviceAccess.CancelPromptRequest): Promise<void>;
+
+        /**
+         * A device request opened a user prompt to select a device. Respond with the
+         * selectPrompt or cancelPrompt command.
+         */
+        on(event: 'deviceRequestPrompted', listener: (params: Protocol.DeviceAccess.DeviceRequestPromptedEvent) => void): void;
+
+    }
+
+    export interface PreloadApi {
+        enable(): Promise<void>;
+
+        disable(): Promise<void>;
+
+        /**
+         * Upsert. Currently, it is only emitted when a rule set added.
+         */
+        on(event: 'ruleSetUpdated', listener: (params: Protocol.Preload.RuleSetUpdatedEvent) => void): void;
+
+        on(event: 'ruleSetRemoved', listener: (params: Protocol.Preload.RuleSetRemovedEvent) => void): void;
+
+        /**
+         * Fired when a prerender attempt is completed.
+         */
+        on(event: 'prerenderAttemptCompleted', listener: (params: Protocol.Preload.PrerenderAttemptCompletedEvent) => void): void;
+
+        /**
+         * Fired when a preload enabled state is updated.
+         */
+        on(event: 'preloadEnabledStateUpdated', listener: (params: Protocol.Preload.PreloadEnabledStateUpdatedEvent) => void): void;
+
+        /**
+         * Fired when a prefetch attempt is updated.
+         */
+        on(event: 'prefetchStatusUpdated', listener: (params: Protocol.Preload.PrefetchStatusUpdatedEvent) => void): void;
+
+        /**
+         * Fired when a prerender attempt is updated.
+         */
+        on(event: 'prerenderStatusUpdated', listener: (params: Protocol.Preload.PrerenderStatusUpdatedEvent) => void): void;
+
+        /**
+         * Send a list of sources for all preloading attempts in a document.
+         */
+        on(event: 'preloadingAttemptSourcesUpdated', listener: (params: Protocol.Preload.PreloadingAttemptSourcesUpdatedEvent) => void): void;
+
+    }
+
+    export interface FedCmApi {
+        enable(params: Protocol.FedCm.EnableRequest): Promise<void>;
+
+        disable(): Promise<void>;
+
+        selectAccount(params: Protocol.FedCm.SelectAccountRequest): Promise<void>;
+
+        dismissDialog(params: Protocol.FedCm.DismissDialogRequest): Promise<void>;
+
+        /**
+         * Resets the cooldown time, if any, to allow the next FedCM call to show
+         * a dialog even if one was recently dismissed by the user.
+         */
+        resetCooldown(): Promise<void>;
+
+        on(event: 'dialogShown', listener: (params: Protocol.FedCm.DialogShownEvent) => void): void;
+
+    }
 }
 
 export default ProtocolProxyApi;
diff --git a/types/protocol.d.ts b/types/protocol.d.ts
index b3441ba..b3a27f1 100644
--- a/types/protocol.d.ts
+++ b/types/protocol.d.ts
@@ -151,6 +151,8 @@ export namespace Protocol {
             location: Location;
             /**
              * JavaScript script name or url.
+             * Deprecated in favor of using the `location.scriptId` to resolve the URL via a previously
+             * sent `Debugger.scriptParsed` event.
              */
             url: string;
             /**
@@ -165,6 +167,13 @@ export namespace Protocol {
              * The value being returned, if the function is at return point.
              */
             returnValue?: Runtime.RemoteObject;
+            /**
+             * Valid only while the VM is paused and indicates whether this frame
+             * can be restarted or not. Note that a `true` value here does not
+             * guarantee that Debugger#restartFrame with this CallFrameId will be
+             * successful, but it is very likely.
+             */
+            canBeRestarted?: boolean;
         }
 
         export const enum ScopeType {
@@ -244,6 +253,17 @@ export namespace Protocol {
             type?: ('debuggerStatement' | 'call' | 'return');
         }
 
+        export interface WasmDisassemblyChunk {
+            /**
+             * The next chunk of disassembled lines.
+             */
+            lines: string[];
+            /**
+             * The bytecode offsets describing the start of each line.
+             */
+            bytecodeOffsets: integer[];
+        }
+
         /**
          * Enum of possible script languages.
          */
@@ -395,6 +415,45 @@ export namespace Protocol {
             bytecode?: string;
         }
 
+        export interface DisassembleWasmModuleRequest {
+            /**
+             * Id of the script to disassemble
+             */
+            scriptId: Runtime.ScriptId;
+        }
+
+        export interface DisassembleWasmModuleResponse {
+            /**
+             * For large modules, return a stream from which additional chunks of
+             * disassembly can be read successively.
+             */
+            streamId?: string;
+            /**
+             * The total number of lines in the disassembly text.
+             */
+            totalNumberOfLines: integer;
+            /**
+             * The offsets of all function bodies, in the format [start1, end1,
+             * start2, end2, ...] where all ends are exclusive.
+             */
+            functionBodyOffsets: integer[];
+            /**
+             * The first chunk of disassembly.
+             */
+            chunk: WasmDisassemblyChunk;
+        }
+
+        export interface NextWasmDisassemblyChunkRequest {
+            streamId: string;
+        }
+
+        export interface NextWasmDisassemblyChunkResponse {
+            /**
+             * The next chunk of disassembly.
+             */
+            chunk: WasmDisassemblyChunk;
+        }
+
         export interface GetWasmBytecodeRequest {
             /**
              * Id of the Wasm script to get source for.
@@ -428,11 +487,20 @@ export namespace Protocol {
             breakpointId: BreakpointId;
         }
 
+        export const enum RestartFrameRequestMode {
+            StepInto = 'StepInto',
+        }
+
         export interface RestartFrameRequest {
             /**
              * Call frame identifier to evaluate on.
              */
             callFrameId: CallFrameId;
+            /**
+             * The `mode` parameter must be present and set to 'StepInto', otherwise
+             * `restartFrame` will error out. (RestartFrameRequestMode enum)
+             */
+            mode?: ('StepInto');
         }
 
         export interface RestartFrameResponse {
@@ -620,6 +688,7 @@ export namespace Protocol {
 
         export const enum SetPauseOnExceptionsRequestState {
             None = 'none',
+            Caught = 'caught',
             Uncaught = 'uncaught',
             All = 'all',
         }
@@ -628,7 +697,7 @@ export namespace Protocol {
             /**
              * Pause on exceptions mode. (SetPauseOnExceptionsRequestState enum)
              */
-            state: ('none' | 'uncaught' | 'all');
+            state: ('none' | 'caught' | 'uncaught' | 'all');
         }
 
         export interface SetReturnValueRequest {
@@ -638,6 +707,14 @@ export namespace Protocol {
             newValue: Runtime.CallArgument;
         }
 
+        export const enum SetScriptSourceResponseStatus {
+            Ok = 'Ok',
+            CompileError = 'CompileError',
+            BlockedByActiveGenerator = 'BlockedByActiveGenerator',
+            BlockedByActiveFunction = 'BlockedByActiveFunction',
+            BlockedByTopLevelEsModuleChange = 'BlockedByTopLevelEsModuleChange',
+        }
+
         export interface SetScriptSourceRequest {
             /**
              * Id of the script to edit.
@@ -652,6 +729,11 @@ export namespace Protocol {
              * description without actually modifying the code.
              */
             dryRun?: boolean;
+            /**
+             * If true, then `scriptSource` is allowed to change the function on top of the stack
+             * as long as the top-most stack frame is the only activation of that function.
+             */
+            allowTopFrameEditing?: boolean;
         }
 
         export interface SetScriptSourceResponse {
@@ -672,7 +754,13 @@ export namespace Protocol {
              */
             asyncStackTraceId?: Runtime.StackTraceId;
             /**
-             * Exception details if any.
+             * Whether the operation was successful or not. Only `Ok` denotes a
+             * successful live edit while the other enum variants denote why
+             * the live edit failed. (SetScriptSourceResponseStatus enum)
+             */
+            status: ('Ok' | 'CompileError' | 'BlockedByActiveGenerator' | 'BlockedByActiveFunction' | 'BlockedByTopLevelEsModuleChange');
+            /**
+             * Exception details if any. Only present when `status` is `CompileError`.
              */
             exceptionDetails?: Runtime.ExceptionDetails;
         }
@@ -750,6 +838,7 @@ export namespace Protocol {
             Other = 'other',
             PromiseRejection = 'promiseRejection',
             XHR = 'XHR',
+            Step = 'step',
         }
 
         /**
@@ -763,7 +852,7 @@ export namespace Protocol {
             /**
              * Pause reason. (PausedEventReason enum)
              */
-            reason: ('ambiguous' | 'assert' | 'CSPViolation' | 'debugCommand' | 'DOM' | 'EventListener' | 'exception' | 'instrumentation' | 'OOM' | 'other' | 'promiseRejection' | 'XHR');
+            reason: ('ambiguous' | 'assert' | 'CSPViolation' | 'debugCommand' | 'DOM' | 'EventListener' | 'exception' | 'instrumentation' | 'OOM' | 'other' | 'promiseRejection' | 'XHR' | 'step');
             /**
              * Object containing break-specific auxiliary properties.
              */
@@ -819,11 +908,11 @@ export namespace Protocol {
              */
             executionContextId: Runtime.ExecutionContextId;
             /**
-             * Content hash of the script.
+             * Content hash of the script, SHA-256.
              */
             hash: string;
             /**
-             * Embedder-specific auxiliary data.
+             * Embedder-specific auxiliary data likely matching {isDefault: boolean, type: 'default'|'isolated'|'worker', frameId: string}
              */
             executionContextAuxData?: any;
             /**
@@ -894,11 +983,11 @@ export namespace Protocol {
              */
             executionContextId: Runtime.ExecutionContextId;
             /**
-             * Content hash of the script.
+             * Content hash of the script, SHA-256.
              */
             hash: string;
             /**
-             * Embedder-specific auxiliary data.
+             * Embedder-specific auxiliary data likely matching {isDefault: boolean, type: 'default'|'isolated'|'worker', frameId: string}
              */
             executionContextAuxData?: any;
             /**
@@ -1049,6 +1138,26 @@ export namespace Protocol {
              * default value is 32768 bytes.
              */
             samplingInterval?: number;
+            /**
+             * 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.
+             */
+            includeObjectsCollectedByMajorGC?: boolean;
+            /**
+             * 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.
+             */
+            includeObjectsCollectedByMinorGC?: boolean;
         }
 
         export interface StartTrackingHeapObjectsRequest {
@@ -1068,11 +1177,18 @@ export namespace Protocol {
              * when the tracking is stopped.
              */
             reportProgress?: boolean;
+            /**
+             * Deprecated in favor of `exposeInternals`.
+             */
             treatGlobalObjectsAsRoots?: boolean;
             /**
              * If true, numerical values are included in the snapshot
              */
             captureNumericValue?: boolean;
+            /**
+             * If true, exposes internals of the snapshot.
+             */
+            exposeInternals?: boolean;
         }
 
         export interface TakeHeapSnapshotRequest {
@@ -1081,13 +1197,18 @@ export namespace Protocol {
              */
             reportProgress?: boolean;
             /**
-             * If true, a raw snapshot without artificial roots will be generated
+             * If true, a raw snapshot without artificial roots will be generated.
+             * Deprecated in favor of `exposeInternals`.
              */
             treatGlobalObjectsAsRoots?: boolean;
             /**
              * If true, numerical values are included in the snapshot
              */
             captureNumericValue?: boolean;
+            /**
+             * If true, exposes internals of the snapshot.
+             */
+            exposeInternals?: boolean;
         }
 
         export interface AddHeapSnapshotChunkEvent {
@@ -1251,48 +1372,6 @@ export namespace Protocol {
             functions: FunctionCoverage[];
         }
 
-        /**
-         * Describes a type collected during runtime.
-         */
-        export interface TypeObject {
-            /**
-             * Name of a type collected with type profiling.
-             */
-            name: string;
-        }
-
-        /**
-         * Source offset and types for a parameter or return value.
-         */
-        export interface TypeProfileEntry {
-            /**
-             * Source offset of the parameter or end of function for return values.
-             */
-            offset: integer;
-            /**
-             * The types for this parameter or return value.
-             */
-            types: TypeObject[];
-        }
-
-        /**
-         * Type profile data collected during runtime for a JavaScript script.
-         */
-        export interface ScriptTypeProfile {
-            /**
-             * JavaScript script id.
-             */
-            scriptId: Runtime.ScriptId;
-            /**
-             * JavaScript script name or url.
-             */
-            url: string;
-            /**
-             * Type profile entries for parameters and return values of the functions in the script.
-             */
-            entries: TypeProfileEntry[];
-        }
-
         export interface GetBestEffortCoverageResponse {
             /**
              * Coverage data for the current isolate.
@@ -1347,13 +1426,6 @@ export namespace Protocol {
             timestamp: number;
         }
 
-        export interface TakeTypeProfileResponse {
-            /**
-             * Type profile for all scripts since startTypeProfile() was turned on.
-             */
-            result: ScriptTypeProfile[];
-        }
-
         export interface ConsoleProfileFinishedEvent {
             id: string;
             /**
@@ -1418,6 +1490,77 @@ export namespace Protocol {
          */
         export type ScriptId = string;
 
+        export const enum SerializationOptionsSerialization {
+            Deep = 'deep',
+            Json = 'json',
+            IdOnly = 'idOnly',
+        }
+
+        /**
+         * Represents options for serialization. Overrides `generatePreview`, `returnByValue` and
+         * `generateWebDriverValue`.
+         */
+        export interface SerializationOptions {
+            /**
+             *  (SerializationOptionsSerialization enum)
+             */
+            serialization: ('deep' | 'json' | 'idOnly');
+            /**
+             * Deep serialization depth. Default is full depth. Respected only in `deep` serialization mode.
+             */
+            maxDepth?: integer;
+            /**
+             * Embedder-specific parameters. For example if connected to V8 in Chrome these control DOM
+             * serialization via `maxNodeDepth: integer` and `includeShadowTree: "none" | "open" | "all"`.
+             * Values can be only of type string or integer.
+             */
+            additionalParameters?: any;
+        }
+
+        export const enum DeepSerializedValueType {
+            Undefined = 'undefined',
+            Null = 'null',
+            String = 'string',
+            Number = 'number',
+            Boolean = 'boolean',
+            Bigint = 'bigint',
+            Regexp = 'regexp',
+            Date = 'date',
+            Symbol = 'symbol',
+            Array = 'array',
+            Object = 'object',
+            Function = 'function',
+            Map = 'map',
+            Set = 'set',
+            Weakmap = 'weakmap',
+            Weakset = 'weakset',
+            Error = 'error',
+            Proxy = 'proxy',
+            Promise = 'promise',
+            Typedarray = 'typedarray',
+            Arraybuffer = 'arraybuffer',
+            Node = 'node',
+            Window = 'window',
+        }
+
+        /**
+         * Represents deep serialized value.
+         */
+        export interface DeepSerializedValue {
+            /**
+             *  (DeepSerializedValueType enum)
+             */
+            type: ('undefined' | 'null' | 'string' | 'number' | 'boolean' | 'bigint' | 'regexp' | 'date' | 'symbol' | 'array' | 'object' | 'function' | 'map' | 'set' | 'weakmap' | 'weakset' | 'error' | 'proxy' | 'promise' | 'typedarray' | 'arraybuffer' | 'node' | 'window');
+            value?: any;
+            objectId?: string;
+            /**
+             * Set if value reference met more then once during serialization. In such
+             * case, value is provided only to one of the serialized values. Unique
+             * per value in the scope of one CDP call.
+             */
+            weakLocalObjectReference?: integer;
+        }
+
         /**
          * Unique object identifier.
          */
@@ -1493,6 +1636,14 @@ export namespace Protocol {
              * String representation of the object.
              */
             description?: string;
+            /**
+             * Deprecated. Use `deepSerializedValue` instead. WebDriver BiDi representation of the value.
+             */
+            webDriverValue?: DeepSerializedValue;
+            /**
+             * Deep serialized value.
+             */
+            deepSerializedValue?: DeepSerializedValue;
             /**
              * Unique object identifier (for non-primitive values).
              */
@@ -1785,7 +1936,7 @@ export namespace Protocol {
              */
             uniqueId: string;
             /**
-             * Embedder-specific auxiliary data.
+             * Embedder-specific auxiliary data likely matching {isDefault: boolean, type: 'default'|'isolated'|'worker', frameId: string}
              */
             auxData?: any;
         }
@@ -1960,6 +2111,7 @@ export namespace Protocol {
             silent?: boolean;
             /**
              * Whether the result is expected to be a JSON object which should be sent by value.
+             * Can be overriden by `serializationOptions`.
              */
             returnByValue?: boolean;
             /**
@@ -1989,6 +2141,27 @@ export namespace Protocol {
              * Whether to throw an exception if side effect cannot be ruled out during evaluation.
              */
             throwOnSideEffect?: boolean;
+            /**
+             * An alternative way to specify the execution context to call function on.
+             * Compared to contextId that may be reused across processes, this is guaranteed to be
+             * system-unique, so it can be used to prevent accidental function call
+             * in context different than intended (e.g. as a result of navigation across process
+             * boundaries).
+             * This is mutually exclusive with `executionContextId`.
+             */
+            uniqueContextId?: string;
+            /**
+             * Deprecated. Use `serializationOptions: {serialization:"deep"}` instead.
+             * Whether the result should contain `webDriverValue`, serialized according to
+             * https://w3c.github.io/webdriver-bidi. This is mutually exclusive with `returnByValue`, but
+             * resulting `objectId` is still provided.
+             */
+            generateWebDriverValue?: boolean;
+            /**
+             * Specifies the result serialization. If provided, overrides
+             * `generatePreview`, `returnByValue` and `generateWebDriverValue`.
+             */
+            serializationOptions?: SerializationOptions;
         }
 
         export interface CallFunctionOnResponse {
@@ -2111,6 +2284,19 @@ export namespace Protocol {
              * This is mutually exclusive with `contextId`.
              */
             uniqueContextId?: string;
+            /**
+             * Deprecated. Use `serializationOptions: {serialization:"deep"}` instead.
+             * Whether the result should contain `webDriverValue`, serialized
+             * according to
+             * https://w3c.github.io/webdriver-bidi. This is mutually exclusive with `returnByValue`, but
+             * resulting `objectId` is still provided.
+             */
+            generateWebDriverValue?: boolean;
+            /**
+             * Specifies the result serialization. If provided, overrides
+             * `generatePreview`, `returnByValue` and `generateWebDriverValue`.
+             */
+            serializationOptions?: SerializationOptions;
         }
 
         export interface EvaluateResponse {
@@ -2320,6 +2506,17 @@ export namespace Protocol {
             name: string;
         }
 
+        export interface GetExceptionDetailsRequest {
+            /**
+             * The error object for which to resolve the exception details.
+             */
+            errorObjectId: RemoteObjectId;
+        }
+
+        export interface GetExceptionDetailsResponse {
+            exceptionDetails?: ExceptionDetails;
+        }
+
         /**
          * Notification is issued every time when binding is called.
          */
@@ -2430,6 +2627,10 @@ export namespace Protocol {
              * Id of the destroyed context
              */
             executionContextId: ExecutionContextId;
+            /**
+             * Unique Id of the destroyed context
+             */
+            executionContextUniqueId: string;
         }
 
         /**
@@ -2615,6 +2816,10 @@ export namespace Protocol {
              * This `Node`'s role, whether explicit or implicit.
              */
             role?: AXValue;
+            /**
+             * This `Node`'s Chrome raw role.
+             */
+            chromeRole?: AXValue;
             /**
              * The accessible name for this `Node`.
              */
@@ -2663,7 +2868,7 @@ export namespace Protocol {
              */
             objectId?: Runtime.RemoteObjectId;
             /**
-             * Whether to fetch this nodes ancestors, siblings and children. Defaults to true.
+             * Whether to fetch this node's ancestors, siblings and children. Defaults to true.
              */
             fetchRelatives?: boolean;
         }
@@ -2682,10 +2887,6 @@ export namespace Protocol {
              * If omitted, the full tree is returned.
              */
             depth?: integer;
-            /**
-             * Deprecated. This parameter has been renamed to `depth`. If depth is not provided, max_depth will be used.
-             */
-            max_depth?: integer;
             /**
              * The frame for whose document the AX tree should be retrieved.
              * If omited, the root frame is used.
@@ -3075,18 +3276,18 @@ export namespace Protocol {
             frameId: Page.FrameId;
         }
 
-        export type SameSiteCookieExclusionReason = ('ExcludeSameSiteUnspecifiedTreatedAsLax' | 'ExcludeSameSiteNoneInsecure' | 'ExcludeSameSiteLax' | 'ExcludeSameSiteStrict' | 'ExcludeInvalidSameParty' | 'ExcludeSamePartyCrossPartyContext');
+        export type CookieExclusionReason = ('ExcludeSameSiteUnspecifiedTreatedAsLax' | 'ExcludeSameSiteNoneInsecure' | 'ExcludeSameSiteLax' | 'ExcludeSameSiteStrict' | 'ExcludeInvalidSameParty' | 'ExcludeSamePartyCrossPartyContext' | 'ExcludeDomainNonASCII' | 'ExcludeThirdPartyCookieBlockedInFirstPartySet');
 
-        export type SameSiteCookieWarningReason = ('WarnSameSiteUnspecifiedCrossSiteContext' | 'WarnSameSiteNoneInsecure' | 'WarnSameSiteUnspecifiedLaxAllowUnsafe' | 'WarnSameSiteStrictLaxDowngradeStrict' | 'WarnSameSiteStrictCrossDowngradeStrict' | 'WarnSameSiteStrictCrossDowngradeLax' | 'WarnSameSiteLaxCrossDowngradeStrict' | 'WarnSameSiteLaxCrossDowngradeLax');
+        export type CookieWarningReason = ('WarnSameSiteUnspecifiedCrossSiteContext' | 'WarnSameSiteNoneInsecure' | 'WarnSameSiteUnspecifiedLaxAllowUnsafe' | 'WarnSameSiteStrictLaxDowngradeStrict' | 'WarnSameSiteStrictCrossDowngradeStrict' | 'WarnSameSiteStrictCrossDowngradeLax' | 'WarnSameSiteLaxCrossDowngradeStrict' | 'WarnSameSiteLaxCrossDowngradeLax' | 'WarnAttributeValueExceedsMaxSize' | 'WarnDomainNonASCII');
 
-        export type SameSiteCookieOperation = ('SetCookie' | 'ReadCookie');
+        export type CookieOperation = ('SetCookie' | 'ReadCookie');
 
         /**
          * 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.
          */
-        export interface SameSiteCookieIssueDetails {
+        export interface CookieIssueDetails {
             /**
              * If AffectedCookie is not set then rawCookieLine contains the raw
              * Set-Cookie header string. This hints at a problem where the
@@ -3095,13 +3296,13 @@ export namespace Protocol {
              */
             cookie?: AffectedCookie;
             rawCookieLine?: string;
-            cookieWarningReasons: SameSiteCookieWarningReason[];
-            cookieExclusionReasons: SameSiteCookieExclusionReason[];
+            cookieWarningReasons: CookieWarningReason[];
+            cookieExclusionReasons: CookieExclusionReason[];
             /**
              * Optionally identifies the site-for-cookies and the cookie url, which
              * may be used by the front-end as additional context.
              */
-            operation: SameSiteCookieOperation;
+            operation: CookieOperation;
             siteForCookies?: string;
             cookieUrl?: string;
             request?: AffectedRequest;
@@ -3109,7 +3310,7 @@ export namespace Protocol {
 
         export type MixedContentResolutionStatus = ('MixedContentBlocked' | 'MixedContentAutomaticallyUpgraded' | 'MixedContentWarning');
 
-        export type MixedContentResourceType = ('Audio' | 'Beacon' | 'CSPReport' | 'Download' | 'EventSource' | 'Favicon' | 'Font' | 'Form' | 'Frame' | 'Image' | 'Import' | 'Manifest' | 'Ping' | 'PluginData' | 'PluginResource' | 'Prefetch' | 'Resource' | 'Script' | 'ServiceWorker' | 'SharedWorker' | 'Stylesheet' | 'Track' | 'Video' | 'Worker' | 'XMLHttpRequest' | 'XSLT');
+        export type MixedContentResourceType = ('AttributionSrc' | 'Audio' | 'Beacon' | 'CSPReport' | 'Download' | 'EventSource' | 'Favicon' | 'Font' | 'Form' | 'Frame' | 'Image' | 'Import' | 'Manifest' | 'Ping' | 'PluginData' | 'PluginResource' | 'Prefetch' | 'Resource' | 'Script' | 'ServiceWorker' | 'SharedWorker' | 'Stylesheet' | 'Track' | 'Video' | 'Worker' | 'XMLHttpRequest' | 'XSLT');
 
         export interface MixedContentIssueDetails {
             /**
@@ -3216,27 +3417,6 @@ export namespace Protocol {
             type: SharedArrayBufferIssueType;
         }
 
-        export type TwaQualityEnforcementViolationType = ('kHttpError' | 'kUnavailableOffline' | 'kDigitalAssetLinks');
-
-        export interface TrustedWebActivityIssueDetails {
-            /**
-             * The url that triggers the violation.
-             */
-            url: string;
-            violationType: TwaQualityEnforcementViolationType;
-            httpStatusCode?: integer;
-            /**
-             * The package name of the Trusted Web Activity client app. This field is
-             * only used when violation type is kDigitalAssetLinks.
-             */
-            packageName?: string;
-            /**
-             * The signature of the Trusted Web Activity client app. This field is only
-             * used when violation type is kDigitalAssetLinks.
-             */
-            signature?: string;
-        }
-
         export interface LowTextContrastIssueDetails {
             violatingNodeId: DOM.BackendNodeId;
             violatingNodeSelector: string;
@@ -3261,15 +3441,14 @@ export namespace Protocol {
             clientSecurityState?: Network.ClientSecurityState;
         }
 
-        export type AttributionReportingIssueType = ('PermissionPolicyDisabled' | 'InvalidAttributionSourceEventId' | 'InvalidAttributionData' | 'AttributionSourceUntrustworthyOrigin' | 'AttributionUntrustworthyOrigin' | 'AttributionTriggerDataTooLarge' | 'AttributionEventSourceTriggerDataTooLarge' | 'InvalidAttributionSourceExpiry' | 'InvalidAttributionSourcePriority' | 'InvalidEventSourceTriggerData' | 'InvalidTriggerPriority' | 'InvalidTriggerDedupKey');
+        export type AttributionReportingIssueType = ('PermissionPolicyDisabled' | 'UntrustworthyReportingOrigin' | 'InsecureContext' | 'InvalidHeader' | 'InvalidRegisterTriggerHeader' | 'SourceAndTriggerHeaders' | 'SourceIgnored' | 'TriggerIgnored' | 'OsSourceIgnored' | 'OsTriggerIgnored' | 'InvalidRegisterOsSourceHeader' | 'InvalidRegisterOsTriggerHeader' | 'WebAndOsHeaders' | 'NoWebOrOsSupport');
 
         /**
          * Details for issues around "Attribution Reporting API" usage.
-         * Explainer: https://github.com/WICG/conversion-measurement-api
+         * Explainer: https://github.com/WICG/attribution-reporting-api
          */
         export interface AttributionReportingIssueDetails {
             violationType: AttributionReportingIssueType;
-            frame?: AffectedFrame;
             request?: AffectedRequest;
             violatingNodeId?: DOM.BackendNodeId;
             invalidParameter?: string;
@@ -3296,14 +3475,7 @@ export namespace Protocol {
             location?: SourceCodeLocation;
         }
 
-        export interface WasmCrossOriginModuleSharingIssueDetails {
-            wasmModuleUrl: string;
-            sourceOrigin: string;
-            targetOrigin: string;
-            isWarning: boolean;
-        }
-
-        export type GenericIssueErrorType = ('CrossOriginPortalPostMessageError');
+        export type GenericIssueErrorType = ('CrossOriginPortalPostMessageError' | 'FormLabelForNameError' | 'FormDuplicateIdForInputError' | 'FormInputWithNoLabelError' | 'FormAutocompleteAttributeEmptyError' | 'FormEmptyIdAndNameAttributesForInputError' | 'FormAriaLabelledByToNonExistingId' | 'FormInputAssignedAutocompleteValueToIdOrNameAttributeError' | 'FormLabelHasNeitherForNorNestedInput' | 'FormLabelForMatchesNonExistingIdError' | 'FormInputHasWrongButWellIntendedAutocompleteValueError' | 'ResponseWasBlockedByORB');
 
         /**
          * Depending on the concrete errorType, different properties are set.
@@ -3314,31 +3486,60 @@ export namespace Protocol {
              */
             errorType: GenericIssueErrorType;
             frameId?: Page.FrameId;
+            violatingNodeId?: DOM.BackendNodeId;
+            violatingNodeAttribute?: string;
+            request?: AffectedRequest;
         }
 
         /**
          * This issue tracks information needed to print a deprecation message.
-         * The formatting is inherited from the old console.log version, see more at:
-         * https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/frame/deprecation.cc
-         * TODO(crbug.com/1264960): Re-work format to add i18n support per:
-         * https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/public/devtools_protocol/README.md
+         * https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/frame/third_party/blink/renderer/core/frame/deprecation/README.md
          */
         export interface DeprecationIssueDetails {
             affectedFrame?: AffectedFrame;
             sourceCodeLocation: SourceCodeLocation;
             /**
-             * The content of the deprecation issue (this won't be translated),
-             * e.g. "window.inefficientLegacyStorageMethod will be removed in M97,
-             * around January 2022. Please use Web Storage or Indexed Database
-             * instead. This standard was abandoned in January, 1970. See
-             * https://www.chromestatus.com/feature/5684870116278272 for more details."
+             * One of the deprecation names from third_party/blink/renderer/core/frame/deprecation/deprecation.json5
              */
-            message?: string;
-            deprecationType: string;
+            type: string;
+        }
+
+        /**
+         * This issue warns about sites in the redirect chain of a finished navigation
+         * that may be flagged as trackers and have their state cleared if they don't
+         * receive a user interaction. Note that in this context 'site' means eTLD+1.
+         * For example, if the URL `https://example.test:80/bounce` was in the
+         * redirect chain, the site reported would be `example.test`.
+         */
+        export interface BounceTrackingIssueDetails {
+            trackingSites: string[];
         }
 
         export type ClientHintIssueReason = ('MetaTagAllowListInvalidOrigin' | 'MetaTagModifiedHTML');
 
+        export interface FederatedAuthRequestIssueDetails {
+            federatedAuthRequestIssueReason: FederatedAuthRequestIssueReason;
+        }
+
+        /**
+         * Represents the failure reason when a federated authentication reason fails.
+         * Should be updated alongside RequestIdTokenStatus in
+         * third_party/blink/public/mojom/devtools/inspector_issue.mojom to include
+         * all cases except for success.
+         */
+        export type FederatedAuthRequestIssueReason = ('ShouldEmbargo' | 'TooManyRequests' | 'WellKnownHttpNotFound' | 'WellKnownNoResponse' | 'WellKnownInvalidResponse' | 'WellKnownListEmpty' | 'WellKnownInvalidContentType' | 'ConfigNotInWellKnown' | 'WellKnownTooBig' | 'ConfigHttpNotFound' | 'ConfigNoResponse' | 'ConfigInvalidResponse' | 'ConfigInvalidContentType' | 'ClientMetadataHttpNotFound' | 'ClientMetadataNoResponse' | 'ClientMetadataInvalidResponse' | 'ClientMetadataInvalidContentType' | 'DisabledInSettings' | 'ErrorFetchingSignin' | 'InvalidSigninResponse' | 'AccountsHttpNotFound' | 'AccountsNoResponse' | 'AccountsInvalidResponse' | 'AccountsListEmpty' | 'AccountsInvalidContentType' | 'IdTokenHttpNotFound' | 'IdTokenNoResponse' | 'IdTokenInvalidResponse' | 'IdTokenInvalidRequest' | 'IdTokenInvalidContentType' | 'ErrorIdToken' | 'Canceled' | 'RpPageNotVisible' | 'SilentMediationFailure' | 'ThirdPartyCookiesBlocked');
+
+        export interface FederatedAuthUserInfoRequestIssueDetails {
+            federatedAuthUserInfoRequestIssueReason: FederatedAuthUserInfoRequestIssueReason;
+        }
+
+        /**
+         * Represents the failure reason when a getUserInfo() call fails.
+         * Should be updated alongside FederatedAuthUserInfoRequestResult in
+         * third_party/blink/public/mojom/devtools/inspector_issue.mojom.
+         */
+        export type FederatedAuthUserInfoRequestIssueReason = ('NotSameOrigin' | 'NotIframe' | 'NotPotentiallyTrustworthy' | 'NoApiPermission' | 'NotSignedInWithIdp' | 'NoAccountSharingPermission' | 'InvalidConfigOrWellKnown' | 'InvalidAccountsResponse' | 'NoReturningUserFromFetchedAccounts');
+
         /**
          * This issue tracks client hints related issues. It's used to deprecate old
          * features, encourage the use of new ones, and provide general guidance.
@@ -3348,12 +3549,44 @@ export namespace Protocol {
             clientHintIssueReason: ClientHintIssueReason;
         }
 
+        export interface FailedRequestInfo {
+            /**
+             * The URL that failed to load.
+             */
+            url: string;
+            /**
+             * The failure message for the failed request.
+             */
+            failureMessage: string;
+            requestId?: Network.RequestId;
+        }
+
+        export type StyleSheetLoadingIssueReason = ('LateImportRule' | 'RequestFailed');
+
+        /**
+         * This issue warns when a referenced stylesheet couldn't be loaded.
+         */
+        export interface StylesheetLoadingIssueDetails {
+            /**
+             * Source code position that referenced the failing stylesheet.
+             */
+            sourceCodeLocation: SourceCodeLocation;
+            /**
+             * Reason why the stylesheet couldn't be loaded.
+             */
+            styleSheetLoadingIssueReason: StyleSheetLoadingIssueReason;
+            /**
+             * Contains additional info when the failure was due to a request.
+             */
+            failedRequestInfo?: FailedRequestInfo;
+        }
+
         /**
          * A unique identifier for the type of issue. Each type may use one of the
          * optional fields in InspectorIssueDetails to convey more specific
          * information about the kind of issue.
          */
-        export type InspectorIssueCode = ('SameSiteCookieIssue' | 'MixedContentIssue' | 'BlockedByResponseIssue' | 'HeavyAdIssue' | 'ContentSecurityPolicyIssue' | 'SharedArrayBufferIssue' | 'TrustedWebActivityIssue' | 'LowTextContrastIssue' | 'CorsIssue' | 'AttributionReportingIssue' | 'QuirksModeIssue' | 'NavigatorUserAgentIssue' | 'WasmCrossOriginModuleSharingIssue' | 'GenericIssue' | 'DeprecationIssue' | 'ClientHintIssue');
+        export type InspectorIssueCode = ('CookieIssue' | 'MixedContentIssue' | 'BlockedByResponseIssue' | 'HeavyAdIssue' | 'ContentSecurityPolicyIssue' | 'SharedArrayBufferIssue' | 'LowTextContrastIssue' | 'CorsIssue' | 'AttributionReportingIssue' | 'QuirksModeIssue' | 'NavigatorUserAgentIssue' | 'GenericIssue' | 'DeprecationIssue' | 'ClientHintIssue' | 'FederatedAuthRequestIssue' | 'BounceTrackingIssue' | 'StylesheetLoadingIssue' | 'FederatedAuthUserInfoRequestIssue');
 
         /**
          * This struct holds a list of optional fields with additional information
@@ -3361,22 +3594,24 @@ export namespace Protocol {
          * add a new optional field to this type.
          */
         export interface InspectorIssueDetails {
-            sameSiteCookieIssueDetails?: SameSiteCookieIssueDetails;
+            cookieIssueDetails?: CookieIssueDetails;
             mixedContentIssueDetails?: MixedContentIssueDetails;
             blockedByResponseIssueDetails?: BlockedByResponseIssueDetails;
             heavyAdIssueDetails?: HeavyAdIssueDetails;
             contentSecurityPolicyIssueDetails?: ContentSecurityPolicyIssueDetails;
             sharedArrayBufferIssueDetails?: SharedArrayBufferIssueDetails;
-            twaQualityEnforcementDetails?: TrustedWebActivityIssueDetails;
             lowTextContrastIssueDetails?: LowTextContrastIssueDetails;
             corsIssueDetails?: CorsIssueDetails;
             attributionReportingIssueDetails?: AttributionReportingIssueDetails;
             quirksModeIssueDetails?: QuirksModeIssueDetails;
             navigatorUserAgentIssueDetails?: NavigatorUserAgentIssueDetails;
-            wasmCrossOriginModuleSharingIssue?: WasmCrossOriginModuleSharingIssueDetails;
             genericIssueDetails?: GenericIssueDetails;
             deprecationIssueDetails?: DeprecationIssueDetails;
             clientHintIssueDetails?: ClientHintIssueDetails;
+            federatedAuthRequestIssueDetails?: FederatedAuthRequestIssueDetails;
+            bounceTrackingIssueDetails?: BounceTrackingIssueDetails;
+            stylesheetLoadingIssueDetails?: StylesheetLoadingIssueDetails;
+            federatedAuthUserInfoRequestIssueDetails?: FederatedAuthUserInfoRequestIssueDetails;
         }
 
         /**
@@ -3445,11 +3680,81 @@ export namespace Protocol {
             reportAAA?: boolean;
         }
 
+        export interface CheckFormsIssuesResponse {
+            formIssues: GenericIssueDetails[];
+        }
+
         export interface IssueAddedEvent {
             issue: InspectorIssue;
         }
     }
 
+    /**
+     * Defines commands and events for Autofill.
+     */
+    export namespace Autofill {
+
+        export interface CreditCard {
+            /**
+             * 16-digit credit card number.
+             */
+            number: string;
+            /**
+             * Name of the credit card owner.
+             */
+            name: string;
+            /**
+             * 2-digit expiry month.
+             */
+            expiryMonth: string;
+            /**
+             * 4-digit expiry year.
+             */
+            expiryYear: string;
+            /**
+             * 3-digit card verification code.
+             */
+            cvc: string;
+        }
+
+        export interface AddressField {
+            /**
+             * address field name, for example GIVEN_NAME.
+             */
+            name: string;
+            /**
+             * address field name, for example Jon Doe.
+             */
+            value: string;
+        }
+
+        export interface Address {
+            /**
+             * fields and values defining a test address.
+             */
+            fields: AddressField[];
+        }
+
+        export interface TriggerRequest {
+            /**
+             * Identifies a field that serves as an anchor for autofill.
+             */
+            fieldId: DOM.BackendNodeId;
+            /**
+             * Identifies the frame that field belongs to.
+             */
+            frameId?: Page.FrameId;
+            /**
+             * Credit card information to fill out the form. Credit card data is not saved.
+             */
+            card: CreditCard;
+        }
+
+        export interface SetAddressesRequest {
+            addresses: Address[];
+        }
+    }
+
     /**
      * Defines events for background web platform features.
      */
@@ -3499,6 +3804,10 @@ export namespace Protocol {
              * A list of event-specific information.
              */
             eventMetadata: EventMetadata[];
+            /**
+             * Storage key this event belongs to.
+             */
+            storageKey: string;
         }
 
         export interface StartObservingRequest {
@@ -3575,7 +3884,7 @@ export namespace Protocol {
             windowState?: WindowState;
         }
 
-        export type PermissionType = ('accessibilityEvents' | 'audioCapture' | 'backgroundSync' | 'backgroundFetch' | 'clipboardReadWrite' | 'clipboardSanitizedWrite' | 'displayCapture' | 'durableStorage' | 'flash' | 'geolocation' | 'midi' | 'midiSysex' | 'nfc' | 'notifications' | 'paymentHandler' | 'periodicBackgroundSync' | 'protectedMediaIdentifier' | 'sensors' | 'videoCapture' | 'videoCapturePanTiltZoom' | 'idleDetection' | 'wakeLockScreen' | 'wakeLockSystem');
+        export type PermissionType = ('accessibilityEvents' | 'audioCapture' | 'backgroundSync' | 'backgroundFetch' | 'clipboardReadWrite' | 'clipboardSanitizedWrite' | 'displayCapture' | 'durableStorage' | 'flash' | 'geolocation' | 'idleDetection' | 'localFonts' | 'midi' | 'midiSysex' | 'nfc' | 'notifications' | 'paymentHandler' | 'periodicBackgroundSync' | 'protectedMediaIdentifier' | 'sensors' | 'storageAccess' | 'topLevelStorageAccess' | 'videoCapture' | 'videoCapturePanTiltZoom' | 'wakeLockScreen' | 'wakeLockSystem' | 'windowManagement');
 
         export type PermissionSetting = ('granted' | 'denied' | 'prompt');
 
@@ -3769,7 +4078,7 @@ export namespace Protocol {
              */
             query?: string;
             /**
-             * If true, retrieve delta since last call.
+             * If true, retrieve delta since last delta call.
              */
             delta?: boolean;
         }
@@ -3787,7 +4096,7 @@ export namespace Protocol {
              */
             name: string;
             /**
-             * If true, retrieve delta since last call.
+             * If true, retrieve delta since last delta call.
              */
             delta?: boolean;
         }
@@ -3857,6 +4166,10 @@ export namespace Protocol {
             commandId: BrowserCommandId;
         }
 
+        export interface AddPrivacySandboxEnrollmentOverrideRequest {
+            url: string;
+        }
+
         /**
          * Fired when page is about to start a download.
          */
@@ -3935,6 +4248,10 @@ export namespace Protocol {
              * Pseudo element type.
              */
             pseudoType: DOM.PseudoType;
+            /**
+             * Pseudo element custom ident.
+             */
+            pseudoIdentifier?: string;
             /**
              * Matches of CSS rules applicable to the pseudo style.
              */
@@ -3955,6 +4272,16 @@ export namespace Protocol {
             matchedCSSRules: RuleMatch[];
         }
 
+        /**
+         * Inherited pseudo element matches from pseudos of an ancestor node.
+         */
+        export interface InheritedPseudoElementMatches {
+            /**
+             * Matches of pseudo styles from the pseudos of an ancestor node.
+             */
+            pseudoElements: PseudoElementMatches[];
+        }
+
         /**
          * Match data for a CSS rule.
          */
@@ -3981,6 +4308,30 @@ export namespace Protocol {
              * Value range in the underlying resource (if available).
              */
             range?: SourceRange;
+            /**
+             * Specificity of the selector.
+             */
+            specificity?: Specificity;
+        }
+
+        /**
+         * Specificity:
+         * https://drafts.csswg.org/selectors/#specificity-rules
+         */
+        export interface Specificity {
+            /**
+             * The a component, which represents the number of ID selectors.
+             */
+            a: integer;
+            /**
+             * The b component, which represents the number of class selectors, attributes selectors, and
+             * pseudo-classes.
+             */
+            b: integer;
+            /**
+             * The c component, which represents the number of type selectors and pseudo-elements.
+             */
+            c: integer;
         }
 
         /**
@@ -4076,6 +4427,10 @@ export namespace Protocol {
              * Column offset of the end of the stylesheet within the resource (zero based).
              */
             endColumn: number;
+            /**
+             * If the style sheet was loaded from a network resource, this indicates when the resource failed to load
+             */
+            loadingFailed?: boolean;
         }
 
         /**
@@ -4091,6 +4446,10 @@ export namespace Protocol {
              * Rule selector data.
              */
             selectorList: SelectorList;
+            /**
+             * Array of selectors from ancestor style rules, sorted by distance from the current rule.
+             */
+            nestingSelectors?: string[];
             /**
              * Parent stylesheet's origin.
              */
@@ -4109,8 +4468,33 @@ export namespace Protocol {
              * The array enumerates container queries starting with the innermost one, going outwards.
              */
             containerQueries?: CSSContainerQuery[];
+            /**
+             * @supports CSS at-rule array.
+             * The array enumerates @supports at-rules starting with the innermost one, going outwards.
+             */
+            supports?: CSSSupports[];
+            /**
+             * Cascade layer array. Contains the layer hierarchy that this rule belongs to starting
+             * with the innermost layer and going outwards.
+             */
+            layers?: CSSLayer[];
+            /**
+             * @scope CSS at-rule array.
+             * The array enumerates @scope at-rules starting with the innermost one, going outwards.
+             */
+            scopes?: CSSScope[];
+            /**
+             * The array keeps the types of ancestor CSSRules from the innermost going outwards.
+             */
+            ruleTypes?: CSSRuleType[];
         }
 
+        /**
+         * Enum indicating the type of a CSS rule, used to represent the order of a style rule's ancestors.
+         * This list only contains rule types that are collected during the ancestor rule collection.
+         */
+        export type CSSRuleType = ('MediaRule' | 'SupportsRule' | 'ContainerRule' | 'LayerRule' | 'ScopeRule' | 'StyleRule');
+
         /**
          * CSS coverage information.
          */
@@ -4245,6 +4629,11 @@ export namespace Protocol {
              * The entire property range in the enclosing style declaration (if available).
              */
             range?: SourceRange;
+            /**
+             * Parsed longhand components of this property if it is a shorthand.
+             * This field will be empty if the given property is not a shorthand.
+             */
+            longhandProperties?: CSSProperty[];
         }
 
         export const enum CSSMediaSource {
@@ -4349,6 +4738,94 @@ export namespace Protocol {
              * Optional name for the container.
              */
             name?: string;
+            /**
+             * Optional physical axes queried for the container.
+             */
+            physicalAxes?: DOM.PhysicalAxes;
+            /**
+             * Optional logical axes queried for the container.
+             */
+            logicalAxes?: DOM.LogicalAxes;
+        }
+
+        /**
+         * CSS Supports at-rule descriptor.
+         */
+        export interface CSSSupports {
+            /**
+             * Supports rule text.
+             */
+            text: string;
+            /**
+             * Whether the supports condition is satisfied.
+             */
+            active: boolean;
+            /**
+             * The associated rule header range in the enclosing stylesheet (if
+             * available).
+             */
+            range?: SourceRange;
+            /**
+             * Identifier of the stylesheet containing this object (if exists).
+             */
+            styleSheetId?: StyleSheetId;
+        }
+
+        /**
+         * CSS Scope at-rule descriptor.
+         */
+        export interface CSSScope {
+            /**
+             * Scope rule text.
+             */
+            text: string;
+            /**
+             * The associated rule header range in the enclosing stylesheet (if
+             * available).
+             */
+            range?: SourceRange;
+            /**
+             * Identifier of the stylesheet containing this object (if exists).
+             */
+            styleSheetId?: StyleSheetId;
+        }
+
+        /**
+         * CSS Layer at-rule descriptor.
+         */
+        export interface CSSLayer {
+            /**
+             * Layer name.
+             */
+            text: string;
+            /**
+             * The associated rule header range in the enclosing stylesheet (if
+             * available).
+             */
+            range?: SourceRange;
+            /**
+             * Identifier of the stylesheet containing this object (if exists).
+             */
+            styleSheetId?: StyleSheetId;
+        }
+
+        /**
+         * CSS Layer data.
+         */
+        export interface CSSLayerData {
+            /**
+             * Layer name.
+             */
+            name: string;
+            /**
+             * Direct sub-layers
+             */
+            subLayers?: CSSLayerData[];
+            /**
+             * Layer order. The order determines the order of the layer in the cascade order.
+             * A higher number has higher priority in the cascade order.
+             */
+            order: number;
         }
 
         /**
@@ -4420,6 +4897,10 @@ export namespace Protocol {
              * The font-stretch.
              */
             fontStretch: string;
+            /**
+             * The font-display.
+             */
+            fontDisplay: string;
             /**
              * The unicode-range.
              */
@@ -4438,6 +4919,36 @@ export namespace Protocol {
             fontVariationAxes?: FontVariationAxis[];
         }
 
+        /**
+         * CSS try rule representation.
+         */
+        export interface CSSTryRule {
+            /**
+             * The css style sheet identifier (absent for user agent stylesheet and user-specified
+             * stylesheet rules) this rule came from.
+             */
+            styleSheetId?: StyleSheetId;
+            /**
+             * Parent stylesheet's origin.
+             */
+            origin: StyleSheetOrigin;
+            /**
+             * Associated style declaration.
+             */
+            style: CSSStyle;
+        }
+
+        /**
+         * CSS position-fallback rule representation.
+         */
+        export interface CSSPositionFallbackRule {
+            name: Value;
+            /**
+             * List of keyframes.
+             */
+            tryRules: CSSTryRule[];
+        }
+
         /**
          * CSS keyframes rule representation.
          */
@@ -4629,10 +5140,22 @@ export namespace Protocol {
              * A chain of inherited styles (from the immediate node parent up to the DOM tree root).
              */
             inherited?: InheritedStyleEntry[];
+            /**
+             * A chain of inherited pseudo element styles (from the immediate node parent up to the DOM tree root).
+             */
+            inheritedPseudoElements?: InheritedPseudoElementMatches[];
             /**
              * A list of CSS keyframed animations matching this node.
              */
             cssKeyframesRules?: CSSKeyframesRule[];
+            /**
+             * A list of CSS position fallbacks matching this node.
+             */
+            cssPositionFallbackRules?: CSSPositionFallbackRule[];
+            /**
+             * Id of the first parent element that does not have display: contents.
+             */
+            parentLayoutNodeId?: DOM.NodeId;
         }
 
         export interface GetMediaQueriesResponse {
@@ -4661,13 +5184,21 @@ export namespace Protocol {
             text: string;
         }
 
+        export interface GetLayersForNodeRequest {
+            nodeId: DOM.NodeId;
+        }
+
+        export interface GetLayersForNodeResponse {
+            rootLayer: CSSLayerData;
+        }
+
         export interface TrackComputedStyleUpdatesRequest {
             propertiesToTrack: CSSComputedStyleProperty[];
         }
 
         export interface TakeComputedStyleUpdatesResponse {
             /**
-             * The list of node Ids that have their tracked computed styles updated
+             * The list of node Ids that have their tracked computed styles updated.
              */
             nodeIds: DOM.NodeId[];
         }
@@ -4720,6 +5251,32 @@ export namespace Protocol {
             containerQuery: CSSContainerQuery;
         }
 
+        export interface SetSupportsTextRequest {
+            styleSheetId: StyleSheetId;
+            range: SourceRange;
+            text: string;
+        }
+
+        export interface SetSupportsTextResponse {
+            /**
+             * The resulting CSS Supports rule after modification.
+             */
+            supports: CSSSupports;
+        }
+
+        export interface SetScopeTextRequest {
+            styleSheetId: StyleSheetId;
+            range: SourceRange;
+            text: string;
+        }
+
+        export interface SetScopeTextResponse {
+            /**
+             * The resulting CSS Scope rule after modification.
+             */
+            scope: CSSScope;
+        }
+
         export interface SetRuleSelectorRequest {
             styleSheetId: StyleSheetId;
             range: SourceRange;
@@ -4777,7 +5334,7 @@ export namespace Protocol {
 
         /**
          * Fires whenever a web font is updated.  A non-empty font parameter indicates a successfully loaded
-         * web font
+         * web font.
          */
         export interface FontsUpdatedEvent {
             /**
@@ -4876,6 +5433,14 @@ export namespace Protocol {
              * Security origin of the cache.
              */
             securityOrigin: string;
+            /**
+             * Storage key of the cache.
+             */
+            storageKey: string;
+            /**
+             * Storage bucket of the cache.
+             */
+            storageBucket?: Storage.StorageBucket;
             /**
              * The name of the cache.
              */
@@ -4917,9 +5482,18 @@ export namespace Protocol {
 
         export interface RequestCacheNamesRequest {
             /**
+             * At least and at most one of securityOrigin, storageKey, storageBucket must be specified.
              * Security origin.
              */
-            securityOrigin: string;
+            securityOrigin?: string;
+            /**
+             * Storage key.
+             */
+            storageKey?: string;
+            /**
+             * Storage bucket. If not specified, it uses the default bucket.
+             */
+            storageBucket?: Storage.StorageBucket;
         }
 
         export interface RequestCacheNamesResponse {
@@ -5076,7 +5650,7 @@ export namespace Protocol {
         /**
          * Pseudo element type.
          */
-        export type PseudoType = ('first-line' | 'first-letter' | 'before' | 'after' | 'marker' | 'backdrop' | 'selection' | 'target-text' | 'spelling-error' | 'grammar-error' | 'highlight' | 'first-line-inherited' | 'scrollbar' | 'scrollbar-thumb' | 'scrollbar-button' | 'scrollbar-track' | 'scrollbar-track-piece' | 'scrollbar-corner' | 'resizer' | 'input-list-button' | 'transition' | 'transition-container' | 'transition-old-content' | 'transition-new-content');
+        export type PseudoType = ('first-line' | 'first-letter' | 'before' | 'after' | 'marker' | 'backdrop' | 'selection' | 'target-text' | 'spelling-error' | 'grammar-error' | 'highlight' | 'first-line-inherited' | 'scrollbar' | 'scrollbar-thumb' | 'scrollbar-button' | 'scrollbar-track' | 'scrollbar-track-piece' | 'scrollbar-corner' | 'resizer' | 'input-list-button' | 'view-transition' | 'view-transition-group' | 'view-transition-image-pair' | 'view-transition-old' | 'view-transition-new');
 
         /**
          * Shadow root type.
@@ -5088,6 +5662,16 @@ export namespace Protocol {
          */
         export type CompatibilityMode = ('QuirksMode' | 'LimitedQuirksMode' | 'NoQuirksMode');
 
+        /**
+         * ContainerSelector physical axes
+         */
+        export type PhysicalAxes = ('Horizontal' | 'Vertical' | 'Both');
+
+        /**
+         * ContainerSelector logical axes
+         */
+        export type LogicalAxes = ('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.
@@ -5171,6 +5755,11 @@ export namespace Protocol {
              * Pseudo element type for this node.
              */
             pseudoType?: PseudoType;
+            /**
+             * Pseudo element identifier for this node. Only present if there is a
+             * valid pseudoType.
+             */
+            pseudoIdentifier?: string;
             /**
              * Shadow root type.
              */
@@ -5210,6 +5799,7 @@ export namespace Protocol {
              */
             isSVG?: boolean;
             compatibilityMode?: CompatibilityMode;
+            assignedSlot?: BackendNode;
         }
 
         /**
@@ -5420,6 +6010,18 @@ export namespace Protocol {
             searchId: string;
         }
 
+        export const enum EnableRequestIncludeWhitespace {
+            None = 'none',
+            All = 'all',
+        }
+
+        export interface EnableRequest {
+            /**
+             * Whether to include whitespaces in the children array of returned Nodes. (EnableRequestIncludeWhitespace enum)
+             */
+            includeWhitespace?: ('none' | 'all');
+        }
+
         export interface FocusRequest {
             /**
              * Identifier of the node.
@@ -5758,6 +6360,13 @@ export namespace Protocol {
             nodeIds: NodeId[];
         }
 
+        export interface GetTopLayerElementsResponse {
+            /**
+             * NodeIds of top layer elements
+             */
+            nodeIds: NodeId[];
+        }
+
         export interface RemoveAttributeRequest {
             /**
              * Id of the element to remove attribute from.
@@ -5980,6 +6589,8 @@ export namespace Protocol {
         export interface GetContainerForNodeRequest {
             nodeId: NodeId;
             containerName?: string;
+            physicalAxes?: PhysicalAxes;
+            logicalAxes?: LogicalAxes;
         }
 
         export interface GetContainerForNodeResponse {
@@ -6072,7 +6683,7 @@ export namespace Protocol {
              */
             parentNodeId: NodeId;
             /**
-             * If of the previous siblint.
+             * Id of the previous sibling.
              */
             previousNodeId: NodeId;
             /**
@@ -6739,6 +7350,11 @@ export namespace Protocol {
              * Type of a pseudo element node.
              */
             pseudoType?: RareStringData;
+            /**
+             * Pseudo element identifier for this node. Only present if there is a
+             * valid pseudoType.
+             */
+            pseudoIdentifier?: RareStringData;
             /**
              * Whether this DOM node responds to mouse clicks. This includes nodes that have had click
              * event listeners attached via JavaScript as well as anchor tags that naturally navigate when
@@ -6910,6 +7526,8 @@ export namespace Protocol {
      */
     export namespace DOMStorage {
 
+        export type SerializedStorageKey = string;
+
         /**
          * DOM Storage identifier.
          */
@@ -6917,7 +7535,11 @@ export namespace Protocol {
             /**
              * Security origin for the storage.
              */
-            securityOrigin: string;
+            securityOrigin?: string;
+            /**
+             * Represents a key by which DOM Storage keys its CachedStorageAreas
+             */
+            storageKey?: SerializedStorageKey;
             /**
              * Whether the storage is local storage (not session storage).
              */
@@ -7135,7 +7757,13 @@ export namespace Protocol {
          * Missing optional values will be filled in by the target with what it would normally use.
          */
         export interface UserAgentMetadata {
+            /**
+             * Brands appearing in Sec-CH-UA.
+             */
             brands?: UserAgentBrandVersion[];
+            /**
+             * Brands appearing in Sec-CH-UA-Full-Version-List.
+             */
             fullVersionList?: UserAgentBrandVersion[];
             fullVersion?: string;
             platform: string;
@@ -7143,12 +7771,14 @@ export namespace Protocol {
             architecture: string;
             model: string;
             mobile: boolean;
+            bitness?: string;
+            wow64?: boolean;
         }
 
         /**
          * Enum of image types that can be disabled.
          */
-        export type DisabledImageType = ('avif' | 'jxl' | 'webp');
+        export type DisabledImageType = ('avif' | 'webp');
 
         export interface CanEmulateResponse {
             /**
@@ -7288,8 +7918,9 @@ export namespace Protocol {
 
         export const enum SetEmulatedVisionDeficiencyRequestType {
             None = 'none',
-            Achromatopsia = 'achromatopsia',
             BlurredVision = 'blurredVision',
+            ReducedContrast = 'reducedContrast',
+            Achromatopsia = 'achromatopsia',
             Deuteranopia = 'deuteranopia',
             Protanopia = 'protanopia',
             Tritanopia = 'tritanopia',
@@ -7297,9 +7928,10 @@ export namespace Protocol {
 
         export interface SetEmulatedVisionDeficiencyRequest {
             /**
-             * Vision deficiency to emulate. (SetEmulatedVisionDeficiencyRequestType enum)
+             * Vision deficiency to emulate. Order: best-effort emulations come first, followed by any
+             * physiologically accurate emulations for medically recognized color vision deficiencies. (SetEmulatedVisionDeficiencyRequestType enum)
              */
-            type: ('none' | 'achromatopsia' | 'blurredVision' | 'deuteranopia' | 'protanopia' | 'tritanopia');
+            type: ('none' | 'blurredVision' | 'reducedContrast' | 'achromatopsia' | 'deuteranopia' | 'protanopia' | 'tritanopia');
         }
 
         export interface SetGeolocationOverrideRequest {
@@ -7372,11 +8004,6 @@ export namespace Protocol {
              * forwards to prevent deadlock.
              */
             maxVirtualTimeTaskStarvationCount?: integer;
-            /**
-             * If set the virtual time policy change should be deferred until any frame starts navigating.
-             * Note any previous deferred policy change is superseded.
-             */
-            waitForNavigation?: boolean;
             /**
              * If set, base::Time::Now will be overridden to initially return this value.
              */
@@ -7424,6 +8051,13 @@ export namespace Protocol {
             imageTypes: DisabledImageType[];
         }
 
+        export interface SetHardwareConcurrencyOverrideRequest {
+            /**
+             * Hardware concurrency to report
+             */
+            hardwareConcurrency: integer;
+        }
+
         export interface SetUserAgentOverrideRequest {
             /**
              * User agent to use.
@@ -7442,6 +8076,13 @@ export namespace Protocol {
              */
             userAgentMetadata?: UserAgentMetadata;
         }
+
+        export interface SetAutomationOverrideRequest {
+            /**
+             * Whether the override should be enabled.
+             */
+            enabled: boolean;
+        }
     }
 
     /**
@@ -7452,6 +8093,7 @@ export namespace Protocol {
         export const enum ScreenshotParamsFormat {
             Jpeg = 'jpeg',
             Png = 'png',
+            Webp = 'webp',
         }
 
         /**
@@ -7461,11 +8103,15 @@ export namespace Protocol {
             /**
              * Image compression format (defaults to png). (ScreenshotParamsFormat enum)
              */
-            format?: ('jpeg' | 'png');
+            format?: ('jpeg' | 'png' | 'webp');
             /**
-             * Compression quality from range [0..100] (jpeg only).
+             * Compression quality from range [0..100] (jpeg and webp only).
              */
             quality?: integer;
+            /**
+             * Optimize image encoding for speed, not for resulting size (defaults to false)
+             */
+            optimizeForSpeed?: boolean;
         }
 
         export interface BeginFrameRequest {
@@ -7504,18 +8150,6 @@ export namespace Protocol {
              */
             screenshotData?: string;
         }
-
-        /**
-         * 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.
-         */
-        export interface NeedsBeginFramesChangedEvent {
-            /**
-             * True if BeginFrames are needed, false otherwise.
-             */
-            needsBeginFrames: boolean;
-        }
     }
 
     /**
@@ -7746,9 +8380,18 @@ export namespace Protocol {
 
         export interface ClearObjectStoreRequest {
             /**
+             * At least and at most one of securityOrigin, storageKey, or storageBucket must be specified.
              * Security origin.
              */
-            securityOrigin: string;
+            securityOrigin?: string;
+            /**
+             * Storage key.
+             */
+            storageKey?: string;
+            /**
+             * Storage bucket. If not specified, it uses the default bucket.
+             */
+            storageBucket?: Storage.StorageBucket;
             /**
              * Database name.
              */
@@ -7761,9 +8404,18 @@ export namespace Protocol {
 
         export interface DeleteDatabaseRequest {
             /**
+             * At least and at most one of securityOrigin, storageKey, or storageBucket must be specified.
              * Security origin.
              */
-            securityOrigin: string;
+            securityOrigin?: string;
+            /**
+             * Storage key.
+             */
+            storageKey?: string;
+            /**
+             * Storage bucket. If not specified, it uses the default bucket.
+             */
+            storageBucket?: Storage.StorageBucket;
             /**
              * Database name.
              */
@@ -7771,7 +8423,19 @@ export namespace Protocol {
         }
 
         export interface DeleteObjectStoreEntriesRequest {
-            securityOrigin: string;
+            /**
+             * At least and at most one of securityOrigin, storageKey, or storageBucket must be specified.
+             * Security origin.
+             */
+            securityOrigin?: string;
+            /**
+             * Storage key.
+             */
+            storageKey?: string;
+            /**
+             * Storage bucket. If not specified, it uses the default bucket.
+             */
+            storageBucket?: Storage.StorageBucket;
             databaseName: string;
             objectStoreName: string;
             /**
@@ -7782,9 +8446,18 @@ export namespace Protocol {
 
         export interface RequestDataRequest {
             /**
+             * At least and at most one of securityOrigin, storageKey, or storageBucket must be specified.
              * Security origin.
              */
-            securityOrigin: string;
+            securityOrigin?: string;
+            /**
+             * Storage key.
+             */
+            storageKey?: string;
+            /**
+             * Storage bucket. If not specified, it uses the default bucket.
+             */
+            storageBucket?: Storage.StorageBucket;
             /**
              * Database name.
              */
@@ -7824,9 +8497,18 @@ export namespace Protocol {
 
         export interface GetMetadataRequest {
             /**
+             * At least and at most one of securityOrigin, storageKey, or storageBucket must be specified.
              * Security origin.
              */
-            securityOrigin: string;
+            securityOrigin?: string;
+            /**
+             * Storage key.
+             */
+            storageKey?: string;
+            /**
+             * Storage bucket. If not specified, it uses the default bucket.
+             */
+            storageBucket?: Storage.StorageBucket;
             /**
              * Database name.
              */
@@ -7852,9 +8534,18 @@ export namespace Protocol {
 
         export interface RequestDatabaseRequest {
             /**
+             * At least and at most one of securityOrigin, storageKey, or storageBucket must be specified.
              * Security origin.
              */
-            securityOrigin: string;
+            securityOrigin?: string;
+            /**
+             * Storage key.
+             */
+            storageKey?: string;
+            /**
+             * Storage bucket. If not specified, it uses the default bucket.
+             */
+            storageBucket?: Storage.StorageBucket;
             /**
              * Database name.
              */
@@ -7870,9 +8561,18 @@ export namespace Protocol {
 
         export interface RequestDatabaseNamesRequest {
             /**
+             * At least and at most one of securityOrigin, storageKey, or storageBucket must be specified.
              * Security origin.
              */
-            securityOrigin: string;
+            securityOrigin?: string;
+            /**
+             * Storage key.
+             */
+            storageKey?: string;
+            /**
+             * Storage bucket. If not specified, it uses the default bucket.
+             */
+            storageBucket?: Storage.StorageBucket;
         }
 
         export interface RequestDatabaseNamesResponse {
@@ -8076,7 +8776,7 @@ export namespace Protocol {
             /**
              * Editing commands to send with the key event (e.g., 'selectAll') (default: []).
              * These are related to but not equal the command names used in `document.execCommand` and NSStandardKeyBindingResponding.
-             * See https://source.chromium.org/chromium/chromium/src/+/master:third_party/blink/renderer/core/editing/commands/editor_command_names.h for valid command names.
+             * See https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/editing/commands/editor_command_names.h for valid command names.
              */
             commands?: string[];
         }
@@ -8924,7 +9624,7 @@ export namespace Protocol {
         /**
          * Resource type as it was perceived by the rendering engine.
          */
-        export type ResourceType = ('Document' | 'Stylesheet' | 'Image' | 'Media' | 'Font' | 'Script' | 'TextTrack' | 'XHR' | 'Fetch' | 'EventSource' | 'WebSocket' | 'Manifest' | 'SignedExchange' | 'Ping' | 'CSPViolationReport' | 'Preflight' | 'Other');
+        export type ResourceType = ('Document' | 'Stylesheet' | 'Image' | 'Media' | 'Font' | 'Script' | 'TextTrack' | 'XHR' | 'Fetch' | 'Prefetch' | 'EventSource' | 'WebSocket' | 'Manifest' | 'SignedExchange' | 'Ping' | 'CSPViolationReport' | 'Preflight' | 'Other');
 
         /**
          * Unique loader identifier.
@@ -9060,6 +9760,10 @@ export namespace Protocol {
              * Time the server finished pushing request.
              */
             pushEnd: number;
+            /**
+             * Started receiving response headers.
+             */
+            receiveHeadersStart: number;
             /**
              * Finished receiving response headers.
              */
@@ -9244,6 +9948,16 @@ export namespace Protocol {
              * Whether the request complied with Certificate Transparency policy
              */
             certificateTransparencyCompliance: CertificateTransparencyCompliance;
+            /**
+             * The signature algorithm used by the server in the TLS server signature,
+             * represented as a TLS SignatureScheme code point. Omitted if not
+             * applicable or not known.
+             */
+            serverSignatureAlgorithm?: integer;
+            /**
+             * Whether the connection used Encrypted ClientHello
+             */
+            encryptedClientHello: boolean;
         }
 
         /**
@@ -9259,7 +9973,7 @@ export namespace Protocol {
         /**
          * The reason why request was blocked.
          */
-        export type CorsError = ('DisallowedByMode' | 'InvalidResponse' | 'WildcardOriginNotAllowed' | 'MissingAllowOriginHeader' | 'MultipleAllowOriginValues' | 'InvalidAllowOriginValue' | 'AllowOriginMismatch' | 'InvalidAllowCredentials' | 'CorsDisabledScheme' | 'PreflightInvalidStatus' | 'PreflightDisallowedRedirect' | 'PreflightWildcardOriginNotAllowed' | 'PreflightMissingAllowOriginHeader' | 'PreflightMultipleAllowOriginValues' | 'PreflightInvalidAllowOriginValue' | 'PreflightAllowOriginMismatch' | 'PreflightInvalidAllowCredentials' | 'PreflightMissingAllowExternal' | 'PreflightInvalidAllowExternal' | 'PreflightMissingAllowPrivateNetwork' | 'PreflightInvalidAllowPrivateNetwork' | 'InvalidAllowMethodsPreflightResponse' | 'InvalidAllowHeadersPreflightResponse' | 'MethodDisallowedByPreflightResponse' | 'HeaderDisallowedByPreflightResponse' | 'RedirectContainsCredentials' | 'InsecurePrivateNetwork' | 'InvalidPrivateNetworkAccess' | 'UnexpectedPrivateNetworkAccess' | 'NoCorsRedirectModeNotFollow');
+        export type CorsError = ('DisallowedByMode' | 'InvalidResponse' | 'WildcardOriginNotAllowed' | 'MissingAllowOriginHeader' | 'MultipleAllowOriginValues' | 'InvalidAllowOriginValue' | 'AllowOriginMismatch' | 'InvalidAllowCredentials' | 'CorsDisabledScheme' | 'PreflightInvalidStatus' | 'PreflightDisallowedRedirect' | 'PreflightWildcardOriginNotAllowed' | 'PreflightMissingAllowOriginHeader' | 'PreflightMultipleAllowOriginValues' | 'PreflightInvalidAllowOriginValue' | 'PreflightAllowOriginMismatch' | 'PreflightInvalidAllowCredentials' | 'PreflightMissingAllowExternal' | 'PreflightInvalidAllowExternal' | 'PreflightMissingAllowPrivateNetwork' | 'PreflightInvalidAllowPrivateNetwork' | 'InvalidAllowMethodsPreflightResponse' | 'InvalidAllowHeadersPreflightResponse' | 'MethodDisallowedByPreflightResponse' | 'HeaderDisallowedByPreflightResponse' | 'RedirectContainsCredentials' | 'InsecurePrivateNetwork' | 'InvalidPrivateNetworkAccess' | 'UnexpectedPrivateNetworkAccess' | 'NoCorsRedirectModeNotFollow' | 'PreflightMissingPrivateNetworkAccessId' | 'PreflightMissingPrivateNetworkAccessName' | 'PrivateNetworkAccessPermissionUnavailable' | 'PrivateNetworkAccessPermissionDenied');
 
         export interface CorsErrorStatus {
             corsError: CorsError;
@@ -9282,9 +9996,9 @@ export namespace Protocol {
          * are specified in third_party/blink/renderer/core/fetch/trust_token.idl.
          */
         export interface TrustTokenParams {
-            type: TrustTokenOperationType;
+            operation: TrustTokenOperationType;
             /**
-             * Only set for "token-redemption" type and determine whether
+             * Only set for "token-redemption" operation and determine whether
              * to request a fresh SRR or use a still valid cached SRR. (TrustTokenParamsRefreshPolicy enum)
              */
             refreshPolicy: ('UseCached' | 'Refresh');
@@ -9297,6 +10011,11 @@ export namespace Protocol {
 
         export type TrustTokenOperationType = ('Issuance' | 'Redemption' | 'Signing');
 
+        /**
+         * The reason why Chrome uses a specific transport protocol for HTTP semantics.
+         */
+        export type AlternateProtocolUsage = ('alternativeJobWonWithoutRace' | 'alternativeJobWonRace' | 'mainJobWonRace' | 'mappingMissing' | 'broken' | 'dnsAlpnH3JobWonWithoutRace' | 'dnsAlpnH3JobWonRace' | 'unspecifiedReason');
+
         /**
          * HTTP response data.
          */
@@ -9385,6 +10104,10 @@ export namespace Protocol {
              * Protocol used to fetch this request.
              */
             protocol?: string;
+            /**
+             * The reason why Chrome uses a specific transport protocol for HTTP semantics.
+             */
+            alternateProtocolUsage?: AlternateProtocolUsage;
             /**
              * Security state of the request resource.
              */
@@ -9594,12 +10317,12 @@ export namespace Protocol {
         /**
          * Types of reasons why a cookie may not be stored from a response.
          */
-        export type SetCookieBlockedReason = ('SecureOnly' | 'SameSiteStrict' | 'SameSiteLax' | 'SameSiteUnspecifiedTreatedAsLax' | 'SameSiteNoneInsecure' | 'UserPreferences' | 'SyntaxError' | 'SchemeNotSupported' | 'OverwriteSecure' | 'InvalidDomain' | 'InvalidPrefix' | 'UnknownError' | 'SchemefulSameSiteStrict' | 'SchemefulSameSiteLax' | 'SchemefulSameSiteUnspecifiedTreatedAsLax' | 'SamePartyFromCrossPartyContext' | 'SamePartyConflictsWithOtherAttributes' | 'NameValuePairExceedsMaxSize');
+        export type SetCookieBlockedReason = ('SecureOnly' | 'SameSiteStrict' | 'SameSiteLax' | 'SameSiteUnspecifiedTreatedAsLax' | 'SameSiteNoneInsecure' | 'UserPreferences' | 'ThirdPartyBlockedInFirstPartySet' | 'SyntaxError' | 'SchemeNotSupported' | 'OverwriteSecure' | 'InvalidDomain' | 'InvalidPrefix' | 'UnknownError' | 'SchemefulSameSiteStrict' | 'SchemefulSameSiteLax' | 'SchemefulSameSiteUnspecifiedTreatedAsLax' | 'SamePartyFromCrossPartyContext' | 'SamePartyConflictsWithOtherAttributes' | 'NameValuePairExceedsMaxSize');
 
         /**
          * Types of reasons why a cookie may not be sent with a request.
          */
-        export type CookieBlockedReason = ('SecureOnly' | 'NotOnPath' | 'DomainMismatch' | 'SameSiteStrict' | 'SameSiteLax' | 'SameSiteUnspecifiedTreatedAsLax' | 'SameSiteNoneInsecure' | 'UserPreferences' | 'UnknownError' | 'SchemefulSameSiteStrict' | 'SchemefulSameSiteLax' | 'SchemefulSameSiteUnspecifiedTreatedAsLax' | 'SamePartyFromCrossPartyContext' | 'NameValuePairExceedsMaxSize');
+        export type CookieBlockedReason = ('SecureOnly' | 'NotOnPath' | 'DomainMismatch' | 'SameSiteStrict' | 'SameSiteLax' | 'SameSiteUnspecifiedTreatedAsLax' | 'SameSiteNoneInsecure' | 'UserPreferences' | 'ThirdPartyBlockedInFirstPartySet' | 'UnknownError' | 'SchemefulSameSiteStrict' | 'SchemefulSameSiteLax' | 'SchemefulSameSiteUnspecifiedTreatedAsLax' | 'SamePartyFromCrossPartyContext' | 'NameValuePairExceedsMaxSize');
 
         /**
          * A cookie which was not stored from a response with the corresponding reason.
@@ -9922,7 +10645,7 @@ export namespace Protocol {
             privateNetworkRequestPolicy: PrivateNetworkRequestPolicy;
         }
 
-        export type CrossOriginOpenerPolicyValue = ('SameOrigin' | 'SameOriginAllowPopups' | 'UnsafeNone' | 'SameOriginPlusCoep');
+        export type CrossOriginOpenerPolicyValue = ('SameOrigin' | 'SameOriginAllowPopups' | 'RestrictProperties' | 'UnsafeNone' | 'SameOriginPlusCoep' | 'RestrictPropertiesPlusCoep');
 
         export interface CrossOriginOpenerPolicyStatus {
             value: CrossOriginOpenerPolicyValue;
@@ -9940,9 +10663,18 @@ export namespace Protocol {
             reportOnlyReportingEndpoint?: string;
         }
 
+        export type ContentSecurityPolicySource = ('HTTP' | 'Meta');
+
+        export interface ContentSecurityPolicyStatus {
+            effectiveDirectives: string;
+            isEnforced: boolean;
+            source: ContentSecurityPolicySource;
+        }
+
         export interface SecurityIsolationStatus {
             coop?: CrossOriginOpenerPolicyStatus;
             coep?: CrossOriginEmbedderPolicyStatus;
+            csp?: ContentSecurityPolicyStatus[];
         }
 
         /**
@@ -10956,6 +11688,10 @@ export namespace Protocol {
              * The client security state set for the request.
              */
             clientSecurityState?: ClientSecurityState;
+            /**
+             * Whether the site has partitioned cookies stored in a partition different than the current one.
+             */
+            siteHasCookieInOtherPartition?: boolean;
         }
 
         /**
@@ -10994,15 +11730,26 @@ export namespace Protocol {
              * available, such as in the case of HTTP/2 or QUIC.
              */
             headersText?: string;
+            /**
+             * The cookie partition key that will be used to store partitioned cookies set in this response.
+             * Only sent when partitioned cookies are enabled.
+             */
+            cookiePartitionKey?: string;
+            /**
+             * True if partitioned cookies are enabled, but the partition key is not serializeable to string.
+             */
+            cookiePartitionKeyOpaque?: boolean;
         }
 
         export const enum TrustTokenOperationDoneEventStatus {
             Ok = 'Ok',
             InvalidArgument = 'InvalidArgument',
+            MissingIssuerKeys = 'MissingIssuerKeys',
             FailedPrecondition = 'FailedPrecondition',
             ResourceExhausted = 'ResourceExhausted',
             AlreadyExists = 'AlreadyExists',
             Unavailable = 'Unavailable',
+            Unauthorized = 'Unauthorized',
             BadResponse = 'BadResponse',
             InternalError = 'InternalError',
             UnknownError = 'UnknownError',
@@ -11022,7 +11769,7 @@ export namespace Protocol {
              * of the operation already exists und thus, the operation was abort
              * preemptively (e.g. a cache hit). (TrustTokenOperationDoneEventStatus enum)
              */
-            status: ('Ok' | 'InvalidArgument' | 'FailedPrecondition' | 'ResourceExhausted' | 'AlreadyExists' | 'Unavailable' | 'BadResponse' | 'InternalError' | 'UnknownError' | 'FulfilledLocally');
+            status: ('Ok' | 'InvalidArgument' | 'MissingIssuerKeys' | 'FailedPrecondition' | 'ResourceExhausted' | 'AlreadyExists' | 'Unavailable' | 'Unauthorized' | 'BadResponse' | 'InternalError' | 'UnknownError' | 'FulfilledLocally');
             type: TrustTokenOperationType;
             requestId: RequestId;
             /**
@@ -11412,7 +12159,7 @@ export namespace Protocol {
             containerQueryContainerHighlightConfig?: ContainerQueryContainerHighlightConfig;
         }
 
-        export type ColorFormat = ('rgb' | 'hsl' | 'hex');
+        export type ColorFormat = ('rgb' | 'hsl' | 'hwb' | 'hex');
 
         /**
          * Configurations for Persistent Grid Highlight
@@ -11869,6 +12616,22 @@ export namespace Protocol {
             explanations?: AdFrameExplanation[];
         }
 
+        /**
+         * Identifies the bottom-most script which caused the frame to be labelled
+         * as an ad.
+         */
+        export interface AdScriptId {
+            /**
+             * Script Id of the bottom-most script which caused the frame to be labelled
+             * as an ad.
+             */
+            scriptId: Runtime.ScriptId;
+            /**
+             * Id of adScriptId's debugger.
+             */
+            debuggerId: Runtime.UniqueDebuggerId;
+        }
+
         /**
          * Indicates whether the frame is a secure context and why it is the case.
          */
@@ -11885,12 +12648,12 @@ export namespace Protocol {
          * All Permissions Policy features. This enum should match the one defined
          * in third_party/blink/renderer/core/permissions_policy/permissions_policy_features.json5.
          */
-        export type PermissionsPolicyFeature = ('accelerometer' | 'ambient-light-sensor' | 'attribution-reporting' | 'autoplay' | 'camera' | 'ch-dpr' | 'ch-device-memory' | 'ch-downlink' | 'ch-ect' | 'ch-prefers-color-scheme' | 'ch-rtt' | 'ch-ua' | 'ch-ua-arch' | 'ch-ua-bitness' | 'ch-ua-platform' | 'ch-ua-model' | 'ch-ua-mobile' | 'ch-ua-full-version' | 'ch-ua-full-version-list' | 'ch-ua-platform-version' | 'ch-ua-reduced' | 'ch-viewport-height' | 'ch-viewport-width' | 'ch-width' | 'clipboard-read' | 'clipboard-write' | 'cross-origin-isolated' | 'direct-sockets' | 'display-capture' | 'document-domain' | 'encrypted-media' | 'execution-while-out-of-viewport' | 'execution-while-not-rendered' | 'focus-without-user-activation' | 'fullscreen' | 'frobulate' | 'gamepad' | 'geolocation' | 'gyroscope' | 'hid' | 'idle-detection' | 'interest-cohort' | 'join-ad-interest-group' | 'keyboard-map' | 'magnetometer' | 'microphone' | 'midi' | 'otp-credentials' | 'payment' | 'picture-in-picture' | 'publickey-credentials-get' | 'run-ad-auction' | 'screen-wake-lock' | 'serial' | 'shared-autofill' | 'storage-access-api' | 'sync-xhr' | 'trust-token-redemption' | 'usb' | 'vertical-scroll' | 'web-share' | 'window-placement' | 'xr-spatial-tracking');
+        export type PermissionsPolicyFeature = ('accelerometer' | 'ambient-light-sensor' | 'attribution-reporting' | 'autoplay' | 'bluetooth' | 'browsing-topics' | 'camera' | 'ch-dpr' | 'ch-device-memory' | 'ch-downlink' | 'ch-ect' | 'ch-prefers-color-scheme' | 'ch-prefers-reduced-motion' | 'ch-rtt' | 'ch-save-data' | 'ch-ua' | 'ch-ua-arch' | 'ch-ua-bitness' | 'ch-ua-platform' | 'ch-ua-model' | 'ch-ua-mobile' | 'ch-ua-form-factor' | 'ch-ua-full-version' | 'ch-ua-full-version-list' | 'ch-ua-platform-version' | 'ch-ua-wow64' | 'ch-viewport-height' | 'ch-viewport-width' | 'ch-width' | 'clipboard-read' | 'clipboard-write' | 'compute-pressure' | 'cross-origin-isolated' | 'direct-sockets' | 'display-capture' | 'document-domain' | 'encrypted-media' | 'execution-while-out-of-viewport' | 'execution-while-not-rendered' | 'focus-without-user-activation' | 'fullscreen' | 'frobulate' | 'gamepad' | 'geolocation' | 'gyroscope' | 'hid' | 'identity-credentials-get' | 'idle-detection' | 'interest-cohort' | 'join-ad-interest-group' | 'keyboard-map' | 'local-fonts' | 'magnetometer' | 'microphone' | 'midi' | 'otp-credentials' | 'payment' | 'picture-in-picture' | 'private-aggregation' | 'private-state-token-issuance' | 'private-state-token-redemption' | 'publickey-credentials-get' | 'run-ad-auction' | 'screen-wake-lock' | 'serial' | 'shared-autofill' | 'shared-storage' | 'shared-storage-select-url' | 'smart-card' | 'storage-access' | 'sync-xhr' | 'unload' | 'usb' | 'vertical-scroll' | 'web-share' | 'window-management' | 'window-placement' | 'xr-spatial-tracking');
 
         /**
          * Reason for a permissions policy feature to be disabled.
          */
-        export type PermissionsPolicyBlockReason = ('Header' | 'IframeAttribute');
+        export type PermissionsPolicyBlockReason = ('Header' | 'IframeAttribute' | 'InFencedFrameTree' | 'InIsolatedApp');
 
         export interface PermissionsPolicyBlockLocator {
             frameId: FrameId;
@@ -12294,9 +13057,23 @@ export namespace Protocol {
              */
             fantasy?: string;
             /**
-             * The pictograph font-family.
+             * The math font-family.
+             */
+            math?: string;
+        }
+
+        /**
+         * Font families collection for a script.
+         */
+        export interface ScriptFontFamilies {
+            /**
+             * Name of the script which these font families are defined for.
+             */
+            script: string;
+            /**
+             * Generic font families collection for the script.
              */
-            pictograph?: string;
+            fontFamilies: FontFamilies;
         }
 
         /**
@@ -12362,6 +13139,11 @@ export namespace Protocol {
             eager?: boolean;
         }
 
+        /**
+         * Enum of possible auto-reponse for permisison / prompt dialogs.
+         */
+        export type AutoResponseMode = ('none' | 'autoAccept' | 'autoReject' | 'autoOptOut');
+
         /**
          * The type of a frameNavigated event.
          */
@@ -12370,7 +13152,7 @@ export namespace Protocol {
         /**
          * List of not restored reasons for back-forward cache.
          */
-        export type BackForwardCacheNotRestoredReason = ('NotMainFrame' | 'BackForwardCacheDisabled' | 'RelatedActiveContentsExist' | 'HTTPStatusNotOK' | 'SchemeNotHTTPOrHTTPS' | 'Loading' | 'WasGrantedMediaAccess' | 'DisableForRenderFrameHostCalled' | 'DomainNotAllowed' | 'HTTPMethodNotGET' | 'SubframeIsNavigating' | 'Timeout' | 'CacheLimit' | 'JavaScriptExecution' | 'RendererProcessKilled' | 'RendererProcessCrashed' | 'GrantedMediaStreamAccess' | 'SchedulerTrackedFeatureUsed' | 'ConflictingBrowsingInstance' | 'CacheFlushed' | 'ServiceWorkerVersionActivation' | 'SessionRestored' | 'ServiceWorkerPostMessage' | 'EnteredBackForwardCacheBeforeServiceWorkerHostAdded' | 'RenderFrameHostReused_SameSite' | 'RenderFrameHostReused_CrossSite' | 'ServiceWorkerClaim' | 'IgnoreEventAndEvict' | 'HaveInnerContents' | 'TimeoutPuttingInCache' | 'BackForwardCacheDisabledByLowMemory' | 'BackForwardCacheDisabledByCommandLine' | 'NetworkRequestDatapipeDrainedAsBytesConsumer' | 'NetworkRequestRedirected' | 'NetworkRequestTimeout' | 'NetworkExceedsBufferLimit' | 'NavigationCancelledWhileRestoring' | 'NotMostRecentNavigationEntry' | 'BackForwardCacheDisabledForPrerender' | 'UserAgentOverrideDiffers' | 'ForegroundCacheLimit' | 'BrowsingInstanceNotSwapped' | 'BackForwardCacheDisabledForDelegate' | 'OptInUnloadHeaderNotPresent' | 'UnloadHandlerExistsInMainFrame' | 'UnloadHandlerExistsInSubFrame' | 'ServiceWorkerUnregistration' | 'CacheControlNoStore' | 'CacheControlNoStoreCookieModified' | 'CacheControlNoStoreHTTPOnlyCookieModified' | 'NoResponseHead' | 'Unknown' | 'ActivationNavigationsDisallowedForBug1234857' | 'WebSocket' | 'WebTransport' | 'WebRTC' | 'MainResourceHasCacheControlNoStore' | 'MainResourceHasCacheControlNoCache' | 'SubresourceHasCacheControlNoStore' | 'SubresourceHasCacheControlNoCache' | 'ContainsPlugins' | 'DocumentLoaded' | 'DedicatedWorkerOrWorklet' | 'OutstandingNetworkRequestOthers' | 'OutstandingIndexedDBTransaction' | 'RequestedNotificationsPermission' | 'RequestedMIDIPermission' | 'RequestedAudioCapturePermission' | 'RequestedVideoCapturePermission' | 'RequestedBackForwardCacheBlockedSensors' | 'RequestedBackgroundWorkPermission' | 'BroadcastChannel' | 'IndexedDBConnection' | 'WebXR' | 'SharedWorker' | 'WebLocks' | 'WebHID' | 'WebShare' | 'RequestedStorageAccessGrant' | 'WebNfc' | 'OutstandingNetworkRequestFetch' | 'OutstandingNetworkRequestXHR' | 'AppBanner' | 'Printing' | 'WebDatabase' | 'PictureInPicture' | 'Portal' | 'SpeechRecognizer' | 'IdleManager' | 'PaymentManager' | 'SpeechSynthesis' | 'KeyboardLock' | 'WebOTPService' | 'OutstandingNetworkRequestDirectSocket' | 'InjectedJavascript' | 'InjectedStyleSheet' | 'Dummy' | 'ContentSecurityHandler' | 'ContentWebAuthenticationAPI' | 'ContentFileChooser' | 'ContentSerial' | 'ContentFileSystemAccess' | 'ContentMediaDevicesDispatcherHost' | 'ContentWebBluetooth' | 'ContentWebUSB' | 'ContentMediaSession' | 'ContentMediaSessionService' | 'ContentScreenReader' | 'EmbedderPopupBlockerTabHelper' | 'EmbedderSafeBrowsingTriggeredPopupBlocker' | 'EmbedderSafeBrowsingThreatDetails' | 'EmbedderAppBannerManager' | 'EmbedderDomDistillerViewerSource' | 'EmbedderDomDistillerSelfDeletingRequestDelegate' | 'EmbedderOomInterventionTabHelper' | 'EmbedderOfflinePage' | 'EmbedderChromePasswordManagerClientBindCredentialManager' | 'EmbedderPermissionRequestManager' | 'EmbedderModalDialog' | 'EmbedderExtensions' | 'EmbedderExtensionMessaging' | 'EmbedderExtensionMessagingForOpenPort' | 'EmbedderExtensionSentMessageToCachedFrame');
+        export type BackForwardCacheNotRestoredReason = ('NotPrimaryMainFrame' | 'BackForwardCacheDisabled' | 'RelatedActiveContentsExist' | 'HTTPStatusNotOK' | 'SchemeNotHTTPOrHTTPS' | 'Loading' | 'WasGrantedMediaAccess' | 'DisableForRenderFrameHostCalled' | 'DomainNotAllowed' | 'HTTPMethodNotGET' | 'SubframeIsNavigating' | 'Timeout' | 'CacheLimit' | 'JavaScriptExecution' | 'RendererProcessKilled' | 'RendererProcessCrashed' | 'SchedulerTrackedFeatureUsed' | 'ConflictingBrowsingInstance' | 'CacheFlushed' | 'ServiceWorkerVersionActivation' | 'SessionRestored' | 'ServiceWorkerPostMessage' | 'EnteredBackForwardCacheBeforeServiceWorkerHostAdded' | 'RenderFrameHostReused_SameSite' | 'RenderFrameHostReused_CrossSite' | 'ServiceWorkerClaim' | 'IgnoreEventAndEvict' | 'HaveInnerContents' | 'TimeoutPuttingInCache' | 'BackForwardCacheDisabledByLowMemory' | 'BackForwardCacheDisabledByCommandLine' | 'NetworkRequestDatapipeDrainedAsBytesConsumer' | 'NetworkRequestRedirected' | 'NetworkRequestTimeout' | 'NetworkExceedsBufferLimit' | 'NavigationCancelledWhileRestoring' | 'NotMostRecentNavigationEntry' | 'BackForwardCacheDisabledForPrerender' | 'UserAgentOverrideDiffers' | 'ForegroundCacheLimit' | 'BrowsingInstanceNotSwapped' | 'BackForwardCacheDisabledForDelegate' | 'UnloadHandlerExistsInMainFrame' | 'UnloadHandlerExistsInSubFrame' | 'ServiceWorkerUnregistration' | 'CacheControlNoStore' | 'CacheControlNoStoreCookieModified' | 'CacheControlNoStoreHTTPOnlyCookieModified' | 'NoResponseHead' | 'Unknown' | 'ActivationNavigationsDisallowedForBug1234857' | 'ErrorDocument' | 'FencedFramesEmbedder' | 'CookieDisabled' | 'HTTPAuthRequired' | 'WebSocket' | 'WebTransport' | 'WebRTC' | 'MainResourceHasCacheControlNoStore' | 'MainResourceHasCacheControlNoCache' | 'SubresourceHasCacheControlNoStore' | 'SubresourceHasCacheControlNoCache' | 'ContainsPlugins' | 'DocumentLoaded' | 'DedicatedWorkerOrWorklet' | 'OutstandingNetworkRequestOthers' | 'RequestedMIDIPermission' | 'RequestedAudioCapturePermission' | 'RequestedVideoCapturePermission' | 'RequestedBackForwardCacheBlockedSensors' | 'RequestedBackgroundWorkPermission' | 'BroadcastChannel' | 'WebXR' | 'SharedWorker' | 'WebLocks' | 'WebHID' | 'WebShare' | 'RequestedStorageAccessGrant' | 'WebNfc' | 'OutstandingNetworkRequestFetch' | 'OutstandingNetworkRequestXHR' | 'AppBanner' | 'Printing' | 'WebDatabase' | 'PictureInPicture' | 'Portal' | 'SpeechRecognizer' | 'IdleManager' | 'PaymentManager' | 'SpeechSynthesis' | 'KeyboardLock' | 'WebOTPService' | 'OutstandingNetworkRequestDirectSocket' | 'InjectedJavascript' | 'InjectedStyleSheet' | 'KeepaliveRequest' | 'IndexedDBEvent' | 'Dummy' | 'JsNetworkRequestReceivedCacheControlNoStoreResource' | 'WebRTCSticky' | 'WebTransportSticky' | 'WebSocketSticky' | 'ContentSecurityHandler' | 'ContentWebAuthenticationAPI' | 'ContentFileChooser' | 'ContentSerial' | 'ContentFileSystemAccess' | 'ContentMediaDevicesDispatcherHost' | 'ContentWebBluetooth' | 'ContentWebUSB' | 'ContentMediaSessionService' | 'ContentScreenReader' | 'EmbedderPopupBlockerTabHelper' | 'EmbedderSafeBrowsingTriggeredPopupBlocker' | 'EmbedderSafeBrowsingThreatDetails' | 'EmbedderAppBannerManager' | 'EmbedderDomDistillerViewerSource' | 'EmbedderDomDistillerSelfDeletingRequestDelegate' | 'EmbedderOomInterventionTabHelper' | 'EmbedderOfflinePage' | 'EmbedderChromePasswordManagerClientBindCredentialManager' | 'EmbedderPermissionRequestManager' | 'EmbedderModalDialog' | 'EmbedderExtensions' | 'EmbedderExtensionMessaging' | 'EmbedderExtensionMessagingForOpenPort' | 'EmbedderExtensionSentMessageToCachedFrame');
 
         /**
          * Types of not restored reasons for back-forward cache.
@@ -12386,6 +13168,12 @@ export namespace Protocol {
              * Not restored reason
              */
             reason: BackForwardCacheNotRestoredReason;
+            /**
+             * Context associated with the reason. The meaning of this context is
+             * dependent on the reason:
+             * - EmbedderExtensionSentMessageToCachedFrame: the extension ID.
+             */
+            context?: string;
         }
 
         export interface BackForwardCacheNotRestoredExplanationTree {
@@ -12427,6 +13215,11 @@ export namespace Protocol {
              * to false.
              */
             includeCommandLineAPI?: boolean;
+            /**
+             * If true, runs the script immediately on existing execution contexts or worlds.
+             * Default: false.
+             */
+            runImmediately?: boolean;
         }
 
         export interface AddScriptToEvaluateOnNewDocumentResponse {
@@ -12463,6 +13256,10 @@ export namespace Protocol {
              * Capture the screenshot beyond the viewport. Defaults to false.
              */
             captureBeyondViewport?: boolean;
+            /**
+             * Optimize image encoding for speed, not for resulting size (defaults to false)
+             */
+            optimizeForSpeed?: boolean;
         }
 
         export interface CaptureScreenshotResponse {
@@ -12559,6 +13356,18 @@ export namespace Protocol {
             recommendedId?: string;
         }
 
+        export interface GetAdScriptIdRequest {
+            frameId: FrameId;
+        }
+
+        export interface GetAdScriptIdResponse {
+            /**
+             * 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.
+             */
+            adScriptId?: AdScriptId;
+        }
+
         export interface GetCookiesResponse {
             /**
              * Array of cookie objects.
@@ -12575,15 +13384,15 @@ export namespace Protocol {
 
         export interface GetLayoutMetricsResponse {
             /**
-             * Deprecated metrics relating to the layout viewport. Can be in DP or in CSS pixels depending on the `enable-use-zoom-for-dsf` flag. Use `cssLayoutViewport` instead.
+             * Deprecated metrics relating to the layout viewport. Is in device pixels. Use `cssLayoutViewport` instead.
              */
             layoutViewport: LayoutViewport;
             /**
-             * Deprecated metrics relating to the visual viewport. Can be in DP or in CSS pixels depending on the `enable-use-zoom-for-dsf` flag. Use `cssVisualViewport` instead.
+             * Deprecated metrics relating to the visual viewport. Is in device pixels. Use `cssVisualViewport` instead.
              */
             visualViewport: VisualViewport;
             /**
-             * Deprecated size of scrollable area. Can be in DP or in CSS pixels depending on the `enable-use-zoom-for-dsf` flag. Use `cssContentSize` instead.
+             * Deprecated size of scrollable area. Is in DP. Use `cssContentSize` instead.
              */
             contentSize: DOM.Rect;
             /**
@@ -12681,7 +13490,8 @@ export namespace Protocol {
              */
             frameId: FrameId;
             /**
-             * Loader identifier.
+             * Loader identifier. This is omitted in case of same-document navigation,
+             * as the previously committed loaderId would not change.
              */
             loaderId?: Network.LoaderId;
             /**
@@ -12744,15 +13554,16 @@ export namespace Protocol {
              */
             marginRight?: number;
             /**
-             * Paper ranges to print, e.g., '1-5, 8, 11-13'. Defaults to the empty string, which means
-             * print all pages.
+             * Paper ranges to print, one based, e.g., '1-5, 8, 11-13'. Pages are
+             * printed in the document order, not in the order specified, and no
+             * more than once.
+             * Defaults to empty string, which implies the entire document is printed.
+             * The page numbers are quietly capped to actual page count of the
+             * document, and ranges beyond the end of the document are ignored.
+             * If this results in no pages to print, an error is reported.
+             * It is an error to specify a range with start greater than end.
              */
             pageRanges?: string;
-            /**
-             * Whether to silently ignore invalid but successfully parsed page ranges, such as '3-2'.
-             * Defaults to false.
-             */
-            ignoreInvalidPageRanges?: boolean;
             /**
              * HTML template for the print header. Should be valid HTML markup with following
              * classes used to inject printing values into them:
@@ -12950,6 +13761,10 @@ export namespace Protocol {
              * Specifies font families to set. If a font family is not specified, it won't be changed.
              */
             fontFamilies: FontFamilies;
+            /**
+             * Specifies font families to set for individual scripts.
+             */
+            forScripts?: ScriptFontFamilies[];
         }
 
         export interface SetFontSizesRequest {
@@ -13078,17 +13893,12 @@ export namespace Protocol {
             data: string;
         }
 
-        export const enum SetSPCTransactionModeRequestMode {
-            None = 'none',
-            Autoaccept = 'autoaccept',
-            Autoreject = 'autoreject',
+        export interface SetSPCTransactionModeRequest {
+            mode: AutoResponseMode;
         }
 
-        export interface SetSPCTransactionModeRequest {
-            /**
-             *  (SetSPCTransactionModeRequestMode enum)
-             */
-            mode: ('none' | 'autoaccept' | 'autoreject');
+        export interface SetRPHRegistrationModeRequest {
+            mode: AutoResponseMode;
         }
 
         export interface GenerateTestReportRequest {
@@ -13106,6 +13916,10 @@ export namespace Protocol {
             enabled: boolean;
         }
 
+        export interface SetPrerenderingAllowedRequest {
+            isAllowed: boolean;
+        }
+
         export interface DomContentEventFiredEvent {
             timestamp: Network.MonotonicTime;
         }
@@ -13123,14 +13937,14 @@ export namespace Protocol {
              * Id of the frame containing input node.
              */
             frameId: FrameId;
-            /**
-             * Input node id.
-             */
-            backendNodeId: DOM.BackendNodeId;
             /**
              * Input mode. (FileChooserOpenedEventMode enum)
              */
             mode: ('selectSingle' | 'selectMultiple');
+            /**
+             * Input node id. Only present for file choosers opened via an <input type="file"> element.
+             */
+            backendNodeId?: DOM.BackendNodeId;
         }
 
         /**
@@ -14044,10 +14858,12 @@ export namespace Protocol {
 
     export namespace Storage {
 
+        export type SerializedStorageKey = string;
+
         /**
          * Enum of possible storage types.
          */
-        export type StorageType = ('appcache' | 'cookies' | 'file_systems' | 'indexeddb' | 'local_storage' | 'shader_cache' | 'websql' | 'service_workers' | 'cache_storage' | 'all' | 'other');
+        export type StorageType = ('appcache' | 'cookies' | 'file_systems' | 'indexeddb' | 'local_storage' | 'shader_cache' | 'websql' | 'service_workers' | 'cache_storage' | 'interest_groups' | 'shared_storage' | 'storage_buckets' | 'all' | 'other');
 
         /**
          * Usage for a storage type.
@@ -14072,6 +14888,210 @@ export namespace Protocol {
             count: number;
         }
 
+        /**
+         * Enum of interest group access types.
+         */
+        export type InterestGroupAccessType = ('join' | 'leave' | 'update' | 'loaded' | 'bid' | 'win');
+
+        /**
+         * Ad advertising element inside an interest group.
+         */
+        export interface InterestGroupAd {
+            renderUrl: string;
+            metadata?: string;
+        }
+
+        /**
+         * The full details of an interest group.
+         */
+        export interface InterestGroupDetails {
+            ownerOrigin: string;
+            name: string;
+            expirationTime: Network.TimeSinceEpoch;
+            joiningOrigin: string;
+            biddingUrl?: string;
+            biddingWasmHelperUrl?: string;
+            updateUrl?: string;
+            trustedBiddingSignalsUrl?: string;
+            trustedBiddingSignalsKeys: string[];
+            userBiddingSignals?: string;
+            ads: InterestGroupAd[];
+            adComponents: InterestGroupAd[];
+        }
+
+        /**
+         * Enum of shared storage access types.
+         */
+        export type SharedStorageAccessType = ('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.
+         */
+        export interface SharedStorageEntry {
+            key: string;
+            value: string;
+        }
+
+        /**
+         * Details for an origin's shared storage.
+         */
+        export interface SharedStorageMetadata {
+            creationTime: Network.TimeSinceEpoch;
+            length: integer;
+            remainingBudget: number;
+        }
+
+        /**
+         * Pair of reporting metadata details for a candidate URL for `selectURL()`.
+         */
+        export interface SharedStorageReportingMetadata {
+            eventType: string;
+            reportingUrl: string;
+        }
+
+        /**
+         * Bundles a candidate URL with its reporting metadata.
+         */
+        export interface SharedStorageUrlWithMetadata {
+            /**
+             * Spec of candidate URL.
+             */
+            url: string;
+            /**
+             * Any associated reporting metadata.
+             */
+            reportingMetadata: SharedStorageReportingMetadata[];
+        }
+
+        /**
+         * Bundles the parameters for shared storage access events whose
+         * presence/absence can vary according to SharedStorageAccessType.
+         */
+        export interface SharedStorageAccessParams {
+            /**
+             * Spec of the module script URL.
+             * Present only for SharedStorageAccessType.documentAddModule.
+             */
+            scriptSourceUrl?: string;
+            /**
+             * Name of the registered operation to be run.
+             * Present only for SharedStorageAccessType.documentRun and
+             * SharedStorageAccessType.documentSelectURL.
+             */
+            operationName?: string;
+            /**
+             * The operation's serialized data in bytes (converted to a string).
+             * Present only for SharedStorageAccessType.documentRun and
+             * SharedStorageAccessType.documentSelectURL.
+             */
+            serializedData?: string;
+            /**
+             * Array of candidate URLs' specs, along with any associated metadata.
+             * Present only for SharedStorageAccessType.documentSelectURL.
+             */
+            urlsWithMetadata?: SharedStorageUrlWithMetadata[];
+            /**
+             * 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.
+             */
+            key?: string;
+            /**
+             * Value for a specific entry in an origin's shared storage.
+             * Present only for SharedStorageAccessType.documentSet,
+             * SharedStorageAccessType.documentAppend,
+             * SharedStorageAccessType.workletSet, and
+             * SharedStorageAccessType.workletAppend.
+             */
+            value?: string;
+            /**
+             * Whether or not to set an entry for a key if that key is already present.
+             * Present only for SharedStorageAccessType.documentSet and
+             * SharedStorageAccessType.workletSet.
+             */
+            ignoreIfPresent?: boolean;
+        }
+
+        export type StorageBucketsDurability = ('relaxed' | 'strict');
+
+        export interface StorageBucket {
+            storageKey: SerializedStorageKey;
+            /**
+             * If not specified, it is the default bucket of the storageKey.
+             */
+            name?: string;
+        }
+
+        export interface StorageBucketInfo {
+            bucket: StorageBucket;
+            id: string;
+            expiration: Network.TimeSinceEpoch;
+            /**
+             * Storage quota (bytes).
+             */
+            quota: number;
+            persistent: boolean;
+            durability: StorageBucketsDurability;
+        }
+
+        export type AttributionReportingSourceType = ('navigation' | 'event');
+
+        export type UnsignedInt64AsBase10 = string;
+
+        export type UnsignedInt128AsBase16 = string;
+
+        export type SignedInt64AsBase10 = string;
+
+        export interface AttributionReportingFilterDataEntry {
+            key: string;
+            values: string[];
+        }
+
+        export interface AttributionReportingAggregationKeysEntry {
+            key: string;
+            value: UnsignedInt128AsBase16;
+        }
+
+        export interface AttributionReportingSourceRegistration {
+            time: Network.TimeSinceEpoch;
+            /**
+             * duration in seconds
+             */
+            expiry?: integer;
+            /**
+             * duration in seconds
+             */
+            eventReportWindow?: integer;
+            /**
+             * duration in seconds
+             */
+            aggregatableReportWindow?: integer;
+            type: AttributionReportingSourceType;
+            sourceOrigin: string;
+            reportingOrigin: string;
+            destinationSites: string[];
+            eventId: UnsignedInt64AsBase10;
+            priority: SignedInt64AsBase10;
+            filterData: AttributionReportingFilterDataEntry[];
+            aggregationKeys: AttributionReportingAggregationKeysEntry[];
+            debugKey?: UnsignedInt64AsBase10;
+        }
+
+        export type AttributionReportingSourceRegistrationResult = ('success' | 'internalError' | 'insufficientSourceCapacity' | 'insufficientUniqueDestinationCapacity' | 'excessiveReportingOrigins' | 'prohibitedByBrowserPolicy' | 'successNoised' | 'destinationReportingLimitReached' | 'destinationGlobalLimitReached' | 'destinationBothLimitsReached');
+
+        export interface GetStorageKeyForFrameRequest {
+            frameId: Page.FrameId;
+        }
+
+        export interface GetStorageKeyForFrameResponse {
+            storageKey: SerializedStorageKey;
+        }
+
         export interface ClearDataForOriginRequest {
             /**
              * Security origin.
@@ -14083,6 +15103,17 @@ export namespace Protocol {
             storageTypes: string;
         }
 
+        export interface ClearDataForStorageKeyRequest {
+            /**
+             * Storage key.
+             */
+            storageKey: string;
+            /**
+             * Comma separated list of StorageType to clear.
+             */
+            storageTypes: string;
+        }
+
         export interface GetCookiesRequest {
             /**
              * Browser context to use when called on the browser endpoint.
@@ -14165,6 +15196,13 @@ export namespace Protocol {
             origin: string;
         }
 
+        export interface TrackCacheStorageForStorageKeyRequest {
+            /**
+             * Storage key.
+             */
+            storageKey: string;
+        }
+
         export interface TrackIndexedDBForOriginRequest {
             /**
              * Security origin.
@@ -14172,6 +15210,13 @@ export namespace Protocol {
             origin: string;
         }
 
+        export interface TrackIndexedDBForStorageKeyRequest {
+            /**
+             * Storage key.
+             */
+            storageKey: string;
+        }
+
         export interface UntrackCacheStorageForOriginRequest {
             /**
              * Security origin.
@@ -14179,6 +15224,13 @@ export namespace Protocol {
             origin: string;
         }
 
+        export interface UntrackCacheStorageForStorageKeyRequest {
+            /**
+             * Storage key.
+             */
+            storageKey: string;
+        }
+
         export interface UntrackIndexedDBForOriginRequest {
             /**
              * Security origin.
@@ -14186,6 +15238,13 @@ export namespace Protocol {
             origin: string;
         }
 
+        export interface UntrackIndexedDBForStorageKeyRequest {
+            /**
+             * Storage key.
+             */
+            storageKey: string;
+        }
+
         export interface GetTrustTokensResponse {
             tokens: TrustTokens[];
         }
@@ -14201,6 +15260,87 @@ export namespace Protocol {
             didDeleteTokens: boolean;
         }
 
+        export interface GetInterestGroupDetailsRequest {
+            ownerOrigin: string;
+            name: string;
+        }
+
+        export interface GetInterestGroupDetailsResponse {
+            details: InterestGroupDetails;
+        }
+
+        export interface SetInterestGroupTrackingRequest {
+            enable: boolean;
+        }
+
+        export interface GetSharedStorageMetadataRequest {
+            ownerOrigin: string;
+        }
+
+        export interface GetSharedStorageMetadataResponse {
+            metadata: SharedStorageMetadata;
+        }
+
+        export interface GetSharedStorageEntriesRequest {
+            ownerOrigin: string;
+        }
+
+        export interface GetSharedStorageEntriesResponse {
+            entries: SharedStorageEntry[];
+        }
+
+        export interface SetSharedStorageEntryRequest {
+            ownerOrigin: string;
+            key: string;
+            value: string;
+            /**
+             * If `ignoreIfPresent` is included and true, then only sets the entry if
+             * `key` doesn't already exist.
+             */
+            ignoreIfPresent?: boolean;
+        }
+
+        export interface DeleteSharedStorageEntryRequest {
+            ownerOrigin: string;
+            key: string;
+        }
+
+        export interface ClearSharedStorageEntriesRequest {
+            ownerOrigin: string;
+        }
+
+        export interface ResetSharedStorageBudgetRequest {
+            ownerOrigin: string;
+        }
+
+        export interface SetSharedStorageTrackingRequest {
+            enable: boolean;
+        }
+
+        export interface SetStorageBucketTrackingRequest {
+            storageKey: string;
+            enable: boolean;
+        }
+
+        export interface DeleteStorageBucketRequest {
+            bucket: StorageBucket;
+        }
+
+        export interface RunBounceTrackingMitigationsResponse {
+            deletedSites: string[];
+        }
+
+        export interface SetAttributionReportingLocalTestingModeRequest {
+            /**
+             * If enabled, noise is suppressed and reports are sent immediately.
+             */
+            enabled: boolean;
+        }
+
+        export interface SetAttributionReportingTrackingRequest {
+            enable: boolean;
+        }
+
         /**
          * A cache's contents have been modified.
          */
@@ -14209,6 +15349,14 @@ export namespace Protocol {
              * Origin to update.
              */
             origin: string;
+            /**
+             * Storage key to update.
+             */
+            storageKey: string;
+            /**
+             * Storage bucket to update.
+             */
+            bucketId: string;
             /**
              * Name of cache in origin.
              */
@@ -14223,6 +15371,14 @@ export namespace Protocol {
              * Origin to update.
              */
             origin: string;
+            /**
+             * Storage key to update.
+             */
+            storageKey: string;
+            /**
+             * Storage bucket to update.
+             */
+            bucketId: string;
         }
 
         /**
@@ -14233,6 +15389,14 @@ export namespace Protocol {
              * Origin to update.
              */
             origin: string;
+            /**
+             * Storage key to update.
+             */
+            storageKey: string;
+            /**
+             * Storage bucket to update.
+             */
+            bucketId: string;
             /**
              * Database to update.
              */
@@ -14251,6 +15415,69 @@ export namespace Protocol {
              * Origin to update.
              */
             origin: string;
+            /**
+             * Storage key to update.
+             */
+            storageKey: string;
+            /**
+             * Storage bucket to update.
+             */
+            bucketId: string;
+        }
+
+        /**
+         * One of the interest groups was accessed by the associated page.
+         */
+        export interface InterestGroupAccessedEvent {
+            accessTime: Network.TimeSinceEpoch;
+            type: InterestGroupAccessType;
+            ownerOrigin: string;
+            name: string;
+        }
+
+        /**
+         * Shared storage was accessed by the associated page.
+         * The following parameters are included in all events.
+         */
+        export interface SharedStorageAccessedEvent {
+            /**
+             * Time of the access.
+             */
+            accessTime: Network.TimeSinceEpoch;
+            /**
+             * Enum value indicating the Shared Storage API method invoked.
+             */
+            type: SharedStorageAccessType;
+            /**
+             * DevTools Frame Token for the primary frame tree's root.
+             */
+            mainFrameId: Page.FrameId;
+            /**
+             * Serialized origin for the context that invoked the Shared Storage API.
+             */
+            ownerOrigin: string;
+            /**
+             * The sub-parameters warapped by `params` are all optional and their
+             * presence/absence depends on `type`.
+             */
+            params: SharedStorageAccessParams;
+        }
+
+        export interface StorageBucketCreatedOrUpdatedEvent {
+            bucketInfo: StorageBucketInfo;
+        }
+
+        export interface StorageBucketDeletedEvent {
+            bucketId: string;
+        }
+
+        /**
+         * TODO(crbug.com/1458532): Add other Attribution Reporting events, e.g.
+         * trigger registration.
+         */
+        export interface AttributionReportingSourceRegisteredEvent {
+            registration: AttributionReportingSourceRegistration;
+            result: AttributionReportingSourceRegistrationResult;
         }
     }
 
@@ -14460,6 +15687,14 @@ export namespace Protocol {
             commandLine: string;
         }
 
+        export interface GetFeatureStateRequest {
+            featureState: string;
+        }
+
+        export interface GetFeatureStateResponse {
+            featureEnabled: boolean;
+        }
+
         export interface GetProcessInfoResponse {
             /**
              * An array of process info blocks.
@@ -14502,8 +15737,37 @@ export namespace Protocol {
              */
             openerFrameId?: Page.FrameId;
             browserContextId?: Browser.BrowserContextID;
+            /**
+             * Provides additional details for specific target types. For example, for
+             * the type of "page", this may be set to "portal" or "prerender".
+             */
+            subtype?: string;
         }
 
+        /**
+         * A filter used by target query/discovery/auto-attach operations.
+         */
+        export interface FilterEntry {
+            /**
+             * If set, causes exclusion of mathcing targets from the list.
+             */
+            exclude?: boolean;
+            /**
+             * If not present, matches any type.
+             */
+            type?: string;
+        }
+
+        /**
+         * The entries in TargetFilter are matched sequentially against targets and
+         * the first entry that matches determines if the target is included or not,
+         * depending on the value of `exclude` field in the entry.
+         * If filter is not specified, the one assumed is
+         * [{type: "browser", exclude: true}, {type: "tab", exclude: true}, {}]
+         * (i.e. include everything but `browser` and `tab`).
+         */
+        export type TargetFilter = FilterEntry[];
+
         export interface RemoteLocation {
             host: string;
             port: integer;
@@ -14621,6 +15885,10 @@ export namespace Protocol {
              * false by default).
              */
             background?: boolean;
+            /**
+             * Whether to create the target of type "tab".
+             */
+            forTab?: boolean;
         }
 
         export interface CreateTargetResponse {
@@ -14653,6 +15921,15 @@ export namespace Protocol {
             targetInfo: TargetInfo;
         }
 
+        export interface GetTargetsRequest {
+            /**
+             * Only targets matching filter will be reported. If filter is not specified
+             * and target discovery is currently enabled, a filter used for target discovery
+             * is used for consistency.
+             */
+            filter?: TargetFilter;
+        }
+
         export interface GetTargetsResponse {
             /**
              * The list of targets.
@@ -14688,6 +15965,10 @@ export namespace Protocol {
              * and eventually retire it. See crbug.com/991325.
              */
             flatten?: boolean;
+            /**
+             * Only targets matching filter will be attached.
+             */
+            filter?: TargetFilter;
         }
 
         export interface AutoAttachRelatedRequest {
@@ -14697,6 +15978,10 @@ export namespace Protocol {
              * to run paused targets.
              */
             waitForDebuggerOnStart: boolean;
+            /**
+             * Only targets matching filter will be attached.
+             */
+            filter?: TargetFilter;
         }
 
         export interface SetDiscoverTargetsRequest {
@@ -14704,6 +15989,11 @@ export namespace Protocol {
              * Whether to discover available targets.
              */
             discover: boolean;
+            /**
+             * Only targets matching filter will be attached. If `discover` is false,
+             * `filter` must be omitted or empty.
+             */
+            filter?: TargetFilter;
         }
 
         export interface SetRemoteLocationsRequest {
@@ -14849,6 +16139,11 @@ export namespace Protocol {
              * Controls how the trace buffer stores data. (TraceConfigRecordMode 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.
+             */
+            traceBufferSizeInKb?: number;
             /**
              * Turns on JavaScript stack sampling.
              */
@@ -15006,8 +16301,8 @@ export namespace Protocol {
         }
 
         /**
-         * 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.
          */
         export interface DataCollectedEvent {
             value: any[];
@@ -15210,7 +16505,9 @@ export namespace Protocol {
              */
             postData?: string;
             /**
-             * 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.
              */
             headers?: HeaderEntry[];
             /**
@@ -15328,7 +16625,12 @@ export namespace Protocol {
              * 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.
              */
-            networkId?: RequestId;
+            networkId?: Network.RequestId;
+            /**
+             * If the request is due to a redirect response from the server, the id of the request that
+             * has caused the redirect.
+             */
+            redirectedRequestId?: RequestId;
         }
 
         /**
@@ -15654,6 +16956,12 @@ export namespace Protocol {
              * Defaults to false.
              */
             hasMinPinLength?: boolean;
+            /**
+             * If set to true, the authenticator will support the prf extension.
+             * https://w3c.github.io/webauthn/#prf-extension
+             * Defaults to false.
+             */
+            hasPrf?: boolean;
             /**
              * If set to true, tests of user presence will succeed immediately.
              * Otherwise, they will not be resolved. Defaults to true.
@@ -15696,6 +17004,17 @@ export namespace Protocol {
             largeBlob?: string;
         }
 
+        export interface EnableRequest {
+            /**
+             * Whether to enable the WebAuthn user interface. Enabling the UI is
+             * recommended for debugging and demo purposes, as it is closer to the real
+             * experience. Disabling the UI is recommended for automated testing.
+             * Supported at the embedder's discretion if UI is available.
+             * Defaults to false.
+             */
+            enableUI?: boolean;
+        }
+
         export interface AddVirtualAuthenticatorRequest {
             options: VirtualAuthenticatorOptions;
         }
@@ -15704,6 +17023,25 @@ export namespace Protocol {
             authenticatorId: AuthenticatorId;
         }
 
+        export interface SetResponseOverrideBitsRequest {
+            authenticatorId: AuthenticatorId;
+            /**
+             * If isBogusSignature is set, overrides the signature in the authenticator response to be zero.
+             * Defaults to false.
+             */
+            isBogusSignature?: boolean;
+            /**
+             * If isBadUV is set, overrides the UV bit in the flags in the authenticator response to
+             * be zero. Defaults to false.
+             */
+            isBadUV?: boolean;
+            /**
+             * If isBadUP is set, overrides the UP bit in the flags in the authenticator response to
+             * be zero. Defaults to false.
+             */
+            isBadUP?: boolean;
+        }
+
         export interface RemoveVirtualAuthenticatorRequest {
             authenticatorId: AuthenticatorId;
         }
@@ -15748,6 +17086,22 @@ export namespace Protocol {
             authenticatorId: AuthenticatorId;
             enabled: boolean;
         }
+
+        /**
+         * Triggered when a credential is added to an authenticator.
+         */
+        export interface CredentialAddedEvent {
+            authenticatorId: AuthenticatorId;
+            credential: Credential;
+        }
+
+        /**
+         * Triggered when a credential is used in a webauthn assertion.
+         */
+        export interface CredentialAssertedEvent {
+            authenticatorId: AuthenticatorId;
+            credential: Credential;
+        }
     }
 
     /**
@@ -15805,27 +17159,38 @@ export namespace Protocol {
             value: string;
         }
 
-        export const enum PlayerErrorType {
-            Pipeline_error = 'pipeline_error',
-            Media_error = 'media_error',
+        /**
+         * Represents logged source line numbers reported in an error.
+         * NOTE: file and line are from chromium c++ implementation code, not js.
+         */
+        export interface PlayerErrorSourceLocation {
+            file: string;
+            line: integer;
         }
 
         /**
          * Corresponds to kMediaError
          */
         export interface PlayerError {
+            errorType: string;
             /**
-             *  (PlayerErrorType enum)
+             * Code is the numeric enum entry for a specific set of error codes, such
+             * as PipelineStatusCodes in media/base/pipeline_status.h
              */
-            type: ('pipeline_error' | 'media_error');
+            code: integer;
             /**
-             * When this switches to using media::Status instead of PipelineStatus
-             * we can remove "errorCode" and replace it with the fields from
-             * a Status instance. This also seems like a duplicate of the error
-             * level enum - there is a todo bug to have that level removed and
-             * use this instead. (crbug.com/1068454)
+             * A trace of where this error was caused / where it passed through.
              */
-            errorCode: string;
+            stack: PlayerErrorSourceLocation[];
+            /**
+             * Errors potentially have a root cause error, ie, a DecoderError might be
+             * caused by an WindowsError
+             */
+            cause: PlayerError[];
+            /**
+             * Extra data attached to an error, such as an HRESULT, Video Codec, etc.
+             */
+            data: any;
         }
 
         /**
@@ -15871,6 +17236,305 @@ export namespace Protocol {
             players: PlayerId[];
         }
     }
+
+    export namespace DeviceAccess {
+
+        /**
+         * Device request id.
+         */
+        export type RequestId = string;
+
+        /**
+         * A device id.
+         */
+        export type DeviceId = string;
+
+        /**
+         * Device information displayed in a user prompt to select a device.
+         */
+        export interface PromptDevice {
+            id: DeviceId;
+            /**
+             * Display name as it appears in a device request user prompt.
+             */
+            name: string;
+        }
+
+        export interface SelectPromptRequest {
+            id: RequestId;
+            deviceId: DeviceId;
+        }
+
+        export interface CancelPromptRequest {
+            id: RequestId;
+        }
+
+        /**
+         * A device request opened a user prompt to select a device. Respond with the
+         * selectPrompt or cancelPrompt command.
+         */
+        export interface DeviceRequestPromptedEvent {
+            id: RequestId;
+            devices: PromptDevice[];
+        }
+    }
+
+    export namespace Preload {
+
+        /**
+         * Unique id
+         */
+        export type RuleSetId = string;
+
+        /**
+         * Corresponds to SpeculationRuleSet
+         */
+        export interface RuleSet {
+            id: RuleSetId;
+            /**
+             * Identifies a document which the rule set is associated with.
+             */
+            loaderId: Network.LoaderId;
+            /**
+             * Source text of JSON representing the rule set. If it comes from
+             * <script> tag, it is the textContent of the node. Note that it is
+             * a JSON for valid case.
+             * 
+             * See also:
+             * - https://wicg.github.io/nav-speculation/speculation-rules.html
+             * - https://github.com/WICG/nav-speculation/blob/main/triggers.md
+             */
+            sourceText: string;
+            /**
+             * A speculation rule set is either added through an inline
+             * <script> tag or through an external resource via the
+             * 'Speculation-Rules' HTTP header. For the first case, we include
+             * the BackendNodeId of the relevant <script> tag. For the second
+             * case, we include the external URL where the rule set was loaded
+             * from, and also RequestId if Network domain is enabled.
+             * 
+             * See also:
+             * - https://wicg.github.io/nav-speculation/speculation-rules.html#speculation-rules-script
+             * - https://wicg.github.io/nav-speculation/speculation-rules.html#speculation-rules-header
+             */
+            backendNodeId?: DOM.BackendNodeId;
+            url?: string;
+            requestId?: Network.RequestId;
+            /**
+             * Error information
+             * `errorMessage` is null iff `errorType` is null.
+             */
+            errorType?: RuleSetErrorType;
+            /**
+             * TODO(https://crbug.com/1425354): Replace this property with structured error.
+             */
+            errorMessage?: string;
+        }
+
+        export type RuleSetErrorType = ('SourceIsNotJsonObject' | 'InvalidRulesSkipped');
+
+        /**
+         * The type of preloading attempted. It corresponds to
+         * mojom::SpeculationAction (although PrefetchWithSubresources is omitted as it
+         * isn't being used by clients).
+         */
+        export type SpeculationAction = ('Prefetch' | 'Prerender');
+
+        /**
+         * Corresponds to mojom::SpeculationTargetHint.
+         * See https://github.com/WICG/nav-speculation/blob/main/triggers.md#window-name-targeting-hints
+         */
+        export type SpeculationTargetHint = ('Blank' | 'Self');
+
+        /**
+         * A key that identifies a preloading attempt.
+         * 
+         * The url used is the url specified by the trigger (i.e. the initial URL), and
+         * not the final url that is navigated to. For example, prerendering allows
+         * same-origin main frame navigations during the attempt, but the attempt is
+         * still keyed with the initial URL.
+         */
+        export interface PreloadingAttemptKey {
+            loaderId: Network.LoaderId;
+            action: SpeculationAction;
+            url: string;
+            targetHint?: SpeculationTargetHint;
+        }
+
+        /**
+         * Lists sources for a preloading attempt, specifically the ids of rule sets
+         * that had a speculation rule that triggered the attempt, and the
+         * BackendNodeIds of <a href> or <area href> 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.
+         */
+        export interface PreloadingAttemptSource {
+            key: PreloadingAttemptKey;
+            ruleSetIds: RuleSetId[];
+            nodeIds: DOM.BackendNodeId[];
+        }
+
+        /**
+         * List of FinalStatus reasons for Prerender2.
+         */
+        export type PrerenderFinalStatus = ('Activated' | 'Destroyed' | 'LowEndDevice' | 'InvalidSchemeRedirect' | 'InvalidSchemeNavigation' | 'InProgressNavigation' | 'NavigationRequestBlockedByCsp' | 'MainFrameNavigation' | 'MojoBinderPolicy' | 'RendererProcessCrashed' | 'RendererProcessKilled' | 'Download' | 'TriggerDestroyed' | 'NavigationNotCommitted' | 'NavigationBadHttpStatus' | 'ClientCertRequested' | 'NavigationRequestNetworkError' | 'MaxNumOfRunningPrerendersExceeded' | 'CancelAllHostsForTesting' | 'DidFailLoad' | 'Stop' | 'SslCertificateError' | 'LoginAuthRequested' | 'UaChangeRequiresReload' | 'BlockedByClient' | 'AudioOutputDeviceRequested' | 'MixedContent' | 'TriggerBackgrounded' | 'EmbedderTriggeredAndCrossOriginRedirected' | 'MemoryLimitExceeded' | 'FailToGetMemoryUsage' | 'DataSaverEnabled' | 'HasEffectiveUrl' | 'ActivatedBeforeStarted' | 'InactivePageRestriction' | 'StartFailed' | 'TimeoutBackgrounded' | 'CrossSiteRedirectInInitialNavigation' | 'CrossSiteNavigationInInitialNavigation' | 'SameSiteCrossOriginRedirectNotOptInInInitialNavigation' | 'SameSiteCrossOriginNavigationNotOptInInInitialNavigation' | 'ActivationNavigationParameterMismatch' | 'ActivatedInBackground' | 'EmbedderHostDisallowed' | 'ActivationNavigationDestroyedBeforeSuccess' | 'TabClosedByUserGesture' | 'TabClosedWithoutUserGesture' | 'PrimaryMainFrameRendererProcessCrashed' | 'PrimaryMainFrameRendererProcessKilled' | 'ActivationFramePolicyNotCompatible' | 'PreloadingDisabled' | 'BatterySaverEnabled' | 'ActivatedDuringMainFrameNavigation' | 'PreloadingUnsupportedByWebContents' | 'CrossSiteRedirectInMainFrameNavigation' | 'CrossSiteNavigationInMainFrameNavigation' | 'SameSiteCrossOriginRedirectNotOptInInMainFrameNavigation' | 'SameSiteCrossOriginNavigationNotOptInInMainFrameNavigation' | 'MemoryPressureOnTrigger' | 'MemoryPressureAfterTriggered' | 'PrerenderingDisabledByDevTools' | 'ResourceLoadBlockedByClient');
+
+        /**
+         * Preloading status values, see also PreloadingTriggeringOutcome. This
+         * status is shared by prefetchStatusUpdated and prerenderStatusUpdated.
+         */
+        export type PreloadingStatus = ('Pending' | 'Running' | 'Ready' | 'Success' | 'Failure' | 'NotSupported');
+
+        /**
+         * TODO(https://crbug.com/1384419): revisit the list of PrefetchStatus and
+         * filter out the ones that aren't necessary to the developers.
+         */
+        export type PrefetchStatus = ('PrefetchAllowed' | 'PrefetchFailedIneligibleRedirect' | 'PrefetchFailedInvalidRedirect' | 'PrefetchFailedMIMENotSupported' | 'PrefetchFailedNetError' | 'PrefetchFailedNon2XX' | 'PrefetchFailedPerPageLimitExceeded' | 'PrefetchEvicted' | 'PrefetchHeldback' | 'PrefetchIneligibleRetryAfter' | 'PrefetchIsPrivacyDecoy' | 'PrefetchIsStale' | 'PrefetchNotEligibleBrowserContextOffTheRecord' | 'PrefetchNotEligibleDataSaverEnabled' | 'PrefetchNotEligibleExistingProxy' | 'PrefetchNotEligibleHostIsNonUnique' | 'PrefetchNotEligibleNonDefaultStoragePartition' | 'PrefetchNotEligibleSameSiteCrossOriginPrefetchRequiredProxy' | 'PrefetchNotEligibleSchemeIsNotHttps' | 'PrefetchNotEligibleUserHasCookies' | 'PrefetchNotEligibleUserHasServiceWorker' | 'PrefetchNotEligibleBatterySaverEnabled' | 'PrefetchNotEligiblePreloadingDisabled' | 'PrefetchNotFinishedInTime' | 'PrefetchNotStarted' | 'PrefetchNotUsedCookiesChanged' | 'PrefetchProxyNotAvailable' | 'PrefetchResponseUsed' | 'PrefetchSuccessfulButNotUsed' | 'PrefetchNotUsedProbeFailed');
+
+        /**
+         * Upsert. Currently, it is only emitted when a rule set added.
+         */
+        export interface RuleSetUpdatedEvent {
+            ruleSet: RuleSet;
+        }
+
+        export interface RuleSetRemovedEvent {
+            id: RuleSetId;
+        }
+
+        /**
+         * Fired when a prerender attempt is completed.
+         */
+        export interface PrerenderAttemptCompletedEvent {
+            key: PreloadingAttemptKey;
+            /**
+             * The frame id of the frame initiating prerendering.
+             */
+            initiatingFrameId: Page.FrameId;
+            prerenderingUrl: string;
+            finalStatus: PrerenderFinalStatus;
+            /**
+             * This is used to give users more information about the name of the API call
+             * that is incompatible with prerender and has caused the cancellation of the attempt
+             */
+            disallowedApiMethod?: string;
+        }
+
+        /**
+         * Fired when a preload enabled state is updated.
+         */
+        export interface PreloadEnabledStateUpdatedEvent {
+            disabledByPreference: boolean;
+            disabledByDataSaver: boolean;
+            disabledByBatterySaver: boolean;
+            disabledByHoldbackPrefetchSpeculationRules: boolean;
+            disabledByHoldbackPrerenderSpeculationRules: boolean;
+        }
+
+        /**
+         * Fired when a prefetch attempt is updated.
+         */
+        export interface PrefetchStatusUpdatedEvent {
+            key: PreloadingAttemptKey;
+            /**
+             * The frame id of the frame initiating prefetch.
+             */
+            initiatingFrameId: Page.FrameId;
+            prefetchUrl: string;
+            status: PreloadingStatus;
+            prefetchStatus: PrefetchStatus;
+            requestId: Network.RequestId;
+        }
+
+        /**
+         * Fired when a prerender attempt is updated.
+         */
+        export interface PrerenderStatusUpdatedEvent {
+            key: PreloadingAttemptKey;
+            status: PreloadingStatus;
+            prerenderStatus?: PrerenderFinalStatus;
+            /**
+             * This is used to give users more information about the name of Mojo interface
+             * that is incompatible with prerender and has caused the cancellation of the attempt.
+             */
+            disallowedMojoInterface?: string;
+        }
+
+        /**
+         * Send a list of sources for all preloading attempts in a document.
+         */
+        export interface PreloadingAttemptSourcesUpdatedEvent {
+            loaderId: Network.LoaderId;
+            preloadingAttemptSources: PreloadingAttemptSource[];
+        }
+    }
+
+    /**
+     * This domain allows interacting with the FedCM dialog.
+     */
+    export namespace FedCm {
+
+        /**
+         * Whether this is a sign-up or sign-in action for this account, i.e.
+         * whether this account has ever been used to sign in to this RP before.
+         */
+        export type LoginState = ('SignIn' | 'SignUp');
+
+        /**
+         * Whether the dialog shown is an account chooser or an auto re-authentication dialog.
+         */
+        export type DialogType = ('AccountChooser' | 'AutoReauthn');
+
+        /**
+         * Corresponds to IdentityRequestAccount
+         */
+        export interface Account {
+            accountId: string;
+            email: string;
+            name: string;
+            givenName: string;
+            pictureUrl: string;
+            idpConfigUrl: string;
+            idpSigninUrl: string;
+            loginState: LoginState;
+            /**
+             * These two are only set if the loginState is signUp
+             */
+            termsOfServiceUrl?: string;
+            privacyPolicyUrl?: string;
+        }
+
+        export interface EnableRequest {
+            /**
+             * Allows callers to disable the promise rejection delay that would
+             * normally happen, if this is unimportant to what's being tested.
+             * (step 4 of https://fedidcg.github.io/FedCM/#browser-api-rp-sign-in)
+             */
+            disableRejectionDelay?: boolean;
+        }
+
+        export interface SelectAccountRequest {
+            dialogId: string;
+            accountIndex: integer;
+        }
+
+        export interface DismissDialogRequest {
+            dialogId: string;
+            triggerCooldown?: boolean;
+        }
+
+        export interface DialogShownEvent {
+            dialogId: string;
+            dialogType: DialogType;
+            accounts: Account[];
+            /**
+             * These exist primarily so that the caller can verify the
+             * RP context was used appropriately.
+             */
+            title: string;
+            subtitle?: string;
+        }
+    }
 }
 
 export default Protocol;

Debdiff

File lists identical (after any substitutions)

No differences were encountered in the control files

More details

Full run details