chrome-devtools-frontend 1.0.1526203 → 1.0.1528866

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 (328) hide show
  1. package/docs/ui_engineering.md +159 -0
  2. package/eslint.config.mjs +6 -1
  3. package/front_end/core/i18n/i18nImpl.ts +5 -0
  4. package/front_end/core/protocol_client/protocol_client.ts +1 -1
  5. package/front_end/core/root/Runtime.ts +28 -4
  6. package/front_end/core/sdk/CSSMatchedStyles.ts +50 -7
  7. package/front_end/core/sdk/CSSRule.ts +35 -6
  8. package/front_end/core/sdk/ChildTargetManager.ts +2 -0
  9. package/front_end/core/sdk/Connections.ts +2 -1
  10. package/front_end/core/sdk/DOMModel.ts +4 -0
  11. package/front_end/core/sdk/DebuggerModel.ts +5 -1
  12. package/front_end/core/sdk/NetworkManager.ts +214 -31
  13. package/front_end/core/sdk/PreloadingModel.ts +82 -17
  14. package/front_end/core/sdk/RehydratingConnection.snapshot.txt +1 -1
  15. package/front_end/core/sdk/RehydratingConnection.ts +29 -4
  16. package/front_end/core/sdk/ScopeTreeCache.ts +8 -3
  17. package/front_end/core/sdk/SourceMap.ts +37 -11
  18. package/front_end/core/sdk/SourceMapManager.ts +13 -2
  19. package/front_end/core/sdk/SourceMapScopesInfo.ts +17 -0
  20. package/front_end/core/sdk/TargetManager.ts +0 -22
  21. package/front_end/core/sdk/TraceObject.ts +8 -7
  22. package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshot.ts +81 -0
  23. package/front_end/entrypoints/inspector_main/InspectorMain.ts +3 -1
  24. package/front_end/entrypoints/main/GlobalAiButton.ts +1 -0
  25. package/front_end/entrypoints/main/MainImpl.ts +20 -25
  26. package/front_end/generated/InspectorBackendCommands.js +4 -3
  27. package/front_end/generated/protocol-mapping.d.ts +3 -1
  28. package/front_end/generated/protocol-proxy-api.d.ts +3 -1
  29. package/front_end/generated/protocol.ts +17 -3
  30. package/front_end/models/ai_assistance/BuiltInAi.ts +111 -0
  31. package/front_end/models/ai_assistance/ai_assistance.ts +53 -24
  32. package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.snapshot.txt +105 -0
  33. package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.ts +6 -1
  34. package/front_end/models/extensions/ExtensionView.ts +3 -0
  35. package/front_end/models/javascript_metadata/NativeFunctions.js +23 -27
  36. package/front_end/models/live-metrics/web-vitals-injected/web-vitals-injected.ts +31 -29
  37. package/front_end/models/persistence/EditFileSystemView.ts +1 -0
  38. package/front_end/models/source_map_scopes/NamesResolver.ts +5 -11
  39. package/front_end/models/stack_trace/Trie.ts +9 -0
  40. package/front_end/models/trace/lantern/types/Lantern.ts +1 -1
  41. package/front_end/panels/accessibility/AXBreadcrumbsPane.ts +1 -0
  42. package/front_end/panels/accessibility/AccessibilitySidebarView.ts +1 -0
  43. package/front_end/panels/ai_assistance/AiAssistancePanel.ts +120 -113
  44. package/front_end/panels/ai_assistance/PatchWidget.ts +9 -8
  45. package/front_end/panels/ai_assistance/SelectWorkspaceDialog.ts +2 -0
  46. package/front_end/panels/ai_assistance/components/ChatView.ts +29 -29
  47. package/front_end/panels/ai_assistance/components/UserActionRow.ts +1 -0
  48. package/front_end/panels/animation/AnimationTimeline.ts +1 -0
  49. package/front_end/panels/application/CookieItemsView.ts +1 -0
  50. package/front_end/panels/application/KeyValueStorageItemsView.ts +1 -0
  51. package/front_end/panels/application/ServiceWorkerCacheViews.ts +2 -0
  52. package/front_end/panels/application/preloading/components/PreloadingDetailsReportView.ts +11 -5
  53. package/front_end/panels/application/preloading/components/PreloadingMismatchedHeadersGrid.ts +2 -2
  54. package/front_end/panels/application/preloading/components/PreloadingString.ts +7 -5
  55. package/front_end/panels/application/preloading/components/UsedPreloadingView.ts +22 -10
  56. package/front_end/panels/changes/CombinedDiffView.ts +1 -0
  57. package/front_end/panels/console/ConsoleInsightTeaser.ts +106 -0
  58. package/front_end/panels/console/ConsolePanel.ts +2 -0
  59. package/front_end/panels/console/ConsolePrompt.ts +12 -2
  60. package/front_end/panels/console/ConsoleSidebar.ts +1 -1
  61. package/front_end/panels/console/ConsoleView.ts +12 -0
  62. package/front_end/panels/console/ConsoleViewMessage.ts +27 -0
  63. package/front_end/panels/{explain → console}/PromptBuilder.ts +12 -7
  64. package/front_end/panels/console/console.ts +6 -0
  65. package/front_end/panels/console/consoleInsightTeaser.css +55 -0
  66. package/front_end/panels/coverage/CoverageListView.ts +141 -277
  67. package/front_end/panels/coverage/CoverageView.ts +330 -324
  68. package/front_end/panels/coverage/coverageView.css +17 -0
  69. package/front_end/panels/elements/ComputedStyleWidget.ts +1 -0
  70. package/front_end/panels/elements/LayoutPane.ts +1 -0
  71. package/front_end/panels/elements/NodeStackTraceWidget.ts +1 -0
  72. package/front_end/panels/elements/StylePropertyTreeElement.ts +5 -1
  73. package/front_end/panels/elements/stylePropertiesTreeOutline.css +17 -0
  74. package/front_end/panels/emulation/DeviceModeView.ts +2 -0
  75. package/front_end/panels/explain/ActionDelegate.ts +1 -2
  76. package/front_end/panels/explain/components/ConsoleInsight.ts +14 -12
  77. package/front_end/panels/explain/explain.ts +0 -1
  78. package/front_end/panels/js_timeline/js_timeline-meta.ts +1 -1
  79. package/front_end/panels/layer_viewer/Layers3DView.ts +2 -0
  80. package/front_end/panels/lighthouse/LighthouseReportSelector.ts +1 -0
  81. package/front_end/panels/linear_memory_inspector/LinearMemoryInspectorPane.ts +12 -19
  82. package/front_end/panels/linear_memory_inspector/components/LinearMemoryInspector.ts +27 -43
  83. package/front_end/panels/media/MainView.ts +1 -0
  84. package/front_end/panels/media/TickingFlameChart.ts +2 -0
  85. package/front_end/panels/network/BlockedURLsPane.ts +111 -85
  86. package/front_end/panels/network/EventSourceMessagesView.ts +1 -0
  87. package/front_end/panels/network/NetworkItemView.ts +1 -0
  88. package/front_end/panels/network/NetworkLogView.ts +9 -7
  89. package/front_end/panels/network/NetworkOverview.ts +1 -0
  90. package/front_end/panels/network/RequestCookiesView.ts +1 -0
  91. package/front_end/panels/network/RequestHTMLView.ts +1 -0
  92. package/front_end/panels/network/RequestInitiatorView.ts +1 -0
  93. package/front_end/panels/network/RequestPayloadView.ts +1 -0
  94. package/front_end/panels/network/RequestPreviewView.ts +1 -0
  95. package/front_end/panels/network/RequestResponseView.ts +2 -1
  96. package/front_end/panels/network/RequestTimingView.ts +2 -0
  97. package/front_end/panels/network/ResourceDirectSocketChunkView.ts +1 -0
  98. package/front_end/panels/network/ResourceWebSocketFrameView.ts +1 -0
  99. package/front_end/panels/network/components/RequestHeadersView.ts +2 -0
  100. package/front_end/panels/network/components/RequestTrustTokensView.ts +2 -0
  101. package/front_end/panels/performance_monitor/PerformanceMonitor.ts +2 -0
  102. package/front_end/panels/profiler/HeapSnapshotDataGrids.ts +2 -0
  103. package/front_end/panels/profiler/HeapSnapshotView.ts +7 -0
  104. package/front_end/panels/profiler/IsolateSelector.ts +1 -0
  105. package/front_end/panels/profiler/LiveHeapProfileView.ts +1 -0
  106. package/front_end/panels/profiler/ProfileView.ts +1 -0
  107. package/front_end/panels/protocol_monitor/ProtocolMonitor.ts +1 -0
  108. package/front_end/panels/recorder/RecorderPanel.ts +2 -0
  109. package/front_end/panels/screencast/ScreencastView.ts +1 -0
  110. package/front_end/panels/search/SearchView.ts +1 -0
  111. package/front_end/panels/settings/AISettingsTab.ts +3 -3
  112. package/front_end/panels/settings/WorkspaceSettingsTab.ts +2 -0
  113. package/front_end/panels/settings/emulation/components/UserAgentClientHintsForm.ts +2 -2
  114. package/front_end/panels/sources/AiCodeCompletionPlugin.ts +12 -0
  115. package/front_end/panels/sources/BreakpointsView.ts +1 -0
  116. package/front_end/panels/sources/DebuggerPlugin.ts +1 -0
  117. package/front_end/panels/sources/UISourceCodeFrame.ts +17 -2
  118. package/front_end/panels/timeline/README.md +2 -2
  119. package/front_end/panels/timeline/TimelineFlameChartDataProvider.ts +1 -1
  120. package/front_end/panels/timeline/TimelineFlameChartView.ts +4 -3
  121. package/front_end/panels/timeline/TimelineLayersView.ts +1 -0
  122. package/front_end/panels/timeline/TimelinePaintProfilerView.ts +114 -37
  123. package/front_end/panels/timeline/TimelinePanel.ts +43 -62
  124. package/front_end/panels/timeline/TimelineTreeView.ts +1 -0
  125. package/front_end/panels/timeline/components/LiveMetricsView.ts +4 -8
  126. package/front_end/panels/timeline/components/Sidebar.ts +2 -0
  127. package/front_end/panels/timeline/components/SidebarSingleInsightSet.ts +1 -1
  128. package/front_end/panels/timeline/components/insights/BaseInsightComponent.ts +7 -7
  129. package/front_end/panels/timeline/overlays/OverlaysImpl.ts +1 -1
  130. package/front_end/panels/timeline/overlays/components/EntryLabelOverlay.ts +4 -4
  131. package/front_end/panels/web_audio/WebAudioView.ts +1 -0
  132. package/front_end/third_party/chromium/README.chromium +1 -1
  133. package/front_end/third_party/lighthouse/README.chromium +2 -2
  134. package/front_end/third_party/lighthouse/lighthouse-dt-bundle.js +1530 -2426
  135. package/front_end/third_party/lighthouse/locales/ar-XB.json +107 -455
  136. package/front_end/third_party/lighthouse/locales/ar.json +107 -455
  137. package/front_end/third_party/lighthouse/locales/bg.json +96 -444
  138. package/front_end/third_party/lighthouse/locales/ca.json +96 -444
  139. package/front_end/third_party/lighthouse/locales/cs.json +96 -444
  140. package/front_end/third_party/lighthouse/locales/da.json +96 -444
  141. package/front_end/third_party/lighthouse/locales/de.json +96 -444
  142. package/front_end/third_party/lighthouse/locales/el.json +96 -444
  143. package/front_end/third_party/lighthouse/locales/en-GB.json +96 -444
  144. package/front_end/third_party/lighthouse/locales/en-US.json +116 -467
  145. package/front_end/third_party/lighthouse/locales/en-XA.json +93 -441
  146. package/front_end/third_party/lighthouse/locales/en-XL.json +116 -467
  147. package/front_end/third_party/lighthouse/locales/es-419.json +96 -444
  148. package/front_end/third_party/lighthouse/locales/es.json +96 -444
  149. package/front_end/third_party/lighthouse/locales/fi.json +96 -444
  150. package/front_end/third_party/lighthouse/locales/fil.json +96 -444
  151. package/front_end/third_party/lighthouse/locales/fr.json +96 -444
  152. package/front_end/third_party/lighthouse/locales/he.json +118 -466
  153. package/front_end/third_party/lighthouse/locales/hi.json +96 -444
  154. package/front_end/third_party/lighthouse/locales/hr.json +100 -448
  155. package/front_end/third_party/lighthouse/locales/hu.json +96 -444
  156. package/front_end/third_party/lighthouse/locales/id.json +96 -444
  157. package/front_end/third_party/lighthouse/locales/it.json +96 -444
  158. package/front_end/third_party/lighthouse/locales/ja.json +96 -444
  159. package/front_end/third_party/lighthouse/locales/ko.json +97 -445
  160. package/front_end/third_party/lighthouse/locales/lt.json +96 -444
  161. package/front_end/third_party/lighthouse/locales/lv.json +97 -445
  162. package/front_end/third_party/lighthouse/locales/nl.json +96 -444
  163. package/front_end/third_party/lighthouse/locales/no.json +96 -444
  164. package/front_end/third_party/lighthouse/locales/pl.json +96 -444
  165. package/front_end/third_party/lighthouse/locales/pt-PT.json +96 -444
  166. package/front_end/third_party/lighthouse/locales/pt.json +97 -445
  167. package/front_end/third_party/lighthouse/locales/ro.json +97 -445
  168. package/front_end/third_party/lighthouse/locales/ru.json +96 -444
  169. package/front_end/third_party/lighthouse/locales/sk.json +96 -444
  170. package/front_end/third_party/lighthouse/locales/sl.json +96 -444
  171. package/front_end/third_party/lighthouse/locales/sr-Latn.json +96 -444
  172. package/front_end/third_party/lighthouse/locales/sr.json +96 -444
  173. package/front_end/third_party/lighthouse/locales/sv.json +96 -444
  174. package/front_end/third_party/lighthouse/locales/ta.json +96 -444
  175. package/front_end/third_party/lighthouse/locales/te.json +97 -445
  176. package/front_end/third_party/lighthouse/locales/th.json +96 -444
  177. package/front_end/third_party/lighthouse/locales/tr.json +96 -444
  178. package/front_end/third_party/lighthouse/locales/uk.json +96 -444
  179. package/front_end/third_party/lighthouse/locales/vi.json +96 -444
  180. package/front_end/third_party/lighthouse/locales/zh-HK.json +96 -444
  181. package/front_end/third_party/lighthouse/locales/zh-TW.json +97 -445
  182. package/front_end/third_party/lighthouse/locales/zh.json +96 -444
  183. package/front_end/third_party/lighthouse/report/bundle.d.ts +8 -14
  184. package/front_end/third_party/lighthouse/report/bundle.js +10 -49
  185. package/front_end/third_party/lighthouse/report-assets/report-generator.mjs +1 -1
  186. package/front_end/third_party/web-vitals/README.chromium +5 -8
  187. package/front_end/third_party/web-vitals/package/README.md +191 -152
  188. package/front_end/third_party/web-vitals/package/dist/modules/attribution/index.d.ts +0 -1
  189. package/front_end/third_party/web-vitals/package/dist/modules/attribution/index.js +0 -1
  190. package/front_end/third_party/web-vitals/package/dist/modules/attribution/onCLS.d.ts +2 -2
  191. package/front_end/third_party/web-vitals/package/dist/modules/attribution/onCLS.js +45 -26
  192. package/front_end/third_party/web-vitals/package/dist/modules/attribution/onFCP.d.ts +2 -2
  193. package/front_end/third_party/web-vitals/package/dist/modules/attribution/onFCP.js +3 -3
  194. package/front_end/third_party/web-vitals/package/dist/modules/attribution/onINP.d.ts +10 -10
  195. package/front_end/third_party/web-vitals/package/dist/modules/attribution/onINP.js +307 -206
  196. package/front_end/third_party/web-vitals/package/dist/modules/attribution/onLCP.d.ts +2 -2
  197. package/front_end/third_party/web-vitals/package/dist/modules/attribution/onLCP.js +69 -49
  198. package/front_end/third_party/web-vitals/package/dist/modules/attribution/onTTFB.d.ts +2 -2
  199. package/front_end/third_party/web-vitals/package/dist/modules/attribution/onTTFB.js +2 -2
  200. package/front_end/third_party/web-vitals/package/dist/modules/index.d.ts +0 -1
  201. package/front_end/third_party/web-vitals/package/dist/modules/index.js +0 -1
  202. package/front_end/third_party/web-vitals/package/dist/modules/lib/InteractionManager.d.ts +33 -0
  203. package/front_end/third_party/web-vitals/package/dist/modules/lib/InteractionManager.js +111 -0
  204. package/front_end/third_party/web-vitals/package/dist/modules/lib/LCPEntryManager.d.ts +4 -0
  205. package/front_end/third_party/web-vitals/package/dist/modules/{attribution/deprecated.js → lib/LCPEntryManager.js} +6 -7
  206. package/front_end/third_party/web-vitals/package/dist/modules/lib/LayoutShiftManager.d.ts +6 -0
  207. package/front_end/third_party/web-vitals/package/dist/modules/lib/LayoutShiftManager.js +44 -0
  208. package/front_end/third_party/web-vitals/package/dist/modules/lib/bindReporter.js +1 -1
  209. package/front_end/third_party/web-vitals/package/dist/modules/lib/generateUniqueID.js +1 -1
  210. package/front_end/third_party/web-vitals/package/dist/modules/lib/getActivationStart.js +1 -1
  211. package/front_end/third_party/web-vitals/package/dist/modules/lib/getNavigationEntry.js +5 -7
  212. package/front_end/third_party/web-vitals/package/dist/modules/lib/getSelector.d.ts +1 -1
  213. package/front_end/third_party/web-vitals/package/dist/modules/lib/getSelector.js +9 -12
  214. package/front_end/third_party/web-vitals/package/dist/modules/lib/getVisibilityWatcher.d.ts +1 -0
  215. package/front_end/third_party/web-vitals/package/dist/modules/lib/getVisibilityWatcher.js +52 -33
  216. package/front_end/third_party/web-vitals/package/dist/modules/lib/initMetric.d.ts +0 -2
  217. package/front_end/third_party/web-vitals/package/dist/modules/lib/initMetric.js +2 -2
  218. package/front_end/third_party/web-vitals/package/dist/modules/lib/initUnique.d.ts +6 -0
  219. package/front_end/third_party/web-vitals/package/dist/modules/{deprecated.js → lib/initUnique.js} +11 -4
  220. package/front_end/third_party/web-vitals/package/dist/modules/lib/observe.js +3 -6
  221. package/front_end/third_party/web-vitals/package/dist/modules/lib/polyfills/interactionCountPolyfill.js +6 -6
  222. package/front_end/third_party/web-vitals/package/dist/modules/lib/{whenIdle.d.ts → whenIdleOrHidden.d.ts} +1 -1
  223. package/front_end/third_party/web-vitals/package/dist/modules/lib/{whenIdle.js → whenIdleOrHidden.js} +10 -8
  224. package/front_end/third_party/web-vitals/package/dist/modules/onCLS.js +17 -35
  225. package/front_end/third_party/web-vitals/package/dist/modules/onFCP.js +3 -5
  226. package/front_end/third_party/web-vitals/package/dist/modules/onINP.d.ts +9 -7
  227. package/front_end/third_party/web-vitals/package/dist/modules/onINP.js +27 -19
  228. package/front_end/third_party/web-vitals/package/dist/modules/onLCP.js +33 -26
  229. package/front_end/third_party/web-vitals/package/dist/modules/onTTFB.js +2 -4
  230. package/front_end/third_party/web-vitals/package/dist/modules/types/base.d.ts +6 -5
  231. package/front_end/third_party/web-vitals/package/dist/modules/types/cls.d.ts +5 -3
  232. package/front_end/third_party/web-vitals/package/dist/modules/types/inp.d.ts +80 -33
  233. package/front_end/third_party/web-vitals/package/dist/modules/types/lcp.d.ts +6 -2
  234. package/front_end/third_party/web-vitals/package/dist/modules/types.d.ts +28 -4
  235. package/front_end/third_party/web-vitals/package/dist/modules/types.js +0 -1
  236. package/front_end/third_party/web-vitals/package/package.json +4 -10
  237. package/front_end/third_party/web-vitals/package/src/attribution/index.ts +0 -1
  238. package/front_end/third_party/web-vitals/package/src/attribution/onCLS.ts +58 -33
  239. package/front_end/third_party/web-vitals/package/src/attribution/onFCP.ts +4 -4
  240. package/front_end/third_party/web-vitals/package/src/attribution/onINP.ts +382 -258
  241. package/front_end/third_party/web-vitals/package/src/attribution/onLCP.ts +96 -69
  242. package/front_end/third_party/web-vitals/package/src/attribution/onTTFB.ts +3 -3
  243. package/front_end/third_party/web-vitals/package/src/index.ts +0 -1
  244. package/front_end/third_party/web-vitals/package/src/lib/InteractionManager.ts +146 -0
  245. package/front_end/third_party/web-vitals/package/src/{attribution/deprecated.ts → lib/LCPEntryManager.ts} +6 -9
  246. package/front_end/third_party/web-vitals/package/src/lib/LayoutShiftManager.ts +50 -0
  247. package/front_end/third_party/web-vitals/package/src/lib/bindReporter.ts +1 -1
  248. package/front_end/third_party/web-vitals/package/src/lib/generateUniqueID.ts +1 -1
  249. package/front_end/third_party/web-vitals/package/src/lib/getActivationStart.ts +1 -1
  250. package/front_end/third_party/web-vitals/package/src/lib/getNavigationEntry.ts +5 -8
  251. package/front_end/third_party/web-vitals/package/src/lib/getSelector.ts +12 -12
  252. package/front_end/third_party/web-vitals/package/src/lib/getVisibilityWatcher.ts +57 -35
  253. package/front_end/third_party/web-vitals/package/src/lib/initMetric.ts +2 -2
  254. package/front_end/third_party/web-vitals/package/src/{deprecated.ts → lib/initUnique.ts} +14 -8
  255. package/front_end/third_party/web-vitals/package/src/lib/observe.ts +3 -11
  256. package/front_end/third_party/web-vitals/package/src/lib/polyfills/interactionCountPolyfill.ts +12 -6
  257. package/front_end/third_party/web-vitals/package/src/lib/{whenIdle.ts → whenIdleOrHidden.ts} +10 -8
  258. package/front_end/third_party/web-vitals/package/src/onCLS.ts +17 -38
  259. package/front_end/third_party/web-vitals/package/src/onFCP.ts +3 -6
  260. package/front_end/third_party/web-vitals/package/src/onINP.ts +33 -28
  261. package/front_end/third_party/web-vitals/package/src/onLCP.ts +36 -29
  262. package/front_end/third_party/web-vitals/package/src/onTTFB.ts +2 -5
  263. package/front_end/third_party/web-vitals/package/src/types/base.ts +5 -5
  264. package/front_end/third_party/web-vitals/package/src/types/cls.ts +5 -3
  265. package/front_end/third_party/web-vitals/package/src/types/inp.ts +88 -33
  266. package/front_end/third_party/web-vitals/package/src/types/lcp.ts +6 -2
  267. package/front_end/third_party/web-vitals/package/src/types.ts +47 -4
  268. package/front_end/third_party/web-vitals/patches/0001-Add-onEachInteraction-to-onINP-options.patch +75 -0
  269. package/front_end/third_party/web-vitals/rebuild.sh +32 -18
  270. package/front_end/third_party/web-vitals/web-vitals-tsconfig.json +5 -10
  271. package/front_end/third_party/web-vitals/web-vitals.ts +0 -2
  272. package/front_end/ui/components/buttons/Button.ts +1 -1
  273. package/front_end/ui/components/docs/console_insight/basic.ts +3 -2
  274. package/front_end/ui/components/legacy_wrapper/LegacyWrapper.ts +2 -0
  275. package/front_end/ui/components/text_editor/TextEditor.ts +0 -2
  276. package/front_end/ui/legacy/EmptyWidget.ts +11 -1
  277. package/front_end/ui/legacy/InspectorView.ts +2 -0
  278. package/front_end/ui/legacy/SplitWidget.ts +2 -0
  279. package/front_end/ui/legacy/TabbedPane.ts +1 -0
  280. package/front_end/ui/legacy/TargetCrashedScreen.ts +1 -0
  281. package/front_end/ui/legacy/Toolbar.ts +25 -4
  282. package/front_end/ui/legacy/UIUtils.ts +28 -13
  283. package/front_end/ui/legacy/ViewManager.ts +1 -0
  284. package/front_end/ui/legacy/Widget.ts +5 -0
  285. package/front_end/ui/legacy/components/color_picker/FormatPickerContextMenu.ts +7 -20
  286. package/front_end/ui/legacy/components/color_picker/Spectrum.ts +2 -0
  287. package/front_end/ui/legacy/components/cookie_table/CookiesTable.ts +1 -0
  288. package/front_end/ui/legacy/components/data_grid/DataGridElement.ts +1 -1
  289. package/front_end/ui/legacy/components/inline_editor/BezierEditor.ts +1 -0
  290. package/front_end/ui/legacy/components/perf_ui/ChartViewport.ts +1 -0
  291. package/front_end/ui/legacy/components/quick_open/FilteredListWidget.ts +1 -0
  292. package/front_end/ui/legacy/components/source_frame/FontView.ts +1 -0
  293. package/front_end/ui/legacy/components/source_frame/ImageView.ts +1 -0
  294. package/front_end/ui/legacy/components/source_frame/JSONView.ts +1 -0
  295. package/front_end/ui/legacy/components/source_frame/SourceFrame.ts +1 -0
  296. package/front_end/ui/legacy/components/source_frame/StreamingContentHexView.ts +9 -8
  297. package/front_end/ui/visual_logging/KnownContextValues.ts +17 -0
  298. package/mcp/README.md +7 -0
  299. package/mcp/mcp.ts +8 -0
  300. package/package.json +1 -1
  301. package/front_end/models/live-metrics/web-vitals-injected/OnEachInteraction.ts +0 -34
  302. package/front_end/third_party/web-vitals/package/attribution.d.ts +0 -16
  303. package/front_end/third_party/web-vitals/package/attribution.js +0 -18
  304. package/front_end/third_party/web-vitals/package/dist/modules/attribution/deprecated.d.ts +0 -7
  305. package/front_end/third_party/web-vitals/package/dist/modules/attribution/onFID.d.ts +0 -11
  306. package/front_end/third_party/web-vitals/package/dist/modules/attribution/onFID.js +0 -46
  307. package/front_end/third_party/web-vitals/package/dist/modules/deprecated.d.ts +0 -5
  308. package/front_end/third_party/web-vitals/package/dist/modules/lib/interactions.d.ts +0 -31
  309. package/front_end/third_party/web-vitals/package/dist/modules/lib/interactions.js +0 -107
  310. package/front_end/third_party/web-vitals/package/dist/modules/lib/onHidden.d.ts +0 -1
  311. package/front_end/third_party/web-vitals/package/dist/modules/lib/onHidden.js +0 -22
  312. package/front_end/third_party/web-vitals/package/dist/modules/lib/polyfills/firstInputPolyfill.d.ts +0 -7
  313. package/front_end/third_party/web-vitals/package/dist/modules/lib/polyfills/firstInputPolyfill.js +0 -147
  314. package/front_end/third_party/web-vitals/package/dist/modules/lib/polyfills/getFirstHiddenTimePolyfill.d.ts +0 -1
  315. package/front_end/third_party/web-vitals/package/dist/modules/lib/polyfills/getFirstHiddenTimePolyfill.js +0 -25
  316. package/front_end/third_party/web-vitals/package/dist/modules/onFID.d.ts +0 -13
  317. package/front_end/third_party/web-vitals/package/dist/modules/onFID.js +0 -70
  318. package/front_end/third_party/web-vitals/package/dist/modules/types/fid.d.ts +0 -46
  319. package/front_end/third_party/web-vitals/package/dist/modules/types/fid.js +0 -16
  320. package/front_end/third_party/web-vitals/package/src/attribution/onFID.ts +0 -62
  321. package/front_end/third_party/web-vitals/package/src/lib/interactions.ts +0 -139
  322. package/front_end/third_party/web-vitals/package/src/lib/onHidden.ts +0 -23
  323. package/front_end/third_party/web-vitals/package/src/lib/polyfills/firstInputPolyfill.ts +0 -174
  324. package/front_end/third_party/web-vitals/package/src/onFID.ts +0 -105
  325. package/front_end/third_party/web-vitals/package/src/types/fid.ts +0 -65
  326. package/front_end/ui/components/text_editor/textEditor.css +0 -18
  327. package/front_end/ui/legacy/inlineButton.css +0 -22
  328. /package/front_end/entrypoints/{rehydrated_devtools_app/rehydrated_devtools_app.ts → trace_app/trace_app.ts} +0 -0
@@ -53,3 +53,20 @@
53
53
  white-space: pre-line;
54
54
  text-align: center;
55
55
  }
56
+
57
+ .inline-button {
58
+ display: inline-flex;
59
+ border: 1px solid var(--sys-color-neutral-outline);
60
+ border-radius: 4px;
61
+ position: relative;
62
+ vertical-align: sub;
63
+ margin: 2px;
64
+ background-color: var(--sys-color-cdt-base-container);
65
+ justify-content: center;
66
+ width: 28px;
67
+ }
68
+
69
+ .inline-button:hover {
70
+ border-color: transparent;
71
+ background-color: var(--sys-color-state-hover-on-subtle);
72
+ }
@@ -330,6 +330,7 @@ export class ComputedStyleWidget extends UI.ThrottledWidget.ThrottledWidget {
330
330
  }
331
331
 
332
332
  override willHide(): void {
333
+ super.willHide();
333
334
  UI.Context.Context.instance().setFlavor(ComputedStyleWidget, null);
334
335
  }
335
336
 
@@ -501,6 +501,7 @@ export class LayoutPane extends UI.Widget.Widget {
501
501
  }
502
502
 
503
503
  override willHide(): void {
504
+ super.willHide();
504
505
  for (const setting of this.#settings) {
505
506
  Common.Settings.Settings.instance().moduleSetting(setting.name).removeChangeListener(this.requestUpdate, this);
506
507
  }
@@ -58,6 +58,7 @@ export class NodeStackTraceWidget extends UI.ThrottledWidget.ThrottledWidget {
58
58
  }
59
59
 
60
60
  override willHide(): void {
61
+ super.willHide();
61
62
  UI.Context.Context.instance().removeFlavorChangeListener(SDK.DOMModel.DOMNode, this.update, this);
62
63
  }
63
64
 
@@ -1136,7 +1136,11 @@ export class BezierRenderer extends rendererBase(SDK.CSSPropertyParserMatchers.B
1136
1136
  const bezierText = document.createElement('span');
1137
1137
  bezierText.append(...nodes);
1138
1138
  new BezierPopoverIcon({treeElement: this.#treeElement, swatchPopoverHelper, swatch: icon, bezierText});
1139
- return [icon, bezierText];
1139
+ const iconAndTextContainer = document.createElement('span');
1140
+ iconAndTextContainer.classList.add('bezier-icon-and-text');
1141
+ iconAndTextContainer.append(icon);
1142
+ iconAndTextContainer.append(bezierText);
1143
+ return [iconAndTextContainer];
1140
1144
  }
1141
1145
  }
1142
1146
 
@@ -303,3 +303,20 @@ devtools-icon.open-in-animations-panel {
303
303
  .tracing-anchor {
304
304
  text-decoration: underline dotted var(--sys-color-token-meta);
305
305
  }
306
+
307
+ devtools-icon.bezier-swatch-icon {
308
+ position: relative;
309
+ transform: scale(0.7);
310
+ margin: -5px -2px -3px -4px;
311
+ user-select: none;
312
+ color: var(--icon-css);
313
+ cursor: default;
314
+
315
+ &:hover {
316
+ color: var(--icon-css-hover);
317
+ }
318
+ }
319
+
320
+ span.bezier-icon-and-text {
321
+ white-space: nowrap;
322
+ }
@@ -442,11 +442,13 @@ export class DeviceModeView extends UI.Widget.VBox {
442
442
  }
443
443
 
444
444
  override wasShown(): void {
445
+ super.wasShown();
445
446
  this.measureHandles();
446
447
  this.toolbar.restore();
447
448
  }
448
449
 
449
450
  override willHide(): void {
451
+ super.willHide();
450
452
  this.model.emulate(EmulationModel.DeviceModeModel.Type.None, null, null);
451
453
  }
452
454
 
@@ -7,7 +7,6 @@ import type * as UI from '../../ui/legacy/legacy.js';
7
7
  import * as Console from '../console/console.js';
8
8
 
9
9
  import {ConsoleInsight} from './components/ConsoleInsight.js';
10
- import {PromptBuilder} from './PromptBuilder.js';
11
10
 
12
11
  export class ActionDelegate implements UI.ActionRegistration.ActionDelegate {
13
12
  handleAction(context: UI.Context.Context, actionId: string): boolean {
@@ -24,7 +23,7 @@ export class ActionDelegate implements UI.ActionRegistration.ActionDelegate {
24
23
  } else if (actionId === 'explain.console-message.hover') {
25
24
  Host.userMetrics.actionTaken(Host.UserMetrics.Action.InsightRequestedViaHoverButton);
26
25
  }
27
- const promptBuilder = new PromptBuilder(consoleViewMessage);
26
+ const promptBuilder = new Console.PromptBuilder.PromptBuilder(consoleViewMessage);
28
27
  const aidaClient = new Host.AidaClient.AidaClient();
29
28
  void ConsoleInsight.create(promptBuilder, aidaClient).then(insight => {
30
29
  consoleViewMessage.setInsight(insight);
@@ -17,7 +17,7 @@ import * as MarkdownView from '../../../ui/components/markdown_view/markdown_vie
17
17
  import * as UI from '../../../ui/legacy/legacy.js';
18
18
  import * as Lit from '../../../ui/lit/lit.js';
19
19
  import * as VisualLogging from '../../../ui/visual_logging/visual_logging.js';
20
- import {type PromptBuilder, type Source, SourceType} from '../PromptBuilder.js';
20
+ import * as Console from '../../console/console.js';
21
21
 
22
22
  import styles from './consoleInsight.css.js';
23
23
  import listStyles from './consoleInsightSourcesList.css.js';
@@ -163,18 +163,18 @@ export class CloseEvent extends Event {
163
163
  }
164
164
  }
165
165
 
166
- type PublicPromptBuilder = Pick<PromptBuilder, 'buildPrompt'|'getSearchQuery'>;
166
+ type PublicPromptBuilder = Pick<Console.PromptBuilder.PromptBuilder, 'buildPrompt'|'getSearchQuery'>;
167
167
  type PublicAidaClient = Pick<Host.AidaClient.AidaClient, 'doConversation'|'registerClientEvent'>;
168
168
 
169
- function localizeType(sourceType: SourceType): string {
169
+ function localizeType(sourceType: Console.PromptBuilder.SourceType): string {
170
170
  switch (sourceType) {
171
- case SourceType.MESSAGE:
171
+ case Console.PromptBuilder.SourceType.MESSAGE:
172
172
  return i18nString(UIStrings.consoleMessage);
173
- case SourceType.STACKTRACE:
173
+ case Console.PromptBuilder.SourceType.STACKTRACE:
174
174
  return i18nString(UIStrings.stackTrace);
175
- case SourceType.NETWORK_REQUEST:
175
+ case Console.PromptBuilder.SourceType.NETWORK_REQUEST:
176
176
  return i18nString(UIStrings.networkRequest);
177
- case SourceType.RELATED_CODE:
177
+ case Console.PromptBuilder.SourceType.RELATED_CODE:
178
178
  return i18nString(UIStrings.relatedCode);
179
179
  }
180
180
  }
@@ -205,7 +205,7 @@ type StateData = {
205
205
  type: State.INSIGHT,
206
206
  tokens: MarkdownView.MarkdownView.MarkdownViewData['tokens'],
207
207
  validMarkdown: boolean,
208
- sources: Source[],
208
+ sources: Console.PromptBuilder.Source[],
209
209
  isPageReloadRecommended: boolean,
210
210
  completed: boolean,
211
211
  directCitationUrls: string[],
@@ -215,7 +215,7 @@ type StateData = {
215
215
  error: string,
216
216
  }|{
217
217
  type: State.CONSENT_REMINDER,
218
- sources: Source[],
218
+ sources: Console.PromptBuilder.Source[],
219
219
  isPageReloadRecommended: boolean,
220
220
  }|{
221
221
  type: State.SETTING_IS_NOT_TRUE,
@@ -631,7 +631,9 @@ export class ConsoleInsight extends HTMLElement {
631
631
 
632
632
  async *
633
633
  #getInsight(): AsyncGenerator<
634
- {sources: Source[], isPageReloadRecommended: boolean}&Host.AidaClient.DoConversationResponse, void, void> {
634
+ {sources: Console.PromptBuilder.Source[], isPageReloadRecommended: boolean}&
635
+ Host.AidaClient.DoConversationResponse,
636
+ void, void> {
635
637
  const {prompt, sources, isPageReloadRecommended} = await this.#promptBuilder.buildPrompt();
636
638
  try {
637
639
  for await (const response of this.#aidaClient.doConversation(
@@ -1142,7 +1144,7 @@ export class ConsoleInsight extends HTMLElement {
1142
1144
 
1143
1145
  class ConsoleInsightSourcesList extends HTMLElement {
1144
1146
  readonly #shadow = this.attachShadow({mode: 'open'});
1145
- #sources: Source[] = [];
1147
+ #sources: Console.PromptBuilder.Source[] = [];
1146
1148
  #isPageReloadRecommended = false;
1147
1149
 
1148
1150
  #render(): void {
@@ -1167,7 +1169,7 @@ class ConsoleInsightSourcesList extends HTMLElement {
1167
1169
  // clang-format on
1168
1170
  }
1169
1171
 
1170
- set sources(values: Source[]) {
1172
+ set sources(values: Console.PromptBuilder.Source[]) {
1171
1173
  this.#sources = values;
1172
1174
  this.#render();
1173
1175
  }
@@ -4,4 +4,3 @@
4
4
 
5
5
  export * from './components/ConsoleInsight.js';
6
6
  export * from './ActionDelegate.js';
7
- export * from './PromptBuilder.js';
@@ -63,7 +63,7 @@ UI.ViewManager.registerViewExtension({
63
63
  isPreviewFeature: true,
64
64
  async loadView() {
65
65
  const Timeline = await loadTimelineModule();
66
- return Timeline.TimelinePanel.TimelinePanel.instance({forceNew: null, isNode: true});
66
+ return Timeline.TimelinePanel.TimelinePanel.instance({forceNew: null});
67
67
  },
68
68
  });
69
69
 
@@ -193,10 +193,12 @@ export class Layers3DView extends Common.ObjectWrapper.eventMixin<EventTypes, ty
193
193
  }
194
194
 
195
195
  override willHide(): void {
196
+ super.willHide();
196
197
  this.textureManager.suspend();
197
198
  }
198
199
 
199
200
  override wasShown(): void {
201
+ super.wasShown();
200
202
  this.textureManager.resume();
201
203
  if (!this.needsUpdate) {
202
204
  return;
@@ -1,6 +1,7 @@
1
1
  // Copyright 2018 The Chromium Authors
2
2
  // Use of this source code is governed by a BSD-style license that can be
3
3
  // found in the LICENSE file.
4
+ /* eslint-disable rulesdir/no-imperative-dom-api */
4
5
 
5
6
  import * as Common from '../../core/common/common.js';
6
7
  import * as i18n from '../../core/i18n/i18n.js';
@@ -145,24 +145,16 @@ export class LinearMemoryInspectorView extends UI.Widget.VBox {
145
145
  this.firstTimeOpen = true;
146
146
 
147
147
  this.#inspector = new LinearMemoryInspectorComponents.LinearMemoryInspector.LinearMemoryInspector();
148
- this.#inspector.contentElement.addEventListener(
149
- LinearMemoryInspectorComponents.LinearMemoryInspector.MemoryRequestEvent.eventName,
150
- (event: LinearMemoryInspectorComponents.LinearMemoryInspector.MemoryRequestEvent) =>
151
- this.#memoryRequested(event));
152
- this.#inspector.contentElement.addEventListener(
153
- LinearMemoryInspectorComponents.LinearMemoryInspector.AddressChangedEvent.eventName,
154
- (event: LinearMemoryInspectorComponents.LinearMemoryInspector.AddressChangedEvent) =>
155
- this.updateAddress(event.data));
156
- this.#inspector.contentElement.addEventListener(
157
- LinearMemoryInspectorComponents.LinearMemoryInspector.SettingsChangedEvent.eventName,
158
- (event: LinearMemoryInspectorComponents.LinearMemoryInspector.SettingsChangedEvent) => {
159
- // Stop event from bubbling up, since no element further up needs the event.
160
- event.stopPropagation();
161
- this.saveSettings(event.data);
162
- });
163
- this.#inspector.contentElement.addEventListener(
164
- LinearMemoryInspectorComponents.LinearMemoryHighlightChipList.DeleteMemoryHighlightEvent.eventName,
165
- (event: LinearMemoryInspectorComponents.LinearMemoryHighlightChipList.DeleteMemoryHighlightEvent) => {
148
+ this.#inspector.addEventListener(
149
+ LinearMemoryInspectorComponents.LinearMemoryInspector.Events.MEMORY_REQUEST, this.#memoryRequested, this);
150
+ this.#inspector.addEventListener(
151
+ LinearMemoryInspectorComponents.LinearMemoryInspector.Events.ADDRESS_CHANGED,
152
+ event => this.updateAddress(event.data));
153
+ this.#inspector.addEventListener(
154
+ LinearMemoryInspectorComponents.LinearMemoryInspector.Events.SETTINGS_CHANGED,
155
+ event => this.saveSettings(event.data));
156
+ this.#inspector.addEventListener(
157
+ LinearMemoryInspectorComponents.LinearMemoryInspector.Events.DELETE_MEMORY_HIGHLIGHT, event => {
166
158
  LinearMemoryInspectorController.instance().removeHighlight(this.#tabId, event.data);
167
159
  this.refreshData();
168
160
  });
@@ -191,6 +183,7 @@ export class LinearMemoryInspectorView extends UI.Widget.VBox {
191
183
  }
192
184
 
193
185
  override wasShown(): void {
186
+ super.wasShown();
194
187
  this.refreshData();
195
188
  }
196
189
 
@@ -214,7 +207,7 @@ export class LinearMemoryInspectorView extends UI.Widget.VBox {
214
207
  });
215
208
  }
216
209
 
217
- #memoryRequested(event: LinearMemoryInspectorComponents.LinearMemoryInspector.MemoryRequestEvent): void {
210
+ #memoryRequested(event: Common.EventTarget.EventTargetEvent<{start: number, end: number, address: number}>): void {
218
211
  const {start, end, address} = event.data;
219
212
  if (address < start || address >= end) {
220
213
  throw new Error('Requested address is out of bounds.');
@@ -68,34 +68,18 @@ export interface Settings {
68
68
  endianness: Endianness;
69
69
  }
70
70
 
71
- export class MemoryRequestEvent extends Event {
72
- static readonly eventName = 'memoryrequest';
73
- data: {start: number, end: number, address: number};
74
-
75
- constructor(start: number, end: number, address: number) {
76
- super(MemoryRequestEvent.eventName);
77
- this.data = {start, end, address};
78
- }
71
+ export const enum Events {
72
+ MEMORY_REQUEST = 'MemoryRequest',
73
+ ADDRESS_CHANGED = 'AddressChanged',
74
+ SETTINGS_CHANGED = 'SettingsChanged',
75
+ DELETE_MEMORY_HIGHLIGHT = 'DeleteMemoryHighlight',
79
76
  }
80
77
 
81
- export class AddressChangedEvent extends Event {
82
- static readonly eventName = 'addresschanged';
83
- data: number;
84
-
85
- constructor(address: number) {
86
- super(AddressChangedEvent.eventName);
87
- this.data = address;
88
- }
89
- }
90
-
91
- export class SettingsChangedEvent extends Event {
92
- static readonly eventName = 'settingschanged';
93
- data: Settings;
94
-
95
- constructor(settings: Settings) {
96
- super(SettingsChangedEvent.eventName);
97
- this.data = settings;
98
- }
78
+ export interface EventTypes {
79
+ [Events.MEMORY_REQUEST]: {start: number, end: number, address: number};
80
+ [Events.ADDRESS_CHANGED]: number;
81
+ [Events.SETTINGS_CHANGED]: Settings;
82
+ [Events.DELETE_MEMORY_HIGHLIGHT]: HighlightInfo;
99
83
  }
100
84
 
101
85
  class AddressHistoryEntry implements Common.SimpleHistoryManager.HistoryEntry {
@@ -138,6 +122,7 @@ export interface ViewInput {
138
122
  onNavigatePage: (e: PageNavigationEvent) => void;
139
123
  onNavigateHistory: (e: HistoryNavigationEvent) => boolean;
140
124
  onJumpToAddress: (e: JumpToPointerAddressEvent|JumpToHighlightedMemoryEvent) => void;
125
+ onDeleteMemoryHighlight: (e: DeleteMemoryHighlightEvent) => void;
141
126
  onByteSelected: (e: ByteSelectedEvent) => void;
142
127
  onResize: (e: ResizeEvent) => void;
143
128
  onValueTypeToggled: (e: ValueTypeToggledEvent) => void;
@@ -180,7 +165,8 @@ export const DEFAULT_VIEW = (input: ViewInput, _output: Record<string, unknown>,
180
165
  @historynavigation=${input.onNavigateHistory}></devtools-linear-memory-inspector-navigator>
181
166
  <devtools-linear-memory-highlight-chip-list
182
167
  .data=${{highlightInfos: highlightedMemoryAreas, focusedMemoryHighlight}}
183
- @jumptohighlightedmemory=${input.onJumpToAddress}>
168
+ @jumptohighlightedmemory=${input.onJumpToAddress}
169
+ @deletememoryhighlight=${input.onDeleteMemoryHighlight}>
184
170
  </devtools-linear-memory-highlight-chip-list>
185
171
  <devtools-linear-memory-inspector-viewer
186
172
  .data=${
@@ -263,7 +249,8 @@ function getSmallestEnclosingMemoryHighlight(highlightedMemoryAreas: HighlightIn
263
249
 
264
250
  export type View = typeof DEFAULT_VIEW;
265
251
 
266
- export class LinearMemoryInspector extends UI.Widget.Widget {
252
+ export class LinearMemoryInspector extends Common.ObjectWrapper.eventMixin<EventTypes, typeof UI.Widget.Widget>(
253
+ UI.Widget.Widget) {
267
254
  readonly #history = new Common.SimpleHistoryManager.SimpleHistoryManager(10);
268
255
 
269
256
  #memory = new Uint8Array();
@@ -338,7 +325,7 @@ export class LinearMemoryInspector extends UI.Widget.Widget {
338
325
  const {start, end} = getPageRangeForAddress(this.#address, this.#numBytesPerPage, this.#outerMemoryLength);
339
326
 
340
327
  if (start < this.#memoryOffset || end > this.#memoryOffset + this.#memory.length) {
341
- this.contentElement.dispatchEvent(new MemoryRequestEvent(start, end, this.#address));
328
+ this.dispatchEventToListeners(Events.MEMORY_REQUEST, {start, end, address: this.#address});
342
329
  return;
343
330
  }
344
331
 
@@ -377,6 +364,7 @@ export class LinearMemoryInspector extends UI.Widget.Widget {
377
364
  onNavigatePage: this.#navigatePage.bind(this),
378
365
  onNavigateHistory: this.#navigateHistory.bind(this),
379
366
  onJumpToAddress: this.#onJumpToAddress.bind(this),
367
+ onDeleteMemoryHighlight: this.#onDeleteMemoryHighlight.bind(this),
380
368
  onByteSelected: this.#onByteSelected.bind(this),
381
369
  onResize: this.#resize.bind(this),
382
370
  onValueTypeToggled: this.#onValueTypeToggled.bind(this),
@@ -396,9 +384,14 @@ export class LinearMemoryInspector extends UI.Widget.Widget {
396
384
  this.#jumpToAddress(addressInRange);
397
385
  }
398
386
 
387
+ #onDeleteMemoryHighlight(e: DeleteMemoryHighlightEvent): void {
388
+ e.stopPropagation();
389
+ this.dispatchEventToListeners(Events.DELETE_MEMORY_HIGHLIGHT, e.data);
390
+ }
391
+
399
392
  #onRefreshRequest(): void {
400
393
  const {start, end} = getPageRangeForAddress(this.#address, this.#numBytesPerPage, this.#outerMemoryLength);
401
- this.contentElement.dispatchEvent(new MemoryRequestEvent(start, end, this.#address));
394
+ this.dispatchEventToListeners(Events.MEMORY_REQUEST, {start, end, address: this.#address});
402
395
  }
403
396
 
404
397
  #onByteSelected(e: ByteSelectedEvent): void {
@@ -413,7 +406,7 @@ export class LinearMemoryInspector extends UI.Widget.Widget {
413
406
 
414
407
  #onEndiannessChanged(e: EndiannessChangedEvent): void {
415
408
  this.#endianness = e.data;
416
- this.contentElement.dispatchEvent(new SettingsChangedEvent(this.#createSettings()));
409
+ this.dispatchEventToListeners(Events.SETTINGS_CHANGED, this.#createSettings());
417
410
  void this.requestUpdate();
418
411
  }
419
412
 
@@ -445,7 +438,7 @@ export class LinearMemoryInspector extends UI.Widget.Widget {
445
438
  } else {
446
439
  this.#valueTypes.delete(type);
447
440
  }
448
- this.contentElement.dispatchEvent(new SettingsChangedEvent(this.#createSettings()));
441
+ this.dispatchEventToListeners(Events.SETTINGS_CHANGED, this.#createSettings());
449
442
  void this.requestUpdate();
450
443
  }
451
444
 
@@ -453,7 +446,7 @@ export class LinearMemoryInspector extends UI.Widget.Widget {
453
446
  e.stopImmediatePropagation();
454
447
  const {type, mode} = e.data;
455
448
  this.#valueTypeModes.set(type, mode);
456
- this.contentElement.dispatchEvent(new SettingsChangedEvent(this.#createSettings()));
449
+ this.dispatchEventToListeners(Events.SETTINGS_CHANGED, this.#createSettings());
457
450
  void this.requestUpdate();
458
451
  }
459
452
 
@@ -490,16 +483,7 @@ export class LinearMemoryInspector extends UI.Widget.Widget {
490
483
  const historyEntry = new AddressHistoryEntry(address, () => this.#jumpToAddress(address));
491
484
  this.#history.push(historyEntry);
492
485
  this.#address = address;
493
- this.contentElement.dispatchEvent(new AddressChangedEvent(this.#address));
486
+ this.dispatchEventToListeners(Events.ADDRESS_CHANGED, this.#address);
494
487
  void this.requestUpdate();
495
488
  }
496
489
  }
497
-
498
- declare global {
499
- interface HTMLElementEventMap {
500
- memoryrequest: MemoryRequestEvent;
501
- addresschanged: AddressChangedEvent;
502
- settingschanged: SettingsChangedEvent;
503
- deletememoryhighlight: DeleteMemoryHighlightEvent;
504
- }
505
- }
@@ -215,6 +215,7 @@ export class MainView extends UI.Panel.PanelWithSidebar implements SDK.TargetMan
215
215
  }
216
216
 
217
217
  override willHide(): void {
218
+ super.willHide();
218
219
  for (const model of SDK.TargetManager.TargetManager.instance().models(MediaModel, {scoped: true})) {
219
220
  this.removeEventListeners(model);
220
221
  }
@@ -281,6 +281,7 @@ export class TickingFlameChart extends UI.Widget.VBox {
281
281
  }
282
282
 
283
283
  override willHide(): void {
284
+ super.willHide();
284
285
  this.isShown = false;
285
286
  if (this.ticking) {
286
287
  this.stop();
@@ -288,6 +289,7 @@ export class TickingFlameChart extends UI.Widget.VBox {
288
289
  }
289
290
 
290
291
  override wasShown(): void {
292
+ super.wasShown();
291
293
  this.isShown = true;
292
294
  if (this.#canTick && !this.ticking) {
293
295
  this.start();