chrome-devtools-frontend 1.0.1536371 → 1.0.1537860

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 (231) hide show
  1. package/.env.template +9 -0
  2. package/docs/get_the_code.md +27 -0
  3. package/front_end/core/common/SettingRegistration.ts +10 -7
  4. package/front_end/core/common/Settings.ts +3 -0
  5. package/front_end/core/host/AidaClient.ts +64 -5
  6. package/front_end/core/host/DispatchHttpRequestClient.ts +62 -0
  7. package/front_end/core/host/GdpClient.ts +8 -57
  8. package/front_end/core/host/host.ts +2 -0
  9. package/front_end/core/protocol_client/CDPConnection.ts +10 -8
  10. package/front_end/core/protocol_client/InspectorBackend.ts +36 -42
  11. package/front_end/core/sdk/EnhancedTracesParser.ts +20 -5
  12. package/front_end/core/sdk/RehydratingConnection.ts +112 -4
  13. package/front_end/core/sdk/RehydratingObject.ts +8 -0
  14. package/front_end/core/sdk/TraceObject.ts +5 -1
  15. package/front_end/core/sdk/sdk-meta.ts +8 -2
  16. package/front_end/entrypoints/inspector_main/RenderingOptions.ts +4 -3
  17. package/front_end/generated/SupportedCSSProperties.js +1 -0
  18. package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +23 -7
  19. package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.snapshot.txt +110 -5
  20. package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.ts +50 -45
  21. package/front_end/models/cpu_profile/ProfileTreeModel.ts +7 -7
  22. package/front_end/models/javascript_metadata/NativeFunctions.js +1 -1
  23. package/front_end/models/trace/types/File.ts +9 -0
  24. package/front_end/models/trace_source_maps_resolver/SourceMapsResolver.ts +1 -1
  25. package/front_end/panels/ai_assistance/AiAssistancePanel.ts +5 -9
  26. package/front_end/panels/ai_assistance/components/ChatView.ts +58 -70
  27. package/front_end/panels/application/BackForwardCacheTreeElement.ts +2 -6
  28. package/front_end/panels/application/StorageView.ts +3 -2
  29. package/front_end/panels/application/components/BackForwardCacheView.ts +96 -108
  30. package/front_end/panels/application/components/FrameDetailsView.ts +8 -11
  31. package/front_end/panels/application/components/OriginTrialTreeView.ts +136 -137
  32. package/front_end/panels/application/components/backForwardCacheView.css +8 -0
  33. package/front_end/panels/application/components/badge.css +9 -1
  34. package/front_end/panels/application/preloading/components/PreloadingGrid.ts +2 -2
  35. package/front_end/panels/application/preloading/components/PreloadingString.ts +27 -0
  36. package/front_end/panels/autofill/AutofillView.ts +1 -1
  37. package/front_end/panels/browser_debugger/CategorizedBreakpointsSidebarPane.ts +44 -53
  38. package/front_end/panels/console/ConsoleView.ts +11 -9
  39. package/front_end/panels/coverage/CoverageView.ts +1 -2
  40. package/front_end/panels/css_overview/CSSOverviewSidebarPanel.ts +1 -1
  41. package/front_end/panels/developer_resources/DeveloperResourcesView.ts +1 -1
  42. package/front_end/panels/elements/ElementStatePaneWidget.ts +1 -1
  43. package/front_end/panels/elements/EventListenersWidget.ts +1 -2
  44. package/front_end/panels/elements/PropertiesWidget.ts +1 -1
  45. package/front_end/panels/network/NetworkConfigView.ts +2 -1
  46. package/front_end/panels/network/NetworkPanel.ts +5 -4
  47. package/front_end/panels/network/RequestCookiesView.ts +2 -1
  48. package/front_end/panels/profiler/HeapSnapshotView.ts +3 -2
  49. package/front_end/panels/recorder/RecorderController.ts +1 -2
  50. package/front_end/panels/recorder/components/CreateRecordingView.ts +153 -129
  51. package/front_end/panels/sensors/SensorsView.ts +4 -3
  52. package/front_end/panels/settings/AISettingsTab.ts +162 -171
  53. package/front_end/panels/settings/FrameworkIgnoreListSettingsTab.ts +8 -6
  54. package/front_end/panels/settings/KeybindsSettingsTab.ts +3 -2
  55. package/front_end/panels/settings/SettingsScreen.ts +5 -8
  56. package/front_end/panels/settings/WorkspaceSettingsTab.ts +1 -1
  57. package/front_end/panels/settings/aiSettingsTab.css +151 -148
  58. package/front_end/panels/settings/settings-meta.ts +1 -2
  59. package/front_end/panels/sources/AddSourceMapURLDialog.ts +23 -26
  60. package/front_end/panels/sources/AiCodeCompletionPlugin.ts +2 -1
  61. package/front_end/panels/sources/SourcesPanel.ts +2 -1
  62. package/front_end/panels/sources/sources-meta.ts +8 -1
  63. package/front_end/panels/timeline/TimelinePanel.ts +64 -14
  64. package/front_end/panels/timeline/TimelineUIUtils.ts +4 -20
  65. package/front_end/panels/timeline/components/ExportTraceOptions.ts +33 -34
  66. package/front_end/panels/timeline/components/LiveMetricsView.ts +1 -0
  67. package/front_end/panels/timeline/components/SidebarAnnotationsTab.ts +2 -0
  68. package/front_end/third_party/chromium/README.chromium +2 -2
  69. package/front_end/third_party/puppeteer/README.chromium +2 -2
  70. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.d.ts +9 -1
  71. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.d.ts.map +1 -1
  72. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.js.map +1 -1
  73. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/BrowserContext.d.ts +2 -2
  74. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/BrowserContext.d.ts.map +1 -1
  75. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/BrowserContext.js.map +1 -1
  76. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.d.ts +13 -1
  77. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.d.ts.map +1 -1
  78. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.js.map +1 -1
  79. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BrowserContext.d.ts +2 -2
  80. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BrowserContext.d.ts.map +1 -1
  81. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BrowserContext.js +5 -2
  82. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BrowserContext.js.map +1 -1
  83. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.d.ts +2 -2
  84. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.d.ts.map +1 -1
  85. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.js +3 -1
  86. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.js.map +1 -1
  87. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Realm.d.ts +1 -12
  88. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Realm.d.ts.map +1 -1
  89. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Accessibility.d.ts +6 -0
  90. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Accessibility.d.ts.map +1 -1
  91. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Accessibility.js +1 -0
  92. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Accessibility.js.map +1 -1
  93. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.d.ts +2 -2
  94. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.d.ts.map +1 -1
  95. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.js +6 -1
  96. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.js.map +1 -1
  97. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserContext.d.ts +2 -1
  98. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserContext.d.ts.map +1 -1
  99. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserContext.js +2 -2
  100. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserContext.js.map +1 -1
  101. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.d.ts +2 -2
  102. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.d.ts.map +1 -1
  103. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.js +3 -1
  104. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.js.map +1 -1
  105. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/injected/injected.d.ts +1 -1
  106. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.d.ts +3 -3
  107. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js +3 -3
  108. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js.map +1 -1
  109. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/Mutex.d.ts +2 -2
  110. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/disposable.d.ts +2 -2
  111. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/disposable.d.ts.map +1 -1
  112. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/disposable.js +3 -1
  113. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/disposable.js.map +1 -1
  114. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/util.d.ts +1 -0
  115. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/util.d.ts.map +1 -1
  116. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/util.js +1 -0
  117. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/util.js.map +1 -1
  118. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/version.d.ts +1 -1
  119. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/version.js +1 -1
  120. package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.d.ts +28 -3
  121. package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.js +21 -10
  122. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.d.ts +9 -1
  123. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.d.ts.map +1 -1
  124. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.js.map +1 -1
  125. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/BrowserContext.d.ts +2 -2
  126. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/BrowserContext.d.ts.map +1 -1
  127. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/BrowserContext.js.map +1 -1
  128. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Input.d.ts +1 -1
  129. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Input.d.ts.map +1 -1
  130. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.d.ts +13 -1
  131. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.d.ts.map +1 -1
  132. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.js.map +1 -1
  133. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BrowserContext.d.ts +2 -2
  134. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BrowserContext.d.ts.map +1 -1
  135. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BrowserContext.js +5 -2
  136. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BrowserContext.js.map +1 -1
  137. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.d.ts +2 -2
  138. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.d.ts.map +1 -1
  139. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.js +3 -1
  140. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.js.map +1 -1
  141. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Realm.d.ts +1 -12
  142. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Realm.d.ts.map +1 -1
  143. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Accessibility.d.ts +6 -0
  144. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Accessibility.d.ts.map +1 -1
  145. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Accessibility.js +1 -0
  146. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Accessibility.js.map +1 -1
  147. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.d.ts +2 -2
  148. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.d.ts.map +1 -1
  149. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.js +6 -1
  150. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.js.map +1 -1
  151. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserContext.d.ts +2 -1
  152. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserContext.d.ts.map +1 -1
  153. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserContext.js +2 -2
  154. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserContext.js.map +1 -1
  155. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.d.ts +2 -2
  156. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.d.ts.map +1 -1
  157. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.js +3 -1
  158. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.js.map +1 -1
  159. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.d.ts +3 -3
  160. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js +3 -3
  161. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js.map +1 -1
  162. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/disposable.d.ts +2 -2
  163. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/disposable.d.ts.map +1 -1
  164. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/disposable.js +2 -2
  165. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/disposable.js.map +1 -1
  166. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/util.d.ts +1 -0
  167. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/util.d.ts.map +1 -1
  168. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/util.js +1 -0
  169. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/util.js.map +1 -1
  170. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/version.d.ts +1 -1
  171. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/version.js +1 -1
  172. package/front_end/third_party/puppeteer/package/lib/types.d.ts +28 -3
  173. package/front_end/third_party/puppeteer/package/package.json +2 -2
  174. package/front_end/third_party/puppeteer/package/src/api/Browser.ts +13 -1
  175. package/front_end/third_party/puppeteer/package/src/api/BrowserContext.ts +7 -2
  176. package/front_end/third_party/puppeteer/package/src/api/Page.ts +14 -1
  177. package/front_end/third_party/puppeteer/package/src/bidi/BrowserContext.ts +8 -5
  178. package/front_end/third_party/puppeteer/package/src/bidi/Page.ts +5 -2
  179. package/front_end/third_party/puppeteer/package/src/cdp/Accessibility.ts +8 -0
  180. package/front_end/third_party/puppeteer/package/src/cdp/Browser.ts +11 -2
  181. package/front_end/third_party/puppeteer/package/src/cdp/BrowserContext.ts +3 -2
  182. package/front_end/third_party/puppeteer/package/src/cdp/Page.ts +5 -5
  183. package/front_end/third_party/puppeteer/package/src/revisions.ts +3 -3
  184. package/front_end/third_party/puppeteer/package/src/util/disposable.ts +2 -2
  185. package/front_end/third_party/puppeteer/package/src/util/util.ts +1 -0
  186. package/front_end/third_party/puppeteer/package/src/util/version.ts +1 -1
  187. package/front_end/ui/components/adorners/Adorner.ts +2 -1
  188. package/front_end/ui/components/buttons/Button.docs.ts +195 -0
  189. package/front_end/ui/components/settings/SettingCheckbox.ts +49 -14
  190. package/front_end/ui/components/settings/settingCheckbox.css +6 -1
  191. package/front_end/ui/components/spinners/Spinners.docs.ts +13 -0
  192. package/front_end/ui/components/text_editor/AiCodeCompletionProvider.ts +280 -0
  193. package/front_end/ui/components/text_editor/text_editor.ts +1 -0
  194. package/front_end/ui/components/tooltips/Tooltip.docs.ts +76 -0
  195. package/front_end/ui/components/tooltips/Tooltip.ts +1 -1
  196. package/front_end/ui/legacy/Dialog.ts +0 -1
  197. package/front_end/ui/legacy/FilterBar.ts +1 -2
  198. package/front_end/ui/legacy/RadioButton.docs.ts +41 -0
  199. package/front_end/ui/legacy/SelectMenu.docs.ts +98 -0
  200. package/front_end/ui/legacy/Toolbar.ts +4 -6
  201. package/front_end/ui/legacy/UIUtils.ts +114 -1
  202. package/front_end/ui/legacy/Widget.ts +62 -34
  203. package/front_end/ui/legacy/XLink.ts +0 -3
  204. package/front_end/ui/legacy/components/data_grid/DataGridElement.ts +9 -0
  205. package/front_end/ui/legacy/components/settings_ui/SettingsUI.ts +125 -0
  206. package/front_end/ui/legacy/components/settings_ui/settings_ui.ts +8 -0
  207. package/front_end/ui/legacy/components/utils/Linkifier.ts +9 -3
  208. package/front_end/ui/legacy/legacy.ts +0 -2
  209. package/front_end/ui/visual_logging/KnownContextValues.ts +4 -1
  210. package/mcp/mcp.ts +5 -0
  211. package/package.json +1 -1
  212. package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatterBounds.snapshot.txt +0 -4
  213. package/front_end/models/trace/lantern/testing/MetricTestUtils.ts +0 -62
  214. package/front_end/models/trace/lantern/testing/testing.ts +0 -5
  215. package/front_end/ui/components/docs/breadcrumbs_perf/initial-breadcrumb-perf.html +0 -20
  216. package/front_end/ui/components/docs/breadcrumbs_perf/initial-breadcrumb-perf.ts +0 -25
  217. package/front_end/ui/components/docs/breadcrumbs_perf/nested-breadcrumbs-perf.html +0 -20
  218. package/front_end/ui/components/docs/breadcrumbs_perf/nested-breadcrumbs-perf.ts +0 -36
  219. package/front_end/ui/components/docs/button/basic.html +0 -44
  220. package/front_end/ui/components/docs/button/basic.ts +0 -175
  221. package/front_end/ui/components/docs/radio_button/basic.html +0 -23
  222. package/front_end/ui/components/docs/radio_button/basic.ts +0 -50
  223. package/front_end/ui/components/docs/select_menu/basic.html +0 -19
  224. package/front_end/ui/components/docs/select_menu/basic.ts +0 -95
  225. package/front_end/ui/components/docs/select_menu/wide-option.html +0 -38
  226. package/front_end/ui/components/docs/select_menu/wide-option.ts +0 -43
  227. package/front_end/ui/components/docs/spinners/basic.html +0 -17
  228. package/front_end/ui/components/docs/spinners/basic.ts +0 -22
  229. package/front_end/ui/components/docs/tooltip/basic.html +0 -20
  230. package/front_end/ui/components/docs/tooltip/basic.ts +0 -82
  231. package/front_end/ui/legacy/SettingsUI.ts +0 -254
@@ -4,185 +4,188 @@
4
4
  * found in the LICENSE file.
5
5
  */
6
6
 
7
- * {
8
- box-sizing: border-box;
9
- }
10
-
11
- :host {
12
- container-type: inline-size;
13
- container-name: ai-settings;
14
- }
7
+ @scope to (devtools-widget > *){
8
+ .ai-settings-container {
9
+ container-type: inline-size;
10
+ container-name: ai-settings;
11
+
12
+ @container ai-settings (min-width: 480px) {
13
+ .settings-container-wrapper {
14
+ align-items: center;
15
+ }
16
+ }
17
+ }
15
18
 
16
- .shared-disclaimer {
17
- background: linear-gradient(135deg, var(--sys-color-gradient-primary), var(--sys-color-gradient-tertiary));
18
- border-radius: var(--sys-size-5);
19
- padding: var(--sys-size-9) var(--sys-size-11);
20
- max-width: var(--sys-size-35);
21
- min-width: var(--sys-size-28);
19
+ * {
20
+ box-sizing: border-box;
21
+ min-height: auto;
22
+ }
22
23
 
23
- h2 {
24
- font: var(--sys-typescale-headline5);
25
- margin: 0 0 var(--sys-size-6);
24
+ .shared-disclaimer {
25
+ background: linear-gradient(135deg, var(--sys-color-gradient-primary), var(--sys-color-gradient-tertiary));
26
+ border-radius: var(--sys-size-5);
27
+ padding: var(--sys-size-9) var(--sys-size-11);
28
+ max-width: var(--sys-size-35);
29
+ min-width: var(--sys-size-28);
30
+
31
+ h2 {
32
+ font: var(--sys-typescale-headline5);
33
+ margin: 0 0 var(--sys-size-6);
34
+ }
26
35
  }
27
- }
28
36
 
29
- .disclaimer-list-header {
30
- font: var(--sys-typescale-body5-medium);
31
- margin: 0;
32
- }
37
+ .disclaimer-list-header {
38
+ font: var(--sys-typescale-body5-medium);
39
+ margin: 0;
40
+ }
33
41
 
34
- .disclaimer-list {
35
- padding: var(--sys-size-6) 0 0;
36
- display: grid;
37
- grid-template-columns: var(--sys-size-12) auto;
38
- gap: var(--sys-size-6) 0;
39
- line-height: var(--sys-typescale-body5-line-height);
40
- }
42
+ .disclaimer-list {
43
+ padding: var(--sys-size-6) 0 0;
44
+ display: grid;
45
+ grid-template-columns: var(--sys-size-12) auto;
46
+ gap: var(--sys-size-6) 0;
47
+ line-height: var(--sys-typescale-body5-line-height);
48
+ }
41
49
 
42
- .settings-container {
43
- display: grid;
44
- grid-template-columns: 1fr auto auto;
45
- border-radius: var(--sys-size-5);
46
- box-shadow: var(--sys-elevation-level2);
47
- margin: var(--sys-size-11) 0 var(--sys-size-4);
48
- line-height: var(--sys-typescale-body5-line-height);
49
- min-width: var(--sys-size-28);
50
- max-width: var(--sys-size-35);
51
- background-color: var(--app-color-card-background);
52
- }
50
+ .settings-container {
51
+ display: grid;
52
+ grid-template-columns: 1fr auto auto;
53
+ border-radius: var(--sys-size-5);
54
+ box-shadow: var(--sys-elevation-level2);
55
+ margin: var(--sys-size-11) 0 var(--sys-size-4);
56
+ line-height: var(--sys-typescale-body5-line-height);
57
+ min-width: var(--sys-size-28);
58
+ max-width: var(--sys-size-35);
59
+ background-color: var(--app-color-card-background);
60
+ }
53
61
 
54
- .accordion-header {
55
- display: grid;
56
- grid-template-columns: auto 1fr auto;
62
+ .accordion-header {
63
+ display: grid;
64
+ grid-template-columns: auto 1fr auto;
57
65
 
58
- &:hover {
59
- background-color: var(--sys-color-state-hover-on-subtle);
66
+ &:hover {
67
+ background-color: var(--sys-color-state-hover-on-subtle);
68
+ }
60
69
  }
61
- }
62
70
 
63
- .icon-container,
64
- .dropdown {
65
- padding: 0 var(--sys-size-8);
66
- }
71
+ .icon-container,
72
+ .dropdown {
73
+ padding: 0 var(--sys-size-8);
74
+ }
67
75
 
68
- .toggle-container {
69
- padding: 0 var(--sys-size-8) 0 var(--sys-size-9);
76
+ .toggle-container {
77
+ padding: 0 var(--sys-size-8) 0 var(--sys-size-9);
70
78
 
71
- &:hover {
72
- background-color: var(--sys-color-state-hover-on-subtle);
79
+ &:hover {
80
+ background-color: var(--sys-color-state-hover-on-subtle);
81
+ }
73
82
  }
74
- }
75
83
 
76
- .expansion-grid {
77
- padding: var(--sys-size-4) var(--sys-size-8) var(--sys-size-6);
78
- display: grid;
79
- grid-template-columns: var(--sys-size-9) auto;
80
- gap: var(--sys-size-6) var(--sys-size-8);
81
- line-height: var(--sys-typescale-body5-line-height);
82
- color: var(--sys-color-on-surface-subtle);
83
- }
84
+ .expansion-grid {
85
+ padding: var(--sys-size-4) var(--sys-size-8) var(--sys-size-6);
86
+ display: grid;
87
+ grid-template-columns: var(--sys-size-9) auto;
88
+ gap: var(--sys-size-6) var(--sys-size-8);
89
+ line-height: var(--sys-typescale-body5-line-height);
90
+ color: var(--sys-color-on-surface-subtle);
91
+ }
84
92
 
85
- .expansion-grid-whole-row {
86
- grid-column: span 2;
87
- font-weight: var(--ref-typeface-weight-medium);
88
- color: var(--sys-color-on-surface);
89
- padding-top: var(--sys-size-4);
90
- margin: 0;
91
- font-size: inherit;
92
- }
93
+ .expansion-grid-whole-row {
94
+ grid-column: span 2;
95
+ font-weight: var(--ref-typeface-weight-medium);
96
+ color: var(--sys-color-on-surface);
97
+ padding-top: var(--sys-size-4);
98
+ margin: 0;
99
+ font-size: inherit;
100
+ }
93
101
 
94
- .setting-description {
95
- color: var(--sys-color-on-surface-subtle);
96
- }
102
+ .setting-description {
103
+ color: var(--sys-color-on-surface-subtle);
104
+ }
97
105
 
98
- .centered {
99
- display: grid;
100
- place-content: center;
101
- }
106
+ .centered {
107
+ display: grid;
108
+ place-content: center;
109
+ }
102
110
 
103
- .setting-card {
104
- padding: var(--sys-size-6) 0;
111
+ .setting-card {
112
+ padding: var(--sys-size-6) 0;
105
113
 
106
- h2 {
107
- margin: 0;
108
- font: inherit;
114
+ h2 {
115
+ margin: 0;
116
+ font: inherit;
117
+ }
109
118
  }
110
- }
111
119
 
112
- .divider {
113
- margin: var(--sys-size-5) 0;
114
- border-left: var(--sys-size-1) solid var(--sys-color-divider);
115
- }
116
-
117
- .accordion-header ~ .accordion-header,
118
- .divider ~ .divider,
119
- .toggle-container ~ .toggle-container {
120
- border-top: var(--sys-size-1) solid var(--sys-color-divider);
121
- }
120
+ .divider {
121
+ margin: var(--sys-size-5) 0;
122
+ border-left: var(--sys-size-1) solid var(--sys-color-divider);
123
+ }
122
124
 
123
- .whole-row {
124
- grid-column: span 5;
125
- overflow: hidden;
126
- display: grid;
127
- grid-template-rows: 0fr;
128
- transition: grid-template-rows var(--sys-motion-duration-short4) ease-in;
129
- }
125
+ .accordion-header ~ .accordion-header,
126
+ .divider ~ .divider,
127
+ .toggle-container ~ .toggle-container {
128
+ border-top: var(--sys-size-1) solid var(--sys-color-divider);
129
+ }
130
130
 
131
- .whole-row.open {
132
- grid-template-rows: 1fr;
133
- }
131
+ .whole-row {
132
+ grid-column: span 5;
133
+ overflow: hidden;
134
+ display: grid;
135
+ grid-template-rows: 0fr;
136
+ transition: grid-template-rows var(--sys-motion-duration-short4) ease-in;
137
+ }
134
138
 
135
- .overflow-hidden {
136
- overflow: hidden;
137
- }
139
+ .whole-row.open {
140
+ grid-template-rows: 1fr;
141
+ }
138
142
 
139
- .link,
140
- .devtools-link {
141
- color: var(--sys-color-primary);
142
- text-decoration: underline;
143
- cursor: pointer;
144
- outline-offset: var(--sys-size-2);
145
- padding: 0;
146
- font-weight: var(--ref-typeface-weight-regular);
147
- }
143
+ .overflow-hidden {
144
+ overflow: hidden;
145
+ }
148
146
 
149
- .padded {
150
- padding: var(--sys-size-2) 0;
151
- }
147
+ .link,
148
+ .devtools-link {
149
+ color: var(--sys-color-primary);
150
+ text-decoration: underline;
151
+ cursor: pointer;
152
+ outline-offset: var(--sys-size-2);
153
+ padding: 0;
154
+ font-weight: var(--ref-typeface-weight-regular);
155
+ }
152
156
 
153
- .settings-container-wrapper {
154
- position: absolute;
155
- inset: var(--sys-size-8) 0 0;
156
- overflow: auto;
157
- padding: var(--sys-size-3) var(--sys-size-6) var(--sys-size-6);
158
- display: flex;
159
- flex-direction: column;
160
- }
157
+ .padded {
158
+ padding: var(--sys-size-2) 0;
159
+ }
161
160
 
162
- @container ai-settings (min-width: 480px) {
163
161
  .settings-container-wrapper {
164
- align-items: center;
162
+ position: absolute;
163
+ inset: var(--sys-size-8) 0 0;
164
+ overflow: auto;
165
+ padding: var(--sys-size-3) var(--sys-size-6) var(--sys-size-6);
166
+ display: flex;
167
+ flex-direction: column;
165
168
  }
166
- }
167
169
 
168
- header {
169
- font-size: var(--sys-typescale-headline3-size);
170
- font-weight: var(--ref-typeface-weight-regular);
171
- }
170
+ header {
171
+ font-size: var(--sys-typescale-headline3-size);
172
+ font-weight: var(--ref-typeface-weight-regular);
173
+ }
172
174
 
173
- .disabled-explainer {
174
- background-color: var(--sys-color-surface-yellow);
175
- border-radius: var(--sys-shape-corner-medium-small);
176
- margin-top: var(--sys-size-11);
177
- padding: var(--sys-size-6) var(--sys-size-11) var(--sys-size-8);
178
- width: 100%;
179
- max-width: var(--sys-size-35);
180
- min-width: var(--sys-size-28);
181
- color: var(--sys-color-yellow);
182
- }
175
+ .disabled-explainer {
176
+ background-color: var(--sys-color-surface-yellow);
177
+ border-radius: var(--sys-shape-corner-medium-small);
178
+ margin-top: var(--sys-size-11);
179
+ padding: var(--sys-size-6) var(--sys-size-11) var(--sys-size-8);
180
+ width: 100%;
181
+ max-width: var(--sys-size-35);
182
+ min-width: var(--sys-size-28);
183
+ color: var(--sys-color-yellow);
184
+ }
183
185
 
184
- .disabled-explainer-row {
185
- display: flex;
186
- gap: var(--sys-size-6);
187
- margin-top: var(--sys-size-4);
186
+ .disabled-explainer-row {
187
+ display: flex;
188
+ gap: var(--sys-size-6);
189
+ margin-top: var(--sys-size-4);
190
+ }
188
191
  }
@@ -7,7 +7,6 @@ import './emulation/emulation-meta.js';
7
7
  import * as Common from '../../core/common/common.js';
8
8
  import * as i18n from '../../core/i18n/i18n.js';
9
9
  import * as Root from '../../core/root/root.js';
10
- import * as LegacyWrapper from '../../ui/components/legacy_wrapper/legacy_wrapper.js';
11
10
  import * as UI from '../../ui/legacy/legacy.js';
12
11
 
13
12
  import type * as Settings from './settings.js';
@@ -117,7 +116,7 @@ UI.ViewManager.registerViewExtension({
117
116
  order: 2,
118
117
  async loadView() {
119
118
  const Settings = await loadSettingsModule();
120
- return LegacyWrapper.LegacyWrapper.legacyWrapper(UI.Widget.VBox, new Settings.AISettingsTab.AISettingsTab());
119
+ return new Settings.AISettingsTab.AISettingsTab();
121
120
  },
122
121
  iconName: 'button-magic',
123
122
  settings: ['console-insights-enabled'],
@@ -6,7 +6,7 @@ import * as i18n from '../../core/i18n/i18n.js';
6
6
  import type * as Platform from '../../core/platform/platform.js';
7
7
  import * as Buttons from '../../ui/components/buttons/buttons.js';
8
8
  import * as UI from '../../ui/legacy/legacy.js';
9
- import {Directives, html, render} from '../../ui/lit/lit.js';
9
+ import {html, render} from '../../ui/lit/lit.js';
10
10
  import * as VisualLogging from '../../ui/visual_logging/visual_logging.js';
11
11
 
12
12
  import dialogStyles from './dialog.css.js';
@@ -27,28 +27,29 @@ const UIStrings = {
27
27
  } as const;
28
28
  const str_ = i18n.i18n.registerUIStrings('panels/sources/AddSourceMapURLDialog.ts', UIStrings);
29
29
  const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
30
- const {ref} = Directives;
31
30
 
32
31
  interface ViewInput {
33
32
  label: Platform.UIString.LocalizedString;
34
- onKeyDown: (event: KeyboardEvent) => void;
33
+ onEnter: (value: string) => void;
34
+ onInputChange: (value: string) => void;
35
35
  apply: () => void;
36
36
  }
37
37
 
38
- interface ViewOutput {
39
- input: HTMLInputElement;
40
- }
41
-
42
- type View = (input: ViewInput, output: ViewOutput, target: HTMLElement) => void;
38
+ type View = (input: ViewInput, output: undefined, target: HTMLElement) => void;
43
39
 
44
- export const DEFAULT_VIEW: View = (input, output, target) => {
40
+ export const DEFAULT_VIEW: View = (input, _output, target) => {
45
41
  // clang-format off
46
42
  render(html`
47
43
  <style>${dialogStyles}</style>
48
44
  <label>${input.label}</label>
49
45
  <input class="harmony-input add-source-map" spellcheck="false" type="text"
50
46
  jslog=${VisualLogging.textField('url').track({keydown: 'Enter', change: true})}
51
- @keydown=${input.onKeyDown} ${ref(e => { output.input = e as HTMLInputElement; })}>
47
+ @keydown=${(e: KeyboardEvent) => { if (e.key === 'Enter') {
48
+ e.consume(true);
49
+ input.onEnter((e.target as HTMLInputElement).value); }
50
+ }}
51
+ @change=${(e: Event) => input.onInputChange((e.target as HTMLInputElement).value)}
52
+ autofocus>
52
53
  <devtools-button @click=${input.apply} .jslogContext=${'add'}
53
54
  .variant=${Buttons.Button.Variant.OUTLINED}>${i18nString(UIStrings.add)}</devtools-button>`,
54
55
  target);
@@ -56,7 +57,7 @@ export const DEFAULT_VIEW: View = (input, output, target) => {
56
57
  };
57
58
 
58
59
  export class AddDebugInfoURLDialog extends UI.Widget.HBox {
59
- private input!: HTMLInputElement;
60
+ private url = '';
60
61
  private readonly dialog: UI.Dialog.Dialog;
61
62
  private readonly callback: (arg0: Platform.DevToolsPath.UrlString) => void;
62
63
  private constructor(
@@ -66,20 +67,14 @@ export class AddDebugInfoURLDialog extends UI.Widget.HBox {
66
67
 
67
68
  const viewInput = {
68
69
  label,
69
- onKeyDown: this.onKeyDown.bind(this),
70
+ onEnter: this.onEnter.bind(this),
71
+ onInputChange: this.onInputChange.bind(this),
70
72
  apply: this.apply.bind(this),
71
73
  };
72
- const that = this;
73
- const viewOutput = {
74
- set input(input: HTMLInputElement) {
75
- that.input = input;
76
- },
77
- };
78
- view(viewInput, viewOutput, this.contentElement);
74
+ view(viewInput, undefined, this.contentElement);
79
75
 
80
76
  this.dialog = new UI.Dialog.Dialog(jslogContext);
81
77
  this.dialog.setSizeBehavior(UI.GlassPane.SizeBehavior.MEASURE_CONTENT);
82
- this.dialog.setDefaultFocusedElement(this.input);
83
78
 
84
79
  this.callback = callback;
85
80
  }
@@ -103,14 +98,16 @@ export class AddDebugInfoURLDialog extends UI.Widget.HBox {
103
98
  this.callback(value);
104
99
  }
105
100
 
101
+ private onInputChange(value: string): void {
102
+ this.url = value;
103
+ }
104
+
106
105
  private apply(): void {
107
- this.done(this.input.value as Platform.DevToolsPath.UrlString);
106
+ this.done(this.url as Platform.DevToolsPath.UrlString);
108
107
  }
109
108
 
110
- private onKeyDown(event: KeyboardEvent): void {
111
- if (event.key === 'Enter') {
112
- event.consume(true);
113
- this.apply();
114
- }
109
+ private onEnter(value: string): void {
110
+ this.url = value;
111
+ this.apply();
115
112
  }
116
113
  }
@@ -255,6 +255,7 @@ export class AiCodeCompletionPlugin extends Plugin {
255
255
  }
256
256
 
257
257
  #removeAiCodeCompletionCitationsToolbar(): void {
258
+ this.#aiCodeCompletionCitationsToolbar?.detach();
258
259
  if (this.#editor) {
259
260
  this.#editor.dispatch({
260
261
  effects: SourceFrame.SourceFrame.removeSourceFrameInfobar.of(
@@ -300,7 +301,7 @@ export class AiCodeCompletionPlugin extends Plugin {
300
301
  this.#aiCodeCompletion?.remove();
301
302
  this.#aiCodeCompletion = undefined;
302
303
  this.#aiCodeCompletionCitations = [];
303
- this.#aiCodeCompletionDisclaimerContainer.removeChildren();
304
+ this.#aiCodeCompletionDisclaimer?.detach();
304
305
  this.#aiCodeCompletionDisclaimer = undefined;
305
306
  this.#removeAiCodeCompletionCitationsToolbar();
306
307
  this.#aiCodeCompletionCitationsToolbar = undefined;
@@ -44,6 +44,7 @@ import * as Breakpoints from '../../models/breakpoints/breakpoints.js';
44
44
  import * as Workspace from '../../models/workspace/workspace.js';
45
45
  import * as PanelCommon from '../../panels/common/common.js';
46
46
  import * as ObjectUI from '../../ui/legacy/components/object_ui/object_ui.js';
47
+ import * as SettingsUI from '../../ui/legacy/components/settings_ui/settings_ui.js';
47
48
  import type * as SourceFrame from '../../ui/legacy/components/source_frame/source_frame.js';
48
49
  import * as UI from '../../ui/legacy/legacy.js';
49
50
  import * as VisualLogging from '../../ui/visual_logging/visual_logging.js';
@@ -921,7 +922,7 @@ export class SourcesPanel extends UI.Panel.Panel implements
921
922
 
922
923
  const label = i18nString(UIStrings.pauseOnCaughtExceptions);
923
924
  const setting = Common.Settings.Settings.instance().moduleSetting('pause-on-caught-exception');
924
- debugToolbarDrawer.appendChild(UI.SettingsUI.createSettingCheckbox(label, setting));
925
+ debugToolbarDrawer.appendChild(SettingsUI.SettingsUI.createSettingCheckbox(label, setting));
925
926
 
926
927
  return debugToolbarDrawer;
927
928
  }
@@ -396,7 +396,11 @@ const UIStrings = {
396
396
  /**
397
397
  * @description Title of a setting under the Sources category in Settings
398
398
  */
399
- wasmAutoStepping: 'When debugging Wasm with debug information, do not pause on wasm bytecode if possible',
399
+ wasmAutoStepping: 'Wasm auto-stepping bytecode',
400
+ /**
401
+ * @description Tooltip text for a setting that controls Wasm will try to skip wasm bytecode
402
+ */
403
+ wasmAutoSteppingInfo: 'When debugging Wasm with debug information, try to skip wasm bytecode',
400
404
  /**
401
405
  * @description Title of a setting under the Sources category in Settings
402
406
  */
@@ -1850,6 +1854,9 @@ Common.Settings.registerSettingExtension({
1850
1854
  title: i18nLazyString(UIStrings.disableWasmAutoStepping),
1851
1855
  },
1852
1856
  ],
1857
+ learnMore: {
1858
+ tooltip: i18nLazyString(UIStrings.wasmAutoSteppingInfo),
1859
+ }
1853
1860
  });
1854
1861
 
1855
1862
  UI.ViewManager.registerLocationResolver({