chrome-devtools-frontend 1.0.954845 → 1.0.956401

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 (341) hide show
  1. package/.eslintrc.js +1 -0
  2. package/AUTHORS +1 -0
  3. package/config/gni/devtools_grd_files.gni +0 -1
  4. package/config/owner/COMMON_OWNERS +2 -2
  5. package/front_end/.eslintrc.js +1 -11
  6. package/front_end/core/common/Console.ts +1 -1
  7. package/front_end/core/common/ResolverBase.ts +1 -1
  8. package/front_end/core/common/Throttler.ts +1 -1
  9. package/front_end/core/common/Worker.ts +4 -4
  10. package/front_end/core/host/InspectorFrontendHost.ts +1 -1
  11. package/front_end/core/host/ResourceLoader.ts +2 -2
  12. package/front_end/core/i18n/DevToolsLocale.ts +0 -2
  13. package/front_end/core/i18n/i18nImpl.ts +0 -2
  14. package/front_end/core/i18n/locales/en-US.json +3 -3
  15. package/front_end/core/i18n/locales/en-XL.json +3 -3
  16. package/front_end/core/sdk/AccessibilityModel.ts +1 -1
  17. package/front_end/core/sdk/CPUProfilerModel.ts +2 -2
  18. package/front_end/core/sdk/CPUThrottlingManager.ts +2 -2
  19. package/front_end/core/sdk/CSSModel.ts +7 -7
  20. package/front_end/core/sdk/CSSProperty.ts +1 -1
  21. package/front_end/core/sdk/CSSStyleDeclaration.ts +1 -1
  22. package/front_end/core/sdk/ChildTargetManager.ts +6 -6
  23. package/front_end/core/sdk/Connections.ts +2 -2
  24. package/front_end/core/sdk/ConsoleModel.ts +1 -1
  25. package/front_end/core/sdk/DOMDebuggerModel.ts +16 -15
  26. package/front_end/core/sdk/DOMModel.ts +17 -17
  27. package/front_end/core/sdk/DebuggerModel.ts +24 -24
  28. package/front_end/core/sdk/EmulationModel.ts +16 -16
  29. package/front_end/core/sdk/EventBreakpointsModel.ts +2 -2
  30. package/front_end/core/sdk/IsolateManager.ts +2 -2
  31. package/front_end/core/sdk/IssuesModel.ts +1 -1
  32. package/front_end/core/sdk/LogModel.ts +3 -3
  33. package/front_end/core/sdk/NetworkManager.ts +25 -25
  34. package/front_end/core/sdk/OverlayModel.ts +23 -23
  35. package/front_end/core/sdk/PageResourceLoader.ts +1 -1
  36. package/front_end/core/sdk/PaintProfiler.ts +1 -1
  37. package/front_end/core/sdk/RemoteObject.ts +2 -2
  38. package/front_end/core/sdk/Resource.ts +2 -2
  39. package/front_end/core/sdk/ResourceTreeModel.ts +5 -5
  40. package/front_end/core/sdk/RuntimeModel.ts +11 -11
  41. package/front_end/core/sdk/ScreenCaptureModel.ts +3 -3
  42. package/front_end/core/sdk/ServiceWorkerCacheModel.ts +7 -7
  43. package/front_end/core/sdk/ServiceWorkerManager.ts +4 -4
  44. package/front_end/core/sdk/SourceMapManager.ts +1 -1
  45. package/front_end/core/sdk/TargetManager.ts +2 -2
  46. package/front_end/core/sdk/TracingManager.ts +1 -1
  47. package/front_end/entrypoints/formatter_worker/FormatterActions.ts +10 -0
  48. package/front_end/entrypoints/formatter_worker/FormatterWorker.ts +3 -4
  49. package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshotLoader.ts +1 -1
  50. package/front_end/entrypoints/inspector_main/InspectorMain.ts +4 -4
  51. package/front_end/entrypoints/inspector_main/RenderingOptions.ts +1 -1
  52. package/front_end/entrypoints/js_app/js_app.ts +2 -2
  53. package/front_end/entrypoints/main/MainImpl.ts +31 -23
  54. package/front_end/entrypoints/main/main-meta.ts +1 -1
  55. package/front_end/entrypoints/node_app/NodeMain.ts +6 -6
  56. package/front_end/entrypoints/worker_app/WorkerMain.ts +1 -1
  57. package/front_end/generated/ARIAProperties.js +1 -1
  58. package/front_end/generated/InspectorBackendCommands.js +5 -1
  59. package/front_end/generated/SupportedCSSProperties.js +15 -15
  60. package/front_end/generated/protocol.d.ts +13 -0
  61. package/front_end/global_typings/global_defs.d.ts +0 -1
  62. package/front_end/models/bindings/BreakpointManager.ts +21 -23
  63. package/front_end/models/bindings/CSSWorkspaceBinding.ts +3 -3
  64. package/front_end/models/bindings/CompilerScriptMapping.ts +1 -1
  65. package/front_end/models/bindings/ContentProviderBasedProject.ts +1 -1
  66. package/front_end/models/bindings/DebuggerLanguagePlugins.ts +2 -2
  67. package/front_end/models/bindings/DebuggerWorkspaceBinding.ts +3 -3
  68. package/front_end/models/bindings/DefaultScriptMapping.ts +1 -1
  69. package/front_end/models/bindings/FileUtils.ts +5 -5
  70. package/front_end/models/bindings/IgnoreListManager.ts +4 -4
  71. package/front_end/models/bindings/LiveLocation.ts +9 -0
  72. package/front_end/models/bindings/PresentationConsoleMessageHelper.ts +2 -1
  73. package/front_end/models/bindings/ResourceMapping.ts +1 -1
  74. package/front_end/models/bindings/ResourceScriptMapping.ts +9 -9
  75. package/front_end/models/bindings/StylesSourceMapping.ts +3 -3
  76. package/front_end/models/bindings/TempFile.ts +1 -1
  77. package/front_end/models/emulation/DeviceModeModel.ts +5 -5
  78. package/front_end/models/emulation/EmulatedDevices.ts +1 -1
  79. package/front_end/models/extensions/ExtensionPanel.ts +1 -1
  80. package/front_end/models/extensions/ExtensionServer.ts +8 -8
  81. package/front_end/models/formatter/FormatterWorkerPool.ts +2 -12
  82. package/front_end/models/formatter/ScriptFormatter.ts +3 -3
  83. package/front_end/models/formatter/SourceFormatter.ts +2 -2
  84. package/front_end/models/issues_manager/ContrastCheckTrigger.ts +1 -1
  85. package/front_end/models/issues_manager/DeprecationIssue.ts +7 -7
  86. package/front_end/models/issues_manager/SourceFrameIssuesManager.ts +3 -3
  87. package/front_end/models/persistence/Automapping.ts +3 -3
  88. package/front_end/models/persistence/FileSystemWorkspaceBinding.ts +3 -3
  89. package/front_end/models/persistence/IsolatedFileSystem.ts +1 -1
  90. package/front_end/models/persistence/IsolatedFileSystemManager.ts +2 -2
  91. package/front_end/models/persistence/NetworkPersistenceManager.ts +11 -11
  92. package/front_end/models/persistence/PersistenceActions.ts +3 -3
  93. package/front_end/models/persistence/PersistenceImpl.ts +2 -2
  94. package/front_end/models/persistence/WorkspaceSettingsTab.ts +1 -1
  95. package/front_end/models/workspace/UISourceCode.ts +2 -2
  96. package/front_end/models/workspace_diff/WorkspaceDiff.ts +2 -2
  97. package/front_end/panels/accessibility/AXBreadcrumbsPane.ts +4 -4
  98. package/front_end/panels/accessibility/AccessibilityNodeView.ts +3 -3
  99. package/front_end/panels/accessibility/AccessibilitySidebarView.ts +7 -7
  100. package/front_end/panels/animation/AnimationModel.ts +6 -6
  101. package/front_end/panels/animation/AnimationTimeline.ts +3 -3
  102. package/front_end/panels/animation/AnimationUI.ts +3 -3
  103. package/front_end/panels/application/AppManifestView.ts +4 -4
  104. package/front_end/panels/application/ApplicationPanelCacheSection.ts +3 -3
  105. package/front_end/panels/application/ApplicationPanelSidebar.ts +15 -15
  106. package/front_end/panels/application/BackgroundServiceModel.ts +3 -3
  107. package/front_end/panels/application/BackgroundServiceView.ts +3 -3
  108. package/front_end/panels/application/CookieItemsView.ts +5 -5
  109. package/front_end/panels/application/DOMStorageItemsView.ts +4 -4
  110. package/front_end/panels/application/DOMStorageModel.ts +4 -4
  111. package/front_end/panels/application/DatabaseModel.ts +2 -2
  112. package/front_end/panels/application/DatabaseQueryView.ts +2 -2
  113. package/front_end/panels/application/DatabaseTableView.ts +1 -1
  114. package/front_end/panels/application/IndexedDBModel.ts +11 -11
  115. package/front_end/panels/application/IndexedDBViews.ts +5 -5
  116. package/front_end/panels/application/OpenedWindowDetailsView.ts +4 -4
  117. package/front_end/panels/application/ReportingApiView.ts +1 -1
  118. package/front_end/panels/application/ResourcesPanel.ts +2 -2
  119. package/front_end/panels/application/ServiceWorkerCacheViews.ts +7 -7
  120. package/front_end/panels/application/ServiceWorkersView.ts +15 -15
  121. package/front_end/panels/application/StorageView.ts +5 -5
  122. package/front_end/panels/application/TrustTokensTreeElement.ts +1 -1
  123. package/front_end/panels/application/components/BackForwardCacheStrings.ts +5 -1
  124. package/front_end/panels/application/components/BackForwardCacheView.ts +4 -4
  125. package/front_end/panels/application/components/FrameDetailsView.ts +3 -3
  126. package/front_end/panels/application/components/PermissionsPolicySection.ts +2 -2
  127. package/front_end/panels/browser_debugger/CategorizedBreakpointsSidebarPane.ts +1 -1
  128. package/front_end/panels/browser_debugger/DOMBreakpointsSidebarPane.ts +8 -7
  129. package/front_end/panels/browser_debugger/ObjectEventListenersSidebarPane.ts +1 -1
  130. package/front_end/panels/browser_debugger/XHRBreakpointsSidebarPane.ts +4 -4
  131. package/front_end/panels/changes/ChangesView.ts +4 -4
  132. package/front_end/panels/console/ConsoleContextSelector.ts +1 -1
  133. package/front_end/panels/console/ConsoleFilter.ts +17 -2
  134. package/front_end/panels/console/ConsoleFormat.ts +5 -4
  135. package/front_end/panels/console/ConsolePinPane.ts +4 -4
  136. package/front_end/panels/console/ConsolePrompt.ts +4 -4
  137. package/front_end/panels/console/ConsoleView.ts +96 -71
  138. package/front_end/panels/console/ConsoleViewMessage.ts +61 -19
  139. package/front_end/panels/console/consoleView.css +36 -0
  140. package/front_end/panels/console_counters/WarningErrorCounter.ts +2 -2
  141. package/front_end/panels/coverage/CoverageListView.ts +3 -3
  142. package/front_end/panels/coverage/CoverageModel.ts +3 -3
  143. package/front_end/panels/coverage/CoverageView.ts +6 -6
  144. package/front_end/panels/css_overview/CSSOverviewCompletedView.ts +3 -3
  145. package/front_end/panels/css_overview/CSSOverviewModel.ts +2 -2
  146. package/front_end/panels/css_overview/CSSOverviewPanel.ts +1 -1
  147. package/front_end/panels/developer_resources/DeveloperResourcesListView.ts +1 -1
  148. package/front_end/panels/developer_resources/DeveloperResourcesView.ts +1 -1
  149. package/front_end/panels/elements/AccessibilityTreeView.ts +5 -5
  150. package/front_end/panels/elements/ClassesPaneWidget.ts +1 -1
  151. package/front_end/panels/elements/ColorSwatchPopoverIcon.ts +10 -10
  152. package/front_end/panels/elements/ComputedStyleWidget.ts +2 -2
  153. package/front_end/panels/elements/DOMLinkifier.ts +2 -2
  154. package/front_end/panels/elements/ElementsPanel.ts +19 -19
  155. package/front_end/panels/elements/ElementsSidebarPane.ts +1 -1
  156. package/front_end/panels/elements/ElementsTreeElement.ts +26 -25
  157. package/front_end/panels/elements/ElementsTreeElementHighlighter.ts +1 -1
  158. package/front_end/panels/elements/ElementsTreeOutline.ts +4 -4
  159. package/front_end/panels/elements/InspectElementModeController.ts +3 -3
  160. package/front_end/panels/elements/LayoutSidebarPane.ts +2 -2
  161. package/front_end/panels/elements/MetricsSidebarPane.ts +2 -2
  162. package/front_end/panels/elements/StylePropertyHighlighter.ts +1 -1
  163. package/front_end/panels/elements/StylePropertyTreeElement.ts +16 -16
  164. package/front_end/panels/elements/StylesSidebarPane.ts +15 -15
  165. package/front_end/panels/elements/components/AccessibilityTreeNode.ts +1 -1
  166. package/front_end/panels/elements/components/ElementsBreadcrumbs.ts +8 -8
  167. package/front_end/panels/elements/elementsPanel.css +1 -0
  168. package/front_end/panels/elements/elementsTreeOutline.css +6 -1
  169. package/front_end/panels/emulation/AdvancedApp.ts +2 -2
  170. package/front_end/panels/emulation/DeviceModeToolbar.ts +1 -1
  171. package/front_end/panels/emulation/DeviceModeView.ts +2 -2
  172. package/front_end/panels/emulation/DeviceModeWrapper.ts +4 -4
  173. package/front_end/panels/emulation/MediaQueryInspector.ts +3 -3
  174. package/front_end/panels/event_listeners/EventListenersView.ts +3 -3
  175. package/front_end/panels/input/InputModel.ts +2 -2
  176. package/front_end/panels/input/InputTimeline.ts +6 -6
  177. package/front_end/panels/issues/AffectedCookiesView.ts +2 -2
  178. package/front_end/panels/issues/AffectedDirectivesView.ts +1 -1
  179. package/front_end/panels/issues/AffectedElementsView.ts +1 -1
  180. package/front_end/panels/issues/AffectedResourcesView.ts +2 -2
  181. package/front_end/panels/issues/AttributionReportingIssueDetailsView.ts +1 -1
  182. package/front_end/panels/issues/ComboBoxOfCheckBoxes.ts +1 -1
  183. package/front_end/panels/issues/IssueView.ts +1 -1
  184. package/front_end/panels/issues/components/HideIssuesMenu.ts +1 -1
  185. package/front_end/panels/layer_viewer/LayerDetailsView.ts +1 -1
  186. package/front_end/panels/layer_viewer/LayerViewHost.ts +1 -1
  187. package/front_end/panels/layer_viewer/Layers3DView.ts +7 -7
  188. package/front_end/panels/layer_viewer/PaintProfilerView.ts +1 -1
  189. package/front_end/panels/layers/LayerPaintProfilerView.ts +3 -3
  190. package/front_end/panels/layers/LayerTreeModel.ts +4 -4
  191. package/front_end/panels/layers/LayersPanel.ts +4 -4
  192. package/front_end/panels/lighthouse/LighthouseController.ts +1 -1
  193. package/front_end/panels/lighthouse/LighthousePanel.ts +5 -5
  194. package/front_end/panels/lighthouse/LighthouseProtocolService.ts +1 -1
  195. package/front_end/panels/lighthouse/LighthouseReportRenderer.ts +1 -1
  196. package/front_end/panels/media/MediaModel.ts +1 -1
  197. package/front_end/panels/media/PlayerListView.ts +1 -1
  198. package/front_end/panels/mobile_throttling/NetworkThrottlingSelector.ts +1 -1
  199. package/front_end/panels/network/BinaryResourceView.ts +1 -1
  200. package/front_end/panels/network/BlockedURLsPane.ts +5 -5
  201. package/front_end/panels/network/NetworkDataGridNode.ts +1 -1
  202. package/front_end/panels/network/NetworkItemView.ts +2 -2
  203. package/front_end/panels/network/NetworkLogView.ts +4 -4
  204. package/front_end/panels/network/NetworkLogViewColumns.ts +1 -1
  205. package/front_end/panels/network/NetworkPanel.ts +8 -8
  206. package/front_end/panels/network/NetworkTimeCalculator.ts +1 -1
  207. package/front_end/panels/network/RequestHeadersView.ts +4 -3
  208. package/front_end/panels/network/RequestPayloadView.ts +8 -8
  209. package/front_end/panels/network/RequestPreviewView.ts +1 -1
  210. package/front_end/panels/network/RequestResponseView.ts +2 -2
  211. package/front_end/panels/network/ResourceWebSocketFrameView.ts +1 -1
  212. package/front_end/panels/performance_monitor/PerformanceMonitor.ts +2 -2
  213. package/front_end/panels/profiler/CPUProfileView.ts +4 -4
  214. package/front_end/panels/profiler/HeapProfileView.ts +6 -6
  215. package/front_end/panels/profiler/HeapProfilerPanel.ts +2 -2
  216. package/front_end/panels/profiler/HeapSnapshotDataGrids.ts +10 -10
  217. package/front_end/panels/profiler/HeapSnapshotGridNodes.ts +9 -8
  218. package/front_end/panels/profiler/HeapSnapshotView.ts +24 -24
  219. package/front_end/panels/profiler/LiveHeapProfileView.ts +4 -4
  220. package/front_end/panels/profiler/ProfileSidebarTreeElement.ts +1 -1
  221. package/front_end/panels/profiler/ProfileView.ts +3 -3
  222. package/front_end/panels/profiler/ProfilesPanel.ts +3 -3
  223. package/front_end/panels/protocol_monitor/ProtocolMonitor.ts +3 -3
  224. package/front_end/panels/screencast/InputModel.ts +3 -3
  225. package/front_end/panels/screencast/ScreencastView.ts +10 -10
  226. package/front_end/panels/search/SearchResultsPane.ts +1 -1
  227. package/front_end/panels/search/SearchView.ts +2 -2
  228. package/front_end/panels/security/SecurityModel.ts +1 -1
  229. package/front_end/panels/security/SecurityPanel.ts +2 -2
  230. package/front_end/panels/sensors/SensorsView.ts +3 -2
  231. package/front_end/panels/settings/SettingsScreen.ts +5 -5
  232. package/front_end/panels/settings/components/SyncSection.ts +1 -1
  233. package/front_end/panels/snippets/SnippetsQuickOpen.ts +1 -1
  234. package/front_end/panels/sources/BreakpointEditDialog.ts +2 -2
  235. package/front_end/panels/sources/CallStackSidebarPane.ts +4 -4
  236. package/front_end/panels/sources/CoveragePlugin.ts +3 -3
  237. package/front_end/panels/sources/DebuggerPlugin.ts +12 -12
  238. package/front_end/panels/sources/GoToLineQuickOpen.ts +1 -1
  239. package/front_end/panels/sources/InplaceFormatterEditorAction.ts +3 -3
  240. package/front_end/panels/sources/JavaScriptBreakpointsSidebarPane.ts +3 -3
  241. package/front_end/panels/sources/NavigatorView.ts +6 -6
  242. package/front_end/panels/sources/OpenFileQuickOpen.ts +2 -2
  243. package/front_end/panels/sources/OutlineQuickOpen.ts +1 -1
  244. package/front_end/panels/sources/ScopeChainSidebarPane.ts +3 -3
  245. package/front_end/panels/sources/ScriptFormatterEditorAction.ts +3 -3
  246. package/front_end/panels/sources/SearchSourcesView.ts +2 -2
  247. package/front_end/panels/sources/SourcesNavigator.ts +9 -9
  248. package/front_end/panels/sources/SourcesPanel.ts +28 -25
  249. package/front_end/panels/sources/SourcesSearchScope.ts +2 -2
  250. package/front_end/panels/sources/SourcesView.ts +4 -4
  251. package/front_end/panels/sources/TabbedEditorContainer.ts +1 -1
  252. package/front_end/panels/sources/UISourceCodeFrame.ts +2 -2
  253. package/front_end/panels/sources/WatchExpressionsSidebarPane.ts +4 -4
  254. package/front_end/panels/timeline/EventsTimelineTreeView.ts +1 -1
  255. package/front_end/panels/timeline/TimelineController.ts +1 -1
  256. package/front_end/panels/timeline/TimelineDetailsView.ts +2 -2
  257. package/front_end/panels/timeline/TimelineEventOverview.ts +2 -2
  258. package/front_end/panels/timeline/TimelineFlameChartDataProvider.ts +22 -5
  259. package/front_end/panels/timeline/TimelineFlameChartNetworkDataProvider.ts +9 -6
  260. package/front_end/panels/timeline/TimelineHistoryManager.ts +1 -1
  261. package/front_end/panels/timeline/TimelineLayersView.ts +1 -1
  262. package/front_end/panels/timeline/TimelineLoader.ts +2 -2
  263. package/front_end/panels/timeline/TimelinePaintProfilerView.ts +4 -4
  264. package/front_end/panels/timeline/TimelinePanel.ts +10 -10
  265. package/front_end/panels/timeline/TimelineUIUtils.ts +2 -2
  266. package/front_end/panels/timeline/components/WebVitalsTimeline.ts +2 -2
  267. package/front_end/panels/web_audio/WebAudioModel.ts +1 -1
  268. package/front_end/panels/web_audio/WebAudioView.ts +1 -1
  269. package/front_end/panels/webauthn/WebauthnPane.ts +7 -7
  270. package/front_end/ui/components/buttons/Button.ts +10 -10
  271. package/front_end/ui/components/data_grid/DataGrid.ts +14 -14
  272. package/front_end/ui/components/docs/tree_outline/basic.ts +2 -2
  273. package/front_end/ui/components/docs/tree_outline/custom-renderers.ts +1 -1
  274. package/front_end/ui/components/docs/tree_outline/lazy-children.ts +1 -1
  275. package/front_end/ui/components/helpers/scheduled-render.ts +1 -1
  276. package/front_end/ui/components/icon_button/Icon.ts +1 -1
  277. package/front_end/ui/components/issue_counter/IssueCounter.ts +1 -1
  278. package/front_end/ui/components/issue_counter/IssueLinkIcon.ts +2 -2
  279. package/front_end/ui/components/linear_memory_inspector/LinearMemoryInspectorController.ts +2 -2
  280. package/front_end/ui/components/linear_memory_inspector/LinearMemoryInspectorPane.ts +5 -2
  281. package/front_end/ui/components/linkifier/LinkifierImpl.ts +1 -1
  282. package/front_end/ui/components/panel_feedback/FeedbackButton.ts +1 -1
  283. package/front_end/ui/components/panel_feedback/PanelFeedback.ts +1 -1
  284. package/front_end/ui/components/request_link_icon/RequestLinkIcon.ts +3 -3
  285. package/front_end/ui/components/text_editor/cursor_tooltip.ts +1 -1
  286. package/front_end/ui/components/text_editor/javascript.ts +2 -2
  287. package/front_end/ui/components/tree_outline/TreeOutline.ts +8 -8
  288. package/front_end/ui/legacy/Context.ts +1 -1
  289. package/front_end/ui/legacy/ContextMenu.ts +1 -1
  290. package/front_end/ui/legacy/GlassPane.ts +0 -1
  291. package/front_end/ui/legacy/InspectorView.ts +2 -3
  292. package/front_end/ui/legacy/PopoverHelper.ts +1 -1
  293. package/front_end/ui/legacy/ShortcutRegistry.ts +1 -1
  294. package/front_end/ui/legacy/TabbedPane.ts +2 -2
  295. package/front_end/ui/legacy/ThrottledWidget.ts +1 -1
  296. package/front_end/ui/legacy/Toolbar.ts +3 -3
  297. package/front_end/ui/legacy/Treeoutline.ts +6 -6
  298. package/front_end/ui/legacy/UIUtils.ts +17 -24
  299. package/front_end/ui/legacy/ViewManager.ts +9 -9
  300. package/front_end/ui/legacy/components/color_picker/ContrastOverlay.ts +1 -1
  301. package/front_end/ui/legacy/components/color_picker/Spectrum.ts +7 -7
  302. package/front_end/ui/legacy/components/color_picker/spectrum.css +5 -2
  303. package/front_end/ui/legacy/components/cookie_table/CookiesTable.ts +3 -3
  304. package/front_end/ui/legacy/components/data_grid/DataGrid.ts +2 -2
  305. package/front_end/ui/legacy/components/data_grid/ShowMoreDataGridNode.ts +3 -3
  306. package/front_end/ui/legacy/components/inline_editor/CSSAngleEditor.ts +1 -1
  307. package/front_end/ui/legacy/components/inline_editor/FontEditor.ts +4 -4
  308. package/front_end/ui/legacy/components/object_ui/CustomPreviewComponent.ts +3 -3
  309. package/front_end/ui/legacy/components/object_ui/ObjectPopoverHelper.ts +1 -1
  310. package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +11 -11
  311. package/front_end/ui/legacy/components/perf_ui/FilmStripView.ts +8 -8
  312. package/front_end/ui/legacy/components/perf_ui/FlameChart.ts +13 -18
  313. package/front_end/ui/legacy/components/perf_ui/GCActionDelegate.ts +1 -1
  314. package/front_end/ui/legacy/components/perf_ui/LineLevelProfile.ts +1 -1
  315. package/front_end/ui/legacy/components/perf_ui/LiveHeapProfile.ts +3 -3
  316. package/front_end/ui/legacy/components/perf_ui/TimelineGrid.ts +2 -4
  317. package/front_end/ui/legacy/components/perf_ui/TimelineOverviewPane.ts +2 -2
  318. package/front_end/ui/legacy/components/perf_ui/flameChart.css +8 -0
  319. package/front_end/ui/legacy/components/quick_open/FilteredListWidget.ts +5 -5
  320. package/front_end/ui/legacy/components/source_frame/FontView.ts +1 -2
  321. package/front_end/ui/legacy/components/source_frame/ImageView.ts +3 -4
  322. package/front_end/ui/legacy/components/source_frame/JSONView.ts +0 -1
  323. package/front_end/ui/legacy/components/source_frame/ResourceSourceFrame.ts +1 -2
  324. package/front_end/ui/legacy/components/source_frame/SourceFrame.ts +5 -5
  325. package/front_end/ui/legacy/components/source_frame/XMLView.ts +0 -2
  326. package/front_end/ui/legacy/components/utils/ImagePreview.ts +1 -1
  327. package/front_end/ui/legacy/components/utils/JSPresentationUtils.ts +1 -1
  328. package/front_end/ui/legacy/components/utils/Linkifier.ts +5 -5
  329. package/front_end/ui/legacy/components/utils/TargetDetachedDialog.ts +2 -2
  330. package/front_end/ui/legacy/inspectorSyntaxHighlight.css +8 -11
  331. package/front_end/ui/legacy/tabbedPane.css +1 -0
  332. package/front_end/ui/legacy/themeColors.css +3 -1
  333. package/front_end/ui/legacy/theme_support/theme_support_impl.ts +23 -229
  334. package/front_end/ui/legacy/toolbar.css +1 -0
  335. package/package.json +1 -1
  336. package/scripts/component_server/server.js +2 -2
  337. package/scripts/eslint_rules/lib/no_bound_component_methods.js +116 -0
  338. package/scripts/eslint_rules/tests/check_license_header_test.js +10 -8
  339. package/scripts/eslint_rules/tests/no_bound_component_methods_test.js +85 -0
  340. package/front_end/global_typings/intl_display_names.d.ts +0 -111
  341. package/front_end/ui/legacy/inspectorSyntaxHighlightDark.css +0 -270
@@ -6,7 +6,7 @@ import * as SDK from '../../core/sdk/sdk.js';
6
6
  import * as Protocol from '../../generated/protocol.js';
7
7
  import * as TextUtils from '../../models/text_utils/text_utils.js';
8
8
 
9
- import type {ConsoleViewMessage} from './ConsoleViewMessage.js';
9
+ import type {ConsoleGroupViewMessage, ConsoleViewMessage} from './ConsoleViewMessage.js';
10
10
 
11
11
  export type LevelsMask = {
12
12
  [x: string]: boolean,
@@ -68,13 +68,28 @@ export class ConsoleFilter {
68
68
  }
69
69
 
70
70
  if (message.type === SDK.ConsoleModel.FrontendMessageType.Command ||
71
- message.type === SDK.ConsoleModel.FrontendMessageType.Result || message.isGroupMessage()) {
71
+ message.type === SDK.ConsoleModel.FrontendMessageType.Result ||
72
+ message.type === Protocol.Runtime.ConsoleAPICalledEventType.EndGroup) {
72
73
  return true;
73
74
  }
75
+
74
76
  if (message.level && !this.levelsMask[message.level as string]) {
75
77
  return false;
76
78
  }
77
79
 
80
+ return this.applyFilter(viewMessage) || this.parentGroupHasMatch(viewMessage.consoleGroup());
81
+ }
82
+
83
+ // A message is visible if there is a match in any of the parent groups' titles.
84
+ parentGroupHasMatch(viewMessage: ConsoleGroupViewMessage|null): boolean {
85
+ if (viewMessage === null) {
86
+ return false;
87
+ }
88
+ return this.applyFilter(viewMessage) || this.parentGroupHasMatch(viewMessage.consoleGroup());
89
+ }
90
+
91
+ applyFilter(viewMessage: ConsoleViewMessage): boolean {
92
+ const message = viewMessage.consoleMessage();
78
93
  for (const filter of this.parsedFilters) {
79
94
  if (!filter.key) {
80
95
  if (filter.regex && viewMessage.matchesFilterRegex(filter.regex) === filter.negative) {
@@ -5,8 +5,9 @@
5
5
  import type * as SDK from '../../core/sdk/sdk.js';
6
6
 
7
7
  // VGA color palette
8
- const ANSI_COLORS = ['#000000', '#AA0000', '#00AA00', '#AA5500', '#0000AA', '#AA00AA', '#00AAAA', '#AAAAAA'];
9
- const ANSI_BRIGHT_COLORS = ['#555555', '#FF5555', '#55FF55', '#FFFF55', '#5555FF', '#FF55FF', '#55FFFF', '#FFFFFF'];
8
+ const ANSI_COLORS = ['black', 'red', 'green', 'yellow', 'blue', 'magenta', 'cyan', 'gray'];
9
+ const ANSI_BRIGHT_COLORS =
10
+ ['darkgray', 'lightred', 'lightgreen', 'lightyellow', 'lightblue', 'lightmagenta', 'lightcyan', 'white'];
10
11
 
11
12
  export type FormatToken = {
12
13
  type: 'generic'|'optimal',
@@ -167,11 +168,11 @@ export const format = (fmt: string, args: SDK.RemoteObject.RemoteObject[]): {
167
168
  default: {
168
169
  const color = ANSI_COLORS[code - 30] ?? ANSI_BRIGHT_COLORS[code - 90];
169
170
  if (color !== undefined) {
170
- currentStyle.set('color', color);
171
+ currentStyle.set('color', `var(--console-color-${color})`);
171
172
  } else {
172
173
  const background = ANSI_COLORS[code - 40] ?? ANSI_BRIGHT_COLORS[code - 100];
173
174
  if (background !== undefined) {
174
- currentStyle.set('background', background);
175
+ currentStyle.set('background-color', `var(--console-color-${background})`);
175
176
  }
176
177
  }
177
178
  break;
@@ -100,7 +100,7 @@ export class ConsolePinPane extends UI.ThrottledWidget.ThrottledWidget {
100
100
  }
101
101
  }
102
102
  contextMenu.editSection().appendItem(i18nString(UIStrings.removeAllExpressions), this.removeAllPins.bind(this));
103
- contextMenu.show();
103
+ void contextMenu.show();
104
104
  }
105
105
 
106
106
  private removeAllPins(): void {
@@ -115,7 +115,7 @@ export class ConsolePinPane extends UI.ThrottledWidget.ThrottledWidget {
115
115
  this.pins.delete(pin);
116
116
  this.savePins();
117
117
  if (newFocusedPin) {
118
- newFocusedPin.focus();
118
+ void newFocusedPin.focus();
119
119
  } else {
120
120
  this.liveExpressionButton.focus();
121
121
  }
@@ -127,7 +127,7 @@ export class ConsolePinPane extends UI.ThrottledWidget.ThrottledWidget {
127
127
  this.pins.add(pin);
128
128
  this.savePins();
129
129
  if (userGesture) {
130
- pin.focus();
130
+ void pin.focus();
131
131
  }
132
132
  this.update();
133
133
  }
@@ -213,7 +213,7 @@ export class ConsolePin {
213
213
  this.pinPreview.addEventListener('mouseleave', this.setHovered.bind(this, false), false);
214
214
  this.pinPreview.addEventListener('click', (event: Event) => {
215
215
  if (this.lastNode) {
216
- Common.Revealer.reveal(this.lastNode);
216
+ void Common.Revealer.reveal(this.lastNode);
217
217
  event.consume();
218
218
  }
219
219
  }, false);
@@ -113,7 +113,7 @@ export class ConsolePrompt extends Common.ObjectWrapper.eventMixin<EventTypes, t
113
113
  const enabled = this.eagerEvalSetting.get();
114
114
  this.eagerPreviewElement.classList.toggle('hidden', !enabled);
115
115
  if (enabled) {
116
- this.requestPreview();
116
+ void this.requestPreview();
117
117
  }
118
118
  }
119
119
 
@@ -210,7 +210,7 @@ export class ConsolePrompt extends Common.ObjectWrapper.eventMixin<EventTypes, t
210
210
  {
211
211
  key: 'Enter',
212
212
  run: (): boolean => {
213
- this.handleEnter();
213
+ void this.handleEnter();
214
214
  return true;
215
215
  },
216
216
  shift: CodeMirror.insertNewlineAndIndent,
@@ -269,7 +269,7 @@ export class ConsolePrompt extends Common.ObjectWrapper.eventMixin<EventTypes, t
269
269
  }
270
270
 
271
271
  private updatePromptIcon(): void {
272
- this.iconThrottler.schedule(async () => {
272
+ void this.iconThrottler.schedule(async () => {
273
273
  this.promptIcon.classList.toggle('console-prompt-incomplete', !(await this.enterWillEvaluate()));
274
274
  });
275
275
  }
@@ -280,7 +280,7 @@ export class ConsolePrompt extends Common.ObjectWrapper.eventMixin<EventTypes, t
280
280
  const executionContext = currentExecutionContext;
281
281
  const message = SDK.ConsoleModel.ConsoleModel.instance().addCommandMessage(executionContext, text);
282
282
  const expression = ObjectUI.JavaScriptREPL.JavaScriptREPL.preprocessExpression(text);
283
- SDK.ConsoleModel.ConsoleModel.instance().evaluateCommandInConsole(
283
+ void SDK.ConsoleModel.ConsoleModel.instance().evaluateCommandInConsole(
284
284
  executionContext, message, expression, useCommandLineAPI);
285
285
  if (ConsolePanel.instance().isShowing()) {
286
286
  Host.userMetrics.actionTaken(Host.UserMetrics.Action.CommandEvaluatedInConsolePanel);
@@ -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
  }