chrome-devtools-frontend 1.0.1589336 → 1.0.1590494

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.
Files changed (44) hide show
  1. package/front_end/core/common/Settings.ts +30 -1
  2. package/front_end/generated/Deprecation.ts +7 -0
  3. package/front_end/generated/InspectorBackendCommands.ts +9 -3
  4. package/front_end/generated/protocol-mapping.d.ts +9 -0
  5. package/front_end/generated/protocol-proxy-api.d.ts +7 -0
  6. package/front_end/generated/protocol.ts +98 -0
  7. package/front_end/models/javascript_metadata/NativeFunctions.js +48 -0
  8. package/front_end/panels/ai_assistance/AiAssistancePanel.ts +140 -32
  9. package/front_end/panels/ai_assistance/README.md +71 -0
  10. package/front_end/panels/ai_assistance/aiAssistancePanel.css +5 -0
  11. package/front_end/panels/ai_assistance/ai_assistance.ts +1 -0
  12. package/front_end/panels/ai_assistance/components/ChatMessage.ts +110 -7
  13. package/front_end/panels/ai_assistance/components/ChatView.ts +10 -0
  14. package/front_end/panels/ai_assistance/components/WalkthroughView.ts +208 -0
  15. package/front_end/panels/ai_assistance/components/chatMessage.css +2 -2
  16. package/front_end/panels/ai_assistance/components/walkthroughView.css +121 -0
  17. package/front_end/panels/application/DeviceBoundSessionsView.ts +64 -2
  18. package/front_end/panels/console/ConsoleView.ts +8 -8
  19. package/front_end/panels/console/console-meta.ts +10 -6
  20. package/front_end/panels/elements/ColorSwatchPopoverIcon.ts +14 -14
  21. package/front_end/panels/elements/ComputedStyleWidget.ts +27 -22
  22. package/front_end/panels/elements/ElementsTreeElement.ts +56 -2
  23. package/front_end/panels/elements/ElementsTreeOutline.ts +2 -0
  24. package/front_end/panels/elements/StyleEditorWidget.ts +12 -12
  25. package/front_end/panels/elements/StylePropertiesSection.ts +65 -64
  26. package/front_end/panels/elements/StylePropertyTreeElement.ts +138 -135
  27. package/front_end/panels/elements/StylesContainer.ts +57 -0
  28. package/front_end/panels/elements/StylesSidebarPane.ts +2 -1
  29. package/front_end/panels/layer_viewer/Layers3DView.ts +2 -2
  30. package/front_end/panels/network/RequestInitiatorView.ts +3 -2
  31. package/front_end/panels/timeline/timeline-meta.ts +4 -4
  32. package/front_end/panels/whats_new/ReleaseNoteText.ts +10 -16
  33. package/front_end/panels/whats_new/resources/WNDT.md +6 -6
  34. package/front_end/third_party/chromium/README.chromium +1 -1
  35. package/front_end/ui/components/markdown_view/MarkdownView.ts +5 -6
  36. package/front_end/ui/components/markdown_view/markdownView.css +6 -0
  37. package/front_end/ui/components/markdown_view/markdown_view.ts +0 -2
  38. package/front_end/ui/legacy/Treeoutline.ts +58 -10
  39. package/front_end/ui/legacy/Widget.ts +11 -1
  40. package/front_end/ui/legacy/inspectorCommon.css +2 -0
  41. package/front_end/ui/visual_logging/KnownContextValues.ts +11 -1
  42. package/package.json +1 -1
  43. package/front_end/ui/components/markdown_view/MarkdownLink.ts +0 -53
  44. package/front_end/ui/components/markdown_view/markdownLink.css +0 -11
@@ -684,7 +684,7 @@ export class VersionController {
684
684
  static readonly SYNCED_VERSION_SETTING_NAME = 'syncedInspectorVersion';
685
685
  static readonly LOCAL_VERSION_SETTING_NAME = 'localInspectorVersion';
686
686
 
687
- static readonly CURRENT_VERSION = 40;
687
+ static readonly CURRENT_VERSION = 41;
688
688
 
689
689
  readonly #settings: Settings;
690
690
  readonly #globalVersionSetting: Setting<number>;
@@ -1447,6 +1447,35 @@ export class VersionController {
1447
1447
  }
1448
1448
  }
1449
1449
 
1450
+ // This migration handles two setting renames that requires inverted logic
1451
+ // (from "Hide X" to "X") and flipped the default values to true.
1452
+ updateVersionFrom40To41(): void {
1453
+ // 1. Rename 'Hide network messages' to 'Network messages'
1454
+ if (this.#settings.syncedStorage.has('hide-network-messages')) {
1455
+ const oldNetworkSetting = this.#settings.createSetting('hide-network-messages', false, SettingStorageType.SYNCED);
1456
+ if (!this.#settings.syncedStorage.has('network-messages')) {
1457
+ const newNetworkSetting = this.#settings.createSetting('network-messages', true, SettingStorageType.SYNCED);
1458
+ // If the user had a saved preference for the old setting, migrate it by
1459
+ // inverting the value to match the new logic.
1460
+ newNetworkSetting.set(!oldNetworkSetting.get());
1461
+ }
1462
+ this.#removeSetting(oldNetworkSetting);
1463
+ }
1464
+
1465
+ // 2. Rename 'Hide `chrome` frame in Layers view' to 'Chrome frame in Layers view'
1466
+ if (this.#settings.syncedStorage.has('frame-viewer-hide-chrome-window')) {
1467
+ const oldChromeFrameSetting =
1468
+ this.#settings.createSetting('frame-viewer-hide-chrome-window', false, SettingStorageType.SYNCED);
1469
+ if (!this.#settings.syncedStorage.has('frame-viewer-chrome-window')) {
1470
+ const newChromeFrameSetting =
1471
+ this.#settings.createSetting('frame-viewer-chrome-window', true, SettingStorageType.SYNCED);
1472
+ // Similar to above, move the preference and invert the boolean.
1473
+ newChromeFrameSetting.set(!oldChromeFrameSetting.get());
1474
+ }
1475
+ this.#removeSetting(oldChromeFrameSetting);
1476
+ }
1477
+ }
1478
+
1450
1479
  /*
1451
1480
  * Any new migration should be added before this comment.
1452
1481
  *
@@ -106,6 +106,10 @@ export const UIStrings = {
106
106
  * @description Warning for using deprecated 'measureInputUsage' method.
107
107
  */
108
108
  LanguageModel_MeasureInputUsage: "LanguageModel.measureInputUsage() is deprecated. Please use LanguageModel.measureContextUsage() instead. This alias is only available in extensions.",
109
+ /**
110
+ * @description Warning for using deprecated 'onquotaoverflow' event handler.
111
+ */
112
+ LanguageModel_OnQuotaOverflow: "LanguageModel.onquotaoverflow is deprecated. Please use LanguageModel.oncontextoverflow instead. The LanguageModel.onquotaoverflow alias is only available in extensions.",
109
113
  /**
110
114
  * @description Warning message for web developers when they call the deprecated LanguageModel.params() method.
111
115
  */
@@ -334,6 +338,9 @@ export const DEPRECATIONS_METADATA: Partial<Record<string, DeprecationDescriptor
334
338
  "LanguageModel_MeasureInputUsage": {
335
339
  "chromeStatusFeature": 5134603979063296
336
340
  },
341
+ "LanguageModel_OnQuotaOverflow": {
342
+ "chromeStatusFeature": 5134603979063296
343
+ },
337
344
  "LocalCSSFileExtensionRejected": {
338
345
  "milestone": 64
339
346
  },
@@ -93,7 +93,7 @@ inspectorBackend.registerEnum("Audits.StyleSheetLoadingIssueReason", {LateImport
93
93
  inspectorBackend.registerEnum("Audits.PropertyRuleIssueReason", {InvalidSyntax: "InvalidSyntax", InvalidInitialValue: "InvalidInitialValue", InvalidInherits: "InvalidInherits", InvalidName: "InvalidName"});
94
94
  inspectorBackend.registerEnum("Audits.UserReidentificationIssueType", {BlockedFrameNavigation: "BlockedFrameNavigation", BlockedSubresource: "BlockedSubresource", NoisedCanvasReadback: "NoisedCanvasReadback"});
95
95
  inspectorBackend.registerEnum("Audits.PermissionElementIssueType", {InvalidType: "InvalidType", FencedFrameDisallowed: "FencedFrameDisallowed", CspFrameAncestorsMissing: "CspFrameAncestorsMissing", PermissionsPolicyBlocked: "PermissionsPolicyBlocked", PaddingRightUnsupported: "PaddingRightUnsupported", PaddingBottomUnsupported: "PaddingBottomUnsupported", InsetBoxShadowUnsupported: "InsetBoxShadowUnsupported", RequestInProgress: "RequestInProgress", UntrustedEvent: "UntrustedEvent", RegistrationFailed: "RegistrationFailed", TypeNotSupported: "TypeNotSupported", InvalidTypeActivation: "InvalidTypeActivation", SecurityChecksFailed: "SecurityChecksFailed", ActivationDisabled: "ActivationDisabled", GeolocationDeprecated: "GeolocationDeprecated", InvalidDisplayStyle: "InvalidDisplayStyle", NonOpaqueColor: "NonOpaqueColor", LowContrast: "LowContrast", FontSizeTooSmall: "FontSizeTooSmall", FontSizeTooLarge: "FontSizeTooLarge", InvalidSizeValue: "InvalidSizeValue"});
96
- inspectorBackend.registerEnum("Audits.InspectorIssueCode", {CookieIssue: "CookieIssue", MixedContentIssue: "MixedContentIssue", BlockedByResponseIssue: "BlockedByResponseIssue", HeavyAdIssue: "HeavyAdIssue", ContentSecurityPolicyIssue: "ContentSecurityPolicyIssue", SharedArrayBufferIssue: "SharedArrayBufferIssue", LowTextContrastIssue: "LowTextContrastIssue", CorsIssue: "CorsIssue", AttributionReportingIssue: "AttributionReportingIssue", QuirksModeIssue: "QuirksModeIssue", PartitioningBlobURLIssue: "PartitioningBlobURLIssue", NavigatorUserAgentIssue: "NavigatorUserAgentIssue", GenericIssue: "GenericIssue", DeprecationIssue: "DeprecationIssue", ClientHintIssue: "ClientHintIssue", FederatedAuthRequestIssue: "FederatedAuthRequestIssue", BounceTrackingIssue: "BounceTrackingIssue", CookieDeprecationMetadataIssue: "CookieDeprecationMetadataIssue", StylesheetLoadingIssue: "StylesheetLoadingIssue", FederatedAuthUserInfoRequestIssue: "FederatedAuthUserInfoRequestIssue", PropertyRuleIssue: "PropertyRuleIssue", SharedDictionaryIssue: "SharedDictionaryIssue", ElementAccessibilityIssue: "ElementAccessibilityIssue", SRIMessageSignatureIssue: "SRIMessageSignatureIssue", UnencodedDigestIssue: "UnencodedDigestIssue", ConnectionAllowlistIssue: "ConnectionAllowlistIssue", UserReidentificationIssue: "UserReidentificationIssue", PermissionElementIssue: "PermissionElementIssue", PerformanceIssue: "PerformanceIssue"});
96
+ inspectorBackend.registerEnum("Audits.InspectorIssueCode", {CookieIssue: "CookieIssue", MixedContentIssue: "MixedContentIssue", BlockedByResponseIssue: "BlockedByResponseIssue", HeavyAdIssue: "HeavyAdIssue", ContentSecurityPolicyIssue: "ContentSecurityPolicyIssue", SharedArrayBufferIssue: "SharedArrayBufferIssue", LowTextContrastIssue: "LowTextContrastIssue", CorsIssue: "CorsIssue", AttributionReportingIssue: "AttributionReportingIssue", QuirksModeIssue: "QuirksModeIssue", PartitioningBlobURLIssue: "PartitioningBlobURLIssue", NavigatorUserAgentIssue: "NavigatorUserAgentIssue", GenericIssue: "GenericIssue", DeprecationIssue: "DeprecationIssue", ClientHintIssue: "ClientHintIssue", FederatedAuthRequestIssue: "FederatedAuthRequestIssue", BounceTrackingIssue: "BounceTrackingIssue", CookieDeprecationMetadataIssue: "CookieDeprecationMetadataIssue", StylesheetLoadingIssue: "StylesheetLoadingIssue", FederatedAuthUserInfoRequestIssue: "FederatedAuthUserInfoRequestIssue", PropertyRuleIssue: "PropertyRuleIssue", SharedDictionaryIssue: "SharedDictionaryIssue", ElementAccessibilityIssue: "ElementAccessibilityIssue", SRIMessageSignatureIssue: "SRIMessageSignatureIssue", UnencodedDigestIssue: "UnencodedDigestIssue", ConnectionAllowlistIssue: "ConnectionAllowlistIssue", UserReidentificationIssue: "UserReidentificationIssue", PermissionElementIssue: "PermissionElementIssue", PerformanceIssue: "PerformanceIssue", SelectivePermissionsInterventionIssue: "SelectivePermissionsInterventionIssue"});
97
97
  inspectorBackend.registerEvent("Audits.issueAdded", ["issue"]);
98
98
  inspectorBackend.registerEnum("Audits.GetEncodedResponseRequestEncoding", {Webp: "webp", Jpeg: "jpeg", Png: "png"});
99
99
  inspectorBackend.registerCommand("Audits.getEncodedResponse", [{"name": "requestId", "type": "string", "optional": false, "description": "Identifier of the network request to get content for.", "typeRef": "Network.RequestId"}, {"name": "encoding", "type": "string", "optional": false, "description": "The encoding to use.", "typeRef": "Audits.GetEncodedResponseRequestEncoding"}, {"name": "quality", "type": "number", "optional": true, "description": "The quality of the encoding (0-1). (defaults to 1)", "typeRef": null}, {"name": "sizeOnly", "type": "boolean", "optional": true, "description": "Whether to only return the size information (defaults to false).", "typeRef": null}], ["body", "originalSize", "encodedSize"], "Returns the response body and size if it were re-encoded with the specified settings. Only applies to images.");
@@ -136,7 +136,10 @@ inspectorBackend.registerType("Audits.StylesheetLoadingIssueDetails", [{"name":
136
136
  inspectorBackend.registerType("Audits.PropertyRuleIssueDetails", [{"name": "sourceCodeLocation", "type": "object", "optional": false, "description": "Source code position of the property rule.", "typeRef": "Audits.SourceCodeLocation"}, {"name": "propertyRuleIssueReason", "type": "string", "optional": false, "description": "Reason why the property rule was discarded.", "typeRef": "Audits.PropertyRuleIssueReason"}, {"name": "propertyValue", "type": "string", "optional": true, "description": "The value of the property rule property that failed to parse", "typeRef": null}]);
137
137
  inspectorBackend.registerType("Audits.UserReidentificationIssueDetails", [{"name": "type", "type": "string", "optional": false, "description": "", "typeRef": "Audits.UserReidentificationIssueType"}, {"name": "request", "type": "object", "optional": true, "description": "Applies to BlockedFrameNavigation and BlockedSubresource issue types.", "typeRef": "Audits.AffectedRequest"}, {"name": "sourceCodeLocation", "type": "object", "optional": true, "description": "Applies to NoisedCanvasReadback issue type.", "typeRef": "Audits.SourceCodeLocation"}]);
138
138
  inspectorBackend.registerType("Audits.PermissionElementIssueDetails", [{"name": "issueType", "type": "string", "optional": false, "description": "", "typeRef": "Audits.PermissionElementIssueType"}, {"name": "type", "type": "string", "optional": true, "description": "The value of the type attribute.", "typeRef": null}, {"name": "nodeId", "type": "number", "optional": true, "description": "The node ID of the <permission> element.", "typeRef": "DOM.BackendNodeId"}, {"name": "isWarning", "type": "boolean", "optional": true, "description": "True if the issue is a warning, false if it is an error.", "typeRef": null}, {"name": "permissionName", "type": "string", "optional": true, "description": "Fields for message construction: Used for messages that reference a specific permission name", "typeRef": null}, {"name": "occluderNodeInfo", "type": "string", "optional": true, "description": "Used for messages about occlusion", "typeRef": null}, {"name": "occluderParentNodeInfo", "type": "string", "optional": true, "description": "Used for messages about occluder's parent", "typeRef": null}, {"name": "disableReason", "type": "string", "optional": true, "description": "Used for messages about activation disabled reason", "typeRef": null}]);
139
- inspectorBackend.registerType("Audits.InspectorIssueDetails", [{"name": "cookieIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.CookieIssueDetails"}, {"name": "mixedContentIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.MixedContentIssueDetails"}, {"name": "blockedByResponseIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.BlockedByResponseIssueDetails"}, {"name": "heavyAdIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.HeavyAdIssueDetails"}, {"name": "contentSecurityPolicyIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.ContentSecurityPolicyIssueDetails"}, {"name": "sharedArrayBufferIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.SharedArrayBufferIssueDetails"}, {"name": "lowTextContrastIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.LowTextContrastIssueDetails"}, {"name": "corsIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.CorsIssueDetails"}, {"name": "attributionReportingIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.AttributionReportingIssueDetails"}, {"name": "quirksModeIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.QuirksModeIssueDetails"}, {"name": "partitioningBlobURLIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.PartitioningBlobURLIssueDetails"}, {"name": "navigatorUserAgentIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.NavigatorUserAgentIssueDetails"}, {"name": "genericIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.GenericIssueDetails"}, {"name": "deprecationIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.DeprecationIssueDetails"}, {"name": "clientHintIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.ClientHintIssueDetails"}, {"name": "federatedAuthRequestIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.FederatedAuthRequestIssueDetails"}, {"name": "bounceTrackingIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.BounceTrackingIssueDetails"}, {"name": "cookieDeprecationMetadataIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.CookieDeprecationMetadataIssueDetails"}, {"name": "stylesheetLoadingIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.StylesheetLoadingIssueDetails"}, {"name": "propertyRuleIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.PropertyRuleIssueDetails"}, {"name": "federatedAuthUserInfoRequestIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.FederatedAuthUserInfoRequestIssueDetails"}, {"name": "sharedDictionaryIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.SharedDictionaryIssueDetails"}, {"name": "elementAccessibilityIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.ElementAccessibilityIssueDetails"}, {"name": "sriMessageSignatureIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.SRIMessageSignatureIssueDetails"}, {"name": "unencodedDigestIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.UnencodedDigestIssueDetails"}, {"name": "connectionAllowlistIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.ConnectionAllowlistIssueDetails"}, {"name": "userReidentificationIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.UserReidentificationIssueDetails"}, {"name": "permissionElementIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.PermissionElementIssueDetails"}, {"name": "performanceIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.PerformanceIssueDetails"}]);
139
+ inspectorBackend.registerType("Audits.AdScriptIdentifier", [{"name": "scriptId", "type": "string", "optional": false, "description": "The script's v8 identifier.", "typeRef": "Runtime.ScriptId"}, {"name": "debuggerId", "type": "string", "optional": false, "description": "v8's debugging id for the v8::Context.", "typeRef": "Runtime.UniqueDebuggerId"}, {"name": "name", "type": "string", "optional": false, "description": "The script's url (or generated name based on id if inline script).", "typeRef": null}]);
140
+ inspectorBackend.registerType("Audits.AdAncestry", [{"name": "adAncestryChain", "type": "array", "optional": false, "description": "The ad-script in the stack when the offending script was loaded. This is recursive down to the root script that was tagged due to the filterlist rule.", "typeRef": "Audits.AdScriptIdentifier"}, {"name": "rootScriptFilterlistRule", "type": "string", "optional": true, "description": "The filterlist rule that caused the root (last) script in `adAncestry` to be ad-tagged.", "typeRef": null}]);
141
+ inspectorBackend.registerType("Audits.SelectivePermissionsInterventionIssueDetails", [{"name": "apiName", "type": "string", "optional": false, "description": "Which API was intervened on.", "typeRef": null}, {"name": "adAncestry", "type": "object", "optional": false, "description": "Why the ad script using the API is considered an ad.", "typeRef": "Audits.AdAncestry"}, {"name": "stackTrace", "type": "object", "optional": true, "description": "The stack trace at the time of the intervention.", "typeRef": "Runtime.StackTrace"}]);
142
+ inspectorBackend.registerType("Audits.InspectorIssueDetails", [{"name": "cookieIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.CookieIssueDetails"}, {"name": "mixedContentIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.MixedContentIssueDetails"}, {"name": "blockedByResponseIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.BlockedByResponseIssueDetails"}, {"name": "heavyAdIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.HeavyAdIssueDetails"}, {"name": "contentSecurityPolicyIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.ContentSecurityPolicyIssueDetails"}, {"name": "sharedArrayBufferIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.SharedArrayBufferIssueDetails"}, {"name": "lowTextContrastIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.LowTextContrastIssueDetails"}, {"name": "corsIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.CorsIssueDetails"}, {"name": "attributionReportingIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.AttributionReportingIssueDetails"}, {"name": "quirksModeIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.QuirksModeIssueDetails"}, {"name": "partitioningBlobURLIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.PartitioningBlobURLIssueDetails"}, {"name": "navigatorUserAgentIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.NavigatorUserAgentIssueDetails"}, {"name": "genericIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.GenericIssueDetails"}, {"name": "deprecationIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.DeprecationIssueDetails"}, {"name": "clientHintIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.ClientHintIssueDetails"}, {"name": "federatedAuthRequestIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.FederatedAuthRequestIssueDetails"}, {"name": "bounceTrackingIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.BounceTrackingIssueDetails"}, {"name": "cookieDeprecationMetadataIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.CookieDeprecationMetadataIssueDetails"}, {"name": "stylesheetLoadingIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.StylesheetLoadingIssueDetails"}, {"name": "propertyRuleIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.PropertyRuleIssueDetails"}, {"name": "federatedAuthUserInfoRequestIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.FederatedAuthUserInfoRequestIssueDetails"}, {"name": "sharedDictionaryIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.SharedDictionaryIssueDetails"}, {"name": "elementAccessibilityIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.ElementAccessibilityIssueDetails"}, {"name": "sriMessageSignatureIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.SRIMessageSignatureIssueDetails"}, {"name": "unencodedDigestIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.UnencodedDigestIssueDetails"}, {"name": "connectionAllowlistIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.ConnectionAllowlistIssueDetails"}, {"name": "userReidentificationIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.UserReidentificationIssueDetails"}, {"name": "permissionElementIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.PermissionElementIssueDetails"}, {"name": "performanceIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.PerformanceIssueDetails"}, {"name": "selectivePermissionsInterventionIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.SelectivePermissionsInterventionIssueDetails"}]);
140
143
  inspectorBackend.registerType("Audits.InspectorIssue", [{"name": "code", "type": "string", "optional": false, "description": "", "typeRef": "Audits.InspectorIssueCode"}, {"name": "details", "type": "object", "optional": false, "description": "", "typeRef": "Audits.InspectorIssueDetails"}, {"name": "issueId", "type": "string", "optional": true, "description": "A unique id for this issue. May be omitted if no other entity (e.g. exception, CDP message, etc.) is referencing this issue.", "typeRef": "Audits.IssueId"}]);
141
144
 
142
145
  // Autofill.
@@ -514,7 +517,8 @@ inspectorBackend.registerCommand("Emulation.setAutoDarkModeOverride", [{"name":
514
517
  inspectorBackend.registerCommand("Emulation.setCPUThrottlingRate", [{"name": "rate", "type": "number", "optional": false, "description": "Throttling rate as a slowdown factor (1 is no throttle, 2 is 2x slowdown, etc).", "typeRef": null}], [], "Enables CPU throttling to emulate slow CPUs.");
515
518
  inspectorBackend.registerCommand("Emulation.setDefaultBackgroundColorOverride", [{"name": "color", "type": "object", "optional": true, "description": "RGBA of the default background color. If not specified, any existing override will be cleared.", "typeRef": "DOM.RGBA"}], [], "Sets or clears an override of the default background color of the frame. This override is used if the content does not specify one.");
516
519
  inspectorBackend.registerCommand("Emulation.setSafeAreaInsetsOverride", [{"name": "insets", "type": "object", "optional": false, "description": "", "typeRef": "Emulation.SafeAreaInsets"}], [], "Overrides the values for env(safe-area-inset-*) and env(safe-area-max-inset-*). Unset values will cause the respective variables to be undefined, even if previously overridden.");
517
- inspectorBackend.registerCommand("Emulation.setDeviceMetricsOverride", [{"name": "width", "type": "number", "optional": false, "description": "Overriding width value in pixels (minimum 0, maximum 10000000). 0 disables the override.", "typeRef": null}, {"name": "height", "type": "number", "optional": false, "description": "Overriding height value in pixels (minimum 0, maximum 10000000). 0 disables the override.", "typeRef": null}, {"name": "deviceScaleFactor", "type": "number", "optional": false, "description": "Overriding device scale factor value. 0 disables the override.", "typeRef": null}, {"name": "mobile", "type": "boolean", "optional": false, "description": "Whether to emulate mobile device. This includes viewport meta tag, overlay scrollbars, text autosizing and more.", "typeRef": null}, {"name": "scale", "type": "number", "optional": true, "description": "Scale to apply to resulting view image.", "typeRef": null}, {"name": "screenWidth", "type": "number", "optional": true, "description": "Overriding screen width value in pixels (minimum 0, maximum 10000000).", "typeRef": null}, {"name": "screenHeight", "type": "number", "optional": true, "description": "Overriding screen height value in pixels (minimum 0, maximum 10000000).", "typeRef": null}, {"name": "positionX", "type": "number", "optional": true, "description": "Overriding view X position on screen in pixels (minimum 0, maximum 10000000).", "typeRef": null}, {"name": "positionY", "type": "number", "optional": true, "description": "Overriding view Y position on screen in pixels (minimum 0, maximum 10000000).", "typeRef": null}, {"name": "dontSetVisibleSize", "type": "boolean", "optional": true, "description": "Do not set visible view size, rely upon explicit setVisibleSize call.", "typeRef": null}, {"name": "screenOrientation", "type": "object", "optional": true, "description": "Screen orientation override.", "typeRef": "Emulation.ScreenOrientation"}, {"name": "viewport", "type": "object", "optional": true, "description": "If set, the visible area of the page will be overridden to this viewport. This viewport change is not observed by the page, e.g. viewport-relative elements do not change positions.", "typeRef": "Page.Viewport"}, {"name": "displayFeature", "type": "object", "optional": true, "description": "If set, the display feature of a multi-segment screen. If not set, multi-segment support is turned-off. Deprecated, use Emulation.setDisplayFeaturesOverride.", "typeRef": "Emulation.DisplayFeature"}, {"name": "devicePosture", "type": "object", "optional": true, "description": "If set, the posture of a foldable device. If not set the posture is set to continuous. Deprecated, use Emulation.setDevicePostureOverride.", "typeRef": "Emulation.DevicePosture"}], [], "Overrides the values of device screen dimensions (window.screen.width, window.screen.height, window.innerWidth, window.innerHeight, and \"device-width\"/\"device-height\"-related CSS media query results).");
520
+ inspectorBackend.registerEnum("Emulation.SetDeviceMetricsOverrideRequestScrollbarType", {Overlay: "overlay", Default: "default"});
521
+ inspectorBackend.registerCommand("Emulation.setDeviceMetricsOverride", [{"name": "width", "type": "number", "optional": false, "description": "Overriding width value in pixels (minimum 0, maximum 10000000). 0 disables the override.", "typeRef": null}, {"name": "height", "type": "number", "optional": false, "description": "Overriding height value in pixels (minimum 0, maximum 10000000). 0 disables the override.", "typeRef": null}, {"name": "deviceScaleFactor", "type": "number", "optional": false, "description": "Overriding device scale factor value. 0 disables the override.", "typeRef": null}, {"name": "mobile", "type": "boolean", "optional": false, "description": "Whether to emulate mobile device. This includes viewport meta tag, overlay scrollbars, text autosizing and more.", "typeRef": null}, {"name": "scale", "type": "number", "optional": true, "description": "Scale to apply to resulting view image.", "typeRef": null}, {"name": "screenWidth", "type": "number", "optional": true, "description": "Overriding screen width value in pixels (minimum 0, maximum 10000000).", "typeRef": null}, {"name": "screenHeight", "type": "number", "optional": true, "description": "Overriding screen height value in pixels (minimum 0, maximum 10000000).", "typeRef": null}, {"name": "positionX", "type": "number", "optional": true, "description": "Overriding view X position on screen in pixels (minimum 0, maximum 10000000).", "typeRef": null}, {"name": "positionY", "type": "number", "optional": true, "description": "Overriding view Y position on screen in pixels (minimum 0, maximum 10000000).", "typeRef": null}, {"name": "dontSetVisibleSize", "type": "boolean", "optional": true, "description": "Do not set visible view size, rely upon explicit setVisibleSize call.", "typeRef": null}, {"name": "screenOrientation", "type": "object", "optional": true, "description": "Screen orientation override.", "typeRef": "Emulation.ScreenOrientation"}, {"name": "viewport", "type": "object", "optional": true, "description": "If set, the visible area of the page will be overridden to this viewport. This viewport change is not observed by the page, e.g. viewport-relative elements do not change positions.", "typeRef": "Page.Viewport"}, {"name": "displayFeature", "type": "object", "optional": true, "description": "If set, the display feature of a multi-segment screen. If not set, multi-segment support is turned-off. Deprecated, use Emulation.setDisplayFeaturesOverride.", "typeRef": "Emulation.DisplayFeature"}, {"name": "devicePosture", "type": "object", "optional": true, "description": "If set, the posture of a foldable device. If not set the posture is set to continuous. Deprecated, use Emulation.setDevicePostureOverride.", "typeRef": "Emulation.DevicePosture"}, {"name": "scrollbarType", "type": "string", "optional": true, "description": "Scrollbar type. Default: `default`.", "typeRef": "Emulation.SetDeviceMetricsOverrideRequestScrollbarType"}], [], "Overrides the values of device screen dimensions (window.screen.width, window.screen.height, window.innerWidth, window.innerHeight, and \"device-width\"/\"device-height\"-related CSS media query results).");
518
522
  inspectorBackend.registerCommand("Emulation.setDevicePostureOverride", [{"name": "posture", "type": "object", "optional": false, "description": "", "typeRef": "Emulation.DevicePosture"}], [], "Start reporting the given posture value to the Device Posture API. This override can also be set in setDeviceMetricsOverride().");
519
523
  inspectorBackend.registerCommand("Emulation.clearDevicePostureOverride", [], [], "Clears a device posture override set with either setDeviceMetricsOverride() or setDevicePostureOverride() and starts using posture information from the platform again. Does nothing if no override is set.");
520
524
  inspectorBackend.registerCommand("Emulation.setDisplayFeaturesOverride", [{"name": "features", "type": "array", "optional": false, "description": "", "typeRef": "Emulation.DisplayFeature"}], [], "Start using the given display features to pupulate the Viewport Segments API. This override can also be set in setDeviceMetricsOverride().");
@@ -578,11 +582,13 @@ inspectorBackend.registerCommand("EventBreakpoints.disable", [], [], "Removes al
578
582
  inspectorBackend.registerEnum("Extensions.StorageArea", {Session: "session", Local: "local", Sync: "sync", Managed: "managed"});
579
583
  inspectorBackend.registerCommand("Extensions.triggerAction", [{"name": "id", "type": "string", "optional": false, "description": "Extension id.", "typeRef": null}, {"name": "targetId", "type": "string", "optional": false, "description": "A tab target ID to trigger the default extension action on.", "typeRef": null}], [], "Runs an extension default action. Available if the client is connected using the --remote-debugging-pipe flag and the --enable-unsafe-extension-debugging flag is set.");
580
584
  inspectorBackend.registerCommand("Extensions.loadUnpacked", [{"name": "path", "type": "string", "optional": false, "description": "Absolute file path.", "typeRef": null}, {"name": "enableInIncognito", "type": "boolean", "optional": true, "description": "Enable the extension in incognito", "typeRef": null}], ["id"], "Installs an unpacked extension from the filesystem similar to --load-extension CLI flags. Returns extension ID once the extension has been installed. Available if the client is connected using the --remote-debugging-pipe flag and the --enable-unsafe-extension-debugging flag is set.");
585
+ inspectorBackend.registerCommand("Extensions.getExtensions", [], ["extensions"], "Gets a list of all unpacked extensions. Available if the client is connected using the --remote-debugging-pipe flag and the --enable-unsafe-extension-debugging flag is set.");
581
586
  inspectorBackend.registerCommand("Extensions.uninstall", [{"name": "id", "type": "string", "optional": false, "description": "Extension id.", "typeRef": null}], [], "Uninstalls an unpacked extension (others not supported) from the profile. Available if the client is connected using the --remote-debugging-pipe flag and the --enable-unsafe-extension-debugging.");
582
587
  inspectorBackend.registerCommand("Extensions.getStorageItems", [{"name": "id", "type": "string", "optional": false, "description": "ID of extension.", "typeRef": null}, {"name": "storageArea", "type": "string", "optional": false, "description": "StorageArea to retrieve data from.", "typeRef": "Extensions.StorageArea"}, {"name": "keys", "type": "array", "optional": true, "description": "Keys to retrieve.", "typeRef": "string"}], ["data"], "Gets data from extension storage in the given `storageArea`. If `keys` is specified, these are used to filter the result.");
583
588
  inspectorBackend.registerCommand("Extensions.removeStorageItems", [{"name": "id", "type": "string", "optional": false, "description": "ID of extension.", "typeRef": null}, {"name": "storageArea", "type": "string", "optional": false, "description": "StorageArea to remove data from.", "typeRef": "Extensions.StorageArea"}, {"name": "keys", "type": "array", "optional": false, "description": "Keys to remove.", "typeRef": "string"}], [], "Removes `keys` from extension storage in the given `storageArea`.");
584
589
  inspectorBackend.registerCommand("Extensions.clearStorageItems", [{"name": "id", "type": "string", "optional": false, "description": "ID of extension.", "typeRef": null}, {"name": "storageArea", "type": "string", "optional": false, "description": "StorageArea to remove data from.", "typeRef": "Extensions.StorageArea"}], [], "Clears extension storage in the given `storageArea`.");
585
590
  inspectorBackend.registerCommand("Extensions.setStorageItems", [{"name": "id", "type": "string", "optional": false, "description": "ID of extension.", "typeRef": null}, {"name": "storageArea", "type": "string", "optional": false, "description": "StorageArea to set data in.", "typeRef": "Extensions.StorageArea"}, {"name": "values", "type": "object", "optional": false, "description": "Values to set.", "typeRef": null}], [], "Sets `values` in extension storage in the given `storageArea`. The provided `values` will be merged with existing values in the storage area.");
591
+ inspectorBackend.registerType("Extensions.ExtensionInfo", [{"name": "id", "type": "string", "optional": false, "description": "Extension id.", "typeRef": null}, {"name": "name", "type": "string", "optional": false, "description": "Extension name.", "typeRef": null}, {"name": "version", "type": "string", "optional": false, "description": "Extension version.", "typeRef": null}, {"name": "path", "type": "string", "optional": false, "description": "The path from which the extension was loaded.", "typeRef": null}, {"name": "enabled", "type": "boolean", "optional": false, "description": "Extension enabled status.", "typeRef": null}]);
586
592
 
587
593
  // FedCm.
588
594
  inspectorBackend.registerEnum("FedCm.LoginState", {SignIn: "SignIn", SignUp: "SignUp"});
@@ -2823,6 +2823,15 @@ export namespace ProtocolMapping {
2823
2823
  paramsType: [Protocol.Extensions.LoadUnpackedRequest];
2824
2824
  returnType: Protocol.Extensions.LoadUnpackedResponse;
2825
2825
  };
2826
+ /**
2827
+ * Gets a list of all unpacked extensions.
2828
+ * Available if the client is connected using the --remote-debugging-pipe flag
2829
+ * and the --enable-unsafe-extension-debugging flag is set.
2830
+ */
2831
+ 'Extensions.getExtensions': {
2832
+ paramsType: [];
2833
+ returnType: Protocol.Extensions.GetExtensionsResponse;
2834
+ };
2826
2835
  /**
2827
2836
  * Uninstalls an unpacked extension (others not supported) from the profile.
2828
2837
  * Available if the client is connected using the --remote-debugging-pipe flag
@@ -1898,6 +1898,13 @@ declare namespace ProtocolProxyApi {
1898
1898
  */
1899
1899
  invoke_loadUnpacked(params: Protocol.Extensions.LoadUnpackedRequest): Promise<Protocol.Extensions.LoadUnpackedResponse>;
1900
1900
 
1901
+ /**
1902
+ * Gets a list of all unpacked extensions.
1903
+ * Available if the client is connected using the --remote-debugging-pipe flag
1904
+ * and the --enable-unsafe-extension-debugging flag is set.
1905
+ */
1906
+ invoke_getExtensions(): Promise<Protocol.Extensions.GetExtensionsResponse>;
1907
+
1901
1908
  /**
1902
1909
  * Uninstalls an unpacked extension (others not supported) from the profile.
1903
1910
  * Available if the client is connected using the --remote-debugging-pipe flag
@@ -1542,6 +1542,63 @@ export namespace Audits {
1542
1542
  disableReason?: string;
1543
1543
  }
1544
1544
 
1545
+ /**
1546
+ * Metadata about the ad script that was on the stack that caused the current
1547
+ * script in the `AdAncestry` to be considered ad related.
1548
+ */
1549
+ export interface AdScriptIdentifier {
1550
+ /**
1551
+ * The script's v8 identifier.
1552
+ */
1553
+ scriptId: Runtime.ScriptId;
1554
+ /**
1555
+ * v8's debugging id for the v8::Context.
1556
+ */
1557
+ debuggerId: Runtime.UniqueDebuggerId;
1558
+ /**
1559
+ * The script's url (or generated name based on id if inline script).
1560
+ */
1561
+ name: string;
1562
+ }
1563
+
1564
+ /**
1565
+ * Providence about how an ad script was determined to be such. It is an ad
1566
+ * because its url matched a filterlist rule, or because some other ad script
1567
+ * was on the stack when this script was loaded.
1568
+ */
1569
+ export interface AdAncestry {
1570
+ /**
1571
+ * The ad-script in the stack when the offending script was loaded. This is
1572
+ * recursive down to the root script that was tagged due to the filterlist
1573
+ * rule.
1574
+ */
1575
+ adAncestryChain: AdScriptIdentifier[];
1576
+ /**
1577
+ * The filterlist rule that caused the root (last) script in
1578
+ * `adAncestry` to be ad-tagged.
1579
+ */
1580
+ rootScriptFilterlistRule?: string;
1581
+ }
1582
+
1583
+ /**
1584
+ * The issue warns about blocked calls to privacy sensitive APIs via the
1585
+ * Selective Permissions Intervention.
1586
+ */
1587
+ export interface SelectivePermissionsInterventionIssueDetails {
1588
+ /**
1589
+ * Which API was intervened on.
1590
+ */
1591
+ apiName: string;
1592
+ /**
1593
+ * Why the ad script using the API is considered an ad.
1594
+ */
1595
+ adAncestry: AdAncestry;
1596
+ /**
1597
+ * The stack trace at the time of the intervention.
1598
+ */
1599
+ stackTrace?: Runtime.StackTrace;
1600
+ }
1601
+
1545
1602
  /**
1546
1603
  * A unique identifier for the type of issue. Each type may use one of the
1547
1604
  * optional fields in InspectorIssueDetails to convey more specific
@@ -1577,6 +1634,7 @@ export namespace Audits {
1577
1634
  UserReidentificationIssue = 'UserReidentificationIssue',
1578
1635
  PermissionElementIssue = 'PermissionElementIssue',
1579
1636
  PerformanceIssue = 'PerformanceIssue',
1637
+ SelectivePermissionsInterventionIssue = 'SelectivePermissionsInterventionIssue',
1580
1638
  }
1581
1639
 
1582
1640
  /**
@@ -1617,6 +1675,7 @@ export namespace Audits {
1617
1675
  userReidentificationIssueDetails?: UserReidentificationIssueDetails;
1618
1676
  permissionElementIssueDetails?: PermissionElementIssueDetails;
1619
1677
  performanceIssueDetails?: PerformanceIssueDetails;
1678
+ selectivePermissionsInterventionIssueDetails?: SelectivePermissionsInterventionIssueDetails;
1620
1679
  }
1621
1680
 
1622
1681
  /**
@@ -7072,6 +7131,11 @@ export namespace Emulation {
7072
7131
  insets: SafeAreaInsets;
7073
7132
  }
7074
7133
 
7134
+ export const enum SetDeviceMetricsOverrideRequestScrollbarType {
7135
+ Overlay = 'overlay',
7136
+ Default = 'default',
7137
+ }
7138
+
7075
7139
  export interface SetDeviceMetricsOverrideRequest {
7076
7140
  /**
7077
7141
  * Overriding width value in pixels (minimum 0, maximum 10000000). 0 disables the override.
@@ -7137,6 +7201,10 @@ export namespace Emulation {
7137
7201
  * @deprecated
7138
7202
  */
7139
7203
  devicePosture?: DevicePosture;
7204
+ /**
7205
+ * Scrollbar type. Default: `default`.
7206
+ */
7207
+ scrollbarType?: SetDeviceMetricsOverrideRequestScrollbarType;
7140
7208
  }
7141
7209
 
7142
7210
  export interface SetDevicePostureOverrideRequest {
@@ -7521,6 +7589,32 @@ export namespace Extensions {
7521
7589
  Managed = 'managed',
7522
7590
  }
7523
7591
 
7592
+ /**
7593
+ * Detailed information about an extension.
7594
+ */
7595
+ export interface ExtensionInfo {
7596
+ /**
7597
+ * Extension id.
7598
+ */
7599
+ id: string;
7600
+ /**
7601
+ * Extension name.
7602
+ */
7603
+ name: string;
7604
+ /**
7605
+ * Extension version.
7606
+ */
7607
+ version: string;
7608
+ /**
7609
+ * The path from which the extension was loaded.
7610
+ */
7611
+ path: string;
7612
+ /**
7613
+ * Extension enabled status.
7614
+ */
7615
+ enabled: boolean;
7616
+ }
7617
+
7524
7618
  export interface TriggerActionRequest {
7525
7619
  /**
7526
7620
  * Extension id.
@@ -7550,6 +7644,10 @@ export namespace Extensions {
7550
7644
  id: string;
7551
7645
  }
7552
7646
 
7647
+ export interface GetExtensionsResponse extends ProtocolResponseWithError {
7648
+ extensions: ExtensionInfo[];
7649
+ }
7650
+
7553
7651
  export interface UninstallRequest {
7554
7652
  /**
7555
7653
  * Extension id.
@@ -6551,6 +6551,30 @@ export const NativeFunctions = [
6551
6551
  name: "timeout",
6552
6552
  signatures: [["milliseconds"]]
6553
6553
  },
6554
+ {
6555
+ name: "beforeHTML",
6556
+ signatures: [["html","?options"]]
6557
+ },
6558
+ {
6559
+ name: "beforeHTMLUnsafe",
6560
+ signatures: [["html","?options"]]
6561
+ },
6562
+ {
6563
+ name: "afterHTML",
6564
+ signatures: [["html","?options"]]
6565
+ },
6566
+ {
6567
+ name: "afterHTMLUnsafe",
6568
+ signatures: [["html","?options"]]
6569
+ },
6570
+ {
6571
+ name: "replaceWithHTML",
6572
+ signatures: [["html","?options"]]
6573
+ },
6574
+ {
6575
+ name: "replaceWithHTMLUnsafe",
6576
+ signatures: [["html","?options"]]
6577
+ },
6554
6578
  {
6555
6579
  name: "Comment",
6556
6580
  signatures: [["?data"]]
@@ -6599,6 +6623,30 @@ export const NativeFunctions = [
6599
6623
  name: "streamHTMLUnsafe",
6600
6624
  signatures: [["?options"]]
6601
6625
  },
6626
+ {
6627
+ name: "streamAppendHTML",
6628
+ signatures: [["?options"]]
6629
+ },
6630
+ {
6631
+ name: "streamHTML",
6632
+ signatures: [["?options"]]
6633
+ },
6634
+ {
6635
+ name: "appendHTML",
6636
+ signatures: [["html","?options"]]
6637
+ },
6638
+ {
6639
+ name: "appendHTMLUnsafe",
6640
+ signatures: [["html","?options"]]
6641
+ },
6642
+ {
6643
+ name: "prependHTML",
6644
+ signatures: [["html","?options"]]
6645
+ },
6646
+ {
6647
+ name: "prependHTMLUnsafe",
6648
+ signatures: [["html","?options"]]
6649
+ },
6602
6650
  {
6603
6651
  name: "scrollIntoViewIfNeeded",
6604
6652
  signatures: [["?centerIfNeeded"]]