chrome-devtools-frontend 1.0.954826 → 1.0.956060

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 (329) hide show
  1. package/.eslintrc.js +1 -0
  2. package/AUTHORS +1 -0
  3. package/config/owner/COMMON_OWNERS +2 -2
  4. package/front_end/.eslintrc.js +1 -11
  5. package/front_end/core/common/Console.ts +1 -1
  6. package/front_end/core/common/ResolverBase.ts +1 -1
  7. package/front_end/core/common/Throttler.ts +1 -1
  8. package/front_end/core/common/Worker.ts +4 -4
  9. package/front_end/core/host/InspectorFrontendHost.ts +1 -1
  10. package/front_end/core/host/ResourceLoader.ts +2 -2
  11. package/front_end/core/i18n/DevToolsLocale.ts +0 -2
  12. package/front_end/core/i18n/i18nImpl.ts +0 -2
  13. package/front_end/core/i18n/locales/en-US.json +3 -0
  14. package/front_end/core/i18n/locales/en-XL.json +3 -0
  15. package/front_end/core/sdk/AccessibilityModel.ts +1 -1
  16. package/front_end/core/sdk/CPUProfilerModel.ts +2 -2
  17. package/front_end/core/sdk/CPUThrottlingManager.ts +2 -2
  18. package/front_end/core/sdk/CSSModel.ts +7 -7
  19. package/front_end/core/sdk/CSSProperty.ts +1 -1
  20. package/front_end/core/sdk/CSSStyleDeclaration.ts +1 -1
  21. package/front_end/core/sdk/ChildTargetManager.ts +6 -6
  22. package/front_end/core/sdk/Connections.ts +2 -2
  23. package/front_end/core/sdk/ConsoleModel.ts +1 -1
  24. package/front_end/core/sdk/DOMDebuggerModel.ts +16 -15
  25. package/front_end/core/sdk/DOMModel.ts +17 -17
  26. package/front_end/core/sdk/DebuggerModel.ts +24 -24
  27. package/front_end/core/sdk/EmulationModel.ts +16 -16
  28. package/front_end/core/sdk/EventBreakpointsModel.ts +2 -2
  29. package/front_end/core/sdk/IsolateManager.ts +2 -2
  30. package/front_end/core/sdk/IssuesModel.ts +1 -1
  31. package/front_end/core/sdk/LogModel.ts +3 -3
  32. package/front_end/core/sdk/NetworkManager.ts +25 -25
  33. package/front_end/core/sdk/OverlayModel.ts +23 -23
  34. package/front_end/core/sdk/PageResourceLoader.ts +1 -1
  35. package/front_end/core/sdk/PaintProfiler.ts +1 -1
  36. package/front_end/core/sdk/RemoteObject.ts +2 -2
  37. package/front_end/core/sdk/Resource.ts +2 -2
  38. package/front_end/core/sdk/ResourceTreeModel.ts +5 -5
  39. package/front_end/core/sdk/RuntimeModel.ts +11 -11
  40. package/front_end/core/sdk/ScreenCaptureModel.ts +3 -3
  41. package/front_end/core/sdk/ServiceWorkerCacheModel.ts +7 -7
  42. package/front_end/core/sdk/ServiceWorkerManager.ts +4 -4
  43. package/front_end/core/sdk/SourceMapManager.ts +1 -1
  44. package/front_end/core/sdk/TargetManager.ts +2 -2
  45. package/front_end/core/sdk/TracingManager.ts +1 -1
  46. package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshotLoader.ts +1 -1
  47. package/front_end/entrypoints/inspector_main/InspectorMain.ts +4 -4
  48. package/front_end/entrypoints/inspector_main/RenderingOptions.ts +1 -1
  49. package/front_end/entrypoints/js_app/js_app.ts +2 -2
  50. package/front_end/entrypoints/main/MainImpl.ts +11 -11
  51. package/front_end/entrypoints/node_app/NodeMain.ts +6 -6
  52. package/front_end/entrypoints/worker_app/WorkerMain.ts +1 -1
  53. package/front_end/generated/ARIAProperties.js +1 -1
  54. package/front_end/generated/InspectorBackendCommands.js +5 -1
  55. package/front_end/generated/SupportedCSSProperties.js +15 -15
  56. package/front_end/generated/protocol.d.ts +13 -0
  57. package/front_end/global_typings/global_defs.d.ts +0 -1
  58. package/front_end/models/bindings/BreakpointManager.ts +21 -23
  59. package/front_end/models/bindings/CSSWorkspaceBinding.ts +3 -3
  60. package/front_end/models/bindings/CompilerScriptMapping.ts +1 -1
  61. package/front_end/models/bindings/ContentProviderBasedProject.ts +1 -1
  62. package/front_end/models/bindings/DebuggerLanguagePlugins.ts +2 -2
  63. package/front_end/models/bindings/DebuggerWorkspaceBinding.ts +3 -3
  64. package/front_end/models/bindings/DefaultScriptMapping.ts +1 -1
  65. package/front_end/models/bindings/FileUtils.ts +5 -5
  66. package/front_end/models/bindings/IgnoreListManager.ts +4 -4
  67. package/front_end/models/bindings/LiveLocation.ts +9 -0
  68. package/front_end/models/bindings/PresentationConsoleMessageHelper.ts +2 -1
  69. package/front_end/models/bindings/ResourceMapping.ts +1 -1
  70. package/front_end/models/bindings/ResourceScriptMapping.ts +9 -9
  71. package/front_end/models/bindings/StylesSourceMapping.ts +3 -3
  72. package/front_end/models/bindings/TempFile.ts +1 -1
  73. package/front_end/models/emulation/DeviceModeModel.ts +5 -5
  74. package/front_end/models/emulation/EmulatedDevices.ts +1 -1
  75. package/front_end/models/extensions/ExtensionPanel.ts +1 -1
  76. package/front_end/models/extensions/ExtensionServer.ts +8 -8
  77. package/front_end/models/formatter/SourceFormatter.ts +2 -2
  78. package/front_end/models/issues_manager/ContrastCheckTrigger.ts +1 -1
  79. package/front_end/models/issues_manager/DeprecationIssue.ts +7 -7
  80. package/front_end/models/issues_manager/SourceFrameIssuesManager.ts +3 -3
  81. package/front_end/models/persistence/Automapping.ts +3 -3
  82. package/front_end/models/persistence/FileSystemWorkspaceBinding.ts +3 -3
  83. package/front_end/models/persistence/IsolatedFileSystem.ts +1 -1
  84. package/front_end/models/persistence/IsolatedFileSystemManager.ts +2 -2
  85. package/front_end/models/persistence/NetworkPersistenceManager.ts +11 -11
  86. package/front_end/models/persistence/PersistenceActions.ts +3 -3
  87. package/front_end/models/persistence/PersistenceImpl.ts +2 -2
  88. package/front_end/models/persistence/WorkspaceSettingsTab.ts +1 -1
  89. package/front_end/models/workspace/UISourceCode.ts +2 -2
  90. package/front_end/models/workspace_diff/WorkspaceDiff.ts +2 -2
  91. package/front_end/panels/accessibility/AXBreadcrumbsPane.ts +4 -4
  92. package/front_end/panels/accessibility/AccessibilityNodeView.ts +3 -3
  93. package/front_end/panels/accessibility/AccessibilitySidebarView.ts +7 -7
  94. package/front_end/panels/animation/AnimationModel.ts +6 -6
  95. package/front_end/panels/animation/AnimationTimeline.ts +3 -3
  96. package/front_end/panels/animation/AnimationUI.ts +3 -3
  97. package/front_end/panels/application/AppManifestView.ts +4 -4
  98. package/front_end/panels/application/ApplicationPanelCacheSection.ts +3 -3
  99. package/front_end/panels/application/ApplicationPanelSidebar.ts +15 -15
  100. package/front_end/panels/application/BackgroundServiceModel.ts +3 -3
  101. package/front_end/panels/application/BackgroundServiceView.ts +3 -3
  102. package/front_end/panels/application/CookieItemsView.ts +5 -5
  103. package/front_end/panels/application/DOMStorageItemsView.ts +4 -4
  104. package/front_end/panels/application/DOMStorageModel.ts +4 -4
  105. package/front_end/panels/application/DatabaseModel.ts +2 -2
  106. package/front_end/panels/application/DatabaseQueryView.ts +2 -2
  107. package/front_end/panels/application/DatabaseTableView.ts +1 -1
  108. package/front_end/panels/application/IndexedDBModel.ts +11 -11
  109. package/front_end/panels/application/IndexedDBViews.ts +5 -5
  110. package/front_end/panels/application/OpenedWindowDetailsView.ts +4 -4
  111. package/front_end/panels/application/ReportingApiView.ts +1 -1
  112. package/front_end/panels/application/ResourcesPanel.ts +2 -2
  113. package/front_end/panels/application/ServiceWorkerCacheViews.ts +7 -7
  114. package/front_end/panels/application/ServiceWorkersView.ts +15 -15
  115. package/front_end/panels/application/StorageView.ts +5 -5
  116. package/front_end/panels/application/TrustTokensTreeElement.ts +1 -1
  117. package/front_end/panels/application/components/BackForwardCacheStrings.ts +5 -1
  118. package/front_end/panels/application/components/BackForwardCacheView.ts +4 -4
  119. package/front_end/panels/application/components/FrameDetailsView.ts +3 -3
  120. package/front_end/panels/application/components/PermissionsPolicySection.ts +2 -2
  121. package/front_end/panels/browser_debugger/CategorizedBreakpointsSidebarPane.ts +1 -1
  122. package/front_end/panels/browser_debugger/DOMBreakpointsSidebarPane.ts +8 -7
  123. package/front_end/panels/browser_debugger/ObjectEventListenersSidebarPane.ts +1 -1
  124. package/front_end/panels/browser_debugger/XHRBreakpointsSidebarPane.ts +4 -4
  125. package/front_end/panels/changes/ChangesView.ts +4 -4
  126. package/front_end/panels/console/ConsoleContextSelector.ts +1 -1
  127. package/front_end/panels/console/ConsoleFilter.ts +17 -2
  128. package/front_end/panels/console/ConsoleFormat.ts +5 -4
  129. package/front_end/panels/console/ConsolePinPane.ts +4 -4
  130. package/front_end/panels/console/ConsolePrompt.ts +4 -4
  131. package/front_end/panels/console/ConsoleView.ts +96 -71
  132. package/front_end/panels/console/ConsoleViewMessage.ts +61 -19
  133. package/front_end/panels/console/consoleView.css +36 -0
  134. package/front_end/panels/console_counters/WarningErrorCounter.ts +2 -2
  135. package/front_end/panels/coverage/CoverageListView.ts +3 -3
  136. package/front_end/panels/coverage/CoverageModel.ts +3 -3
  137. package/front_end/panels/coverage/CoverageView.ts +6 -6
  138. package/front_end/panels/css_overview/CSSOverviewCompletedView.ts +3 -3
  139. package/front_end/panels/css_overview/CSSOverviewModel.ts +2 -2
  140. package/front_end/panels/css_overview/CSSOverviewPanel.ts +1 -1
  141. package/front_end/panels/developer_resources/DeveloperResourcesListView.ts +1 -1
  142. package/front_end/panels/developer_resources/DeveloperResourcesView.ts +1 -1
  143. package/front_end/panels/elements/AccessibilityTreeView.ts +5 -5
  144. package/front_end/panels/elements/ClassesPaneWidget.ts +1 -1
  145. package/front_end/panels/elements/ColorSwatchPopoverIcon.ts +10 -10
  146. package/front_end/panels/elements/ComputedStyleWidget.ts +2 -2
  147. package/front_end/panels/elements/DOMLinkifier.ts +2 -2
  148. package/front_end/panels/elements/ElementsPanel.ts +19 -19
  149. package/front_end/panels/elements/ElementsSidebarPane.ts +1 -1
  150. package/front_end/panels/elements/ElementsTreeElement.ts +26 -25
  151. package/front_end/panels/elements/ElementsTreeElementHighlighter.ts +1 -1
  152. package/front_end/panels/elements/ElementsTreeOutline.ts +4 -4
  153. package/front_end/panels/elements/InspectElementModeController.ts +3 -3
  154. package/front_end/panels/elements/LayoutSidebarPane.ts +2 -2
  155. package/front_end/panels/elements/MetricsSidebarPane.ts +2 -2
  156. package/front_end/panels/elements/StylePropertyHighlighter.ts +1 -1
  157. package/front_end/panels/elements/StylePropertyTreeElement.ts +16 -16
  158. package/front_end/panels/elements/StylesSidebarPane.ts +15 -15
  159. package/front_end/panels/elements/components/AccessibilityTreeNode.ts +1 -1
  160. package/front_end/panels/elements/components/ElementsBreadcrumbs.ts +8 -8
  161. package/front_end/panels/elements/elementsPanel.css +1 -0
  162. package/front_end/panels/elements/elementsTreeOutline.css +6 -1
  163. package/front_end/panels/emulation/DeviceModeToolbar.ts +1 -1
  164. package/front_end/panels/emulation/DeviceModeView.ts +2 -2
  165. package/front_end/panels/emulation/DeviceModeWrapper.ts +4 -4
  166. package/front_end/panels/emulation/MediaQueryInspector.ts +3 -3
  167. package/front_end/panels/event_listeners/EventListenersView.ts +3 -3
  168. package/front_end/panels/input/InputModel.ts +2 -2
  169. package/front_end/panels/input/InputTimeline.ts +6 -6
  170. package/front_end/panels/issues/AffectedCookiesView.ts +2 -2
  171. package/front_end/panels/issues/AffectedDirectivesView.ts +1 -1
  172. package/front_end/panels/issues/AffectedElementsView.ts +1 -1
  173. package/front_end/panels/issues/AffectedResourcesView.ts +2 -2
  174. package/front_end/panels/issues/AttributionReportingIssueDetailsView.ts +1 -1
  175. package/front_end/panels/issues/ComboBoxOfCheckBoxes.ts +1 -1
  176. package/front_end/panels/issues/IssueView.ts +1 -1
  177. package/front_end/panels/issues/components/HideIssuesMenu.ts +1 -1
  178. package/front_end/panels/layer_viewer/LayerDetailsView.ts +1 -1
  179. package/front_end/panels/layer_viewer/LayerViewHost.ts +1 -1
  180. package/front_end/panels/layer_viewer/Layers3DView.ts +7 -7
  181. package/front_end/panels/layer_viewer/PaintProfilerView.ts +1 -1
  182. package/front_end/panels/layers/LayerPaintProfilerView.ts +3 -3
  183. package/front_end/panels/layers/LayerTreeModel.ts +4 -4
  184. package/front_end/panels/layers/LayersPanel.ts +4 -4
  185. package/front_end/panels/lighthouse/LighthouseController.ts +1 -1
  186. package/front_end/panels/lighthouse/LighthousePanel.ts +5 -5
  187. package/front_end/panels/lighthouse/LighthouseProtocolService.ts +1 -1
  188. package/front_end/panels/lighthouse/LighthouseReportRenderer.ts +1 -1
  189. package/front_end/panels/media/MediaModel.ts +1 -1
  190. package/front_end/panels/media/PlayerListView.ts +1 -1
  191. package/front_end/panels/mobile_throttling/NetworkThrottlingSelector.ts +1 -1
  192. package/front_end/panels/network/BinaryResourceView.ts +1 -1
  193. package/front_end/panels/network/BlockedURLsPane.ts +5 -5
  194. package/front_end/panels/network/NetworkDataGridNode.ts +1 -1
  195. package/front_end/panels/network/NetworkItemView.ts +2 -2
  196. package/front_end/panels/network/NetworkLogView.ts +4 -4
  197. package/front_end/panels/network/NetworkLogViewColumns.ts +1 -1
  198. package/front_end/panels/network/NetworkPanel.ts +8 -8
  199. package/front_end/panels/network/NetworkTimeCalculator.ts +1 -1
  200. package/front_end/panels/network/RequestHeadersView.ts +4 -3
  201. package/front_end/panels/network/RequestPayloadView.ts +8 -8
  202. package/front_end/panels/network/RequestPreviewView.ts +1 -1
  203. package/front_end/panels/network/RequestResponseView.ts +2 -2
  204. package/front_end/panels/network/ResourceWebSocketFrameView.ts +1 -1
  205. package/front_end/panels/performance_monitor/PerformanceMonitor.ts +2 -2
  206. package/front_end/panels/profiler/CPUProfileView.ts +4 -4
  207. package/front_end/panels/profiler/HeapProfileView.ts +6 -6
  208. package/front_end/panels/profiler/HeapProfilerPanel.ts +2 -2
  209. package/front_end/panels/profiler/HeapSnapshotDataGrids.ts +10 -10
  210. package/front_end/panels/profiler/HeapSnapshotGridNodes.ts +9 -8
  211. package/front_end/panels/profiler/HeapSnapshotView.ts +24 -24
  212. package/front_end/panels/profiler/LiveHeapProfileView.ts +4 -4
  213. package/front_end/panels/profiler/ProfileSidebarTreeElement.ts +1 -1
  214. package/front_end/panels/profiler/ProfileView.ts +3 -3
  215. package/front_end/panels/profiler/ProfilesPanel.ts +3 -3
  216. package/front_end/panels/protocol_monitor/ProtocolMonitor.ts +3 -3
  217. package/front_end/panels/screencast/InputModel.ts +3 -3
  218. package/front_end/panels/screencast/ScreencastView.ts +10 -10
  219. package/front_end/panels/search/SearchResultsPane.ts +1 -1
  220. package/front_end/panels/search/SearchView.ts +2 -2
  221. package/front_end/panels/security/SecurityModel.ts +1 -1
  222. package/front_end/panels/security/SecurityPanel.ts +2 -2
  223. package/front_end/panels/sensors/SensorsView.ts +3 -2
  224. package/front_end/panels/settings/SettingsScreen.ts +5 -5
  225. package/front_end/panels/settings/components/SyncSection.ts +1 -1
  226. package/front_end/panels/snippets/SnippetsQuickOpen.ts +1 -1
  227. package/front_end/panels/sources/BreakpointEditDialog.ts +2 -2
  228. package/front_end/panels/sources/CallStackSidebarPane.ts +4 -4
  229. package/front_end/panels/sources/CoveragePlugin.ts +3 -3
  230. package/front_end/panels/sources/DebuggerPlugin.ts +12 -12
  231. package/front_end/panels/sources/GoToLineQuickOpen.ts +1 -1
  232. package/front_end/panels/sources/InplaceFormatterEditorAction.ts +3 -3
  233. package/front_end/panels/sources/JavaScriptBreakpointsSidebarPane.ts +3 -3
  234. package/front_end/panels/sources/NavigatorView.ts +6 -6
  235. package/front_end/panels/sources/OpenFileQuickOpen.ts +2 -2
  236. package/front_end/panels/sources/OutlineQuickOpen.ts +1 -1
  237. package/front_end/panels/sources/ScopeChainSidebarPane.ts +3 -3
  238. package/front_end/panels/sources/ScriptFormatterEditorAction.ts +3 -3
  239. package/front_end/panels/sources/SearchSourcesView.ts +2 -2
  240. package/front_end/panels/sources/SourcesNavigator.ts +9 -9
  241. package/front_end/panels/sources/SourcesPanel.ts +28 -25
  242. package/front_end/panels/sources/SourcesSearchScope.ts +2 -2
  243. package/front_end/panels/sources/SourcesView.ts +4 -4
  244. package/front_end/panels/sources/TabbedEditorContainer.ts +1 -1
  245. package/front_end/panels/sources/UISourceCodeFrame.ts +2 -2
  246. package/front_end/panels/sources/WatchExpressionsSidebarPane.ts +4 -4
  247. package/front_end/panels/timeline/EventsTimelineTreeView.ts +1 -1
  248. package/front_end/panels/timeline/TimelineController.ts +1 -1
  249. package/front_end/panels/timeline/TimelineDetailsView.ts +2 -2
  250. package/front_end/panels/timeline/TimelineEventOverview.ts +2 -2
  251. package/front_end/panels/timeline/TimelineFlameChartDataProvider.ts +3 -5
  252. package/front_end/panels/timeline/TimelineFlameChartNetworkDataProvider.ts +4 -7
  253. package/front_end/panels/timeline/TimelineHistoryManager.ts +1 -1
  254. package/front_end/panels/timeline/TimelineLayersView.ts +1 -1
  255. package/front_end/panels/timeline/TimelineLoader.ts +2 -2
  256. package/front_end/panels/timeline/TimelinePaintProfilerView.ts +4 -4
  257. package/front_end/panels/timeline/TimelinePanel.ts +10 -10
  258. package/front_end/panels/timeline/TimelineUIUtils.ts +2 -2
  259. package/front_end/panels/timeline/components/WebVitalsTimeline.ts +2 -2
  260. package/front_end/panels/web_audio/WebAudioModel.ts +1 -1
  261. package/front_end/panels/web_audio/WebAudioView.ts +1 -1
  262. package/front_end/panels/webauthn/WebauthnPane.ts +7 -7
  263. package/front_end/ui/components/buttons/Button.ts +10 -10
  264. package/front_end/ui/components/data_grid/DataGrid.ts +14 -14
  265. package/front_end/ui/components/docs/tree_outline/basic.ts +2 -2
  266. package/front_end/ui/components/docs/tree_outline/custom-renderers.ts +1 -1
  267. package/front_end/ui/components/docs/tree_outline/lazy-children.ts +1 -1
  268. package/front_end/ui/components/helpers/scheduled-render.ts +1 -1
  269. package/front_end/ui/components/icon_button/Icon.ts +1 -1
  270. package/front_end/ui/components/issue_counter/IssueCounter.ts +1 -1
  271. package/front_end/ui/components/issue_counter/IssueLinkIcon.ts +2 -2
  272. package/front_end/ui/components/linear_memory_inspector/LinearMemoryInspectorController.ts +2 -2
  273. package/front_end/ui/components/linear_memory_inspector/LinearMemoryInspectorPane.ts +5 -2
  274. package/front_end/ui/components/linkifier/LinkifierImpl.ts +1 -1
  275. package/front_end/ui/components/panel_feedback/FeedbackButton.ts +1 -1
  276. package/front_end/ui/components/panel_feedback/PanelFeedback.ts +1 -1
  277. package/front_end/ui/components/request_link_icon/RequestLinkIcon.ts +3 -3
  278. package/front_end/ui/components/text_editor/cursor_tooltip.ts +1 -1
  279. package/front_end/ui/components/text_editor/javascript.ts +2 -2
  280. package/front_end/ui/components/tree_outline/TreeOutline.ts +8 -8
  281. package/front_end/ui/legacy/Context.ts +1 -1
  282. package/front_end/ui/legacy/ContextMenu.ts +1 -1
  283. package/front_end/ui/legacy/GlassPane.ts +0 -1
  284. package/front_end/ui/legacy/InspectorView.ts +2 -3
  285. package/front_end/ui/legacy/PopoverHelper.ts +1 -1
  286. package/front_end/ui/legacy/ShortcutRegistry.ts +1 -1
  287. package/front_end/ui/legacy/TabbedPane.ts +2 -2
  288. package/front_end/ui/legacy/ThrottledWidget.ts +1 -1
  289. package/front_end/ui/legacy/Toolbar.ts +3 -3
  290. package/front_end/ui/legacy/Treeoutline.ts +6 -6
  291. package/front_end/ui/legacy/UIUtils.ts +16 -16
  292. package/front_end/ui/legacy/ViewManager.ts +9 -9
  293. package/front_end/ui/legacy/components/color_picker/ContrastOverlay.ts +1 -1
  294. package/front_end/ui/legacy/components/color_picker/Spectrum.ts +7 -7
  295. package/front_end/ui/legacy/components/color_picker/spectrum.css +5 -2
  296. package/front_end/ui/legacy/components/cookie_table/CookiesTable.ts +3 -3
  297. package/front_end/ui/legacy/components/data_grid/DataGrid.ts +2 -2
  298. package/front_end/ui/legacy/components/data_grid/ShowMoreDataGridNode.ts +3 -3
  299. package/front_end/ui/legacy/components/inline_editor/CSSAngleEditor.ts +1 -1
  300. package/front_end/ui/legacy/components/inline_editor/FontEditor.ts +4 -4
  301. package/front_end/ui/legacy/components/object_ui/CustomPreviewComponent.ts +3 -3
  302. package/front_end/ui/legacy/components/object_ui/ObjectPopoverHelper.ts +1 -1
  303. package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +11 -11
  304. package/front_end/ui/legacy/components/perf_ui/FilmStripView.ts +8 -8
  305. package/front_end/ui/legacy/components/perf_ui/FlameChart.ts +10 -19
  306. package/front_end/ui/legacy/components/perf_ui/GCActionDelegate.ts +1 -1
  307. package/front_end/ui/legacy/components/perf_ui/LineLevelProfile.ts +1 -1
  308. package/front_end/ui/legacy/components/perf_ui/LiveHeapProfile.ts +3 -3
  309. package/front_end/ui/legacy/components/perf_ui/TimelineGrid.ts +2 -4
  310. package/front_end/ui/legacy/components/perf_ui/TimelineOverviewPane.ts +2 -2
  311. package/front_end/ui/legacy/components/perf_ui/flameChart.css +8 -0
  312. package/front_end/ui/legacy/components/quick_open/FilteredListWidget.ts +5 -5
  313. package/front_end/ui/legacy/components/source_frame/FontView.ts +1 -2
  314. package/front_end/ui/legacy/components/source_frame/ImageView.ts +3 -4
  315. package/front_end/ui/legacy/components/source_frame/JSONView.ts +0 -1
  316. package/front_end/ui/legacy/components/source_frame/ResourceSourceFrame.ts +1 -2
  317. package/front_end/ui/legacy/components/source_frame/SourceFrame.ts +5 -5
  318. package/front_end/ui/legacy/components/source_frame/XMLView.ts +0 -2
  319. package/front_end/ui/legacy/components/utils/ImagePreview.ts +1 -1
  320. package/front_end/ui/legacy/components/utils/JSPresentationUtils.ts +1 -1
  321. package/front_end/ui/legacy/components/utils/Linkifier.ts +5 -5
  322. package/front_end/ui/legacy/components/utils/TargetDetachedDialog.ts +2 -2
  323. package/front_end/ui/legacy/tabbedPane.css +1 -0
  324. package/front_end/ui/legacy/theme_support/theme_support_impl.ts +3 -210
  325. package/front_end/ui/legacy/toolbar.css +1 -0
  326. package/package.json +1 -1
  327. package/scripts/component_server/server.js +2 -2
  328. package/scripts/eslint_rules/tests/check_license_header_test.js +10 -8
  329. package/front_end/global_typings/intl_display_names.d.ts +0 -111
@@ -274,12 +274,10 @@ export class ConsoleView extends UI.Widget.VBox implements UI.SearchableView.Sea
274
274
  private viewportThrottler: Common.Throttler.Throttler;
275
275
  private pendingBatchResize: boolean;
276
276
  private readonly onMessageResizedBound: (e: Common.EventTarget.EventTargetEvent<UI.TreeOutline.TreeElement>) => void;
277
- private topGroup: ConsoleGroup;
278
- private currentGroup: ConsoleGroup;
279
277
  private readonly promptElement: HTMLElement;
280
278
  private readonly linkifier: Components.Linkifier.Linkifier;
281
279
  private consoleMessages: ConsoleViewMessage[];
282
- private readonly viewMessageSymbol: symbol;
280
+ private consoleGroupStarts: ConsoleGroupViewMessage[];
283
281
  private readonly consoleHistorySetting: Common.Settings.Setting<string[]>;
284
282
  private prompt: ConsolePrompt;
285
283
  private immediatelyFilterMessagesForTest?: boolean;
@@ -404,7 +402,7 @@ export class ConsoleView extends UI.Widget.VBox implements UI.SearchableView.Sea
404
402
  this.issueCounter.data = {
405
403
  clickHandler: (): void => {
406
404
  Host.userMetrics.issuesPanelOpenedFrom(Host.UserMetrics.IssueOpener.StatusBarIssuesCounter);
407
- UI.ViewManager.ViewManager.instance().showView('issues-pane');
405
+ void UI.ViewManager.ViewManager.instance().showView('issues-pane');
408
406
  },
409
407
  issuesManager: IssuesManager.IssuesManager.IssuesManager.instance(),
410
408
  accessibleName: i18nString(UIStrings.issueToolbarTooltipGeneral),
@@ -482,12 +480,9 @@ export class ConsoleView extends UI.Widget.VBox implements UI.SearchableView.Sea
482
480
  this.viewportThrottler = new Common.Throttler.Throttler(50);
483
481
  this.pendingBatchResize = false;
484
482
  this.onMessageResizedBound = (e: Common.EventTarget.EventTargetEvent<UI.TreeOutline.TreeElement>): void => {
485
- this.onMessageResized(e);
483
+ void this.onMessageResized(e);
486
484
  };
487
485
 
488
- this.topGroup = ConsoleGroup.createTopGroup();
489
- this.currentGroup = this.topGroup;
490
-
491
486
  this.promptElement = this.messagesElement.createChild('div', 'source-code');
492
487
  this.promptElement.id = 'console-prompt';
493
488
 
@@ -509,7 +504,7 @@ export class ConsoleView extends UI.Widget.VBox implements UI.SearchableView.Sea
509
504
  new Components.Linkifier.Linkifier(MaxLengthForLinks, /* useLinkDecorator */ undefined, refilterMessages);
510
505
 
511
506
  this.consoleMessages = [];
512
- this.viewMessageSymbol = Symbol('viewMessage');
507
+ this.consoleGroupStarts = [];
513
508
 
514
509
  this.consoleHistorySetting = Common.Settings.Settings.instance().createLocalSetting('consoleHistory', []);
515
510
 
@@ -801,6 +796,23 @@ export class ConsoleView extends UI.Widget.VBox implements UI.SearchableView.Sea
801
796
  const insertedInMiddle = insertAt < this.consoleMessages.length;
802
797
  this.consoleMessages.splice(insertAt, 0, viewMessage);
803
798
 
799
+ if (message.type !== SDK.ConsoleModel.FrontendMessageType.Command &&
800
+ message.type !== SDK.ConsoleModel.FrontendMessageType.Result) {
801
+ // Maintain group tree.
802
+ // Find parent group.
803
+ const consoleGroupStartIndex =
804
+ Platform.ArrayUtilities.upperBound(this.consoleGroupStarts, viewMessage, timeComparator) - 1;
805
+ if (consoleGroupStartIndex >= 0) {
806
+ const currentGroup = this.consoleGroupStarts[consoleGroupStartIndex];
807
+ addToGroup(viewMessage, currentGroup);
808
+ }
809
+ // Add new group.
810
+ if (message.isGroupStartMessage()) {
811
+ insertAt = Platform.ArrayUtilities.upperBound(this.consoleGroupStarts, viewMessage, timeComparator);
812
+ this.consoleGroupStarts.splice(insertAt, 0, viewMessage as ConsoleGroupViewMessage);
813
+ }
814
+ }
815
+
804
816
  this.filter.onMessageAdded(message);
805
817
  if (this.isSidebarOpen) {
806
818
  this.sidebar.onMessageAdded(viewMessage);
@@ -836,6 +848,29 @@ export class ConsoleView extends UI.Widget.VBox implements UI.SearchableView.Sea
836
848
  this.scheduleViewportRefresh();
837
849
  this.consoleMessageAddedForTest(viewMessage);
838
850
 
851
+ // Figure out whether the message should belong into this group or the parent group based on group end timestamp.
852
+ function addToGroup(viewMessage: ConsoleViewMessage, currentGroup: ConsoleGroupViewMessage): void {
853
+ const currentEnd = currentGroup.groupEnd();
854
+ if (currentEnd !== null) {
855
+ // Exceeds this group's end. It should belong into parent group.
856
+ if (timeComparator(viewMessage, currentEnd) > 0) {
857
+ const parent = currentGroup.consoleGroup();
858
+ // No parent group. We reached ungrouped messages. Don't establish group links.
859
+ if (parent === null) {
860
+ return;
861
+ } // Add to parent group.
862
+ addToGroup(viewMessage, parent);
863
+ return;
864
+ }
865
+ }
866
+ // Add message to this group, and set group of the message.
867
+ if (viewMessage.consoleMessage().type === Protocol.Runtime.ConsoleAPICalledEventType.EndGroup) {
868
+ currentGroup.setGroupEnd(viewMessage);
869
+ } else {
870
+ viewMessage.setConsoleGroup(currentGroup);
871
+ }
872
+ }
873
+
839
874
  function timeComparator(viewMessage1: ConsoleViewMessage, viewMessage2: ConsoleViewMessage): number {
840
875
  return (messagesSortedBySymbol.get(viewMessage1) || 0) - (messagesSortedBySymbol.get(viewMessage2) || 0);
841
876
  }
@@ -872,6 +907,18 @@ export class ConsoleView extends UI.Widget.VBox implements UI.SearchableView.Sea
872
907
  !this.showCorsErrorsSetting.get()) {
873
908
  return;
874
909
  }
910
+
911
+ const lastMessage = this.visibleViewMessages[this.visibleViewMessages.length - 1];
912
+ if (viewMessage.consoleMessage().type === Protocol.Runtime.ConsoleAPICalledEventType.EndGroup) {
913
+ if (lastMessage) {
914
+ const group = lastMessage.consoleGroup();
915
+ if (group && !group.messagesHidden()) {
916
+ lastMessage.incrementCloseGroupDecorationCount();
917
+ }
918
+ }
919
+ return;
920
+ }
921
+
875
922
  if (!this.shouldMessageBeVisible(viewMessage)) {
876
923
  this.hiddenByFilterCount++;
877
924
  return;
@@ -882,29 +929,36 @@ export class ConsoleView extends UI.Widget.VBox implements UI.SearchableView.Sea
882
929
  return;
883
930
  }
884
931
 
885
- const lastMessage = this.visibleViewMessages[this.visibleViewMessages.length - 1];
886
- if (viewMessage.consoleMessage().type === Protocol.Runtime.ConsoleAPICalledEventType.EndGroup) {
887
- if (lastMessage && !this.currentGroup.messagesHidden()) {
888
- lastMessage.incrementCloseGroupDecorationCount();
889
- }
890
- this.currentGroup = this.currentGroup.parentGroup() || this.currentGroup;
891
- return;
892
- }
893
- if (!this.currentGroup.messagesHidden()) {
932
+ const currentGroup = viewMessage.consoleGroup();
933
+
934
+ if (!currentGroup || !currentGroup.messagesHidden()) {
894
935
  const originatingMessage = viewMessage.consoleMessage().originatingMessage();
895
936
  if (lastMessage && originatingMessage && lastMessage.consoleMessage() === originatingMessage) {
896
937
  viewMessage.toMessageElement().classList.add('console-adjacent-user-command-result');
897
938
  }
898
-
939
+ showGroup(currentGroup, this.visibleViewMessages);
899
940
  this.visibleViewMessages.push(viewMessage);
900
941
  this.searchMessage(this.visibleViewMessages.length - 1);
901
942
  }
902
943
 
903
- if (viewMessage.consoleMessage().isGroupStartMessage()) {
904
- this.currentGroup = new ConsoleGroup(this.currentGroup, (viewMessage as ConsoleGroupViewMessage));
905
- }
906
-
907
944
  this.messageAppendedForTests();
945
+
946
+ // Show the group the message belongs to, and also show parent groups.
947
+ function showGroup(currentGroup: ConsoleGroupViewMessage|null, visibleViewMessages: ConsoleViewMessage[]): void {
948
+ if (currentGroup === null) {
949
+ return;
950
+ }
951
+ // Group is already being shown, no need to traverse to
952
+ // parent groups since they are also already being shown.
953
+ if (visibleViewMessages.includes(currentGroup)) {
954
+ return;
955
+ }
956
+ const parentGroup = currentGroup.consoleGroup();
957
+ if (parentGroup) {
958
+ showGroup(parentGroup, visibleViewMessages);
959
+ }
960
+ visibleViewMessages.push(currentGroup);
961
+ }
908
962
  }
909
963
 
910
964
  private messageAppendedForTests(): void {
@@ -912,29 +966,24 @@ export class ConsoleView extends UI.Widget.VBox implements UI.SearchableView.Sea
912
966
  }
913
967
 
914
968
  private createViewMessage(message: SDK.ConsoleModel.ConsoleMessage): ConsoleViewMessage {
915
- const nestingLevel = this.currentGroup.nestingLevel();
916
969
  switch (message.type) {
917
970
  case SDK.ConsoleModel.FrontendMessageType.Command:
918
971
  return new ConsoleCommand(
919
- message, this.linkifier, this.requestResolver, this.issueResolver, nestingLevel,
920
- this.onMessageResizedBound);
972
+ message, this.linkifier, this.requestResolver, this.issueResolver, this.onMessageResizedBound);
921
973
  case SDK.ConsoleModel.FrontendMessageType.Result:
922
974
  return new ConsoleCommandResult(
923
- message, this.linkifier, this.requestResolver, this.issueResolver, nestingLevel,
924
- this.onMessageResizedBound);
975
+ message, this.linkifier, this.requestResolver, this.issueResolver, this.onMessageResizedBound);
925
976
  case Protocol.Runtime.ConsoleAPICalledEventType.StartGroupCollapsed:
926
977
  case Protocol.Runtime.ConsoleAPICalledEventType.StartGroup:
927
978
  return new ConsoleGroupViewMessage(
928
- message, this.linkifier, this.requestResolver, this.issueResolver, nestingLevel,
929
- this.updateMessageList.bind(this), this.onMessageResizedBound);
979
+ message, this.linkifier, this.requestResolver, this.issueResolver, this.updateMessageList.bind(this),
980
+ this.onMessageResizedBound);
930
981
  case Protocol.Runtime.ConsoleAPICalledEventType.Table:
931
982
  return new ConsoleTableMessageView(
932
- message, this.linkifier, this.requestResolver, this.issueResolver, nestingLevel,
933
- this.onMessageResizedBound);
983
+ message, this.linkifier, this.requestResolver, this.issueResolver, this.onMessageResizedBound);
934
984
  default:
935
985
  return new ConsoleViewMessage(
936
- message, this.linkifier, this.requestResolver, this.issueResolver, nestingLevel,
937
- this.onMessageResizedBound);
986
+ message, this.linkifier, this.requestResolver, this.issueResolver, this.onMessageResizedBound);
938
987
  }
939
988
  }
940
989
 
@@ -970,6 +1019,7 @@ export class ConsoleView extends UI.Widget.VBox implements UI.SearchableView.Sea
970
1019
  this.linkifier.reset();
971
1020
  this.filter.clear();
972
1021
  this.requestResolver.clear();
1022
+ this.consoleGroupStarts = [];
973
1023
  if (hadFocus) {
974
1024
  this.prompt.focus();
975
1025
  }
@@ -980,7 +1030,7 @@ export class ConsoleView extends UI.Widget.VBox implements UI.SearchableView.Sea
980
1030
  const contextMenu = new UI.ContextMenu.ContextMenu(event);
981
1031
  const eventTarget = (event.target as Node);
982
1032
  if (eventTarget.isSelfOrDescendant(this.promptElement)) {
983
- contextMenu.show();
1033
+ void contextMenu.show();
984
1034
  return;
985
1035
  }
986
1036
 
@@ -1011,7 +1061,7 @@ export class ConsoleView extends UI.Widget.VBox implements UI.SearchableView.Sea
1011
1061
  }
1012
1062
  }
1013
1063
 
1014
- contextMenu.show();
1064
+ void contextMenu.show();
1015
1065
  }
1016
1066
 
1017
1067
  private async saveConsole(): Promise<void> {
@@ -1044,7 +1094,7 @@ export class ConsoleView extends UI.Widget.VBox implements UI.SearchableView.Sea
1044
1094
  progressIndicator.setWorked(messageIndex);
1045
1095
  }
1046
1096
 
1047
- stream.close();
1097
+ void stream.close();
1048
1098
  progressIndicator.done();
1049
1099
  }
1050
1100
 
@@ -1079,7 +1129,7 @@ export class ConsoleView extends UI.Widget.VBox implements UI.SearchableView.Sea
1079
1129
  return;
1080
1130
  }
1081
1131
  this.buildHiddenCacheTimeout =
1082
- this.element.window().requestAnimationFrame(this.buildHiddenCache.bind(this, i, viewMessages));
1132
+ this.element.window().requestAnimationFrame(this.buildHiddenCache.bind(this, i + 1, viewMessages));
1083
1133
  }
1084
1134
 
1085
1135
  private cancelBuildHiddenCache(): void {
@@ -1091,8 +1141,6 @@ export class ConsoleView extends UI.Widget.VBox implements UI.SearchableView.Sea
1091
1141
  }
1092
1142
 
1093
1143
  private updateMessageList(): void {
1094
- this.topGroup = ConsoleGroup.createTopGroup();
1095
- this.currentGroup = this.topGroup;
1096
1144
  this.regexMatchRanges = [];
1097
1145
  this.hiddenByFilterCount = 0;
1098
1146
  for (const visibleViewMessage of this.visibleViewMessages) {
@@ -1105,9 +1153,14 @@ export class ConsoleView extends UI.Widget.VBox implements UI.SearchableView.Sea
1105
1153
  } else {
1106
1154
  for (const consoleMessage of this.consoleMessages) {
1107
1155
  consoleMessage.setInSimilarGroup(false);
1156
+ if (consoleMessage.consoleMessage().isGroupable()) {
1157
+ // Since grouping similar messages is disabled, we need clear the
1158
+ // reference to the artificial console group start.
1159
+ consoleMessage.clearConsoleGroup();
1160
+ }
1108
1161
  this.appendMessageToEnd(
1109
1162
  consoleMessage,
1110
- true /* crbug.com/1082963: prevent collapse of same messages when "Group similar" is false */);
1163
+ true /* crbug.com/1082963: prevent collaps`e of same messages when "Group similar" is false */);
1111
1164
  }
1112
1165
  }
1113
1166
  this.updateFilterStatus();
@@ -1169,6 +1222,7 @@ export class ConsoleView extends UI.Widget.VBox implements UI.SearchableView.Sea
1169
1222
  for (const viewMessageInGroup of viewMessagesInGroup) {
1170
1223
  viewMessageInGroup.setInSimilarGroup(
1171
1224
  true, viewMessagesInGroup[viewMessagesInGroup.length - 1] === viewMessageInGroup);
1225
+ viewMessageInGroup.setConsoleGroup(startGroupViewMessage as ConsoleGroupViewMessage);
1172
1226
  this.appendMessageToEnd(viewMessageInGroup, true);
1173
1227
  alreadyAdded.add(viewMessageInGroup.consoleMessage());
1174
1228
  }
@@ -1621,7 +1675,7 @@ export class ConsoleViewFilter {
1621
1675
  for (const [level, levelText] of this.levelLabels.entries()) {
1622
1676
  contextMenu.defaultSection().appendCheckboxItem(levelText, toggleShowLevel.bind(null, level), levels[level]);
1623
1677
  }
1624
- contextMenu.show();
1678
+ void contextMenu.show();
1625
1679
 
1626
1680
  function toggleShowLevel(level: string): void {
1627
1681
  levels[level] = !levels[level];
@@ -1656,35 +1710,6 @@ export class ConsoleViewFilter {
1656
1710
  }
1657
1711
  }
1658
1712
 
1659
- export class ConsoleGroup {
1660
- private readonly parentGroupInternal: ConsoleGroup|null;
1661
- private readonly nestingLevelInternal: number;
1662
- private readonly messagesHiddenInternal: boolean;
1663
-
1664
- constructor(parentGroup: ConsoleGroup|null, groupMessage: ConsoleGroupViewMessage|null) {
1665
- this.parentGroupInternal = parentGroup;
1666
- this.nestingLevelInternal = parentGroup ? parentGroup.nestingLevel() + 1 : 0;
1667
- this.messagesHiddenInternal = groupMessage && groupMessage.collapsed() ||
1668
- this.parentGroupInternal && this.parentGroupInternal.messagesHidden() || false;
1669
- }
1670
-
1671
- static createTopGroup(): ConsoleGroup {
1672
- return new ConsoleGroup(null, null);
1673
- }
1674
-
1675
- messagesHidden(): boolean {
1676
- return this.messagesHiddenInternal;
1677
- }
1678
-
1679
- nestingLevel(): number {
1680
- return this.nestingLevelInternal;
1681
- }
1682
-
1683
- parentGroup(): ConsoleGroup|null {
1684
- return this.parentGroupInternal;
1685
- }
1686
- }
1687
-
1688
1713
  let actionDelegateInstance: ActionDelegate;
1689
1714
 
1690
1715
  export class ActionDelegate implements UI.ActionRegistration.ActionDelegate {
@@ -206,7 +206,7 @@ export class ConsoleViewMessage implements ConsoleViewportElement {
206
206
  private readonly linkifier: Components.Linkifier.Linkifier;
207
207
  private repeatCountInternal: number;
208
208
  private closeGroupDecorationCount: number;
209
- private readonly nestingLevelInternal: number;
209
+ private consoleGroupInternal: ConsoleGroupViewMessage|null;
210
210
  private selectableChildren: {
211
211
  element: HTMLElement,
212
212
  forceSelect: () => void,
@@ -238,14 +238,13 @@ export class ConsoleViewMessage implements ConsoleViewportElement {
238
238
  constructor(
239
239
  consoleMessage: SDK.ConsoleModel.ConsoleMessage, linkifier: Components.Linkifier.Linkifier,
240
240
  requestResolver: Logs.RequestResolver.RequestResolver, issueResolver: IssuesManager.IssueResolver.IssueResolver,
241
- nestingLevel: number, onResize: (arg0: Common.EventTarget.EventTargetEvent<UI.TreeOutline.TreeElement>) => void) {
241
+ onResize: (arg0: Common.EventTarget.EventTargetEvent<UI.TreeOutline.TreeElement>) => void) {
242
242
  this.message = consoleMessage;
243
243
  this.linkifier = linkifier;
244
244
  this.requestResolver = requestResolver;
245
245
  this.issueResolver = issueResolver;
246
246
  this.repeatCountInternal = 1;
247
247
  this.closeGroupDecorationCount = 0;
248
- this.nestingLevelInternal = nestingLevel;
249
248
  this.selectableChildren = [];
250
249
  this.messageResized = onResize;
251
250
  this.elementInternal = null;
@@ -269,6 +268,7 @@ export class ConsoleViewMessage implements ConsoleViewportElement {
269
268
  this.lastInSimilarGroup = false;
270
269
  this.groupKeyInternal = '';
271
270
  this.repeatCountElement = null;
271
+ this.consoleGroupInternal = null;
272
272
  }
273
273
 
274
274
  element(): HTMLElement {
@@ -702,7 +702,7 @@ export class ConsoleViewMessage implements ConsoleViewportElement {
702
702
  this.previewFormatter.appendObjectPreview(titleElement, obj.preview, false /* isEntry */);
703
703
  } else if (obj.type === 'function') {
704
704
  const functionElement = titleElement.createChild('span');
705
- ObjectUI.ObjectPropertiesSection.ObjectPropertiesSection.formatObjectAsFunction(obj, functionElement, false);
705
+ void ObjectUI.ObjectPropertiesSection.ObjectPropertiesSection.formatObjectAsFunction(obj, functionElement, false);
706
706
  titleElement.classList.add('object-value-function');
707
707
  } else if (obj.subtype === 'trustedtype') {
708
708
  titleElement.appendChild(this.formatParameterAsTrustedType(obj));
@@ -734,7 +734,7 @@ export class ConsoleViewMessage implements ConsoleViewportElement {
734
734
 
735
735
  private formatParameterAsFunction(func: SDK.RemoteObject.RemoteObject, includePreview?: boolean): HTMLElement {
736
736
  const result = document.createElement('span');
737
- SDK.RemoteObject.RemoteFunction.objectAsFunction(func).targetFunction().then(formatTargetFunction.bind(this));
737
+ void SDK.RemoteObject.RemoteFunction.objectAsFunction(func).targetFunction().then(formatTargetFunction.bind(this));
738
738
  return result;
739
739
 
740
740
  function formatTargetFunction(this: ConsoleViewMessage, targetFunction: SDK.RemoteObject.RemoteObject): void {
@@ -747,7 +747,7 @@ export class ConsoleViewMessage implements ConsoleViewportElement {
747
747
  UI.Tooltip.Tooltip.install(note, i18nString(UIStrings.functionWasResolvedFromBound));
748
748
  }
749
749
  result.addEventListener('contextmenu', this.contextMenuEventFired.bind(this, targetFunction), false);
750
- promise.then(() => this.formattedParameterAsFunctionForTest());
750
+ void promise.then(() => this.formattedParameterAsFunctionForTest());
751
751
  }
752
752
  }
753
753
 
@@ -757,7 +757,7 @@ export class ConsoleViewMessage implements ConsoleViewportElement {
757
757
  private contextMenuEventFired(obj: SDK.RemoteObject.RemoteObject, event: Event): void {
758
758
  const contextMenu = new UI.ContextMenu.ContextMenu(event);
759
759
  contextMenu.appendApplicableItems(obj);
760
- contextMenu.show();
760
+ void contextMenu.show();
761
761
  }
762
762
 
763
763
  protected renderPropertyPreviewOrAccessor(
@@ -778,7 +778,7 @@ export class ConsoleViewMessage implements ConsoleViewportElement {
778
778
  if (!domModel) {
779
779
  return result;
780
780
  }
781
- domModel.pushObjectAsNodeToFrontend(remoteObject).then(async (node: SDK.DOMModel.DOMNode|null) => {
781
+ void domModel.pushObjectAsNodeToFrontend(remoteObject).then(async (node: SDK.DOMModel.DOMNode|null) => {
782
782
  if (!node) {
783
783
  result.appendChild(this.formatParameterAsObject(remoteObject, false));
784
784
  return;
@@ -906,6 +906,7 @@ export class ConsoleViewMessage implements ConsoleViewportElement {
906
906
  // Make sure that allowed properties do not interfere with link visibility.
907
907
  const ALLOWED_PROPERTY_PREFIXES =
908
908
  ['background', 'border', 'color', 'font', 'line', 'margin', 'padding', 'text'];
909
+
909
910
  currentStyle.clear();
910
911
  const buffer = document.createElement('span');
911
912
  buffer.setAttribute('style', token.value);
@@ -959,7 +960,24 @@ export class ConsoleViewMessage implements ConsoleViewportElement {
959
960
  }
960
961
 
961
962
  nestingLevel(): number {
962
- return this.nestingLevelInternal;
963
+ let nestingLevel = 0;
964
+ for (let group = this.consoleGroup(); group !== null; group = group.consoleGroup()) {
965
+ nestingLevel++;
966
+ }
967
+ return nestingLevel;
968
+ }
969
+
970
+ setConsoleGroup(group: ConsoleGroupViewMessage): void {
971
+ console.assert(this.consoleGroupInternal === null);
972
+ this.consoleGroupInternal = group;
973
+ }
974
+
975
+ clearConsoleGroup(): void {
976
+ this.consoleGroupInternal = null;
977
+ }
978
+
979
+ consoleGroup(): ConsoleGroupViewMessage|null {
980
+ return this.consoleGroupInternal;
963
981
  }
964
982
 
965
983
  setInSimilarGroup(inSimilarGroup: boolean, isLast?: boolean): void {
@@ -1170,7 +1188,7 @@ export class ConsoleViewMessage implements ConsoleViewportElement {
1170
1188
  }
1171
1189
 
1172
1190
  this.nestingLevelMarkers = [];
1173
- for (let i = 0; i < this.nestingLevelInternal; ++i) {
1191
+ for (let i = 0; i < this.nestingLevel(); ++i) {
1174
1192
  this.nestingLevelMarkers.push(this.elementInternal.createChild('div', 'nesting-level-marker'));
1175
1193
  }
1176
1194
  this.updateCloseGroupDecorations();
@@ -1534,7 +1552,8 @@ export class ConsoleViewMessage implements ConsoleViewportElement {
1534
1552
  // If we were able to parse the function name from the stack trace line, try to replace it with an expansion of
1535
1553
  // any inline frames.
1536
1554
  const selectableChildIndex = this.selectableChildren.length - 1;
1537
- this.expandInlineStackFrames(
1555
+ void this
1556
+ .expandInlineStackFrames(
1538
1557
  debuggerModel, prefixWithoutFunction, suffix, link.url, link.lineNumber, link.columnNumber,
1539
1558
  formattedResult, formattedLine)
1540
1559
  .then(modified => {
@@ -1699,17 +1718,18 @@ export class ConsoleGroupViewMessage extends ConsoleViewMessage {
1699
1718
  private collapsedInternal: boolean;
1700
1719
  private expandGroupIcon: UI.Icon.Icon|null;
1701
1720
  private readonly onToggle: () => void;
1721
+ private groupEndMessageInternal: ConsoleViewMessage|null;
1702
1722
 
1703
1723
  constructor(
1704
1724
  consoleMessage: SDK.ConsoleModel.ConsoleMessage, linkifier: Components.Linkifier.Linkifier,
1705
1725
  requestResolver: Logs.RequestResolver.RequestResolver, issueResolver: IssuesManager.IssueResolver.IssueResolver,
1706
- nestingLevel: number, onToggle: () => void,
1707
- onResize: (arg0: Common.EventTarget.EventTargetEvent<UI.TreeOutline.TreeElement>) => void) {
1726
+ onToggle: () => void, onResize: (arg0: Common.EventTarget.EventTargetEvent<UI.TreeOutline.TreeElement>) => void) {
1708
1727
  console.assert(consoleMessage.isGroupStartMessage());
1709
- super(consoleMessage, linkifier, requestResolver, issueResolver, nestingLevel, onResize);
1728
+ super(consoleMessage, linkifier, requestResolver, issueResolver, onResize);
1710
1729
  this.collapsedInternal = consoleMessage.type === Protocol.Runtime.ConsoleAPICalledEventType.StartGroupCollapsed;
1711
1730
  this.expandGroupIcon = null;
1712
1731
  this.onToggle = onToggle;
1732
+ this.groupEndMessageInternal = null;
1713
1733
  }
1714
1734
 
1715
1735
  private setCollapsed(collapsed: boolean): void {
@@ -1760,6 +1780,28 @@ export class ConsoleGroupViewMessage extends ConsoleViewMessage {
1760
1780
  this.repeatCountElement.insertBefore(this.expandGroupIcon, this.repeatCountElement.firstChild);
1761
1781
  }
1762
1782
  }
1783
+
1784
+ messagesHidden(): boolean {
1785
+ if (this.collapsed()) {
1786
+ return true;
1787
+ }
1788
+ const parent = this.consoleGroup();
1789
+ return Boolean(parent && parent.messagesHidden());
1790
+ }
1791
+
1792
+ setGroupEnd(viewMessage: ConsoleViewMessage): void {
1793
+ if (viewMessage.consoleMessage().type !== Protocol.Runtime.ConsoleAPICalledEventType.EndGroup) {
1794
+ throw new Error('Invalid console message as group end');
1795
+ }
1796
+ if (this.groupEndMessageInternal !== null) {
1797
+ throw new Error('Console group already has an end');
1798
+ }
1799
+ this.groupEndMessageInternal = viewMessage;
1800
+ }
1801
+
1802
+ groupEnd(): ConsoleViewMessage|null {
1803
+ return this.groupEndMessageInternal;
1804
+ }
1763
1805
  }
1764
1806
 
1765
1807
  export class ConsoleCommand extends ConsoleViewMessage {
@@ -1768,8 +1810,8 @@ export class ConsoleCommand extends ConsoleViewMessage {
1768
1810
  constructor(
1769
1811
  consoleMessage: SDK.ConsoleModel.ConsoleMessage, linkifier: Components.Linkifier.Linkifier,
1770
1812
  requestResolver: Logs.RequestResolver.RequestResolver, issueResolver: IssuesManager.IssueResolver.IssueResolver,
1771
- nestingLevel: number, onResize: (arg0: Common.EventTarget.EventTargetEvent<UI.TreeOutline.TreeElement>) => void) {
1772
- super(consoleMessage, linkifier, requestResolver, issueResolver, nestingLevel, onResize);
1813
+ onResize: (arg0: Common.EventTarget.EventTargetEvent<UI.TreeOutline.TreeElement>) => void) {
1814
+ super(consoleMessage, linkifier, requestResolver, issueResolver, onResize);
1773
1815
  this.formattedCommand = null;
1774
1816
  }
1775
1817
 
@@ -1791,7 +1833,7 @@ export class ConsoleCommand extends ConsoleViewMessage {
1791
1833
  newContentElement.appendChild(this.formattedCommand);
1792
1834
 
1793
1835
  if (this.formattedCommand.textContent.length < MaxLengthToIgnoreHighlighter) {
1794
- CodeHighlighter.CodeHighlighter.highlightNode(this.formattedCommand, 'text/javascript')
1836
+ void CodeHighlighter.CodeHighlighter.highlightNode(this.formattedCommand, 'text/javascript')
1795
1837
  .then(this.updateSearch.bind(this));
1796
1838
  } else {
1797
1839
  this.updateSearch();
@@ -1826,8 +1868,8 @@ export class ConsoleTableMessageView extends ConsoleViewMessage {
1826
1868
  constructor(
1827
1869
  consoleMessage: SDK.ConsoleModel.ConsoleMessage, linkifier: Components.Linkifier.Linkifier,
1828
1870
  requestResolver: Logs.RequestResolver.RequestResolver, issueResolver: IssuesManager.IssueResolver.IssueResolver,
1829
- nestingLevel: number, onResize: (arg0: Common.EventTarget.EventTargetEvent<UI.TreeOutline.TreeElement>) => void) {
1830
- super(consoleMessage, linkifier, requestResolver, issueResolver, nestingLevel, onResize);
1871
+ onResize: (arg0: Common.EventTarget.EventTargetEvent<UI.TreeOutline.TreeElement>) => void) {
1872
+ super(consoleMessage, linkifier, requestResolver, issueResolver, onResize);
1831
1873
  console.assert(consoleMessage.type === Protocol.Runtime.ConsoleAPICalledEventType.Table);
1832
1874
  this.dataGrid = null;
1833
1875
  }
@@ -208,6 +208,42 @@
208
208
  display: flex;
209
209
  border-top: 1px solid var(--override-message-border-color);
210
210
  border-bottom: 1px solid transparent;
211
+
212
+ /* Console ANSI color */
213
+ --console-color-black: #000;
214
+ --console-color-red: #a00;
215
+ --console-color-green: #0a0;
216
+ --console-color-yellow: #a50;
217
+ --console-color-blue: #00a;
218
+ --console-color-magenta: #a0a;
219
+ --console-color-cyan: #0aa;
220
+ --console-color-gray: #aaa;
221
+ --console-color-darkgray: #555;
222
+ --console-color-lightred: #f55;
223
+ --console-color-lightgreen: #5f5;
224
+ --console-color-lightyellow: #ff5;
225
+ --console-color-lightblue: #55f;
226
+ --console-color-ightmagenta: #f5f;
227
+ --console-color-lightcyan: #5ff;
228
+ --console-color-white: #fff;
229
+ }
230
+
231
+ .-theme-with-dark-background .console-message-wrapper {
232
+ /* Dark theme console ANSI color */
233
+ --console-color-red: rgb(237 78 76);
234
+ --console-color-green: rgb(1 200 1);
235
+ --console-color-yellow: rgb(210 192 87);
236
+ --console-color-blue: rgb(39 116 240);
237
+ --console-color-magenta: rgb(161 66 244);
238
+ --console-color-cyan: rgb(18 181 203);
239
+ --console-color-gray: rgb(207 208 208);
240
+ --console-color-darkgray: rgb(137 137 137);
241
+ --console-color-lightred: rgb(242 139 130);
242
+ --console-color-lightgreen: rgb(161 247 181);
243
+ --console-color-lightyellow: rgb(221 251 85);
244
+ --console-color-lightblue: rgb(102 157 246);
245
+ --console-color-lightmagenta: rgb(214 112 214);
246
+ --console-color-lightcyan: rgb(132 240 255);
211
247
  }
212
248
 
213
249
  .console-message-wrapper:first-of-type {
@@ -63,7 +63,7 @@ export class WarningErrorCounter implements UI.Toolbar.Provider {
63
63
  this.issueCounter.data = {
64
64
  clickHandler: (): void => {
65
65
  Host.userMetrics.issuesPanelOpenedFrom(Host.UserMetrics.IssueOpener.StatusBarIssuesCounter);
66
- UI.ViewManager.ViewManager.instance().showView('issues-pane');
66
+ void UI.ViewManager.ViewManager.instance().showView('issues-pane');
67
67
  },
68
68
  issuesManager,
69
69
  displayMode: IssueCounter.IssueCounter.DisplayMode.OnlyMostImportant,
@@ -106,7 +106,7 @@ export class WarningErrorCounter implements UI.Toolbar.Provider {
106
106
 
107
107
  private update(): void {
108
108
  this.updatingForTest = true;
109
- this.throttler.schedule(this.updateThrottled.bind(this));
109
+ void this.throttler.schedule(this.updateThrottled.bind(this));
110
110
  }
111
111
 
112
112
  get titlesForTesting(): string|null {
@@ -249,7 +249,7 @@ export class CoverageListView extends UI.Widget.VBox {
249
249
  }
250
250
 
251
251
  private onOpenedNode(): void {
252
- this.revealSourceForSelectedNode();
252
+ void this.revealSourceForSelectedNode();
253
253
  }
254
254
 
255
255
  private onKeyDown(event: KeyboardEvent): void {
@@ -257,7 +257,7 @@ export class CoverageListView extends UI.Widget.VBox {
257
257
  return;
258
258
  }
259
259
  event.consume(true);
260
- this.revealSourceForSelectedNode();
260
+ void this.revealSourceForSelectedNode();
261
261
  }
262
262
 
263
263
  private async revealSourceForSelectedNode(): Promise<void> {
@@ -277,7 +277,7 @@ export class CoverageListView extends UI.Widget.VBox {
277
277
  if (this.dataGrid.selectedNode !== node) {
278
278
  return;
279
279
  }
280
- Common.Revealer.reveal(sourceCode);
280
+ void Common.Revealer.reveal(sourceCode);
281
281
  }
282
282
 
283
283
  private sortingChanged(): void {
@@ -103,7 +103,7 @@ export class CoverageModel extends SDK.SDKModel.SDKModel<EventTypes> {
103
103
  preciseCoverageDeltaUpdate(timestamp: number, occasion: string, coverageData: Protocol.Profiler.ScriptCoverage[]):
104
104
  void {
105
105
  this.coverageUpdateTimes.add(timestamp);
106
- this.backlogOrProcessJSCoverage(coverageData, timestamp);
106
+ void this.backlogOrProcessJSCoverage(coverageData, timestamp);
107
107
  }
108
108
 
109
109
  async stop(): Promise<void> {
@@ -287,7 +287,7 @@ export class CoverageModel extends SDK.SDKModel.SDKModel<EventTypes> {
287
287
  }
288
288
 
289
289
  async processJSBacklog(): Promise<void> {
290
- this.backlogOrProcessJSCoverage([], 0);
290
+ void this.backlogOrProcessJSCoverage([], 0);
291
291
  }
292
292
 
293
293
  private processJSCoverage(scriptsCoverage: Protocol.Profiler.ScriptCoverage[], stamp: number): CoverageInfo[] {
@@ -475,7 +475,7 @@ export class CoverageModel extends SDK.SDKModel.SDKModel<EventTypes> {
475
475
  result.push(...await urlInfo.entriesForExport());
476
476
  }
477
477
  await fos.write(JSON.stringify(result, undefined, 2));
478
- fos.close();
478
+ void fos.close();
479
479
  }
480
480
  }
481
481