chrome-devtools-frontend 1.0.1595090 → 1.0.1596260

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 (49) hide show
  1. package/.stylelintrc.json +3 -1
  2. package/docs/ui_engineering.md +0 -36
  3. package/front_end/core/host/UserMetrics.ts +0 -1
  4. package/front_end/core/root/ExperimentNames.ts +0 -1
  5. package/front_end/core/sdk/DOMModel.ts +206 -0
  6. package/front_end/core/sdk/SourceMapScopesInfo.ts +1 -1
  7. package/front_end/entrypoints/greendev_floaty/floaty.css +2 -2
  8. package/front_end/entrypoints/main/MainImpl.ts +0 -5
  9. package/front_end/generated/InspectorBackendCommands.ts +3 -5
  10. package/front_end/generated/protocol-mapping.d.ts +0 -8
  11. package/front_end/generated/protocol-proxy-api.d.ts +0 -6
  12. package/front_end/generated/protocol.ts +1 -19
  13. package/front_end/models/ai_assistance/ConversationHandler.ts +1 -1
  14. package/front_end/models/ai_code_completion/AiCodeCompletion.ts +1 -1
  15. package/front_end/models/javascript_metadata/NativeFunctions.js +5 -1
  16. package/front_end/panels/ai_assistance/AiAssistancePanel.ts +2 -0
  17. package/front_end/panels/ai_assistance/components/ChatMessage.ts +48 -31
  18. package/front_end/panels/ai_assistance/components/WalkthroughView.ts +38 -11
  19. package/front_end/panels/ai_assistance/components/chatMessage.css +4 -2
  20. package/front_end/panels/ai_assistance/components/walkthroughView.css +15 -0
  21. package/front_end/panels/application/IndexedDBModel.ts +2 -4
  22. package/front_end/panels/application/ServiceWorkersView.ts +3 -11
  23. package/front_end/panels/developer_resources/DeveloperResourcesListView.ts +1 -1
  24. package/front_end/panels/elements/ComputedStyleWidget.ts +25 -16
  25. package/front_end/panels/elements/ElementsPanel.ts +0 -1
  26. package/front_end/panels/elements/StylePropertyTreeElement.ts +11 -5
  27. package/front_end/panels/elements/nodeStackTraceWidget.css +1 -1
  28. package/front_end/panels/emulation/DeviceModeToolbar.ts +171 -89
  29. package/front_end/panels/greendev/GreenDevPanel.css +2 -2
  30. package/front_end/panels/issues/AffectedPermissionElementsView.ts +9 -6
  31. package/front_end/panels/profiler/HeapSnapshotGridNodes.ts +11 -3
  32. package/front_end/panels/settings/components/SyncSection.ts +4 -13
  33. package/front_end/panels/timeline/CompatibilityTracksAppender.ts +2 -15
  34. package/front_end/panels/timeline/RecordingMetadata.ts +1 -1
  35. package/front_end/panels/timeline/TimelineDetailsView.ts +2 -2
  36. package/front_end/panels/timeline/TimelineUIUtils.ts +7 -4
  37. package/front_end/panels/timeline/components/Utils.ts +2 -2
  38. package/front_end/panels/webauthn/webauthnPane.css +1 -1
  39. package/front_end/third_party/chromium/README.chromium +1 -1
  40. package/front_end/ui/components/tree_outline/TreeOutline.ts +1 -1
  41. package/front_end/ui/legacy/ProgressIndicator.ts +1 -1
  42. package/front_end/ui/legacy/Toolbar.ts +1 -1
  43. package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +14 -7
  44. package/front_end/ui/legacy/legacy.ts +0 -2
  45. package/front_end/ui/visual_logging/KnownContextValues.ts +4 -0
  46. package/inspector_overlay/loadCSS.rollup.js +2 -2
  47. package/inspector_overlay/tool_source_order.css +1 -0
  48. package/package.json +1 -1
  49. package/front_end/ui/legacy/Fragment.ts +0 -234
package/.stylelintrc.json CHANGED
@@ -2,11 +2,13 @@
2
2
  "extends": "stylelint-config-standard",
3
3
  "plugins": [
4
4
  "./scripts/stylelint_rules/lib/use_theme_colors.mjs",
5
- "./scripts/stylelint_rules/lib/check_highlight_scope.mjs"
5
+ "./scripts/stylelint_rules/lib/check_highlight_scope.mjs",
6
+ "./scripts/stylelint_rules/lib/use_monospace_font.mjs"
6
7
  ],
7
8
  "rules": {
8
9
  "plugin/use_theme_colors": true,
9
10
  "plugin/check_highlight_scope": true,
11
+ "plugin/use_monospace_font": true,
10
12
  "alpha-value-notation": "percentage",
11
13
  "color-function-notation": "modern",
12
14
  "hue-degree-notation": "angle",
@@ -1183,42 +1183,6 @@ export const DEFAULT_VIEW = (input, _output, target) => {
1183
1183
  };
1184
1184
  ```
1185
1185
 
1186
- ## Migrating `UI.Fragment`
1187
-
1188
- Replace `UI.Fragment.Fragment.build` with a standard lit-html template. To get a reference to an element, use the `ref` directive.
1189
-
1190
- **Before:**
1191
- ```typescript
1192
-
1193
- class SomeWidget extends UI.Widget.Widget {
1194
- constructor() {
1195
- super();
1196
- const contrastFragment = UI.Fragment.Fragment.build`
1197
- <div class="contrast-container-in-grid" $="contrast-container-element">
1198
- <span class="contrast-preview">Aa</span>
1199
- <span>${contrastRatioString}</span>
1200
- </div>`;
1201
- this.contentElement.appendChild(contrastFragment.element());
1202
- }
1203
- }
1204
- ```
1205
-
1206
- **After:**
1207
- ```typescript
1208
-
1209
-
1210
- export const DEFAULT_VIEW = (input, output, target) => {
1211
- render(html`
1212
- <div>
1213
- <div class="contrast-container-in-grid" ${ref(e => { output.contrastContainerElement = e; })}>
1214
- <span class="contrast-preview">Aa</span>
1215
- <span>${contrastRatioString}</span>
1216
- </div>
1217
- </div>`,
1218
- target, {host: input});
1219
- };
1220
- ```
1221
-
1222
1186
  ## Migrating `UI.ARIAUtils` helpers
1223
1187
 
1224
1188
  Replace calls to `UI.ARIAUtils` helper functions with the corresponding ARIA attributes directly in the lit-html template.
@@ -822,7 +822,6 @@ export enum DevtoolsExperiments {
822
822
  'authored-deployed-grouping' = 63,
823
823
  'just-my-code' = 65,
824
824
  'use-source-map-scopes' = 76,
825
- 'timeline-show-postmessage-events' = 86,
826
825
  'timeline-debug-mode' = 93,
827
826
  'durable-messages' = 110,
828
827
  'jpeg-xl' = 111,
@@ -20,7 +20,6 @@ export enum ExperimentName {
20
20
  AUTHORED_DEPLOYED_GROUPING = 'authored-deployed-grouping',
21
21
  JUST_MY_CODE = 'just-my-code',
22
22
  USE_SOURCE_MAP_SCOPES = 'use-source-map-scopes',
23
- TIMELINE_SHOW_POST_MESSAGE_EVENTS = 'timeline-show-postmessage-events',
24
23
  TIMELINE_DEBUG_MODE = 'timeline-debug-mode',
25
24
  DURABLE_MESSAGES = 'durable-messages',
26
25
  JPEG_XL = 'jpeg-xl',
@@ -1223,6 +1223,122 @@ export class DOMNode extends Common.ObjectWrapper.ObjectWrapper<DOMNodeEventType
1223
1223
  return this.domModel().nodeForId(response.nodeId);
1224
1224
  }
1225
1225
 
1226
+ async takeSnapshot(ownerDocumentSnapshot?: DOMDocument): Promise<DOMNode> {
1227
+ const snapshot = (this instanceof DOMDocument) ? new DOMDocumentSnapshot(this.domModel(), {
1228
+ nodeId: this.id,
1229
+ backendNodeId: this.backendNodeId(),
1230
+ nodeType: this.nodeType(),
1231
+ nodeName: this.nodeName(),
1232
+ localName: this.localName(),
1233
+ nodeValue: this.nodeValueInternal,
1234
+ } as Protocol.DOM.Node) :
1235
+ new DOMNodeSnapshot(this.domModel());
1236
+ snapshot.id = this.id;
1237
+ snapshot.#backendNodeId = this.#backendNodeId;
1238
+ snapshot.#frameOwnerFrameId = this.#frameOwnerFrameId;
1239
+ snapshot.#nodeType = this.#nodeType;
1240
+ snapshot.#nodeName = this.#nodeName;
1241
+ snapshot.#localName = this.#localName;
1242
+ snapshot.nodeValueInternal = this.nodeValueInternal;
1243
+ snapshot.#pseudoType = this.#pseudoType;
1244
+ snapshot.#pseudoIdentifier = this.#pseudoIdentifier;
1245
+ snapshot.#shadowRootType = this.#shadowRootType;
1246
+ snapshot.#xmlVersion = this.#xmlVersion;
1247
+ snapshot.#isSVGNode = this.#isSVGNode;
1248
+ snapshot.#isScrollable = this.#isScrollable;
1249
+ snapshot.#affectedByStartingStyles = this.#affectedByStartingStyles;
1250
+ snapshot.ownerDocument =
1251
+ ownerDocumentSnapshot || ((snapshot instanceof DOMDocument) ? snapshot : this.ownerDocument);
1252
+ snapshot.#isInShadowTree = this.#isInShadowTree;
1253
+ snapshot.childNodeCountInternal = this.childNodeCountInternal;
1254
+
1255
+ if (snapshot instanceof DOMDocument && this instanceof DOMDocument) {
1256
+ snapshot.documentURL = this.documentURL;
1257
+ snapshot.baseURL = this.baseURL;
1258
+ }
1259
+
1260
+ if (!this.childrenInternal && this.childNodeCountInternal > 0) {
1261
+ await this.getSubtree(1, false);
1262
+ }
1263
+
1264
+ for (const [name, attr] of this.#attributes) {
1265
+ snapshot.#attributes.set(name, {name: attr.name, value: attr.value, _node: snapshot});
1266
+ }
1267
+
1268
+ if (this.childrenInternal) {
1269
+ snapshot.childrenInternal = [];
1270
+ for (const child of this.childrenInternal) {
1271
+ const childSnapshot = await child.takeSnapshot(snapshot.ownerDocument || undefined);
1272
+ childSnapshot.parentNode = snapshot;
1273
+ childSnapshot.ownerDocument = (snapshot instanceof DOMDocument) ? snapshot : snapshot.ownerDocument;
1274
+ snapshot.childrenInternal.push(childSnapshot);
1275
+ if (childSnapshot.ownerDocument instanceof DOMDocument) {
1276
+ if (childSnapshot.nodeName() === 'HTML' && !childSnapshot.ownerDocument.documentElement) {
1277
+ childSnapshot.ownerDocument.documentElement = childSnapshot;
1278
+ }
1279
+ if (childSnapshot.nodeName() === 'BODY' && !childSnapshot.ownerDocument.body) {
1280
+ childSnapshot.ownerDocument.body = childSnapshot;
1281
+ }
1282
+ }
1283
+ }
1284
+ }
1285
+
1286
+ for (const root of this.shadowRootsInternal) {
1287
+ const rootSnapshot = await root.takeSnapshot(snapshot.ownerDocument || undefined);
1288
+ rootSnapshot.parentNode = snapshot;
1289
+ rootSnapshot.ownerDocument = snapshot.ownerDocument;
1290
+ snapshot.shadowRootsInternal.push(rootSnapshot);
1291
+ }
1292
+
1293
+ if (this.templateContentInternal) {
1294
+ const templateSnapshot = await this.templateContentInternal.takeSnapshot(snapshot.ownerDocument || undefined);
1295
+ templateSnapshot.parentNode = snapshot;
1296
+ templateSnapshot.ownerDocument = snapshot.ownerDocument;
1297
+ snapshot.templateContentInternal = templateSnapshot;
1298
+ }
1299
+
1300
+ if (this.contentDocumentInternal) {
1301
+ const contentDocSnapshot = await this.contentDocumentInternal.takeSnapshot();
1302
+ contentDocSnapshot.parentNode = snapshot;
1303
+ snapshot.contentDocumentInternal = contentDocSnapshot as DOMDocumentSnapshot;
1304
+ }
1305
+
1306
+ if (this.#importedDocument) {
1307
+ const importedDocSnapshot = await this.#importedDocument.takeSnapshot(snapshot.ownerDocument || undefined);
1308
+ importedDocSnapshot.parentNode = snapshot;
1309
+ importedDocSnapshot.ownerDocument = snapshot.ownerDocument;
1310
+ snapshot.#importedDocument = importedDocSnapshot;
1311
+ }
1312
+
1313
+ for (const [pseudoType, nodes] of this.#pseudoElements) {
1314
+ const snapshots = [];
1315
+ for (const node of nodes) {
1316
+ const pseudoSnapshot = await node.takeSnapshot(snapshot.ownerDocument || undefined);
1317
+ pseudoSnapshot.parentNode = snapshot;
1318
+ pseudoSnapshot.ownerDocument = snapshot.ownerDocument;
1319
+ snapshots.push(pseudoSnapshot);
1320
+ }
1321
+ snapshot.#pseudoElements.set(pseudoType, snapshots);
1322
+ }
1323
+
1324
+ // We intentionally preserve references to live nodes for assignedSlot and distributedNodes.
1325
+ // This allows slot adorners in the Elements panel to remain functional within the snapshot,
1326
+ // enabling users to resolve and jump to the actual nodes in the live DOM tree.
1327
+ if (this.#distributedNodes) {
1328
+ snapshot.#distributedNodes = [...this.#distributedNodes];
1329
+ }
1330
+
1331
+ snapshot.assignedSlot = this.assignedSlot;
1332
+
1333
+ snapshot.#retainedNodes = this.#retainedNodes;
1334
+
1335
+ if (this.#adoptedStyleSheets.length) {
1336
+ snapshot.setAdoptedStyleSheets(this.#adoptedStyleSheets.map(sheet => sheet.id));
1337
+ }
1338
+
1339
+ return snapshot;
1340
+ }
1341
+
1226
1342
  classNames(): string[] {
1227
1343
  const classes = this.getAttribute('class');
1228
1344
  return classes ? classes.split(/\s+/) : [];
@@ -2176,6 +2292,96 @@ export class DOMModelUndoStack {
2176
2292
  }
2177
2293
 
2178
2294
  SDKModel.register(DOMModel, {capabilities: Capability.DOM, autostart: true});
2295
+ export class DOMNodeSnapshot extends DOMNode {
2296
+ override init(
2297
+ _doc: DOMDocument|null, _isInShadowTree: boolean, _payload: Protocol.DOM.Node,
2298
+ _retainedNodes?: Set<Protocol.DOM.BackendNodeId>|undefined): void {
2299
+ }
2300
+
2301
+ override setNodeName(_name: string, _callback?: ((arg0: string|null, arg1: DOMNode|null) => void)|undefined): void {
2302
+ }
2303
+
2304
+ override setNodeValue(_value: string, _callback?: ((arg0: string|null) => void)|undefined): void {
2305
+ }
2306
+
2307
+ override setAttribute(_name: string, _text: string, _callback?: ((arg0: string|null) => void)|undefined): void {
2308
+ }
2309
+
2310
+ override setAttributeValue(_name: string, _value: string, _callback?: ((arg0: string|null) => void)|undefined): void {
2311
+ }
2312
+
2313
+ override removeAttribute(_name: string): Promise<void> {
2314
+ return Promise.resolve();
2315
+ }
2316
+
2317
+ override setOuterHTML(_html: string, _callback?: ((arg0: string|null) => void)|undefined): void {
2318
+ }
2319
+
2320
+ override removeNode(_callback?: ((arg0: string|null, arg1?: Protocol.DOM.NodeId|undefined) => void)|undefined):
2321
+ Promise<void> {
2322
+ return Promise.resolve();
2323
+ }
2324
+
2325
+ override copyTo(
2326
+ _targetNode: DOMNode, _anchorNode: DOMNode|null,
2327
+ _callback?: ((arg0: string|null, arg1: DOMNode|null) => void)|undefined): void {
2328
+ }
2329
+
2330
+ override moveTo(
2331
+ _targetNode: DOMNode, _anchorNode: DOMNode|null,
2332
+ _callback?: ((arg0: string|null, arg1: DOMNode|null) => void)|undefined): void {
2333
+ }
2334
+
2335
+ override setAsInspectedNode(): Promise<void> {
2336
+ return Promise.resolve();
2337
+ }
2338
+ }
2339
+
2340
+ export class DOMDocumentSnapshot extends DOMDocument {
2341
+ override init(
2342
+ _doc: DOMDocument|null, _isInShadowTree: boolean, _payload: Protocol.DOM.Node,
2343
+ _retainedNodes?: Set<Protocol.DOM.BackendNodeId>|undefined): void {
2344
+ }
2345
+
2346
+ override setNodeName(_name: string, _callback?: ((arg0: string|null, arg1: DOMNode|null) => void)|undefined): void {
2347
+ }
2348
+
2349
+ override setNodeValue(_value: string, _callback?: ((arg0: string|null) => void)|undefined): void {
2350
+ }
2351
+
2352
+ override setAttribute(_name: string, _text: string, _callback?: ((arg0: string|null) => void)|undefined): void {
2353
+ }
2354
+
2355
+ override setAttributeValue(_name: string, _value: string, _callback?: ((arg0: string|null) => void)|undefined): void {
2356
+ }
2357
+
2358
+ override removeAttribute(_name: string): Promise<void> {
2359
+ return Promise.resolve();
2360
+ }
2361
+
2362
+ override setOuterHTML(_html: string, _callback?: ((arg0: string|null) => void)|undefined): void {
2363
+ }
2364
+
2365
+ override removeNode(_callback?: ((arg0: string|null, arg1?: Protocol.DOM.NodeId|undefined) => void)|undefined):
2366
+ Promise<void> {
2367
+ return Promise.resolve();
2368
+ }
2369
+
2370
+ override copyTo(
2371
+ _targetNode: DOMNode, _anchorNode: DOMNode|null,
2372
+ _callback?: ((arg0: string|null, arg1: DOMNode|null) => void)|undefined): void {
2373
+ }
2374
+
2375
+ override moveTo(
2376
+ _targetNode: DOMNode, _anchorNode: DOMNode|null,
2377
+ _callback?: ((arg0: string|null, arg1: DOMNode|null) => void)|undefined): void {
2378
+ }
2379
+
2380
+ override setAsInspectedNode(): Promise<void> {
2381
+ return Promise.resolve();
2382
+ }
2383
+ }
2384
+
2179
2385
  export interface Attribute {
2180
2386
  name: string;
2181
2387
  value: string;
@@ -418,7 +418,7 @@ export class SourceMapScopesInfo {
418
418
  * Returns the authored function name of the function containing the provided generated position.
419
419
  */
420
420
  findOriginalFunctionName(position: ScopesCodec.Position): string|null {
421
- const originalInnerMostScope = this.findOriginalFunctionScope(position)?.scope ?? undefined;
421
+ const originalInnerMostScope = this.findOriginalFunctionScope(position)?.scope;
422
422
  return this.#findFunctionNameInOriginalScopeChain(originalInnerMostScope);
423
423
  }
424
424
 
@@ -134,7 +134,7 @@ html, body {
134
134
  margin-top: 8px;
135
135
  padding-top: 8px;
136
136
  border-top: 1px solid #eee;
137
- font-family: monospace;
137
+ font-family: var(--monospace-font-family);
138
138
  }
139
139
 
140
140
  .thought, .action {
@@ -186,7 +186,7 @@ html, body {
186
186
 
187
187
  .green-dev-floaty-dialog-node-description {
188
188
  font-size: 11px;
189
- font-family: monospace;
189
+ font-family: var(--monospace-font-family);
190
190
  color: #0b57d0;
191
191
  background-color: #d3e3fd;
192
192
  padding: 2px 8px;
@@ -413,11 +413,6 @@ export class MainImpl {
413
413
  Root.Runtime.experiments.register(
414
414
  Root.ExperimentNames.ExperimentName.JUST_MY_CODE, 'Hide ignore-listed code in Sources tree view');
415
415
 
416
- Root.Runtime.experiments.register(
417
- Root.ExperimentNames.ExperimentName.TIMELINE_SHOW_POST_MESSAGE_EVENTS,
418
- 'Performance panel: show postMessage dispatch and handling flows',
419
- );
420
-
421
416
  Root.Runtime.experiments.registerHostExperiment({
422
417
  name: Root.ExperimentNames.ExperimentName.DURABLE_MESSAGES,
423
418
  title: 'Durable Messages',
@@ -93,13 +93,12 @@ 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", SelectivePermissionsInterventionIssue: "SelectivePermissionsInterventionIssue"});
96
+ inspectorBackend.registerEnum("Audits.InspectorIssueCode", {CookieIssue: "CookieIssue", MixedContentIssue: "MixedContentIssue", BlockedByResponseIssue: "BlockedByResponseIssue", HeavyAdIssue: "HeavyAdIssue", ContentSecurityPolicyIssue: "ContentSecurityPolicyIssue", SharedArrayBufferIssue: "SharedArrayBufferIssue", 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.");
100
100
  inspectorBackend.registerCommand("Audits.disable", [], [], "Disables issues domain, prevents further issues from being reported to the client.");
101
101
  inspectorBackend.registerCommand("Audits.enable", [], [], "Enables issues domain, sends the issues collected so far to the client by means of the `issueAdded` event.");
102
- inspectorBackend.registerCommand("Audits.checkContrast", [{"name": "reportAAA", "type": "boolean", "optional": true, "description": "Whether to report WCAG AAA level issues. Default is false.", "typeRef": null}], [], "Runs the contrast check for the target page. Found issues are reported using Audits.issueAdded event.");
103
102
  inspectorBackend.registerCommand("Audits.checkFormsIssues", [], ["formIssues"], "Runs the form issues check for the target page. Found issues are reported using Audits.issueAdded event.");
104
103
  inspectorBackend.registerType("Audits.AffectedCookie", [{"name": "name", "type": "string", "optional": false, "description": "The following three properties uniquely identify a cookie", "typeRef": null}, {"name": "path", "type": "string", "optional": false, "description": "", "typeRef": null}, {"name": "domain", "type": "string", "optional": false, "description": "", "typeRef": null}]);
105
104
  inspectorBackend.registerType("Audits.AffectedRequest", [{"name": "requestId", "type": "string", "optional": true, "description": "The unique request id.", "typeRef": "Network.RequestId"}, {"name": "url", "type": "string", "optional": false, "description": "", "typeRef": null}]);
@@ -113,7 +112,6 @@ inspectorBackend.registerType("Audits.HeavyAdIssueDetails", [{"name": "resolutio
113
112
  inspectorBackend.registerType("Audits.SourceCodeLocation", [{"name": "scriptId", "type": "string", "optional": true, "description": "", "typeRef": "Runtime.ScriptId"}, {"name": "url", "type": "string", "optional": false, "description": "", "typeRef": null}, {"name": "lineNumber", "type": "number", "optional": false, "description": "", "typeRef": null}, {"name": "columnNumber", "type": "number", "optional": false, "description": "", "typeRef": null}]);
114
113
  inspectorBackend.registerType("Audits.ContentSecurityPolicyIssueDetails", [{"name": "blockedURL", "type": "string", "optional": true, "description": "The url not included in allowed sources.", "typeRef": null}, {"name": "violatedDirective", "type": "string", "optional": false, "description": "Specific directive that is violated, causing the CSP issue.", "typeRef": null}, {"name": "isReportOnly", "type": "boolean", "optional": false, "description": "", "typeRef": null}, {"name": "contentSecurityPolicyViolationType", "type": "string", "optional": false, "description": "", "typeRef": "Audits.ContentSecurityPolicyViolationType"}, {"name": "frameAncestor", "type": "object", "optional": true, "description": "", "typeRef": "Audits.AffectedFrame"}, {"name": "sourceCodeLocation", "type": "object", "optional": true, "description": "", "typeRef": "Audits.SourceCodeLocation"}, {"name": "violatingNodeId", "type": "number", "optional": true, "description": "", "typeRef": "DOM.BackendNodeId"}]);
115
114
  inspectorBackend.registerType("Audits.SharedArrayBufferIssueDetails", [{"name": "sourceCodeLocation", "type": "object", "optional": false, "description": "", "typeRef": "Audits.SourceCodeLocation"}, {"name": "isWarning", "type": "boolean", "optional": false, "description": "", "typeRef": null}, {"name": "type", "type": "string", "optional": false, "description": "", "typeRef": "Audits.SharedArrayBufferIssueType"}]);
116
- inspectorBackend.registerType("Audits.LowTextContrastIssueDetails", [{"name": "violatingNodeId", "type": "number", "optional": false, "description": "", "typeRef": "DOM.BackendNodeId"}, {"name": "violatingNodeSelector", "type": "string", "optional": false, "description": "", "typeRef": null}, {"name": "contrastRatio", "type": "number", "optional": false, "description": "", "typeRef": null}, {"name": "thresholdAA", "type": "number", "optional": false, "description": "", "typeRef": null}, {"name": "thresholdAAA", "type": "number", "optional": false, "description": "", "typeRef": null}, {"name": "fontSize", "type": "string", "optional": false, "description": "", "typeRef": null}, {"name": "fontWeight", "type": "string", "optional": false, "description": "", "typeRef": null}]);
117
115
  inspectorBackend.registerType("Audits.CorsIssueDetails", [{"name": "corsErrorStatus", "type": "object", "optional": false, "description": "", "typeRef": "Network.CorsErrorStatus"}, {"name": "isWarning", "type": "boolean", "optional": false, "description": "", "typeRef": null}, {"name": "request", "type": "object", "optional": false, "description": "", "typeRef": "Audits.AffectedRequest"}, {"name": "location", "type": "object", "optional": true, "description": "", "typeRef": "Audits.SourceCodeLocation"}, {"name": "initiatorOrigin", "type": "string", "optional": true, "description": "", "typeRef": null}, {"name": "resourceIPAddressSpace", "type": "string", "optional": true, "description": "", "typeRef": "Network.IPAddressSpace"}, {"name": "clientSecurityState", "type": "object", "optional": true, "description": "", "typeRef": "Network.ClientSecurityState"}]);
118
116
  inspectorBackend.registerType("Audits.AttributionReportingIssueDetails", [{"name": "violationType", "type": "string", "optional": false, "description": "", "typeRef": "Audits.AttributionReportingIssueType"}, {"name": "request", "type": "object", "optional": true, "description": "", "typeRef": "Audits.AffectedRequest"}, {"name": "violatingNodeId", "type": "number", "optional": true, "description": "", "typeRef": "DOM.BackendNodeId"}, {"name": "invalidParameter", "type": "string", "optional": true, "description": "", "typeRef": null}]);
119
117
  inspectorBackend.registerType("Audits.QuirksModeIssueDetails", [{"name": "isLimitedQuirksMode", "type": "boolean", "optional": false, "description": "If false, it means the document's mode is \\\"quirks\\\" instead of \\\"limited-quirks\\\".", "typeRef": null}, {"name": "documentNodeId", "type": "number", "optional": false, "description": "", "typeRef": "DOM.BackendNodeId"}, {"name": "url", "type": "string", "optional": false, "description": "", "typeRef": null}, {"name": "frameId", "type": "string", "optional": false, "description": "", "typeRef": "Page.FrameId"}, {"name": "loaderId", "type": "string", "optional": false, "description": "", "typeRef": "Network.LoaderId"}]);
@@ -139,7 +137,7 @@ inspectorBackend.registerType("Audits.PermissionElementIssueDetails", [{"name":
139
137
  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
138
  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
139
  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
+ 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": "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"}]);
143
141
  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"}]);
144
142
 
145
143
  // Autofill.
@@ -1039,7 +1037,7 @@ inspectorBackend.registerEnum("Page.ClientNavigationReason", {AnchorClick: "anch
1039
1037
  inspectorBackend.registerEnum("Page.ClientNavigationDisposition", {CurrentTab: "currentTab", NewTab: "newTab", NewWindow: "newWindow", Download: "download"});
1040
1038
  inspectorBackend.registerEnum("Page.ReferrerPolicy", {NoReferrer: "noReferrer", NoReferrerWhenDowngrade: "noReferrerWhenDowngrade", Origin: "origin", OriginWhenCrossOrigin: "originWhenCrossOrigin", SameOrigin: "sameOrigin", StrictOrigin: "strictOrigin", StrictOriginWhenCrossOrigin: "strictOriginWhenCrossOrigin", UnsafeUrl: "unsafeUrl"});
1041
1039
  inspectorBackend.registerEnum("Page.NavigationType", {Navigation: "Navigation", BackForwardCacheRestore: "BackForwardCacheRestore"});
1042
- inspectorBackend.registerEnum("Page.BackForwardCacheNotRestoredReason", {NotPrimaryMainFrame: "NotPrimaryMainFrame", BackForwardCacheDisabled: "BackForwardCacheDisabled", RelatedActiveContentsExist: "RelatedActiveContentsExist", HTTPStatusNotOK: "HTTPStatusNotOK", SchemeNotHTTPOrHTTPS: "SchemeNotHTTPOrHTTPS", Loading: "Loading", WasGrantedMediaAccess: "WasGrantedMediaAccess", DisableForRenderFrameHostCalled: "DisableForRenderFrameHostCalled", DomainNotAllowed: "DomainNotAllowed", HTTPMethodNotGET: "HTTPMethodNotGET", SubframeIsNavigating: "SubframeIsNavigating", Timeout: "Timeout", CacheLimit: "CacheLimit", JavaScriptExecution: "JavaScriptExecution", RendererProcessKilled: "RendererProcessKilled", RendererProcessCrashed: "RendererProcessCrashed", SchedulerTrackedFeatureUsed: "SchedulerTrackedFeatureUsed", ConflictingBrowsingInstance: "ConflictingBrowsingInstance", CacheFlushed: "CacheFlushed", ServiceWorkerVersionActivation: "ServiceWorkerVersionActivation", SessionRestored: "SessionRestored", ServiceWorkerPostMessage: "ServiceWorkerPostMessage", EnteredBackForwardCacheBeforeServiceWorkerHostAdded: "EnteredBackForwardCacheBeforeServiceWorkerHostAdded", RenderFrameHostReused_SameSite: "RenderFrameHostReused_SameSite", RenderFrameHostReused_CrossSite: "RenderFrameHostReused_CrossSite", ServiceWorkerClaim: "ServiceWorkerClaim", IgnoreEventAndEvict: "IgnoreEventAndEvict", HaveInnerContents: "HaveInnerContents", TimeoutPuttingInCache: "TimeoutPuttingInCache", BackForwardCacheDisabledByLowMemory: "BackForwardCacheDisabledByLowMemory", BackForwardCacheDisabledByCommandLine: "BackForwardCacheDisabledByCommandLine", NetworkRequestDatAPIpeDrainedAsBytesConsumer: "NetworkRequestDatapipeDrainedAsBytesConsumer", NetworkRequestRedirected: "NetworkRequestRedirected", NetworkRequestTimeout: "NetworkRequestTimeout", NetworkExceedsBufferLimit: "NetworkExceedsBufferLimit", NavigationCancelledWhileRestoring: "NavigationCancelledWhileRestoring", NotMostRecentNavigationEntry: "NotMostRecentNavigationEntry", BackForwardCacheDisabledForPrerender: "BackForwardCacheDisabledForPrerender", UserAgentOverrideDiffers: "UserAgentOverrideDiffers", ForegroundCacheLimit: "ForegroundCacheLimit", BrowsingInstanceNotSwapped: "BrowsingInstanceNotSwapped", BackForwardCacheDisabledForDelegate: "BackForwardCacheDisabledForDelegate", UnloadHandlerExistsInMainFrame: "UnloadHandlerExistsInMainFrame", UnloadHandlerExistsInSubFrame: "UnloadHandlerExistsInSubFrame", ServiceWorkerUnregistration: "ServiceWorkerUnregistration", CacheControlNoStore: "CacheControlNoStore", CacheControlNoStoreCookieModified: "CacheControlNoStoreCookieModified", CacheControlNoStoreHTTPOnlyCookieModified: "CacheControlNoStoreHTTPOnlyCookieModified", NoResponseHead: "NoResponseHead", Unknown: "Unknown", ActivationNavigationsDisallowedForBug1234857: "ActivationNavigationsDisallowedForBug1234857", ErrorDocument: "ErrorDocument", FencedFramesEmbedder: "FencedFramesEmbedder", CookieDisabled: "CookieDisabled", HTTPAuthRequired: "HTTPAuthRequired", CookieFlushed: "CookieFlushed", BroadcastChannelOnMessage: "BroadcastChannelOnMessage", WebViewSettingsChanged: "WebViewSettingsChanged", WebViewJavaScriptObjectChanged: "WebViewJavaScriptObjectChanged", WebViewMessageListenerInjected: "WebViewMessageListenerInjected", WebViewSafeBrowsingAllowlistChanged: "WebViewSafeBrowsingAllowlistChanged", WebViewDocumentStartJavascriptChanged: "WebViewDocumentStartJavascriptChanged", WebSocket: "WebSocket", WebTransport: "WebTransport", WebRTC: "WebRTC", MainResourceHasCacheControlNoStore: "MainResourceHasCacheControlNoStore", MainResourceHasCacheControlNoCache: "MainResourceHasCacheControlNoCache", SubresourceHasCacheControlNoStore: "SubresourceHasCacheControlNoStore", SubresourceHasCacheControlNoCache: "SubresourceHasCacheControlNoCache", ContainsPlugins: "ContainsPlugins", DocumentLoaded: "DocumentLoaded", OutstandingNetworkRequestOthers: "OutstandingNetworkRequestOthers", RequestedMIDIPermission: "RequestedMIDIPermission", RequestedAudioCapturePermission: "RequestedAudioCapturePermission", RequestedVideoCapturePermission: "RequestedVideoCapturePermission", RequestedBackForwardCacheBlockedSensors: "RequestedBackForwardCacheBlockedSensors", RequestedBackgroundWorkPermission: "RequestedBackgroundWorkPermission", BroadcastChannel: "BroadcastChannel", WebXR: "WebXR", SharedWorker: "SharedWorker", SharedWorkerMessage: "SharedWorkerMessage", SharedWorkerWithNoActiveClient: "SharedWorkerWithNoActiveClient", WebLocks: "WebLocks", WebLocksContention: "WebLocksContention", WebHID: "WebHID", WebBluetooth: "WebBluetooth", WebShare: "WebShare", RequestedStorageAccessGrant: "RequestedStorageAccessGrant", WebNfc: "WebNfc", OutstandingNetworkRequestFetch: "OutstandingNetworkRequestFetch", OutstandingNetworkRequestXHR: "OutstandingNetworkRequestXHR", AppBanner: "AppBanner", Printing: "Printing", WebDatabase: "WebDatabase", PictureInPicture: "PictureInPicture", SpeechRecognizer: "SpeechRecognizer", IdleManager: "IdleManager", PaymentManager: "PaymentManager", SpeechSynthesis: "SpeechSynthesis", KeyboardLock: "KeyboardLock", WebOTPService: "WebOTPService", OutstandingNetworkRequestDirectSocket: "OutstandingNetworkRequestDirectSocket", InjectedJavascript: "InjectedJavascript", InjectedStyleSheet: "InjectedStyleSheet", KeepaliveRequest: "KeepaliveRequest", IndexedDBEvent: "IndexedDBEvent", Dummy: "Dummy", JsNetworkRequestReceivedCacheControlNoStoreResource: "JsNetworkRequestReceivedCacheControlNoStoreResource", WebRTCUsedWithCCNS: "WebRTCUsedWithCCNS", WebTransportUsedWithCCNS: "WebTransportUsedWithCCNS", WebSocketUsedWithCCNS: "WebSocketUsedWithCCNS", SmartCard: "SmartCard", LiveMediaStreamTrack: "LiveMediaStreamTrack", UnloadHandler: "UnloadHandler", ParserAborted: "ParserAborted", ContentSecurityHandler: "ContentSecurityHandler", ContentWebAuthenticationAPI: "ContentWebAuthenticationAPI", ContentFileChooser: "ContentFileChooser", ContentSerial: "ContentSerial", ContentFileSystemAccess: "ContentFileSystemAccess", ContentMediaDevicesDispatcherHost: "ContentMediaDevicesDispatcherHost", ContentWebBluetooth: "ContentWebBluetooth", ContentWebUSB: "ContentWebUSB", ContentMediaSessionService: "ContentMediaSessionService", ContentScreenReader: "ContentScreenReader", ContentDiscarded: "ContentDiscarded", EmbedderPopupBlockerTabHelper: "EmbedderPopupBlockerTabHelper", EmbedderSafeBrowsingTriggeredPopupBlocker: "EmbedderSafeBrowsingTriggeredPopupBlocker", EmbedderSafeBrowsingThreatDetails: "EmbedderSafeBrowsingThreatDetails", EmbedderAppBannerManager: "EmbedderAppBannerManager", EmbedderDomDistillerViewerSource: "EmbedderDomDistillerViewerSource", EmbedderDomDistillerSelfDeletingRequestDelegate: "EmbedderDomDistillerSelfDeletingRequestDelegate", EmbedderOomInterventionTabHelper: "EmbedderOomInterventionTabHelper", EmbedderOfflinePage: "EmbedderOfflinePage", EmbedderChromePasswordManagerClientBindCredentialManager: "EmbedderChromePasswordManagerClientBindCredentialManager", EmbedderPermissionRequestManager: "EmbedderPermissionRequestManager", EmbedderModalDialog: "EmbedderModalDialog", EmbedderExtensions: "EmbedderExtensions", EmbedderExtensionMessaging: "EmbedderExtensionMessaging", EmbedderExtensionMessagingForOpenPort: "EmbedderExtensionMessagingForOpenPort", EmbedderExtensionSentMessageToCachedFrame: "EmbedderExtensionSentMessageToCachedFrame", RequestedByWebViewClient: "RequestedByWebViewClient", PostMessageByWebViewClient: "PostMessageByWebViewClient", CacheControlNoStoreDeviceBoundSessionTerminated: "CacheControlNoStoreDeviceBoundSessionTerminated", CacheLimitPrunedOnModerateMemoryPressure: "CacheLimitPrunedOnModerateMemoryPressure", CacheLimitPrunedOnCriticalMemoryPressure: "CacheLimitPrunedOnCriticalMemoryPressure"});
1040
+ inspectorBackend.registerEnum("Page.BackForwardCacheNotRestoredReason", {NotPrimaryMainFrame: "NotPrimaryMainFrame", BackForwardCacheDisabled: "BackForwardCacheDisabled", RelatedActiveContentsExist: "RelatedActiveContentsExist", HTTPStatusNotOK: "HTTPStatusNotOK", SchemeNotHTTPOrHTTPS: "SchemeNotHTTPOrHTTPS", Loading: "Loading", WasGrantedMediaAccess: "WasGrantedMediaAccess", DisableForRenderFrameHostCalled: "DisableForRenderFrameHostCalled", DomainNotAllowed: "DomainNotAllowed", HTTPMethodNotGET: "HTTPMethodNotGET", SubframeIsNavigating: "SubframeIsNavigating", Timeout: "Timeout", CacheLimit: "CacheLimit", JavaScriptExecution: "JavaScriptExecution", RendererProcessKilled: "RendererProcessKilled", RendererProcessCrashed: "RendererProcessCrashed", SchedulerTrackedFeatureUsed: "SchedulerTrackedFeatureUsed", ConflictingBrowsingInstance: "ConflictingBrowsingInstance", CacheFlushed: "CacheFlushed", ServiceWorkerVersionActivation: "ServiceWorkerVersionActivation", SessionRestored: "SessionRestored", ServiceWorkerPostMessage: "ServiceWorkerPostMessage", EnteredBackForwardCacheBeforeServiceWorkerHostAdded: "EnteredBackForwardCacheBeforeServiceWorkerHostAdded", RenderFrameHostReused_SameSite: "RenderFrameHostReused_SameSite", RenderFrameHostReused_CrossSite: "RenderFrameHostReused_CrossSite", ServiceWorkerClaim: "ServiceWorkerClaim", IgnoreEventAndEvict: "IgnoreEventAndEvict", HaveInnerContents: "HaveInnerContents", TimeoutPuttingInCache: "TimeoutPuttingInCache", BackForwardCacheDisabledByLowMemory: "BackForwardCacheDisabledByLowMemory", BackForwardCacheDisabledByCommandLine: "BackForwardCacheDisabledByCommandLine", NetworkRequestDatAPIpeDrainedAsBytesConsumer: "NetworkRequestDatapipeDrainedAsBytesConsumer", NetworkRequestRedirected: "NetworkRequestRedirected", NetworkRequestTimeout: "NetworkRequestTimeout", NetworkExceedsBufferLimit: "NetworkExceedsBufferLimit", NavigationCancelledWhileRestoring: "NavigationCancelledWhileRestoring", NotMostRecentNavigationEntry: "NotMostRecentNavigationEntry", BackForwardCacheDisabledForPrerender: "BackForwardCacheDisabledForPrerender", UserAgentOverrideDiffers: "UserAgentOverrideDiffers", ForegroundCacheLimit: "ForegroundCacheLimit", ForwardCacheDisabled: "ForwardCacheDisabled", BrowsingInstanceNotSwapped: "BrowsingInstanceNotSwapped", BackForwardCacheDisabledForDelegate: "BackForwardCacheDisabledForDelegate", UnloadHandlerExistsInMainFrame: "UnloadHandlerExistsInMainFrame", UnloadHandlerExistsInSubFrame: "UnloadHandlerExistsInSubFrame", ServiceWorkerUnregistration: "ServiceWorkerUnregistration", CacheControlNoStore: "CacheControlNoStore", CacheControlNoStoreCookieModified: "CacheControlNoStoreCookieModified", CacheControlNoStoreHTTPOnlyCookieModified: "CacheControlNoStoreHTTPOnlyCookieModified", NoResponseHead: "NoResponseHead", Unknown: "Unknown", ActivationNavigationsDisallowedForBug1234857: "ActivationNavigationsDisallowedForBug1234857", ErrorDocument: "ErrorDocument", FencedFramesEmbedder: "FencedFramesEmbedder", CookieDisabled: "CookieDisabled", HTTPAuthRequired: "HTTPAuthRequired", CookieFlushed: "CookieFlushed", BroadcastChannelOnMessage: "BroadcastChannelOnMessage", WebViewSettingsChanged: "WebViewSettingsChanged", WebViewJavaScriptObjectChanged: "WebViewJavaScriptObjectChanged", WebViewMessageListenerInjected: "WebViewMessageListenerInjected", WebViewSafeBrowsingAllowlistChanged: "WebViewSafeBrowsingAllowlistChanged", WebViewDocumentStartJavascriptChanged: "WebViewDocumentStartJavascriptChanged", WebSocket: "WebSocket", WebTransport: "WebTransport", WebRTC: "WebRTC", MainResourceHasCacheControlNoStore: "MainResourceHasCacheControlNoStore", MainResourceHasCacheControlNoCache: "MainResourceHasCacheControlNoCache", SubresourceHasCacheControlNoStore: "SubresourceHasCacheControlNoStore", SubresourceHasCacheControlNoCache: "SubresourceHasCacheControlNoCache", ContainsPlugins: "ContainsPlugins", DocumentLoaded: "DocumentLoaded", OutstandingNetworkRequestOthers: "OutstandingNetworkRequestOthers", RequestedMIDIPermission: "RequestedMIDIPermission", RequestedAudioCapturePermission: "RequestedAudioCapturePermission", RequestedVideoCapturePermission: "RequestedVideoCapturePermission", RequestedBackForwardCacheBlockedSensors: "RequestedBackForwardCacheBlockedSensors", RequestedBackgroundWorkPermission: "RequestedBackgroundWorkPermission", BroadcastChannel: "BroadcastChannel", WebXR: "WebXR", SharedWorker: "SharedWorker", SharedWorkerMessage: "SharedWorkerMessage", SharedWorkerWithNoActiveClient: "SharedWorkerWithNoActiveClient", WebLocks: "WebLocks", WebLocksContention: "WebLocksContention", WebHID: "WebHID", WebBluetooth: "WebBluetooth", WebShare: "WebShare", RequestedStorageAccessGrant: "RequestedStorageAccessGrant", WebNfc: "WebNfc", OutstandingNetworkRequestFetch: "OutstandingNetworkRequestFetch", OutstandingNetworkRequestXHR: "OutstandingNetworkRequestXHR", AppBanner: "AppBanner", Printing: "Printing", WebDatabase: "WebDatabase", PictureInPicture: "PictureInPicture", SpeechRecognizer: "SpeechRecognizer", IdleManager: "IdleManager", PaymentManager: "PaymentManager", SpeechSynthesis: "SpeechSynthesis", KeyboardLock: "KeyboardLock", WebOTPService: "WebOTPService", OutstandingNetworkRequestDirectSocket: "OutstandingNetworkRequestDirectSocket", InjectedJavascript: "InjectedJavascript", InjectedStyleSheet: "InjectedStyleSheet", KeepaliveRequest: "KeepaliveRequest", IndexedDBEvent: "IndexedDBEvent", Dummy: "Dummy", JsNetworkRequestReceivedCacheControlNoStoreResource: "JsNetworkRequestReceivedCacheControlNoStoreResource", WebRTCUsedWithCCNS: "WebRTCUsedWithCCNS", WebTransportUsedWithCCNS: "WebTransportUsedWithCCNS", WebSocketUsedWithCCNS: "WebSocketUsedWithCCNS", SmartCard: "SmartCard", LiveMediaStreamTrack: "LiveMediaStreamTrack", UnloadHandler: "UnloadHandler", ParserAborted: "ParserAborted", ContentSecurityHandler: "ContentSecurityHandler", ContentWebAuthenticationAPI: "ContentWebAuthenticationAPI", ContentFileChooser: "ContentFileChooser", ContentSerial: "ContentSerial", ContentFileSystemAccess: "ContentFileSystemAccess", ContentMediaDevicesDispatcherHost: "ContentMediaDevicesDispatcherHost", ContentWebBluetooth: "ContentWebBluetooth", ContentWebUSB: "ContentWebUSB", ContentMediaSessionService: "ContentMediaSessionService", ContentScreenReader: "ContentScreenReader", ContentDiscarded: "ContentDiscarded", EmbedderPopupBlockerTabHelper: "EmbedderPopupBlockerTabHelper", EmbedderSafeBrowsingTriggeredPopupBlocker: "EmbedderSafeBrowsingTriggeredPopupBlocker", EmbedderSafeBrowsingThreatDetails: "EmbedderSafeBrowsingThreatDetails", EmbedderAppBannerManager: "EmbedderAppBannerManager", EmbedderDomDistillerViewerSource: "EmbedderDomDistillerViewerSource", EmbedderDomDistillerSelfDeletingRequestDelegate: "EmbedderDomDistillerSelfDeletingRequestDelegate", EmbedderOomInterventionTabHelper: "EmbedderOomInterventionTabHelper", EmbedderOfflinePage: "EmbedderOfflinePage", EmbedderChromePasswordManagerClientBindCredentialManager: "EmbedderChromePasswordManagerClientBindCredentialManager", EmbedderPermissionRequestManager: "EmbedderPermissionRequestManager", EmbedderModalDialog: "EmbedderModalDialog", EmbedderExtensions: "EmbedderExtensions", EmbedderExtensionMessaging: "EmbedderExtensionMessaging", EmbedderExtensionMessagingForOpenPort: "EmbedderExtensionMessagingForOpenPort", EmbedderExtensionSentMessageToCachedFrame: "EmbedderExtensionSentMessageToCachedFrame", RequestedByWebViewClient: "RequestedByWebViewClient", PostMessageByWebViewClient: "PostMessageByWebViewClient", CacheControlNoStoreDeviceBoundSessionTerminated: "CacheControlNoStoreDeviceBoundSessionTerminated", CacheLimitPrunedOnModerateMemoryPressure: "CacheLimitPrunedOnModerateMemoryPressure", CacheLimitPrunedOnCriticalMemoryPressure: "CacheLimitPrunedOnCriticalMemoryPressure"});
1043
1041
  inspectorBackend.registerEnum("Page.BackForwardCacheNotRestoredReasonType", {SupportPending: "SupportPending", PageSupportNeeded: "PageSupportNeeded", Circumstantial: "Circumstantial"});
1044
1042
  inspectorBackend.registerEvent("Page.domContentEventFired", ["timestamp"]);
1045
1043
  inspectorBackend.registerEnum("Page.FileChooserOpenedEventMode", {SelectSingle: "selectSingle", SelectMultiple: "selectMultiple"});
@@ -1170,14 +1170,6 @@ export namespace ProtocolMapping {
1170
1170
  paramsType: [];
1171
1171
  returnType: void;
1172
1172
  };
1173
- /**
1174
- * Runs the contrast check for the target page. Found issues are reported
1175
- * using Audits.issueAdded event.
1176
- */
1177
- 'Audits.checkContrast': {
1178
- paramsType: [Protocol.Audits.CheckContrastRequest?];
1179
- returnType: void;
1180
- };
1181
1173
  /**
1182
1174
  * Runs the form issues check for the target page. Found issues are reported
1183
1175
  * using Audits.issueAdded event.
@@ -393,12 +393,6 @@ declare namespace ProtocolProxyApi {
393
393
  */
394
394
  invoke_enable(): Promise<Protocol.ProtocolResponseWithError>;
395
395
 
396
- /**
397
- * Runs the contrast check for the target page. Found issues are reported
398
- * using Audits.issueAdded event.
399
- */
400
- invoke_checkContrast(params: Protocol.Audits.CheckContrastRequest): Promise<Protocol.ProtocolResponseWithError>;
401
-
402
396
  /**
403
397
  * Runs the form issues check for the target page. Found issues are reported
404
398
  * using Audits.issueAdded event.
@@ -1032,16 +1032,6 @@ export namespace Audits {
1032
1032
  type: SharedArrayBufferIssueType;
1033
1033
  }
1034
1034
 
1035
- export interface LowTextContrastIssueDetails {
1036
- violatingNodeId: DOM.BackendNodeId;
1037
- violatingNodeSelector: string;
1038
- contrastRatio: number;
1039
- thresholdAA: number;
1040
- thresholdAAA: number;
1041
- fontSize: string;
1042
- fontWeight: string;
1043
- }
1044
-
1045
1035
  /**
1046
1036
  * Details for a CORS related issue, e.g. a warning or error related to
1047
1037
  * CORS RFC1918 enforcement.
@@ -1612,7 +1602,6 @@ export namespace Audits {
1612
1602
  HeavyAdIssue = 'HeavyAdIssue',
1613
1603
  ContentSecurityPolicyIssue = 'ContentSecurityPolicyIssue',
1614
1604
  SharedArrayBufferIssue = 'SharedArrayBufferIssue',
1615
- LowTextContrastIssue = 'LowTextContrastIssue',
1616
1605
  CorsIssue = 'CorsIssue',
1617
1606
  AttributionReportingIssue = 'AttributionReportingIssue',
1618
1607
  QuirksModeIssue = 'QuirksModeIssue',
@@ -1650,7 +1639,6 @@ export namespace Audits {
1650
1639
  heavyAdIssueDetails?: HeavyAdIssueDetails;
1651
1640
  contentSecurityPolicyIssueDetails?: ContentSecurityPolicyIssueDetails;
1652
1641
  sharedArrayBufferIssueDetails?: SharedArrayBufferIssueDetails;
1653
- lowTextContrastIssueDetails?: LowTextContrastIssueDetails;
1654
1642
  corsIssueDetails?: CorsIssueDetails;
1655
1643
  attributionReportingIssueDetails?: AttributionReportingIssueDetails;
1656
1644
  quirksModeIssueDetails?: QuirksModeIssueDetails;
@@ -1738,13 +1726,6 @@ export namespace Audits {
1738
1726
  encodedSize: integer;
1739
1727
  }
1740
1728
 
1741
- export interface CheckContrastRequest {
1742
- /**
1743
- * Whether to report WCAG AAA level issues. Default is false.
1744
- */
1745
- reportAAA?: boolean;
1746
- }
1747
-
1748
1729
  export interface CheckFormsIssuesResponse extends ProtocolResponseWithError {
1749
1730
  formIssues: GenericIssueDetails[];
1750
1731
  }
@@ -15276,6 +15257,7 @@ export namespace Page {
15276
15257
  BackForwardCacheDisabledForPrerender = 'BackForwardCacheDisabledForPrerender',
15277
15258
  UserAgentOverrideDiffers = 'UserAgentOverrideDiffers',
15278
15259
  ForegroundCacheLimit = 'ForegroundCacheLimit',
15260
+ ForwardCacheDisabled = 'ForwardCacheDisabled',
15279
15261
  BrowsingInstanceNotSwapped = 'BrowsingInstanceNotSwapped',
15280
15262
  BackForwardCacheDisabledForDelegate = 'BackForwardCacheDisabledForDelegate',
15281
15263
  UnloadHandlerExistsInMainFrame = 'UnloadHandlerExistsInMainFrame',
@@ -129,7 +129,7 @@ export class ConversationHandler extends Common.ObjectWrapper.ObjectWrapper<Even
129
129
  }): ConversationHandler {
130
130
  if (opts?.forceNew || conversationHandlerInstance === undefined) {
131
131
  const aidaClient = opts?.aidaClient ?? new Host.AidaClient.AidaClient();
132
- conversationHandlerInstance = new ConversationHandler(aidaClient, opts?.aidaAvailability ?? undefined);
132
+ conversationHandlerInstance = new ConversationHandler(aidaClient, opts?.aidaAvailability);
133
133
  }
134
134
  return conversationHandlerInstance;
135
135
  }
@@ -169,7 +169,7 @@ export class AiCodeCompletion {
169
169
  // As a temporary fix for b/441221870 we are prepending a newline for each prefix.
170
170
  prefix = '\n' + prefix;
171
171
 
172
- let additionalContextFiles = additionalFiles ?? undefined;
172
+ let additionalContextFiles = additionalFiles;
173
173
  if (!additionalContextFiles) {
174
174
  additionalContextFiles = this.#panel === ContextFlavor.CONSOLE ? [{
175
175
  path: 'devtools-console-context.js',
@@ -226,7 +226,7 @@ export const NativeFunctions = [
226
226
  {
227
227
  name: "create",
228
228
  signatures: [["?options"]],
229
- receivers: ["CredentialsContainer"]
229
+ receivers: ["CredentialsContainer","Classifier"]
230
230
  },
231
231
  {
232
232
  name: "defineProperty",
@@ -7520,6 +7520,10 @@ export const NativeFunctions = [
7520
7520
  name: "queryFeatureSupport",
7521
7521
  signatures: [["feature"]]
7522
7522
  },
7523
+ {
7524
+ name: "classify",
7525
+ signatures: [["input","?options"]]
7526
+ },
7523
7527
  {
7524
7528
  name: "LanguageModelToolCall",
7525
7529
  signatures: [["init"]]
@@ -761,6 +761,8 @@ export class AiAssistancePanel extends UI.Panel.Panel {
761
761
  if (isNarrow === this.#walkthrough.isInlined) {
762
762
  return;
763
763
  }
764
+ // If the UI changed, we reset the visibility of the AI Walkthrough.
765
+ this.#clearWalkthrough();
764
766
  this.#walkthrough.isInlined = isNarrow;
765
767
  this.requestUpdate();
766
768
  }