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
@@ -15,8 +15,8 @@ export class HeapTimelineOverview extends Common.ObjectWrapper.eventMixin<EventT
15
15
  overviewContainer: HTMLElement;
16
16
  overviewGrid: PerfUI.OverviewGrid.OverviewGrid;
17
17
  overviewCanvas: HTMLCanvasElement;
18
- windowLeft: number;
19
- windowRight: number;
18
+ windowLeftRatio: number;
19
+ windowRightRatio: number;
20
20
  readonly yScale: SmoothScale;
21
21
  readonly xScale: SmoothScale;
22
22
  profileSamples: Samples;
@@ -24,7 +24,7 @@ export class HeapTimelineOverview extends Common.ObjectWrapper.eventMixin<EventT
24
24
  updateOverviewCanvas?: boolean;
25
25
  updateGridTimerId?: number;
26
26
  updateTimerId?: number|null;
27
- windowWidth?: number;
27
+ windowWidthRatio?: number;
28
28
  constructor() {
29
29
  super();
30
30
  this.element.id = 'heap-recording-view';
@@ -40,9 +40,9 @@ export class HeapTimelineOverview extends Common.ObjectWrapper.eventMixin<EventT
40
40
  this.overviewContainer.appendChild(this.overviewGrid.element);
41
41
  this.overviewGrid.addEventListener(PerfUI.OverviewGrid.Events.WINDOW_CHANGED, this.onWindowChanged, this);
42
42
 
43
- this.windowLeft = 0.0;
44
- this.windowRight = 1.0;
45
- this.overviewGrid.setWindow(this.windowLeft, this.windowRight);
43
+ this.windowLeftRatio = 0.0;
44
+ this.windowRightRatio = 1.0;
45
+ this.overviewGrid.setWindowRatio(this.windowLeftRatio, this.windowRightRatio);
46
46
  this.yScale = new SmoothScale();
47
47
  this.xScale = new SmoothScale();
48
48
 
@@ -174,7 +174,7 @@ export class HeapTimelineOverview extends Common.ObjectWrapper.eventMixin<EventT
174
174
  context.closePath();
175
175
 
176
176
  if (gridValue) {
177
- const label = Platform.NumberUtilities.bytesToString(gridValue);
177
+ const label = i18n.ByteUtilities.bytesToString(gridValue);
178
178
  const labelPadding = 4;
179
179
  const labelX = 0;
180
180
  const labelY = gridY - 0.5;
@@ -210,9 +210,9 @@ export class HeapTimelineOverview extends Common.ObjectWrapper.eventMixin<EventT
210
210
  }
211
211
 
212
212
  updateBoundaries(): void {
213
- this.windowLeft = this.overviewGrid.windowLeft();
214
- this.windowRight = this.overviewGrid.windowRight();
215
- this.windowWidth = this.windowRight - this.windowLeft;
213
+ this.windowLeftRatio = this.overviewGrid.windowLeftRatio();
214
+ this.windowRightRatio = this.overviewGrid.windowRightRatio();
215
+ this.windowWidthRatio = this.windowRightRatio - this.windowLeftRatio;
216
216
  }
217
217
 
218
218
  update(): void {
@@ -237,8 +237,8 @@ export class HeapTimelineOverview extends Common.ObjectWrapper.eventMixin<EventT
237
237
  const sizes = this.profileSamples.sizes;
238
238
  const startTime = timestamps[0];
239
239
  const totalTime = this.profileSamples.totalTime;
240
- const timeLeft = startTime + totalTime * this.windowLeft;
241
- const timeRight = startTime + totalTime * this.windowRight;
240
+ const timeLeft = startTime + totalTime * this.windowLeftRatio;
241
+ const timeRight = startTime + totalTime * this.windowRightRatio;
242
242
  const minIndex =
243
243
  Platform.ArrayUtilities.lowerBound(timestamps, timeLeft, Platform.ArrayUtilities.DEFAULT_COMPARATOR);
244
244
  const maxIndex =
@@ -4,7 +4,6 @@
4
4
 
5
5
  import * as Common from '../../core/common/common.js';
6
6
  import * as i18n from '../../core/i18n/i18n.js';
7
- import * as Platform from '../../core/platform/platform.js';
8
7
  import * as SDK from '../../core/sdk/sdk.js';
9
8
  import * as UI from '../../ui/legacy/legacy.js';
10
9
 
@@ -172,7 +171,7 @@ export class IsolateSelector extends UI.Widget.VBox implements UI.ListControl.Li
172
171
  total += isolate.usedHeapSize();
173
172
  trend += isolate.usedHeapSizeGrowRate();
174
173
  }
175
- this.totalValueDiv.textContent = Platform.NumberUtilities.bytesToString(total);
174
+ this.totalValueDiv.textContent = i18n.ByteUtilities.bytesToString(total);
176
175
  IsolateSelector.formatTrendElement(trend, this.totalTrendDiv);
177
176
  }
178
177
 
@@ -182,7 +181,7 @@ export class IsolateSelector extends UI.Widget.VBox implements UI.ListControl.Li
182
181
  if (Math.abs(changeRateBytesPerSecond) < changeRateThresholdBytesPerSecond) {
183
182
  return;
184
183
  }
185
- const changeRateText = Platform.NumberUtilities.bytesToString(Math.abs(changeRateBytesPerSecond));
184
+ const changeRateText = i18n.ByteUtilities.bytesToString(Math.abs(changeRateBytesPerSecond));
186
185
  let changeText, changeLabel;
187
186
  if (changeRateBytesPerSecond > 0) {
188
187
  changeText = '\u2B06' + i18nString(UIStrings.changeRate, {PH1: changeRateText});
@@ -267,7 +266,7 @@ export class ListItem {
267
266
  }
268
267
 
269
268
  updateStats(): void {
270
- this.heapDiv.textContent = Platform.NumberUtilities.bytesToString(this.isolate.usedHeapSize());
269
+ this.heapDiv.textContent = i18n.ByteUtilities.bytesToString(this.isolate.usedHeapSize());
271
270
  IsolateSelector.formatTrendElement(this.isolate.usedHeapSizeGrowRate(), this.trendDiv);
272
271
  }
273
272
 
@@ -346,7 +346,7 @@ export class OverviewPane extends Common.ObjectWrapper.eventMixin<OverviewPaneEv
346
346
  selectRange(timeLeft: number, timeRight: number): void {
347
347
  const startTime = this.dataProvider.minimumBoundary();
348
348
  const totalTime = this.dataProvider.totalTime();
349
- this.overviewGrid.setWindow((timeLeft - startTime) / totalTime, (timeRight - startTime) / totalTime);
349
+ this.overviewGrid.setWindowRatio((timeLeft - startTime) / totalTime, (timeRight - startTime) / totalTime);
350
350
  }
351
351
 
352
352
  onWindowChanged(event: Common.EventTarget.EventTargetEvent<PerfUI.OverviewGrid.WindowChangedWithPositionEvent>):
@@ -35,8 +35,7 @@ export class ProfileSidebarTreeElement extends UI.TreeOutline.TreeElement {
35
35
  small: boolean;
36
36
  readonly dataDisplayDelegate: DataDisplayDelegate;
37
37
  profile: ProfileHeader;
38
- saveLinkElement?: HTMLElement;
39
- editing?: UI.InplaceEditor.Controller|null;
38
+ editing: UI.InplaceEditor.Controller|null;
40
39
  constructor(dataDisplayDelegate: DataDisplayDelegate, profile: ProfileHeader, className: string) {
41
40
  super('', false);
42
41
  this.iconElement = document.createElement('div');
@@ -66,6 +65,7 @@ export class ProfileSidebarTreeElement extends UI.TreeOutline.TreeElement {
66
65
  this.dataDisplayDelegate = dataDisplayDelegate;
67
66
  this.profile = profile;
68
67
  profile.addEventListener(ProfileHeaderEvents.UPDATE_STATUS, this.updateStatus, this);
68
+ this.editing = null;
69
69
  }
70
70
 
71
71
  updateStatus(event: Common.EventTarget.EventTargetEvent<StatusUpdate>): void {
@@ -93,17 +93,18 @@ export class ProfileSidebarTreeElement extends UI.TreeOutline.TreeElement {
93
93
  if (!container) {
94
94
  return;
95
95
  }
96
- const config = new UI.InplaceEditor.Config(this.editingCommitted.bind(this), this.editingCancelled.bind(this));
96
+ const config =
97
+ new UI.InplaceEditor.Config(this.editingCommitted.bind(this), this.editingCancelled.bind(this), undefined);
97
98
  this.editing = UI.InplaceEditor.InplaceEditor.startEditing(container, config);
98
99
  }
99
100
 
100
- editingCommitted(container: Element, newTitle: string): void {
101
- delete this.editing;
101
+ editingCommitted(_container: Element, newTitle: string): void {
102
+ this.editing = null;
102
103
  this.profile.setTitle(newTitle);
103
104
  }
104
105
 
105
106
  editingCancelled(): void {
106
- delete this.editing;
107
+ this.editing = null;
107
108
  }
108
109
 
109
110
  dispose(): void {
@@ -566,7 +566,7 @@ export class WritableProfileHeader extends ProfileHeader implements Common.Strin
566
566
  if (this.jsonifiedProfile) {
567
567
  // TODO(l10n): Is the '%' at the end of this string correct? 4MB% looks wrong
568
568
  this.updateStatus(
569
- i18nString(UIStrings.loadingD, {PH1: Platform.NumberUtilities.bytesToString(this.jsonifiedProfile.length)}));
569
+ i18nString(UIStrings.loadingD, {PH1: i18n.ByteUtilities.bytesToString(this.jsonifiedProfile.length)}));
570
570
  }
571
571
  }
572
572
 
@@ -688,12 +688,12 @@ export class RecordingView extends HTMLElement {
688
688
  // clang-format off
689
689
  replaySettingsFragments.push(html`<div>
690
690
  ${i18nString(UIStrings.download, {
691
- value: Platform.NumberUtilities.bytesToString(
691
+ value: i18n.ByteUtilities.bytesToString(
692
692
  this.#settings.networkConditionsSettings.download,
693
693
  ),
694
694
  })},
695
695
  ${i18nString(UIStrings.upload, {
696
- value: Platform.NumberUtilities.bytesToString(
696
+ value: i18n.ByteUtilities.bytesToString(
697
697
  this.#settings.networkConditionsSettings.upload,
698
698
  ),
699
699
  })},
@@ -2,7 +2,7 @@
2
2
  // Use of this source code is governed by a BSD-style license that can be
3
3
  // found in the LICENSE file.
4
4
 
5
- const {terser} = require('../../../../node_modules/rollup-plugin-terser/rollup-plugin-terser.js');
5
+ import terser from '@rollup/plugin-terser';
6
6
 
7
7
  /**
8
8
  * Checks if an env variable is true.
@@ -140,7 +140,3 @@ devtools-recording-list-view {
140
140
  .feedback .x-link:focus-visible {
141
141
  outline: -webkit-focus-ring-color auto 1px;
142
142
  }
143
-
144
- devtools-shortcut-dialog {
145
- padding-right: 6px;
146
- }
@@ -5,14 +5,6 @@ import * as IconButton from '../../ui/components/icon_button/icon_button.js';
5
5
 
6
6
  import {SecurityPanelSidebarTreeElement} from './SecurityPanelSidebarTreeElement.js';
7
7
 
8
- export class ShowCookieReportEvent extends Event {
9
- static readonly eventName = 'showcookiereport';
10
-
11
- constructor() {
12
- super(ShowCookieReportEvent.eventName, {bubbles: true, composed: true});
13
- }
14
- }
15
-
16
8
  export class CookieReportTreeElement extends SecurityPanelSidebarTreeElement {
17
9
  constructor(title: string) {
18
10
  super(title);
@@ -20,7 +12,7 @@ export class CookieReportTreeElement extends SecurityPanelSidebarTreeElement {
20
12
  }
21
13
 
22
14
  override onselect(): boolean {
23
- this.listItemElement.dispatchEvent(new ShowCookieReportEvent());
15
+ this.listItemElement.dispatchEvent(new CustomEvent('showCookieReport', {bubbles: true, composed: true}));
24
16
  return true;
25
17
  }
26
18
  }
@@ -0,0 +1,120 @@
1
+ // Copyright 2024 The Chromium Authors. All rights reserved.
2
+ // Use of this source code is governed by a BSD-style license that can be
3
+ // found in the LICENSE file.
4
+
5
+ import * as i18n from '../../core/i18n/i18n.js';
6
+ import * as UI from '../../ui/legacy/legacy.js';
7
+ import * as LitHtml from '../../ui/lit-html/lit-html.js';
8
+ import * as VisualLogging from '../../ui/visual_logging/visual_logging.js';
9
+
10
+ import cookieReportViewStyles from './cookieReportView.css.js';
11
+
12
+ const {render, html, Directives: {ref}} = LitHtml;
13
+
14
+ const UIStrings = {
15
+ /**
16
+ *@description Title in the header for the third-party cookie report in the Security & Privacy Panel
17
+ */
18
+ title: 'Third-party cookies',
19
+ /**
20
+ *@description Explaination in the header about the cookies listed in the report
21
+ */
22
+ body:
23
+ 'Third-party cookies that might be restricted by users, depending on their settings. If a user chooses to restrict cookies, then this site might not work for them.',
24
+ /**
25
+ *@description A link the user can follow to learn more about third party cookie usage
26
+ */
27
+ learnMoreLink: 'Learn more about how third-party cookies are used',
28
+ /**
29
+ *@description Status string in the cookie report for a third-party cookie that is allowed without any sort of exception. This is also used as filter chip text to allow the user to filter the table based on cookie status
30
+ */
31
+ allowed: 'Allowed',
32
+ /**
33
+ *@description Status string in the cookie report for a third-party cookie that is allowed due to a grace period or heuristic exception. Otherwise, this would have been blocked. This is also used as filter chip text to allow the user to filter the table based on cookie status
34
+ */
35
+ allowedByException: 'Allowed By Exception',
36
+ /**
37
+ *@description Status string in the cookie report for a third-party cookie that was blocked. This is also used as filter chip text to allow the user to filter the table based on cookie status
38
+ */
39
+ blocked: 'Blocked',
40
+ };
41
+ const str_ = i18n.i18n.registerUIStrings('panels/security/CookieReportView.ts', UIStrings);
42
+ export const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
43
+
44
+ export interface ViewInput {}
45
+ export interface ViewOutput {
46
+ namedBitSetFilterUI?: UI.FilterBar.NamedBitSetFilterUI;
47
+ }
48
+
49
+ export interface CookieReportNodeData {
50
+ name: string;
51
+ domain: string;
52
+ type: string;
53
+ platform: string;
54
+ status: string;
55
+ recommendation: string;
56
+ }
57
+
58
+ export type View = (input: ViewInput, output: ViewOutput, target: HTMLElement) => void;
59
+
60
+ const filterItems: UI.FilterBar.Item[] = [
61
+ {
62
+ name: UIStrings.blocked,
63
+ label: () => i18nString(UIStrings.blocked),
64
+ title: UIStrings.blocked,
65
+ jslogContext: UIStrings.blocked,
66
+ },
67
+ {
68
+ name: UIStrings.allowed,
69
+ label: () => i18nString(UIStrings.allowed),
70
+ title: UIStrings.allowed,
71
+ jslogContext: UIStrings.allowed,
72
+ },
73
+ {
74
+ name: UIStrings.allowedByException,
75
+ label: () => i18nString(UIStrings.allowedByException),
76
+ title: UIStrings.allowedByException,
77
+ jslogContext: UIStrings.allowedByException,
78
+ },
79
+ ];
80
+
81
+ export class CookieReportView extends UI.Widget.VBox {
82
+ namedBitSetFilterUI?: UI.FilterBar.NamedBitSetFilterUI;
83
+ #view: View;
84
+
85
+ constructor(element?: HTMLElement, view: View = (input, output, target) => {
86
+ // clang-format off
87
+ render(html `
88
+ <div class="report overflow-auto">
89
+ <div class="header">
90
+ <div class="title">${i18nString(UIStrings.title)}</div>
91
+ <div class="body">${i18nString(UIStrings.body)} <x-link class="x-link" href="https://developers.google.com/privacy-sandbox/cookies/prepare/audit-cookies" jslog=${VisualLogging.link('learn-more').track({click: true})}>${i18nString(UIStrings.learnMoreLink)}</x-link></div>
92
+ </div>
93
+ <devtools-named-bit-set-filter
94
+ class="filter"
95
+ .options=${{items: filterItems}}
96
+ ${ref((el?: Element) => {
97
+ if(el instanceof UI.FilterBar.NamedBitSetFilterUIElement){
98
+ output.namedBitSetFilterUI = el.getOrCreateNamedBitSetFilterUI();
99
+ }
100
+ })}
101
+ ></devtools-named-bit-set-filter>
102
+ </div>
103
+ `, target, {host: this});
104
+ // clang-format on
105
+ }) {
106
+ super(true, undefined, element);
107
+ this.#view = view;
108
+
109
+ this.doUpdate();
110
+ }
111
+
112
+ doUpdate(): void {
113
+ this.#view(this, this, this.contentElement);
114
+ }
115
+
116
+ override wasShown(): void {
117
+ super.wasShown();
118
+ this.registerCSSFiles([cookieReportViewStyles]);
119
+ }
120
+ }
@@ -14,6 +14,7 @@ import * as UI from '../../ui/legacy/legacy.js';
14
14
  import * as LitHtml from '../../ui/lit-html/lit-html.js';
15
15
  import * as VisualLogging from '../../ui/visual_logging/visual_logging.js';
16
16
 
17
+ import {CookieReportView} from './CookieReportView.js';
17
18
  import lockIconStyles from './lockIcon.css.js';
18
19
  import mainViewStyles from './mainView.css.js';
19
20
  import {ShowOriginEvent} from './OriginTreeElement.js';
@@ -534,6 +535,7 @@ export type ViewInput = {
534
535
  panel: SecurityPanel,
535
536
  };
536
537
  export type ViewOutput = {
538
+ setVisibleView: (view: UI.Widget.VBox) => void,
537
539
  splitWidget: UI.SplitWidget.SplitWidget,
538
540
  mainView: SecurityMainView,
539
541
  visibleView: UI.Widget.VBox|null,
@@ -560,7 +562,7 @@ export class SecurityPanel extends UI.Panel.Panel implements SDK.TargetManager.S
560
562
  <devtools-split-widget
561
563
  .options=${{vertical: true, settingName: 'security'}}
562
564
  ${UI.Widget.widgetRef(UI.SplitWidget.SplitWidget, e => {output.splitWidget = e;})}>
563
- <devtools-widget
565
+ <devtools-widget
564
566
  slot="main"
565
567
  .widgetClass=${SecurityMainView}
566
568
  .widgetParams=${[input.panel] as SecurityMainViewProps}
@@ -569,6 +571,7 @@ export class SecurityPanel extends UI.Panel.Panel implements SDK.TargetManager.S
569
571
  <devtools-widget
570
572
  slot="sidebar"
571
573
  .widgetClass=${SecurityPanelSidebar}
574
+ @showCookieReport=${()=>output.setVisibleView(new CookieReportView())}
572
575
  ${UI.Widget.widgetRef(SecurityPanelSidebar, e => {output.sidebar = e;})}>
573
576
  </devtools-widget>
574
577
  </devtools-split-widget>`,
@@ -654,6 +657,7 @@ export class SecurityPanel extends UI.Panel.Panel implements SDK.TargetManager.S
654
657
  // The sidebar element will trigger displaying the main view. Rather than making a redundant call to display the main view, we rely on this.
655
658
  this.sidebar.securityOverviewElement.select(true);
656
659
  }
660
+
657
661
  showOrigin(origin: Platform.DevToolsPath.UrlString): void {
658
662
  const originState = this.origins.get(origin);
659
663
  if (!originState) {
@@ -821,7 +825,9 @@ export class SecurityPanel extends UI.Panel.Panel implements SDK.TargetManager.S
821
825
  const {frame} = event.data;
822
826
  const request = this.lastResponseReceivedForLoaderId.get(frame.loaderId);
823
827
 
824
- this.selectAndSwitchToMainView();
828
+ if (!(this.visibleView instanceof CookieReportView)) {
829
+ this.selectAndSwitchToMainView();
830
+ }
825
831
  this.sidebar.clearOrigins();
826
832
  this.origins.clear();
827
833
  this.lastResponseReceivedForLoaderId.clear();
@@ -0,0 +1,46 @@
1
+ /*
2
+ * Copyright 2024 The Chromium Authors. All rights reserved.
3
+ * Use of this source code is governed by a BSD-style license that can be
4
+ * found in the LICENSE file.
5
+ */
6
+
7
+ .report {
8
+ display: flex;
9
+ flex-direction: column;
10
+ width: 100%;
11
+ height: 100%;
12
+ max-height: 100%;
13
+ gap: var(--sys-size-6);
14
+ padding-top: var(--sys-size-5);
15
+ padding-bottom: var(--sys-size-5);
16
+ }
17
+
18
+ .header {
19
+ display: flex;
20
+ flex-direction: column;
21
+ flex-shrink: 0;
22
+ gap: var(--sys-size-5);
23
+ padding-left: var(--sys-size-6);
24
+ padding-right: var(--sys-size-6);
25
+ min-width: var(--sys-size-31);
26
+
27
+ .title {
28
+ font: var(--sys-typescale-headline4);
29
+ }
30
+
31
+ .body {
32
+ font: var(--sys-typescale-body4-regular);
33
+ }
34
+ }
35
+
36
+ .x-link {
37
+ color: var(--sys-color-primary);
38
+ text-decoration-line: underline;
39
+ cursor: pointer;
40
+ }
41
+
42
+ .filter {
43
+ padding-left: var(--sys-size-5);
44
+ padding-right: var(--sys-size-6);
45
+ flex-shrink: 0;
46
+ }
@@ -43,8 +43,7 @@
43
43
  .security-main-view-reload-message,
44
44
  .tree-outline li.security-sidebar-origins,
45
45
  .tree-outline li.security-group-list-item,
46
- .tree-outline span {
47
-
46
+ .tree-outline span {
48
47
  font: var(--sys-typescale-body4-medium);
49
48
 
50
49
  &:hover:not(:has(span[is="dt-checkbox"])) .selection {
@@ -4,6 +4,8 @@
4
4
 
5
5
  import * as Common from '../../core/common/common.js';
6
6
  import * as i18n from '../../core/i18n/i18n.js';
7
+ import * as Buttons from '../../ui/components/buttons/buttons.js';
8
+ import * as Cards from '../../ui/components/cards/cards.js';
7
9
  import * as UI from '../../ui/legacy/legacy.js';
8
10
  import * as VisualLogging from '../../ui/visual_logging/visual_logging.js';
9
11
 
@@ -14,7 +16,7 @@ const UIStrings = {
14
16
  *@description Title in the Locations Settings Tab, where custom geographic locations that the user
15
17
  *has entered are stored.
16
18
  */
17
- customLocations: 'Custom locations',
19
+ locations: 'Locations',
18
20
  /**
19
21
  *@description Label for the name of a geographic location that the user has entered.
20
22
  */
@@ -91,7 +93,7 @@ const UIStrings = {
91
93
  /**
92
94
  *@description Text of add locations button in Locations Settings Tab of the Device Toolbar
93
95
  */
94
- addLocation: 'Add location...',
96
+ addLocation: 'Add location',
95
97
  };
96
98
  const str_ = i18n.i18n.registerUIStrings('panels/sensors/LocationsSettingsTab.ts', UIStrings);
97
99
  const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
@@ -106,16 +108,31 @@ export class LocationsSettingsTab extends UI.Widget.VBox implements UI.ListWidge
106
108
 
107
109
  this.element.setAttribute('jslog', `${VisualLogging.pane('emulation-locations')}`);
108
110
 
109
- this.contentElement.createChild('div', 'header').textContent = i18nString(UIStrings.customLocations);
110
-
111
- const addButton = UI.UIUtils.createTextButton(
112
- i18nString(UIStrings.addLocation), this.addButtonClicked.bind(this),
113
- {className: 'add-locations-button', jslogContext: 'emulation.add-location'});
114
- this.contentElement.appendChild(addButton);
111
+ const settingsContent =
112
+ this.contentElement.createChild('div', 'settings-card-container-wrapper').createChild('div');
113
+ settingsContent.classList.add('settings-card-container');
114
+
115
+ const addButton = new Buttons.Button.Button();
116
+ addButton.classList.add('add-locations-button');
117
+ addButton.data = {
118
+ variant: Buttons.Button.Variant.OUTLINED,
119
+ iconName: 'plus',
120
+ jslogContext: 'emulation.add-location',
121
+ };
122
+ addButton.textContent = i18nString(UIStrings.addLocation);
123
+ addButton.addEventListener('click', () => this.addButtonClicked());
124
+
125
+ const listContainer = document.createElement('div');
126
+ const locationsCard = new Cards.Card.Card();
127
+ locationsCard.data = {
128
+ heading: i18nString(UIStrings.locations),
129
+ content: [listContainer, addButton],
130
+ };
131
+ settingsContent.appendChild(locationsCard);
115
132
 
116
133
  this.list = new UI.ListWidget.ListWidget(this, undefined, true);
117
134
  this.list.element.classList.add('locations-list');
118
- this.list.show(this.contentElement);
135
+ this.list.show(listContainer);
119
136
  this.customSetting =
120
137
  Common.Settings.Settings.instance().moduleSetting<LocationDescription[]>('emulation.locations');
121
138
  const list =
@@ -144,8 +161,6 @@ export class LocationsSettingsTab extends UI.Widget.VBox implements UI.ListWidge
144
161
 
145
162
  this.customSetting.set(list);
146
163
  this.customSetting.addChangeListener(this.locationsUpdated, this);
147
-
148
- this.setDefaultFocusedElement(addButton);
149
164
  }
150
165
 
151
166
  override wasShown(): void {
@@ -4,28 +4,13 @@
4
4
  * found in the LICENSE file.
5
5
  */
6
6
 
7
- :host {
8
- overflow: hidden;
9
- }
10
-
11
- .header {
12
- padding: 0 0 6px;
13
- border-bottom: 1px solid var(--sys-color-divider);
14
- font-size: 18px;
15
- font-weight: normal;
16
- flex: none;
17
- }
18
-
19
7
  .add-locations-button {
20
- flex: none;
21
- margin: 10px 5px;
22
- min-width: 140px;
23
- align-self: flex-start;
8
+ margin-bottom: var(--sys-size-5);
9
+ border: none;
24
10
  }
25
11
 
26
12
  .locations-list {
27
- max-width: 600px;
28
- min-width: 340px;
13
+ margin-top: var(--sys-size-3);
29
14
  flex: auto;
30
15
  }
31
16
 
@@ -85,3 +70,18 @@
85
70
  .locations-input-container {
86
71
  padding: 1px;
87
72
  }
73
+
74
+ .settings-card-container-wrapper {
75
+ scrollbar-gutter: stable;
76
+ padding-bottom: var(--sys-size-8);
77
+ overflow: auto;
78
+ position: absolute;
79
+ inset: var(--sys-size-8) 0 0;
80
+ }
81
+
82
+ .settings-card-container {
83
+ display: flex;
84
+ flex-direction: column;
85
+ align-items: center;
86
+ gap: var(--sys-size-9);
87
+ }
@@ -138,10 +138,6 @@ const UIStrings = {
138
138
  *@description Label for a link to the privacy notice
139
139
  */
140
140
  privacyNotice: 'Google Privacy Policy',
141
- /**
142
- *@description Header for the AI innovations settings page
143
- */
144
- aiInnovations: 'AI innovations',
145
141
  /**
146
142
  *@description Label for a toggle to enable the Console Insights feature
147
143
  */
@@ -215,14 +211,13 @@ export class AISettingsTab extends LegacyWrapper.LegacyWrapper.WrappableComponen
215
211
 
216
212
  #getAiAssistanceSettingDescription(): Platform.UIString.LocalizedString {
217
213
  const config = Common.Settings.Settings.instance().getHostConfig();
218
- if (config.devToolsAiAssistancePerformanceAgent?.enabled ||
219
- config.devToolsAiAssistancePerformanceAgentDogfood?.enabled) {
214
+ if (config.devToolsAiAssistancePerformanceAgent?.enabled) {
220
215
  return i18nString(UIStrings.helpUnderstandStylingNetworkPerformanceAndFile);
221
216
  }
222
- if (config.devToolsAiAssistanceFileAgent?.enabled || config.devToolsAiAssistanceFileAgentDogfood?.enabled) {
217
+ if (config.devToolsAiAssistanceFileAgent?.enabled) {
223
218
  return i18nString(UIStrings.helpUnderstandStylingNetworkAndFile);
224
219
  }
225
- if (config.devToolsAiAssistanceNetworkAgent?.enabled || config.devToolsExplainThisResourceDogfood?.enabled) {
220
+ if (config.devToolsAiAssistanceNetworkAgent?.enabled) {
226
221
  return i18nString(UIStrings.helpUnderstandStylingAndNetworkRequest);
227
222
  }
228
223
  return i18nString(UIStrings.helpUnderstandStyling);
@@ -230,14 +225,13 @@ export class AISettingsTab extends LegacyWrapper.LegacyWrapper.WrappableComponen
230
225
 
231
226
  #getAiAssistanceSettingInfo(): Platform.UIString.LocalizedString {
232
227
  const config = Common.Settings.Settings.instance().getHostConfig();
233
- if (config.devToolsAiAssistancePerformanceAgent?.enabled ||
234
- config.devToolsAiAssistancePerformanceAgentDogfood?.enabled) {
228
+ if (config.devToolsAiAssistancePerformanceAgent?.enabled) {
235
229
  return i18nString(UIStrings.explainStylingNetworkPerformanceAndFile);
236
230
  }
237
- if (config.devToolsAiAssistanceFileAgent?.enabled || config.devToolsAiAssistanceFileAgentDogfood?.enabled) {
231
+ if (config.devToolsAiAssistanceFileAgent?.enabled) {
238
232
  return i18nString(UIStrings.explainStylingNetworkAndFile);
239
233
  }
240
- if (config.devToolsAiAssistanceNetworkAgent?.enabled || config.devToolsExplainThisResourceDogfood?.enabled) {
234
+ if (config.devToolsAiAssistanceNetworkAgent?.enabled) {
241
235
  return i18nString(UIStrings.explainStylingAndNetworkRequest);
242
236
  }
243
237
  return i18nString(UIStrings.explainStyling);
@@ -538,9 +532,6 @@ export class AISettingsTab extends LegacyWrapper.LegacyWrapper.WrappableComponen
538
532
  // Disabled until https://crbug.com/1079231 is fixed.
539
533
  // clang-format off
540
534
  LitHtml.render(html`
541
- <header>
542
- <h1>${i18nString(UIStrings.aiInnovations)}</h1>
543
- </header>
544
535
  <div class="settings-container-wrapper" jslog=${VisualLogging.pane('chrome-ai')}>
545
536
  ${this.#renderSharedDisclaimer()}
546
537
  ${this.#consoleInsightsSetting || this.#aiAssistanceSetting ? html`
@@ -23,7 +23,7 @@ const UIStrings = {
23
23
  /**
24
24
  *@description Text appearing before a select control offering users their choice of keyboard shortcut presets.
25
25
  */
26
- matchShortcutsFromPreset: 'Match shortcuts from preset',
26
+ matchShortcutsFromPreset: 'Shortcut preset',
27
27
  /**
28
28
  *@description Screen reader label for list of keyboard shortcuts in settings
29
29
  */