chrome-devtools-frontend 1.0.1573331 → 1.0.1575174
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AUTHORS +1 -0
- package/docs/contributing/settings-experiments-features.md +5 -2
- package/front_end/Images/src/account-tree.svg +10 -1
- package/front_end/Images/src/arrow-right-circle.svg +2 -7
- package/front_end/Images/src/center-focus-weak.svg +3 -1
- package/front_end/Images/src/dog-paw.svg +10 -3
- package/front_end/Images/src/group.svg +3 -1
- package/front_end/Images/src/home.svg +3 -1
- package/front_end/Images/src/spark-info.svg +3 -3
- package/front_end/Images/src/spark.svg +2 -9
- package/front_end/core/common/Settings.ts +1 -1
- package/front_end/core/host/InspectorFrontendHostAPI.ts +5 -1
- package/front_end/core/host/InspectorFrontendHostStub.ts +10 -0
- package/front_end/core/host/UserMetrics.ts +15 -0
- package/front_end/core/root/Runtime.ts +119 -39
- package/front_end/core/sdk/AnimationModel.ts +0 -6
- package/front_end/devtools_compatibility.js +16 -1
- package/front_end/entrypoints/main/GlobalAiButton.ts +18 -3
- package/front_end/entrypoints/main/MainImpl.ts +13 -1
- package/front_end/generated/InspectorBackendCommands.ts +6 -4
- package/front_end/generated/SupportedCSSProperties.js +17 -4
- package/front_end/generated/protocol-mapping.d.ts +2 -0
- package/front_end/generated/protocol-proxy-api.d.ts +2 -0
- package/front_end/generated/protocol.ts +37 -7
- package/front_end/models/ai_assistance/AiUtils.ts +8 -0
- package/front_end/models/ai_assistance/agents/StylingAgent.snapshot.txt +3 -3
- package/front_end/models/ai_assistance/agents/StylingAgent.ts +5 -4
- package/front_end/models/issues_manager/CorsIssue.ts +1 -44
- package/front_end/models/logs/NetworkLog.ts +0 -9
- package/front_end/models/stack_trace/StackTrace.ts +40 -0
- package/front_end/panels/ai_assistance/PatchWidget.ts +2 -1
- package/front_end/panels/ai_assistance/ai_assistance-meta.ts +34 -13
- package/front_end/panels/ai_assistance/components/ChatInput.ts +24 -2
- package/front_end/panels/ai_assistance/components/ChatMessage.ts +3 -1
- package/front_end/panels/ai_assistance/components/ChatView.ts +20 -3
- package/front_end/panels/ai_assistance/components/chatView.css +20 -0
- package/front_end/panels/common/AiCodeCompletionTeaser.ts +3 -1
- package/front_end/panels/common/AiCodeGenerationUpgradeDialog.ts +32 -16
- package/front_end/panels/common/GeminiRebrandPromoDialog.ts +1 -1
- package/front_end/panels/console/ConsoleFormat.ts +31 -2
- package/front_end/panels/console/ConsoleInsightTeaser.ts +8 -2
- package/front_end/panels/elements/ElementsTreeElement.ts +47 -1
- package/front_end/panels/elements/ElementsTreeOutline.ts +1 -1
- package/front_end/panels/issues/CorsIssueDetailsView.ts +0 -46
- package/front_end/panels/network/NetworkDataGridNode.ts +3 -1
- package/front_end/panels/profiler/HeapDetachedElementsView.ts +0 -5
- package/front_end/panels/profiler/HeapProfileView.ts +0 -6
- package/front_end/panels/profiler/HeapSnapshotView.ts +0 -14
- package/front_end/panels/settings/AISettingsTab.ts +1 -1
- package/front_end/panels/settings/SettingsScreen.ts +12 -6
- package/front_end/panels/settings/settings-meta.ts +1 -0
- package/front_end/panels/sources/NavigatorView.ts +3 -1
- package/front_end/panels/timeline/components/insights/BaseInsightComponent.ts +2 -1
- package/front_end/panels/whats_new/ReleaseNoteText.ts +11 -11
- package/front_end/panels/whats_new/resources/WNDT.md +6 -6
- package/front_end/third_party/chromium/README.chromium +1 -1
- package/front_end/third_party/puppeteer/README.chromium +2 -2
- package/front_end/third_party/puppeteer/package/README.md +5 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/HTTPResponse.d.ts +6 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/HTTPResponse.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/HTTPResponse.js +5 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/HTTPResponse.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.d.ts +3 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.js +53 -55
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.d.ts +2 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.js +25 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Accessibility.d.ts +7 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Accessibility.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Accessibility.js +3 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Accessibility.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserContext.js +2 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.js +2 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/injected/injected.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.d.ts +3 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js +3 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/Mutex.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/version.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/version.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.d.ts +7 -1
- package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.js +21 -8
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/HTTPResponse.d.ts +6 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/HTTPResponse.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/HTTPResponse.js +5 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/HTTPResponse.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.d.ts +3 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.js +54 -56
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.d.ts +2 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.js +25 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Accessibility.d.ts +7 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Accessibility.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Accessibility.js +3 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Accessibility.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserContext.js +2 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.js +2 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.d.ts +3 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js +3 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/version.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/version.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/types.d.ts +7 -1
- package/front_end/third_party/puppeteer/package/package.json +5 -5
- package/front_end/third_party/puppeteer/package/src/api/HTTPResponse.ts +7 -2
- package/front_end/third_party/puppeteer/package/src/bidi/Page.ts +62 -71
- package/front_end/third_party/puppeteer/package/src/bidi/core/BrowsingContext.ts +29 -0
- package/front_end/third_party/puppeteer/package/src/cdp/Accessibility.ts +12 -1
- package/front_end/third_party/puppeteer/package/src/cdp/BrowserContext.ts +2 -0
- package/front_end/third_party/puppeteer/package/src/cdp/Page.ts +2 -0
- package/front_end/third_party/puppeteer/package/src/revisions.ts +3 -3
- package/front_end/third_party/puppeteer/package/src/util/version.ts +1 -1
- package/front_end/ui/components/buttons/Button.ts +26 -14
- package/front_end/ui/components/buttons/FloatingButton.ts +7 -3
- package/front_end/ui/components/buttons/floatingButton.css +44 -0
- package/front_end/ui/visual_logging/KnownContextValues.ts +1 -0
- package/mcp/HostBindings.ts +6 -0
- package/package.json +3 -2
|
@@ -245,7 +245,7 @@ inspectorBackend.registerCommand("CSS.forcePseudoState", [{"name": "nodeId", "ty
|
|
|
245
245
|
inspectorBackend.registerCommand("CSS.forceStartingStyle", [{"name": "nodeId", "type": "number", "optional": false, "description": "The element id for which to force the starting-style state.", "typeRef": "DOM.NodeId"}, {"name": "forced", "type": "boolean", "optional": false, "description": "Boolean indicating if this is on or off.", "typeRef": null}], [], "Ensures that the given node is in its starting-style state.");
|
|
246
246
|
inspectorBackend.registerCommand("CSS.getBackgroundColors", [{"name": "nodeId", "type": "number", "optional": false, "description": "Id of the node to get background colors for.", "typeRef": "DOM.NodeId"}], ["backgroundColors", "computedFontSize", "computedFontWeight"], "");
|
|
247
247
|
inspectorBackend.registerCommand("CSS.getComputedStyleForNode", [{"name": "nodeId", "type": "number", "optional": false, "description": "", "typeRef": "DOM.NodeId"}], ["computedStyle", "extraFields"], "Returns the computed style for a DOM node identified by `nodeId`.");
|
|
248
|
-
inspectorBackend.registerCommand("CSS.resolveValues", [{"name": "values", "type": "array", "optional": false, "description": "Cascade-dependent keywords (revert/revert-layer) do not work.", "typeRef": "string"}, {"name": "nodeId", "type": "number", "optional": false, "description": "Id of the node in whose context the expression is evaluated", "typeRef": "DOM.NodeId"}, {"name": "propertyName", "type": "string", "optional": true, "description": "Only longhands and custom property names are accepted.", "typeRef": null}, {"name": "pseudoType", "type": "string", "optional": true, "description": "Pseudo element type, only works for pseudo elements that generate elements in the tree, such as ::before and ::after.", "typeRef": "DOM.PseudoType"}, {"name": "pseudoIdentifier", "type": "string", "optional": true, "description": "Pseudo element custom ident.", "typeRef": null}], ["results"], "Resolve the specified values in the context of the provided element. For example, a value of '1em' is evaluated according to the computed 'font-size' of the element and a value 'calc(1px + 2px)' will be resolved to '3px'. If the `propertyName` was specified the `values` are resolved as if they were property's declaration. If a value cannot be parsed according to the provided property syntax, the value is parsed using combined syntax as if null `propertyName` was provided. If the value cannot be resolved even then, return the provided value without any changes.");
|
|
248
|
+
inspectorBackend.registerCommand("CSS.resolveValues", [{"name": "values", "type": "array", "optional": false, "description": "Cascade-dependent keywords (revert/revert-layer) do not work.", "typeRef": "string"}, {"name": "nodeId", "type": "number", "optional": false, "description": "Id of the node in whose context the expression is evaluated", "typeRef": "DOM.NodeId"}, {"name": "propertyName", "type": "string", "optional": true, "description": "Only longhands and custom property names are accepted.", "typeRef": null}, {"name": "pseudoType", "type": "string", "optional": true, "description": "Pseudo element type, only works for pseudo elements that generate elements in the tree, such as ::before and ::after.", "typeRef": "DOM.PseudoType"}, {"name": "pseudoIdentifier", "type": "string", "optional": true, "description": "Pseudo element custom ident.", "typeRef": null}], ["results"], "Resolve the specified values in the context of the provided element. For example, a value of '1em' is evaluated according to the computed 'font-size' of the element and a value 'calc(1px + 2px)' will be resolved to '3px'. If the `propertyName` was specified the `values` are resolved as if they were property's declaration. If a value cannot be parsed according to the provided property syntax, the value is parsed using combined syntax as if null `propertyName` was provided. If the value cannot be resolved even then, return the provided value without any changes. Note: this function currently does not resolve CSS random() function, it returns unmodified random() function parts.`");
|
|
249
249
|
inspectorBackend.registerCommand("CSS.getLonghandProperties", [{"name": "shorthandName", "type": "string", "optional": false, "description": "", "typeRef": null}, {"name": "value", "type": "string", "optional": false, "description": "", "typeRef": null}], ["longhandProperties"], "");
|
|
250
250
|
inspectorBackend.registerCommand("CSS.getInlineStylesForNode", [{"name": "nodeId", "type": "number", "optional": false, "description": "", "typeRef": "DOM.NodeId"}], ["inlineStyle", "attributesStyle"], "Returns the styles defined inline (explicitly in the \"style\" attribute and implicitly, using DOM attributes) for a DOM node identified by `nodeId`.");
|
|
251
251
|
inspectorBackend.registerCommand("CSS.getAnimatedStylesForNode", [{"name": "nodeId", "type": "number", "optional": false, "description": "", "typeRef": "DOM.NodeId"}], ["animationStyles", "transitionsStyle", "inherited"], "Returns the styles coming from animations & transitions including the animation & transition styles coming from inheritance chain.");
|
|
@@ -766,7 +766,7 @@ inspectorBackend.registerEnum("Network.RenderBlockingBehavior", {Blocking: "Bloc
|
|
|
766
766
|
inspectorBackend.registerEnum("Network.RequestReferrerPolicy", {UnsafeUrl: "unsafe-url", NoReferrerWhenDowngrade: "no-referrer-when-downgrade", NoReferrer: "no-referrer", Origin: "origin", OriginWhenCrossOrigin: "origin-when-cross-origin", SameOrigin: "same-origin", StrictOrigin: "strict-origin", StrictOriginWhenCrossOrigin: "strict-origin-when-cross-origin"});
|
|
767
767
|
inspectorBackend.registerEnum("Network.CertificateTransparencyCompliance", {Unknown: "unknown", NotCompliant: "not-compliant", Compliant: "compliant"});
|
|
768
768
|
inspectorBackend.registerEnum("Network.BlockedReason", {Other: "other", Csp: "csp", MixedContent: "mixed-content", Origin: "origin", Inspector: "inspector", Integrity: "integrity", SubresourceFilter: "subresource-filter", ContentType: "content-type", CoepFrameResourceNeedsCoepHeader: "coep-frame-resource-needs-coep-header", CoopSandboxedIframeCannotNavigateToCoopPage: "coop-sandboxed-iframe-cannot-navigate-to-coop-page", CorpNotSameOrigin: "corp-not-same-origin", CorpNotSameOriginAfterDefaultedToSameOriginByCoep: "corp-not-same-origin-after-defaulted-to-same-origin-by-coep", CorpNotSameOriginAfterDefaultedToSameOriginByDip: "corp-not-same-origin-after-defaulted-to-same-origin-by-dip", CorpNotSameOriginAfterDefaultedToSameOriginByCoepAndDip: "corp-not-same-origin-after-defaulted-to-same-origin-by-coep-and-dip", CorpNotSameSite: "corp-not-same-site", SriMessageSignatureMismatch: "sri-message-signature-mismatch"});
|
|
769
|
-
inspectorBackend.registerEnum("Network.CorsError", {DisallowedByMode: "DisallowedByMode", InvalidResponse: "InvalidResponse", WildcardOriginNotAllowed: "WildcardOriginNotAllowed", MissingAllowOriginHeader: "MissingAllowOriginHeader", MultipleAllowOriginValues: "MultipleAllowOriginValues", InvalidAllowOriginValue: "InvalidAllowOriginValue", AllowOriginMismatch: "AllowOriginMismatch", InvalidAllowCredentials: "InvalidAllowCredentials", CorsDisabledScheme: "CorsDisabledScheme", PreflightInvalidStatus: "PreflightInvalidStatus", PreflightDisallowedRedirect: "PreflightDisallowedRedirect", PreflightWildcardOriginNotAllowed: "PreflightWildcardOriginNotAllowed", PreflightMissingAllowOriginHeader: "PreflightMissingAllowOriginHeader", PreflightMultipleAllowOriginValues: "PreflightMultipleAllowOriginValues", PreflightInvalidAllowOriginValue: "PreflightInvalidAllowOriginValue", PreflightAllowOriginMismatch: "PreflightAllowOriginMismatch", PreflightInvalidAllowCredentials: "PreflightInvalidAllowCredentials", PreflightMissingAllowExternal: "PreflightMissingAllowExternal", PreflightInvalidAllowExternal: "PreflightInvalidAllowExternal",
|
|
769
|
+
inspectorBackend.registerEnum("Network.CorsError", {DisallowedByMode: "DisallowedByMode", InvalidResponse: "InvalidResponse", WildcardOriginNotAllowed: "WildcardOriginNotAllowed", MissingAllowOriginHeader: "MissingAllowOriginHeader", MultipleAllowOriginValues: "MultipleAllowOriginValues", InvalidAllowOriginValue: "InvalidAllowOriginValue", AllowOriginMismatch: "AllowOriginMismatch", InvalidAllowCredentials: "InvalidAllowCredentials", CorsDisabledScheme: "CorsDisabledScheme", PreflightInvalidStatus: "PreflightInvalidStatus", PreflightDisallowedRedirect: "PreflightDisallowedRedirect", PreflightWildcardOriginNotAllowed: "PreflightWildcardOriginNotAllowed", PreflightMissingAllowOriginHeader: "PreflightMissingAllowOriginHeader", PreflightMultipleAllowOriginValues: "PreflightMultipleAllowOriginValues", PreflightInvalidAllowOriginValue: "PreflightInvalidAllowOriginValue", PreflightAllowOriginMismatch: "PreflightAllowOriginMismatch", PreflightInvalidAllowCredentials: "PreflightInvalidAllowCredentials", PreflightMissingAllowExternal: "PreflightMissingAllowExternal", PreflightInvalidAllowExternal: "PreflightInvalidAllowExternal", InvalidAllowMethodsPreflightResponse: "InvalidAllowMethodsPreflightResponse", InvalidAllowHeadersPreflightResponse: "InvalidAllowHeadersPreflightResponse", MethodDisallowedByPreflightResponse: "MethodDisallowedByPreflightResponse", HeaderDisallowedByPreflightResponse: "HeaderDisallowedByPreflightResponse", RedirectContainsCredentials: "RedirectContainsCredentials", InsecurePrivateNetwork: "InsecurePrivateNetwork", InvalidPrivateNetworkAccess: "InvalidPrivateNetworkAccess", NoCorsRedirectModeNotFollow: "NoCorsRedirectModeNotFollow", LocalNetworkAccessPermissionDenied: "LocalNetworkAccessPermissionDenied"});
|
|
770
770
|
inspectorBackend.registerEnum("Network.ServiceWorkerResponseSource", {CacheStorage: "cache-storage", HttpCache: "http-cache", FallbackCode: "fallback-code", Network: "network"});
|
|
771
771
|
inspectorBackend.registerEnum("Network.TrustTokenParamsRefreshPolicy", {UseCached: "UseCached", Refresh: "Refresh"});
|
|
772
772
|
inspectorBackend.registerEnum("Network.TrustTokenOperationType", {Issuance: "Issuance", Redemption: "Redemption", Signing: "Signing"});
|
|
@@ -788,6 +788,7 @@ inspectorBackend.registerEnum("Network.CrossOriginOpenerPolicyValue", {SameOrigi
|
|
|
788
788
|
inspectorBackend.registerEnum("Network.CrossOriginEmbedderPolicyValue", {None: "None", Credentialless: "Credentialless", RequireCorp: "RequireCorp"});
|
|
789
789
|
inspectorBackend.registerEnum("Network.ContentSecurityPolicySource", {HTTP: "HTTP", Meta: "Meta"});
|
|
790
790
|
inspectorBackend.registerEnum("Network.ReportStatus", {Queued: "Queued", Pending: "Pending", MarkedForRemoval: "MarkedForRemoval", Success: "Success"});
|
|
791
|
+
inspectorBackend.registerEnum("Network.DeviceBoundSessionWithUsageUsage", {NotInScope: "NotInScope", InScopeRefreshNotYetNeeded: "InScopeRefreshNotYetNeeded", InScopeRefreshNotAllowed: "InScopeRefreshNotAllowed", ProactiveRefreshNotPossible: "ProactiveRefreshNotPossible", ProactiveRefreshAttempted: "ProactiveRefreshAttempted", Deferred: "Deferred"});
|
|
791
792
|
inspectorBackend.registerEnum("Network.DeviceBoundSessionUrlRuleRuleType", {Exclude: "Exclude", Include: "Include"});
|
|
792
793
|
inspectorBackend.registerEnum("Network.DeviceBoundSessionFetchResult", {Success: "Success", KeyError: "KeyError", SigningError: "SigningError", ServerRequestedTermination: "ServerRequestedTermination", InvalidSessionId: "InvalidSessionId", InvalidChallenge: "InvalidChallenge", TooManyChallenges: "TooManyChallenges", InvalidFetcherUrl: "InvalidFetcherUrl", InvalidRefreshUrl: "InvalidRefreshUrl", TransientHttpError: "TransientHttpError", ScopeOriginSameSiteMismatch: "ScopeOriginSameSiteMismatch", RefreshUrlSameSiteMismatch: "RefreshUrlSameSiteMismatch", MismatchedSessionId: "MismatchedSessionId", MissingScope: "MissingScope", NoCredentials: "NoCredentials", SubdomainRegistrationWellKnownUnavailable: "SubdomainRegistrationWellKnownUnavailable", SubdomainRegistrationUnauthorized: "SubdomainRegistrationUnauthorized", SubdomainRegistrationWellKnownMalformed: "SubdomainRegistrationWellKnownMalformed", SessionProviderWellKnownUnavailable: "SessionProviderWellKnownUnavailable", RelyingPartyWellKnownUnavailable: "RelyingPartyWellKnownUnavailable", FederatedKeyThumbprintMismatch: "FederatedKeyThumbprintMismatch", InvalidFederatedSessionUrl: "InvalidFederatedSessionUrl", InvalidFederatedKey: "InvalidFederatedKey", TooManyRelyingOriginLabels: "TooManyRelyingOriginLabels", BoundCookieSetForbidden: "BoundCookieSetForbidden", NetError: "NetError", ProxyError: "ProxyError", EmptySessionConfig: "EmptySessionConfig", InvalidCredentialsConfig: "InvalidCredentialsConfig", InvalidCredentialsType: "InvalidCredentialsType", InvalidCredentialsEmptyName: "InvalidCredentialsEmptyName", InvalidCredentialsCookie: "InvalidCredentialsCookie", PersistentHttpError: "PersistentHttpError", RegistrationAttemptedChallenge: "RegistrationAttemptedChallenge", InvalidScopeOrigin: "InvalidScopeOrigin", ScopeOriginContainsPath: "ScopeOriginContainsPath", RefreshInitiatorNotString: "RefreshInitiatorNotString", RefreshInitiatorInvalidHostPattern: "RefreshInitiatorInvalidHostPattern", InvalidScopeSpecification: "InvalidScopeSpecification", MissingScopeSpecificationType: "MissingScopeSpecificationType", EmptyScopeSpecificationDomain: "EmptyScopeSpecificationDomain", EmptyScopeSpecificationPath: "EmptyScopeSpecificationPath", InvalidScopeSpecificationType: "InvalidScopeSpecificationType", InvalidScopeIncludeSite: "InvalidScopeIncludeSite", MissingScopeIncludeSite: "MissingScopeIncludeSite", FederatedNotAuthorizedByProvider: "FederatedNotAuthorizedByProvider", FederatedNotAuthorizedByRelyingParty: "FederatedNotAuthorizedByRelyingParty", SessionProviderWellKnownMalformed: "SessionProviderWellKnownMalformed", SessionProviderWellKnownHasProviderOrigin: "SessionProviderWellKnownHasProviderOrigin", RelyingPartyWellKnownMalformed: "RelyingPartyWellKnownMalformed", RelyingPartyWellKnownHasRelyingOrigins: "RelyingPartyWellKnownHasRelyingOrigins", InvalidFederatedSessionProviderSessionMissing: "InvalidFederatedSessionProviderSessionMissing", InvalidFederatedSessionWrongProviderOrigin: "InvalidFederatedSessionWrongProviderOrigin", InvalidCredentialsCookieCreationTime: "InvalidCredentialsCookieCreationTime", InvalidCredentialsCookieName: "InvalidCredentialsCookieName", InvalidCredentialsCookieParsing: "InvalidCredentialsCookieParsing", InvalidCredentialsCookieUnpermittedAttribute: "InvalidCredentialsCookieUnpermittedAttribute", InvalidCredentialsCookieInvalidDomain: "InvalidCredentialsCookieInvalidDomain", InvalidCredentialsCookiePrefix: "InvalidCredentialsCookiePrefix", InvalidScopeRulePath: "InvalidScopeRulePath", InvalidScopeRuleHostPattern: "InvalidScopeRuleHostPattern", ScopeRuleOriginScopedHostPatternMismatch: "ScopeRuleOriginScopedHostPatternMismatch", ScopeRuleSiteScopedHostPatternMismatch: "ScopeRuleSiteScopedHostPatternMismatch", SigningQuotaExceeded: "SigningQuotaExceeded", InvalidConfigJson: "InvalidConfigJson", InvalidFederatedSessionProviderFailedToRestoreKey: "InvalidFederatedSessionProviderFailedToRestoreKey", FailedToUnwrapKey: "FailedToUnwrapKey", SessionDeletedDuringRefresh: "SessionDeletedDuringRefresh"});
|
|
793
794
|
inspectorBackend.registerEnum("Network.RefreshEventDetailsRefreshResult", {Refreshed: "Refreshed", InitializedService: "InitializedService", Unreachable: "Unreachable", ServerError: "ServerError", RefreshQuotaExceeded: "RefreshQuotaExceeded", FatalError: "FatalError", SigningQuotaExceeded: "SigningQuotaExceeded"});
|
|
@@ -827,7 +828,7 @@ inspectorBackend.registerEvent("Network.directUDPSocketAborted", ["identifier",
|
|
|
827
828
|
inspectorBackend.registerEvent("Network.directUDPSocketClosed", ["identifier", "timestamp"]);
|
|
828
829
|
inspectorBackend.registerEvent("Network.directUDPSocketChunkSent", ["identifier", "message", "timestamp"]);
|
|
829
830
|
inspectorBackend.registerEvent("Network.directUDPSocketChunkReceived", ["identifier", "message", "timestamp"]);
|
|
830
|
-
inspectorBackend.registerEvent("Network.requestWillBeSentExtraInfo", ["requestId", "associatedCookies", "headers", "connectTiming", "clientSecurityState", "siteHasCookieInOtherPartition", "appliedNetworkConditionsId"]);
|
|
831
|
+
inspectorBackend.registerEvent("Network.requestWillBeSentExtraInfo", ["requestId", "associatedCookies", "headers", "connectTiming", "deviceBoundSessionUsages", "clientSecurityState", "siteHasCookieInOtherPartition", "appliedNetworkConditionsId"]);
|
|
831
832
|
inspectorBackend.registerEvent("Network.responseReceivedExtraInfo", ["requestId", "blockedCookies", "headers", "resourceIPAddressSpace", "statusCode", "headersText", "cookiePartitionKey", "cookiePartitionKeyOpaque", "exemptedCookies"]);
|
|
832
833
|
inspectorBackend.registerEvent("Network.responseReceivedEarlyHints", ["requestId", "headers"]);
|
|
833
834
|
inspectorBackend.registerEnum("Network.TrustTokenOperationDoneEventStatus", {Ok: "Ok", InvalidArgument: "InvalidArgument", MissingIssuerKeys: "MissingIssuerKeys", FailedPrecondition: "FailedPrecondition", ResourceExhausted: "ResourceExhausted", AlreadyExists: "AlreadyExists", ResourceLimited: "ResourceLimited", Unauthorized: "Unauthorized", BadResponse: "BadResponse", InternalError: "InternalError", UnknownError: "UnknownError", FulfilledLocally: "FulfilledLocally", SiteIssuerLimit: "SiteIssuerLimit"});
|
|
@@ -919,6 +920,7 @@ inspectorBackend.registerType("Network.SecurityIsolationStatus", [{"name": "coop
|
|
|
919
920
|
inspectorBackend.registerType("Network.ReportingApiReport", [{"name": "id", "type": "string", "optional": false, "description": "", "typeRef": "Network.ReportId"}, {"name": "initiatorUrl", "type": "string", "optional": false, "description": "The URL of the document that triggered the report.", "typeRef": null}, {"name": "destination", "type": "string", "optional": false, "description": "The name of the endpoint group that should be used to deliver the report.", "typeRef": null}, {"name": "type", "type": "string", "optional": false, "description": "The type of the report (specifies the set of data that is contained in the report body).", "typeRef": null}, {"name": "timestamp", "type": "number", "optional": false, "description": "When the report was generated.", "typeRef": "Network.TimeSinceEpoch"}, {"name": "depth", "type": "number", "optional": false, "description": "How many uploads deep the related request was.", "typeRef": null}, {"name": "completedAttempts", "type": "number", "optional": false, "description": "The number of delivery attempts made so far, not including an active attempt.", "typeRef": null}, {"name": "body", "type": "object", "optional": false, "description": "", "typeRef": null}, {"name": "status", "type": "string", "optional": false, "description": "", "typeRef": "Network.ReportStatus"}]);
|
|
920
921
|
inspectorBackend.registerType("Network.ReportingApiEndpoint", [{"name": "url", "type": "string", "optional": false, "description": "The URL of the endpoint to which reports may be delivered.", "typeRef": null}, {"name": "groupName", "type": "string", "optional": false, "description": "Name of the endpoint group.", "typeRef": null}]);
|
|
921
922
|
inspectorBackend.registerType("Network.DeviceBoundSessionKey", [{"name": "site", "type": "string", "optional": false, "description": "The site the session is set up for.", "typeRef": null}, {"name": "id", "type": "string", "optional": false, "description": "The id of the session.", "typeRef": null}]);
|
|
923
|
+
inspectorBackend.registerType("Network.DeviceBoundSessionWithUsage", [{"name": "sessionKey", "type": "object", "optional": false, "description": "The key for the session.", "typeRef": "Network.DeviceBoundSessionKey"}, {"name": "usage", "type": "string", "optional": false, "description": "How the session was used (or not used).", "typeRef": null}]);
|
|
922
924
|
inspectorBackend.registerType("Network.DeviceBoundSessionCookieCraving", [{"name": "name", "type": "string", "optional": false, "description": "The name of the craving.", "typeRef": null}, {"name": "domain", "type": "string", "optional": false, "description": "The domain of the craving.", "typeRef": null}, {"name": "path", "type": "string", "optional": false, "description": "The path of the craving.", "typeRef": null}, {"name": "secure", "type": "boolean", "optional": false, "description": "The `Secure` attribute of the craving attributes.", "typeRef": null}, {"name": "httpOnly", "type": "boolean", "optional": false, "description": "The `HttpOnly` attribute of the craving attributes.", "typeRef": null}, {"name": "sameSite", "type": "string", "optional": true, "description": "The `SameSite` attribute of the craving attributes.", "typeRef": "Network.CookieSameSite"}]);
|
|
923
925
|
inspectorBackend.registerType("Network.DeviceBoundSessionUrlRule", [{"name": "ruleType", "type": "string", "optional": false, "description": "See comments on `net::device_bound_sessions::SessionInclusionRules::UrlRule::rule_type`.", "typeRef": null}, {"name": "hostPattern", "type": "string", "optional": false, "description": "See comments on `net::device_bound_sessions::SessionInclusionRules::UrlRule::host_pattern`.", "typeRef": null}, {"name": "pathPrefix", "type": "string", "optional": false, "description": "See comments on `net::device_bound_sessions::SessionInclusionRules::UrlRule::path_prefix`.", "typeRef": null}]);
|
|
924
926
|
inspectorBackend.registerType("Network.DeviceBoundSessionInclusionRules", [{"name": "origin", "type": "string", "optional": false, "description": "See comments on `net::device_bound_sessions::SessionInclusionRules::origin_`.", "typeRef": null}, {"name": "includeSite", "type": "boolean", "optional": false, "description": "Whether the whole site is included. See comments on `net::device_bound_sessions::SessionInclusionRules::include_site_` for more details; this boolean is true if that value is populated.", "typeRef": null}, {"name": "urlRules", "type": "array", "optional": false, "description": "See comments on `net::device_bound_sessions::SessionInclusionRules::url_rules_`.", "typeRef": "Network.DeviceBoundSessionUrlRule"}]);
|
|
@@ -1366,7 +1368,7 @@ inspectorBackend.registerCommand("Target.closeTarget", [{"name": "targetId", "ty
|
|
|
1366
1368
|
inspectorBackend.registerCommand("Target.exposeDevToolsProtocol", [{"name": "targetId", "type": "string", "optional": false, "description": "", "typeRef": "Target.TargetID"}, {"name": "bindingName", "type": "string", "optional": true, "description": "Binding name, 'cdp' if not specified.", "typeRef": null}, {"name": "inheritPermissions", "type": "boolean", "optional": true, "description": "If true, inherits the current root session's permissions (default: false).", "typeRef": null}], [], "Inject object to the target's main frame that provides a communication channel with browser target. Injected object will be available as `window[bindingName]`. The object has the following API: - `binding.send(json)` - a method to send messages over the remote debugging protocol - `binding.onmessage = json => handleMessage(json)` - a callback that will be called for the protocol notifications and command responses.");
|
|
1367
1369
|
inspectorBackend.registerCommand("Target.createBrowserContext", [{"name": "disposeOnDetach", "type": "boolean", "optional": true, "description": "If specified, disposes this context when debugging session disconnects.", "typeRef": null}, {"name": "proxyServer", "type": "string", "optional": true, "description": "Proxy server, similar to the one passed to --proxy-server", "typeRef": null}, {"name": "proxyBypassList", "type": "string", "optional": true, "description": "Proxy bypass list, similar to the one passed to --proxy-bypass-list", "typeRef": null}, {"name": "originsWithUniversalNetworkAccess", "type": "array", "optional": true, "description": "An optional list of origins to grant unlimited cross-origin access to. Parts of the URL other than those constituting origin are ignored.", "typeRef": "string"}], ["browserContextId"], "Creates a new empty BrowserContext. Similar to an incognito profile but you can have more than one.");
|
|
1368
1370
|
inspectorBackend.registerCommand("Target.getBrowserContexts", [], ["browserContextIds", "defaultBrowserContextId"], "Returns all browser contexts created with `Target.createBrowserContext` method.");
|
|
1369
|
-
inspectorBackend.registerCommand("Target.createTarget", [{"name": "url", "type": "string", "optional": false, "description": "The initial URL the page will be navigated to. An empty string indicates about:blank.", "typeRef": null}, {"name": "left", "type": "number", "optional": true, "description": "Frame left origin in DIP (requires newWindow to be true or headless shell).", "typeRef": null}, {"name": "top", "type": "number", "optional": true, "description": "Frame top origin in DIP (requires newWindow to be true or headless shell).", "typeRef": null}, {"name": "width", "type": "number", "optional": true, "description": "Frame width in DIP (requires newWindow to be true or headless shell).", "typeRef": null}, {"name": "height", "type": "number", "optional": true, "description": "Frame height in DIP (requires newWindow to be true or headless shell).", "typeRef": null}, {"name": "windowState", "type": "string", "optional": true, "description": "Frame window state (requires newWindow to be true or headless shell). Default is normal.", "typeRef": "Target.WindowState"}, {"name": "browserContextId", "type": "string", "optional": true, "description": "The browser context to create the page in.", "typeRef": "Browser.BrowserContextID"}, {"name": "enableBeginFrameControl", "type": "boolean", "optional": true, "description": "Whether BeginFrames for this target will be controlled via DevTools (headless shell only, not supported on MacOS yet, false by default).", "typeRef": null}, {"name": "newWindow", "type": "boolean", "optional": true, "description": "Whether to create a new Window or Tab (false by default, not supported by headless shell).", "typeRef": null}, {"name": "background", "type": "boolean", "optional": true, "description": "Whether to create the target in background or foreground (false by default, not supported by headless shell).", "typeRef": null}, {"name": "forTab", "type": "boolean", "optional": true, "description": "Whether to create the target of type \\\"tab\\\".", "typeRef": null}, {"name": "hidden", "type": "boolean", "optional": true, "description": "Whether to create a hidden target. The hidden target is observable via protocol, but not present in the tab UI strip. Cannot be created with `forTab: true`, `newWindow: true` or `background: false`. The life-time of the tab is limited to the life-time of the session.", "typeRef": null}], ["targetId"], "Creates a new page.");
|
|
1371
|
+
inspectorBackend.registerCommand("Target.createTarget", [{"name": "url", "type": "string", "optional": false, "description": "The initial URL the page will be navigated to. An empty string indicates about:blank.", "typeRef": null}, {"name": "left", "type": "number", "optional": true, "description": "Frame left origin in DIP (requires newWindow to be true or headless shell).", "typeRef": null}, {"name": "top", "type": "number", "optional": true, "description": "Frame top origin in DIP (requires newWindow to be true or headless shell).", "typeRef": null}, {"name": "width", "type": "number", "optional": true, "description": "Frame width in DIP (requires newWindow to be true or headless shell).", "typeRef": null}, {"name": "height", "type": "number", "optional": true, "description": "Frame height in DIP (requires newWindow to be true or headless shell).", "typeRef": null}, {"name": "windowState", "type": "string", "optional": true, "description": "Frame window state (requires newWindow to be true or headless shell). Default is normal.", "typeRef": "Target.WindowState"}, {"name": "browserContextId", "type": "string", "optional": true, "description": "The browser context to create the page in.", "typeRef": "Browser.BrowserContextID"}, {"name": "enableBeginFrameControl", "type": "boolean", "optional": true, "description": "Whether BeginFrames for this target will be controlled via DevTools (headless shell only, not supported on MacOS yet, false by default).", "typeRef": null}, {"name": "newWindow", "type": "boolean", "optional": true, "description": "Whether to create a new Window or Tab (false by default, not supported by headless shell).", "typeRef": null}, {"name": "background", "type": "boolean", "optional": true, "description": "Whether to create the target in background or foreground (false by default, not supported by headless shell).", "typeRef": null}, {"name": "forTab", "type": "boolean", "optional": true, "description": "Whether to create the target of type \\\"tab\\\".", "typeRef": null}, {"name": "hidden", "type": "boolean", "optional": true, "description": "Whether to create a hidden target. The hidden target is observable via protocol, but not present in the tab UI strip. Cannot be created with `forTab: true`, `newWindow: true` or `background: false`. The life-time of the tab is limited to the life-time of the session.", "typeRef": null}, {"name": "focus", "type": "boolean", "optional": true, "description": "If specified, the option is used to determine if the new target should be focused or not. By default, the focus behavior depends on the value of the background field. For example, background=false and focus=false will result in the target tab being opened but the browser window remain unchanged (if it was in the background, it will remain in the background) and background=false with focus=undefined will result in the window being focused. Using background: true and focus: true is not supported and will result in an error.", "typeRef": null}], ["targetId"], "Creates a new page.");
|
|
1370
1372
|
inspectorBackend.registerCommand("Target.detachFromTarget", [{"name": "sessionId", "type": "string", "optional": true, "description": "Session to detach.", "typeRef": "Target.SessionID"}, {"name": "targetId", "type": "string", "optional": true, "description": "Deprecated.", "typeRef": "Target.TargetID"}], [], "Detaches session with given id.");
|
|
1371
1373
|
inspectorBackend.registerCommand("Target.disposeBrowserContext", [{"name": "browserContextId", "type": "string", "optional": false, "description": "", "typeRef": "Browser.BrowserContextID"}], [], "Deletes a BrowserContext. All the belonging pages will be closed without calling their beforeunload hooks.");
|
|
1372
1374
|
inspectorBackend.registerCommand("Target.getTargetInfo", [{"name": "targetId", "type": "string", "optional": true, "description": "", "typeRef": "Target.TargetID"}], ["targetInfo"], "Returns information about a target.");
|
|
@@ -775,6 +775,7 @@ export const generatedProperties = [
|
|
|
775
775
|
"view-transition-class",
|
|
776
776
|
"view-transition-group",
|
|
777
777
|
"view-transition-name",
|
|
778
|
+
"view-transition-scope",
|
|
778
779
|
"visibility",
|
|
779
780
|
"white-space-collapse",
|
|
780
781
|
"widows",
|
|
@@ -1845,8 +1846,7 @@ export const generatedProperties = [
|
|
|
1845
1846
|
"style",
|
|
1846
1847
|
"paint",
|
|
1847
1848
|
"inline-size",
|
|
1848
|
-
"block-size"
|
|
1849
|
-
"view-transition"
|
|
1849
|
+
"block-size"
|
|
1850
1850
|
],
|
|
1851
1851
|
"name": "contain"
|
|
1852
1852
|
},
|
|
@@ -4804,6 +4804,14 @@ export const generatedProperties = [
|
|
|
4804
4804
|
],
|
|
4805
4805
|
"name": "view-transition-name"
|
|
4806
4806
|
},
|
|
4807
|
+
{
|
|
4808
|
+
"inherited": false,
|
|
4809
|
+
"keywords": [
|
|
4810
|
+
"none",
|
|
4811
|
+
"auto"
|
|
4812
|
+
],
|
|
4813
|
+
"name": "view-transition-scope"
|
|
4814
|
+
},
|
|
4807
4815
|
{
|
|
4808
4816
|
"inherited": true,
|
|
4809
4817
|
"keywords": [
|
|
@@ -5557,8 +5565,7 @@ export const generatedPropertyValues = {
|
|
|
5557
5565
|
"style",
|
|
5558
5566
|
"paint",
|
|
5559
5567
|
"inline-size",
|
|
5560
|
-
"block-size"
|
|
5561
|
-
"view-transition"
|
|
5568
|
+
"block-size"
|
|
5562
5569
|
]
|
|
5563
5570
|
},
|
|
5564
5571
|
"contain-intrinsic-height": {
|
|
@@ -7154,6 +7161,12 @@ export const generatedPropertyValues = {
|
|
|
7154
7161
|
"auto"
|
|
7155
7162
|
]
|
|
7156
7163
|
},
|
|
7164
|
+
"view-transition-scope": {
|
|
7165
|
+
"values": [
|
|
7166
|
+
"none",
|
|
7167
|
+
"auto"
|
|
7168
|
+
]
|
|
7169
|
+
},
|
|
7157
7170
|
"visibility": {
|
|
7158
7171
|
"values": [
|
|
7159
7172
|
"visible",
|
|
@@ -1452,6 +1452,8 @@ export namespace ProtocolMapping {
|
|
|
1452
1452
|
* to the provided property syntax, the value is parsed using combined
|
|
1453
1453
|
* syntax as if null `propertyName` was provided. If the value cannot be
|
|
1454
1454
|
* resolved even then, return the provided value without any changes.
|
|
1455
|
+
* Note: this function currently does not resolve CSS random() function,
|
|
1456
|
+
* it returns unmodified random() function parts.`
|
|
1455
1457
|
*/
|
|
1456
1458
|
'CSS.resolveValues': {
|
|
1457
1459
|
paramsType: [Protocol.CSS.ResolveValuesRequest];
|
|
@@ -767,6 +767,8 @@ declare namespace ProtocolProxyApi {
|
|
|
767
767
|
* to the provided property syntax, the value is parsed using combined
|
|
768
768
|
* syntax as if null `propertyName` was provided. If the value cannot be
|
|
769
769
|
* resolved even then, return the provided value without any changes.
|
|
770
|
+
* Note: this function currently does not resolve CSS random() function,
|
|
771
|
+
* it returns unmodified random() function parts.`
|
|
770
772
|
*/
|
|
771
773
|
invoke_resolveValues(params: Protocol.CSS.ResolveValuesRequest): Promise<Protocol.CSS.ResolveValuesResponse>;
|
|
772
774
|
|
|
@@ -10255,8 +10255,6 @@ export namespace Network {
|
|
|
10255
10255
|
PreflightInvalidAllowCredentials = 'PreflightInvalidAllowCredentials',
|
|
10256
10256
|
PreflightMissingAllowExternal = 'PreflightMissingAllowExternal',
|
|
10257
10257
|
PreflightInvalidAllowExternal = 'PreflightInvalidAllowExternal',
|
|
10258
|
-
PreflightMissingAllowPrivateNetwork = 'PreflightMissingAllowPrivateNetwork',
|
|
10259
|
-
PreflightInvalidAllowPrivateNetwork = 'PreflightInvalidAllowPrivateNetwork',
|
|
10260
10258
|
InvalidAllowMethodsPreflightResponse = 'InvalidAllowMethodsPreflightResponse',
|
|
10261
10259
|
InvalidAllowHeadersPreflightResponse = 'InvalidAllowHeadersPreflightResponse',
|
|
10262
10260
|
MethodDisallowedByPreflightResponse = 'MethodDisallowedByPreflightResponse',
|
|
@@ -10264,12 +10262,7 @@ export namespace Network {
|
|
|
10264
10262
|
RedirectContainsCredentials = 'RedirectContainsCredentials',
|
|
10265
10263
|
InsecurePrivateNetwork = 'InsecurePrivateNetwork',
|
|
10266
10264
|
InvalidPrivateNetworkAccess = 'InvalidPrivateNetworkAccess',
|
|
10267
|
-
UnexpectedPrivateNetworkAccess = 'UnexpectedPrivateNetworkAccess',
|
|
10268
10265
|
NoCorsRedirectModeNotFollow = 'NoCorsRedirectModeNotFollow',
|
|
10269
|
-
PreflightMissingPrivateNetworkAccessId = 'PreflightMissingPrivateNetworkAccessId',
|
|
10270
|
-
PreflightMissingPrivateNetworkAccessName = 'PreflightMissingPrivateNetworkAccessName',
|
|
10271
|
-
PrivateNetworkAccessPermissionUnavailable = 'PrivateNetworkAccessPermissionUnavailable',
|
|
10272
|
-
PrivateNetworkAccessPermissionDenied = 'PrivateNetworkAccessPermissionDenied',
|
|
10273
10266
|
LocalNetworkAccessPermissionDenied = 'LocalNetworkAccessPermissionDenied',
|
|
10274
10267
|
}
|
|
10275
10268
|
|
|
@@ -11362,6 +11355,29 @@ export namespace Network {
|
|
|
11362
11355
|
id: string;
|
|
11363
11356
|
}
|
|
11364
11357
|
|
|
11358
|
+
export const enum DeviceBoundSessionWithUsageUsage {
|
|
11359
|
+
NotInScope = 'NotInScope',
|
|
11360
|
+
InScopeRefreshNotYetNeeded = 'InScopeRefreshNotYetNeeded',
|
|
11361
|
+
InScopeRefreshNotAllowed = 'InScopeRefreshNotAllowed',
|
|
11362
|
+
ProactiveRefreshNotPossible = 'ProactiveRefreshNotPossible',
|
|
11363
|
+
ProactiveRefreshAttempted = 'ProactiveRefreshAttempted',
|
|
11364
|
+
Deferred = 'Deferred',
|
|
11365
|
+
}
|
|
11366
|
+
|
|
11367
|
+
/**
|
|
11368
|
+
* How a device bound session was used during a request.
|
|
11369
|
+
*/
|
|
11370
|
+
export interface DeviceBoundSessionWithUsage {
|
|
11371
|
+
/**
|
|
11372
|
+
* The key for the session.
|
|
11373
|
+
*/
|
|
11374
|
+
sessionKey: DeviceBoundSessionKey;
|
|
11375
|
+
/**
|
|
11376
|
+
* How the session was used (or not used).
|
|
11377
|
+
*/
|
|
11378
|
+
usage: DeviceBoundSessionWithUsageUsage;
|
|
11379
|
+
}
|
|
11380
|
+
|
|
11365
11381
|
/**
|
|
11366
11382
|
* A device bound session's cookie craving.
|
|
11367
11383
|
*/
|
|
@@ -12878,6 +12894,10 @@ export namespace Network {
|
|
|
12878
12894
|
* Connection timing information for the request.
|
|
12879
12895
|
*/
|
|
12880
12896
|
connectTiming: ConnectTiming;
|
|
12897
|
+
/**
|
|
12898
|
+
* How the request site's device bound sessions were used during this request.
|
|
12899
|
+
*/
|
|
12900
|
+
deviceBoundSessionUsages?: DeviceBoundSessionWithUsage[];
|
|
12881
12901
|
/**
|
|
12882
12902
|
* The client security state set for the request.
|
|
12883
12903
|
*/
|
|
@@ -18822,6 +18842,16 @@ export namespace Target {
|
|
|
18822
18842
|
* `background: false`. The life-time of the tab is limited to the life-time of the session.
|
|
18823
18843
|
*/
|
|
18824
18844
|
hidden?: boolean;
|
|
18845
|
+
/**
|
|
18846
|
+
* If specified, the option is used to determine if the new target should
|
|
18847
|
+
* be focused or not. By default, the focus behavior depends on the
|
|
18848
|
+
* value of the background field. For example, background=false and focus=false
|
|
18849
|
+
* will result in the target tab being opened but the browser window remain
|
|
18850
|
+
* unchanged (if it was in the background, it will remain in the background)
|
|
18851
|
+
* and background=false with focus=undefined will result in the window being focused.
|
|
18852
|
+
* Using background: true and focus: true is not supported and will result in an error.
|
|
18853
|
+
*/
|
|
18854
|
+
focus?: boolean;
|
|
18825
18855
|
}
|
|
18826
18856
|
|
|
18827
18857
|
export interface CreateTargetResponse extends ProtocolResponseWithError {
|
|
@@ -54,3 +54,11 @@ export function getDisabledReasons(aidaAvailability: Host.AidaClient.AidaAccessP
|
|
|
54
54
|
reasons.push(...Common.Settings.Settings.instance().moduleSetting('ai-assistance-enabled').disabledReasons());
|
|
55
55
|
return reasons;
|
|
56
56
|
}
|
|
57
|
+
|
|
58
|
+
export function isGeminiBranding(): boolean {
|
|
59
|
+
return !!Root.Runtime.hostConfig.devToolsGeminiRebranding?.enabled;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export function getIconName(): string {
|
|
63
|
+
return isGeminiBranding() ? 'spark' : 'smart-assistant';
|
|
64
|
+
}
|
|
@@ -57,7 +57,7 @@ Content:
|
|
|
57
57
|
"function_declarations": [
|
|
58
58
|
{
|
|
59
59
|
"name": "getStyles",
|
|
60
|
-
"description": "Get computed and source styles for one or multiple elements on the inspected page for multiple elements at once by uid.\n\n**CRITICAL** Use selectors to refer to elements in the text output. Do not use uids.\n**CRITICAL** Always provide the explanation argument to explain what and why you query.",
|
|
60
|
+
"description": "Get computed and source styles for one or multiple elements on the inspected page for multiple elements at once by uid.\n\n**CRITICAL** An element uid is a number, not a selector.\n**CRITICAL** Use selectors to refer to elements in the text output. Do not use uids.\n**CRITICAL** Always provide the explanation argument to explain what and why you query.",
|
|
61
61
|
"parameters": {
|
|
62
62
|
"type": 6,
|
|
63
63
|
"description": "",
|
|
@@ -70,9 +70,9 @@ Content:
|
|
|
70
70
|
},
|
|
71
71
|
"elements": {
|
|
72
72
|
"type": 5,
|
|
73
|
-
"description": "A list of element uids to get data for",
|
|
73
|
+
"description": "A list of element uids to get data for. These are numbers, not selectors.",
|
|
74
74
|
"items": {
|
|
75
|
-
"type":
|
|
75
|
+
"type": 3,
|
|
76
76
|
"description": "An element uid."
|
|
77
77
|
},
|
|
78
78
|
"nullable": false
|
|
@@ -279,13 +279,14 @@ export class StylingAgent extends AiAgent<SDK.DOMModel.DOMNode> {
|
|
|
279
279
|
});
|
|
280
280
|
|
|
281
281
|
this.declareFunction<{
|
|
282
|
-
elements:
|
|
282
|
+
elements: number[],
|
|
283
283
|
styleProperties: string[],
|
|
284
284
|
explanation: string,
|
|
285
285
|
}>('getStyles', {
|
|
286
286
|
description:
|
|
287
287
|
`Get computed and source styles for one or multiple elements on the inspected page for multiple elements at once by uid.
|
|
288
288
|
|
|
289
|
+
**CRITICAL** An element uid is a number, not a selector.
|
|
289
290
|
**CRITICAL** Use selectors to refer to elements in the text output. Do not use uids.
|
|
290
291
|
**CRITICAL** Always provide the explanation argument to explain what and why you query.`,
|
|
291
292
|
parameters: {
|
|
@@ -300,8 +301,8 @@ export class StylingAgent extends AiAgent<SDK.DOMModel.DOMNode> {
|
|
|
300
301
|
},
|
|
301
302
|
elements: {
|
|
302
303
|
type: Host.AidaClient.ParametersTypes.ARRAY,
|
|
303
|
-
description: 'A list of element uids to get data for',
|
|
304
|
-
items: {type: Host.AidaClient.ParametersTypes.
|
|
304
|
+
description: 'A list of element uids to get data for. These are numbers, not selectors.',
|
|
305
|
+
items: {type: Host.AidaClient.ParametersTypes.INTEGER, description: `An element uid.`},
|
|
305
306
|
nullable: false,
|
|
306
307
|
},
|
|
307
308
|
styleProperties: {
|
|
@@ -605,7 +606,7 @@ const data = {
|
|
|
605
606
|
return this.context?.getItem() ?? null;
|
|
606
607
|
}
|
|
607
608
|
|
|
608
|
-
async getStyles(elements:
|
|
609
|
+
async getStyles(elements: number[], properties: string[]): Promise<FunctionCallHandlerResult<unknown>> {
|
|
609
610
|
const result:
|
|
610
611
|
Record<string, {computed: Record<string, string|undefined>, authored: Record<string, string|undefined>}> = {};
|
|
611
612
|
for (const uid of elements) {
|
|
@@ -44,12 +44,6 @@ export const enum IssueCode {
|
|
|
44
44
|
PREFLIGHT_INVALID_ALLOW_EXTERNAL = 'CorsIssue::PreflightInvalidAllowExternal',
|
|
45
45
|
NO_CORS_REDIRECT_MODE_NOT_FOLLOW = 'CorsIssue::NoCorsRedirectModeNotFollow',
|
|
46
46
|
INVALID_PRIVATE_NETWORK_ACCESS = 'CorsIssue::InvalidPrivateNetworkAccess',
|
|
47
|
-
UNEXPECTED_PRIVATE_NETWORK_ACCESS = 'CorsIssue::UnexpectedPrivateNetworkAccess',
|
|
48
|
-
PREFLIGHT_ALLOW_PRIVATE_NETWORK_ERROR = 'CorsIssue::PreflightAllowPrivateNetworkError',
|
|
49
|
-
PREFLIGHT_MISSING_PRIVATE_NETWORK_ACCESS_ID = 'CorsIssue::PreflightMissingPrivateNetworkAccessId',
|
|
50
|
-
PREFLIGHT_MISSING_PRIVATE_NETWORK_ACCESS_NAME = 'CorsIssue::PreflightMissingPrivateNetworkAccessName',
|
|
51
|
-
PRIVATE_NETWORK_ACCESS_PERMISSION_UNAVAILABLE = 'CorsIssue::PrivateNetworkAccessPermissionUnavailable',
|
|
52
|
-
PRIVATE_NETWORK_ACCESS_PERMISSION_DENIED = 'CorsIssue::PrivateNetworkAccessPermissionDenied',
|
|
53
47
|
LOCAL_NETWORK_ACCESS_PERMISSION_DENIED = 'CorsIssue::LocalNetworkAccessPermissionDenied',
|
|
54
48
|
}
|
|
55
49
|
|
|
@@ -97,19 +91,6 @@ function getIssueCode(details: Protocol.Audits.CorsIssueDetails): IssueCode {
|
|
|
97
91
|
return IssueCode.NO_CORS_REDIRECT_MODE_NOT_FOLLOW;
|
|
98
92
|
case Protocol.Network.CorsError.InvalidPrivateNetworkAccess:
|
|
99
93
|
return IssueCode.INVALID_PRIVATE_NETWORK_ACCESS;
|
|
100
|
-
case Protocol.Network.CorsError.UnexpectedPrivateNetworkAccess:
|
|
101
|
-
return IssueCode.UNEXPECTED_PRIVATE_NETWORK_ACCESS;
|
|
102
|
-
case Protocol.Network.CorsError.PreflightMissingAllowPrivateNetwork:
|
|
103
|
-
case Protocol.Network.CorsError.PreflightInvalidAllowPrivateNetwork:
|
|
104
|
-
return IssueCode.PREFLIGHT_ALLOW_PRIVATE_NETWORK_ERROR;
|
|
105
|
-
case Protocol.Network.CorsError.PreflightMissingPrivateNetworkAccessId:
|
|
106
|
-
return IssueCode.PREFLIGHT_MISSING_PRIVATE_NETWORK_ACCESS_ID;
|
|
107
|
-
case Protocol.Network.CorsError.PreflightMissingPrivateNetworkAccessName:
|
|
108
|
-
return IssueCode.PREFLIGHT_MISSING_PRIVATE_NETWORK_ACCESS_NAME;
|
|
109
|
-
case Protocol.Network.CorsError.PrivateNetworkAccessPermissionUnavailable:
|
|
110
|
-
return IssueCode.PRIVATE_NETWORK_ACCESS_PERMISSION_UNAVAILABLE;
|
|
111
|
-
case Protocol.Network.CorsError.PrivateNetworkAccessPermissionDenied:
|
|
112
|
-
return IssueCode.PRIVATE_NETWORK_ACCESS_PERMISSION_DENIED;
|
|
113
94
|
case Protocol.Network.CorsError.LocalNetworkAccessPermissionDenied:
|
|
114
95
|
return IssueCode.LOCAL_NETWORK_ACCESS_PERMISSION_DENIED;
|
|
115
96
|
}
|
|
@@ -136,14 +117,6 @@ export class CorsIssue extends Issue<Protocol.Audits.CorsIssueDetails, IssueCode
|
|
|
136
117
|
linkTitle: i18nString(UIStrings.corsPrivateNetworkAccess),
|
|
137
118
|
}],
|
|
138
119
|
};
|
|
139
|
-
case IssueCode.PREFLIGHT_ALLOW_PRIVATE_NETWORK_ERROR:
|
|
140
|
-
return {
|
|
141
|
-
file: 'corsPreflightAllowPrivateNetworkError.md',
|
|
142
|
-
links: [{
|
|
143
|
-
link: 'https://developer.chrome.com/blog/private-network-access-update',
|
|
144
|
-
linkTitle: i18nString(UIStrings.corsPrivateNetworkAccess),
|
|
145
|
-
}],
|
|
146
|
-
};
|
|
147
120
|
case IssueCode.INVALID_HEADER_VALUES:
|
|
148
121
|
return {
|
|
149
122
|
file: 'corsInvalidHeaderValues.md',
|
|
@@ -232,17 +205,6 @@ export class CorsIssue extends Issue<Protocol.Audits.CorsIssueDetails, IssueCode
|
|
|
232
205
|
linkTitle: i18nString(UIStrings.CORS),
|
|
233
206
|
}],
|
|
234
207
|
};
|
|
235
|
-
// TODO(1462857): Change the link after we have a blog post for PNA
|
|
236
|
-
// permission prompt.
|
|
237
|
-
case IssueCode.PREFLIGHT_MISSING_PRIVATE_NETWORK_ACCESS_ID:
|
|
238
|
-
case IssueCode.PREFLIGHT_MISSING_PRIVATE_NETWORK_ACCESS_NAME:
|
|
239
|
-
return {
|
|
240
|
-
file: 'corsPrivateNetworkPermissionDenied.md',
|
|
241
|
-
links: [{
|
|
242
|
-
link: 'https://developer.chrome.com/blog/private-network-access-update',
|
|
243
|
-
linkTitle: i18nString(UIStrings.corsPrivateNetworkAccess),
|
|
244
|
-
}],
|
|
245
|
-
};
|
|
246
208
|
case IssueCode.LOCAL_NETWORK_ACCESS_PERMISSION_DENIED:
|
|
247
209
|
return {
|
|
248
210
|
file: 'corsLocalNetworkAccessPermissionDenied.md',
|
|
@@ -254,9 +216,6 @@ export class CorsIssue extends Issue<Protocol.Audits.CorsIssueDetails, IssueCode
|
|
|
254
216
|
case IssueCode.PREFLIGHT_MISSING_ALLOW_EXTERNAL:
|
|
255
217
|
case IssueCode.PREFLIGHT_INVALID_ALLOW_EXTERNAL:
|
|
256
218
|
case IssueCode.INVALID_PRIVATE_NETWORK_ACCESS:
|
|
257
|
-
case IssueCode.UNEXPECTED_PRIVATE_NETWORK_ACCESS:
|
|
258
|
-
case IssueCode.PRIVATE_NETWORK_ACCESS_PERMISSION_UNAVAILABLE:
|
|
259
|
-
case IssueCode.PRIVATE_NETWORK_ACCESS_PERMISSION_DENIED:
|
|
260
219
|
return null;
|
|
261
220
|
}
|
|
262
221
|
}
|
|
@@ -267,9 +226,7 @@ export class CorsIssue extends Issue<Protocol.Audits.CorsIssueDetails, IssueCode
|
|
|
267
226
|
|
|
268
227
|
getKind(): IssueKind {
|
|
269
228
|
if (this.details().isWarning &&
|
|
270
|
-
|
|
271
|
-
this.details().corsErrorStatus.corsError === Protocol.Network.CorsError.PreflightMissingAllowPrivateNetwork ||
|
|
272
|
-
this.details().corsErrorStatus.corsError === Protocol.Network.CorsError.PreflightInvalidAllowPrivateNetwork)) {
|
|
229
|
+
this.details().corsErrorStatus.corsError === Protocol.Network.CorsError.InsecurePrivateNetwork) {
|
|
273
230
|
return IssueKind.BREAKING_CHANGE;
|
|
274
231
|
}
|
|
275
232
|
return IssueKind.PAGE_ERROR;
|
|
@@ -469,15 +469,6 @@ export class NetworkLog extends Common.ObjectWrapper.ObjectWrapper<EventTypes> i
|
|
|
469
469
|
return;
|
|
470
470
|
}
|
|
471
471
|
|
|
472
|
-
// This is only triggered in an edge case in which Chrome reports 2 preflight requests. The
|
|
473
|
-
// first preflight gets aborted and should not be shown in DevTools.
|
|
474
|
-
// (see https://crbug.com/1290390 for details)
|
|
475
|
-
if (request.isPreflightRequest() &&
|
|
476
|
-
request.corsErrorStatus()?.corsError === Protocol.Network.CorsError.UnexpectedPrivateNetworkAccess) {
|
|
477
|
-
this.removeRequest(request);
|
|
478
|
-
return;
|
|
479
|
-
}
|
|
480
|
-
|
|
481
472
|
this.dispatchEventToListeners(Events.RequestUpdated, {request});
|
|
482
473
|
}
|
|
483
474
|
|
|
@@ -62,3 +62,43 @@ export const enum Events {
|
|
|
62
62
|
export interface EventTypes {
|
|
63
63
|
[Events.UPDATED]: void;
|
|
64
64
|
}
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* A small wrapper around a DebuggableFrame usable as a UI.Context flavor.
|
|
68
|
+
* This is necessary as Frame and DebuggableFrame are updated in place, but
|
|
69
|
+
* for UI.Context we need a new instance.
|
|
70
|
+
*/
|
|
71
|
+
export class DebuggableFrameFlavor implements DebuggableFrame {
|
|
72
|
+
static #last?: DebuggableFrameFlavor;
|
|
73
|
+
|
|
74
|
+
readonly url?: string;
|
|
75
|
+
readonly uiSourceCode?: Workspace.UISourceCode.UISourceCode;
|
|
76
|
+
readonly name?: string;
|
|
77
|
+
readonly line: number;
|
|
78
|
+
readonly column: number;
|
|
79
|
+
readonly missingDebugInfo?: MissingDebugInfo;
|
|
80
|
+
readonly sdkFrame: SDK.DebuggerModel.CallFrame;
|
|
81
|
+
|
|
82
|
+
private constructor(frame: DebuggableFrame) {
|
|
83
|
+
this.url = frame.url;
|
|
84
|
+
this.uiSourceCode = frame.uiSourceCode;
|
|
85
|
+
this.name = frame.name;
|
|
86
|
+
this.line = frame.line;
|
|
87
|
+
this.column = frame.column;
|
|
88
|
+
this.missingDebugInfo = frame.missingDebugInfo;
|
|
89
|
+
this.sdkFrame = frame.sdkFrame;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/** @returns the same instance of DebuggableFrameFlavor for repeated calls with the same (i.e. deep equal) DebuggableFrame */
|
|
93
|
+
static for(frame: DebuggableFrame): DebuggableFrameFlavor {
|
|
94
|
+
function equals(a: DebuggableFrame, b: DebuggableFrame): boolean {
|
|
95
|
+
return a.url === b.url && a.uiSourceCode === b.uiSourceCode && a.name === b.name && a.line === b.line &&
|
|
96
|
+
a.column === b.column && a.sdkFrame === b.sdkFrame;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
if (!DebuggableFrameFlavor.#last || !equals(DebuggableFrameFlavor.#last, frame)) {
|
|
100
|
+
DebuggableFrameFlavor.#last = new DebuggableFrameFlavor(frame);
|
|
101
|
+
}
|
|
102
|
+
return DebuggableFrameFlavor.#last;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
@@ -556,8 +556,9 @@ export class PatchWidget extends UI.Widget.Widget {
|
|
|
556
556
|
return true;
|
|
557
557
|
}
|
|
558
558
|
|
|
559
|
+
const iconName = AiAssistanceModel.AiUtils.getIconName();
|
|
559
560
|
const result = await PanelCommon.FreDialog.show({
|
|
560
|
-
header: {iconName
|
|
561
|
+
header: {iconName, text: lockedString(UIStringsNotTranslate.freDisclaimerHeader)},
|
|
561
562
|
reminderItems: [
|
|
562
563
|
{
|
|
563
564
|
iconName: 'psychiatry',
|