chrome-devtools-frontend 1.0.1376716 → 1.0.1380117

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 (434) hide show
  1. package/config/gni/devtools_grd_files.gni +15 -7
  2. package/config/gni/devtools_image_files.gni +2 -0
  3. package/front_end/Images/src/animation.svg +3 -0
  4. package/front_end/Images/src/brush-2.svg +3 -0
  5. package/front_end/core/common/SettingRegistration.ts +1 -1
  6. package/front_end/core/host/AidaClient.ts +1 -0
  7. package/front_end/core/host/InspectorFrontendHost.ts +4 -0
  8. package/front_end/core/i18n/ByteUtilities.test.ts +34 -0
  9. package/front_end/core/i18n/ByteUtilities.ts +65 -0
  10. package/front_end/core/i18n/NumberFormatter.ts +75 -0
  11. package/front_end/core/i18n/i18n.ts +4 -0
  12. package/front_end/core/i18n/time-utilities.test.ts +20 -2
  13. package/front_end/core/i18n/time-utilities.ts +125 -86
  14. package/front_end/core/platform/NumberUtilities.test.ts +3 -26
  15. package/front_end/core/platform/NumberUtilities.ts +0 -20
  16. package/front_end/core/root/Runtime.ts +6 -3
  17. package/front_end/core/sdk/CPUThrottlingManager.ts +4 -0
  18. package/front_end/core/sdk/CSSContainerQuery.test.ts +10 -16
  19. package/front_end/core/sdk/CSSContainerQuery.ts +3 -15
  20. package/front_end/core/sdk/CSSMatchedStyles.test.ts +4 -0
  21. package/front_end/core/sdk/CSSMatchedStyles.ts +5 -5
  22. package/front_end/core/sdk/CSSModel.ts +18 -0
  23. package/front_end/core/sdk/CSSPropertyParser.test.ts +16 -1
  24. package/front_end/core/sdk/CSSPropertyParser.ts +2 -2
  25. package/front_end/core/sdk/sdk-meta.ts +8 -0
  26. package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshot.ts +3 -3
  27. package/front_end/generated/ARIAProperties.js +4 -0
  28. package/front_end/generated/InspectorBackendCommands.js +8 -6
  29. package/front_end/generated/SupportedCSSProperties.js +17 -4
  30. package/front_end/generated/protocol-mapping.d.ts +15 -1
  31. package/front_end/generated/protocol-proxy-api.d.ts +14 -1
  32. package/front_end/generated/protocol.ts +26 -2
  33. package/front_end/models/extensions/ExtensionAPI.ts +9 -1
  34. package/front_end/models/heap_snapshot_model/HeapSnapshotModel.ts +2 -0
  35. package/front_end/models/javascript_metadata/NativeFunctions.js +8 -21
  36. package/front_end/models/live-metrics/web-vitals-injected/{rollup.config.js → rollup.config.mjs} +1 -1
  37. package/front_end/models/persistence/EditFileSystemView.ts +19 -9
  38. package/front_end/models/persistence/WorkspaceSettingsTab.ts +50 -54
  39. package/front_end/models/persistence/editFileSystemView.css +35 -15
  40. package/front_end/models/persistence/workspaceSettingsTab.css +21 -87
  41. package/front_end/models/timeline_model/timeline_model.ts +0 -6
  42. package/front_end/models/trace/Processor.test.ts +18 -17
  43. package/front_end/models/trace/Processor.ts +10 -14
  44. package/front_end/models/trace/README.md +0 -1
  45. package/front_end/models/{timeline_model → trace/extras}/TimelineJSProfile.ts +19 -29
  46. package/front_end/models/{timeline_model/TimelineModelFilter.test.ts → trace/extras/TraceFilter.test.ts} +15 -17
  47. package/front_end/models/trace/extras/TraceFilter.ts +62 -0
  48. package/front_end/models/{timeline_model/TimelineProfileTree.test.ts → trace/extras/TraceTree.test.ts} +44 -43
  49. package/front_end/models/{timeline_model/TimelineProfileTree.ts → trace/extras/TraceTree.ts} +65 -59
  50. package/front_end/models/trace/extras/extras.ts +3 -0
  51. package/front_end/models/trace/handlers/AnimationHandler.ts +0 -8
  52. package/front_end/models/trace/handlers/ExtensionTraceDataHandler.ts +1 -11
  53. package/front_end/models/trace/handlers/FramesHandler.test.ts +1 -6
  54. package/front_end/models/trace/handlers/FramesHandler.ts +1 -14
  55. package/front_end/models/trace/handlers/GPUHandler.test.ts +0 -2
  56. package/front_end/models/trace/handlers/GPUHandler.ts +1 -25
  57. package/front_end/models/trace/handlers/ImagePaintingHandler.ts +3 -0
  58. package/front_end/models/trace/handlers/InitiatorsHandler.test.ts +0 -1
  59. package/front_end/models/trace/handlers/InitiatorsHandler.ts +0 -20
  60. package/front_end/models/trace/handlers/InvalidationsHandler.test.ts +0 -1
  61. package/front_end/models/trace/handlers/InvalidationsHandler.ts +0 -18
  62. package/front_end/models/trace/handlers/LargestImagePaintHandler.test.ts +2 -2
  63. package/front_end/models/trace/handlers/LargestImagePaintHandler.ts +63 -3
  64. package/front_end/models/trace/handlers/LargestTextPaintHandler.ts +3 -0
  65. package/front_end/models/trace/handlers/LayerTreeHandler.test.ts +0 -2
  66. package/front_end/models/trace/handlers/LayerTreeHandler.ts +1 -18
  67. package/front_end/models/trace/handlers/LayoutShiftsHandler.test.ts +0 -3
  68. package/front_end/models/trace/handlers/LayoutShiftsHandler.ts +1 -20
  69. package/front_end/models/trace/handlers/MemoryHandler.test.ts +0 -1
  70. package/front_end/models/trace/handlers/MemoryHandler.ts +3 -0
  71. package/front_end/models/trace/handlers/MetaHandler.test.ts +1 -32
  72. package/front_end/models/trace/handlers/MetaHandler.ts +2 -30
  73. package/front_end/models/trace/handlers/NetworkRequestsHandler.test.ts +0 -26
  74. package/front_end/models/trace/handlers/NetworkRequestsHandler.ts +4 -23
  75. package/front_end/models/trace/handlers/PageFramesHandler.ts +3 -0
  76. package/front_end/models/trace/handlers/RendererHandler.test.ts +0 -4
  77. package/front_end/models/trace/handlers/RendererHandler.ts +1 -24
  78. package/front_end/models/trace/handlers/SamplesHandler.test.ts +0 -5
  79. package/front_end/models/trace/handlers/SamplesHandler.ts +0 -26
  80. package/front_end/models/trace/handlers/ScreenshotsHandler.test.ts +0 -1
  81. package/front_end/models/trace/handlers/SelectorStatsHandler.ts +3 -0
  82. package/front_end/models/trace/handlers/ServerTimingsHandler.ts +1 -16
  83. package/front_end/models/trace/handlers/Threads.test.ts +1 -2
  84. package/front_end/models/trace/handlers/UserInteractionsHandler.test.ts +4 -27
  85. package/front_end/models/trace/handlers/UserInteractionsHandler.ts +16 -25
  86. package/front_end/models/trace/handlers/UserTimingsHandler.ts +0 -17
  87. package/front_end/models/trace/handlers/WorkersHandler.test.ts +0 -1
  88. package/front_end/models/trace/handlers/WorkersHandler.ts +0 -23
  89. package/front_end/models/trace/handlers/types.ts +1 -8
  90. package/front_end/models/trace/insights/{CumulativeLayoutShift.test.ts → CLSCulprits.test.ts} +21 -21
  91. package/front_end/models/trace/insights/{CumulativeLayoutShift.ts → CLSCulprits.ts} +24 -5
  92. package/front_end/models/trace/insights/Common.ts +5 -55
  93. package/front_end/models/trace/insights/DocumentLatency.test.ts +2 -2
  94. package/front_end/models/trace/insights/DocumentLatency.ts +26 -6
  95. package/front_end/models/trace/insights/FontDisplay.ts +24 -5
  96. package/front_end/models/trace/insights/InteractionToNextPaint.test.ts +1 -1
  97. package/front_end/models/trace/insights/InteractionToNextPaint.ts +26 -6
  98. package/front_end/models/trace/insights/LCPDiscovery.test.ts +58 -0
  99. package/front_end/models/trace/insights/LCPDiscovery.ts +101 -0
  100. package/front_end/models/trace/insights/{LargestContentfulPaint.test.ts → LCPPhases.test.ts} +6 -28
  101. package/front_end/models/trace/insights/{LargestContentfulPaint.ts → LCPPhases.ts} +37 -38
  102. package/front_end/models/trace/insights/{InsightRunners.ts → Models.ts} +4 -3
  103. package/front_end/models/trace/insights/RenderBlocking.test.ts +1 -1
  104. package/front_end/models/trace/insights/RenderBlocking.ts +33 -28
  105. package/front_end/models/trace/insights/SlowCSSSelector.ts +26 -5
  106. package/front_end/models/trace/insights/{ThirdPartyWeb.test.ts → ThirdParties.test.ts} +3 -3
  107. package/front_end/models/trace/insights/{ThirdPartyWeb.ts → ThirdParties.ts} +24 -5
  108. package/front_end/models/trace/insights/Viewport.test.ts +1 -1
  109. package/front_end/models/trace/insights/Viewport.ts +27 -9
  110. package/front_end/models/trace/insights/insights.ts +1 -1
  111. package/front_end/models/trace/insights/types.ts +11 -9
  112. package/front_end/models/trace/types/TraceEvents.ts +51 -22
  113. package/front_end/panels/application/SharedStorageItemsView.test.ts +3 -3
  114. package/front_end/panels/application/SharedStorageItemsView.ts +5 -3
  115. package/front_end/panels/application/StorageView.ts +3 -3
  116. package/front_end/panels/application/components/StorageMetadataView.ts +1 -2
  117. package/front_end/panels/browser_debugger/XHRBreakpointsSidebarPane.ts +34 -31
  118. package/front_end/panels/coverage/CoverageView.ts +3 -3
  119. package/front_end/panels/elements/ComputedStyleModel.ts +9 -2
  120. package/front_end/panels/elements/ComputedStyleWidget.test.ts +72 -0
  121. package/front_end/panels/elements/ComputedStyleWidget.ts +12 -0
  122. package/front_end/panels/elements/ElementStatePaneWidget.test.ts +84 -30
  123. package/front_end/panels/elements/ElementStatePaneWidget.ts +42 -24
  124. package/front_end/panels/elements/ElementsTreeElement.ts +24 -11
  125. package/front_end/panels/elements/MetricsSidebarPane.ts +12 -7
  126. package/front_end/panels/elements/PropertyMatchers.ts +3 -0
  127. package/front_end/panels/elements/StylePropertiesSection.ts +15 -6
  128. package/front_end/panels/elements/StylePropertyTreeElement.test.ts +3 -1
  129. package/front_end/panels/elements/StylePropertyTreeElement.ts +8 -3
  130. package/front_end/panels/elements/stylePropertiesTreeOutline.css +2 -2
  131. package/front_end/panels/explain/components/ConsoleInsight.ts +8 -18
  132. package/front_end/panels/freestyler/AiAgent.test.ts +58 -1
  133. package/front_end/panels/freestyler/AiAgent.ts +58 -3
  134. package/front_end/panels/freestyler/DrJonesFileAgent.test.ts +99 -23
  135. package/front_end/panels/freestyler/DrJonesFileAgent.ts +53 -20
  136. package/front_end/panels/freestyler/DrJonesNetworkAgent.test.ts +15 -7
  137. package/front_end/panels/freestyler/DrJonesNetworkAgent.ts +36 -15
  138. package/front_end/panels/freestyler/DrJonesPerformanceAgent.test.ts +6 -6
  139. package/front_end/panels/freestyler/DrJonesPerformanceAgent.ts +48 -8
  140. package/front_end/panels/freestyler/FreestylerAgent.test.ts +15 -14
  141. package/front_end/panels/freestyler/FreestylerAgent.ts +52 -8
  142. package/front_end/panels/freestyler/FreestylerPanel.test.ts +539 -39
  143. package/front_end/panels/freestyler/FreestylerPanel.ts +349 -215
  144. package/front_end/panels/freestyler/components/FreestylerChatUi.test.ts +126 -34
  145. package/front_end/panels/freestyler/components/FreestylerChatUi.ts +320 -268
  146. package/front_end/panels/freestyler/components/UserActionRow.ts +156 -47
  147. package/front_end/panels/freestyler/components/freestylerChatUi.css +69 -34
  148. package/front_end/panels/freestyler/components/userActionRow.css +40 -67
  149. package/front_end/panels/freestyler/freestyler-meta.ts +3 -11
  150. package/front_end/panels/issues/components/HideIssuesMenu.ts +2 -11
  151. package/front_end/panels/layer_viewer/LayerDetailsView.ts +1 -2
  152. package/front_end/panels/layer_viewer/PaintProfilerView.ts +5 -5
  153. package/front_end/panels/lighthouse/LighthouseReportRenderer.ts +46 -0
  154. package/front_end/panels/mobile_throttling/ThrottlingSettingsTab.ts +26 -17
  155. package/front_end/panels/mobile_throttling/throttlingSettingsTab.css +25 -19
  156. package/front_end/panels/network/BinaryResourceView.ts +6 -7
  157. package/front_end/panels/network/EventSourceMessagesView.ts +1 -1
  158. package/front_end/panels/network/NetworkDataGridNode.ts +3 -3
  159. package/front_end/panels/network/NetworkLogView.ts +7 -8
  160. package/front_end/panels/network/RequestTimingView.test.ts +35 -1
  161. package/front_end/panels/network/RequestTimingView.ts +96 -0
  162. package/front_end/panels/network/ResourceWebSocketFrameView.ts +2 -2
  163. package/front_end/panels/network/networkTimingTable.css +2 -1
  164. package/front_end/panels/performance_monitor/PerformanceMonitor.ts +1 -1
  165. package/front_end/panels/profiler/HeapProfileView.ts +3 -3
  166. package/front_end/panels/profiler/HeapSnapshotView.ts +2 -2
  167. package/front_end/panels/profiler/HeapTimelineOverview.ts +12 -12
  168. package/front_end/panels/profiler/IsolateSelector.ts +3 -4
  169. package/front_end/panels/profiler/ProfileFlameChartDataProvider.ts +1 -1
  170. package/front_end/panels/profiler/ProfileSidebarTreeElement.ts +7 -6
  171. package/front_end/panels/profiler/ProfileView.ts +1 -1
  172. package/front_end/panels/recorder/components/RecordingView.ts +2 -2
  173. package/front_end/panels/recorder/injected/{rollup.config.js → rollup.config.mjs} +1 -1
  174. package/front_end/panels/recorder/recorderController.css +0 -4
  175. package/front_end/panels/security/CookieReportTreeElement.ts +1 -9
  176. package/front_end/panels/security/CookieReportView.ts +120 -0
  177. package/front_end/panels/security/SecurityPanel.ts +8 -2
  178. package/front_end/panels/security/cookieReportView.css +46 -0
  179. package/front_end/panels/security/sidebar.css +1 -2
  180. package/front_end/panels/sensors/LocationsSettingsTab.ts +26 -11
  181. package/front_end/panels/sensors/locationsSettingsTab.css +18 -18
  182. package/front_end/panels/settings/AISettingsTab.ts +6 -15
  183. package/front_end/panels/settings/KeybindsSettingsTab.ts +1 -1
  184. package/front_end/panels/settings/SettingsScreen.ts +61 -56
  185. package/front_end/panels/settings/aiSettingsTab.css +3 -14
  186. package/front_end/panels/settings/components/SyncSection.ts +1 -2
  187. package/front_end/panels/settings/components/syncSection.css +0 -10
  188. package/front_end/panels/settings/frameworkIgnoreListSettingsTab.css +3 -1
  189. package/front_end/panels/settings/keybindsSettingsTab.css +7 -10
  190. package/front_end/panels/settings/settingsScreen.css +27 -125
  191. package/front_end/panels/sources/DebuggerPlugin.ts +9 -4
  192. package/front_end/panels/sources/NavigatorView.ts +11 -13
  193. package/front_end/panels/timeline/ActiveFilters.ts +3 -4
  194. package/front_end/panels/timeline/AnimationsTrackAppender.ts +1 -2
  195. package/front_end/panels/timeline/CountersGraph.ts +2 -4
  196. package/front_end/panels/timeline/EventsTimelineTreeView.ts +7 -8
  197. package/front_end/panels/timeline/README.md +2 -1
  198. package/front_end/panels/timeline/TimelineController.ts +14 -4
  199. package/front_end/panels/timeline/TimelineEventOverview.ts +3 -4
  200. package/front_end/panels/timeline/TimelineFilters.ts +3 -4
  201. package/front_end/panels/timeline/TimelineFlameChartDataProvider.test.ts +1 -1
  202. package/front_end/panels/timeline/TimelineFlameChartDataProvider.ts +3 -10
  203. package/front_end/panels/timeline/TimelineFlameChartNetworkDataProvider.ts +1 -2
  204. package/front_end/panels/timeline/TimelineFlameChartView.ts +21 -12
  205. package/front_end/panels/timeline/TimelineLoader.test.ts +1 -2
  206. package/front_end/panels/timeline/TimelineLoader.ts +3 -4
  207. package/front_end/panels/timeline/TimelineMiniMap.ts +10 -0
  208. package/front_end/panels/timeline/TimelinePanel.ts +20 -8
  209. package/front_end/panels/timeline/TimelineTreeView.test.ts +12 -13
  210. package/front_end/panels/timeline/TimelineTreeView.ts +35 -40
  211. package/front_end/panels/timeline/TimelineUIUtils.test.ts +2 -2
  212. package/front_end/panels/timeline/TimelineUIUtils.ts +12 -14
  213. package/front_end/panels/timeline/components/LayoutShiftDetails.ts +6 -7
  214. package/front_end/panels/timeline/components/LiveMetricsView.test.ts +3 -3
  215. package/front_end/panels/timeline/components/LiveMetricsView.ts +14 -26
  216. package/front_end/panels/timeline/components/MetricCard.test.ts +1 -1
  217. package/front_end/panels/timeline/components/MetricCard.ts +46 -0
  218. package/front_end/panels/timeline/components/NetworkRequestDetails.ts +3 -4
  219. package/front_end/panels/timeline/components/SidebarSingleInsightSet.test.ts +2 -0
  220. package/front_end/panels/timeline/components/SidebarSingleInsightSet.ts +41 -36
  221. package/front_end/panels/timeline/components/insights/CLSCulprits.ts +19 -33
  222. package/front_end/panels/timeline/components/insights/DocumentLatency.ts +29 -40
  223. package/front_end/panels/timeline/components/insights/FontDisplay.ts +17 -23
  224. package/front_end/panels/timeline/components/insights/Helpers.ts +12 -16
  225. package/front_end/panels/timeline/components/insights/InteractionToNextPaint.ts +14 -26
  226. package/front_end/panels/timeline/components/insights/LCPDiscovery.ts +25 -37
  227. package/front_end/panels/timeline/components/insights/LCPPhases.ts +20 -47
  228. package/front_end/panels/timeline/components/insights/RenderBlocking.ts +19 -28
  229. package/front_end/panels/timeline/components/insights/SidebarInsight.ts +1 -2
  230. package/front_end/panels/timeline/components/insights/SlowCSSSelector.ts +18 -31
  231. package/front_end/panels/timeline/components/insights/Table.ts +5 -3
  232. package/front_end/panels/timeline/components/insights/ThirdParties.ts +18 -25
  233. package/front_end/panels/timeline/components/insights/Viewport.ts +14 -25
  234. package/front_end/panels/timeline/components/liveMetricsView.css +5 -13
  235. package/front_end/panels/timeline/components/metricCard.css +11 -0
  236. package/front_end/panels/timeline/components/sidebarInsightsTab.css +1 -1
  237. package/front_end/panels/timeline/overlays/OverlaysImpl.test.ts +5 -5
  238. package/front_end/panels/timeline/overlays/OverlaysImpl.ts +13 -12
  239. package/front_end/panels/timeline/timelineFlameChartView.css +1 -1
  240. package/front_end/panels/timeline/utils/AICallTree.test.ts +105 -0
  241. package/front_end/panels/timeline/utils/AICallTree.ts +25 -24
  242. package/front_end/testing/EnvironmentHelpers.ts +5 -18
  243. package/front_end/testing/InsightHelpers.ts +4 -4
  244. package/front_end/testing/TraceHelpers.ts +1 -1
  245. package/front_end/third_party/puppeteer/README.chromium +2 -2
  246. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.d.ts +2 -3
  247. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.d.ts.map +1 -1
  248. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.js.map +1 -1
  249. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/ElementHandle.d.ts +14 -3
  250. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/ElementHandle.d.ts.map +1 -1
  251. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/ElementHandle.js +16 -2
  252. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/ElementHandle.js.map +1 -1
  253. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Input.d.ts +34 -5
  254. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Input.d.ts.map +1 -1
  255. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Input.js +51 -2
  256. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Input.js.map +1 -1
  257. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/ElementHandle.d.ts.map +1 -1
  258. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/ElementHandle.js +10 -8
  259. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/ElementHandle.js.map +1 -1
  260. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.d.ts.map +1 -1
  261. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.js +1 -1
  262. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.js.map +1 -1
  263. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Input.d.ts +14 -4
  264. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Input.d.ts.map +1 -1
  265. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Input.js +57 -23
  266. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Input.js.map +1 -1
  267. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ElementHandle.d.ts +1 -1
  268. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ElementHandle.d.ts.map +1 -1
  269. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ElementHandle.js +13 -10
  270. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ElementHandle.js.map +1 -1
  271. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Input.d.ts +15 -4
  272. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Input.d.ts.map +1 -1
  273. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Input.js +55 -26
  274. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Input.js.map +1 -1
  275. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/CallbackRegistry.d.ts +0 -8
  276. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/CallbackRegistry.d.ts.map +1 -1
  277. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/CallbackRegistry.js +2 -11
  278. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/CallbackRegistry.js.map +1 -1
  279. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConsoleMessage.d.ts +2 -1
  280. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConsoleMessage.d.ts.map +1 -1
  281. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConsoleMessage.js +5 -2
  282. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConsoleMessage.js.map +1 -1
  283. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Errors.d.ts +7 -0
  284. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Errors.d.ts.map +1 -1
  285. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Errors.js +9 -1
  286. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Errors.js.map +1 -1
  287. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/WaitTask.d.ts.map +1 -1
  288. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/WaitTask.js +5 -3
  289. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/WaitTask.js.map +1 -1
  290. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/environment.d.ts +1 -1
  291. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/environment.d.ts.map +1 -1
  292. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/environment.js +0 -3
  293. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/environment.js.map +1 -1
  294. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/injected.d.ts +1 -1
  295. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/injected.js +1 -1
  296. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/version.d.ts +1 -1
  297. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/version.js +1 -1
  298. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/injected/injected.d.ts +1 -1
  299. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.d.ts +3 -3
  300. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js +3 -3
  301. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js.map +1 -1
  302. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/Mutex.d.ts +2 -2
  303. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/incremental-id-generator.d.ts +14 -0
  304. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/incremental-id-generator.d.ts.map +1 -0
  305. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/incremental-id-generator.js +18 -0
  306. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/incremental-id-generator.js.map +1 -0
  307. package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.d.ts +51 -10
  308. package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.js +215 -97
  309. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.d.ts +2 -3
  310. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.d.ts.map +1 -1
  311. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.js.map +1 -1
  312. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/ElementHandle.d.ts +14 -3
  313. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/ElementHandle.d.ts.map +1 -1
  314. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/ElementHandle.js +16 -2
  315. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/ElementHandle.js.map +1 -1
  316. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Input.d.ts +34 -5
  317. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Input.d.ts.map +1 -1
  318. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Input.js +51 -2
  319. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Input.js.map +1 -1
  320. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/ElementHandle.d.ts.map +1 -1
  321. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/ElementHandle.js +10 -8
  322. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/ElementHandle.js.map +1 -1
  323. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.d.ts.map +1 -1
  324. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.js +1 -1
  325. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.js.map +1 -1
  326. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Input.d.ts +14 -4
  327. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Input.d.ts.map +1 -1
  328. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Input.js +57 -23
  329. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Input.js.map +1 -1
  330. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ElementHandle.d.ts +1 -1
  331. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ElementHandle.d.ts.map +1 -1
  332. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ElementHandle.js +13 -10
  333. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ElementHandle.js.map +1 -1
  334. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Input.d.ts +15 -4
  335. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Input.d.ts.map +1 -1
  336. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Input.js +55 -26
  337. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Input.js.map +1 -1
  338. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/CallbackRegistry.d.ts +0 -8
  339. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/CallbackRegistry.d.ts.map +1 -1
  340. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/CallbackRegistry.js +1 -9
  341. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/CallbackRegistry.js.map +1 -1
  342. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConsoleMessage.d.ts +2 -1
  343. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConsoleMessage.d.ts.map +1 -1
  344. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConsoleMessage.js +5 -2
  345. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConsoleMessage.js.map +1 -1
  346. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Errors.d.ts +7 -0
  347. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Errors.d.ts.map +1 -1
  348. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Errors.js +7 -0
  349. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Errors.js.map +1 -1
  350. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/WaitTask.d.ts.map +1 -1
  351. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/WaitTask.js +5 -3
  352. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/WaitTask.js.map +1 -1
  353. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/environment.d.ts +1 -1
  354. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/environment.d.ts.map +1 -1
  355. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/environment.js +0 -3
  356. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/environment.js.map +1 -1
  357. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/injected.d.ts +1 -1
  358. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/injected.js +1 -1
  359. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/version.d.ts +1 -1
  360. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/version.js +1 -1
  361. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.d.ts +3 -3
  362. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js +3 -3
  363. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js.map +1 -1
  364. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/incremental-id-generator.d.ts +14 -0
  365. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/incremental-id-generator.d.ts.map +1 -0
  366. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/incremental-id-generator.js +15 -0
  367. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/incremental-id-generator.js.map +1 -0
  368. package/front_end/third_party/puppeteer/package/lib/types.d.ts +51 -10
  369. package/front_end/third_party/puppeteer/package/package.json +4 -4
  370. package/front_end/third_party/puppeteer/package/src/api/Browser.ts +2 -3
  371. package/front_end/third_party/puppeteer/package/src/api/ElementHandle.ts +21 -3
  372. package/front_end/third_party/puppeteer/package/src/api/Input.ts +57 -8
  373. package/front_end/third_party/puppeteer/package/src/bidi/ElementHandle.ts +9 -7
  374. package/front_end/third_party/puppeteer/package/src/bidi/Frame.ts +1 -0
  375. package/front_end/third_party/puppeteer/package/src/bidi/Input.ts +72 -31
  376. package/front_end/third_party/puppeteer/package/src/cdp/ElementHandle.ts +14 -9
  377. package/front_end/third_party/puppeteer/package/src/cdp/Input.ts +71 -26
  378. package/front_end/third_party/puppeteer/package/src/common/CallbackRegistry.ts +1 -15
  379. package/front_end/third_party/puppeteer/package/src/common/ConsoleMessage.ts +8 -1
  380. package/front_end/third_party/puppeteer/package/src/common/Errors.ts +7 -0
  381. package/front_end/third_party/puppeteer/package/src/common/WaitTask.ts +9 -9
  382. package/front_end/third_party/puppeteer/package/src/environment.ts +1 -4
  383. package/front_end/third_party/puppeteer/package/src/generated/injected.ts +1 -1
  384. package/front_end/third_party/puppeteer/package/src/generated/version.ts +1 -1
  385. package/front_end/third_party/puppeteer/package/src/revisions.ts +3 -3
  386. package/front_end/third_party/puppeteer/package/src/util/incremental-id-generator.ts +20 -0
  387. package/front_end/third_party/puppeteer/puppeteer-tsconfig.json +1 -0
  388. package/front_end/ui/components/buttons/Button.test.ts +14 -0
  389. package/front_end/ui/components/buttons/Button.ts +27 -4
  390. package/front_end/ui/components/cards/card.css +7 -4
  391. package/front_end/ui/components/dialogs/Dialog.ts +2 -4
  392. package/front_end/ui/components/dialogs/ShortcutDialog.ts +15 -13
  393. package/front_end/ui/components/dialogs/dialog.css +2 -6
  394. package/front_end/ui/components/dialogs/shortcutDialog.css +33 -41
  395. package/front_end/ui/components/docs/freestyler/basic.ts +6 -8
  396. package/front_end/ui/components/docs/freestyler/empty_state.ts +6 -8
  397. package/front_end/ui/components/docs/performance_panel/track_example.html +1 -1
  398. package/front_end/ui/components/markdown_view/MarkdownView.test.ts +39 -17
  399. package/front_end/ui/components/markdown_view/MarkdownView.ts +77 -14
  400. package/front_end/ui/components/markdown_view/markdownView.css +15 -0
  401. package/front_end/ui/components/settings/SettingCheckbox.ts +3 -2
  402. package/front_end/ui/legacy/ContextMenu.ts +2 -2
  403. package/front_end/ui/legacy/InplaceEditor.ts +18 -14
  404. package/front_end/ui/legacy/TabbedPane.ts +0 -14
  405. package/front_end/ui/legacy/UIUtils.ts +0 -7
  406. package/front_end/ui/legacy/components/cookie_table/CookiesTable.ts +7 -2
  407. package/front_end/ui/legacy/components/data_grid/DataGrid.ts +8 -4
  408. package/front_end/ui/legacy/components/data_grid/ViewportDataGrid.ts +20 -11
  409. package/front_end/ui/legacy/components/inline_editor/LinkSwatch.test.ts +19 -0
  410. package/front_end/ui/legacy/components/inline_editor/LinkSwatch.ts +1 -1
  411. package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +1 -1
  412. package/front_end/ui/legacy/components/perf_ui/FlameChart.ts +5 -22
  413. package/front_end/ui/legacy/components/perf_ui/OverviewGrid.ts +129 -100
  414. package/front_end/ui/legacy/components/perf_ui/TimelineGrid.ts +4 -2
  415. package/front_end/ui/legacy/components/perf_ui/TimelineOverviewCalculator.test.ts +9 -4
  416. package/front_end/ui/legacy/components/perf_ui/TimelineOverviewCalculator.ts +6 -6
  417. package/front_end/ui/legacy/components/perf_ui/TimelineOverviewPane.ts +22 -4
  418. package/front_end/ui/legacy/components/perf_ui/flameChart.css +0 -2
  419. package/front_end/ui/legacy/components/source_frame/BinaryResourceViewFactory.test.ts +49 -0
  420. package/front_end/ui/legacy/components/source_frame/BinaryResourceViewFactory.ts +23 -46
  421. package/front_end/ui/legacy/components/source_frame/ImageView.ts +1 -1
  422. package/front_end/ui/legacy/components/utils/ImagePreview.ts +1 -1
  423. package/front_end/ui/legacy/textPrompt.css +1 -1
  424. package/front_end/ui/legacy/toolbar.css +4 -5
  425. package/front_end/ui/visual_logging/KnownContextValues.ts +174 -0
  426. package/front_end/ui/visual_logging/LoggingConfig.ts +6 -2
  427. package/package.json +7 -6
  428. package/scripts/build/ninja/bundle.gni +3 -3
  429. package/scripts/build/{rollup.config.js → rollup.config.mjs} +4 -4
  430. package/scripts/devtools_paths.py +8 -4
  431. package/scripts/eslint_rules/tests/check_test_definitions_test.js +8 -3
  432. package/scripts/tools/update_goldens_v2.py +1 -1
  433. package/front_end/models/timeline_model/TimelineModelFilter.ts +0 -61
  434. /package/front_end/Images/{rollup.config.js → rollup.config.mjs} +0 -0
@@ -34,6 +34,7 @@ import * as i18n from '../../core/i18n/i18n.js';
34
34
  import type * as Platform from '../../core/platform/platform.js';
35
35
  import * as Root from '../../core/root/root.js';
36
36
  import * as Buttons from '../../ui/components/buttons/buttons.js';
37
+ import * as Cards from '../../ui/components/cards/cards.js';
37
38
  import * as Components from '../../ui/legacy/components/utils/utils.js';
38
39
  import * as UI from '../../ui/legacy/legacy.js';
39
40
  import * as VisualLogging from '../../ui/visual_logging/visual_logging.js';
@@ -44,6 +45,11 @@ import type {KeybindsSettingsTab} from './KeybindsSettingsTab.js';
44
45
  import settingsScreenStyles from './settingsScreen.css.js';
45
46
 
46
47
  const UIStrings = {
48
+
49
+ /**
50
+ *@description Card header in Experiments settings tab that list all available unstable experiments that can be turned on or off.
51
+ */
52
+ unstableExperiments: 'Unstable experiments',
47
53
  /**
48
54
  *@description Name of the Settings view
49
55
  */
@@ -52,31 +58,22 @@ const UIStrings = {
52
58
  *@description Text for keyboard shortcuts
53
59
  */
54
60
  shortcuts: 'Shortcuts',
55
- /**
56
- *@description Text in Settings Screen of the Settings
57
- */
58
- preferences: 'Preferences',
59
61
  /**
60
62
  *@description Text of button in Settings Screen of the Settings
61
63
  */
62
64
  restoreDefaultsAndReload: 'Restore defaults and reload',
63
65
  /**
64
- *@description Text in Settings Screen of the Settings
66
+ *@description Card header in Experiments settings tab that list all available stable experiments that can be turned on or off.
65
67
  */
66
68
  experiments: 'Experiments',
67
69
  /**
68
70
  *@description Message shown in the experiments panel to warn users about any possible unstable features.
69
71
  */
70
- theseExperimentsCouldBeUnstable:
71
- 'These experiments could be unstable or unreliable and may require you to restart DevTools.',
72
+ theseExperimentsCouldBeUnstable: 'Warning: These experiments could be unstable or unreliable.',
72
73
  /**
73
74
  *@description Message text content in Settings Screen of the Settings
74
75
  */
75
- theseExperimentsAreParticularly: 'These experiments are particularly unstable. Enable at your own risk.',
76
- /**
77
- *@description Warning text content in Settings Screen of the Settings
78
- */
79
- warning: 'WARNING:',
76
+ theseExperimentsAreParticularly: 'Warning: These experiments are particularly unstable. Enable at your own risk.',
80
77
  /**
81
78
  *@description Message to display if a setting change requires a reload of DevTools
82
79
  */
@@ -89,7 +86,7 @@ const UIStrings = {
89
86
  * @description Warning text shown when the user has entered text to filter the
90
87
  * list of experiments, but no experiments match the filter.
91
88
  */
92
- noResults: 'No experiments match the filter',
89
+ noResults: 'Warning: No experiments match the filter',
93
90
  /**
94
91
  *@description Text that is usually a hyperlink to more documentation
95
92
  */
@@ -104,6 +101,12 @@ const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
104
101
 
105
102
  let settingsScreenInstance: SettingsScreen;
106
103
 
104
+ function createSettingsCard(heading: Common.UIString.LocalizedString, ...content: HTMLElement[]): Cards.Card.Card {
105
+ const card = new Cards.Card.Card();
106
+ card.data = {heading, content};
107
+ return card;
108
+ }
109
+
107
110
  export class SettingsScreen extends UI.Widget.VBox implements UI.View.ViewLocationResolver {
108
111
  private readonly tabbedLocation: UI.View.TabbedViewLocation;
109
112
  private keybindsTab?: KeybindsSettingsTab;
@@ -240,28 +243,14 @@ export class SettingsScreen extends UI.Widget.VBox implements UI.View.ViewLocati
240
243
 
241
244
  abstract class SettingsTab extends UI.Widget.VBox {
242
245
  containerElement: HTMLElement;
243
- constructor(name: string, id?: string) {
246
+ constructor(id?: string) {
244
247
  super();
245
248
  this.element.classList.add('settings-tab-container');
246
249
  if (id) {
247
250
  this.element.id = id;
248
251
  }
249
- const header = this.element.createChild('header');
250
- UI.UIUtils.createTextChild(header.createChild('h1'), name);
251
- this.containerElement = this.element.createChild('div', 'settings-container-wrapper')
252
- .createChild('div', 'settings-tab settings-content settings-container');
253
- }
254
-
255
- protected appendSection(name?: string): HTMLElement {
256
- const block = this.containerElement.createChild('div', 'settings-block');
257
- if (name) {
258
- UI.ARIAUtils.markAsGroup(block);
259
- const title = block.createChild('div', 'settings-section-title');
260
- title.textContent = name;
261
- UI.ARIAUtils.markAsHeading(title, 2);
262
- UI.ARIAUtils.setLabel(block, name);
263
- }
264
- return block;
252
+ this.containerElement =
253
+ this.contentElement.createChild('div', 'settings-card-container-wrapper').createChild('div');
265
254
  }
266
255
 
267
256
  abstract highlightObject(_object: Object): void;
@@ -272,9 +261,10 @@ export class GenericSettingsTab extends SettingsTab {
272
261
  private readonly settingToControl = new Map<Common.Settings.Setting<unknown>, HTMLElement>();
273
262
 
274
263
  constructor() {
275
- super(i18nString(UIStrings.preferences), 'preferences-tab-content');
264
+ super('preferences-tab-content');
276
265
 
277
266
  this.element.setAttribute('jslog', `${VisualLogging.pane('preferences')}`);
267
+ this.containerElement.classList.add('settings-multicolumn-card-container');
278
268
 
279
269
  // GRID, MOBILE, EMULATION, and RENDERING are intentionally excluded from this list.
280
270
  const explicitSectionOrder: Common.Settings.SettingCategory[] = [
@@ -318,7 +308,7 @@ export class GenericSettingsTab extends SettingsTab {
318
308
  const restoreAndReloadButton = UI.UIUtils.createTextButton(
319
309
  i18nString(UIStrings.restoreDefaultsAndReload), restoreAndReload,
320
310
  {jslogContext: 'settings.restore-defaults-and-reload'});
321
- this.appendSection().appendChild(restoreAndReloadButton);
311
+ this.containerElement.appendChild(restoreAndReloadButton);
322
312
 
323
313
  function restoreAndReload(): void {
324
314
  Common.Settings.Settings.instance().clearAll();
@@ -355,8 +345,7 @@ export class GenericSettingsTab extends SettingsTab {
355
345
  const settingUI = Components.Linkifier.LinkHandlerSettingUI.instance() as UI.SettingsUI.SettingUI;
356
346
  const element = settingUI.settingElement();
357
347
  if (element) {
358
- const sectionElement = this.createStandardSectionElement(sectionName, settings);
359
- sectionElement.appendChild(element);
348
+ this.createStandardSectionElement(sectionName, settings, element);
360
349
  }
361
350
  }
362
351
 
@@ -366,16 +355,20 @@ export class GenericSettingsTab extends SettingsTab {
366
355
  if (category === Common.Settings.SettingCategory.EXTENSIONS) {
367
356
  this.createExtensionSection(settings);
368
357
  } else if (category === Common.Settings.SettingCategory.SYNC && settings.length > 0) {
369
- this.containerElement.appendChild(this.syncSection);
358
+ const syncCard = createSettingsCard(
359
+ Common.SettingRegistration.getLocalizedSettingsCategory(Common.SettingRegistration.SettingCategory.SYNC),
360
+ this.syncSection);
361
+ this.containerElement.appendChild(syncCard);
370
362
  } else if (settings.length > 0) {
371
363
  this.createStandardSectionElement(category, settings);
372
364
  }
373
365
  }
374
366
 
375
367
  private createStandardSectionElement(
376
- category: Common.Settings.SettingCategory, settings: Common.Settings.SettingRegistration[]): Element {
368
+ category: Common.Settings.SettingCategory, settings: Common.Settings.SettingRegistration[],
369
+ content?: Element): void {
377
370
  const uiSectionName = Common.Settings.getLocalizedSettingsCategory(category);
378
- const sectionElement = this.appendSection(uiSectionName);
371
+ const sectionElement = document.createElement('div');
379
372
  for (const settingRegistration of settings) {
380
373
  const setting = Common.Settings.Settings.instance().moduleSetting(settingRegistration.settingName);
381
374
  const settingControl = UI.SettingsUI.createControlForSetting(setting);
@@ -384,7 +377,11 @@ export class GenericSettingsTab extends SettingsTab {
384
377
  sectionElement.appendChild(settingControl);
385
378
  }
386
379
  }
387
- return sectionElement;
380
+ if (content) {
381
+ sectionElement.appendChild(content);
382
+ }
383
+ const card = createSettingsCard(uiSectionName, sectionElement);
384
+ this.containerElement.appendChild(card);
388
385
  }
389
386
 
390
387
  highlightObject(setting: Object): void {
@@ -398,14 +395,16 @@ export class GenericSettingsTab extends SettingsTab {
398
395
  }
399
396
 
400
397
  export class ExperimentsSettingsTab extends SettingsTab {
401
- #experimentsSection: HTMLElement|undefined;
402
- #unstableExperimentsSection: HTMLElement|undefined;
398
+ #experimentsSection: Cards.Card.Card|undefined;
399
+ #unstableExperimentsSection: Cards.Card.Card|undefined;
403
400
  #inputElement: HTMLInputElement;
404
401
  private readonly experimentToControl = new Map<Root.Runtime.Experiment, HTMLElement>();
405
402
 
406
403
  constructor() {
407
- super(i18nString(UIStrings.experiments), 'experiments-tab-content');
408
- const filterSection = this.appendSection();
404
+ super('experiments-tab-content');
405
+ this.containerElement.classList.add('settings-card-container');
406
+
407
+ const filterSection = this.containerElement.createChild('div');
409
408
  filterSection.classList.add('experiments-filter');
410
409
 
411
410
  this.element.setAttribute('jslog', `${VisualLogging.pane('experiments')}`);
@@ -434,36 +433,42 @@ export class ExperimentsSettingsTab extends SettingsTab {
434
433
  const unstableExperiments = experiments.filter(e => e.unstable && e.title.toLowerCase().includes(filterText));
435
434
  const stableExperiments = experiments.filter(e => !e.unstable && e.title.toLowerCase().includes(filterText));
436
435
  if (stableExperiments.length) {
437
- this.#experimentsSection = this.appendSection();
436
+ const experimentsBlock = document.createElement('div');
437
+ experimentsBlock.classList.add('settings-experiments-block');
438
438
  const warningMessage = i18nString(UIStrings.theseExperimentsCouldBeUnstable);
439
- this.#experimentsSection.appendChild(this.createExperimentsWarningSubsection(warningMessage));
439
+ const warningSection = this.createExperimentsWarningSubsection(warningMessage);
440
440
  for (const experiment of stableExperiments) {
441
- this.#experimentsSection.appendChild(this.createExperimentCheckbox(experiment));
441
+ experimentsBlock.appendChild(this.createExperimentCheckbox(experiment));
442
442
  }
443
+ this.#experimentsSection =
444
+ createSettingsCard(i18nString(UIStrings.experiments), warningSection, experimentsBlock);
445
+ this.containerElement.appendChild(this.#experimentsSection);
443
446
  }
444
447
  if (unstableExperiments.length) {
445
- this.#unstableExperimentsSection = this.appendSection();
448
+ const experimentsBlock = document.createElement('div');
449
+ experimentsBlock.classList.add('settings-experiments-block');
446
450
  const warningMessage = i18nString(UIStrings.theseExperimentsAreParticularly);
447
- this.#unstableExperimentsSection.appendChild(this.createExperimentsWarningSubsection(warningMessage));
448
451
  for (const experiment of unstableExperiments) {
449
- this.#unstableExperimentsSection.appendChild(this.createExperimentCheckbox(experiment));
452
+ experimentsBlock.appendChild(this.createExperimentCheckbox(experiment));
450
453
  }
454
+ this.#unstableExperimentsSection = createSettingsCard(
455
+ i18nString(UIStrings.unstableExperiments), this.createExperimentsWarningSubsection(warningMessage),
456
+ experimentsBlock);
457
+ this.containerElement.appendChild(this.#unstableExperimentsSection);
451
458
  }
452
459
  if (!stableExperiments.length && !unstableExperiments.length) {
453
- this.#experimentsSection = this.appendSection();
454
- const warning = this.#experimentsSection.createChild('span');
460
+ const warning = document.createElement('span');
455
461
  warning.textContent = i18nString(UIStrings.noResults);
456
462
  UI.ARIAUtils.alert(warning.textContent);
463
+ this.#experimentsSection = createSettingsCard(i18nString(UIStrings.experiments), warning);
464
+ this.containerElement.appendChild(this.#experimentsSection);
457
465
  }
458
466
  }
459
467
 
460
- private createExperimentsWarningSubsection(warningMessage: string): Element {
468
+ private createExperimentsWarningSubsection(warningMessage: string): HTMLElement {
461
469
  const subsection = document.createElement('div');
462
- const warning = subsection.createChild('span', 'settings-experiments-warning-subsection-warning');
463
- warning.textContent = i18nString(UIStrings.warning);
464
- UI.UIUtils.createTextChild(subsection, ' ');
465
- const message = subsection.createChild('span', 'settings-experiments-warning-subsection-message');
466
- message.textContent = warningMessage;
470
+ const warning = subsection.createChild('span');
471
+ warning.textContent = warningMessage;
467
472
  return subsection;
468
473
  }
469
474
 
@@ -8,13 +8,6 @@
8
8
  box-sizing: border-box;
9
9
  }
10
10
 
11
- header > h1 {
12
- font-size: 18px;
13
- font-weight: normal;
14
- margin: 0;
15
- white-space: nowrap;
16
- }
17
-
18
11
  .shared-disclaimer {
19
12
  background: linear-gradient(135deg, var(--sys-color-gradient-primary), var(--sys-color-gradient-tertiary));
20
13
  border-radius: var(--sys-size-5);
@@ -45,7 +38,7 @@ header > h1 {
45
38
  display: grid;
46
39
  grid-template-columns: 1fr auto auto;
47
40
  border-radius: var(--sys-size-5);
48
- box-shadow: var(--sys-elevation-level3); /* stylelint-disable-line plugin/use_theme_colors */
41
+ box-shadow: var(--sys-elevation-level2);
49
42
  margin: var(--sys-size-11) 0 var(--sys-size-4);
50
43
  line-height: var(--sys-typescale-body5-line-height);
51
44
  min-width: var(--sys-size-28);
@@ -154,13 +147,9 @@ header > h1 {
154
147
 
155
148
  .settings-container-wrapper {
156
149
  position: absolute;
157
- top: 31px;
158
- left: 0;
159
- right: 0;
160
- bottom: 0;
150
+ inset: var(--sys-size-8) 0 0;
161
151
  overflow: auto;
162
- padding: var(--sys-size-6);
163
- border-top: 1px solid var(--sys-color-divider);
152
+ padding: var(--sys-size-3) var(--sys-size-6) var(--sys-size-6);
164
153
  display: flex;
165
154
  flex-direction: column;
166
155
  }
@@ -5,7 +5,7 @@
5
5
  import '../../../ui/components/chrome_link/chrome_link.js';
6
6
  import '../../../ui/components/settings/settings.js';
7
7
 
8
- import * as Common from '../../../core/common/common.js';
8
+ import type * as Common from '../../../core/common/common.js';
9
9
  import type * 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';
@@ -77,7 +77,6 @@ export class SyncSection extends HTMLElement {
77
77
  // clang-format off
78
78
  LitHtml.render(html`
79
79
  <fieldset>
80
- <legend>${Common.Settings.getLocalizedSettingsCategory(Common.Settings.SettingCategory.SYNC)}</legend>
81
80
  ${renderAccountInfoOrWarning(this.#syncInfo)}
82
81
  <setting-checkbox .data=${
83
82
  {setting: this.#syncSetting}}>
@@ -13,18 +13,9 @@
13
13
 
14
14
  fieldset {
15
15
  border: 0;
16
- margin-left: 20px;
17
16
  padding: 0;
18
17
  }
19
18
 
20
- legend {
21
- color: var(--sys-color-token-subtle);
22
- font-size: 120%;
23
- margin-left: -20px;
24
- padding: 0;
25
- text-align: left;
26
- }
27
-
28
19
  .link {
29
20
  color: var(--sys-color-primary);
30
21
  text-decoration: underline;
@@ -42,7 +33,6 @@ img {
42
33
 
43
34
  .warning {
44
35
  display: block;
45
- margin-top: 12px;
46
36
  }
47
37
 
48
38
  .account-info {
@@ -28,7 +28,9 @@
28
28
  flex: 0 1 auto;
29
29
  }
30
30
 
31
- .enable-ignore-listing, .ignore-list-item, .general-exclusion-group {
31
+ .enable-ignore-listing,
32
+ .ignore-list-item,
33
+ .general-exclusion-group {
32
34
  padding-left: var(--sys-size-4);
33
35
  }
34
36
 
@@ -10,7 +10,7 @@
10
10
  }
11
11
 
12
12
  .keybinds-key {
13
- display:flex;
13
+ display: flex;
14
14
  align-items: center;
15
15
  justify-content: center;
16
16
  height: var(--sys-size-11);
@@ -19,19 +19,16 @@
19
19
  white-space: nowrap;
20
20
  border-radius: var(--sys-shape-corner-small);
21
21
  background: var(--sys-color-tonal-container);
22
- padding: 0px var(--sys-size-4);
22
+ padding: 0 var(--sys-size-4);
23
23
  }
24
24
 
25
25
  .keybinds-list-item {
26
26
  margin: 0 var(--sys-size-6);
27
27
  padding: var(--sys-size-4) 0;
28
28
  display: grid;
29
- grid-template-rows: 1fr ;
29
+ grid-template-rows: 1fr;
30
30
  grid-template-columns: 1fr 30px 2fr 30px 30px;
31
- }
32
-
33
- .keybinds-list-item:not(.keybinds-category-header) {
34
- border-top: 1px solid var(--sys-color-divider);
31
+ border-bottom: var(--sys-size-1) solid var(--sys-color-divider);
35
32
  }
36
33
 
37
34
  .keybinds-list-item:focus-visible {
@@ -43,7 +40,7 @@
43
40
  }
44
41
 
45
42
  .keybinds-list-text.keybinds-action-name {
46
- grid-row: 1 / 3;
43
+ grid-row: 1 / 1;
47
44
  }
48
45
 
49
46
  .keybinds-shortcut,
@@ -108,8 +105,8 @@
108
105
  white-space: nowrap;
109
106
  }
110
107
 
111
- .keybinds-header-wrapper + .keybinds-list-item-wrapper > .keybinds-list-item {
112
- border: none;
108
+ .keybinds-list-item-wrapper + .keybinds-header-wrapper {
109
+ margin-top: var(--sys-size-9);
113
110
  }
114
111
 
115
112
  .keybinds-list-item-wrapper:has(:not(.keybinds-category-header):hover),
@@ -17,54 +17,8 @@
17
17
  flex: auto;
18
18
  }
19
19
 
20
- .settings-container {
21
- width: 100%;
22
- column-width: 288px;
23
- }
24
-
25
- .settings-block {
26
- display: block;
27
- padding-bottom: 9px;
28
- width: 288px;
29
- break-inside: avoid;
30
- }
31
-
32
- .settings-tab.settings-container {
33
- column-width: 308px;
34
- }
35
-
36
- .settings-tab .settings-block {
37
- margin-left: 20px;
38
- }
39
-
40
- .settings-line {
41
- padding-bottom: 5px;
42
- margin-bottom: 5px;
43
- }
44
-
45
- .settings-key-cell {
46
- display: inline-block;
47
- width: 153px;
48
- white-space: nowrap;
49
- text-align: right;
50
- vertical-align: middle;
51
- padding-right: 6px;
52
- }
53
-
54
- .settings-cell {
55
- display: inline-block;
56
- width: 135px;
57
- vertical-align: middle;
58
- }
59
-
60
- .settings-section-title {
61
- font-size: 120%;
62
- text-align: left;
63
- }
64
-
65
- .settings-combine-keys {
66
- margin: 0 0.3em;
67
- font-size: 9px;
20
+ .settings-experiments-block {
21
+ padding: 0 var(--sys-size-6) var(--sys-size-5) var(--sys-size-4);
68
22
  }
69
23
 
70
24
  fieldset {
@@ -81,36 +35,20 @@ fieldset {
81
35
 
82
36
  label {
83
37
  padding-right: 8px;
84
- padding-bottom: 8px;
85
38
  }
86
39
 
87
40
  .experiments-filter label {
88
41
  padding-bottom: 0;
89
42
  }
90
43
 
91
- .settings-tab p {
92
- margin: 6px 0;
93
- }
94
-
95
- .settings-block p p {
96
- padding-left: 30px;
97
- }
98
-
99
44
  .settings-select {
100
45
  align-items: center;
101
46
  display: grid;
47
+ row-gap: var(--sys-size-3);
102
48
  }
103
49
 
104
- .settings-experiments-warning-subsection-warning {
105
- color: var(--sys-color-error);
106
- }
107
-
108
- .settings-experiments-warning-subsection-message {
109
- color: inherit;
110
- }
111
-
112
- .settings-content input[type="checkbox"] {
113
- margin: 1px 7px 1px 2px;
50
+ div:has(.settings-select) + div:has(.settings-select) {
51
+ padding-top: var(--sys-size-5);
114
52
  }
115
53
 
116
54
  .settings-window-label-element {
@@ -133,32 +71,12 @@ label {
133
71
  }
134
72
  }
135
73
 
136
- .settings-container-wrapper {
137
- position: absolute;
138
- top: 31px;
139
- left: 0;
140
- right: 0;
141
- bottom: 0;
142
- overflow: auto;
143
- padding-top: 9px;
144
- border-top: 1px solid var(--sys-color-divider);
145
- }
146
-
147
74
  .settings-card-container-wrapper {
148
- padding-top: var(--sys-size-8);
75
+ scrollbar-gutter: stable;
76
+ padding-bottom: var(--sys-size-8);
149
77
  overflow: auto;
150
- scrollbar-width: thin;
151
- }
152
-
153
- @media (max-width: 1000px) {
154
- .settings-card-container-wrapper {
155
- position: absolute;
156
- top: var(--sys-size-8);
157
- left: 0;
158
- right: 0;
159
- bottom: 0;
160
- overflow: auto;
161
- }
78
+ position: absolute;
79
+ inset: var(--sys-size-8) 0 0;
162
80
  }
163
81
 
164
82
  .settings-card-container {
@@ -168,49 +86,33 @@ label {
168
86
  gap: var(--sys-size-9);
169
87
  }
170
88
 
171
- .settings-tab.settings-content {
172
- margin: 0;
173
- padding: 0;
174
- }
175
-
176
- .settings-tab-container {
177
- flex: auto;
178
- overflow: hidden;
179
- }
180
-
181
- .settings-tab-container header {
182
- padding: 0 0 6px;
183
- }
184
-
185
- #experiments-tab-content .settings-container {
186
- column-width: auto;
187
- }
89
+ .settings-multicolumn-card-container {
90
+ column-width: var(--sys-size-32);
91
+ column-gap: var(--sys-size-11);
188
92
 
189
- #experiments-tab-content .settings-block {
190
- width: auto;
191
- margin-left: 0;
192
- margin-right: 10px;
193
- }
93
+ > * + * {
94
+ margin-top: var(--sys-size-8);
95
+ }
194
96
 
195
- .settings-tab-container header > h1 {
196
- font-size: 18px;
197
- font-weight: normal;
198
- margin: 0;
199
- padding-bottom: 3px;
200
- white-space: nowrap;
97
+ > devtools-button {
98
+ margin-left: var(--sys-size-5);
99
+ }
201
100
  }
202
101
 
203
- .settings-tab .settings-section-title {
204
- margin-left: -20px;
205
- color: var(--sys-color-on-surface-subtle);
102
+ .settings-card-container-wrapper select {
103
+ margin-left: 10px;
104
+ width: var(--sys-size-28);
206
105
  }
207
106
 
208
- .settings-tab select {
209
- margin-left: 10px;
210
- width: 80%;
107
+ .settings-card-container-wrapper setting-checkbox { /* stylelint-disable-line selector-type-no-unknown */
108
+ min-height: var(--sys-size-13);
109
+ position: relative;
110
+ left: calc(var(--sys-size-4) * -1);
211
111
  }
212
112
 
213
113
  .settings-experiment {
114
+ margin: 0;
115
+ min-height: var(--sys-size-13);
214
116
  display: grid;
215
117
  grid-template-columns: auto min-content auto 1fr;
216
118
 
@@ -566,18 +566,23 @@ export class DebuggerPlugin extends Plugin {
566
566
  scriptFile.addSourceMapURL(url);
567
567
  }
568
568
 
569
- function addDebugInfoURL(scriptFile: Bindings.ResourceScriptMapping.ResourceScriptFile): void {
569
+ function addDebugInfoURL(
570
+ this: DebuggerPlugin, scriptFile: Bindings.ResourceScriptMapping.ResourceScriptFile): void {
570
571
  const dialog =
571
- AddDebugInfoURLDialog.createAddDWARFSymbolsURLDialog(addDebugInfoURLDialogCallback.bind(null, scriptFile));
572
+ AddDebugInfoURLDialog.createAddDWARFSymbolsURLDialog(addDebugInfoURLDialogCallback.bind(this, scriptFile));
572
573
  dialog.show();
573
574
  }
574
575
 
575
576
  function addDebugInfoURLDialogCallback(
576
- scriptFile: Bindings.ResourceScriptMapping.ResourceScriptFile, url: Platform.DevToolsPath.UrlString): void {
577
+ this: DebuggerPlugin, scriptFile: Bindings.ResourceScriptMapping.ResourceScriptFile,
578
+ url: Platform.DevToolsPath.UrlString): void {
577
579
  if (!url) {
578
580
  return;
579
581
  }
580
582
  scriptFile.addDebugInfoURL(url);
583
+ if (scriptFile.script?.debuggerModel) {
584
+ this.updateScriptFile(scriptFile.script?.debuggerModel);
585
+ }
581
586
  }
582
587
 
583
588
  if (this.uiSourceCode.project().type() === Workspace.Workspace.projectTypes.Network &&
@@ -593,7 +598,7 @@ export class DebuggerPlugin extends Plugin {
593
598
  !Bindings.DebuggerWorkspaceBinding.DebuggerWorkspaceBinding.instance().pluginManager.hasPluginForScript(
594
599
  scriptFile.script)) {
595
600
  contextMenu.debugSection().appendItem(
596
- i18nString(UIStrings.addWasmDebugInfo), addDebugInfoURL.bind(null, scriptFile),
601
+ i18nString(UIStrings.addWasmDebugInfo), addDebugInfoURL.bind(this, scriptFile),
597
602
  {jslogContext: 'add-wasm-debug-info'});
598
603
  }
599
604
  }