chrome-devtools-frontend 1.0.1538310 → 1.0.1539728

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 (245) hide show
  1. package/eslint.config.mjs +1 -1
  2. package/front_end/core/protocol_client/CDPConnection.ts +12 -10
  3. package/front_end/core/protocol_client/InspectorBackend.ts +74 -101
  4. package/front_end/core/protocol_client/NodeURL.ts +1 -3
  5. package/front_end/core/sdk/ChildTargetManager.ts +5 -41
  6. package/front_end/core/sdk/Connections.ts +9 -58
  7. package/front_end/core/sdk/DOMModel.ts +1 -0
  8. package/front_end/core/sdk/RehydratingConnection.ts +1 -1
  9. package/front_end/entrypoints/lighthouse_worker/LighthouseWorkerService.ts +15 -26
  10. package/front_end/entrypoints/node_app/{NodeConnectionsPanel.ts → app/NodeConnectionsPanel.ts} +8 -8
  11. package/front_end/entrypoints/node_app/{NodeMain.ts → app/NodeMain.ts} +11 -11
  12. package/front_end/entrypoints/node_app/app/app.ts +6 -0
  13. package/front_end/entrypoints/node_app/node_app.ts +4 -2
  14. package/front_end/generated/{InspectorBackendCommands.js → InspectorBackendCommands.ts} +16 -34
  15. package/front_end/models/trace/handlers/NetworkRequestsHandler.ts +18 -3
  16. package/front_end/models/trace/types/TraceEvents.ts +19 -0
  17. package/front_end/panels/ai_assistance/AiAssistancePanel.ts +49 -26
  18. package/front_end/panels/ai_assistance/aiAssistancePanel.css +1 -1
  19. package/front_end/panels/ai_assistance/ai_assistance.ts +1 -0
  20. package/front_end/panels/ai_assistance/components/ChatView.ts +1 -134
  21. package/front_end/panels/ai_assistance/components/DisabledWidget.ts +170 -0
  22. package/front_end/panels/ai_assistance/components/ExploreWidget.ts +4 -4
  23. package/front_end/panels/ai_assistance/components/chatView.css +0 -31
  24. package/front_end/panels/ai_assistance/components/disabledWidget.css +45 -0
  25. package/front_end/panels/animation/AnimationTimeline.ts +1 -1
  26. package/front_end/panels/application/components/FrameDetailsView.ts +1 -1
  27. package/front_end/panels/console/ConsoleViewMessage.ts +1 -1
  28. package/front_end/panels/css_overview/CSSOverviewCompletedView.ts +3 -3
  29. package/front_end/panels/elements/ElementsTreeElement.ts +123 -95
  30. package/front_end/panels/elements/ElementsTreeOutline.ts +2 -2
  31. package/front_end/panels/elements/NodeStackTraceWidget.ts +8 -2
  32. package/front_end/panels/explain/components/ConsoleInsight.ts +0 -1
  33. package/front_end/panels/lighthouse/LighthouseProtocolService.ts +57 -33
  34. package/front_end/panels/linear_memory_inspector/components/LinearMemoryInspector.ts +1 -1
  35. package/front_end/panels/linear_memory_inspector/components/LinearMemoryNavigator.ts +12 -5
  36. package/front_end/panels/network/RequestInitiatorView.ts +1 -1
  37. package/front_end/panels/network/components/EditableSpan.ts +1 -1
  38. package/front_end/panels/recorder/components/StepView.ts +1 -1
  39. package/front_end/panels/recorder/models/RecordingPlayer.ts +8 -7
  40. package/front_end/panels/settings/emulation/components/UserAgentClientHintsForm.ts +4 -4
  41. package/front_end/panels/timeline/TimelineFlameChartView.ts +10 -10
  42. package/front_end/panels/timeline/TimelinePanel.ts +3 -3
  43. package/front_end/panels/timeline/TimelineUIUtils.ts +21 -24
  44. package/front_end/panels/timeline/components/SidebarSingleInsightSet.ts +3 -2
  45. package/front_end/panels/utils/utils.ts +4 -2
  46. package/front_end/services/puppeteer/PuppeteerConnection.ts +56 -53
  47. package/front_end/third_party/puppeteer/README.chromium +2 -2
  48. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.d.ts +3 -1
  49. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.d.ts.map +1 -1
  50. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.js +4 -2
  51. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.js.map +1 -1
  52. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/BrowserContext.d.ts +3 -1
  53. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/BrowserContext.d.ts.map +1 -1
  54. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/BrowserContext.js.map +1 -1
  55. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BidiOverCdp.d.ts.map +1 -1
  56. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BidiOverCdp.js +1 -1
  57. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BidiOverCdp.js.map +1 -1
  58. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BrowserConnector.d.ts.map +1 -1
  59. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BrowserConnector.js +4 -3
  60. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BrowserConnector.js.map +1 -1
  61. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BrowserContext.d.ts +1 -1
  62. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BrowserContext.d.ts.map +1 -1
  63. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BrowserContext.js +1 -1
  64. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BrowserContext.js.map +1 -1
  65. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Connection.d.ts +2 -1
  66. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Connection.d.ts.map +1 -1
  67. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Connection.js +3 -2
  68. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Connection.js.map +1 -1
  69. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.d.ts.map +1 -1
  70. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.js +26 -9
  71. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.js.map +1 -1
  72. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.d.ts +1 -0
  73. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.d.ts.map +1 -1
  74. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.js +11 -0
  75. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.js.map +1 -1
  76. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Accessibility.d.ts.map +1 -1
  77. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Accessibility.js +9 -2
  78. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Accessibility.js.map +1 -1
  79. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserConnector.d.ts.map +1 -1
  80. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserConnector.js +4 -2
  81. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserConnector.js.map +1 -1
  82. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserContext.d.ts +1 -1
  83. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserContext.d.ts.map +1 -1
  84. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserContext.js +2 -2
  85. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserContext.js.map +1 -1
  86. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/CdpSession.d.ts.map +1 -1
  87. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/CdpSession.js +2 -1
  88. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/CdpSession.js.map +1 -1
  89. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Connection.d.ts +6 -1
  90. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Connection.d.ts.map +1 -1
  91. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Connection.js +11 -2
  92. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Connection.js.map +1 -1
  93. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/CallbackRegistry.d.ts +2 -0
  94. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/CallbackRegistry.d.ts.map +1 -1
  95. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/CallbackRegistry.js +4 -3
  96. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/CallbackRegistry.js.map +1 -1
  97. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConnectOptions.d.ts +7 -0
  98. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConnectOptions.d.ts.map +1 -1
  99. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/injected/injected.d.ts +1 -1
  100. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserLauncher.d.ts +4 -0
  101. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserLauncher.d.ts.map +1 -1
  102. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserLauncher.js +10 -4
  103. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserLauncher.js.map +1 -1
  104. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/Mutex.d.ts +2 -2
  105. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/version.d.ts +1 -1
  106. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/version.js +1 -1
  107. package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.d.ts +9 -3
  108. package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.js +37 -18
  109. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.d.ts +3 -1
  110. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.d.ts.map +1 -1
  111. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.js +4 -2
  112. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.js.map +1 -1
  113. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/BrowserContext.d.ts +3 -1
  114. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/BrowserContext.d.ts.map +1 -1
  115. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/BrowserContext.js.map +1 -1
  116. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BidiOverCdp.d.ts.map +1 -1
  117. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BidiOverCdp.js +1 -1
  118. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BidiOverCdp.js.map +1 -1
  119. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BrowserConnector.d.ts.map +1 -1
  120. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BrowserConnector.js +4 -3
  121. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BrowserConnector.js.map +1 -1
  122. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BrowserContext.d.ts +1 -1
  123. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BrowserContext.d.ts.map +1 -1
  124. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BrowserContext.js +1 -1
  125. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BrowserContext.js.map +1 -1
  126. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Connection.d.ts +2 -1
  127. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Connection.d.ts.map +1 -1
  128. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Connection.js +3 -2
  129. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Connection.js.map +1 -1
  130. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.d.ts.map +1 -1
  131. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.js +26 -9
  132. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.js.map +1 -1
  133. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.d.ts +1 -0
  134. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.d.ts.map +1 -1
  135. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.js +11 -0
  136. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.js.map +1 -1
  137. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Accessibility.d.ts.map +1 -1
  138. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Accessibility.js +9 -2
  139. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Accessibility.js.map +1 -1
  140. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserConnector.d.ts.map +1 -1
  141. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserConnector.js +4 -2
  142. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserConnector.js.map +1 -1
  143. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserContext.d.ts +1 -1
  144. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserContext.d.ts.map +1 -1
  145. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserContext.js +2 -2
  146. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserContext.js.map +1 -1
  147. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/CdpSession.d.ts.map +1 -1
  148. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/CdpSession.js +2 -1
  149. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/CdpSession.js.map +1 -1
  150. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Connection.d.ts +6 -1
  151. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Connection.d.ts.map +1 -1
  152. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Connection.js +11 -2
  153. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Connection.js.map +1 -1
  154. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/CallbackRegistry.d.ts +2 -0
  155. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/CallbackRegistry.d.ts.map +1 -1
  156. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/CallbackRegistry.js +4 -3
  157. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/CallbackRegistry.js.map +1 -1
  158. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConnectOptions.d.ts +7 -0
  159. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConnectOptions.d.ts.map +1 -1
  160. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserLauncher.d.ts +4 -0
  161. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserLauncher.d.ts.map +1 -1
  162. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserLauncher.js +10 -4
  163. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserLauncher.js.map +1 -1
  164. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/version.d.ts +1 -1
  165. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/version.js +1 -1
  166. package/front_end/third_party/puppeteer/package/lib/types.d.ts +9 -3
  167. package/front_end/third_party/puppeteer/package/package.json +3 -3
  168. package/front_end/third_party/puppeteer/package/src/api/Browser.ts +4 -2
  169. package/front_end/third_party/puppeteer/package/src/api/BrowserContext.ts +3 -1
  170. package/front_end/third_party/puppeteer/package/src/bidi/BidiOverCdp.ts +1 -0
  171. package/front_end/third_party/puppeteer/package/src/bidi/BrowserConnector.ts +8 -1
  172. package/front_end/third_party/puppeteer/package/src/bidi/BrowserContext.ts +1 -1
  173. package/front_end/third_party/puppeteer/package/src/bidi/Connection.ts +4 -1
  174. package/front_end/third_party/puppeteer/package/src/bidi/Page.ts +34 -10
  175. package/front_end/third_party/puppeteer/package/src/bidi/core/BrowsingContext.ts +13 -0
  176. package/front_end/third_party/puppeteer/package/src/cdp/Accessibility.ts +8 -2
  177. package/front_end/third_party/puppeteer/package/src/cdp/BrowserConnector.ts +4 -0
  178. package/front_end/third_party/puppeteer/package/src/cdp/BrowserContext.ts +2 -2
  179. package/front_end/third_party/puppeteer/package/src/cdp/CdpSession.ts +2 -1
  180. package/front_end/third_party/puppeteer/package/src/cdp/Connection.ts +15 -1
  181. package/front_end/third_party/puppeteer/package/src/common/CallbackRegistry.ts +7 -5
  182. package/front_end/third_party/puppeteer/package/src/common/ConnectOptions.ts +8 -0
  183. package/front_end/third_party/puppeteer/package/src/node/BrowserLauncher.ts +22 -1
  184. package/front_end/third_party/puppeteer/package/src/util/version.ts +1 -1
  185. package/front_end/ui/components/panel_feedback/PreviewToggle.ts +1 -1
  186. package/front_end/ui/components/switch/Switch.docs.ts +38 -0
  187. package/front_end/ui/components/tooltips/Tooltip.ts +69 -45
  188. package/front_end/ui/legacy/Slider.docs.ts +49 -0
  189. package/front_end/ui/legacy/components/utils/JSPresentationUtils.ts +77 -5
  190. package/front_end/ui/legacy/components/utils/Linkifier.ts +62 -3
  191. package/front_end/ui/visual_logging/KnownContextValues.ts +8 -0
  192. package/package.json +1 -1
  193. package/front_end/third_party/puppeteer/package/src/templates/version.ts.tmpl +0 -4
  194. package/front_end/ui/components/docs/color_swatch/basic.html +0 -32
  195. package/front_end/ui/components/docs/color_swatch/basic.ts +0 -38
  196. package/front_end/ui/components/docs/color_swatch/change-color.html +0 -24
  197. package/front_end/ui/components/docs/color_swatch/change-color.ts +0 -28
  198. package/front_end/ui/components/docs/computed_style_property/basic.html +0 -25
  199. package/front_end/ui/components/docs/computed_style_property/basic.ts +0 -19
  200. package/front_end/ui/components/docs/computed_style_property/traceable.html +0 -25
  201. package/front_end/ui/components/docs/computed_style_property/traceable.ts +0 -16
  202. package/front_end/ui/components/docs/computed_style_trace/basic.html +0 -25
  203. package/front_end/ui/components/docs/computed_style_trace/basic.ts +0 -24
  204. package/front_end/ui/components/docs/console_insight/basic.html +0 -28
  205. package/front_end/ui/components/docs/console_insight/basic.ts +0 -103
  206. package/front_end/ui/components/docs/console_insight/error.html +0 -28
  207. package/front_end/ui/components/docs/console_insight/error.ts +0 -33
  208. package/front_end/ui/components/docs/console_insight/loading.html +0 -28
  209. package/front_end/ui/components/docs/console_insight/loading.ts +0 -47
  210. package/front_end/ui/components/docs/elements_breadcrumbs/basic.html +0 -43
  211. package/front_end/ui/components/docs/elements_breadcrumbs/basic.ts +0 -54
  212. package/front_end/ui/components/docs/elements_breadcrumbs/helpers.ts +0 -29
  213. package/front_end/ui/components/docs/elements_breadcrumbs/scroll-to-active-element.html +0 -38
  214. package/front_end/ui/components/docs/elements_breadcrumbs/scroll-to-active-element.ts +0 -90
  215. package/front_end/ui/components/docs/elements_breadcrumbs/scroll.html +0 -29
  216. package/front_end/ui/components/docs/elements_breadcrumbs/scroll.ts +0 -62
  217. package/front_end/ui/components/docs/icon_button/basic.html +0 -34
  218. package/front_end/ui/components/docs/icon_button/basic.ts +0 -67
  219. package/front_end/ui/components/docs/issue_counter/basic.html +0 -35
  220. package/front_end/ui/components/docs/issue_counter/basic.ts +0 -34
  221. package/front_end/ui/components/docs/issue_link_icon/basic.html +0 -31
  222. package/front_end/ui/components/docs/issue_link_icon/basic.ts +0 -26
  223. package/front_end/ui/components/docs/linear_memory_inspector/basic.html +0 -26
  224. package/front_end/ui/components/docs/linear_memory_inspector/basic.ts +0 -44
  225. package/front_end/ui/components/docs/menu/basic.html +0 -28
  226. package/front_end/ui/components/docs/menu/basic.ts +0 -66
  227. package/front_end/ui/components/docs/recorder_control_button/basic.html +0 -20
  228. package/front_end/ui/components/docs/recorder_control_button/basic.ts +0 -15
  229. package/front_end/ui/components/docs/recorder_recording_list_view/basic.html +0 -20
  230. package/front_end/ui/components/docs/recorder_recording_list_view/basic.ts +0 -26
  231. package/front_end/ui/components/docs/recorder_select_button/basic.html +0 -20
  232. package/front_end/ui/components/docs/recorder_select_button/basic.ts +0 -81
  233. package/front_end/ui/components/docs/recorder_split_view/basic.html +0 -17
  234. package/front_end/ui/components/docs/recorder_split_view/basic.ts +0 -22
  235. package/front_end/ui/components/docs/request_link_icon/basic.html +0 -31
  236. package/front_end/ui/components/docs/request_link_icon/basic.ts +0 -21
  237. package/front_end/ui/components/docs/slider/basic.ts +0 -62
  238. package/front_end/ui/components/docs/style_property_editor/flex.html +0 -21
  239. package/front_end/ui/components/docs/style_property_editor/flex.ts +0 -52
  240. package/front_end/ui/components/docs/style_property_editor/grid.html +0 -22
  241. package/front_end/ui/components/docs/style_property_editor/grid.ts +0 -50
  242. package/front_end/ui/components/docs/style_property_editor/masonry.html +0 -21
  243. package/front_end/ui/components/docs/style_property_editor/masonry.ts +0 -50
  244. package/front_end/ui/components/docs/switch/basic.ts +0 -51
  245. /package/front_end/entrypoints/node_app/{nodeConnectionsPanel.css → app/nodeConnectionsPanel.css} +0 -0
@@ -1,7 +1,7 @@
1
1
  // Copyright 2024 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 @devtools/no-imperative-dom-api */
4
+
5
5
  /* eslint-disable @devtools/no-lit-render-outside-of-view */
6
6
 
7
7
  import '../../../ui/components/spinners/spinners.js';
@@ -9,7 +9,6 @@ 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 type * 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';
15
14
  import * as Workspace from '../../../models/workspace/workspace.js';
@@ -19,7 +18,6 @@ import * as Marked from '../../../third_party/marked/marked.js';
19
18
  import * as Buttons from '../../../ui/components/buttons/buttons.js';
20
19
  import type * as MarkdownView from '../../../ui/components/markdown_view/markdown_view.js';
21
20
  import type {MarkdownLitRenderer} from '../../../ui/components/markdown_view/MarkdownView.js';
22
- import * as uiI18n from '../../../ui/i18n/i18n.js';
23
21
  import * as UI from '../../../ui/legacy/legacy.js';
24
22
  import * as Lit from '../../../ui/lit/lit.js';
25
23
  import * as VisualLogging from '../../../ui/visual_logging/visual_logging.js';
@@ -31,47 +29,10 @@ import {UserActionRow} from './UserActionRow.js';
31
29
  const {html, Directives: {ifDefined, ref}} = Lit;
32
30
 
33
31
  const UIStrings = {
34
- /**
35
- * @description The error message when the user is not logged in into Chrome.
36
- */
37
- notLoggedIn: 'This feature is only available when you are signed into Chrome with your Google account',
38
- /**
39
- * @description Message shown when the user is offline.
40
- */
41
- offline: 'Check your internet connection and try again',
42
- /**
43
- * @description Text for a link to Chrome DevTools Settings.
44
- */
45
- settingsLink: 'AI assistance in Settings',
46
- /**
47
- * @description Text for asking the user to turn the AI assistance feature in settings first before they are able to use it.
48
- * @example {AI assistance in Settings} PH1
49
- */
50
- turnOnForStyles: 'Turn on {PH1} to get help with understanding CSS styles',
51
- /**
52
- * @description Text for asking the user to turn the AI assistance feature in settings first before they are able to use it.
53
- * @example {AI assistance in Settings} PH1
54
- */
55
- turnOnForStylesAndRequests: 'Turn on {PH1} to get help with styles and network requests',
56
- /**
57
- * @description Text for asking the user to turn the AI assistance feature in settings first before they are able to use it.
58
- * @example {AI assistance in Settings} PH1
59
- */
60
- turnOnForStylesRequestsAndFiles: 'Turn on {PH1} to get help with styles, network requests, and files',
61
- /**
62
- * @description Text for asking the user to turn the AI assistance feature in settings first before they are able to use it.
63
- * @example {AI assistance in Settings} PH1
64
- */
65
- turnOnForStylesRequestsPerformanceAndFiles:
66
- 'Turn on {PH1} to get help with styles, network requests, performance, and files',
67
32
  /**
68
33
  * @description The footer disclaimer that links to more information about the AI feature.
69
34
  */
70
35
  learnAbout: 'Learn about AI in DevTools',
71
- /**
72
- * @description Text informing the user that AI assistance is not available in Incognito mode or Guest mode.
73
- */
74
- notAvailableInIncognitoMode: 'AI assistance is not available in Incognito mode or Guest mode',
75
36
 
76
37
  /**
77
38
  * @description Label added to the text input to describe the context for screen readers. Not shown visibly on screen.
@@ -259,12 +220,6 @@ export interface ModelChatMessage {
259
220
 
260
221
  export type ChatMessage = UserChatMessage|ModelChatMessage;
261
222
 
262
- export const enum State {
263
- DISABLED_VIEW = 'disabled-view',
264
- CHAT_VIEW = 'chat-view',
265
- EXPLORE_VIEW = 'explore-view'
266
- }
267
-
268
223
  export interface Props {
269
224
  onTextSubmit:
270
225
  (text: string, imageInput?: Host.AidaClient.Part,
@@ -281,7 +236,6 @@ export interface Props {
281
236
  onLoadImage?: (file: File) => Promise<void>;
282
237
  changeManager: AiAssistanceModel.ChangeManager.ChangeManager;
283
238
  inspectElementToggled: boolean;
284
- state: State;
285
239
  aidaAvailability: Host.AidaClient.AidaAccessPreconditions;
286
240
  messages: ChatMessage[];
287
241
  selectedContext: AiAssistanceModel.AiAgent.ConversationContext<unknown>|null;
@@ -513,10 +467,6 @@ export class ChatView extends HTMLElement {
513
467
 
514
468
  #render(): void {
515
469
  const renderFooter = (): Lit.LitTemplate => {
516
- if (this.#props.state !== State.CHAT_VIEW) {
517
- return Lit.nothing;
518
- }
519
-
520
470
  const classes = Lit.Directives.classMap({
521
471
  'chat-view-footer': true,
522
472
  'has-conversation': !!this.#props.conversationType,
@@ -538,10 +488,6 @@ export class ChatView extends HTMLElement {
538
488
  };
539
489
 
540
490
  const renderInputOrReadOnlySection = (): Lit.LitTemplate => {
541
- if (this.#props.state !== State.CHAT_VIEW) {
542
- return Lit.nothing;
543
- }
544
-
545
491
  if (this.#props.conversationType && this.#props.isReadOnly) {
546
492
  return renderReadOnlySection({
547
493
  conversationType: this.#props.conversationType,
@@ -582,8 +528,6 @@ export class ChatView extends HTMLElement {
582
528
  <div class="chat-ui">
583
529
  <main @scroll=${this.#handleScroll} ${ref(this.#mainElementRef)}>
584
530
  ${renderMainContents({
585
- state: this.#props.state,
586
- aidaAvailability: this.#props.aidaAvailability,
587
531
  messages: this.#props.messages,
588
532
  isLoading: this.#props.isLoading,
589
533
  isReadOnly: this.#props.isReadOnly,
@@ -1504,75 +1448,7 @@ function renderChatInput({
1504
1448
  // clang-format on
1505
1449
  }
1506
1450
 
1507
- function renderAidaUnavailableContents(
1508
- aidaAvailability:
1509
- Exclude<Host.AidaClient.AidaAccessPreconditions, Host.AidaClient.AidaAccessPreconditions.AVAILABLE>):
1510
- Lit.TemplateResult {
1511
- switch (aidaAvailability) {
1512
- case Host.AidaClient.AidaAccessPreconditions.NO_ACCOUNT_EMAIL:
1513
- case Host.AidaClient.AidaAccessPreconditions.SYNC_IS_PAUSED: {
1514
- return html`${i18nString(UIStrings.notLoggedIn)}`;
1515
- }
1516
- case Host.AidaClient.AidaAccessPreconditions.NO_INTERNET: {
1517
- return html`${i18nString(UIStrings.offline)}`;
1518
- }
1519
- }
1520
- }
1521
-
1522
- function renderConsentViewContents(): Lit.TemplateResult {
1523
- const settingsLink = document.createElement('span');
1524
- settingsLink.textContent = i18nString(UIStrings.settingsLink);
1525
- settingsLink.classList.add('link');
1526
- UI.ARIAUtils.markAsLink(settingsLink);
1527
- settingsLink.addEventListener('click', () => {
1528
- void UI.ViewManager.ViewManager.instance().showView('chrome-ai');
1529
- });
1530
- settingsLink.setAttribute('jslog', `${VisualLogging.action('open-ai-settings').track({click: true})}`);
1531
-
1532
- let consentViewContents: HTMLSpanElement;
1533
- // TODO(ergunsh): Should this `view` access `hostConfig` at all?
1534
- const config = Root.Runtime.hostConfig;
1535
- if (config.isOffTheRecord) {
1536
- return html`${i18nString(UIStrings.notAvailableInIncognitoMode)}`;
1537
- }
1538
- if (config.devToolsAiAssistancePerformanceAgent?.enabled) {
1539
- consentViewContents = uiI18n.getFormatLocalizedString(
1540
- str_, UIStrings.turnOnForStylesRequestsPerformanceAndFiles, {PH1: settingsLink});
1541
- } else if (config.devToolsAiAssistanceFileAgent?.enabled) {
1542
- consentViewContents =
1543
- uiI18n.getFormatLocalizedString(str_, UIStrings.turnOnForStylesRequestsAndFiles, {PH1: settingsLink});
1544
- } else if (config.devToolsAiAssistanceNetworkAgent?.enabled) {
1545
- consentViewContents =
1546
- uiI18n.getFormatLocalizedString(str_, UIStrings.turnOnForStylesAndRequests, {PH1: settingsLink});
1547
- } else {
1548
- consentViewContents = uiI18n.getFormatLocalizedString(str_, UIStrings.turnOnForStyles, {PH1: settingsLink});
1549
- }
1550
-
1551
- return html`${consentViewContents}`;
1552
- }
1553
-
1554
- function renderDisabledState(contents: Lit.TemplateResult): Lit.TemplateResult {
1555
- // clang-format off
1556
- return html`
1557
- <div class="empty-state-container">
1558
- <div class="disabled-view">
1559
- <div class="disabled-view-icon-container">
1560
- <devtools-icon
1561
- name="smart-assistant"
1562
- ></devtools-icon>
1563
- </div>
1564
- <div>
1565
- ${contents}
1566
- </div>
1567
- </div>
1568
- </div>
1569
- `;
1570
- // clang-format on
1571
- }
1572
-
1573
1451
  function renderMainContents({
1574
- state,
1575
- aidaAvailability,
1576
1452
  messages,
1577
1453
  isLoading,
1578
1454
  isReadOnly,
@@ -1589,8 +1465,6 @@ function renderMainContents({
1589
1465
  onCopyResponseClick,
1590
1466
  onMessageContainerRef,
1591
1467
  }: {
1592
- state: State,
1593
- aidaAvailability: Host.AidaClient.AidaAccessPreconditions,
1594
1468
  messages: ChatMessage[],
1595
1469
  isLoading: boolean,
1596
1470
  isReadOnly: boolean,
@@ -1607,13 +1481,6 @@ function renderMainContents({
1607
1481
  conversationType?: AiAssistanceModel.AiHistoryStorage.ConversationType,
1608
1482
  changeSummary?: string,
1609
1483
  }): Lit.LitTemplate {
1610
- if (state === State.DISABLED_VIEW) {
1611
- if (aidaAvailability === Host.AidaClient.AidaAccessPreconditions.AVAILABLE) {
1612
- return renderDisabledState(renderConsentViewContents());
1613
- }
1614
- return renderDisabledState(renderAidaUnavailableContents(aidaAvailability));
1615
- }
1616
-
1617
1484
  if (!conversationType) {
1618
1485
  return Lit.nothing;
1619
1486
  }
@@ -0,0 +1,170 @@
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
+ import * as Host from '../../../core/host/host.js';
7
+ import * as i18n from '../../../core/i18n/i18n.js';
8
+ import * as Root from '../../../core/root/root.js';
9
+ import * as uiI18n from '../../../ui/i18n/i18n.js';
10
+ import * as UI from '../../../ui/legacy/legacy.js';
11
+ import {html, type LitTemplate, render} from '../../../ui/lit/lit.js';
12
+ import * as VisualLogging from '../../../ui/visual_logging/visual_logging.js';
13
+
14
+ import disabledWidgetStyles from './disabledWidget.css.js';
15
+
16
+ const UIStrings = {
17
+ /**
18
+ * @description The error message when the user is not logged in into Chrome.
19
+ */
20
+ notLoggedIn: 'This feature is only available when you are signed into Chrome with your Google account',
21
+ /**
22
+ * @description Message shown when the user is offline.
23
+ */
24
+ offline: 'Check your internet connection and try again',
25
+ /**
26
+ * @description Text for a link to Chrome DevTools Settings.
27
+ */
28
+ settingsLink: 'AI assistance in Settings',
29
+ /**
30
+ * @description Text for asking the user to turn the AI assistance feature in settings first before they are able to use it.
31
+ * @example {AI assistance in Settings} PH1
32
+ */
33
+ turnOnForStyles: 'Turn on {PH1} to get help with understanding CSS styles',
34
+ /**
35
+ * @description Text for asking the user to turn the AI assistance feature in settings first before they are able to use it.
36
+ * @example {AI assistance in Settings} PH1
37
+ */
38
+ turnOnForStylesAndRequests: 'Turn on {PH1} to get help with styles and network requests',
39
+ /**
40
+ * @description Text for asking the user to turn the AI assistance feature in settings first before they are able to use it.
41
+ * @example {AI assistance in Settings} PH1
42
+ */
43
+ turnOnForStylesRequestsAndFiles: 'Turn on {PH1} to get help with styles, network requests, and files',
44
+ /**
45
+ * @description Text for asking the user to turn the AI assistance feature in settings first before they are able to use it.
46
+ * @example {AI assistance in Settings} PH1
47
+ */
48
+ turnOnForStylesRequestsPerformanceAndFiles:
49
+ 'Turn on {PH1} to get help with styles, network requests, performance, and files',
50
+ /**
51
+ * @description Text informing the user that AI assistance is not available in Incognito mode or Guest mode.
52
+ */
53
+ notAvailableInIncognitoMode: 'AI assistance is not available in Incognito mode or Guest mode',
54
+
55
+ } as const;
56
+
57
+ const str_ = i18n.i18n.registerUIStrings('panels/ai_assistance/components/DisabledWidget.ts', UIStrings);
58
+ const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
59
+
60
+ interface ViewProps {
61
+ aidaAvailability: Host.AidaClient.AidaAccessPreconditions;
62
+ hostConfig: Root.Runtime.HostConfig;
63
+ }
64
+
65
+ function renderAidaUnavailableContents(
66
+ aidaAvailability:
67
+ Exclude<Host.AidaClient.AidaAccessPreconditions, Host.AidaClient.AidaAccessPreconditions.AVAILABLE>):
68
+ LitTemplate {
69
+ switch (aidaAvailability) {
70
+ case Host.AidaClient.AidaAccessPreconditions.NO_ACCOUNT_EMAIL:
71
+ case Host.AidaClient.AidaAccessPreconditions.SYNC_IS_PAUSED: {
72
+ return html`${i18nString(UIStrings.notLoggedIn)}`;
73
+ }
74
+ case Host.AidaClient.AidaAccessPreconditions.NO_INTERNET: {
75
+ return html`${i18nString(UIStrings.offline)}`;
76
+ }
77
+ }
78
+ }
79
+
80
+ function renderConsentViewContents(
81
+ hostConfig: Root.Runtime.HostConfig,
82
+ ): LitTemplate {
83
+ if (hostConfig.isOffTheRecord) {
84
+ return html`${i18nString(UIStrings.notAvailableInIncognitoMode)}`;
85
+ }
86
+
87
+ // eslint-disable-next-line @devtools/no-imperative-dom-api
88
+ const settingsLink = document.createElement('span');
89
+ settingsLink.textContent = i18nString(UIStrings.settingsLink);
90
+ settingsLink.classList.add('link');
91
+ UI.ARIAUtils.markAsLink(settingsLink);
92
+ settingsLink.addEventListener('click', () => {
93
+ void UI.ViewManager.ViewManager.instance().showView('chrome-ai');
94
+ });
95
+ settingsLink.setAttribute('jslog', `${VisualLogging.action('open-ai-settings').track({click: true})}`);
96
+
97
+ let consentViewContents: HTMLSpanElement;
98
+ if (hostConfig.devToolsAiAssistancePerformanceAgent?.enabled) {
99
+ consentViewContents = uiI18n.getFormatLocalizedString(
100
+ str_, UIStrings.turnOnForStylesRequestsPerformanceAndFiles, {PH1: settingsLink});
101
+ } else if (hostConfig.devToolsAiAssistanceFileAgent?.enabled) {
102
+ consentViewContents =
103
+ uiI18n.getFormatLocalizedString(str_, UIStrings.turnOnForStylesRequestsAndFiles, {PH1: settingsLink});
104
+ } else if (hostConfig.devToolsAiAssistanceNetworkAgent?.enabled) {
105
+ consentViewContents =
106
+ uiI18n.getFormatLocalizedString(str_, UIStrings.turnOnForStylesAndRequests, {PH1: settingsLink});
107
+ } else {
108
+ consentViewContents = uiI18n.getFormatLocalizedString(str_, UIStrings.turnOnForStyles, {PH1: settingsLink});
109
+ }
110
+
111
+ return html`${consentViewContents}`;
112
+ }
113
+
114
+ export const DEFAULT_VIEW = (
115
+ input: ViewProps,
116
+ _output: Record<string, unknown>,
117
+ target: HTMLElement,
118
+ ): void => {
119
+ // clang-format off
120
+ render(
121
+ html`
122
+ <style>
123
+ ${disabledWidgetStyles}
124
+ </style>
125
+ <div class="disabled-view">
126
+ <div class="disabled-view-icon-container">
127
+ <devtools-icon name="smart-assistant"></devtools-icon>
128
+ </div>
129
+ <div>
130
+ ${input.aidaAvailability ===
131
+ Host.AidaClient.AidaAccessPreconditions.AVAILABLE
132
+ ? renderConsentViewContents(input.hostConfig)
133
+ : renderAidaUnavailableContents(input.aidaAvailability)}
134
+ </div>
135
+ </div>
136
+ `,
137
+ target
138
+ );
139
+ // clang-format on
140
+ };
141
+
142
+ export type View = typeof DEFAULT_VIEW;
143
+
144
+ export class DisabledWidget extends UI.Widget.Widget {
145
+ aidaAvailability: Host.AidaClient.AidaAccessPreconditions = Host.AidaClient.AidaAccessPreconditions.NO_ACCOUNT_EMAIL;
146
+
147
+ #view: View;
148
+ constructor(element?: HTMLElement, view = DEFAULT_VIEW) {
149
+ super(element);
150
+ this.#view = view;
151
+ }
152
+
153
+ override wasShown(): void {
154
+ super.wasShown();
155
+ void this.requestUpdate();
156
+ }
157
+
158
+ override performUpdate(): Promise<void>|void {
159
+ const hostConfig = Root.Runtime.hostConfig;
160
+
161
+ this.#view(
162
+ {
163
+ aidaAvailability: this.aidaAvailability,
164
+ hostConfig,
165
+ },
166
+ {},
167
+ this.contentElement,
168
+ );
169
+ }
170
+ }
@@ -111,10 +111,10 @@ export const DEFAULT_VIEW = (
111
111
  export type View = typeof DEFAULT_VIEW;
112
112
 
113
113
  export class ExploreWidget extends UI.Widget.Widget {
114
- view: View;
115
- constructor(element?: HTMLElement, view?: View) {
114
+ #view: View;
115
+ constructor(element?: HTMLElement, view = DEFAULT_VIEW) {
116
116
  super(element);
117
- this.view = view ?? DEFAULT_VIEW;
117
+ this.#view = view;
118
118
  }
119
119
 
120
120
  override wasShown(): void {
@@ -183,7 +183,7 @@ export class ExploreWidget extends UI.Widget.Widget {
183
183
  });
184
184
  }
185
185
 
186
- this.view(
186
+ this.#view(
187
187
  {
188
188
  featureCards,
189
189
  },
@@ -729,37 +729,6 @@ main {
729
729
  }
730
730
  }
731
731
 
732
- .disabled-view {
733
- display: flex;
734
- max-width: var(--sys-size-34);
735
- border-radius: var(--sys-shape-corner-small);
736
- box-shadow: var(--sys-elevation-level3);
737
- background-color: var(--app-color-card-background);
738
- font: var(--sys-typescale-body4-regular);
739
- text-wrap: pretty;
740
- padding: var(--sys-size-6) var(--sys-size-8);
741
- margin: var(--sys-size-4) 0;
742
- line-height: var(--sys-size-9);
743
-
744
- .disabled-view-icon-container {
745
- border-radius: var(--sys-shape-corner-extra-small);
746
- width: var(--sys-size-9);
747
- height: var(--sys-size-9);
748
- background: linear-gradient(
749
- 135deg,
750
- var(--sys-color-gradient-primary),
751
- var(--sys-color-gradient-tertiary)
752
- );
753
- margin-right: var(--sys-size-5);
754
-
755
- devtools-icon {
756
- margin: var(--sys-size-2);
757
- width: var(--sys-size-8);
758
- height: var(--sys-size-8);
759
- }
760
- }
761
- }
762
-
763
732
  .error-step {
764
733
  color: var(--sys-color-error);
765
734
  }
@@ -0,0 +1,45 @@
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
+ @scope to (devtools-widget > *) {
8
+ .disabled-view {
9
+ display: flex;
10
+ max-width: var(--sys-size-34);
11
+ border-radius: var(--sys-shape-corner-small);
12
+ box-shadow: var(--sys-elevation-level3);
13
+ background-color: var(--app-color-card-background);
14
+ font: var(--sys-typescale-body4-regular);
15
+ text-wrap: pretty;
16
+ padding: var(--sys-size-6) var(--sys-size-8);
17
+ margin: var(--sys-size-4);
18
+ line-height: var(--sys-size-9);
19
+
20
+ .disabled-view-icon-container {
21
+ flex-shrink: 0;
22
+ border-radius: var(--sys-shape-corner-extra-small);
23
+ width: var(--sys-size-9);
24
+ height: var(--sys-size-9);
25
+ background: linear-gradient(
26
+ 135deg,
27
+ var(--sys-color-gradient-primary),
28
+ var(--sys-color-gradient-tertiary)
29
+ );
30
+ margin-right: var(--sys-size-5);
31
+
32
+ devtools-icon {
33
+ margin: var(--sys-size-2);
34
+ width: var(--sys-size-8);
35
+ height: var(--sys-size-8);
36
+ }
37
+ }
38
+ }
39
+
40
+ .link {
41
+ color: var(--text-link);
42
+ text-decoration: underline;
43
+ cursor: pointer;
44
+ }
45
+ }
@@ -165,7 +165,7 @@ const DEFAULT_TOOLBAR_VIEW: ToolbarView = (input: ToolbarViewInput, output: unde
165
165
  const isSelected = input.selectedPlaybackRate === playbackRate;
166
166
  const textContent = playbackRate ? i18nString(UIStrings.playbackRatePlaceholder, {PH1: playbackRate * 100}) : i18nString(UIStrings.pause);
167
167
  return html`
168
- <button class="animation-playback-rate-button" jslog=${VisualLogging.action().context(`animations.playback-rate-${playbackRate * 100}`).track({
168
+ <button jslog=${VisualLogging.action().context(`animations.playback-rate-${playbackRate * 100}`).track({
169
169
  click: true,
170
170
  keydown: 'ArrowUp|ArrowDown|ArrowLeft|ArrowRight',
171
171
  })}
@@ -540,7 +540,7 @@ export class FrameDetailsReportView extends LegacyWrapper.LegacyWrapper.Wrappabl
540
540
  >
541
541
  <devtools-resources-stack-trace .data=${{
542
542
  frame: this.#frame,
543
- buildStackTraceRows: Components.JSPresentationUtils.buildStackTraceRows,
543
+ buildStackTraceRows: Components.JSPresentationUtils.buildStackTraceRowsForLegacyRuntimeStackTrace,
544
544
  } as StackTraceData}>
545
545
  </devtools-resources-stack-trace>
546
546
  </devtools-report-value>
@@ -718,7 +718,7 @@ export class ConsoleViewMessage implements ConsoleViewportElement {
718
718
  clickableElement.appendChild(messageElement);
719
719
  const stackTraceElement = contentElement.createChild('div');
720
720
  const stackTracePreview = new Components.JSPresentationUtils.StackTracePreviewContent(
721
- undefined, target ?? undefined, this.linkifier, {stackTrace, widthConstrained: true});
721
+ undefined, target ?? undefined, this.linkifier, {runtimeStackTrace: stackTrace, widthConstrained: true});
722
722
  stackTracePreview.markAsRoot();
723
723
  stackTracePreview.show(stackTraceElement);
724
724
  for (const linkElement of stackTracePreview.linkElements) {
@@ -502,7 +502,7 @@ function renderContrastIssue(key: string, issues: ContrastIssue[]): TemplateResu
502
502
  </button>
503
503
  <div class="block-title">
504
504
  ${showAPCA ? html`
505
- <div class="contrast-warning hidden" $="apca">
505
+ <div class="contrast-warning hidden">
506
506
  <span class="threshold-label">${i18nString(UIStrings.apca)}</span>
507
507
  ${minContrastIssue.thresholdsViolated.apca ? createClearIcon() : createCheckIcon()}
508
508
  </div>` : html`
@@ -510,7 +510,7 @@ function renderContrastIssue(key: string, issues: ContrastIssue[]): TemplateResu
510
510
  <span class="threshold-label">${i18nString(UIStrings.aa)}</span>
511
511
  ${minContrastIssue.thresholdsViolated.aa ? createClearIcon() : createCheckIcon()}
512
512
  </div>
513
- <div class="contrast-warning hidden" $="aaa">
513
+ <div class="contrast-warning hidden">
514
514
  <span class="threshold-label">${i18nString(UIStrings.aaa)}</span>
515
515
  ${minContrastIssue.thresholdsViolated.aaa ? createClearIcon() : createCheckIcon()}
516
516
  </div>`}
@@ -1073,5 +1073,5 @@ function createClearIcon(): TemplateResult {
1073
1073
  function createCheckIcon(): TemplateResult {
1074
1074
  return html`
1075
1075
  <devtools-icon name="checkmark" class="small"
1076
- style="color:var(--icon-checkmark-green);></devtools-icon>`;
1076
+ style="color:var(--icon-checkmark-green);"></devtools-icon>`;
1077
1077
  }