chrome-devtools-frontend 1.0.1544076 → 1.0.1547147

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 (178) hide show
  1. package/config/typescript/tsconfig.eslint.json +1 -0
  2. package/docs/styleguide/ux/styles.md +1 -1
  3. package/eslint.config.mjs +1 -1
  4. package/front_end/Images/src/arrow-down.svg +8 -1
  5. package/front_end/Images/src/arrow-up.svg +8 -1
  6. package/front_end/core/common/ParsedURL.ts +1 -1
  7. package/front_end/core/common/common.ts +0 -2
  8. package/front_end/core/host/AidaClient.ts +1 -1
  9. package/front_end/core/host/InspectorFrontendHostAPI.ts +0 -1
  10. package/front_end/core/host/UserMetrics.ts +0 -5
  11. package/front_end/core/platform/HostRuntime.ts +18 -0
  12. package/front_end/core/platform/KeyboardUtilities.ts +2 -2
  13. package/front_end/core/platform/StringUtilities.ts +1 -1
  14. package/front_end/core/platform/api/HostRuntime.ts +20 -0
  15. package/front_end/core/platform/api/api.ts +7 -0
  16. package/front_end/core/platform/browser/HostRuntime.ts +14 -0
  17. package/front_end/core/platform/browser/browser.ts +7 -0
  18. package/front_end/core/platform/node/HostRuntime.ts +13 -0
  19. package/front_end/core/platform/node/node.ts +7 -0
  20. package/front_end/core/platform/platform.ts +2 -2
  21. package/front_end/core/protocol_client/CDPConnection.ts +3 -3
  22. package/front_end/core/protocol_client/DevToolsCDPConnection.ts +2 -1
  23. package/front_end/core/sdk/CSSMetadata.ts +17 -5
  24. package/front_end/core/sdk/NetworkManager.ts +6 -8
  25. package/front_end/core/sdk/NetworkRequest.ts +4 -0
  26. package/front_end/core/sdk/SDKModel.ts +4 -2
  27. package/front_end/core/sdk/SourceMapScopesInfo.ts +141 -23
  28. package/front_end/core/sdk/Target.ts +5 -14
  29. package/front_end/core/sdk/TargetManager.ts +39 -18
  30. package/front_end/core/sdk/sdk-meta.ts +62 -0
  31. package/front_end/devtools_compatibility.js +0 -1
  32. package/front_end/entrypoints/main/MainImpl.ts +2 -2
  33. package/front_end/foundation/Universe.ts +2 -2
  34. package/front_end/generated/Deprecation.ts +11 -0
  35. package/front_end/generated/InspectorBackendCommands.ts +3 -6
  36. package/front_end/generated/SupportedCSSProperties.js +4 -25
  37. package/front_end/generated/protocol-mapping.d.ts +0 -15
  38. package/front_end/generated/protocol-proxy-api.d.ts +0 -11
  39. package/front_end/generated/protocol.ts +5 -36
  40. package/front_end/models/ai_assistance/AiConversation.ts +188 -0
  41. package/front_end/models/ai_assistance/AiHistoryStorage.ts +1 -172
  42. package/front_end/models/ai_assistance/ConversationHandler.ts +5 -5
  43. package/front_end/models/ai_assistance/agents/AiAgent.ts +1 -3
  44. package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +6 -2
  45. package/front_end/models/ai_assistance/agents/StylingAgent.snapshot.txt +1 -1
  46. package/front_end/models/ai_assistance/agents/StylingAgent.ts +3 -9
  47. package/front_end/models/ai_assistance/ai_assistance.ts +2 -0
  48. package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.snapshot.txt +313 -313
  49. package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.ts +8 -6
  50. package/front_end/models/ai_assistance/performance/AICallTree.snapshot.txt +33 -33
  51. package/front_end/models/ai_assistance/performance/AICallTree.ts +9 -3
  52. package/front_end/models/bindings/CSSWorkspaceBinding.ts +5 -3
  53. package/front_end/models/bindings/SASSSourceMapping.ts +6 -4
  54. package/front_end/models/cpu_profile/CPUProfileDataModel.ts +10 -7
  55. package/front_end/models/crux-manager/CrUXManager.ts +7 -4
  56. package/front_end/models/issues_manager/GenericIssue.ts +12 -9
  57. package/front_end/models/javascript_metadata/NativeFunctions.js +4 -0
  58. package/front_end/models/trace/handlers/SamplesHandler.ts +3 -0
  59. package/front_end/models/trace/helpers/Trace.ts +13 -0
  60. package/front_end/models/trace/types/TraceEvents.ts +2 -1
  61. package/front_end/models/trace_source_maps_resolver/SourceMapsResolver.ts +29 -0
  62. package/front_end/models/workspace/IgnoreListManager.ts +1 -2
  63. package/front_end/models/workspace/UISourceCode.ts +50 -0
  64. package/front_end/panels/ai_assistance/AiAssistancePanel.ts +11 -10
  65. package/front_end/panels/ai_assistance/ai_assistance-meta.ts +8 -0
  66. package/front_end/panels/ai_assistance/components/ChatView.ts +2 -2
  67. package/front_end/panels/ai_assistance/components/UserActionRow.ts +2 -1
  68. package/front_end/panels/animation/AnimationTimeline.ts +0 -8
  69. package/front_end/panels/application/ApplicationPanelSidebar.ts +6 -7
  70. package/front_end/panels/application/{components/FrameDetailsView.ts → FrameDetailsView.ts} +140 -171
  71. package/front_end/panels/application/{components/OriginTrialTreeView.ts → OriginTrialTreeView.ts} +9 -9
  72. package/front_end/panels/application/application.ts +4 -0
  73. package/front_end/panels/application/components/StackTrace.ts +89 -88
  74. package/front_end/panels/application/components/components.ts +2 -4
  75. package/front_end/panels/application/{components/frameDetailsReportView.css → frameDetailsReportView.css} +5 -1
  76. package/front_end/panels/common/AiCodeGenerationTeaser.ts +80 -0
  77. package/front_end/panels/common/BadgeNotification.ts +2 -1
  78. package/front_end/panels/common/DOMLinkifier.ts +7 -2
  79. package/front_end/panels/common/GdpSignUpDialog.ts +2 -1
  80. package/front_end/panels/common/common.ts +2 -1
  81. package/front_end/panels/console/ConsolePrompt.ts +3 -1
  82. package/front_end/panels/console/ConsoleViewport.ts +1 -2
  83. package/front_end/panels/elements/ElementIssueUtils.ts +2 -2
  84. package/front_end/panels/elements/ElementStatePaneWidget.ts +2 -1
  85. package/front_end/panels/elements/StylePropertiesSection.ts +1 -1
  86. package/front_end/panels/elements/StylePropertyTreeElement.ts +23 -19
  87. package/front_end/panels/elements/StylesSidebarPane.ts +1 -1
  88. package/front_end/panels/elements/cssValueTraceView.css +1 -1
  89. package/front_end/panels/elements/elements-meta.ts +1 -22
  90. package/front_end/panels/explain/components/ConsoleInsight.ts +44 -57
  91. package/front_end/panels/explain/components/consoleInsight.css +46 -1
  92. package/front_end/panels/layer_viewer/LayerTreeOutline.ts +1 -2
  93. package/front_end/panels/lighthouse/LighthouseProtocolService.ts +3 -6
  94. package/front_end/panels/mobile_throttling/NetworkThrottlingSelector.ts +19 -0
  95. package/front_end/panels/network/RequestConditionsDrawer.ts +54 -24
  96. package/front_end/panels/network/networkLogView.css +11 -0
  97. package/front_end/panels/network/networkTimingTable.css +8 -6
  98. package/front_end/panels/network/requestConditionsDrawer.css +10 -1
  99. package/front_end/panels/profiler/ProfilesPanel.ts +1 -2
  100. package/front_end/panels/settings/FrameworkIgnoreListSettingsTab.ts +2 -1
  101. package/front_end/panels/settings/KeybindsSettingsTab.ts +20 -21
  102. package/front_end/panels/settings/SettingsScreen.ts +3 -2
  103. package/front_end/panels/sources/CoveragePlugin.ts +5 -5
  104. package/front_end/panels/sources/Plugin.ts +1 -1
  105. package/front_end/panels/sources/ProfilePlugin.ts +22 -14
  106. package/front_end/panels/sources/UISourceCodeFrame.ts +2 -1
  107. package/front_end/panels/sources/sources-meta.ts +0 -62
  108. package/front_end/panels/timeline/README.md +1 -9
  109. package/front_end/panels/timeline/ThreadAppender.ts +0 -7
  110. package/front_end/panels/timeline/TimelinePanel.ts +1 -1
  111. package/front_end/panels/timeline/TimelineUIUtils.ts +2 -0
  112. package/front_end/panels/timeline/components/ExportTraceOptions.ts +15 -1
  113. package/front_end/panels/timeline/components/LiveMetricsView.ts +51 -6
  114. package/front_end/panels/timeline/components/MetricCard.ts +2 -2
  115. package/front_end/panels/timeline/components/exportTraceOptions.css +11 -2
  116. package/front_end/panels/timeline/components/insights/NodeLink.ts +2 -3
  117. package/front_end/panels/timeline/overlays/components/EntryLabelOverlay.ts +2 -1
  118. package/front_end/panels/timeline/timeline-meta.ts +0 -10
  119. package/front_end/panels/timeline/timeline.ts +0 -2
  120. package/front_end/panels/whats_new/ReleaseNoteView.ts +2 -1
  121. package/front_end/panels/whats_new/WhatsNewImpl.ts +3 -2
  122. package/front_end/third_party/chromium/README.chromium +1 -1
  123. package/front_end/tsconfig.json +1 -0
  124. package/front_end/ui/components/buttons/Button.docs.ts +6 -5
  125. package/front_end/ui/components/markdown_view/MarkdownLinksMap.ts +1 -0
  126. package/front_end/ui/components/snackbars/Snackbars.docs.ts +1 -1
  127. package/front_end/ui/components/spinners/Spinners.docs.ts +1 -1
  128. package/front_end/ui/components/survey_link/SurveyLink.docs.ts +2 -1
  129. package/front_end/ui/components/switch/Switch.docs.ts +1 -1
  130. package/front_end/ui/components/tooltips/Tooltip.docs.ts +3 -3
  131. package/front_end/ui/helpers/OpenInNewTab.ts +87 -0
  132. package/front_end/ui/helpers/helpers.ts +5 -0
  133. package/front_end/ui/legacy/ARIAUtils.ts +2 -2
  134. package/front_end/ui/legacy/ActionRegistration.ts +11 -0
  135. package/front_end/ui/legacy/ContextMenu.docs.ts +12 -11
  136. package/front_end/ui/legacy/RadioButton.docs.ts +1 -1
  137. package/front_end/ui/legacy/SelectMenu.docs.ts +1 -1
  138. package/front_end/ui/legacy/Slider.docs.ts +1 -1
  139. package/front_end/ui/legacy/SoftDropDown.ts +2 -2
  140. package/front_end/ui/legacy/TextPrompt.ts +3 -2
  141. package/front_end/ui/legacy/Treeoutline.ts +2 -1
  142. package/front_end/ui/legacy/UIUtils.ts +11 -43
  143. package/front_end/ui/legacy/Widget.ts +3 -2
  144. package/front_end/ui/legacy/XLink.ts +4 -4
  145. package/front_end/ui/legacy/components/color_picker/ContrastDetails.ts +2 -1
  146. package/front_end/ui/legacy/components/data_grid/DataGrid.ts +2 -2
  147. package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +144 -143
  148. package/front_end/ui/legacy/components/perf_ui/LineLevelProfile.ts +62 -39
  149. package/front_end/ui/legacy/components/perf_ui/OverviewGrid.ts +1 -1
  150. package/front_end/ui/legacy/components/perf_ui/TimelineGrid.ts +2 -2
  151. package/front_end/ui/legacy/components/source_frame/SourceFrame.ts +2 -7
  152. package/front_end/ui/legacy/components/utils/JSPresentationUtils.ts +1 -2
  153. package/front_end/ui/legacy/components/utils/Linkifier.ts +2 -1
  154. package/front_end/ui/legacy/inspectorCommon.css +2 -2
  155. package/front_end/ui/legacy/legacy.ts +2 -0
  156. package/front_end/ui/visual_logging/KnownContextValues.ts +1 -0
  157. package/mcp/tsconfig.json +16 -0
  158. package/package.json +2 -2
  159. package/front_end/core/common/Linkifier.ts +0 -55
  160. package/front_end/panels/explain/components/consoleInsightSourcesList.css +0 -51
  161. package/front_end/panels/timeline/CLSLinkifier.ts +0 -58
  162. package/front_end/ui/components/docs/README.md +0 -6
  163. package/front_end/ui/components/docs/building-ui-documentation/ComponentEvents.md +0 -54
  164. package/front_end/ui/components/docs/building-ui-documentation/ComponentPerformance.md +0 -136
  165. package/front_end/ui/components/docs/building-ui-documentation/CreatingComponents.md +0 -242
  166. package/front_end/ui/components/docs/building-ui-documentation/README.md +0 -23
  167. package/front_end/ui/components/docs/building-ui-documentation/StylingComponents.md +0 -66
  168. package/front_end/ui/components/docs/building-ui-documentation/TestingComponents.md +0 -111
  169. package/front_end/ui/components/docs/component_docs.ts +0 -24
  170. package/front_end/ui/components/docs/component_docs_styles.css +0 -53
  171. package/front_end/ui/components/docs/create_breadcrumbs.ts +0 -44
  172. package/front_end/ui/components/docs/slider/basic.html +0 -20
  173. package/front_end/ui/components/docs/switch/basic.html +0 -20
  174. /package/front_end/models/issues_manager/descriptions/{genericFormAriaLabelledByToNonExistingId.md → genericFormAriaLabelledByToNonExistingIdError.md} +0 -0
  175. /package/front_end/models/issues_manager/descriptions/{genericFormLabelHasNeitherForNorNestedInput.md → genericFormLabelHasNeitherForNorNestedInputError.md} +0 -0
  176. /package/front_end/panels/application/{components/originTrialTokenRows.css → originTrialTokenRows.css} +0 -0
  177. /package/front_end/panels/application/{components/originTrialTreeView.css → originTrialTreeView.css} +0 -0
  178. /package/front_end/{core/platform → ui/legacy}/DOMUtilities.ts +0 -0
@@ -10,22 +10,20 @@ import {assertNotNullOrUndefined} from '../platform/platform.js';
10
10
  import type * as ProtocolClient from '../protocol_client/protocol_client.js';
11
11
  import * as Root from '../root/root.js';
12
12
 
13
- import {SDKModel} from './SDKModel.js';
13
+ import {type RegistrationInfo, SDKModel, type SDKModelConstructor} from './SDKModel.js';
14
14
  import {Target, Type as TargetType} from './Target.js';
15
15
 
16
- type ModelClass<T = SDKModel> = new (arg1: Target) => T;
17
-
18
16
  export class TargetManager extends Common.ObjectWrapper.ObjectWrapper<EventTypes> {
19
17
  #targets: Set<Target>;
20
18
  readonly #observers: Set<Observer>;
21
19
  /* eslint-disable @typescript-eslint/no-explicit-any */
22
20
  #modelListeners: Platform.MapUtilities.Multimap<string|symbol|number, {
23
- modelClass: ModelClass,
21
+ modelClass: SDKModelConstructor,
24
22
  thisObject: Object|undefined,
25
23
  listener: Common.EventTarget.EventListener<any, any>,
26
24
  wrappedListener: Common.EventTarget.EventListener<any, any>,
27
25
  }>;
28
- readonly #modelObservers: Platform.MapUtilities.Multimap<ModelClass, SDKModelObserver<any>>;
26
+ readonly #modelObservers: Platform.MapUtilities.Multimap<SDKModelConstructor, SDKModelObserver<any>>;
29
27
  #scopedObservers: WeakSet<Observer|SDKModelObserver<any>>;
30
28
  /* eslint-enable @typescript-eslint/no-explicit-any */
31
29
  #isSuspended: boolean;
@@ -33,8 +31,12 @@ export class TargetManager extends Common.ObjectWrapper.ObjectWrapper<EventTypes
33
31
  #scopeTarget: Target|null;
34
32
  #defaultScopeSet: boolean;
35
33
  readonly #scopeChangeListeners: Set<() => void>;
34
+ readonly #overrideAutoStartModels?: Set<SDKModelConstructor>;
36
35
 
37
- constructor() {
36
+ /**
37
+ * @param overrideAutoStartModels If provided, then the `autostart` flag on {@link RegistrationInfo} will be ignored.
38
+ */
39
+ constructor(overrideAutoStartModels?: Set<SDKModelConstructor>) {
38
40
  super();
39
41
  this.#targets = new Set();
40
42
  this.#observers = new Set();
@@ -46,6 +48,7 @@ export class TargetManager extends Common.ObjectWrapper.ObjectWrapper<EventTypes
46
48
  this.#scopedObservers = new WeakSet();
47
49
  this.#defaultScopeSet = false;
48
50
  this.#scopeChangeListeners = new Set();
51
+ this.#overrideAutoStartModels = overrideAutoStartModels;
49
52
  }
50
53
 
51
54
  static instance({forceNew}: {
@@ -99,7 +102,7 @@ export class TargetManager extends Common.ObjectWrapper.ObjectWrapper<EventTypes
99
102
  return this.#isSuspended;
100
103
  }
101
104
 
102
- models<T extends SDKModel>(modelClass: ModelClass<T>, opts?: {scoped: boolean}): T[] {
105
+ models<T extends SDKModel>(modelClass: SDKModelConstructor<T>, opts?: {scoped: boolean}): T[] {
103
106
  const result = [];
104
107
  for (const target of this.#targets) {
105
108
  if (opts?.scoped && !this.isInScope(target)) {
@@ -119,8 +122,9 @@ export class TargetManager extends Common.ObjectWrapper.ObjectWrapper<EventTypes
119
122
  return mainTarget ? mainTarget.inspectedURL() : '';
120
123
  }
121
124
 
122
- observeModels<T extends SDKModel>(modelClass: ModelClass<T>, observer: SDKModelObserver<T>, opts?: {scoped: boolean}):
123
- void {
125
+ observeModels<T extends SDKModel>(modelClass: SDKModelConstructor<T>, observer: SDKModelObserver<T>, opts?: {
126
+ scoped: boolean,
127
+ }): void {
124
128
  const models = this.models(modelClass, opts);
125
129
  this.#modelObservers.set(modelClass, observer);
126
130
  if (opts?.scoped) {
@@ -131,12 +135,12 @@ export class TargetManager extends Common.ObjectWrapper.ObjectWrapper<EventTypes
131
135
  }
132
136
  }
133
137
 
134
- unobserveModels<T extends SDKModel>(modelClass: ModelClass<T>, observer: SDKModelObserver<T>): void {
138
+ unobserveModels<T extends SDKModel>(modelClass: SDKModelConstructor<T>, observer: SDKModelObserver<T>): void {
135
139
  this.#modelObservers.delete(modelClass, observer);
136
140
  this.#scopedObservers.delete(observer);
137
141
  }
138
142
 
139
- modelAdded(modelClass: ModelClass, model: SDKModel, inScope: boolean): void {
143
+ modelAdded(modelClass: SDKModelConstructor, model: SDKModel, inScope: boolean): void {
140
144
  for (const observer of this.#modelObservers.get(modelClass).values()) {
141
145
  if (!this.#scopedObservers.has(observer) || inScope) {
142
146
  observer.modelAdded(model);
@@ -144,7 +148,7 @@ export class TargetManager extends Common.ObjectWrapper.ObjectWrapper<EventTypes
144
148
  }
145
149
  }
146
150
 
147
- private modelRemoved(modelClass: ModelClass, model: SDKModel, inScope: boolean): void {
151
+ private modelRemoved(modelClass: SDKModelConstructor, model: SDKModel, inScope: boolean): void {
148
152
  for (const observer of this.#modelObservers.get(modelClass).values()) {
149
153
  if (!this.#scopedObservers.has(observer) || inScope) {
150
154
  observer.modelRemoved(model);
@@ -153,8 +157,8 @@ export class TargetManager extends Common.ObjectWrapper.ObjectWrapper<EventTypes
153
157
  }
154
158
 
155
159
  addModelListener<Events, T extends keyof Events>(
156
- modelClass: ModelClass<SDKModel<Events>>, eventType: T, listener: Common.EventTarget.EventListener<Events, T>,
157
- thisObject?: Object, opts?: {scoped: boolean}): void {
160
+ modelClass: SDKModelConstructor<SDKModel<Events>>, eventType: T,
161
+ listener: Common.EventTarget.EventListener<Events, T>, thisObject?: Object, opts?: {scoped: boolean}): void {
158
162
  const wrappedListener = (event: Common.EventTarget.EventTargetEvent<Events[T], Events>): void => {
159
163
  if (!opts?.scoped || this.isInScope(event)) {
160
164
  listener.call(thisObject, event);
@@ -167,8 +171,8 @@ export class TargetManager extends Common.ObjectWrapper.ObjectWrapper<EventTypes
167
171
  }
168
172
 
169
173
  removeModelListener<Events, T extends keyof Events>(
170
- modelClass: ModelClass<SDKModel<Events>>, eventType: T, listener: Common.EventTarget.EventListener<Events, T>,
171
- thisObject?: Object): void {
174
+ modelClass: SDKModelConstructor<SDKModel<Events>>, eventType: T,
175
+ listener: Common.EventTarget.EventListener<Events, T>, thisObject?: Object): void {
172
176
  if (!this.#modelListeners.has(eventType)) {
173
177
  return;
174
178
  }
@@ -206,6 +210,23 @@ export class TargetManager extends Common.ObjectWrapper.ObjectWrapper<EventTypes
206
210
  this.#scopedObservers.delete(targetObserver);
207
211
  }
208
212
 
213
+ /** @returns The set of models we create unconditionally for new targets in the order in which they should be created */
214
+ #autoStartModels(): SDKModelConstructor[] {
215
+ const earlyModels = new Set<SDKModelConstructor>();
216
+ const models = new Set<SDKModelConstructor>();
217
+ const shouldAutostart = (model: SDKModelConstructor, info: RegistrationInfo): boolean =>
218
+ this.#overrideAutoStartModels ? this.#overrideAutoStartModels.has(model) : info.autostart;
219
+
220
+ for (const [model, info] of SDKModel.registeredModels) {
221
+ if (info.early) {
222
+ earlyModels.add(model);
223
+ } else if (shouldAutostart(model, info) || this.#modelObservers.has(model)) {
224
+ models.add(model);
225
+ }
226
+ }
227
+ return [...earlyModels, ...models];
228
+ }
229
+
209
230
  createTarget(
210
231
  id: Protocol.Target.TargetID|'main', name: string, type: TargetType, parentTarget: Target|null,
211
232
  sessionId?: string, waitForDebuggerInPage?: boolean, connection?: ProtocolClient.CDPConnection.CDPConnection,
@@ -215,7 +236,7 @@ export class TargetManager extends Common.ObjectWrapper.ObjectWrapper<EventTypes
215
236
  if (waitForDebuggerInPage) {
216
237
  void target.pageAgent().invoke_waitForDebugger();
217
238
  }
218
- target.createModels(new Set(this.#modelObservers.keysArray()));
239
+ target.createModels(this.#autoStartModels());
219
240
  this.#targets.add(target);
220
241
 
221
242
  const inScope = this.isInScope(target);
@@ -317,7 +338,7 @@ export class TargetManager extends Common.ObjectWrapper.ObjectWrapper<EventTypes
317
338
  this.#browserTarget = new Target(
318
339
  this, /* #id*/ 'main', /* #name*/ 'browser', TargetType.BROWSER, /* #parentTarget*/ null,
319
340
  /* #sessionId */ '', /* suspended*/ false, /* #connection*/ null, /* targetInfo*/ undefined);
320
- this.#browserTarget.createModels(new Set(this.#modelObservers.keysArray()));
341
+ this.#browserTarget.createModels(this.#autoStartModels());
321
342
  }
322
343
  const targetId =
323
344
  await Host.InspectorFrontendHost.InspectorFrontendHostInstance.initialTargetId() as Protocol.Target.TargetID;
@@ -363,6 +363,30 @@ const UIStrings = {
363
363
  */
364
364
  networkCacheExplanation:
365
365
  'Disabling the network cache will simulate a network experience similar to a first time visitor.',
366
+ /**
367
+ * @description Setting under the Sources category to toggle usage of JavaScript source maps.
368
+ */
369
+ javaScriptSourceMaps: 'JavaScript source maps',
370
+ /**
371
+ * @description Title of a setting under the Sources category that can be invoked through the Command Menu
372
+ */
373
+ enableJavaScriptSourceMaps: 'Enable JavaScript source maps',
374
+ /**
375
+ * @description Title of a setting under the Sources category that can be invoked through the Command Menu
376
+ */
377
+ disableJavaScriptSourceMaps: 'Disable JavaScript source maps',
378
+ /**
379
+ * @description Title of a setting under the Sources category
380
+ */
381
+ cssSourceMaps: 'CSS source maps',
382
+ /**
383
+ * @description Title of a setting under the Sources category that can be invoked through the Command Menu
384
+ */
385
+ enableCssSourceMaps: 'Enable CSS source maps',
386
+ /**
387
+ * @description Title of a setting under the Sources category that can be invoked through the Command Menu
388
+ */
389
+ disableCssSourceMaps: 'Disable CSS source maps',
366
390
  } as const;
367
391
  const str_ = i18n.i18n.registerUIStrings('core/sdk/sdk-meta.ts', UIStrings);
368
392
  const i18nLazyString = i18n.i18n.getLazilyComputedLocalizedString.bind(undefined, str_);
@@ -1132,3 +1156,41 @@ Common.Settings.registerSettingExtension({
1132
1156
  tooltip: i18nLazyString(UIStrings.remoteFileLoadingInfo),
1133
1157
  }
1134
1158
  });
1159
+
1160
+ Common.Settings.registerSettingExtension({
1161
+ category: Common.Settings.SettingCategory.SOURCES,
1162
+ storageType: Common.Settings.SettingStorageType.SYNCED,
1163
+ title: i18nLazyString(UIStrings.javaScriptSourceMaps),
1164
+ settingName: 'js-source-maps-enabled',
1165
+ settingType: Common.Settings.SettingType.BOOLEAN,
1166
+ defaultValue: true,
1167
+ options: [
1168
+ {
1169
+ value: true,
1170
+ title: i18nLazyString(UIStrings.enableJavaScriptSourceMaps),
1171
+ },
1172
+ {
1173
+ value: false,
1174
+ title: i18nLazyString(UIStrings.disableJavaScriptSourceMaps),
1175
+ },
1176
+ ],
1177
+ });
1178
+
1179
+ Common.Settings.registerSettingExtension({
1180
+ category: Common.Settings.SettingCategory.SOURCES,
1181
+ storageType: Common.Settings.SettingStorageType.SYNCED,
1182
+ title: i18nLazyString(UIStrings.cssSourceMaps),
1183
+ settingName: 'css-source-maps-enabled',
1184
+ settingType: Common.Settings.SettingType.BOOLEAN,
1185
+ defaultValue: true,
1186
+ options: [
1187
+ {
1188
+ value: true,
1189
+ title: i18nLazyString(UIStrings.enableCssSourceMaps),
1190
+ },
1191
+ {
1192
+ value: false,
1193
+ title: i18nLazyString(UIStrings.disableCssSourceMaps),
1194
+ },
1195
+ ],
1196
+ });
@@ -450,7 +450,6 @@
450
450
  TimelineNavigationSettingState: 'DevTools.TimelineNavigationSettingState',
451
451
  SyncSetting: 'DevTools.SyncSetting',
452
452
  SwatchActivated: 'DevTools.SwatchActivated',
453
- AnimationPlaybackRateChanged: 'DevTools.AnimationPlaybackRateChanged',
454
453
  BuiltInAiAvailability: 'DevTools.BuiltInAiAvailability'
455
454
  // LINT.ThenChange(/front_end/core/host/InspectorFrontendHostAPI.ts:EnumeratedHistogram)
456
455
  };
@@ -717,7 +717,7 @@ export class MainImpl {
717
717
  // @ts-expect-error Used in ElementsTreeOutline
718
718
  eventCopy['original'] = event;
719
719
  const document = event.target && (event.target as HTMLElement).ownerDocument;
720
- const target = document ? Platform.DOMUtilities.deepActiveElement(document) : null;
720
+ const target = document ? UI.DOMUtilities.deepActiveElement(document) : null;
721
721
  if (target) {
722
722
  target.dispatchEvent(eventCopy);
723
723
  }
@@ -778,7 +778,7 @@ export class ZoomActionDelegate implements UI.ActionRegistration.ActionDelegate
778
778
  export class SearchActionDelegate implements UI.ActionRegistration.ActionDelegate {
779
779
  handleAction(_context: UI.Context.Context, actionId: string): boolean {
780
780
  let searchableView = UI.SearchableView.SearchableView.fromElement(
781
- Platform.DOMUtilities.deepActiveElement(document),
781
+ UI.DOMUtilities.deepActiveElement(document),
782
782
  );
783
783
  if (!searchableView) {
784
784
  const currentPanel = (UI.InspectorView.InspectorView.instance().currentPanelDeprecated() as UI.Panel.Panel);
@@ -9,8 +9,8 @@ import * as Bindings from '../models/bindings/bindings.js';
9
9
  import * as Workspace from '../models/workspace/workspace.js';
10
10
 
11
11
  export interface CreationOptions {
12
- // Settings things
13
12
  settingsCreationOptions: Common.Settings.SettingsCreationOptions;
13
+ overrideAutoStartModels?: Set<SDK.SDKModel.SDKModelConstructor>;
14
14
  }
15
15
 
16
16
  export class Universe {
@@ -24,7 +24,7 @@ export class Universe {
24
24
  ...options.settingsCreationOptions,
25
25
  });
26
26
 
27
- const targetManager = new SDK.TargetManager.TargetManager();
27
+ const targetManager = new SDK.TargetManager.TargetManager(options.overrideAutoStartModels);
28
28
  this.context.set(SDK.TargetManager.TargetManager, targetManager);
29
29
 
30
30
  const workspace = new Workspace.Workspace.WorkspaceImpl();
@@ -6,6 +6,10 @@
6
6
  // Re-generate with: npm run generate-protocol-resources
7
7
 
8
8
  export const UIStrings = {
9
+ /**
10
+ * @description This warning occurs when the website uses Attribution Reporting.
11
+ */
12
+ AttributionReporting: "Attribution Reporting is deprecated and will be removed. See https://goo.gle/ps-status for details.",
9
13
  /**
10
14
  * @description We show this warning when 1) an 'authorization' header is attached to the request by scripts, 2) there is no 'authorization' in the 'access-control-allow-headers' header in the response, and 3) there is a wildcard symbol ('*') in the 'access-control-allow-header' header in the response. This is allowed now, but we're planning to reject such responses and require responses to have an 'access-control-allow-headers' containing 'authorization'.
11
15
  */
@@ -54,6 +58,10 @@ export const UIStrings = {
54
58
  * @description Warning displayed to developers when a data: URL is assigned to SVGUseElement to let them know that the support is deprecated.
55
59
  */
56
60
  DataUrlInSvgUse: "Support for data: URLs in SVGUseElement is deprecated and it will be removed in the future.",
61
+ /**
62
+ * @description A deprecation warning shown in the DevTools Issues tab. It's shown when one of the Protected Audience APIs like `navigator.joinAdInterestGroup`, `navigator.getInterestGroupAdAuctionData` or `navigator.runAdAuction` are called.
63
+ */
64
+ Fledge: "The Protected Audience API is deprecated and will be removed in a future release.",
57
65
  /**
58
66
  * @description Warning displayed to developers when the Geolocation API is used from an insecure origin (one that isn't localhost or doesn't use HTTPS) to notify them that this use is no longer supported.
59
67
  */
@@ -234,6 +242,9 @@ export interface DeprecationDescriptor {
234
242
  }
235
243
 
236
244
  export const DEPRECATIONS_METADATA: Partial<Record<string, DeprecationDescriptor>> = {
245
+ "AttributionReporting": {
246
+ "chromeStatusFeature": 6320639375966208
247
+ },
237
248
  "AuthorizationCoveredByWildcard": {
238
249
  "milestone": 97
239
250
  },
@@ -81,7 +81,7 @@ inspectorBackend.registerEnum("Audits.AttributionReportingIssueType", {Permissio
81
81
  inspectorBackend.registerEnum("Audits.SharedDictionaryError", {UseErrorCrossOriginNoCorsRequest: "UseErrorCrossOriginNoCorsRequest", UseErrorDictionaryLoadFailure: "UseErrorDictionaryLoadFailure", UseErrorMatchingDictionaryNotUsed: "UseErrorMatchingDictionaryNotUsed", UseErrorUnexpectedContentDictionaryHeader: "UseErrorUnexpectedContentDictionaryHeader", WriteErrorCossOriginNoCorsRequest: "WriteErrorCossOriginNoCorsRequest", WriteErrorDisallowedBySettings: "WriteErrorDisallowedBySettings", WriteErrorExpiredResponse: "WriteErrorExpiredResponse", WriteErrorFeatureDisabled: "WriteErrorFeatureDisabled", WriteErrorInsufficientResources: "WriteErrorInsufficientResources", WriteErrorInvalidMatchField: "WriteErrorInvalidMatchField", WriteErrorInvalidStructuredHeader: "WriteErrorInvalidStructuredHeader", WriteErrorInvalidTTLField: "WriteErrorInvalidTTLField", WriteErrorNavigationRequest: "WriteErrorNavigationRequest", WriteErrorNoMatchField: "WriteErrorNoMatchField", WriteErrorNonIntegerTTLField: "WriteErrorNonIntegerTTLField", WriteErrorNonListMatchDestField: "WriteErrorNonListMatchDestField", WriteErrorNonSecureContext: "WriteErrorNonSecureContext", WriteErrorNonStringIdField: "WriteErrorNonStringIdField", WriteErrorNonStringInMatchDestList: "WriteErrorNonStringInMatchDestList", WriteErrorNonStringMatchField: "WriteErrorNonStringMatchField", WriteErrorNonTokenTypeField: "WriteErrorNonTokenTypeField", WriteErrorRequestAborted: "WriteErrorRequestAborted", WriteErrorShuttingDown: "WriteErrorShuttingDown", WriteErrorTooLongIdField: "WriteErrorTooLongIdField", WriteErrorUnsupportedType: "WriteErrorUnsupportedType"});
82
82
  inspectorBackend.registerEnum("Audits.SRIMessageSignatureError", {MissingSignatureHeader: "MissingSignatureHeader", MissingSignatureInputHeader: "MissingSignatureInputHeader", InvalidSignatureHeader: "InvalidSignatureHeader", InvalidSignatureInputHeader: "InvalidSignatureInputHeader", SignatureHeaderValueIsNotByteSequence: "SignatureHeaderValueIsNotByteSequence", SignatureHeaderValueIsParameterized: "SignatureHeaderValueIsParameterized", SignatureHeaderValueIsIncorrectLength: "SignatureHeaderValueIsIncorrectLength", SignatureInputHeaderMissingLabel: "SignatureInputHeaderMissingLabel", SignatureInputHeaderValueNotInnerList: "SignatureInputHeaderValueNotInnerList", SignatureInputHeaderValueMissingComponents: "SignatureInputHeaderValueMissingComponents", SignatureInputHeaderInvalidComponentType: "SignatureInputHeaderInvalidComponentType", SignatureInputHeaderInvalidComponentName: "SignatureInputHeaderInvalidComponentName", SignatureInputHeaderInvalidHeaderComponentParameter: "SignatureInputHeaderInvalidHeaderComponentParameter", SignatureInputHeaderInvalidDerivedComponentParameter: "SignatureInputHeaderInvalidDerivedComponentParameter", SignatureInputHeaderKeyIdLength: "SignatureInputHeaderKeyIdLength", SignatureInputHeaderInvalidParameter: "SignatureInputHeaderInvalidParameter", SignatureInputHeaderMissingRequiredParameters: "SignatureInputHeaderMissingRequiredParameters", ValidationFailedSignatureExpired: "ValidationFailedSignatureExpired", ValidationFailedInvalidLength: "ValidationFailedInvalidLength", ValidationFailedSignatureMismatch: "ValidationFailedSignatureMismatch", ValidationFailedIntegrityMismatch: "ValidationFailedIntegrityMismatch"});
83
83
  inspectorBackend.registerEnum("Audits.UnencodedDigestError", {MalformedDictionary: "MalformedDictionary", UnknownAlgorithm: "UnknownAlgorithm", IncorrectDigestType: "IncorrectDigestType", IncorrectDigestLength: "IncorrectDigestLength"});
84
- inspectorBackend.registerEnum("Audits.GenericIssueErrorType", {FormLabelForNameError: "FormLabelForNameError", FormDuplicateIdForInputError: "FormDuplicateIdForInputError", FormInputWithNoLabelError: "FormInputWithNoLabelError", FormAutocompleteAttributeEmptyError: "FormAutocompleteAttributeEmptyError", FormEmptyIdAndNameAttributesForInputError: "FormEmptyIdAndNameAttributesForInputError", FormAriaLabelledByToNonExistingId: "FormAriaLabelledByToNonExistingId", FormInputAssignedAutocompleteValueToIdOrNameAttributeError: "FormInputAssignedAutocompleteValueToIdOrNameAttributeError", FormLabelHasNeitherForNorNestedInput: "FormLabelHasNeitherForNorNestedInput", FormLabelForMatchesNonExistingIdError: "FormLabelForMatchesNonExistingIdError", FormInputHasWrongButWellIntendedAutocompleteValueError: "FormInputHasWrongButWellIntendedAutocompleteValueError", ResponseWasBlockedByORB: "ResponseWasBlockedByORB"});
84
+ inspectorBackend.registerEnum("Audits.GenericIssueErrorType", {FormLabelForNameError: "FormLabelForNameError", FormDuplicateIdForInputError: "FormDuplicateIdForInputError", FormInputWithNoLabelError: "FormInputWithNoLabelError", FormAutocompleteAttributeEmptyError: "FormAutocompleteAttributeEmptyError", FormEmptyIdAndNameAttributesForInputError: "FormEmptyIdAndNameAttributesForInputError", FormAriaLabelledByToNonExistingIdError: "FormAriaLabelledByToNonExistingIdError", FormInputAssignedAutocompleteValueToIdOrNameAttributeError: "FormInputAssignedAutocompleteValueToIdOrNameAttributeError", FormLabelHasNeitherForNorNestedInputError: "FormLabelHasNeitherForNorNestedInputError", FormLabelForMatchesNonExistingIdError: "FormLabelForMatchesNonExistingIdError", FormInputHasWrongButWellIntendedAutocompleteValueError: "FormInputHasWrongButWellIntendedAutocompleteValueError", ResponseWasBlockedByORB: "ResponseWasBlockedByORB", NavigationEntryMarkedSkippable: "NavigationEntryMarkedSkippable"});
85
85
  inspectorBackend.registerEnum("Audits.ClientHintIssueReason", {MetaTagAllowListInvalidOrigin: "MetaTagAllowListInvalidOrigin", MetaTagModifiedHTML: "MetaTagModifiedHTML"});
86
86
  inspectorBackend.registerEnum("Audits.FederatedAuthRequestIssueReason", {ShouldEmbargo: "ShouldEmbargo", TooManyRequests: "TooManyRequests", WellKnownHttpNotFound: "WellKnownHttpNotFound", WellKnownNoResponse: "WellKnownNoResponse", WellKnownInvalidResponse: "WellKnownInvalidResponse", WellKnownListEmpty: "WellKnownListEmpty", WellKnownInvalidContentType: "WellKnownInvalidContentType", ConfigNotInWellKnown: "ConfigNotInWellKnown", WellKnownTooBig: "WellKnownTooBig", ConfigHttpNotFound: "ConfigHttpNotFound", ConfigNoResponse: "ConfigNoResponse", ConfigInvalidResponse: "ConfigInvalidResponse", ConfigInvalidContentType: "ConfigInvalidContentType", ClientMetadataHttpNotFound: "ClientMetadataHttpNotFound", ClientMetadataNoResponse: "ClientMetadataNoResponse", ClientMetadataInvalidResponse: "ClientMetadataInvalidResponse", ClientMetadataInvalidContentType: "ClientMetadataInvalidContentType", IdpNotPotentiallyTrustworthy: "IdpNotPotentiallyTrustworthy", DisabledInSettings: "DisabledInSettings", DisabledInFlags: "DisabledInFlags", ErrorFetchingSignin: "ErrorFetchingSignin", InvalidSigninResponse: "InvalidSigninResponse", AccountsHttpNotFound: "AccountsHttpNotFound", AccountsNoResponse: "AccountsNoResponse", AccountsInvalidResponse: "AccountsInvalidResponse", AccountsListEmpty: "AccountsListEmpty", AccountsInvalidContentType: "AccountsInvalidContentType", IdTokenHttpNotFound: "IdTokenHttpNotFound", IdTokenNoResponse: "IdTokenNoResponse", IdTokenInvalidResponse: "IdTokenInvalidResponse", IdTokenIdpErrorResponse: "IdTokenIdpErrorResponse", IdTokenCrossSiteIdpErrorResponse: "IdTokenCrossSiteIdpErrorResponse", IdTokenInvalidRequest: "IdTokenInvalidRequest", IdTokenInvalidContentType: "IdTokenInvalidContentType", ErrorIdToken: "ErrorIdToken", Canceled: "Canceled", RpPageNotVisible: "RpPageNotVisible", SilentMediationFailure: "SilentMediationFailure", ThirdPartyCookiesBlocked: "ThirdPartyCookiesBlocked", NotSignedInWithIdp: "NotSignedInWithIdp", MissingTransientUserActivation: "MissingTransientUserActivation", ReplacedByActiveMode: "ReplacedByActiveMode", InvalidFieldsSpecified: "InvalidFieldsSpecified", RelyingPartyOriginIsOpaque: "RelyingPartyOriginIsOpaque", TypeNotMatching: "TypeNotMatching", UiDismissedNoEmbargo: "UiDismissedNoEmbargo", CorsError: "CorsError", SuppressedBySegmentationPlatform: "SuppressedBySegmentationPlatform"});
87
87
  inspectorBackend.registerEnum("Audits.FederatedAuthUserInfoRequestIssueReason", {NotSameOrigin: "NotSameOrigin", NotIframe: "NotIframe", NotPotentiallyTrustworthy: "NotPotentiallyTrustworthy", NoAPIPermission: "NoApiPermission", NotSignedInWithIdp: "NotSignedInWithIdp", NoAccountSharingPermission: "NoAccountSharingPermission", InvalidConfigOrWellKnown: "InvalidConfigOrWellKnown", InvalidAccountsResponse: "InvalidAccountsResponse", NoReturningUserFromFetchedAccounts: "NoReturningUserFromFetchedAccounts"});
@@ -763,7 +763,6 @@ inspectorBackend.registerEnum("Network.ResourcePriority", {VeryLow: "VeryLow", L
763
763
  inspectorBackend.registerEnum("Network.RequestReferrerPolicy", {UnsafeUrl: "unsafe-url", NoReferrerWhenDowngrade: "no-referrer-when-downgrade", NoReferrer: "no-referrer", Origin: "origin", OriginWhenCrossOrigin: "origin-when-cross-origin", SameOrigin: "same-origin", StrictOrigin: "strict-origin", StrictOriginWhenCrossOrigin: "strict-origin-when-cross-origin"});
764
764
  inspectorBackend.registerEnum("Network.CertificateTransparencyCompliance", {Unknown: "unknown", NotCompliant: "not-compliant", Compliant: "compliant"});
765
765
  inspectorBackend.registerEnum("Network.BlockedReason", {Other: "other", Csp: "csp", MixedContent: "mixed-content", Origin: "origin", Inspector: "inspector", Integrity: "integrity", SubresourceFilter: "subresource-filter", ContentType: "content-type", CoepFrameResourceNeedsCoepHeader: "coep-frame-resource-needs-coep-header", CoopSandboxedIframeCannotNavigateToCoopPage: "coop-sandboxed-iframe-cannot-navigate-to-coop-page", CorpNotSameOrigin: "corp-not-same-origin", CorpNotSameOriginAfterDefaultedToSameOriginByCoep: "corp-not-same-origin-after-defaulted-to-same-origin-by-coep", CorpNotSameOriginAfterDefaultedToSameOriginByDip: "corp-not-same-origin-after-defaulted-to-same-origin-by-dip", CorpNotSameOriginAfterDefaultedToSameOriginByCoepAndDip: "corp-not-same-origin-after-defaulted-to-same-origin-by-coep-and-dip", CorpNotSameSite: "corp-not-same-site", SriMessageSignatureMismatch: "sri-message-signature-mismatch"});
766
- inspectorBackend.registerEnum("Network.IpProxyStatus", {Available: "Available", FeatureNotEnabled: "FeatureNotEnabled", MaskedDomainListNotEnabled: "MaskedDomainListNotEnabled", MaskedDomainListNotPopulated: "MaskedDomainListNotPopulated", AuthTokensUnavailable: "AuthTokensUnavailable", Unavailable: "Unavailable", BypassedByDevTools: "BypassedByDevTools"});
767
766
  inspectorBackend.registerEnum("Network.CorsError", {DisallowedByMode: "DisallowedByMode", InvalidResponse: "InvalidResponse", WildcardOriginNotAllowed: "WildcardOriginNotAllowed", MissingAllowOriginHeader: "MissingAllowOriginHeader", MultipleAllowOriginValues: "MultipleAllowOriginValues", InvalidAllowOriginValue: "InvalidAllowOriginValue", AllowOriginMismatch: "AllowOriginMismatch", InvalidAllowCredentials: "InvalidAllowCredentials", CorsDisabledScheme: "CorsDisabledScheme", PreflightInvalidStatus: "PreflightInvalidStatus", PreflightDisallowedRedirect: "PreflightDisallowedRedirect", PreflightWildcardOriginNotAllowed: "PreflightWildcardOriginNotAllowed", PreflightMissingAllowOriginHeader: "PreflightMissingAllowOriginHeader", PreflightMultipleAllowOriginValues: "PreflightMultipleAllowOriginValues", PreflightInvalidAllowOriginValue: "PreflightInvalidAllowOriginValue", PreflightAllowOriginMismatch: "PreflightAllowOriginMismatch", PreflightInvalidAllowCredentials: "PreflightInvalidAllowCredentials", PreflightMissingAllowExternal: "PreflightMissingAllowExternal", PreflightInvalidAllowExternal: "PreflightInvalidAllowExternal", PreflightMissingAllowPrivateNetwork: "PreflightMissingAllowPrivateNetwork", PreflightInvalidAllowPrivateNetwork: "PreflightInvalidAllowPrivateNetwork", InvalidAllowMethodsPreflightResponse: "InvalidAllowMethodsPreflightResponse", InvalidAllowHeadersPreflightResponse: "InvalidAllowHeadersPreflightResponse", MethodDisallowedByPreflightResponse: "MethodDisallowedByPreflightResponse", HeaderDisallowedByPreflightResponse: "HeaderDisallowedByPreflightResponse", RedirectContainsCredentials: "RedirectContainsCredentials", InsecurePrivateNetwork: "InsecurePrivateNetwork", InvalidPrivateNetworkAccess: "InvalidPrivateNetworkAccess", UnexpectedPrivateNetworkAccess: "UnexpectedPrivateNetworkAccess", NoCorsRedirectModeNotFollow: "NoCorsRedirectModeNotFollow", PreflightMissingPrivateNetworkAccessId: "PreflightMissingPrivateNetworkAccessId", PreflightMissingPrivateNetworkAccessName: "PreflightMissingPrivateNetworkAccessName", PrivateNetworkAccessPermissionUnavailable: "PrivateNetworkAccessPermissionUnavailable", PrivateNetworkAccessPermissionDenied: "PrivateNetworkAccessPermissionDenied", LocalNetworkAccessPermissionDenied: "LocalNetworkAccessPermissionDenied"});
768
767
  inspectorBackend.registerEnum("Network.ServiceWorkerResponseSource", {CacheStorage: "cache-storage", HttpCache: "http-cache", FallbackCode: "fallback-code", Network: "network"});
769
768
  inspectorBackend.registerEnum("Network.TrustTokenParamsRefreshPolicy", {UseCached: "UseCached", Refresh: "Refresh"});
@@ -827,8 +826,6 @@ inspectorBackend.registerEvent("Network.policyUpdated", []);
827
826
  inspectorBackend.registerEvent("Network.reportingApiReportAdded", ["report"]);
828
827
  inspectorBackend.registerEvent("Network.reportingApiReportUpdated", ["report"]);
829
828
  inspectorBackend.registerEvent("Network.reportingApiEndpointsChangedForOrigin", ["origin", "endpoints"]);
830
- inspectorBackend.registerCommand("Network.getIPProtectionProxyStatus", [], ["status"], "Returns enum representing if IP Proxy of requests is available or reason it is not active.");
831
- inspectorBackend.registerCommand("Network.setIPProtectionProxyBypassEnabled", [{"name": "enabled", "type": "boolean", "optional": false, "description": "Whether IP Proxy is being bypassed by devtools; false by default.", "typeRef": null}], [], "Sets bypass IP Protection Proxy boolean.");
832
829
  inspectorBackend.registerCommand("Network.setAcceptedEncodings", [{"name": "encodings", "type": "array", "optional": false, "description": "List of accepted content encodings.", "typeRef": "Network.ContentEncoding"}], [], "Sets a list of content encodings that will be accepted. Empty list means no encoding is accepted.");
833
830
  inspectorBackend.registerCommand("Network.clearAcceptedEncodingsOverride", [], [], "Clears accepted encodings set by setAcceptedEncodings");
834
831
  inspectorBackend.registerCommand("Network.canClearBrowserCache", [], ["result"], "Tells whether clearing browser cache is supported.");
@@ -874,7 +871,7 @@ inspectorBackend.registerType("Network.SecurityDetails", [{"name": "protocol", "
874
871
  inspectorBackend.registerType("Network.CorsErrorStatus", [{"name": "corsError", "type": "string", "optional": false, "description": "", "typeRef": "Network.CorsError"}, {"name": "failedParameter", "type": "string", "optional": false, "description": "", "typeRef": null}]);
875
872
  inspectorBackend.registerType("Network.TrustTokenParams", [{"name": "operation", "type": "string", "optional": false, "description": "", "typeRef": "Network.TrustTokenOperationType"}, {"name": "refreshPolicy", "type": "string", "optional": false, "description": "Only set for \\\"token-redemption\\\" operation and determine whether to request a fresh SRR or use a still valid cached SRR.", "typeRef": null}, {"name": "issuers", "type": "array", "optional": true, "description": "Origins of issuers from whom to request tokens or redemption records.", "typeRef": "string"}]);
876
873
  inspectorBackend.registerType("Network.ServiceWorkerRouterInfo", [{"name": "ruleIdMatched", "type": "number", "optional": true, "description": "ID of the rule matched. If there is a matched rule, this field will be set, otherwiser no value will be set.", "typeRef": null}, {"name": "matchedSourceType", "type": "string", "optional": true, "description": "The router source of the matched rule. If there is a matched rule, this field will be set, otherwise no value will be set.", "typeRef": "Network.ServiceWorkerRouterSource"}, {"name": "actualSourceType", "type": "string", "optional": true, "description": "The actual router source used.", "typeRef": "Network.ServiceWorkerRouterSource"}]);
877
- inspectorBackend.registerType("Network.Response", [{"name": "url", "type": "string", "optional": false, "description": "Response URL. This URL can be different from CachedResource.url in case of redirect.", "typeRef": null}, {"name": "status", "type": "number", "optional": false, "description": "HTTP response status code.", "typeRef": null}, {"name": "statusText", "type": "string", "optional": false, "description": "HTTP response status text.", "typeRef": null}, {"name": "headers", "type": "object", "optional": false, "description": "HTTP response headers.", "typeRef": "Network.Headers"}, {"name": "headersText", "type": "string", "optional": true, "description": "HTTP response headers text. This has been replaced by the headers in Network.responseReceivedExtraInfo.", "typeRef": null}, {"name": "mimeType", "type": "string", "optional": false, "description": "Resource mimeType as determined by the browser.", "typeRef": null}, {"name": "charset", "type": "string", "optional": false, "description": "Resource charset as determined by the browser (if applicable).", "typeRef": null}, {"name": "requestHeaders", "type": "object", "optional": true, "description": "Refined HTTP request headers that were actually transmitted over the network.", "typeRef": "Network.Headers"}, {"name": "requestHeadersText", "type": "string", "optional": true, "description": "HTTP request headers text. This has been replaced by the headers in Network.requestWillBeSentExtraInfo.", "typeRef": null}, {"name": "connectionReused", "type": "boolean", "optional": false, "description": "Specifies whether physical connection was actually reused for this request.", "typeRef": null}, {"name": "connectionId", "type": "number", "optional": false, "description": "Physical connection id that was actually used for this request.", "typeRef": null}, {"name": "remoteIPAddress", "type": "string", "optional": true, "description": "Remote IP address.", "typeRef": null}, {"name": "remotePort", "type": "number", "optional": true, "description": "Remote port.", "typeRef": null}, {"name": "fromDiskCache", "type": "boolean", "optional": true, "description": "Specifies that the request was served from the disk cache.", "typeRef": null}, {"name": "fromServiceWorker", "type": "boolean", "optional": true, "description": "Specifies that the request was served from the ServiceWorker.", "typeRef": null}, {"name": "fromPrefetchCache", "type": "boolean", "optional": true, "description": "Specifies that the request was served from the prefetch cache.", "typeRef": null}, {"name": "fromEarlyHints", "type": "boolean", "optional": true, "description": "Specifies that the request was served from the prefetch cache.", "typeRef": null}, {"name": "serviceWorkerRouterInfo", "type": "object", "optional": true, "description": "Information about how ServiceWorker Static Router API was used. If this field is set with `matchedSourceType` field, a matching rule is found. If this field is set without `matchedSource`, no matching rule is found. Otherwise, the API is not used.", "typeRef": "Network.ServiceWorkerRouterInfo"}, {"name": "encodedDataLength", "type": "number", "optional": false, "description": "Total number of bytes received for this request so far.", "typeRef": null}, {"name": "timing", "type": "object", "optional": true, "description": "Timing information for the given request.", "typeRef": "Network.ResourceTiming"}, {"name": "serviceWorkerResponseSource", "type": "string", "optional": true, "description": "Response source of response from ServiceWorker.", "typeRef": "Network.ServiceWorkerResponseSource"}, {"name": "responseTime", "type": "number", "optional": true, "description": "The time at which the returned response was generated.", "typeRef": "Network.TimeSinceEpoch"}, {"name": "cacheStorageCacheName", "type": "string", "optional": true, "description": "Cache Storage Cache Name.", "typeRef": null}, {"name": "protocol", "type": "string", "optional": true, "description": "Protocol used to fetch this request.", "typeRef": null}, {"name": "alternateProtocolUsage", "type": "string", "optional": true, "description": "The reason why Chrome uses a specific transport protocol for HTTP semantics.", "typeRef": "Network.AlternateProtocolUsage"}, {"name": "securityState", "type": "string", "optional": false, "description": "Security state of the request resource.", "typeRef": "Security.SecurityState"}, {"name": "securityDetails", "type": "object", "optional": true, "description": "Security details for the request.", "typeRef": "Network.SecurityDetails"}, {"name": "isIpProtectionUsed", "type": "boolean", "optional": true, "description": "Indicates whether the request was sent through IP Protection proxies. If set to true, the request used the IP Protection privacy feature.", "typeRef": null}]);
874
+ inspectorBackend.registerType("Network.Response", [{"name": "url", "type": "string", "optional": false, "description": "Response URL. This URL can be different from CachedResource.url in case of redirect.", "typeRef": null}, {"name": "status", "type": "number", "optional": false, "description": "HTTP response status code.", "typeRef": null}, {"name": "statusText", "type": "string", "optional": false, "description": "HTTP response status text.", "typeRef": null}, {"name": "headers", "type": "object", "optional": false, "description": "HTTP response headers.", "typeRef": "Network.Headers"}, {"name": "headersText", "type": "string", "optional": true, "description": "HTTP response headers text. This has been replaced by the headers in Network.responseReceivedExtraInfo.", "typeRef": null}, {"name": "mimeType", "type": "string", "optional": false, "description": "Resource mimeType as determined by the browser.", "typeRef": null}, {"name": "charset", "type": "string", "optional": false, "description": "Resource charset as determined by the browser (if applicable).", "typeRef": null}, {"name": "requestHeaders", "type": "object", "optional": true, "description": "Refined HTTP request headers that were actually transmitted over the network.", "typeRef": "Network.Headers"}, {"name": "requestHeadersText", "type": "string", "optional": true, "description": "HTTP request headers text. This has been replaced by the headers in Network.requestWillBeSentExtraInfo.", "typeRef": null}, {"name": "connectionReused", "type": "boolean", "optional": false, "description": "Specifies whether physical connection was actually reused for this request.", "typeRef": null}, {"name": "connectionId", "type": "number", "optional": false, "description": "Physical connection id that was actually used for this request.", "typeRef": null}, {"name": "remoteIPAddress", "type": "string", "optional": true, "description": "Remote IP address.", "typeRef": null}, {"name": "remotePort", "type": "number", "optional": true, "description": "Remote port.", "typeRef": null}, {"name": "fromDiskCache", "type": "boolean", "optional": true, "description": "Specifies that the request was served from the disk cache.", "typeRef": null}, {"name": "fromServiceWorker", "type": "boolean", "optional": true, "description": "Specifies that the request was served from the ServiceWorker.", "typeRef": null}, {"name": "fromPrefetchCache", "type": "boolean", "optional": true, "description": "Specifies that the request was served from the prefetch cache.", "typeRef": null}, {"name": "fromEarlyHints", "type": "boolean", "optional": true, "description": "Specifies that the request was served from the prefetch cache.", "typeRef": null}, {"name": "serviceWorkerRouterInfo", "type": "object", "optional": true, "description": "Information about how ServiceWorker Static Router API was used. If this field is set with `matchedSourceType` field, a matching rule is found. If this field is set without `matchedSource`, no matching rule is found. Otherwise, the API is not used.", "typeRef": "Network.ServiceWorkerRouterInfo"}, {"name": "encodedDataLength", "type": "number", "optional": false, "description": "Total number of bytes received for this request so far.", "typeRef": null}, {"name": "timing", "type": "object", "optional": true, "description": "Timing information for the given request.", "typeRef": "Network.ResourceTiming"}, {"name": "serviceWorkerResponseSource", "type": "string", "optional": true, "description": "Response source of response from ServiceWorker.", "typeRef": "Network.ServiceWorkerResponseSource"}, {"name": "responseTime", "type": "number", "optional": true, "description": "The time at which the returned response was generated.", "typeRef": "Network.TimeSinceEpoch"}, {"name": "cacheStorageCacheName", "type": "string", "optional": true, "description": "Cache Storage Cache Name.", "typeRef": null}, {"name": "protocol", "type": "string", "optional": true, "description": "Protocol used to fetch this request.", "typeRef": null}, {"name": "alternateProtocolUsage", "type": "string", "optional": true, "description": "The reason why Chrome uses a specific transport protocol for HTTP semantics.", "typeRef": "Network.AlternateProtocolUsage"}, {"name": "securityState", "type": "string", "optional": false, "description": "Security state of the request resource.", "typeRef": "Security.SecurityState"}, {"name": "securityDetails", "type": "object", "optional": true, "description": "Security details for the request.", "typeRef": "Network.SecurityDetails"}]);
878
875
  inspectorBackend.registerType("Network.WebSocketRequest", [{"name": "headers", "type": "object", "optional": false, "description": "HTTP request headers.", "typeRef": "Network.Headers"}]);
879
876
  inspectorBackend.registerType("Network.WebSocketResponse", [{"name": "status", "type": "number", "optional": false, "description": "HTTP response status code.", "typeRef": null}, {"name": "statusText", "type": "string", "optional": false, "description": "HTTP response status text.", "typeRef": null}, {"name": "headers", "type": "object", "optional": false, "description": "HTTP response headers.", "typeRef": "Network.Headers"}, {"name": "headersText", "type": "string", "optional": true, "description": "HTTP response headers text.", "typeRef": null}, {"name": "requestHeaders", "type": "object", "optional": true, "description": "HTTP request headers.", "typeRef": "Network.Headers"}, {"name": "requestHeadersText", "type": "string", "optional": true, "description": "HTTP request headers text.", "typeRef": null}]);
880
877
  inspectorBackend.registerType("Network.WebSocketFrame", [{"name": "opcode", "type": "number", "optional": false, "description": "WebSocket message opcode.", "typeRef": null}, {"name": "mask", "type": "boolean", "optional": false, "description": "WebSocket message mask.", "typeRef": null}, {"name": "payloadData", "type": "string", "optional": false, "description": "WebSocket message payload data. If the opcode is 1, this is a text message and payloadData is a UTF-8 string. If the opcode isn't 1, then payloadData is a base64 encoded string representing binary data.", "typeRef": null}]);
@@ -1354,7 +1351,7 @@ inspectorBackend.registerCommand("Target.setAutoAttach", [{"name": "autoAttach",
1354
1351
  inspectorBackend.registerCommand("Target.autoAttachRelated", [{"name": "targetId", "type": "string", "optional": false, "description": "", "typeRef": "Target.TargetID"}, {"name": "waitForDebuggerOnStart", "type": "boolean", "optional": false, "description": "Whether to pause new targets when attaching to them. Use `Runtime.runIfWaitingForDebugger` to run paused targets.", "typeRef": null}, {"name": "filter", "type": "array", "optional": true, "description": "Only targets matching filter will be attached.", "typeRef": "Target.TargetFilter"}], [], "Adds the specified target to the list of targets that will be monitored for any related target creation (such as child frames, child workers and new versions of service worker) and reported through `attachedToTarget`. The specified target is also auto-attached. This cancels the effect of any previous `setAutoAttach` and is also cancelled by subsequent `setAutoAttach`. Only available at the Browser target.");
1355
1352
  inspectorBackend.registerCommand("Target.setDiscoverTargets", [{"name": "discover", "type": "boolean", "optional": false, "description": "Whether to discover available targets.", "typeRef": null}, {"name": "filter", "type": "array", "optional": true, "description": "Only targets matching filter will be attached. If `discover` is false, `filter` must be omitted or empty.", "typeRef": "Target.TargetFilter"}], [], "Controls whether to discover available targets and notify via `targetCreated/targetInfoChanged/targetDestroyed` events.");
1356
1353
  inspectorBackend.registerCommand("Target.setRemoteLocations", [{"name": "locations", "type": "array", "optional": false, "description": "List of remote locations.", "typeRef": "Target.RemoteLocation"}], [], "Enables target discovery for the specified locations, when `setDiscoverTargets` was set to `true`.");
1357
- inspectorBackend.registerCommand("Target.openDevTools", [{"name": "targetId", "type": "string", "optional": false, "description": "This can be the page or tab target ID.", "typeRef": "Target.TargetID"}, {"name": "panelId", "type": "string", "optional": true, "description": "The id of the panel we want DevTools to open initially. Currently supported panels are elements, console, network, sources and resources.", "typeRef": null}], ["targetId"], "Opens a DevTools window for the target.");
1354
+ inspectorBackend.registerCommand("Target.openDevTools", [{"name": "targetId", "type": "string", "optional": false, "description": "This can be the page or tab target ID.", "typeRef": "Target.TargetID"}, {"name": "panelId", "type": "string", "optional": true, "description": "The id of the panel we want DevTools to open initially. Currently supported panels are elements, console, network, sources, resources and performance.", "typeRef": null}], ["targetId"], "Opens a DevTools window for the target.");
1358
1355
  inspectorBackend.registerType("Target.TargetInfo", [{"name": "targetId", "type": "string", "optional": false, "description": "", "typeRef": "Target.TargetID"}, {"name": "type", "type": "string", "optional": false, "description": "List of types: https://source.chromium.org/chromium/chromium/src/+/main:content/browser/devtools/devtools_agent_host_impl.cc?ss=chromium&q=f:devtools%20-f:out%20%22::kTypeTab%5B%5D%22", "typeRef": null}, {"name": "title", "type": "string", "optional": false, "description": "", "typeRef": null}, {"name": "url", "type": "string", "optional": false, "description": "", "typeRef": null}, {"name": "attached", "type": "boolean", "optional": false, "description": "Whether the target has an attached client.", "typeRef": null}, {"name": "openerId", "type": "string", "optional": true, "description": "Opener target Id", "typeRef": "Target.TargetID"}, {"name": "canAccessOpener", "type": "boolean", "optional": false, "description": "Whether the target has access to the originating window.", "typeRef": null}, {"name": "openerFrameId", "type": "string", "optional": true, "description": "Frame id of originating window (is only set if target has an opener).", "typeRef": "Page.FrameId"}, {"name": "parentFrameId", "type": "string", "optional": true, "description": "Id of the parent frame, only present for the \\\"iframe\\\" targets.", "typeRef": "Page.FrameId"}, {"name": "browserContextId", "type": "string", "optional": true, "description": "", "typeRef": "Browser.BrowserContextID"}, {"name": "subtype", "type": "string", "optional": true, "description": "Provides additional details for specific target types. For example, for the type of \\\"page\\\", this may be set to \\\"prerender\\\".", "typeRef": null}]);
1359
1356
  inspectorBackend.registerType("Target.FilterEntry", [{"name": "exclude", "type": "boolean", "optional": true, "description": "If set, causes exclusion of matching targets from the list.", "typeRef": null}, {"name": "type", "type": "string", "optional": true, "description": "If not present, matches any type.", "typeRef": null}]);
1360
1357
  inspectorBackend.registerType("Target.TargetFilter", [{"name": "TargetFilter", "type": "array", "optional": false, "description": "The entries in TargetFilter are matched sequentially against targets and the first entry that matches determines if the target is included or not, depending on the value of `exclude` field in the entry. If filter is not specified, the one assumed is [{type: \\\"browser\\\", exclude: true}, {type: \\\"tab\\\", exclude: true}, {}] (i.e. include everything but `browser` and `tab`).", "typeRef": "Target.FilterEntry"}]);
@@ -677,10 +677,6 @@ export const generatedProperties = [
677
677
  "scroll-snap-align",
678
678
  "scroll-snap-stop",
679
679
  "scroll-snap-type",
680
- "scroll-start-block",
681
- "scroll-start-inline",
682
- "scroll-start-x",
683
- "scroll-start-y",
684
680
  "scroll-target-group",
685
681
  "scroll-timeline-axis",
686
682
  "scroll-timeline-name",
@@ -3586,7 +3582,8 @@ export const generatedProperties = [
3586
3582
  },
3587
3583
  {
3588
3584
  "keywords": [
3589
- "auto"
3585
+ "auto",
3586
+ "none"
3590
3587
  ],
3591
3588
  "name": "position-anchor"
3592
3589
  },
@@ -4051,25 +4048,6 @@ export const generatedProperties = [
4051
4048
  ],
4052
4049
  "name": "scroll-snap-type"
4053
4050
  },
4054
- {
4055
- "longhands": [
4056
- "scroll-start-block",
4057
- "scroll-start-inline"
4058
- ],
4059
- "name": "scroll-start"
4060
- },
4061
- {
4062
- "name": "scroll-start-block"
4063
- },
4064
- {
4065
- "name": "scroll-start-inline"
4066
- },
4067
- {
4068
- "name": "scroll-start-x"
4069
- },
4070
- {
4071
- "name": "scroll-start-y"
4072
- },
4073
4051
  {
4074
4052
  "keywords": [
4075
4053
  "none",
@@ -6461,7 +6439,8 @@ export const generatedPropertyValues = {
6461
6439
  },
6462
6440
  "position-anchor": {
6463
6441
  "values": [
6464
- "auto"
6442
+ "auto",
6443
+ "none"
6465
6444
  ]
6466
6445
  },
6467
6446
  "position-area": {
@@ -3240,21 +3240,6 @@ export namespace ProtocolMapping {
3240
3240
  paramsType: [];
3241
3241
  returnType: Protocol.Memory.GetSamplingProfileResponse;
3242
3242
  };
3243
- /**
3244
- * Returns enum representing if IP Proxy of requests is available
3245
- * or reason it is not active.
3246
- */
3247
- 'Network.getIPProtectionProxyStatus': {
3248
- paramsType: [];
3249
- returnType: Protocol.Network.GetIPProtectionProxyStatusResponse;
3250
- };
3251
- /**
3252
- * Sets bypass IP Protection Proxy boolean.
3253
- */
3254
- 'Network.setIPProtectionProxyBypassEnabled': {
3255
- paramsType: [Protocol.Network.SetIPProtectionProxyBypassEnabledRequest];
3256
- returnType: void;
3257
- };
3258
3243
  /**
3259
3244
  * Sets a list of content encodings that will be accepted. Empty list means no encoding is accepted.
3260
3245
  */
@@ -2451,17 +2451,6 @@ declare namespace ProtocolProxyApi {
2451
2451
  }
2452
2452
 
2453
2453
  export interface NetworkApi {
2454
- /**
2455
- * Returns enum representing if IP Proxy of requests is available
2456
- * or reason it is not active.
2457
- */
2458
- invoke_getIPProtectionProxyStatus(): Promise<Protocol.Network.GetIPProtectionProxyStatusResponse>;
2459
-
2460
- /**
2461
- * Sets bypass IP Protection Proxy boolean.
2462
- */
2463
- invoke_setIPProtectionProxyBypassEnabled(params: Protocol.Network.SetIPProtectionProxyBypassEnabledRequest): Promise<Protocol.ProtocolResponseWithError>;
2464
-
2465
2454
  /**
2466
2455
  * Sets a list of content encodings that will be accepted. Empty list means no encoding is accepted.
2467
2456
  */
@@ -1187,12 +1187,13 @@ export namespace Audits {
1187
1187
  FormInputWithNoLabelError = 'FormInputWithNoLabelError',
1188
1188
  FormAutocompleteAttributeEmptyError = 'FormAutocompleteAttributeEmptyError',
1189
1189
  FormEmptyIdAndNameAttributesForInputError = 'FormEmptyIdAndNameAttributesForInputError',
1190
- FormAriaLabelledByToNonExistingId = 'FormAriaLabelledByToNonExistingId',
1190
+ FormAriaLabelledByToNonExistingIdError = 'FormAriaLabelledByToNonExistingIdError',
1191
1191
  FormInputAssignedAutocompleteValueToIdOrNameAttributeError = 'FormInputAssignedAutocompleteValueToIdOrNameAttributeError',
1192
- FormLabelHasNeitherForNorNestedInput = 'FormLabelHasNeitherForNorNestedInput',
1192
+ FormLabelHasNeitherForNorNestedInputError = 'FormLabelHasNeitherForNorNestedInputError',
1193
1193
  FormLabelForMatchesNonExistingIdError = 'FormLabelForMatchesNonExistingIdError',
1194
1194
  FormInputHasWrongButWellIntendedAutocompleteValueError = 'FormInputHasWrongButWellIntendedAutocompleteValueError',
1195
1195
  ResponseWasBlockedByORB = 'ResponseWasBlockedByORB',
1196
+ NavigationEntryMarkedSkippable = 'NavigationEntryMarkedSkippable',
1196
1197
  }
1197
1198
 
1198
1199
  /**
@@ -10165,20 +10166,6 @@ export namespace Network {
10165
10166
  SriMessageSignatureMismatch = 'sri-message-signature-mismatch',
10166
10167
  }
10167
10168
 
10168
- /**
10169
- * Sets Controls for IP Proxy of requests.
10170
- * Page reload is required before the new behavior will be observed.
10171
- */
10172
- export const enum IpProxyStatus {
10173
- Available = 'Available',
10174
- FeatureNotEnabled = 'FeatureNotEnabled',
10175
- MaskedDomainListNotEnabled = 'MaskedDomainListNotEnabled',
10176
- MaskedDomainListNotPopulated = 'MaskedDomainListNotPopulated',
10177
- AuthTokensUnavailable = 'AuthTokensUnavailable',
10178
- Unavailable = 'Unavailable',
10179
- BypassedByDevTools = 'BypassedByDevTools',
10180
- }
10181
-
10182
10169
  /**
10183
10170
  * The reason why request was blocked.
10184
10171
  */
@@ -10424,11 +10411,6 @@ export namespace Network {
10424
10411
  * Security details for the request.
10425
10412
  */
10426
10413
  securityDetails?: SecurityDetails;
10427
- /**
10428
- * Indicates whether the request was sent through IP Protection proxies. If
10429
- * set to true, the request used the IP Protection privacy feature.
10430
- */
10431
- isIpProtectionUsed?: boolean;
10432
10414
  }
10433
10415
 
10434
10416
  /**
@@ -11336,20 +11318,6 @@ export namespace Network {
11336
11318
  includeCredentials: boolean;
11337
11319
  }
11338
11320
 
11339
- export interface GetIPProtectionProxyStatusResponse extends ProtocolResponseWithError {
11340
- /**
11341
- * Whether IP proxy is available
11342
- */
11343
- status: IpProxyStatus;
11344
- }
11345
-
11346
- export interface SetIPProtectionProxyBypassEnabledRequest {
11347
- /**
11348
- * Whether IP Proxy is being bypassed by devtools; false by default.
11349
- */
11350
- enabled: boolean;
11351
- }
11352
-
11353
11321
  export interface SetAcceptedEncodingsRequest {
11354
11322
  /**
11355
11323
  * List of accepted content encodings.
@@ -18516,7 +18484,8 @@ export namespace Target {
18516
18484
  targetId: TargetID;
18517
18485
  /**
18518
18486
  * The id of the panel we want DevTools to open initially. Currently
18519
- * supported panels are elements, console, network, sources and resources.
18487
+ * supported panels are elements, console, network, sources, resources
18488
+ * and performance.
18520
18489
  */
18521
18490
  panelId?: string;
18522
18491
  }