chrome-devtools-frontend 1.0.1681498 → 1.0.1682249

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 (141) hide show
  1. package/eslint.config.mjs +8 -3
  2. package/front_end/core/sdk/ConsoleModel.ts +1 -1
  3. package/front_end/core/sdk/PreloadingModel.ts +44 -22
  4. package/front_end/core/sdk/RemoteObject.ts +4 -1
  5. package/front_end/core/sdk/RuntimeModel.ts +5 -5
  6. package/front_end/core/sdk/sdk.ts +2 -0
  7. package/front_end/entrypoints/formatter_worker/FormatterWorker.ts +1 -1
  8. package/front_end/entrypoints/inspector_main/InspectorMain.ts +3 -1
  9. package/front_end/entrypoints/inspector_main/inspector_main-meta.ts +1 -5
  10. package/front_end/entrypoints/main/MainImpl.ts +9 -10
  11. package/front_end/entrypoints/shell/shell.ts +0 -2
  12. package/front_end/entrypoints/trace_app/trace_app.ts +0 -2
  13. package/front_end/generated/InspectorBackendCommands.ts +2 -0
  14. package/front_end/generated/protocol-mapping.d.ts +16 -0
  15. package/front_end/generated/protocol-proxy-api.d.ts +12 -0
  16. package/front_end/generated/protocol.ts +12 -0
  17. package/front_end/models/ai_assistance/ExtensionScope.ts +11 -12
  18. package/front_end/models/ai_assistance/agents/AiAgent.ts +1 -1
  19. package/front_end/models/ai_assistance/agents/ContextSelectionAgent.ts +2 -1
  20. package/front_end/models/ai_assistance/agents/PerformanceAgent.snapshot.txt +1 -1
  21. package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +2 -1
  22. package/front_end/models/ai_assistance/contexts/PerformanceTraceContext.ts +2 -1
  23. package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.snapshot.txt +8 -8
  24. package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.snapshot.txt +8 -8
  25. package/front_end/models/bindings/DebuggerLanguagePlugins.ts +1 -0
  26. package/front_end/models/formatter/ScriptFormatter.ts +1 -0
  27. package/front_end/models/javascript_metadata/NativeFunctions.js +5 -1
  28. package/front_end/models/live-metrics/web-vitals-injected/spec/spec.ts +4 -4
  29. package/front_end/models/logs/NetworkLog.ts +8 -1
  30. package/front_end/models/persistence/AutomaticFileSystemWorkspaceBinding.ts +4 -2
  31. package/front_end/models/stack_trace/StackTraceImpl.ts +1 -0
  32. package/front_end/models/trace/Name.ts +5 -5
  33. package/front_end/models/trace/Styles.ts +115 -115
  34. package/front_end/models/trace/extras/TraceTree.ts +2 -1
  35. package/front_end/models/trace/helpers/Network.ts +4 -1
  36. package/front_end/models/trace/insights/CLSCulprits.ts +4 -2
  37. package/front_end/models/trace/insights/CharacterSet.ts +3 -3
  38. package/front_end/models/trace/insights/DOMSize.ts +1 -1
  39. package/front_end/models/trace/insights/DuplicatedJavaScript.ts +6 -2
  40. package/front_end/models/trace/insights/FontDisplay.ts +9 -3
  41. package/front_end/models/trace/insights/ForcedReflow.ts +4 -4
  42. package/front_end/models/trace/insights/INPBreakdown.ts +3 -4
  43. package/front_end/models/trace/insights/ImageDelivery.ts +2 -2
  44. package/front_end/models/trace/insights/LCPBreakdown.ts +1 -1
  45. package/front_end/models/trace/insights/LCPDiscovery.ts +5 -5
  46. package/front_end/models/trace/insights/LegacyJavaScript.ts +7 -3
  47. package/front_end/models/trace/insights/ModernHTTP.ts +3 -3
  48. package/front_end/models/trace/insights/NetworkDependencyTree.ts +13 -9
  49. package/front_end/models/trace/insights/RenderBlocking.ts +1 -1
  50. package/front_end/models/trace/insights/SlowCSSSelector.ts +29 -25
  51. package/front_end/models/trace/insights/ThirdParties.ts +13 -5
  52. package/front_end/models/trace/insights/Viewport.ts +4 -2
  53. package/front_end/models/workspace/IgnoreListManager.ts +53 -17
  54. package/front_end/panels/accessibility/ARIAAttributesView.ts +11 -2
  55. package/front_end/panels/ai_assistance/components/ChatMessage.ts +67 -53
  56. package/front_end/panels/ai_assistance/components/ChatView.ts +2 -2
  57. package/front_end/panels/ai_assistance/components/StylingAgentMarkdownRenderer.ts +2 -2
  58. package/front_end/panels/ai_assistance/components/WalkthroughView.ts +5 -5
  59. package/front_end/panels/animation/AnimationTimeline.ts +2 -0
  60. package/front_end/panels/application/preloading/PreloadingView.ts +9 -3
  61. package/front_end/panels/application/preloading/components/components.ts +2 -0
  62. package/front_end/panels/browser_debugger/ObjectEventListenersSidebarPane.ts +10 -11
  63. package/front_end/panels/changes/CombinedDiffView.ts +1 -1
  64. package/front_end/panels/common/ExtensionServer.ts +9 -10
  65. package/front_end/panels/css_overview/CSSOverviewCompletedView.ts +9 -4
  66. package/front_end/panels/elements/ElementStatePaneWidget.ts +3 -0
  67. package/front_end/panels/elements/ElementsTreeElement.ts +7 -1
  68. package/front_end/panels/elements/EventListenersWidget.ts +10 -11
  69. package/front_end/panels/issues/IssueView.ts +5 -6
  70. package/front_end/panels/linear_memory_inspector/components/LinearMemoryViewer.ts +1 -1
  71. package/front_end/panels/media/PlayerPropertiesView.ts +309 -416
  72. package/front_end/panels/media/playerPropertiesView.css +1 -1
  73. package/front_end/panels/network/NetworkPanel.ts +2 -1
  74. package/front_end/panels/network/components/ResponseHeaderSection.ts +1 -2
  75. package/front_end/panels/network/network-meta.ts +6 -0
  76. package/front_end/panels/performance_monitor/PerformanceMonitor.ts +2 -1
  77. package/front_end/panels/recorder/RecordingView.ts +89 -73
  78. package/front_end/panels/recorder/ReplaySection.ts +59 -40
  79. package/front_end/panels/recorder/injected/injected.ts +4 -0
  80. package/front_end/panels/security/SecurityPanel.ts +5 -6
  81. package/front_end/panels/security/SecurityPanelSidebar.ts +244 -204
  82. package/front_end/panels/security/security.ts +0 -4
  83. package/front_end/panels/settings/EditFileSystemView.ts +8 -7
  84. package/front_end/panels/settings/FrameworkIgnoreListSettingsTab.ts +20 -14
  85. package/front_end/panels/snippets/ScriptSnippetFileSystem.ts +10 -11
  86. package/front_end/panels/sources/WatchExpressionsSidebarPane.ts +3 -3
  87. package/front_end/panels/timeline/TimelineFlameChartDataProvider.ts +5 -5
  88. package/front_end/panels/timeline/components/CWVMetrics.ts +1 -2
  89. package/front_end/panels/timeline/components/IgnoreListSetting.ts +5 -5
  90. package/front_end/panels/timeline/components/LayoutShiftDetails.ts +2 -3
  91. package/front_end/panels/timeline/components/LiveMetricsView.ts +2 -2
  92. package/front_end/panels/timeline/components/Sidebar.ts +3 -3
  93. package/front_end/panels/timeline/components/SidebarSingleInsightSet.ts +1 -2
  94. package/front_end/panels/timeline/components/insights/BaseInsightComponent.ts +3 -1
  95. package/front_end/panels/timeline/components/insights/CLSCulprits.ts +1 -2
  96. package/front_end/panels/timeline/components/insights/Cache.ts +1 -2
  97. package/front_end/panels/timeline/components/insights/CharacterSet.ts +1 -2
  98. package/front_end/panels/timeline/components/insights/DOMSize.ts +1 -2
  99. package/front_end/panels/timeline/components/insights/DocumentLatency.ts +2 -2
  100. package/front_end/panels/timeline/components/insights/DuplicatedJavaScript.ts +2 -2
  101. package/front_end/panels/timeline/components/insights/FontDisplay.ts +1 -2
  102. package/front_end/panels/timeline/components/insights/ForcedReflow.ts +1 -2
  103. package/front_end/panels/timeline/components/insights/INPBreakdown.ts +1 -2
  104. package/front_end/panels/timeline/components/insights/ImageDelivery.ts +1 -2
  105. package/front_end/panels/timeline/components/insights/LCPBreakdown.ts +13 -13
  106. package/front_end/panels/timeline/components/insights/LCPDiscovery.ts +1 -2
  107. package/front_end/panels/timeline/components/insights/LegacyJavaScript.ts +4 -4
  108. package/front_end/panels/timeline/components/insights/ModernHTTP.ts +1 -2
  109. package/front_end/panels/timeline/components/insights/NetworkDependencyTree.ts +10 -8
  110. package/front_end/panels/timeline/components/insights/RenderBlocking.ts +2 -2
  111. package/front_end/panels/timeline/components/insights/SidebarInsight.ts +3 -1
  112. package/front_end/panels/timeline/components/insights/SlowCSSSelector.ts +2 -2
  113. package/front_end/panels/timeline/components/insights/ThirdParties.ts +1 -2
  114. package/front_end/panels/timeline/components/insights/Viewport.ts +1 -2
  115. package/front_end/panels/timeline/overlays/OverlaysImpl.ts +1 -2
  116. package/front_end/panels/timeline/timeline.ts +0 -2
  117. package/front_end/panels/web_audio/WebAudioView.ts +7 -7
  118. package/front_end/panels/webauthn/WebauthnPane.ts +9 -9
  119. package/front_end/third_party/chromium/README.chromium +1 -1
  120. package/front_end/ui/components/diff_view/DiffView.ts +2 -1
  121. package/front_end/ui/components/report_view/ReportView.docs.ts +2 -2
  122. package/front_end/ui/components/text_editor/javascript.ts +12 -13
  123. package/front_end/ui/legacy/GlassPane.ts +38 -14
  124. package/front_end/ui/legacy/Treeoutline.ts +14 -3
  125. package/front_end/ui/legacy/components/object_ui/CustomPreviewComponent.ts +1 -1
  126. package/front_end/ui/legacy/components/object_ui/JavaScriptREPL.ts +1 -1
  127. package/front_end/ui/legacy/components/object_ui/ObjectPopoverHelper.ts +1 -1
  128. package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +21 -30
  129. package/front_end/ui/legacy/components/object_ui/RemoteObjectPreviewFormatter.ts +3 -8
  130. package/front_end/ui/legacy/components/utils/ImagePreview.ts +15 -16
  131. package/front_end/ui/legacy/components/utils/JSPresentationUtils.ts +4 -4
  132. package/front_end/ui/legacy/components/utils/Linkifier.ts +8 -10
  133. package/front_end/ui/settings/InspectorMainSettings.ts +12 -0
  134. package/front_end/ui/settings/settings.ts +2 -0
  135. package/front_end/ui/visual_logging/KnownContextValues.ts +21 -0
  136. package/mcp/mcp.ts +0 -6
  137. package/package.json +1 -1
  138. package/front_end/models/logs/logs-meta.ts +0 -24
  139. package/front_end/models/workspace/workspace-meta.ts +0 -40
  140. package/front_end/panels/security/OriginTreeElement.ts +0 -60
  141. package/front_end/panels/security/SecurityPanelSidebarTreeElement.ts +0 -30
@@ -22,7 +22,6 @@ import {Directives, html, render} from '../../../ui/lit/lit.js';
22
22
  import * as VisualLogging from '../../../ui/visual_logging/visual_logging.js';
23
23
 
24
24
  import * as PreloadingComponents from './components/components.js';
25
- import {capitalizedAction, ruleSetTagOrLocationShort} from './components/PreloadingString.js';
26
25
  import * as PreloadingHelper from './helper/helper.js';
27
26
  import preloadingViewStyles from './preloadingView.css.js';
28
27
  import preloadingViewDropDownStyles from './preloadingViewDropDown.css.js';
@@ -404,7 +403,11 @@ export function applyFilterText(filterText: string, rows: PreloadingComponents.P
404
403
  return rows.filter(row => {
405
404
  const attempt = row.pipeline.getOriginallyTriggered();
406
405
  const url = attempt.key.url.toLowerCase();
407
- const action = capitalizedAction(attempt.action).toLowerCase();
406
+ const action = PreloadingComponents.PreloadingString
407
+ .capitalizedAction(
408
+ attempt.action,
409
+ )
410
+ .toLowerCase();
408
411
  const status = PreloadingUIUtils.status(attempt.status).toLowerCase();
409
412
 
410
413
  // Each term must match (AND logic between terms)
@@ -845,7 +848,10 @@ class PreloadingRuleSetSelector implements
845
848
  return i18n.i18n.lockedString('Internal error');
846
849
  }
847
850
 
848
- return ruleSetTagOrLocationShort(ruleSet, pageURL());
851
+ return PreloadingComponents.PreloadingString.ruleSetTagOrLocationShort(
852
+ ruleSet,
853
+ pageURL(),
854
+ );
849
855
  }
850
856
 
851
857
  subtitleFor(id: Protocol.Preload.RuleSetId|typeof AllRuleSetRootId): string {
@@ -6,6 +6,7 @@ import * as MismatchedPreloadingGrid from './MismatchedPreloadingGrid.js';
6
6
  import * as PreloadingDetailsReportView from './PreloadingDetailsReportView.js';
7
7
  import * as PreloadingDisabledInfobar from './PreloadingDisabledInfobar.js';
8
8
  import * as PreloadingGrid from './PreloadingGrid.js';
9
+ import * as PreloadingString from './PreloadingString.js';
9
10
  import * as RuleSetDetailsView from './RuleSetDetailsView.js';
10
11
  import * as RuleSetGrid from './RuleSetGrid.js';
11
12
  import * as UsedPreloadingView from './UsedPreloadingView.js';
@@ -15,6 +16,7 @@ export {
15
16
  PreloadingDetailsReportView,
16
17
  PreloadingDisabledInfobar,
17
18
  PreloadingGrid,
19
+ PreloadingString,
18
20
  RuleSetDetailsView,
19
21
  RuleSetGrid,
20
22
  UsedPreloadingView,
@@ -43,17 +43,16 @@ export class ObjectEventListenersSidebarPane extends UI.Widget.VBox implements U
43
43
  const executionContext = UI.Context.Context.instance().flavor(SDK.RuntimeModel.ExecutionContext);
44
44
  if (executionContext) {
45
45
  this.#lastRequestedContext = executionContext;
46
- const result = await executionContext.evaluate(
47
- {
48
- expression: 'self',
49
- objectGroup: objectGroupName,
50
- includeCommandLineAPI: false,
51
- silent: true,
52
- returnByValue: false,
53
- generatePreview: false,
54
- },
55
- /* userGesture */ false,
56
- /* awaitPromise */ false);
46
+ const result = await executionContext.evaluateWithSelectedFrameFallback({
47
+ expression: 'self',
48
+ objectGroup: objectGroupName,
49
+ includeCommandLineAPI: false,
50
+ silent: true,
51
+ returnByValue: false,
52
+ generatePreview: false,
53
+ },
54
+ /* userGesture */ false,
55
+ /* awaitPromise */ false);
57
56
  if (!('error' in result) && !result.exceptionDetails) {
58
57
  windowObjects.push(result.object);
59
58
  }
@@ -71,7 +71,7 @@ function renderSingleDiffView(singleDiffViewInput: SingleDiffViewInput): Lit.Tem
71
71
 
72
72
  // clang-format off
73
73
  return html`
74
- <details open class=${classes}>
74
+ <details open class=${classes} jslog=${VisualLogging.section('diff-view')}>
75
75
  <summary>
76
76
  <div class="summary-left">
77
77
  <devtools-icon class="drop-down-icon" name="arrow-drop-down"></devtools-icon>
@@ -1795,16 +1795,15 @@ export class ExtensionServer extends Common.ObjectWrapper.ObjectWrapper<EventTyp
1795
1795
  }
1796
1796
 
1797
1797
  void context
1798
- .evaluate(
1799
- {
1800
- expression,
1801
- objectGroup: 'extension',
1802
- includeCommandLineAPI: exposeCommandLineAPI,
1803
- silent: true,
1804
- returnByValue,
1805
- generatePreview: false,
1806
- },
1807
- /* userGesture */ false, /* awaitPromise */ false)
1798
+ .evaluate({
1799
+ expression,
1800
+ objectGroup: 'extension',
1801
+ includeCommandLineAPI: exposeCommandLineAPI,
1802
+ silent: true,
1803
+ returnByValue,
1804
+ generatePreview: false,
1805
+ },
1806
+ /* userGesture */ false, /* awaitPromise */ false)
1808
1807
  .then(onEvaluate);
1809
1808
 
1810
1809
  function onEvaluate(result: SDK.RuntimeModel.EvaluationResult): void {
@@ -299,26 +299,31 @@ export const DEFAULT_VIEW: View = (input, output, target) => {
299
299
  <!-- Dupe the styles into the main container because of the shadow root will prevent outer styles. -->
300
300
  <style>${cssOverviewCompletedViewStyles}</style>
301
301
  <div class="results-section horizontally-padded summary"
302
+ jslog=${VisualLogging.section('summary')}
302
303
  ${ref(e => { output.revealSection.set('summary', revealSection.bind(null, e));})}>
303
304
  <h1>${i18nString(UIStrings.overviewSummary)}</h1>
304
305
  ${renderSummary(input.elementCount, input.globalStyleStats, input.mediaQueries)}
305
306
  </div>
306
307
  <div class="results-section horizontally-padded colors"
308
+ jslog=${VisualLogging.section('colors')}
307
309
  ${ref(e => { output.revealSection.set('colors', revealSection.bind(null, e));})}>
308
310
  <h1>${i18nString(UIStrings.colors)}</h1>
309
311
  ${renderColors(input.backgroundColors, input.textColors, input.textColorContrastIssues, input.fillColors, input.borderColors)}
310
312
  </div>
311
313
  <div class="results-section font-info"
314
+ jslog=${VisualLogging.section('font-info')}
312
315
  ${ref(e => { output.revealSection.set('font-info', revealSection.bind(null, e));})}>
313
316
  <h1>${i18nString(UIStrings.fontInfo)}</h1>
314
317
  ${renderFontInfo(input.fontInfo)}
315
318
  </div>
316
319
  <div class="results-section unused-declarations"
320
+ jslog=${VisualLogging.section('unused-declarations')}
317
321
  ${ref(e => { output.revealSection.set('unused-declarations', revealSection.bind(null, e));})}>
318
322
  <h1>${i18nString(UIStrings.unusedDeclarations)}</h1>
319
323
  ${renderUnusedDeclarations(input.unusedDeclarations)}
320
324
  </div>
321
325
  <div class="results-section media-queries"
326
+ jslog=${VisualLogging.section('media-queries')}
322
327
  ${ref(e => { output.revealSection.set('media-queries', revealSection.bind(null, e));})}>
323
328
  <h1>${i18nString(UIStrings.mediaQueries)}</h1>
324
329
  ${renderMediaQueries(input.mediaQueries)}
@@ -355,7 +360,7 @@ function renderSummary(
355
360
  elementCount: number, globalStyleStats: GlobalStyleStats,
356
361
  mediaQueries: Array<{title: string, nodes: Protocol.CSS.CSSMedia[]}>): TemplateResult {
357
362
  const renderSummaryItem = (label: string, value: number): TemplateResult => html`
358
- <li>
363
+ <li jslog=${VisualLogging.item('summary-item')}>
359
364
  <div class="label">${label}</div>
360
365
  <div class="value">${formatter.format(value)}</div>
361
366
  </li>`;
@@ -440,7 +445,7 @@ function renderGroup(
440
445
  const width = 100 * nodes.length / total;
441
446
  const itemLabel = i18nString(UIStrings.nOccurrences, {n: nodes.length});
442
447
 
443
- return html`<li>
448
+ return html`<li jslog=${VisualLogging.item('css-overview.group-item')}>
444
449
  <div class="title">${title}</div>
445
450
  <button data-type=${type} data-path=${path} data-label=${title}
446
451
  jslog=${VisualLogging.action().track({click: true}).context(`css-overview.${type}`)}
@@ -492,7 +497,7 @@ function renderContrastIssue(key: string, issues: ContrastIssue[]): TemplateResu
492
497
  const border = getBorderString(minContrastIssue.backgroundColor.asLegacyColor());
493
498
 
494
499
  // clang-format off
495
- return html`<li>
500
+ return html`<li jslog=${VisualLogging.item('contrast-issue')}>
496
501
  <button
497
502
  title=${title} aria-label=${title}
498
503
  data-type="contrast" data-key=${key} data-section="contrast" class="block"
@@ -525,7 +530,7 @@ function renderColor(section: string, color: string): LitTemplate {
525
530
  return nothing;
526
531
  }
527
532
  // clang-format off
528
- return html`<li>
533
+ return html`<li jslog=${VisualLogging.item('color-item')}>
529
534
  <button title=${color} data-type="color" data-color=${color}
530
535
  data-section=${section} class="block"
531
536
  style=${styleMap({backgroundColor: color, border: getBorderString(borderColor)})}
@@ -427,6 +427,9 @@ export class ButtonProvider implements UI.Toolbar.Provider {
427
427
  private clicked(): void {
428
428
  ElementsPanel.instance().showToolbarPane(!this.view.isShowing() ? this.view : null, this.button);
429
429
  }
430
+ showPane(): void {
431
+ ElementsPanel.instance().showToolbarPane(this.view, this.button);
432
+ }
430
433
  item(): UI.Toolbar.ToolbarToggle {
431
434
  return this.button;
432
435
  }
@@ -68,6 +68,7 @@ import * as ElementsComponents from './components/components.js';
68
68
  import {cssPath, jsPath, xPath} from './DOMPath.js';
69
69
  import {getElementIssueDetails} from './ElementIssueUtils.js';
70
70
  import {ElementsPanel} from './ElementsPanel.js';
71
+ import * as ElementStatePaneWidget from './ElementStatePaneWidget.js';
71
72
  import {type ElementsTreeOutline, MappedCharToEntity} from './ElementsTreeOutline.js';
72
73
  import {ImagePreviewPopover} from './ImagePreviewPopover.js';
73
74
  import {getRegisteredDecorators, type MarkerDecorator, type MarkerDecoratorRegistration} from './MarkerDecorator.js';
@@ -334,7 +335,7 @@ export interface ViewOutput {
334
335
  editorRef?: TextEditor.TextEditor.TextEditor;
335
336
  }
336
337
 
337
- export function adornerRef(): DirectiveResult<typeof Lit.Directives.RefDirective> {
338
+ export function adornerRef(): DirectiveResult {
338
339
  let adorner: Adorners.Adorner.Adorner|undefined;
339
340
  return ref(el => {
340
341
  if (adorner) {
@@ -1264,6 +1265,11 @@ export class ElementsTreeWidget extends UI.Widget.Widget {
1264
1265
 
1265
1266
  function setPseudoStateCallback(pseudoState: string, enabled: boolean): void {
1266
1267
  node.domModel().cssModel().forcePseudoState(node, pseudoState, enabled);
1268
+ // Show the element state pane after the user sets an element state from
1269
+ // the context menu. We assume it should help the users to discover the
1270
+ // element state pane and prevent overhead of using the context menu
1271
+ // (http://crbug.com/519254907).
1272
+ ElementStatePaneWidget.ButtonProvider.instance().showPane();
1267
1273
  }
1268
1274
  }
1269
1275
 
@@ -240,17 +240,16 @@ export class EventListenersWidget extends UI.Widget.VBox {
240
240
  }
241
241
 
242
242
  return context
243
- .evaluate(
244
- {
245
- expression: 'self',
246
- objectGroup: objectGroupName,
247
- includeCommandLineAPI: false,
248
- silent: true,
249
- returnByValue: false,
250
- generatePreview: false,
251
- },
252
- /* userGesture */ false,
253
- /* awaitPromise */ false)
243
+ .evaluateWithSelectedFrameFallback({
244
+ expression: 'self',
245
+ objectGroup: objectGroupName,
246
+ includeCommandLineAPI: false,
247
+ silent: true,
248
+ returnByValue: false,
249
+ generatePreview: false,
250
+ },
251
+ /* userGesture */ false,
252
+ /* awaitPromise */ false)
254
253
  .then(result => {
255
254
  if ('object' in result) {
256
255
  return result.object;
@@ -8,7 +8,6 @@ import * as Host from '../../core/host/host.js';
8
8
  import * as i18n from '../../core/i18n/i18n.js';
9
9
  import * as Platform from '../../core/platform/platform.js';
10
10
  import * as Protocol from '../../generated/protocol.js';
11
- import type {AggregatedIssue} from '../../models/issues_manager/IssueAggregator.js';
12
11
  import * as IssuesManager from '../../models/issues_manager/issues_manager.js';
13
12
  import * as NetworkForward from '../../panels/network/forward/forward.js';
14
13
  import * as Adorners from '../../ui/components/adorners/adorners.js';
@@ -36,7 +35,6 @@ import {AffectedSharedArrayBufferIssueDetailsView} from './AffectedSharedArrayBu
36
35
  import {AffectedSourcesView} from './AffectedSourcesView.js';
37
36
  import {AffectedTrackingSitesView} from './AffectedTrackingSitesView.js';
38
37
  import * as Components from './components/components.js';
39
- import type {HiddenIssuesMenuData} from './components/HideIssuesMenu.js';
40
38
  import {CorsIssueDetailsView} from './CorsIssueDetailsView.js';
41
39
  import {GenericIssueDetailsView} from './GenericIssueDetailsView.js';
42
40
 
@@ -220,7 +218,7 @@ class AffectedMixedContentView extends AffectedResourcesView {
220
218
  }
221
219
 
222
220
  export class IssueView extends UI.TreeOutline.TreeElement {
223
- #issue: AggregatedIssue;
221
+ #issue: IssuesManager.IssueAggregator.AggregatedIssue;
224
222
  #description: IssuesManager.MarkdownIssueDescription.IssueDescription;
225
223
  override toggleOnClick: boolean;
226
224
  affectedResources: UI.TreeOutline.TreeElement;
@@ -233,7 +231,8 @@ export class IssueView extends UI.TreeOutline.TreeElement {
233
231
  #hiddenIssuesMenu?: Components.HideIssuesMenu.HideIssuesMenu;
234
232
  #contentCreated = false;
235
233
 
236
- constructor(issue: AggregatedIssue, description: IssuesManager.MarkdownIssueDescription.IssueDescription) {
234
+ constructor(issue: IssuesManager.IssueAggregator.AggregatedIssue,
235
+ description: IssuesManager.MarkdownIssueDescription.IssueDescription) {
237
236
  super(undefined, undefined, Platform.StringUtilities.toKebabCase(issue.getCategory()));
238
237
  this.#issue = issue;
239
238
  this.#description = description;
@@ -277,7 +276,7 @@ export class IssueView extends UI.TreeOutline.TreeElement {
277
276
  * this IssueView was initialized with fits the new issue as well, i.e.
278
277
  * title and issue description will not be updated.
279
278
  */
280
- setIssue(issue: AggregatedIssue): void {
279
+ setIssue(issue: IssuesManager.IssueAggregator.AggregatedIssue): void {
281
280
  if (this.#issue !== issue) {
282
281
  this.#needsUpdateOnExpand = true;
283
282
  }
@@ -397,7 +396,7 @@ export class IssueView extends UI.TreeOutline.TreeElement {
397
396
  }
398
397
  this.listItemElement.classList.toggle('hidden-issue', this.#issue.isHidden());
399
398
  if (this.#hiddenIssuesMenu) {
400
- const data: HiddenIssuesMenuData = {
399
+ const data: Components.HideIssuesMenu.HiddenIssuesMenuData = {
401
400
  menuItemLabel: this.#issue.isHidden() ? i18nString(UIStrings.unhideIssuesLikeThis) :
402
401
  i18nString(UIStrings.hideIssuesLikeThis),
403
402
  menuItemAction: () => {
@@ -227,7 +227,7 @@ export class LinearMemoryViewer extends HTMLElement {
227
227
  selected: Math.floor((this.#address - this.#memoryOffset) / this.#numBytesInRow) === row,
228
228
  };
229
229
  return html`
230
- <div class="row">
230
+ <div class="row" jslog=${VisualLogging.tableRow('linear-memory-row')}>
231
231
  <span class=${Lit.Directives.classMap(classMap)}>${toHexString({number: startIndex + this.#memoryOffset, pad: 8, prefix: false})}</span>
232
232
  <span class="divider"></span>
233
233
  ${this.#renderByteValues(startIndex, endIndex)}