chrome-devtools-frontend 1.0.1555174 → 1.0.1556696

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 (156) hide show
  1. package/front_end/core/protocol_client/InspectorBackend.ts +1 -1
  2. package/front_end/core/root/Runtime.ts +0 -4
  3. package/front_end/core/sdk/DOMModel.ts +101 -7
  4. package/front_end/entrypoints/formatter_worker/FormatterActions.ts +2 -0
  5. package/front_end/entrypoints/formatter_worker/ScopeParser.ts +75 -7
  6. package/front_end/entrypoints/formatter_worker/Substitute.ts +1 -1
  7. package/front_end/generated/InspectorBackendCommands.ts +1 -1
  8. package/front_end/generated/protocol.ts +0 -1
  9. package/front_end/models/ai_assistance/AiConversation.ts +71 -10
  10. package/front_end/models/ai_assistance/ArtifactsManager.ts +67 -0
  11. package/front_end/models/ai_assistance/ConversationHandler.ts +3 -2
  12. package/front_end/models/ai_assistance/agents/AiAgent.ts +17 -27
  13. package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +152 -4
  14. package/front_end/models/ai_assistance/agents/StylingAgent.ts +2 -2
  15. package/front_end/models/ai_assistance/ai_assistance.ts +2 -0
  16. package/front_end/models/ai_assistance/data_formatters/NetworkRequestFormatter.ts +1 -1
  17. package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.ts +0 -2
  18. package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.ts +1 -1
  19. package/front_end/{ui/components → models}/annotations/AnnotationRepository.ts +4 -4
  20. package/front_end/models/annotations/README.md +7 -0
  21. package/front_end/models/bindings/DebuggerWorkspaceBinding.ts +8 -0
  22. package/front_end/models/greendev/Prototypes.ts +56 -0
  23. package/front_end/models/greendev/README.md +5 -0
  24. package/front_end/models/greendev/greendev.ts +5 -0
  25. package/front_end/models/stack_trace/StackTrace.ts +13 -2
  26. package/front_end/models/stack_trace/StackTraceImpl.ts +81 -6
  27. package/front_end/models/stack_trace/StackTraceModel.ts +35 -3
  28. package/front_end/models/trace/extras/TraceTree.ts +4 -2
  29. package/front_end/models/trace/insights/LCPDiscovery.ts +0 -2
  30. package/front_end/models/trace/types/TraceEvents.ts +0 -1
  31. package/front_end/panels/ai_assistance/AiAssistancePanel.ts +116 -70
  32. package/front_end/panels/ai_assistance/aiAssistancePanel.css +16 -0
  33. package/front_end/panels/ai_assistance/components/ArtifactsViewer.ts +159 -0
  34. package/front_end/panels/ai_assistance/components/ChatView.ts +3 -2
  35. package/front_end/panels/ai_assistance/components/CollapsibleAssistanceContentWidget.ts +7 -8
  36. package/front_end/panels/ai_assistance/components/PerformanceAgentFlameChart.ts +15 -8
  37. package/front_end/panels/ai_assistance/components/PerformanceAgentMarkdownRenderer.ts +9 -9
  38. package/front_end/panels/ai_assistance/components/artifactsViewer.css +15 -0
  39. package/front_end/panels/ai_assistance/components/collapsibleAssistanceContentWidget.css +5 -6
  40. package/front_end/panels/application/AppManifestView.ts +263 -205
  41. package/front_end/panels/application/ApplicationPanelSidebar.ts +24 -57
  42. package/front_end/panels/application/OpenedWindowDetailsView.ts +2 -0
  43. package/front_end/panels/application/ServiceWorkersView.ts +2 -0
  44. package/front_end/panels/application/StorageView.ts +1 -0
  45. package/front_end/panels/application/appManifestView.css +48 -0
  46. package/front_end/panels/application/components/ProtocolHandlersView.ts +2 -2
  47. package/front_end/panels/application/preloading/PreloadingView.ts +12 -6
  48. package/front_end/panels/application/preloading/components/PreloadingDetailsReportView.ts +230 -237
  49. package/front_end/panels/application/preloading/components/PreloadingGrid.ts +96 -79
  50. package/front_end/panels/application/preloading/components/preloadingGrid.css +26 -29
  51. package/front_end/panels/application/preloading/preloadingView.css +6 -0
  52. package/front_end/panels/common/Annotation.ts +1 -1
  53. package/front_end/panels/common/AnnotationManager.ts +1 -1
  54. package/front_end/panels/common/ExtensionView.ts +1 -0
  55. package/front_end/panels/console/ConsoleContextSelector.ts +74 -9
  56. package/front_end/panels/console/consoleContextSelector.css +31 -29
  57. package/front_end/panels/coverage/coverageListView.css +59 -57
  58. package/front_end/panels/elements/ElementsPanel.ts +1 -1
  59. package/front_end/panels/elements/ElementsTreeElement.ts +39 -1
  60. package/front_end/panels/elements/ElementsTreeOutline.ts +23 -21
  61. package/front_end/panels/elements/TopLayerContainer.ts +26 -91
  62. package/front_end/panels/explain/components/ConsoleInsight.ts +3 -3
  63. package/front_end/panels/linear_memory_inspector/components/LinearMemoryInspector.ts +4 -8
  64. package/front_end/panels/linear_memory_inspector/components/LinearMemoryValueInterpreter.ts +148 -97
  65. package/front_end/panels/linear_memory_inspector/components/LinearMemoryViewer.ts +1 -1
  66. package/front_end/panels/linear_memory_inspector/components/linearMemoryValueInterpreter.css +37 -35
  67. package/front_end/panels/network/NetworkItemView.ts +1 -1
  68. package/front_end/panels/network/NetworkLogView.ts +1 -1
  69. package/front_end/panels/network/NetworkPanel.ts +1 -1
  70. package/front_end/panels/recorder/RecorderController.ts +0 -1
  71. package/front_end/panels/security/SecurityPanelSidebar.ts +5 -0
  72. package/front_end/panels/settings/SettingsScreen.ts +133 -1
  73. package/front_end/panels/settings/settings-meta.ts +24 -0
  74. package/front_end/panels/settings/settingsScreen.css +4 -0
  75. package/front_end/panels/sources/UISourceCodeFrame.ts +3 -17
  76. package/front_end/panels/timeline/TimelineUIUtils.ts +5 -8
  77. package/front_end/panels/timeline/components/TimelineSummary.ts +75 -54
  78. package/front_end/panels/timeline/components/insights/BaseInsightComponent.ts +18 -26
  79. package/front_end/panels/timeline/components/insights/Cache.ts +12 -8
  80. package/front_end/panels/timeline/components/insights/DOMSize.ts +25 -21
  81. package/front_end/panels/timeline/components/insights/DuplicatedJavaScript.ts +7 -7
  82. package/front_end/panels/timeline/components/insights/FontDisplay.ts +7 -5
  83. package/front_end/panels/timeline/components/insights/ForcedReflow.ts +11 -9
  84. package/front_end/panels/timeline/components/insights/INPBreakdown.ts +7 -6
  85. package/front_end/panels/timeline/components/insights/ImageDelivery.ts +7 -5
  86. package/front_end/panels/timeline/components/insights/InsightRenderer.ts +20 -18
  87. package/front_end/panels/timeline/components/insights/LCPBreakdown.ts +12 -12
  88. package/front_end/panels/timeline/components/insights/LegacyJavaScript.ts +7 -7
  89. package/front_end/panels/timeline/components/insights/ModernHTTP.ts +7 -5
  90. package/front_end/panels/timeline/components/insights/NetworkDependencyTree.ts +15 -13
  91. package/front_end/panels/timeline/components/insights/RenderBlocking.ts +2 -2
  92. package/front_end/panels/timeline/components/insights/SlowCSSSelector.ts +15 -14
  93. package/front_end/panels/timeline/components/insights/Table.ts +152 -130
  94. package/front_end/panels/timeline/components/insights/ThirdParties.ts +11 -9
  95. package/front_end/panels/timeline/components/timelineSummary.css +58 -57
  96. package/front_end/panels/timeline/thirdPartyTreeView.css +109 -0
  97. package/front_end/panels/timeline/timelineDetailsView.css +2 -4
  98. package/front_end/panels/timeline/timelinePanel.css +0 -110
  99. package/front_end/third_party/acorn/estree-legacy.d.ts +2 -0
  100. package/front_end/third_party/chromium/README.chromium +1 -1
  101. package/front_end/third_party/puppeteer/README.chromium +2 -2
  102. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/CDPSession.d.ts.map +1 -1
  103. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/CDPSession.js.map +1 -1
  104. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/ElementHandle.d.ts.map +1 -1
  105. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/ElementHandle.js.map +1 -1
  106. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Frame.d.ts.map +1 -1
  107. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Frame.js.map +1 -1
  108. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.d.ts.map +1 -1
  109. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.js.map +1 -1
  110. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Connection.d.ts.map +1 -1
  111. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/BrowserConnector.js +21 -7
  112. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/BrowserConnector.js.map +1 -1
  113. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/EventEmitter.d.ts.map +1 -1
  114. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/injected/injected.d.ts +1 -1
  115. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/Mutex.d.ts +2 -2
  116. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/version.d.ts +1 -1
  117. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/version.js +1 -1
  118. package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.js +15 -6
  119. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/CDPSession.d.ts.map +1 -1
  120. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/CDPSession.js.map +1 -1
  121. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/ElementHandle.d.ts.map +1 -1
  122. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/ElementHandle.js.map +1 -1
  123. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Frame.d.ts.map +1 -1
  124. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Frame.js.map +1 -1
  125. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.d.ts.map +1 -1
  126. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.js.map +1 -1
  127. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Connection.d.ts.map +1 -1
  128. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserConnector.js +21 -7
  129. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserConnector.js.map +1 -1
  130. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/EventEmitter.d.ts.map +1 -1
  131. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/version.d.ts +1 -1
  132. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/version.js +1 -1
  133. package/front_end/third_party/puppeteer/package/package.json +2 -2
  134. package/front_end/third_party/puppeteer/package/src/api/CDPSession.ts +1 -2
  135. package/front_end/third_party/puppeteer/package/src/api/ElementHandle.ts +2 -4
  136. package/front_end/third_party/puppeteer/package/src/api/Frame.ts +2 -4
  137. package/front_end/third_party/puppeteer/package/src/api/Page.ts +2 -4
  138. package/front_end/third_party/puppeteer/package/src/bidi/core/Connection.ts +3 -2
  139. package/front_end/third_party/puppeteer/package/src/common/BrowserConnector.ts +29 -10
  140. package/front_end/third_party/puppeteer/package/src/common/EventEmitter.ts +3 -3
  141. package/front_end/third_party/puppeteer/package/src/util/version.ts +1 -1
  142. package/front_end/ui/components/report_view/ReportView.docs.ts +37 -0
  143. package/front_end/ui/components/report_view/ReportView.ts +1 -4
  144. package/front_end/ui/components/settings/SettingCheckbox.ts +1 -1
  145. package/front_end/ui/legacy/Floaty.ts +5 -9
  146. package/front_end/ui/legacy/InspectorView.ts +2 -1
  147. package/front_end/ui/legacy/ReportView.ts +5 -4
  148. package/front_end/ui/legacy/TabbedPane.ts +1 -1
  149. package/front_end/ui/legacy/ViewManager.ts +2 -32
  150. package/front_end/ui/legacy/Widget.ts +7 -0
  151. package/front_end/ui/legacy/components/perf_ui/FlameChart.ts +0 -1
  152. package/front_end/ui/legacy/reportView.css +0 -24
  153. package/front_end/ui/visual_logging/KnownContextValues.ts +7 -0
  154. package/package.json +1 -1
  155. /package/front_end/{ui/components → models}/annotations/AnnotationType.ts +0 -0
  156. /package/front_end/{ui/components → models}/annotations/annotations.ts +0 -0
@@ -9,9 +9,9 @@ import '../../../ui/components/spinners/spinners.js';
9
9
  import * as Host from '../../../core/host/host.js';
10
10
  import * as i18n from '../../../core/i18n/i18n.js';
11
11
  import * as Platform from '../../../core/platform/platform.js';
12
- import * as Root from '../../../core/root/root.js';
13
12
  import * as SDK from '../../../core/sdk/sdk.js';
14
13
  import * as AiAssistanceModel from '../../../models/ai_assistance/ai_assistance.js';
14
+ import * as GreenDev from '../../../models/greendev/greendev.js';
15
15
  import * as Trace from '../../../models/trace/trace.js';
16
16
  import * as Workspace from '../../../models/workspace/workspace.js';
17
17
  import * as PanelsCommon from '../../../panels/common/common.js';
@@ -265,6 +265,7 @@ export interface Props {
265
265
  inputPlaceholder: Platform.UIString.LocalizedString;
266
266
  disclaimerText: Platform.UIString.LocalizedString;
267
267
  isTextInputEmpty: boolean;
268
+ isArtifactsSidebarOpen: boolean;
268
269
  uploadImageInputEnabled?: boolean;
269
270
  markdownRenderer: MarkdownLitRenderer;
270
271
  additionalFloatyContext: UI.Floaty.FloatyContextSelection[];
@@ -1471,7 +1472,7 @@ function renderChatInput({
1471
1472
  }
1472
1473
 
1473
1474
  function renderFloatyExtraContext(contexts: UI.Floaty.FloatyContextSelection[]): Lit.LitTemplate {
1474
- if (!Root.Runtime.hostConfig.devToolsGreenDevUi?.enabled) {
1475
+ if (!GreenDev.Prototypes.instance().isEnabled('inDevToolsFloaty')) {
1475
1476
  return Lit.nothing;
1476
1477
  }
1477
1478
 
@@ -16,7 +16,7 @@ export interface CollapsibleAssistanceContentWidgetData {
16
16
 
17
17
  export class CollapsibleAssistanceContentWidget extends HTMLElement {
18
18
  readonly #shadow = this.attachShadow({mode: 'open'});
19
- #isCollapsed = true;
19
+ #isCollapsed = false;
20
20
  #headerText = 'Details';
21
21
 
22
22
  set data(data: CollapsibleAssistanceContentWidgetData) {
@@ -42,16 +42,15 @@ export class CollapsibleAssistanceContentWidget extends HTMLElement {
42
42
  event.preventDefault();
43
43
  this.#toggleCollapse();
44
44
  }}>
45
+ ${this.#headerText}
45
46
  <devtools-button .data=${{
46
47
  variant: Buttons.Button.Variant.ICON,
47
- iconName: this.#isCollapsed ? 'triangle-right' : 'triangle-down',
48
- color: 'var(--sys-color-on-surface)',
49
- width: '14px',
50
- height: '14px',
48
+ iconName: this.#isCollapsed ? 'triangle-right' : 'triangle-down',
49
+ color: 'var(--sys-color-on-surface)',
50
+ width: '14px',
51
+ height: '14px',
51
52
  } as Buttons.Button.ButtonData}
52
- >
53
- </devtools-button>
54
- ${this.#headerText}
53
+ ></devtools-button>
55
54
  </summary>
56
55
  <div class="content">
57
56
  <slot></slot>
@@ -11,8 +11,8 @@ const {html} = Lit;
11
11
 
12
12
  export interface PerformanceAgentFlameChartData {
13
13
  parsedTrace: Trace.TraceModel.ParsedTrace|null;
14
- start: number;
15
- end: number;
14
+ start: Trace.Types.Timing.Micro;
15
+ end: Trace.Types.Timing.Micro;
16
16
  }
17
17
 
18
18
  export class PerformanceAgentFlameChart extends HTMLElement implements PerfUI.FlameChart.FlameChartDelegate {
@@ -30,6 +30,8 @@ export class PerformanceAgentFlameChart extends HTMLElement implements PerfUI.Fl
30
30
  this.#flameChart = new PerfUI.FlameChart.FlameChart(this.#dataProvider, this);
31
31
  this.#flameChart.markAsRoot();
32
32
  this.#flameChart.show(this.#flameChartContainer);
33
+ const observer = new ResizeObserver(this.#onResize.bind(this));
34
+ observer.observe(this.#flameChartContainer);
33
35
  }
34
36
 
35
37
  set data(data: PerformanceAgentFlameChartData) {
@@ -59,15 +61,20 @@ export class PerformanceAgentFlameChart extends HTMLElement implements PerfUI.Fl
59
61
  }
60
62
 
61
63
  const bounds = Trace.Helpers.Timing.traceWindowMicroSecondsToMilliSeconds({
62
- min: Trace.Types.Timing.Micro(start),
63
- max: Trace.Types.Timing.Micro(end),
64
+ min: start,
65
+ max: end,
64
66
  range: Trace.Types.Timing.Micro(end - start),
65
67
  });
66
68
  this.#flameChart.setWindowTimes(bounds.min, bounds.max);
67
- this.#flameChart.setSize(600, 200);
69
+ this.#flameChart.setSize(600, 300);
68
70
  this.#render();
69
71
  }
70
72
 
73
+ #onResize(entries: ResizeObserverEntry[]): void {
74
+ const container = entries[0];
75
+ this.#flameChart.setSize(container.contentRect.width, 600);
76
+ }
77
+
71
78
  #render(): void {
72
79
  if (!this.#parsedTrace) {
73
80
  return;
@@ -80,8 +87,8 @@ export class PerformanceAgentFlameChart extends HTMLElement implements PerfUI.Fl
80
87
 
81
88
  .container {
82
89
  display: flex;
83
- width: 600px;
84
- height: 200px;
90
+ width: 100%;
91
+ height: 300px;
85
92
  }
86
93
 
87
94
  .flex-auto {
@@ -100,7 +107,7 @@ export class PerformanceAgentFlameChart extends HTMLElement implements PerfUI.Fl
100
107
  Lit.render(output, this.#shadow, {host: this});
101
108
 
102
109
  this.#flameChart.update();
103
- this.#flameChart.setSize(600, 200);
110
+ this.#flameChart.setSize(600, 300);
104
111
  }
105
112
  windowChanged(startTime: number, endTime: number, animate: boolean): void {
106
113
  this.#flameChart.setWindowTimes(startTime, endTime, animate);
@@ -8,9 +8,9 @@ import '../../../panels/timeline/components/components.js';
8
8
  import './PerformanceAgentFlameChart.js';
9
9
 
10
10
  import * as Common from '../../../core/common/common.js';
11
- import * as Root from '../../../core/root/root.js';
12
11
  import * as SDK from '../../../core/sdk/sdk.js';
13
12
  import type * as Protocol from '../../../generated/protocol.js';
13
+ import * as GreenDev from '../../../models/greendev/greendev.js';
14
14
  import * as Logs from '../../../models/logs/logs.js';
15
15
  import * as NetworkTimeCalculator from '../../../models/network_time_calculator/network_time_calculator.js';
16
16
  import * as Helpers from '../../../models/trace/helpers/helpers.js';
@@ -48,17 +48,17 @@ export class PerformanceAgentMarkdownRenderer extends MarkdownRendererWithCodeBl
48
48
  // NOTE: The custom tag handling below (e.g., <ai-insight>, <network-request-widget>)
49
49
  // is part of a prototype for the GreenDev project and is only rendered when the GreenDev
50
50
  // feature is enabled.
51
- if (token.type === 'html' && Boolean(Root.Runtime.hostConfig.devToolsGreenDevUi?.enabled)) {
51
+ if (token.type === 'html' && GreenDev.Prototypes.instance().isEnabled('inlineWidgets')) {
52
52
  if (token.text.includes('<flame-chart-widget')) {
53
53
  const startMatch = token.text.match(/start="?(\d+)"?/);
54
54
  const endMatch = token.text.match(/end="?(\d+)"?/);
55
- const start = startMatch ? Number(startMatch[1]) : this.parsedTrace.data.Meta.traceBounds.min;
56
- const end = endMatch ? Number(endMatch[1]) : this.parsedTrace.data.Meta.traceBounds.max;
57
- return html`<devtools-performance-agent-flame-chart .data=${{
58
- parsedTrace: this.parsedTrace,
59
- start,
60
- end,
61
- } as PerformanceAgentFlameChart.PerformanceAgentFlameChartData}
55
+ const start = startMatch ? Number(startMatch[1]) : this.parsedTrace.data.Meta.traceBounds.min;
56
+ const end = endMatch ? Number(endMatch[1]) : this.parsedTrace.data.Meta.traceBounds.max;
57
+ return html`<devtools-performance-agent-flame-chart .data=${{
58
+ parsedTrace: this.parsedTrace,
59
+ start,
60
+ end,
61
+ } as PerformanceAgentFlameChart.PerformanceAgentFlameChartData}
62
62
  }></devtools-performance-agent-flame-chart>`;
63
63
  }
64
64
 
@@ -0,0 +1,15 @@
1
+ /*
2
+ * Copyright 2025 The Chromium Authors
3
+ * Use of this source code is governed by a BSD-style license that can be
4
+ * found in the LICENSE file.
5
+ */
6
+
7
+ .artifacts-viewer {
8
+ display: flex;
9
+ flex-direction: column;
10
+ width: 100%;
11
+ height: 100%;
12
+ overflow: auto;
13
+ padding: 20px;
14
+ gap: 10px;
15
+ }
@@ -6,8 +6,10 @@
6
6
 
7
7
  :host {
8
8
  display: block;
9
- border: 1px solid var(--sys-color-outline);
10
- border-radius: 8px;
9
+ flex-shrink: 0;
10
+ width: 100%;
11
+ border: 2px solid var(--sys-color-neutral-container);
12
+ border-radius: 12px;
11
13
  margin-bottom: 12px;
12
14
  overflow: hidden;
13
15
  background-color: var(--sys-color-cdt-base-container);
@@ -19,14 +21,11 @@
19
21
  user-select: none;
20
22
  display: flex;
21
23
  align-items: center;
24
+ background-color: var(--sys-color-surface3);
22
25
  justify-content: space-between;
23
26
  transition: background-color 0.2s ease-in-out;
24
27
  }
25
28
 
26
- :host([open]) .header {
27
- border-bottom: 1px solid var(--sys-color-outline);
28
- }
29
-
30
29
  .content {
31
30
  background-color: var(--sys-color-surface);
32
31
  padding: 12px 16px;