chrome-devtools-frontend 1.0.1023618 → 1.0.1024166

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 (344) hide show
  1. package/.eslintignore +1 -1
  2. package/.eslintrc.js +1 -0
  3. package/front_end/core/common/AppProvider.ts +1 -1
  4. package/front_end/core/common/Object.ts +7 -2
  5. package/front_end/core/common/SettingRegistration.ts +1 -1
  6. package/front_end/core/common/Settings.ts +2 -3
  7. package/front_end/core/host/InspectorFrontendHost.ts +13 -5
  8. package/front_end/core/host/ResourceLoader.ts +1 -1
  9. package/front_end/core/i18n/locales/en-US.json +15 -0
  10. package/front_end/core/i18n/locales/en-XL.json +15 -0
  11. package/front_end/core/platform/UserVisibleError.ts +1 -1
  12. package/front_end/core/sdk/AccessibilityModel.ts +3 -4
  13. package/front_end/core/sdk/CPUProfileDataModel.ts +1 -1
  14. package/front_end/core/sdk/CPUProfilerModel.ts +3 -3
  15. package/front_end/core/sdk/CPUThrottlingManager.ts +2 -2
  16. package/front_end/core/sdk/CSSContainerQuery.ts +2 -2
  17. package/front_end/core/sdk/CSSLayer.ts +1 -1
  18. package/front_end/core/sdk/CSSMatchedStyles.ts +3 -3
  19. package/front_end/core/sdk/CSSMedia.ts +1 -1
  20. package/front_end/core/sdk/CSSModel.ts +6 -6
  21. package/front_end/core/sdk/CSSProperty.ts +2 -2
  22. package/front_end/core/sdk/CSSQuery.ts +2 -3
  23. package/front_end/core/sdk/CSSRule.ts +2 -2
  24. package/front_end/core/sdk/CSSScope.ts +1 -1
  25. package/front_end/core/sdk/CSSStyleDeclaration.ts +3 -3
  26. package/front_end/core/sdk/CSSStyleSheetHeader.ts +3 -3
  27. package/front_end/core/sdk/CSSSupports.ts +1 -1
  28. package/front_end/core/sdk/ChildTargetManager.ts +2 -2
  29. package/front_end/core/sdk/CompilerSourceMappingContentProvider.ts +1 -2
  30. package/front_end/core/sdk/ConsoleModel.ts +15 -12
  31. package/front_end/core/sdk/CookieModel.ts +4 -5
  32. package/front_end/core/sdk/DOMDebuggerModel.ts +7 -7
  33. package/front_end/core/sdk/DOMModel.ts +3 -3
  34. package/front_end/core/sdk/DebuggerModel.ts +5 -6
  35. package/front_end/core/sdk/EmulationModel.ts +2 -2
  36. package/front_end/core/sdk/EventBreakpointsModel.ts +4 -4
  37. package/front_end/core/sdk/FilmStripModel.ts +1 -2
  38. package/front_end/core/sdk/FrameAssociated.ts +1 -1
  39. package/front_end/core/sdk/FrameManager.ts +6 -6
  40. package/front_end/core/sdk/HeapProfilerModel.ts +4 -4
  41. package/front_end/core/sdk/IOModel.ts +2 -2
  42. package/front_end/core/sdk/IsolateManager.ts +3 -3
  43. package/front_end/core/sdk/IssuesModel.ts +1 -2
  44. package/front_end/core/sdk/LayerTreeBase.ts +3 -4
  45. package/front_end/core/sdk/LogModel.ts +1 -2
  46. package/front_end/core/sdk/NetworkManager.ts +18 -9
  47. package/front_end/core/sdk/NetworkRequest.ts +1 -2
  48. package/front_end/core/sdk/OverlayModel.ts +5 -5
  49. package/front_end/core/sdk/PageLoad.ts +1 -1
  50. package/front_end/core/sdk/PageResourceLoader.ts +3 -3
  51. package/front_end/core/sdk/PaintProfiler.ts +1 -2
  52. package/front_end/core/sdk/PerformanceMetricsModel.ts +1 -2
  53. package/front_end/core/sdk/ProfileTreeModel.ts +1 -1
  54. package/front_end/core/sdk/RemoteObject.ts +3 -3
  55. package/front_end/core/sdk/Resource.ts +2 -3
  56. package/front_end/core/sdk/ResourceTreeModel.ts +6 -7
  57. package/front_end/core/sdk/RuntimeModel.ts +5 -5
  58. package/front_end/core/sdk/SDKModel.ts +1 -1
  59. package/front_end/core/sdk/ScreenCaptureModel.ts +2 -2
  60. package/front_end/core/sdk/Script.ts +5 -6
  61. package/front_end/core/sdk/SecurityOriginManager.ts +1 -2
  62. package/front_end/core/sdk/ServerTiming.ts +1 -1
  63. package/front_end/core/sdk/ServiceWorkerCacheModel.ts +3 -3
  64. package/front_end/core/sdk/ServiceWorkerManager.ts +3 -4
  65. package/front_end/core/sdk/SourceMap.ts +2 -2
  66. package/front_end/core/sdk/SourceMapManager.ts +5 -5
  67. package/front_end/core/sdk/StorageKeyManager.ts +1 -2
  68. package/front_end/core/sdk/Target.ts +1 -1
  69. package/front_end/core/sdk/TargetManager.ts +1 -1
  70. package/front_end/core/sdk/TracingManager.ts +2 -3
  71. package/front_end/core/sdk/TracingModel.ts +1 -1
  72. package/front_end/core/sdk/WebAuthnModel.ts +1 -2
  73. package/front_end/entrypoints/formatter_worker/CSSFormatter.ts +1 -1
  74. package/front_end/entrypoints/formatter_worker/CSSRuleParser.ts +1 -2
  75. package/front_end/entrypoints/formatter_worker/FormatterWorker.ts +1 -1
  76. package/front_end/entrypoints/formatter_worker/HTMLFormatter.ts +1 -1
  77. package/front_end/entrypoints/formatter_worker/IdentityFormatter.ts +1 -1
  78. package/front_end/entrypoints/formatter_worker/JSONFormatter.ts +1 -1
  79. package/front_end/entrypoints/formatter_worker/JavaScriptFormatter.ts +2 -3
  80. package/front_end/entrypoints/formatter_worker/JavaScriptOutline.ts +1 -1
  81. package/front_end/entrypoints/formatter_worker/ScopeParser.ts +2 -2
  82. package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshot.ts +1 -1
  83. package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshotLoader.ts +3 -3
  84. package/front_end/models/bindings/BreakpointManager.ts +2 -2
  85. package/front_end/models/bindings/CSSWorkspaceBinding.ts +5 -2
  86. package/front_end/models/bindings/CompilerScriptMapping.ts +5 -1
  87. package/front_end/models/bindings/DebuggerLanguagePlugins.ts +2 -2
  88. package/front_end/models/bindings/DebuggerWorkspaceBinding.ts +4 -4
  89. package/front_end/models/bindings/DefaultScriptMapping.ts +1 -1
  90. package/front_end/models/bindings/IgnoreListManager.ts +1 -1
  91. package/front_end/models/bindings/PresentationConsoleMessageHelper.ts +2 -2
  92. package/front_end/models/bindings/ResourceScriptMapping.ts +2 -4
  93. package/front_end/models/bindings/SASSSourceMapping.ts +2 -2
  94. package/front_end/models/bindings/StylesSourceMapping.ts +1 -1
  95. package/front_end/models/bindings/TempFile.ts +1 -2
  96. package/front_end/models/emulation/DeviceModeModel.ts +8 -2
  97. package/front_end/models/extensions/ExtensionPanel.ts +1 -1
  98. package/front_end/models/extensions/ExtensionServer.ts +3 -3
  99. package/front_end/models/extensions/ExtensionView.ts +1 -1
  100. package/front_end/models/extensions/LanguageExtensionEndpoint.ts +1 -1
  101. package/front_end/models/extensions/RecorderPluginManager.ts +1 -1
  102. package/front_end/models/formatter/SourceFormatter.ts +1 -2
  103. package/front_end/models/har/Importer.ts +1 -1
  104. package/front_end/models/har/Writer.ts +2 -2
  105. package/front_end/models/issues_manager/AttributionReportingIssue.ts +1 -1
  106. package/front_end/models/issues_manager/ClientHintIssue.ts +6 -2
  107. package/front_end/models/issues_manager/ContentSecurityPolicyIssue.ts +6 -2
  108. package/front_end/models/issues_manager/CookieIssue.ts +6 -2
  109. package/front_end/models/issues_manager/CorsIssue.ts +1 -1
  110. package/front_end/models/issues_manager/CrossOriginEmbedderPolicyIssue.ts +6 -2
  111. package/front_end/models/issues_manager/DeprecationIssue.ts +2 -2
  112. package/front_end/models/issues_manager/FederatedAuthRequestIssue.ts +6 -2
  113. package/front_end/models/issues_manager/GenericIssue.ts +6 -2
  114. package/front_end/models/issues_manager/HeavyAdIssue.ts +1 -1
  115. package/front_end/models/issues_manager/Issue.ts +1 -1
  116. package/front_end/models/issues_manager/IssueResolver.ts +2 -3
  117. package/front_end/models/issues_manager/IssuesManager.ts +1 -1
  118. package/front_end/models/issues_manager/LowTextContrastIssue.ts +1 -1
  119. package/front_end/models/issues_manager/MixedContentIssue.ts +1 -1
  120. package/front_end/models/issues_manager/NavigatorUserAgentIssue.ts +1 -1
  121. package/front_end/models/issues_manager/QuirksModeIssue.ts +1 -1
  122. package/front_end/models/issues_manager/RelatedIssue.ts +1 -1
  123. package/front_end/models/issues_manager/SharedArrayBufferIssue.ts +1 -1
  124. package/front_end/models/issues_manager/SourceFrameIssuesManager.ts +3 -3
  125. package/front_end/models/issues_manager/TrustedWebActivityIssue.ts +6 -2
  126. package/front_end/models/persistence/Automapping.ts +1 -2
  127. package/front_end/models/persistence/EditFileSystemView.ts +1 -1
  128. package/front_end/models/persistence/FileSystemWorkspaceBinding.ts +4 -4
  129. package/front_end/models/persistence/IsolatedFileSystem.ts +1 -2
  130. package/front_end/models/persistence/IsolatedFileSystemManager.ts +2 -2
  131. package/front_end/models/persistence/NetworkPersistenceManager.ts +1 -2
  132. package/front_end/models/persistence/PersistenceImpl.ts +1 -2
  133. package/front_end/models/persistence/PersistenceUtils.ts +1 -2
  134. package/front_end/models/persistence/WorkspaceSettingsTab.ts +2 -2
  135. package/front_end/models/text_utils/StaticContentProvider.ts +1 -1
  136. package/front_end/models/timeline_model/TimelineFrameModel.ts +2 -2
  137. package/front_end/models/timeline_model/TimelineProfileTree.ts +1 -1
  138. package/front_end/models/timeline_model/TracingLayerTree.ts +1 -1
  139. package/front_end/models/workspace/UISourceCode.ts +1 -2
  140. package/front_end/models/workspace/WorkspaceImpl.ts +1 -2
  141. package/front_end/panels/accessibility/AXBreadcrumbsPane.ts +1 -1
  142. package/front_end/panels/animation/AnimationGroupPreviewUI.ts +1 -1
  143. package/front_end/panels/animation/AnimationTimeline.ts +7 -2
  144. package/front_end/panels/animation/AnimationUI.ts +3 -3
  145. package/front_end/panels/application/ApplicationPanelCacheSection.ts +1 -1
  146. package/front_end/panels/application/ApplicationPanelSidebar.ts +13 -7
  147. package/front_end/panels/application/ApplicationPanelTreeElement.ts +1 -1
  148. package/front_end/panels/application/BackgroundServiceView.ts +1 -2
  149. package/front_end/panels/application/DatabaseQueryView.ts +1 -1
  150. package/front_end/panels/application/DatabaseTableView.ts +1 -1
  151. package/front_end/panels/application/IndexedDBViews.ts +9 -2
  152. package/front_end/panels/application/InterestGroupTreeElement.ts +1 -1
  153. package/front_end/panels/application/ReportingApiTreeElement.ts +1 -1
  154. package/front_end/panels/application/ResourcesPanel.ts +1 -1
  155. package/front_end/panels/application/TrustTokensTreeElement.ts +1 -1
  156. package/front_end/panels/application/components/FrameDetailsView.ts +9 -6
  157. package/front_end/panels/console/ConsoleFilter.ts +1 -1
  158. package/front_end/panels/console/ConsoleSidebar.ts +2 -3
  159. package/front_end/panels/console/ConsoleView.ts +2 -4
  160. package/front_end/panels/console/ConsoleViewMessage.ts +2 -2
  161. package/front_end/panels/console/ConsoleViewport.ts +1 -1
  162. package/front_end/panels/coverage/CoverageDecorationManager.ts +1 -1
  163. package/front_end/panels/coverage/CoverageListView.ts +1 -2
  164. package/front_end/panels/coverage/CoverageView.ts +1 -2
  165. package/front_end/panels/css_overview/CSSOverviewCompletedView.ts +9 -5
  166. package/front_end/panels/css_overview/CSSOverviewController.ts +2 -2
  167. package/front_end/panels/css_overview/CSSOverviewModel.ts +3 -3
  168. package/front_end/panels/css_overview/CSSOverviewPanel.ts +4 -5
  169. package/front_end/panels/css_overview/CSSOverviewProcessingView.ts +1 -2
  170. package/front_end/panels/elements/ColorSwatchPopoverIcon.ts +3 -3
  171. package/front_end/panels/elements/ComputedStyleWidget.ts +3 -4
  172. package/front_end/panels/elements/ElementsPanel.ts +7 -4
  173. package/front_end/panels/elements/ElementsSidebarPane.ts +1 -2
  174. package/front_end/panels/elements/ElementsTreeElement.ts +3 -4
  175. package/front_end/panels/elements/ElementsTreeOutline.ts +1 -1
  176. package/front_end/panels/elements/PlatformFontsWidget.ts +1 -2
  177. package/front_end/panels/elements/StyleEditorWidget.ts +2 -2
  178. package/front_end/panels/elements/StylePropertiesSection.ts +1 -2
  179. package/front_end/panels/elements/StylePropertyHighlighter.ts +2 -2
  180. package/front_end/panels/elements/StylePropertyTreeElement.ts +2 -3
  181. package/front_end/panels/elements/StylesSidebarPane.ts +39 -8
  182. package/front_end/panels/elements/TopLayerContainer.ts +1 -1
  183. package/front_end/panels/elements/components/AdornerSettingsPane.ts +1 -1
  184. package/front_end/panels/elements/components/ElementsBreadcrumbs.ts +2 -3
  185. package/front_end/panels/elements/components/ElementsBreadcrumbsUtils.ts +1 -1
  186. package/front_end/panels/elements/components/LayoutPane.ts +1 -2
  187. package/front_end/panels/elements/components/QueryContainer.ts +1 -1
  188. package/front_end/panels/elements/components/StylePropertyEditor.ts +1 -2
  189. package/front_end/panels/emulation/AdvancedApp.ts +2 -2
  190. package/front_end/panels/emulation/DeviceModeWrapper.ts +1 -1
  191. package/front_end/panels/event_listeners/EventListenersView.ts +1 -2
  192. package/front_end/panels/issues/AffectedResourcesView.ts +2 -2
  193. package/front_end/panels/issues/CorsIssueDetailsView.ts +2 -2
  194. package/front_end/panels/issues/IssueView.ts +2 -2
  195. package/front_end/panels/issues/IssuesPane.ts +6 -2
  196. package/front_end/panels/layer_viewer/LayerDetailsView.ts +8 -2
  197. package/front_end/panels/layer_viewer/LayerTreeOutline.ts +7 -2
  198. package/front_end/panels/layer_viewer/Layers3DView.ts +9 -2
  199. package/front_end/panels/lighthouse/LighthouseController.ts +1 -1
  200. package/front_end/panels/lighthouse/LighthousePanel.ts +10 -6
  201. package/front_end/panels/lighthouse/LighthouseReportRenderer.ts +5 -1
  202. package/front_end/panels/lighthouse/LighthouseStartView.ts +1 -2
  203. package/front_end/panels/lighthouse/LighthouseStatusView.ts +1 -2
  204. package/front_end/panels/lighthouse/LighthouseTimespanView.ts +1 -2
  205. package/front_end/panels/media/EventDisplayTable.ts +1 -1
  206. package/front_end/panels/media/EventTimelineView.ts +9 -3
  207. package/front_end/panels/media/MainView.ts +1 -2
  208. package/front_end/panels/media/PlayerDetailView.ts +4 -3
  209. package/front_end/panels/media/PlayerListView.ts +2 -2
  210. package/front_end/panels/media/PlayerMessagesView.ts +76 -0
  211. package/front_end/panels/media/playerMessagesView.css +15 -0
  212. package/front_end/panels/mobile_throttling/MobileThrottlingSelector.ts +6 -2
  213. package/front_end/panels/mobile_throttling/NetworkThrottlingSelector.ts +1 -2
  214. package/front_end/panels/mobile_throttling/ThrottlingManager.ts +7 -4
  215. package/front_end/panels/network/NetworkDataGridNode.ts +1 -1
  216. package/front_end/panels/network/NetworkFrameGrouper.ts +1 -1
  217. package/front_end/panels/network/NetworkItemView.ts +1 -1
  218. package/front_end/panels/network/NetworkLogView.ts +10 -3
  219. package/front_end/panels/network/NetworkLogViewColumns.ts +7 -6
  220. package/front_end/panels/network/NetworkPanel.ts +3 -4
  221. package/front_end/panels/network/NetworkWaterfallColumn.ts +4 -4
  222. package/front_end/panels/network/RequestTimingView.ts +1 -2
  223. package/front_end/panels/profiler/BottomUpProfileDataGrid.ts +2 -3
  224. package/front_end/panels/profiler/CPUProfileView.ts +3 -3
  225. package/front_end/panels/profiler/HeapProfileView.ts +4 -5
  226. package/front_end/panels/profiler/HeapProfilerPanel.ts +2 -2
  227. package/front_end/panels/profiler/HeapSnapshotDataGrids.ts +4 -4
  228. package/front_end/panels/profiler/HeapSnapshotGridNodes.ts +11 -7
  229. package/front_end/panels/profiler/HeapSnapshotProxy.ts +1 -1
  230. package/front_end/panels/profiler/HeapSnapshotView.ts +13 -8
  231. package/front_end/panels/profiler/ProfileLauncherView.ts +2 -2
  232. package/front_end/panels/profiler/ProfileSidebarTreeElement.ts +6 -2
  233. package/front_end/panels/profiler/ProfileView.ts +6 -6
  234. package/front_end/panels/profiler/ProfilesPanel.ts +6 -2
  235. package/front_end/panels/profiler/TopDownProfileDataGrid.ts +1 -2
  236. package/front_end/panels/search/SearchResultsPane.ts +1 -1
  237. package/front_end/panels/search/SearchView.ts +1 -2
  238. package/front_end/panels/security/SecurityPanel.ts +7 -2
  239. package/front_end/panels/settings/SettingsScreen.ts +1 -1
  240. package/front_end/panels/settings/emulation/utils/UserAgentMetadata.ts +11 -2
  241. package/front_end/panels/sources/EditingLocationHistoryManager.ts +2 -2
  242. package/front_end/panels/sources/GoToLineQuickOpen.ts +1 -1
  243. package/front_end/panels/sources/InplaceFormatterEditorAction.ts +7 -2
  244. package/front_end/panels/sources/ScriptFormatterEditorAction.ts +7 -2
  245. package/front_end/panels/sources/SourcesNavigator.ts +1 -2
  246. package/front_end/panels/sources/SourcesPanel.ts +1 -1
  247. package/front_end/panels/sources/SourcesSearchScope.ts +3 -0
  248. package/front_end/panels/sources/SourcesView.ts +6 -2
  249. package/front_end/panels/sources/UISourceCodeFrame.ts +1 -1
  250. package/front_end/panels/timeline/CountersGraph.ts +2 -3
  251. package/front_end/panels/timeline/EventsTimelineTreeView.ts +2 -2
  252. package/front_end/panels/timeline/ExtensionTracingSession.ts +3 -3
  253. package/front_end/panels/timeline/TimelineDetailsView.ts +6 -6
  254. package/front_end/panels/timeline/TimelineEventOverview.ts +3 -3
  255. package/front_end/panels/timeline/TimelineFlameChartDataProvider.ts +3 -3
  256. package/front_end/panels/timeline/TimelineFlameChartNetworkDataProvider.ts +1 -1
  257. package/front_end/panels/timeline/TimelineFlameChartView.ts +6 -6
  258. package/front_end/panels/timeline/TimelineHistoryManager.ts +1 -1
  259. package/front_end/panels/timeline/TimelinePanel.ts +5 -5
  260. package/front_end/panels/timeline/TimelineTreeView.ts +2 -2
  261. package/front_end/panels/timeline/UIDevtoolsController.ts +1 -2
  262. package/front_end/panels/timeline/components/WebVitalsLane.ts +9 -2
  263. package/front_end/panels/timeline/components/WebVitalsTimeline.ts +1 -1
  264. package/front_end/panels/web_audio/graph_visualizer/EdgeView.ts +1 -1
  265. package/front_end/panels/web_audio/graph_visualizer/GraphView.ts +9 -3
  266. package/front_end/panels/web_audio/graph_visualizer/NodeRendererUtility.ts +2 -1
  267. package/front_end/panels/web_audio/graph_visualizer/NodeView.ts +3 -1
  268. package/front_end/third_party/.clang-format +1 -1
  269. package/front_end/third_party/i18n/localized-string-set.ts +1 -1
  270. package/front_end/ui/components/buttons/Button.ts +30 -5
  271. package/front_end/ui/components/buttons/button.css +16 -0
  272. package/front_end/ui/components/data_grid/DataGrid.ts +5 -1
  273. package/front_end/ui/components/data_grid/DataGridContextMenuUtils.ts +2 -2
  274. package/front_end/ui/components/data_grid/DataGridController.ts +12 -5
  275. package/front_end/ui/components/data_grid/DataGridControllerIntegrator.ts +1 -2
  276. package/front_end/ui/components/data_grid/DataGridEvents.ts +1 -1
  277. package/front_end/ui/components/data_grid/DataGridRenderers.ts +1 -1
  278. package/front_end/ui/components/docs/building-ui-documentation/CreatingComponents.md +112 -0
  279. package/front_end/ui/components/docs/building-ui-documentation/README.md +19 -0
  280. package/front_end/ui/components/docs/button/basic.html +11 -0
  281. package/front_end/ui/components/docs/button/basic.ts +7 -0
  282. package/front_end/ui/components/icon_button/IconButton.ts +1 -3
  283. package/front_end/ui/components/linear_memory_inspector/LinearMemoryInspector.ts +27 -13
  284. package/front_end/ui/components/linear_memory_inspector/LinearMemoryInspectorController.ts +9 -4
  285. package/front_end/ui/components/linear_memory_inspector/LinearMemoryInspectorPane.ts +10 -5
  286. package/front_end/ui/components/linear_memory_inspector/LinearMemoryValueInterpreter.ts +8 -7
  287. package/front_end/ui/components/linear_memory_inspector/LinearMemoryViewer.ts +1 -1
  288. package/front_end/ui/components/markdown_view/MarkdownImage.ts +1 -2
  289. package/front_end/ui/components/markdown_view/MarkdownView.ts +2 -4
  290. package/front_end/ui/components/tree_outline/TreeOutline.ts +3 -1
  291. package/front_end/ui/legacy/ActionRegistry.ts +1 -2
  292. package/front_end/ui/legacy/Context.ts +1 -1
  293. package/front_end/ui/legacy/ContextMenu.ts +2 -2
  294. package/front_end/ui/legacy/Dialog.ts +4 -4
  295. package/front_end/ui/legacy/DockController.ts +4 -4
  296. package/front_end/ui/legacy/FilterBar.ts +3 -3
  297. package/front_end/ui/legacy/FilterSuggestionBuilder.ts +1 -1
  298. package/front_end/ui/legacy/GlassPane.ts +3 -3
  299. package/front_end/ui/legacy/Infobar.ts +1 -1
  300. package/front_end/ui/legacy/InspectorView.ts +10 -10
  301. package/front_end/ui/legacy/ListControl.ts +2 -2
  302. package/front_end/ui/legacy/Panel.ts +1 -1
  303. package/front_end/ui/legacy/ShortcutRegistry.ts +2 -3
  304. package/front_end/ui/legacy/SoftDropDown.ts +4 -4
  305. package/front_end/ui/legacy/SplitWidget.ts +2 -2
  306. package/front_end/ui/legacy/SuggestBox.ts +2 -2
  307. package/front_end/ui/legacy/TabbedPane.ts +2 -2
  308. package/front_end/ui/legacy/TextPrompt.ts +1 -2
  309. package/front_end/ui/legacy/Toolbar.ts +2 -3
  310. package/front_end/ui/legacy/Treeoutline.ts +3 -3
  311. package/front_end/ui/legacy/UIUtils.ts +2 -3
  312. package/front_end/ui/legacy/View.ts +4 -4
  313. package/front_end/ui/legacy/ViewManager.ts +8 -8
  314. package/front_end/ui/legacy/ViewRegistration.ts +2 -2
  315. package/front_end/ui/legacy/XLink.ts +1 -1
  316. package/front_end/ui/legacy/components/color_picker/ContrastDetails.ts +1 -2
  317. package/front_end/ui/legacy/components/color_picker/ContrastOverlay.ts +1 -2
  318. package/front_end/ui/legacy/components/color_picker/Spectrum.ts +1 -1
  319. package/front_end/ui/legacy/components/data_grid/SortableDataGrid.ts +1 -2
  320. package/front_end/ui/legacy/components/data_grid/ViewportDataGrid.ts +1 -2
  321. package/front_end/ui/legacy/components/inline_editor/CSSAngle.ts +4 -5
  322. package/front_end/ui/legacy/components/inline_editor/CSSAngleEditor.ts +1 -1
  323. package/front_end/ui/legacy/components/inline_editor/CSSAngleSwatch.ts +1 -2
  324. package/front_end/ui/legacy/components/inline_editor/CSSLength.ts +1 -2
  325. package/front_end/ui/legacy/components/inline_editor/CSSShadowEditor.ts +1 -2
  326. package/front_end/ui/legacy/components/inline_editor/Swatches.ts +1 -1
  327. package/front_end/ui/legacy/components/perf_ui/FlameChart.ts +3 -4
  328. package/front_end/ui/legacy/components/perf_ui/OverviewGrid.ts +1 -2
  329. package/front_end/ui/legacy/components/perf_ui/TimelineOverviewPane.ts +2 -3
  330. package/front_end/ui/legacy/components/quick_open/QuickOpen.ts +1 -2
  331. package/front_end/ui/legacy/components/source_frame/ResourceSourceFrame.ts +1 -2
  332. package/inspector_overlay/css_grid_label_helpers.ts +1 -2
  333. package/inspector_overlay/highlight_common.ts +1 -1
  334. package/inspector_overlay/highlight_container_query.ts +3 -3
  335. package/inspector_overlay/highlight_flex_common.ts +12 -3
  336. package/inspector_overlay/highlight_grid_common.ts +3 -3
  337. package/inspector_overlay/highlight_isolated_element.ts +1 -1
  338. package/inspector_overlay/highlight_scroll_snap.ts +3 -3
  339. package/inspector_overlay/main.ts +6 -6
  340. package/inspector_overlay/tool_highlight.ts +26 -12
  341. package/inspector_overlay/tool_persistent.ts +13 -14
  342. package/inspector_overlay/tool_source_order.ts +3 -4
  343. package/package.json +1 -1
  344. package/scripts/protocol_typescript/protocol_dts_generator.ts +1 -1
@@ -18,11 +18,10 @@ import {BezierPopoverIcon, ColorSwatchPopoverIcon, ShadowSwatchPopoverHelper} fr
18
18
  import * as ElementsComponents from './components/components.js';
19
19
  import {ElementsPanel} from './ElementsPanel.js';
20
20
  import {StyleEditorWidget} from './StyleEditorWidget.js';
21
- import type {StylePropertiesSection} from './StylePropertiesSection.js';
21
+ import {type StylePropertiesSection} from './StylePropertiesSection.js';
22
22
  import {CSSPropertyPrompt, StylesSidebarPane, StylesSidebarPropertyRenderer} from './StylesSidebarPane.js';
23
23
  import {getCssDeclarationAsJavascriptProperty} from './StylePropertyUtils.js';
24
- import {cssRuleValidatorsMap} from './CSSRuleValidator.js';
25
- import type {AuthoringHint} from './CSSRuleValidator.js';
24
+ import {cssRuleValidatorsMap, type AuthoringHint} from './CSSRuleValidator.js';
26
25
 
27
26
  const FlexboxEditor = ElementsComponents.StylePropertyEditor.FlexboxEditor;
28
27
  const GridEditor = ElementsComponents.StylePropertyEditor.GridEditor;
@@ -51,8 +51,8 @@ import * as Components from '../../ui/legacy/components/utils/utils.js';
51
51
  import * as UI from '../../ui/legacy/legacy.js';
52
52
 
53
53
  import * as ElementsComponents from './components/components.js';
54
- import type {ComputedStyleChangedEvent} from './ComputedStyleModel.js';
55
- import {ComputedStyleModel} from './ComputedStyleModel.js';
54
+
55
+ import {ComputedStyleModel, type ComputedStyleChangedEvent} from './ComputedStyleModel.js';
56
56
  import {ElementsPanel} from './ElementsPanel.js';
57
57
  import {ElementsSidebarPane} from './ElementsSidebarPane.js';
58
58
  import {ImagePreviewPopover} from './ImagePreviewPopover.js';
@@ -60,7 +60,7 @@ import {StyleEditorWidget} from './StyleEditorWidget.js';
60
60
  import {StylePropertyHighlighter} from './StylePropertyHighlighter.js';
61
61
  import stylesSidebarPaneStyles from './stylesSidebarPane.css.js';
62
62
 
63
- import type {StylePropertyTreeElement} from './StylePropertyTreeElement.js';
63
+ import {type StylePropertyTreeElement} from './StylePropertyTreeElement.js';
64
64
  import {
65
65
  StylePropertiesSection,
66
66
  BlankStylePropertiesSection,
@@ -216,6 +216,7 @@ export class StylesSidebarPane extends Common.ObjectWrapper.eventMixin<EventType
216
216
  activeCSSAngle: InlineEditor.CSSAngle.CSSAngle|null;
217
217
  #urlToChangeTracker: Map<Platform.DevToolsPath.UrlString, ChangeTracker> = new Map();
218
218
  #copyChangesButton?: UI.Toolbar.ToolbarButton;
219
+ #updateAbortController?: AbortController;
219
220
 
220
221
  static instance(): StylesSidebarPane {
221
222
  if (!stylesSidebarPaneInstance) {
@@ -422,6 +423,7 @@ export class StylesSidebarPane extends Common.ObjectWrapper.eventMixin<EventType
422
423
  forceUpdate(): void {
423
424
  this.needsForceUpdate = true;
424
425
  this.swatchPopoverHelperInternal.hide();
426
+ this.#updateAbortController?.abort();
425
427
  this.resetCache();
426
428
  this.update();
427
429
  }
@@ -574,8 +576,17 @@ export class StylesSidebarPane extends Common.ObjectWrapper.eventMixin<EventType
574
576
  }
575
577
 
576
578
  async doUpdate(): Promise<void> {
579
+ this.#updateAbortController?.abort();
580
+ this.#updateAbortController = new AbortController();
581
+ await this.#innerDoUpdate(this.#updateAbortController.signal);
582
+ }
583
+
584
+ async #innerDoUpdate(signal: AbortSignal): Promise<void> {
577
585
  if (!this.initialUpdateCompleted) {
578
586
  window.setTimeout(() => {
587
+ if (signal.aborted) {
588
+ return;
589
+ }
579
590
  if (!this.initialUpdateCompleted) {
580
591
  // the spinner will get automatically removed when innerRebuildUpdate is called
581
592
  this.sectionsContainer.createChild('span', 'spinner');
@@ -590,9 +601,22 @@ export class StylesSidebarPane extends Common.ObjectWrapper.eventMixin<EventType
590
601
  const [computedStyles, parentsComputedStyles] =
591
602
  await Promise.all([this.fetchComputedStylesFor(node), this.fetchComputedStylesFor(parentNode)]);
592
603
 
604
+ if (signal.aborted) {
605
+ return;
606
+ }
607
+
593
608
  const matchedStyles = await this.fetchMatchedCascade();
594
609
 
595
- await this.innerRebuildUpdate(matchedStyles, computedStyles, parentsComputedStyles);
610
+ if (signal.aborted) {
611
+ return;
612
+ }
613
+
614
+ await this.innerRebuildUpdate(signal, matchedStyles, computedStyles, parentsComputedStyles);
615
+
616
+ if (signal.aborted) {
617
+ return;
618
+ }
619
+
596
620
  if (!this.initialUpdateCompleted) {
597
621
  this.initialUpdateCompleted = true;
598
622
  this.appendToolbarItem(this.createRenderingShortcuts());
@@ -604,6 +628,8 @@ export class StylesSidebarPane extends Common.ObjectWrapper.eventMixin<EventType
604
628
  this.dispatchEventToListeners(Events.InitialUpdateCompleted);
605
629
  }
606
630
 
631
+ this.nodeStylesUpdatedForTest((this.node() as SDK.DOMModel.DOMNode), true);
632
+
607
633
  this.dispatchEventToListeners(Events.StylesUpdateCompleted, {hasMatchedStyles: this.hasMatchedStyles});
608
634
  }
609
635
 
@@ -734,8 +760,8 @@ export class StylesSidebarPane extends Common.ObjectWrapper.eventMixin<EventType
734
760
  }
735
761
 
736
762
  private async innerRebuildUpdate(
737
- matchedStyles: SDK.CSSMatchedStyles.CSSMatchedStyles|null, computedStyles: Map<string, string>|null,
738
- parentsComputedStyles: Map<string, string>|null): Promise<void> {
763
+ signal: AbortSignal, matchedStyles: SDK.CSSMatchedStyles.CSSMatchedStyles|null,
764
+ computedStyles: Map<string, string>|null, parentsComputedStyles: Map<string, string>|null): Promise<void> {
739
765
  // ElementsSidebarPane's throttler schedules this method. Usually,
740
766
  // rebuild is suppressed while editing (see onCSSModelChanged()), but we need a
741
767
  // 'force' flag since the currently running throttler process cannot be canceled.
@@ -759,9 +785,15 @@ export class StylesSidebarPane extends Common.ObjectWrapper.eventMixin<EventType
759
785
  return;
760
786
  }
761
787
 
762
- this.sectionBlocks = await this.rebuildSectionsForMatchedStyleRules(
788
+ const blocks = await this.rebuildSectionsForMatchedStyleRules(
763
789
  (matchedStyles as SDK.CSSMatchedStyles.CSSMatchedStyles), computedStyles, parentsComputedStyles);
764
790
 
791
+ if (signal.aborted) {
792
+ return;
793
+ }
794
+
795
+ this.sectionBlocks = blocks;
796
+
765
797
  // Style sections maybe re-created when flexbox editor is activated.
766
798
  // With the following code we re-bind the flexbox editor to the new
767
799
  // section with the same index as the previous section had.
@@ -813,7 +845,6 @@ export class StylesSidebarPane extends Common.ObjectWrapper.eventMixin<EventType
813
845
  } else {
814
846
  this.noMatchesElement.classList.toggle('hidden', this.sectionBlocks.length > 0);
815
847
  }
816
- this.nodeStylesUpdatedForTest((node as SDK.DOMModel.DOMNode), true);
817
848
  if (this.lastRevealedProperty) {
818
849
  this.decorator.highlightProperty(this.lastRevealedProperty);
819
850
  this.lastRevealedProperty = null;
@@ -9,7 +9,7 @@ import * as UI from '../../ui/legacy/legacy.js';
9
9
  import * as ElementsComponents from './components/components.js';
10
10
  import * as ElementsTreeOutline from './ElementsTreeOutline.js';
11
11
 
12
- import type {ElementsTreeElement} from './ElementsTreeElement.js';
12
+ import {type ElementsTreeElement} from './ElementsTreeElement.js';
13
13
 
14
14
  const UIStrings = {
15
15
  /**
@@ -8,7 +8,7 @@ import * as Input from '../../../ui/components/input/input.js';
8
8
  import * as LitHtml from '../../../ui/lit-html/lit-html.js';
9
9
  import adornerSettingsPaneStyles from './adornerSettingsPane.css.js';
10
10
 
11
- import type {AdornerSettingsMap} from './AdornerManager.js';
11
+ import {type AdornerSettingsMap} from './AdornerManager.js';
12
12
 
13
13
  const UIStrings = {
14
14
  /**
@@ -9,10 +9,9 @@ import * as LitHtml from '../../../ui/lit-html/lit-html.js';
9
9
 
10
10
  import elementsBreadcrumbsStyles from './elementsBreadcrumbs.css.js';
11
11
 
12
- import type {UserScrollPosition} from './ElementsBreadcrumbsUtils.js';
13
- import {crumbsToRender} from './ElementsBreadcrumbsUtils.js';
12
+ import {crumbsToRender, type UserScrollPosition} from './ElementsBreadcrumbsUtils.js';
14
13
  import type * as SDK from '../../../core/sdk/sdk.js';
15
- import type {DOMNode} from './Helper.js';
14
+ import {type DOMNode} from './Helper.js';
16
15
 
17
16
  import * as NodeText from '../../../ui/components/node_text/node_text.js';
18
17
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  import * as i18n from '../../../core/i18n/i18n.js';
6
6
 
7
- import type {DOMNode} from './Helper.js';
7
+ import {type DOMNode} from './Helper.js';
8
8
 
9
9
  const UIStrings = {
10
10
  /**
@@ -7,8 +7,7 @@ import * as ComponentHelpers from '../../../ui/components/helpers/helpers.js';
7
7
  import * as UI from '../../../ui/legacy/legacy.js';
8
8
  import * as LitHtml from '../../../ui/lit-html/lit-html.js';
9
9
 
10
- import type {BooleanSetting, EnumSetting, Setting} from './LayoutPaneUtils.js';
11
- import type {LayoutElement} from './LayoutPaneUtils.js';
10
+ import {type LayoutElement, type BooleanSetting, type EnumSetting, type Setting} from './LayoutPaneUtils.js';
12
11
 
13
12
  import layoutPaneStyles from '../layoutPane.css.js';
14
13
  import * as Input from '../../../ui/components/input/input.js';
@@ -8,7 +8,7 @@ import * as IconButton from '../../../ui/components/icon_button/icon_button.js';
8
8
  import * as NodeText from '../../../ui/components/node_text/node_text.js';
9
9
  import * as LitHtml from '../../../ui/lit-html/lit-html.js';
10
10
 
11
- import type {DOMNode} from './Helper.js';
11
+ import {type DOMNode} from './Helper.js';
12
12
  import queryContainerStyles from './queryContainer.css.js';
13
13
 
14
14
  const {render, html} = LitHtml;
@@ -8,8 +8,7 @@ import * as IconButton from '../../../ui/components/icon_button/icon_button.js';
8
8
  import * as LitHtml from '../../../ui/lit-html/lit-html.js';
9
9
  import stylePropertyEditorStyles from './stylePropertyEditor.css.js';
10
10
 
11
- import type {IconInfo} from './CSSPropertyIconResolver.js';
12
- import {findFlexContainerIcon, findGridContainerIcon} from './CSSPropertyIconResolver.js';
11
+ import {findFlexContainerIcon, findGridContainerIcon, type IconInfo} from './CSSPropertyIconResolver.js';
13
12
 
14
13
  const UIStrings = {
15
14
  /**
@@ -8,8 +8,8 @@ import * as UI from '../../ui/legacy/legacy.js';
8
8
  import * as ThemeSupport from '../../ui/legacy/theme_support/theme_support.js';
9
9
 
10
10
  import {DeviceModeWrapper} from './DeviceModeWrapper.js';
11
- import type {Bounds} from './InspectedPagePlaceholder.js';
12
- import {Events, InspectedPagePlaceholder} from './InspectedPagePlaceholder.js';
11
+
12
+ import {Events, InspectedPagePlaceholder, type Bounds} from './InspectedPagePlaceholder.js';
13
13
 
14
14
  let appInstance: AdvancedApp;
15
15
 
@@ -10,7 +10,7 @@ import type * as Protocol from '../../generated/protocol.js';
10
10
  import * as EmulationModel from '../../models/emulation/emulation.js';
11
11
 
12
12
  import {DeviceModeView} from './DeviceModeView.js';
13
- import type {InspectedPagePlaceholder} from './InspectedPagePlaceholder.js';
13
+ import {type InspectedPagePlaceholder} from './InspectedPagePlaceholder.js';
14
14
 
15
15
  let deviceModeWrapperInstance: DeviceModeWrapper;
16
16
 
@@ -15,8 +15,7 @@ import eventListenersViewStyles from './eventListenersView.css.js';
15
15
 
16
16
  import type * as Protocol from '../../generated/protocol.js';
17
17
 
18
- import type {FrameworkEventListenersObject} from './EventListenersUtils.js';
19
- import {frameworkEventListeners} from './EventListenersUtils.js';
18
+ import {frameworkEventListeners, type FrameworkEventListenersObject} from './EventListenersUtils.js';
20
19
 
21
20
  const UIStrings = {
22
21
  /**
@@ -16,8 +16,8 @@ import type * as NetworkForward from '../../panels/network/forward/forward.js';
16
16
  import type * as Protocol from '../../generated/protocol.js';
17
17
  import * as RequestLinkIcon from '../../ui/components/request_link_icon/request_link_icon.js';
18
18
 
19
- import type {IssueView} from './IssueView.js';
20
- import type {AggregatedIssue} from './IssueAggregator.js';
19
+ import {type IssueView} from './IssueView.js';
20
+ import {type AggregatedIssue} from './IssueAggregator.js';
21
21
 
22
22
  const UIStrings = {
23
23
  /**
@@ -11,8 +11,8 @@ import * as NetworkForward from '../../panels/network/forward/forward.js';
11
11
 
12
12
  import {AffectedItem, AffectedResourcesView} from './AffectedResourcesView.js';
13
13
 
14
- import type {AggregatedIssue} from './IssueAggregator.js';
15
- import type {IssueView} from './IssueView.js';
14
+ import {type AggregatedIssue} from './IssueAggregator.js';
15
+ import {type IssueView} from './IssueView.js';
16
16
 
17
17
  const UIStrings = {
18
18
  /**
@@ -32,8 +32,8 @@ import {CorsIssueDetailsView} from './CorsIssueDetailsView.js';
32
32
  import {GenericIssueDetailsView} from './GenericIssueDetailsView.js';
33
33
  import {AttributionReportingIssueDetailsView} from './AttributionReportingIssueDetailsView.js';
34
34
 
35
- import type {AggregatedIssue} from './IssueAggregator.js';
36
- import type {HiddenIssuesMenuData} from './components/HideIssuesMenu.js';
35
+ import {type AggregatedIssue} from './IssueAggregator.js';
36
+ import {type HiddenIssuesMenuData} from './components/HideIssuesMenu.js';
37
37
 
38
38
  const UIStrings = {
39
39
  /**
@@ -13,8 +13,12 @@ import {HiddenIssuesRow} from './HiddenIssuesRow.js';
13
13
  import issuesPaneStyles from './issuesPane.css.js';
14
14
  import issuesTreeStyles from './issuesTree.css.js';
15
15
 
16
- import type {AggregatedIssue, AggregationKey} from './IssueAggregator.js';
17
- import {Events as IssueAggregatorEvents, IssueAggregator} from './IssueAggregator.js';
16
+ import {
17
+ Events as IssueAggregatorEvents,
18
+ IssueAggregator,
19
+ type AggregatedIssue,
20
+ type AggregationKey,
21
+ } from './IssueAggregator.js';
18
22
  import {IssueView} from './IssueView.js';
19
23
  import {IssueKindView, getGroupIssuesByKindSetting, issueKindViewSortPriority} from './IssueKindView.js';
20
24
 
@@ -38,8 +38,14 @@ import layerDetailsViewStyles from './layerDetailsView.css.js';
38
38
 
39
39
  import type * as Protocol from '../../generated/protocol.js';
40
40
 
41
- import type {LayerView, LayerViewHost, Selection, SnapshotSelection} from './LayerViewHost.js';
42
- import {ScrollRectSelection, Type} from './LayerViewHost.js';
41
+ import {
42
+ ScrollRectSelection,
43
+ Type,
44
+ type LayerView,
45
+ type LayerViewHost,
46
+ type Selection,
47
+ type SnapshotSelection,
48
+ } from './LayerViewHost.js';
43
49
 
44
50
  const UIStrings = {
45
51
  /**
@@ -33,8 +33,13 @@ import * as i18n from '../../core/i18n/i18n.js';
33
33
  import type * as SDK from '../../core/sdk/sdk.js';
34
34
  import * as UI from '../../ui/legacy/legacy.js';
35
35
 
36
- import type {LayerView, LayerViewHost, Selection, SnapshotSelection} from './LayerViewHost.js';
37
- import {LayerSelection} from './LayerViewHost.js';
36
+ import {
37
+ LayerSelection,
38
+ type LayerView,
39
+ type LayerViewHost,
40
+ type Selection,
41
+ type SnapshotSelection,
42
+ } from './LayerViewHost.js';
38
43
 
39
44
  const UIStrings = {
40
45
  /**
@@ -39,8 +39,15 @@ import type * as Protocol from '../../generated/protocol.js';
39
39
  import type * as SDK from '../../core/sdk/sdk.js';
40
40
  import * as UI from '../../ui/legacy/legacy.js';
41
41
 
42
- import type {LayerView, LayerViewHost} from './LayerViewHost.js';
43
- import {LayerSelection, Selection, SnapshotSelection, Type, ScrollRectSelection} from './LayerViewHost.js';
42
+ import {
43
+ LayerSelection,
44
+ Selection,
45
+ SnapshotSelection,
46
+ Type,
47
+ ScrollRectSelection,
48
+ type LayerView,
49
+ type LayerViewHost,
50
+ } from './LayerViewHost.js';
44
51
  import {Events as TransformControllerEvents, TransformController} from './TransformController.js';
45
52
 
46
53
  const UIStrings = {
@@ -8,7 +8,7 @@ import * as Platform from '../../core/platform/platform.js';
8
8
  import * as SDK from '../../core/sdk/sdk.js';
9
9
  import * as Protocol from '../../generated/protocol.js';
10
10
 
11
- import type {ProtocolService} from './LighthouseProtocolService.js';
11
+ import {type ProtocolService} from './LighthouseProtocolService.js';
12
12
 
13
13
  const UIStrings = {
14
14
  /**
@@ -11,14 +11,18 @@ import * as EmulationModel from '../../models/emulation/emulation.js';
11
11
  import * as UI from '../../ui/legacy/legacy.js';
12
12
  import * as Emulation from '../emulation/emulation.js';
13
13
 
14
- import type {
15
- AuditProgressChangedEvent, PageAuditabilityChangedEvent, PageWarningsChangedEvent} from './LighthouseController.js';
16
- import {Events, LighthouseController} from './LighthouseController.js';
14
+ import {
15
+ Events,
16
+ LighthouseController,
17
+ type AuditProgressChangedEvent,
18
+ type PageAuditabilityChangedEvent,
19
+ type PageWarningsChangedEvent,
20
+ } from './LighthouseController.js';
17
21
  import lighthousePanelStyles from './lighthousePanel.css.js';
18
- import type {LighthouseRun} from './LighthouseProtocolService.js';
19
- import {ProtocolService} from './LighthouseProtocolService.js';
20
22
 
21
- import type {ReportJSON, RunnerResultArtifacts} from './LighthouseReporterTypes.js';
23
+ import {ProtocolService, type LighthouseRun} from './LighthouseProtocolService.js';
24
+
25
+ import {type ReportJSON, type RunnerResultArtifacts} from './LighthouseReporterTypes.js';
22
26
  import * as LighthouseReport from '../../third_party/lighthouse/report/report.js';
23
27
  import {LighthouseReportRenderer, LighthouseReportUIFeatures} from './LighthouseReportRenderer.js';
24
28
  import {Item, ReportSelector} from './LighthouseReportSelector.js';
@@ -13,7 +13,11 @@ import * as Components from '../../ui/legacy/components/utils/utils.js';
13
13
  import * as UI from '../../ui/legacy/legacy.js';
14
14
  import * as ThemeSupport from '../../ui/legacy/theme_support/theme_support.js';
15
15
  import * as Timeline from '../timeline/timeline.js';
16
- import type {RunnerResultArtifacts, NodeDetailsJSON, SourceLocationDetailsJSON} from './LighthouseReporterTypes.js';
16
+ import {
17
+ type RunnerResultArtifacts,
18
+ type NodeDetailsJSON,
19
+ type SourceLocationDetailsJSON,
20
+ } from './LighthouseReporterTypes.js';
17
21
 
18
22
  const UIStrings = {
19
23
  /**
@@ -7,8 +7,7 @@ import type * as Common from '../../core/common/common.js';
7
7
  import * as i18n from '../../core/i18n/i18n.js';
8
8
  import * as UI from '../../ui/legacy/legacy.js';
9
9
 
10
- import type {LighthouseController, Preset} from './LighthouseController.js';
11
- import {Events, Presets, RuntimeSettings} from './LighthouseController.js';
10
+ import {Events, Presets, RuntimeSettings, type LighthouseController, type Preset} from './LighthouseController.js';
12
11
  import {RadioSetting} from './RadioSetting.js';
13
12
 
14
13
  const UIStrings = {
@@ -8,8 +8,7 @@ import * as UI from '../../ui/legacy/legacy.js';
8
8
 
9
9
  import lighthouseDialogStyles from './lighthouseDialog.css.js';
10
10
 
11
- import type {LighthouseController} from './LighthouseController.js';
12
- import {Events, RuntimeSettings} from './LighthouseController.js';
11
+ import {Events, RuntimeSettings, type LighthouseController} from './LighthouseController.js';
13
12
 
14
13
  const UIStrings = {
15
14
  /**
@@ -5,8 +5,7 @@
5
5
  import * as i18n from '../../core/i18n/i18n.js';
6
6
  import * as UI from '../../ui/legacy/legacy.js';
7
7
 
8
- import type {LighthouseController} from './LighthouseController.js';
9
- import {Events} from './LighthouseController.js';
8
+ import {Events, type LighthouseController} from './LighthouseController.js';
10
9
  import lighthouseDialogStyles from './lighthouseDialog.css.js';
11
10
 
12
11
  const UIStrings = {
@@ -9,7 +9,7 @@ import * as UI from '../../ui/legacy/legacy.js';
9
9
 
10
10
  import eventDisplayTableStyles from './eventDisplayTable.css.js';
11
11
 
12
- import type {PlayerEvent} from './MediaModel.js';
12
+ import {type PlayerEvent} from './MediaModel.js';
13
13
 
14
14
  const UIStrings = {
15
15
  /**
@@ -4,9 +4,15 @@
4
4
 
5
5
  import * as i18n from '../../core/i18n/i18n.js';
6
6
 
7
- import type {PlayerEvent} from './MediaModel.js';
8
- import type {Event, EventProperties} from './TickingFlameChart.js';
9
- import {ColdColorScheme, HotColorScheme, TickingFlameChart} from './TickingFlameChart.js';
7
+ import {type PlayerEvent} from './MediaModel.js';
8
+
9
+ import {
10
+ ColdColorScheme,
11
+ HotColorScheme,
12
+ TickingFlameChart,
13
+ type Event,
14
+ type EventProperties,
15
+ } from './TickingFlameChart.js';
10
16
 
11
17
  // Has to be a double, see https://v8.dev/blog/react-cliff
12
18
  const NO_NORMALIZED_TIMESTAMP = -1.5;
@@ -7,8 +7,7 @@ import * as SDK from '../../core/sdk/sdk.js';
7
7
  import * as UI from '../../ui/legacy/legacy.js';
8
8
  import type * as Protocol from '../../generated/protocol.js';
9
9
 
10
- import type {PlayerEvent} from './MediaModel.js';
11
- import {MediaModel, Events} from './MediaModel.js';
10
+ import {MediaModel, Events, type PlayerEvent} from './MediaModel.js';
12
11
  import {PlayerDetailView} from './PlayerDetailView.js';
13
12
  import {PlayerListView} from './PlayerListView.js';
14
13
 
@@ -8,8 +8,8 @@ import type * as Protocol from '../../generated/protocol.js';
8
8
 
9
9
  import {PlayerEventsView} from './EventDisplayTable.js';
10
10
  import {PlayerEventsTimeline} from './EventTimelineView.js';
11
- import type {TriggerHandler} from './MainView.js';
12
- import type {PlayerEvent} from './MediaModel.js';
11
+ import {type TriggerHandler} from './MainView.js';
12
+ import {type PlayerEvent} from './MediaModel.js';
13
13
  import {PlayerMessagesView} from './PlayerMessagesView.js';
14
14
  import {PlayerPropertiesView} from './PlayerPropertiesView.js';
15
15
 
@@ -88,7 +88,8 @@ export class PlayerDetailView extends UI.TabbedPane.TabbedPane implements Trigge
88
88
  this.propertyView.onProperty(property);
89
89
  }
90
90
 
91
- onError(_error: Protocol.Media.PlayerError): void {
91
+ onError(error: Protocol.Media.PlayerError): void {
92
+ this.messageView.addError(error);
92
93
  }
93
94
 
94
95
  onMessage(message: Protocol.Media.PlayerMessage): void {
@@ -9,8 +9,8 @@ import playerListViewStyles from './playerListView.css.js';
9
9
 
10
10
  import type * as Protocol from '../../generated/protocol.js';
11
11
 
12
- import type {MainView, TriggerDispatcher} from './MainView.js';
13
- import type {PlayerEvent} from './MediaModel.js';
12
+ import {type MainView, type TriggerDispatcher} from './MainView.js';
13
+ import {type PlayerEvent} from './MediaModel.js';
14
14
  import {PlayerPropertyKeys} from './PlayerPropertiesView.js';
15
15
 
16
16
  const UIStrings = {
@@ -47,6 +47,26 @@ const UIStrings = {
47
47
  *@description Default text for user-text-entry for searching log messages.
48
48
  */
49
49
  filterLogMessages: 'Filter log messages',
50
+ /**
51
+ *@description The label for the group name that this error belongs to.
52
+ */
53
+ errorGroupLabel: 'Error Group:',
54
+ /**
55
+ *@description The label for the numeric code associated with this error.
56
+ */
57
+ errorCodeLabel: 'Error Code:',
58
+ /**
59
+ *@description The label for extra data associated with an error.
60
+ */
61
+ errorDataLabel: 'Data:',
62
+ /**
63
+ *@description The label for the stacktrace associated with the error.
64
+ */
65
+ errorStackLabel: 'Stacktrace:',
66
+ /**
67
+ *@description The label for a root cause error associated with this error.
68
+ */
69
+ errorCauseLabel: 'Caused by:',
50
70
  };
51
71
  const str_ = i18n.i18n.registerUIStrings('panels/media/PlayerMessagesView.ts', UIStrings);
52
72
  const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
@@ -318,6 +338,62 @@ export class PlayerMessagesView extends UI.Widget.VBox {
318
338
  UI.UIUtils.createTextChild(container, message.message);
319
339
  }
320
340
 
341
+ private errorToDiv(error: Protocol.Media.PlayerError): Element {
342
+ const entry = UI.Fragment.Fragment.build`
343
+ <div class="status-error-box">
344
+ <div class="status-error-field-labeled">
345
+ <span class="status-error-field-label" $="status-error-group"></span>
346
+ <span>${error.errorType}</span>
347
+ </div>
348
+ <div class="status-error-field-labeled">
349
+ <span class="status-error-field-label" $="status-error-code"></span>
350
+ <span>${error.code}</span>
351
+ </div>
352
+ <div class="status-error-field-labeled" $="status-error-data">
353
+ </div>
354
+ <div class="status-error-field-labeled" $="status-error-stack">
355
+ </div>
356
+ <div class="status-error-field-labeled" $="status-error-cause">
357
+ </div>
358
+ `;
359
+
360
+ entry.$('status-error-group').textContent = i18nString(UIStrings.errorGroupLabel);
361
+ entry.$('status-error-code').textContent = i18nString(UIStrings.errorCodeLabel);
362
+
363
+ if (Object.keys(error.data).length !== 0) {
364
+ const label = entry.$('status-error-data').createChild('span', 'status-error-field-label');
365
+ UI.UIUtils.createTextChild(label, i18nString(UIStrings.errorDataLabel));
366
+ const dataContent = entry.$('status-error-data').createChild('div');
367
+ for (const [key, value] of Object.entries(error.data)) {
368
+ const datumContent = dataContent.createChild('div');
369
+ UI.UIUtils.createTextChild(datumContent, `${key}: ${value}`);
370
+ }
371
+ }
372
+
373
+ if (error.stack.length !== 0) {
374
+ const label = entry.$('status-error-stack').createChild('span', 'status-error-field-label');
375
+ UI.UIUtils.createTextChild(label, i18nString(UIStrings.errorStackLabel));
376
+ const stackContent = entry.$('status-error-stack').createChild('div');
377
+ for (const stackEntry of error.stack) {
378
+ const frameBox = stackContent.createChild('div');
379
+ UI.UIUtils.createTextChild(frameBox, `${stackEntry.file}:${stackEntry.line}`);
380
+ }
381
+ }
382
+
383
+ if (error.cause.length !== 0) {
384
+ const label = entry.$('status-error-cause').createChild('span', 'status-error-field-label');
385
+ UI.UIUtils.createTextChild(label, i18nString(UIStrings.errorCauseLabel));
386
+ entry.$('status-error-cause').appendChild(this.errorToDiv(error.cause[0]));
387
+ }
388
+
389
+ return entry.element();
390
+ }
391
+
392
+ addError(error: Protocol.Media.PlayerError): void {
393
+ const container = this.bodyPanel.createChild('div', 'media-messages-message-container media-message-error');
394
+ container.appendChild(this.errorToDiv(error));
395
+ }
396
+
321
397
  wasShown(): void {
322
398
  super.wasShown();
323
399
  this.registerCSSFiles([playerMessagesViewStyles]);
@@ -66,3 +66,18 @@
66
66
  .media-messages-message-unselected {
67
67
  display: none;
68
68
  }
69
+
70
+ .status-error-box {
71
+ font-family: monospace;
72
+ border: 1px solid var(--color-details-hairline);
73
+ padding: 4px;
74
+ }
75
+
76
+ .status-error-field-label {
77
+ padding-right: 10px;
78
+ color: var(--color-text-secondary);
79
+ }
80
+
81
+ .status-error-field-labeled {
82
+ display: flex;
83
+ }
@@ -7,8 +7,12 @@ import * as SDK from '../../core/sdk/sdk.js';
7
7
 
8
8
  import {throttlingManager} from './ThrottlingManager.js';
9
9
 
10
- import type {Conditions, ConditionsList, MobileThrottlingConditionsGroup} from './ThrottlingPresets.js';
11
- import {ThrottlingPresets} from './ThrottlingPresets.js';
10
+ import {
11
+ ThrottlingPresets,
12
+ type Conditions,
13
+ type ConditionsList,
14
+ type MobileThrottlingConditionsGroup,
15
+ } from './ThrottlingPresets.js';
12
16
 
13
17
  const UIStrings = {
14
18
  /**