chrome-devtools-frontend 1.0.1548980 → 1.0.1550444

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 (323) hide show
  1. package/docs/contributing/settings-experiments-features.md +35 -0
  2. package/docs/styleguide/ux/components.md +53 -12
  3. package/docs/styleguide/ux/images/cards.png +0 -0
  4. package/docs/styleguide/ux/patterns.md +27 -0
  5. package/docs/ui_engineering.md +2 -2
  6. package/eslint.config.mjs +1 -0
  7. package/front_end/Tests.js +2 -0
  8. package/front_end/core/host/InspectorFrontendHost.ts +26 -558
  9. package/front_end/core/host/InspectorFrontendHostAPI.ts +6 -3
  10. package/front_end/core/host/InspectorFrontendHostStub.ts +558 -0
  11. package/front_end/core/host/ResourceLoader.ts +9 -23
  12. package/front_end/core/host/UserMetrics.ts +4 -4
  13. package/front_end/core/root/DevToolsContext.ts +4 -0
  14. package/front_end/core/root/Runtime.ts +10 -0
  15. package/front_end/core/sdk/CSSMatchedStyles.ts +2 -2
  16. package/front_end/core/sdk/CSSModel.ts +24 -24
  17. package/front_end/core/sdk/CSSPropertyParserMatchers.ts +11 -11
  18. package/front_end/core/sdk/CSSQuery.ts +1 -1
  19. package/front_end/core/sdk/CSSRule.ts +2 -2
  20. package/front_end/core/sdk/CSSStyleDeclaration.ts +1 -1
  21. package/front_end/core/sdk/CSSStyleSheetHeader.ts +1 -1
  22. package/front_end/core/sdk/DOMModel.ts +3 -0
  23. package/front_end/core/sdk/NetworkManager.ts +41 -41
  24. package/front_end/core/sdk/NetworkRequest.ts +4 -0
  25. package/front_end/core/sdk/OverlayModel.ts +2 -2
  26. package/front_end/core/sdk/PageResourceLoader.ts +71 -38
  27. package/front_end/core/sdk/SourceMap.ts +6 -0
  28. package/front_end/core/sdk/SourceMapCache.ts +21 -0
  29. package/front_end/core/sdk/SourceMapManager.ts +14 -7
  30. package/front_end/core/sdk/SourceMapScopesInfo.ts +6 -2
  31. package/front_end/core/sdk/TargetManager.ts +14 -2
  32. package/front_end/core/sdk/sdk-meta.ts +13 -0
  33. package/front_end/entrypoints/formatter_worker/FormatterActions.ts +1 -0
  34. package/front_end/entrypoints/formatter_worker/ScopeParser.ts +1 -1
  35. package/front_end/entrypoints/main/MainImpl.ts +5 -4
  36. package/front_end/foundation/Universe.ts +8 -1
  37. package/front_end/generated/Deprecation.ts +18 -4
  38. package/front_end/generated/InspectorBackendCommands.ts +38 -33
  39. package/front_end/generated/SupportedCSSProperties.js +41 -41
  40. package/front_end/generated/protocol-mapping.d.ts +20 -0
  41. package/front_end/generated/protocol-proxy-api.d.ts +17 -0
  42. package/front_end/generated/protocol.ts +146 -35
  43. package/front_end/models/ai_assistance/AiConversation.ts +5 -4
  44. package/front_end/models/ai_assistance/BuiltInAi.ts +79 -5
  45. package/front_end/models/ai_assistance/ChangeManager.ts +4 -4
  46. package/front_end/models/ai_assistance/ConversationHandler.ts +0 -15
  47. package/front_end/models/ai_assistance/agents/AiAgent.ts +9 -6
  48. package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +135 -3
  49. package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.ts +24 -0
  50. package/front_end/models/bindings/CompilerScriptMapping.ts +43 -0
  51. package/front_end/models/bindings/DebuggerWorkspaceBinding.ts +19 -0
  52. package/front_end/models/bindings/ResourceMapping.ts +73 -0
  53. package/front_end/models/bindings/ResourceScriptMapping.ts +50 -0
  54. package/front_end/models/issues_manager/AttributionReportingIssue.ts +6 -8
  55. package/front_end/models/issues_manager/BounceTrackingIssue.ts +4 -14
  56. package/front_end/models/issues_manager/ClientHintIssue.ts +5 -12
  57. package/front_end/models/issues_manager/ContentSecurityPolicyIssue.ts +5 -12
  58. package/front_end/models/issues_manager/CookieDeprecationMetadataIssue.ts +7 -14
  59. package/front_end/models/issues_manager/CookieIssue.ts +27 -30
  60. package/front_end/models/issues_manager/CorsIssue.ts +8 -17
  61. package/front_end/models/issues_manager/CrossOriginEmbedderPolicyIssue.ts +5 -8
  62. package/front_end/models/issues_manager/DeprecationIssue.ts +7 -14
  63. package/front_end/models/issues_manager/ElementAccessibilityIssue.ts +7 -14
  64. package/front_end/models/issues_manager/FederatedAuthRequestIssue.ts +4 -11
  65. package/front_end/models/issues_manager/FederatedAuthUserInfoRequestIssue.ts +4 -11
  66. package/front_end/models/issues_manager/GenericIssue.ts +28 -16
  67. package/front_end/models/issues_manager/HeavyAdIssue.ts +4 -11
  68. package/front_end/models/issues_manager/Issue.ts +12 -4
  69. package/front_end/models/issues_manager/IssueAggregator.ts +8 -2
  70. package/front_end/models/issues_manager/LowTextContrastIssue.ts +3 -10
  71. package/front_end/models/issues_manager/MixedContentIssue.ts +7 -13
  72. package/front_end/models/issues_manager/PartitioningBlobURLIssue.ts +4 -11
  73. package/front_end/models/issues_manager/PropertyRuleIssue.ts +6 -12
  74. package/front_end/models/issues_manager/QuirksModeIssue.ts +3 -10
  75. package/front_end/models/issues_manager/SRIMessageSignatureIssue.ts +7 -13
  76. package/front_end/models/issues_manager/SharedArrayBufferIssue.ts +4 -11
  77. package/front_end/models/issues_manager/SharedDictionaryIssue.ts +6 -13
  78. package/front_end/models/issues_manager/StylesheetLoadingIssue.ts +8 -13
  79. package/front_end/models/issues_manager/UnencodedDigestIssue.ts +2 -9
  80. package/front_end/models/issues_manager/descriptions/genericNavigationEntryMarkedSkippable.md +7 -0
  81. package/front_end/models/javascript_metadata/NativeFunctions.js +7 -16
  82. package/front_end/models/source_map_scopes/FunctionCodeResolver.snapshot.txt +98 -0
  83. package/front_end/models/source_map_scopes/FunctionCodeResolver.ts +270 -0
  84. package/front_end/models/source_map_scopes/source_map_scopes.ts +2 -0
  85. package/front_end/models/workspace/UISourceCode.ts +51 -44
  86. package/front_end/panels/ai_assistance/AiAssistancePanel.ts +76 -34
  87. package/front_end/panels/ai_assistance/aiAssistancePanel.css +1 -0
  88. package/front_end/panels/ai_assistance/components/ChatView.ts +23 -11
  89. package/front_end/panels/application/AppManifestView.ts +7 -6
  90. package/front_end/panels/application/ApplicationPanelSidebar.ts +21 -21
  91. package/front_end/panels/application/BackForwardCacheTreeElement.ts +2 -2
  92. package/front_end/panels/application/BounceTrackingMitigationsTreeElement.ts +2 -2
  93. package/front_end/panels/application/FrameDetailsView.ts +5 -6
  94. package/front_end/panels/application/InterestGroupTreeElement.ts +2 -2
  95. package/front_end/panels/application/OpenedWindowDetailsView.ts +2 -2
  96. package/front_end/panels/application/OriginTrialTreeView.ts +1 -1
  97. package/front_end/panels/application/PreloadingTreeElement.ts +3 -3
  98. package/front_end/panels/application/ReportingApiTreeElement.ts +2 -2
  99. package/front_end/panels/application/ServiceWorkerCacheTreeElement.ts +3 -3
  100. package/front_end/panels/application/ServiceWorkersView.ts +2 -2
  101. package/front_end/panels/application/SharedStorageListTreeElement.ts +2 -2
  102. package/front_end/panels/application/StorageBucketsTreeElement.ts +3 -3
  103. package/front_end/panels/application/StorageView.ts +2 -2
  104. package/front_end/panels/application/TrustTokensTreeElement.ts +4 -8
  105. package/front_end/panels/application/components/PermissionsPolicySection.ts +202 -158
  106. package/front_end/panels/application/components/ProtocolHandlersView.ts +118 -81
  107. package/front_end/panels/application/components/ServiceWorkerRouterView.ts +47 -41
  108. package/front_end/panels/application/components/SharedStorageMetadataView.ts +1 -1
  109. package/front_end/panels/application/components/StorageMetadataView.ts +31 -34
  110. package/front_end/panels/application/components/TrustTokensView.ts +77 -69
  111. package/front_end/panels/application/preloading/components/PreloadingGrid.ts +1 -1
  112. package/front_end/panels/application/preloading/components/RuleSetGrid.ts +1 -1
  113. package/front_end/panels/application/preloading/components/UsedPreloadingView.ts +1 -1
  114. package/front_end/panels/changes/ChangesSidebar.ts +2 -0
  115. package/front_end/panels/changes/CombinedDiffView.ts +2 -0
  116. package/front_end/panels/common/AnnotationManager.ts +71 -0
  117. package/front_end/panels/common/PersistenceUtils.ts +6 -7
  118. package/front_end/panels/common/common.ts +1 -0
  119. package/front_end/panels/console/ConsolePrompt.ts +4 -4
  120. package/front_end/panels/console/ConsoleView.ts +5 -4
  121. package/front_end/panels/console/ConsoleViewMessage.ts +16 -15
  122. package/front_end/panels/console/console-meta.ts +0 -13
  123. package/front_end/panels/console_counters/WarningErrorCounter.ts +2 -0
  124. package/front_end/panels/css_overview/CSSOverviewCompletedView.ts +1 -1
  125. package/front_end/panels/developer_resources/DeveloperResourcesView.ts +3 -1
  126. package/front_end/panels/elements/CSSRuleValidator.ts +7 -7
  127. package/front_end/panels/elements/CSSRuleValidatorHelper.ts +2 -2
  128. package/front_end/panels/elements/ColorSwatchPopoverIcon.ts +3 -3
  129. package/front_end/panels/elements/ElementsPanel.ts +49 -0
  130. package/front_end/panels/elements/ElementsTreeElement.ts +172 -121
  131. package/front_end/panels/elements/ElementsTreeOutline.ts +11 -3
  132. package/front_end/panels/elements/LayoutPane.ts +12 -10
  133. package/front_end/panels/elements/ShortcutTreeElement.ts +2 -2
  134. package/front_end/panels/elements/StyleEditorWidget.ts +2 -2
  135. package/front_end/panels/elements/StylePropertyTreeElement.ts +18 -18
  136. package/front_end/panels/elements/StylesSidebarPane.ts +4 -5
  137. package/front_end/panels/elements/TopLayerContainer.ts +2 -2
  138. package/front_end/panels/elements/components/AdornerManager.ts +3 -3
  139. package/front_end/panels/elements/components/ElementsBreadcrumbs.ts +1 -1
  140. package/front_end/panels/elements/components/ElementsTreeExpandButton.ts +1 -1
  141. package/front_end/panels/elements/components/QueryContainer.ts +1 -1
  142. package/front_end/panels/elements/components/StylePropertyEditor.ts +7 -7
  143. package/front_end/panels/emulation/DeviceModeWrapper.ts +48 -3
  144. package/front_end/panels/explain/components/ConsoleInsight.ts +6 -4
  145. package/front_end/panels/issues/AffectedResourcesView.ts +2 -2
  146. package/front_end/panels/issues/AttributionReportingIssueDetailsView.ts +2 -2
  147. package/front_end/panels/issues/IssueKindView.ts +2 -2
  148. package/front_end/panels/issues/IssueView.ts +4 -4
  149. package/front_end/panels/js_timeline/js_timeline-meta.ts +4 -2
  150. package/front_end/panels/linear_memory_inspector/components/LinearMemoryHighlightChipList.ts +28 -50
  151. package/front_end/panels/linear_memory_inspector/components/LinearMemoryInspector.ts +15 -11
  152. package/front_end/panels/linear_memory_inspector/components/LinearMemoryNavigator.ts +1 -1
  153. package/front_end/panels/linear_memory_inspector/components/LinearMemoryValueInterpreter.ts +1 -1
  154. package/front_end/panels/linear_memory_inspector/components/ValueInterpreterDisplay.ts +1 -1
  155. package/front_end/panels/media/PlayerListView.ts +100 -73
  156. package/front_end/panels/media/playerListView.css +5 -0
  157. package/front_end/panels/mobile_throttling/ThrottlingManager.ts +2 -2
  158. package/front_end/panels/mobile_throttling/ThrottlingSettingsTab.ts +4 -5
  159. package/front_end/panels/network/NetworkDataGridNode.ts +3 -3
  160. package/front_end/panels/network/NetworkFrameGrouper.ts +2 -2
  161. package/front_end/panels/network/NetworkItemView.ts +4 -4
  162. package/front_end/panels/network/NetworkLogViewColumns.ts +3 -3
  163. package/front_end/panels/network/RequestConditionsDrawer.ts +5 -5
  164. package/front_end/panels/network/RequestCookiesView.ts +2 -2
  165. package/front_end/panels/network/SignedExchangeInfoView.ts +2 -2
  166. package/front_end/panels/network/components/DirectSocketConnectionView.ts +17 -0
  167. package/front_end/panels/network/components/RequestTrustTokensView.ts +5 -6
  168. package/front_end/panels/network/resourceChunkView.css +4 -0
  169. package/front_end/panels/profiler/HeapSnapshotGridNodes.ts +3 -3
  170. package/front_end/panels/profiler/ProfileDataGrid.ts +2 -2
  171. package/front_end/panels/profiler/ProfilesPanel.ts +2 -2
  172. package/front_end/panels/protocol_monitor/JSONEditor.ts +1 -1
  173. package/front_end/panels/recorder/components/CreateRecordingView.ts +1 -1
  174. package/front_end/panels/recorder/components/ExtensionView.ts +1 -1
  175. package/front_end/panels/recorder/components/RecordingListView.ts +1 -1
  176. package/front_end/panels/recorder/components/RecordingView.ts +1 -1
  177. package/front_end/panels/recorder/components/StepView.ts +1 -1
  178. package/front_end/panels/screencast/ScreencastView.ts +8 -8
  179. package/front_end/panels/search/SearchView.ts +1 -1
  180. package/front_end/panels/security/CookieControlsTreeElement.ts +2 -2
  181. package/front_end/panels/security/CookieControlsView.ts +1 -1
  182. package/front_end/panels/security/CookieReportTreeElement.ts +2 -2
  183. package/front_end/panels/security/SecurityPanel.ts +5 -5
  184. package/front_end/panels/security/SecurityPanelSidebar.ts +3 -4
  185. package/front_end/panels/sensors/LocationsSettingsTab.ts +1 -1
  186. package/front_end/panels/settings/FrameworkIgnoreListSettingsTab.ts +1 -1
  187. package/front_end/panels/settings/KeybindsSettingsTab.ts +5 -5
  188. package/front_end/panels/settings/SettingsScreen.ts +7 -8
  189. package/front_end/panels/settings/WorkspaceSettingsTab.ts +1 -1
  190. package/front_end/panels/settings/emulation/DevicesSettingsTab.ts +1 -1
  191. package/front_end/panels/snippets/SnippetsQuickOpen.ts +16 -6
  192. package/front_end/panels/sources/BreakpointEditDialog.ts +3 -3
  193. package/front_end/panels/sources/BreakpointsView.ts +1 -1
  194. package/front_end/panels/sources/CSSPlugin.ts +4 -4
  195. package/front_end/panels/sources/CallStackSidebarPane.ts +4 -4
  196. package/front_end/panels/sources/DebuggerPausedMessage.ts +3 -3
  197. package/front_end/panels/sources/FilteredUISourceCodeListProvider.ts +40 -23
  198. package/front_end/panels/sources/GoToLineQuickOpen.ts +11 -5
  199. package/front_end/panels/sources/NavigatorView.ts +4 -4
  200. package/front_end/panels/sources/OpenFileQuickOpen.ts +11 -16
  201. package/front_end/panels/sources/OutlineQuickOpen.ts +23 -23
  202. package/front_end/panels/sources/ProfilePlugin.ts +21 -12
  203. package/front_end/panels/sources/SourcesView.ts +2 -2
  204. package/front_end/panels/sources/TabbedEditorContainer.ts +4 -5
  205. package/front_end/panels/sources/ThreadsSidebarPane.ts +2 -2
  206. package/front_end/panels/sources/UISourceCodeFrame.ts +5 -6
  207. package/front_end/panels/sources/filteredUISourceCodeListProvider.css +41 -0
  208. package/front_end/panels/timeline/TimelineHistoryManager.ts +2 -2
  209. package/front_end/panels/timeline/TimelinePanel.ts +29 -25
  210. package/front_end/panels/timeline/TimelineSelectorStatsView.ts +3 -3
  211. package/front_end/panels/timeline/components/CPUThrottlingSelector.ts +1 -1
  212. package/front_end/panels/timeline/components/LiveMetricsView.ts +1 -1
  213. package/front_end/panels/timeline/components/NetworkRequestTooltip.ts +1 -1
  214. package/front_end/panels/timeline/components/NetworkThrottlingSelector.ts +1 -1
  215. package/front_end/panels/timeline/components/OriginMap.ts +1 -1
  216. package/front_end/panels/timeline/components/insights/Checklist.ts +1 -1
  217. package/front_end/panels/timeline/components/insights/DOMSize.ts +1 -1
  218. package/front_end/panels/timeline/components/insights/ImageDelivery.ts +1 -1
  219. package/front_end/panels/timeline/components/insights/NetworkDependencyTree.ts +1 -1
  220. package/front_end/panels/timeline/components/insights/SlowCSSSelector.ts +2 -2
  221. package/front_end/panels/timeline/docs/flame_chart_migration.md +11 -16
  222. package/front_end/panels/timeline/overlays/components/EntriesLinkOverlay.ts +1 -1
  223. package/front_end/panels/timeline/overlays/components/EntryLabelOverlay.ts +1 -1
  224. package/front_end/panels/timeline/timeline-meta.ts +3 -2
  225. package/front_end/panels/utils/utils.ts +18 -3
  226. package/front_end/panels/whats_new/ReleaseNoteText.ts +10 -20
  227. package/front_end/panels/whats_new/resources/WNDT.md +8 -8
  228. package/front_end/third_party/chromium/README.chromium +1 -1
  229. package/front_end/third_party/puppeteer/third_party/mitt/README.chromium +1 -0
  230. package/front_end/third_party/puppeteer/third_party/parsel/README.chromium +1 -0
  231. package/front_end/third_party/puppeteer/third_party/rxjs/README.chromium +1 -0
  232. package/front_end/ui/components/adorners/Adorner.ts +21 -1
  233. package/front_end/ui/components/annotations/AnnotationRepository.ts +98 -0
  234. package/front_end/ui/components/annotations/AnnotationType.ts +10 -0
  235. package/front_end/ui/components/annotations/annotations.ts +6 -0
  236. package/front_end/ui/components/buttons/Button.ts +2 -2
  237. package/front_end/ui/components/buttons/FloatingButton.ts +2 -2
  238. package/front_end/ui/components/chrome_link/ChromeLink.ts +1 -1
  239. package/front_end/ui/components/dialogs/ButtonDialog.ts +1 -1
  240. package/front_end/ui/components/dialogs/Dialog.ts +1 -1
  241. package/front_end/ui/components/dialogs/ShortcutDialog.ts +1 -0
  242. package/front_end/ui/components/diff_view/DiffView.ts +1 -1
  243. package/front_end/ui/components/expandable_list/ExpandableList.ts +1 -1
  244. package/front_end/ui/components/highlighting/HighlightElement.ts +16 -2
  245. package/front_end/ui/components/highlighting/MarkupHighlight.ts +162 -0
  246. package/front_end/ui/components/highlighting/highlighting.ts +7 -0
  247. package/front_end/ui/components/icon_button/FileSourceIcon.ts +2 -2
  248. package/front_end/ui/components/icon_button/IconButton.ts +2 -2
  249. package/front_end/ui/components/icon_button/icon_button.ts +0 -2
  250. package/front_end/ui/components/issue_counter/IssueCounter.ts +2 -2
  251. package/front_end/ui/components/issue_counter/IssueLinkIcon.ts +2 -2
  252. package/front_end/ui/components/legacy_wrapper/LegacyWrapper.ts +1 -1
  253. package/front_end/ui/components/linkifier/LinkifierImpl.ts +1 -1
  254. package/front_end/ui/components/list/List.ts +184 -0
  255. package/front_end/ui/components/list/list.css +90 -0
  256. package/front_end/ui/components/{cards/cards.ts → list/lists.ts} +3 -3
  257. package/front_end/ui/components/markdown_view/CodeBlock.ts +1 -1
  258. package/front_end/ui/components/markdown_view/MarkdownImage.ts +4 -4
  259. package/front_end/ui/components/markdown_view/MarkdownLink.ts +1 -1
  260. package/front_end/ui/components/markdown_view/MarkdownView.ts +1 -1
  261. package/front_end/ui/components/menus/Menu.ts +1 -1
  262. package/front_end/ui/components/menus/SelectMenu.ts +1 -1
  263. package/front_end/ui/components/node_text/NodeText.ts +1 -1
  264. package/front_end/ui/components/panel_feedback/FeedbackButton.ts +1 -1
  265. package/front_end/ui/components/panel_feedback/PanelFeedback.ts +1 -1
  266. package/front_end/ui/components/panel_feedback/PreviewToggle.ts +1 -1
  267. package/front_end/ui/components/panel_introduction_steps/PanelIntroductionSteps.ts +1 -1
  268. package/front_end/ui/components/report_view/ReportView.ts +1 -1
  269. package/front_end/ui/components/request_link_icon/RequestLinkIcon.ts +2 -2
  270. package/front_end/ui/components/settings/SettingCheckbox.ts +1 -1
  271. package/front_end/ui/components/settings/SettingDeprecationWarning.ts +2 -2
  272. package/front_end/ui/components/snackbars/Snackbar.ts +1 -1
  273. package/front_end/ui/components/spinners/Spinner.ts +1 -1
  274. package/front_end/ui/components/srgb_overlay/SrgbOverlay.ts +1 -1
  275. package/front_end/ui/components/suggestion_input/SuggestionInput.ts +1 -0
  276. package/front_end/ui/components/survey_link/SurveyLink.ts +2 -2
  277. package/front_end/ui/components/switch/SwitchImpl.ts +1 -1
  278. package/front_end/ui/components/text_editor/TextEditor.ts +1 -0
  279. package/front_end/ui/components/text_editor/config.ts +2 -2
  280. package/front_end/ui/components/text_prompt/TextPrompt.ts +1 -1
  281. package/front_end/ui/components/tooltips/Tooltip.ts +1 -1
  282. package/front_end/ui/components/tree_outline/TreeOutline.ts +1 -1
  283. package/front_end/ui/kit/cards/Card.docs.ts +43 -0
  284. package/front_end/ui/{components/icon_button → kit/icons}/Icon.docs.ts +3 -4
  285. package/front_end/ui/{components/icon_button → kit/icons}/Icon.ts +6 -4
  286. package/front_end/ui/kit/kit.ts +6 -0
  287. package/front_end/ui/legacy/Infobar.ts +3 -3
  288. package/front_end/ui/legacy/InspectorView.ts +3 -3
  289. package/front_end/ui/legacy/SearchableView.ts +2 -2
  290. package/front_end/ui/legacy/SoftContextMenu.ts +5 -5
  291. package/front_end/ui/legacy/SoftDropDown.ts +2 -2
  292. package/front_end/ui/legacy/TabbedPane.ts +106 -8
  293. package/front_end/ui/legacy/Toolbar.ts +3 -3
  294. package/front_end/ui/legacy/Treeoutline.ts +2 -2
  295. package/front_end/ui/legacy/UIUtils.ts +4 -188
  296. package/front_end/ui/legacy/ViewManager.ts +27 -12
  297. package/front_end/ui/legacy/ViewRegistration.ts +21 -22
  298. package/front_end/ui/legacy/components/color_picker/ContrastDetails.ts +8 -8
  299. package/front_end/ui/legacy/components/color_picker/Spectrum.ts +4 -4
  300. package/front_end/ui/legacy/components/cookie_table/CookiesTable.ts +4 -4
  301. package/front_end/ui/legacy/components/inline_editor/FontEditor.ts +2 -2
  302. package/front_end/ui/legacy/components/inline_editor/Swatches.ts +5 -5
  303. package/front_end/ui/legacy/components/object_ui/CustomPreviewComponent.ts +3 -3
  304. package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +5 -4
  305. package/front_end/ui/legacy/components/perf_ui/LineLevelProfile.ts +73 -35
  306. package/front_end/ui/legacy/components/perf_ui/LiveHeapProfile.ts +11 -2
  307. package/front_end/ui/legacy/components/perf_ui/OverviewGrid.ts +3 -3
  308. package/front_end/ui/legacy/components/quick_open/CommandMenu.ts +23 -31
  309. package/front_end/ui/legacy/components/quick_open/FilteredListWidget.ts +11 -27
  310. package/front_end/ui/legacy/components/quick_open/HelpQuickOpen.ts +11 -15
  311. package/front_end/ui/legacy/components/quick_open/filteredListWidget.css +18 -65
  312. package/front_end/ui/legacy/components/source_frame/JSONView.ts +2 -1
  313. package/front_end/ui/legacy/components/utils/Linkifier.ts +3 -3
  314. package/front_end/ui/legacy/tabbedPane.css +10 -0
  315. package/front_end/ui/visual_logging/KnownContextValues.ts +3 -0
  316. package/inspector_overlay/README.md +3 -3
  317. package/mcp/HostBindings.ts +310 -0
  318. package/mcp/mcp.ts +18 -0
  319. package/mcp/tsconfig.json +6 -1
  320. package/package.json +26 -24
  321. /package/front_end/ui/{components → kit}/cards/Card.ts +0 -0
  322. /package/front_end/ui/{components → kit}/cards/card.css +0 -0
  323. /package/front_end/ui/{components/icon_button → kit/icons}/icon.css +0 -0
@@ -0,0 +1,41 @@
1
+ /*
2
+ * Copyright 2025 The Chromium Authors
3
+ * Use of this source code is governed by a BSD-style license that can be
4
+ * found in the LICENSE file.
5
+ */
6
+
7
+ .filtered-list-widget-item > .filtered-ui-source-code-list-item {
8
+ align-content: center;
9
+ display: grid;
10
+ gap: var(--sys-size-2);
11
+ line-height: initial;
12
+ }
13
+
14
+ .filtered-ui-source-code-list-item.is-ignore-listed * {
15
+ color: var(--sys-color-state-disabled);
16
+ }
17
+
18
+ .filtered-ui-source-code-title {
19
+ overflow: hidden;
20
+ text-overflow: ellipsis;
21
+ }
22
+
23
+ .filtered-ui-source-code-title:not(.search-mode) {
24
+ font-weight: var(--ref-typeface-weight-bold);
25
+ }
26
+
27
+ .filtered-ui-source-code-subtitle {
28
+ flex: none;
29
+ overflow: hidden;
30
+ text-overflow: ellipsis;
31
+ color: var(--sys-color-on-surface-subtle);
32
+ padding-left: var(--sys-size-3);
33
+ display: flex;
34
+ white-space: pre;
35
+ }
36
+
37
+ .filtered-ui-source-code-subtitle .first-part {
38
+ flex-shrink: 1000;
39
+ overflow: hidden;
40
+ text-overflow: ellipsis;
41
+ }
@@ -7,7 +7,7 @@ import * as Common from '../../core/common/common.js';
7
7
  import * as i18n from '../../core/i18n/i18n.js';
8
8
  import * as Platform from '../../core/platform/platform.js';
9
9
  import * as Trace from '../../models/trace/trace.js';
10
- import * as IconButton from '../../ui/components/icon_button/icon_button.js';
10
+ import {createIcon} from '../../ui/kit/kit.js';
11
11
  import * as UI from '../../ui/legacy/legacy.js';
12
12
  import * as VisualLogging from '../../ui/visual_logging/visual_logging.js';
13
13
 
@@ -582,7 +582,7 @@ export class DropDown implements UI.ListControl.ListDelegate<number> {
582
582
 
583
583
  div.style.width = `${previewWidth}px`;
584
584
 
585
- const icon = IconButton.Icon.create('arrow-back');
585
+ const icon = createIcon('arrow-back');
586
586
  icon.title = i18nString(UIStrings.backButtonTooltip);
587
587
  icon.classList.add('back-arrow');
588
588
  div.appendChild(icon);
@@ -431,8 +431,11 @@ export class TimelinePanel extends Common.ObjectWrapper.eventMixin<EventTypes, t
431
431
  #onMainEntryHovered: (event: Common.EventTarget.EventTargetEvent<number>) => void;
432
432
  #hiddenTracksInfoBarByParsedTrace = new WeakMap<Trace.TraceModel.ParsedTrace, UI.Infobar.Infobar|'DISMISSED'>();
433
433
 
434
- constructor(traceModel?: Trace.TraceModel.Model) {
434
+ readonly #resourceLoader: SDK.PageResourceLoader.ResourceLoader;
435
+
436
+ constructor(resourceLoader: SDK.PageResourceLoader.ResourceLoader, traceModel?: Trace.TraceModel.Model) {
435
437
  super('timeline');
438
+ this.#resourceLoader = resourceLoader;
436
439
  this.registerRequiredCSS(timelinePanelStyles);
437
440
  const adornerContent = document.createElement('span');
438
441
  adornerContent.innerHTML = `<div style="
@@ -698,13 +701,16 @@ export class TimelinePanel extends Common.ObjectWrapper.eventMixin<EventTypes, t
698
701
  }
699
702
 
700
703
  static instance(opts: {
701
- forceNew: boolean|null,
704
+ forceNew: true,
705
+ resourceLoader: SDK.PageResourceLoader.ResourceLoader,
702
706
  traceModel?: Trace.TraceModel.Model,
703
- }|undefined = {forceNew: null}): TimelinePanel {
704
- const {forceNew} = opts;
707
+ }|undefined = undefined): TimelinePanel {
708
+ if (opts) {
709
+ timelinePanelInstance = new TimelinePanel(opts.resourceLoader, opts.traceModel);
710
+ }
705
711
 
706
- if (!timelinePanelInstance || forceNew) {
707
- timelinePanelInstance = new TimelinePanel(opts.traceModel);
712
+ if (!timelinePanelInstance) {
713
+ throw new Error('No TimelinePanel instance');
708
714
  }
709
715
 
710
716
  return timelinePanelInstance;
@@ -2105,8 +2111,6 @@ export class TimelinePanel extends Common.ObjectWrapper.eventMixin<EventTypes, t
2105
2111
  }
2106
2112
 
2107
2113
  Trace.Helpers.SyntheticEvents.SyntheticEventsManager.activate(syntheticEventsManager);
2108
- // Clear the line level profile that could exist from the previous trace.
2109
- PerfUI.LineLevelProfile.Performance.instance().reset();
2110
2114
 
2111
2115
  this.#minimapComponent.reset();
2112
2116
 
@@ -2164,20 +2168,15 @@ export class TimelinePanel extends Common.ObjectWrapper.eventMixin<EventTypes, t
2164
2168
  this.flameChart.bulkAddOverlays(currModificationManager.getOverlays());
2165
2169
  }
2166
2170
 
2167
- // Set up line level profiling with CPU profiles, if we found any.
2168
- PerfUI.LineLevelProfile.Performance.instance().reset();
2169
- if (parsedTrace.data.Samples.profilesInProcess.size) {
2170
- const primaryPageTarget = SDK.TargetManager.TargetManager.instance().primaryPageTarget();
2171
- // Gather up all CPU Profiles we found when parsing this trace.
2172
- const cpuProfiles =
2173
- Array.from(parsedTrace.data.Samples.profilesInProcess).flatMap(([_processId, threadsInProcess]) => {
2174
- const profiles = Array.from(threadsInProcess.values()).map(profileData => profileData.parsedProfile);
2175
- return profiles;
2176
- });
2177
- for (const profile of cpuProfiles) {
2178
- PerfUI.LineLevelProfile.Performance.instance().appendCPUProfile(profile, primaryPageTarget);
2179
- }
2180
- }
2171
+ // Set up line level profiling with CPU profiles.
2172
+ const primaryPageTarget = SDK.TargetManager.TargetManager.instance().primaryPageTarget();
2173
+ // Gather up all CPU Profiles we found when parsing this trace.
2174
+ const cpuProfiles =
2175
+ Array.from(parsedTrace.data.Samples.profilesInProcess).flatMap(([_processId, threadsInProcess]) => {
2176
+ const profiles = Array.from(threadsInProcess.values()).map(profileData => profileData.parsedProfile);
2177
+ return profiles;
2178
+ });
2179
+ PerfUI.LineLevelProfile.Performance.instance().initialize(cpuProfiles, primaryPageTarget);
2181
2180
 
2182
2181
  // Initialize EntityMapper
2183
2182
  this.#entityMapper = new Trace.EntityMapper.EntityMapper(parsedTrace);
@@ -2650,7 +2649,7 @@ export class TimelinePanel extends Common.ObjectWrapper.eventMixin<EventTypes, t
2650
2649
  initiatorUrl: script.url as Platform.DevToolsPath.UrlString
2651
2650
  };
2652
2651
  rawSourceMap = await SDK.SourceMapManager.tryLoadSourceMap(
2653
- script.sourceMapUrl as Platform.DevToolsPath.UrlString, initiator);
2652
+ this.#resourceLoader, script.sourceMapUrl as Platform.DevToolsPath.UrlString, initiator);
2654
2653
  }
2655
2654
 
2656
2655
  if (script.url && rawSourceMap) {
@@ -2747,8 +2746,13 @@ export class TimelinePanel extends Common.ObjectWrapper.eventMixin<EventTypes, t
2747
2746
  // non-final navigations during the trace will never have their source maps
2748
2747
  // fetched by the debugger model. That's only ever done here.
2749
2748
 
2750
- const initiator = {target: null, frameId: frame, initiatorUrl: sourceUrl};
2751
- const payload = await SDK.SourceMapManager.tryLoadSourceMap(sourceMapUrl, initiator);
2749
+ const initiator = {
2750
+ target: debuggerModelForFrameId.get(frame)?.target() ?? null,
2751
+ frameId: frame,
2752
+ initiatorUrl: sourceUrl
2753
+ };
2754
+ const payload = await SDK.SourceMapManager.tryLoadSourceMap(
2755
+ TimelinePanel.instance().#resourceLoader, sourceMapUrl, initiator);
2752
2756
  return payload ? new SDK.SourceMap.SourceMap(sourceUrl, sourceMapUrl, payload) : null;
2753
2757
  };
2754
2758
  }
@@ -235,7 +235,7 @@ export class TimelineSelectorStatsView extends UI.Widget.VBox {
235
235
  const nonMatches = timing[SelectorTimingsKey.MatchAttempts] - timing[SelectorTimingsKey.MatchCount];
236
236
  const slowPathNonMatches =
237
237
  (nonMatches ? 1.0 - timing[SelectorTimingsKey.FastRejectCount] / nonMatches : 0) * 100;
238
- const styleSheetId = timing[SelectorTimingsKey.StyleSheetId] as Protocol.CSS.StyleSheetId;
238
+ const styleSheetId = timing[SelectorTimingsKey.StyleSheetId] as Protocol.DOM.StyleSheetId;
239
239
  let linkData = '';
240
240
  const target = SDK.TargetManager.TargetManager.instance().primaryPageTarget();
241
241
  const cssModel = target?.model(SDK.CSSModel.CSSModel);
@@ -462,7 +462,7 @@ export class TimelineSelectorStatsView extends UI.Widget.VBox {
462
462
 
463
463
  private async processSelectorTimings(timings: Trace.Types.Events.SelectorTiming[]): Promise<SelectorTiming[]> {
464
464
  async function toSourceFileLocation(
465
- cssModel: SDK.CSSModel.CSSModel, styleSheetId: Protocol.CSS.StyleSheetId, selectorText: string,
465
+ cssModel: SDK.CSSModel.CSSModel, styleSheetId: Protocol.DOM.StyleSheetId, selectorText: string,
466
466
  selectorLocations: Map<string, Protocol.CSS.SourceRange[]>):
467
467
  Promise<Linkifier.Linkifier.LinkifierData[]|undefined> {
468
468
  if (!cssModel) {
@@ -505,7 +505,7 @@ export class TimelineSelectorStatsView extends UI.Widget.VBox {
505
505
 
506
506
  return await Promise.all(
507
507
  timings.sort((a, b) => b[SelectorTimingsKey.Elapsed] - a[SelectorTimingsKey.Elapsed]).map(async x => {
508
- const styleSheetId = x[SelectorTimingsKey.StyleSheetId] as Protocol.CSS.StyleSheetId;
508
+ const styleSheetId = x[SelectorTimingsKey.StyleSheetId] as Protocol.DOM.StyleSheetId;
509
509
  const selectorText = x[SelectorTimingsKey.Selector].trim();
510
510
  const locations = styleSheetId === 'n/a' ?
511
511
  null :
@@ -2,7 +2,7 @@
2
2
  // Use of this source code is governed by a BSD-style license that can be
3
3
  // found in the LICENSE file.
4
4
 
5
- import '../../../ui/components/icon_button/icon_button.js';
5
+ import '../../../ui/kit/kit.js';
6
6
  import '../../../ui/components/menus/menus.js';
7
7
 
8
8
  import * as Common from '../../../core/common/common.js';
@@ -5,7 +5,7 @@
5
5
  /* eslint-disable @devtools/no-lit-render-outside-of-view */
6
6
 
7
7
  import '../../../ui/components/settings/settings.js';
8
- import '../../../ui/components/icon_button/icon_button.js';
8
+ import '../../../ui/kit/kit.js';
9
9
  import './FieldSettingsDialog.js';
10
10
  import './NetworkThrottlingSelector.js';
11
11
  import '../../../ui/components/menus/menus.js';
@@ -3,7 +3,7 @@
3
3
  // found in the LICENSE file.
4
4
  /* eslint-disable @devtools/no-lit-render-outside-of-view */
5
5
 
6
- import '../../../ui/components/icon_button/icon_button.js';
6
+ import '../../../ui/kit/kit.js';
7
7
 
8
8
  import * as i18n from '../../../core/i18n/i18n.js';
9
9
  import * as Platform from '../../../core/platform/platform.js';
@@ -3,7 +3,7 @@
3
3
  // found in the LICENSE file.
4
4
  /* eslint-disable @devtools/no-lit-render-outside-of-view */
5
5
 
6
- import '../../../ui/components/icon_button/icon_button.js';
6
+ import '../../../ui/kit/kit.js';
7
7
  import '../../../ui/components/menus/menus.js';
8
8
 
9
9
  import * as Common from '../../../core/common/common.js';
@@ -4,7 +4,7 @@
4
4
  /* eslint-disable @devtools/no-imperative-dom-api */
5
5
  /* eslint-disable @devtools/no-lit-render-outside-of-view */
6
6
 
7
- import '../../../ui/components/icon_button/icon_button.js';
7
+ import '../../../ui/kit/kit.js';
8
8
 
9
9
  import * as i18n from '../../../core/i18n/i18n.js';
10
10
  import * as SDK from '../../../core/sdk/sdk.js';
@@ -7,7 +7,7 @@
7
7
  * @file A list of pass/fail conditions for an insight.
8
8
  */
9
9
 
10
- import '../../../../ui/components/icon_button/icon_button.js';
10
+ import '../../../../ui/kit/kit.js';
11
11
 
12
12
  import * as i18n from '../../../../core/i18n/i18n.js';
13
13
  import type * as Trace from '../../../../models/trace/trace.js';
@@ -2,7 +2,7 @@
2
2
  // Use of this source code is governed by a BSD-style license that can be
3
3
  // found in the LICENSE file.
4
4
 
5
- import '../../../../ui/components/icon_button/icon_button.js';
5
+ import '../../../../ui/kit/kit.js';
6
6
  import './Table.js';
7
7
  import './NodeLink.js';
8
8
 
@@ -2,7 +2,7 @@
2
2
  // Use of this source code is governed by a BSD-style license that can be
3
3
  // found in the LICENSE file.
4
4
 
5
- import '../../../../ui/components/icon_button/icon_button.js';
5
+ import '../../../../ui/kit/kit.js';
6
6
 
7
7
  import type {ImageDeliveryInsightModel} from '../../../../models/trace/insights/ImageDelivery.js';
8
8
  import * as Trace from '../../../../models/trace/trace.js';
@@ -4,7 +4,7 @@
4
4
 
5
5
  import './Table.js';
6
6
  import './NodeLink.js';
7
- import '../../../../ui/components/icon_button/icon_button.js';
7
+ import '../../../../ui/kit/kit.js';
8
8
 
9
9
  import * as i18n from '../../../../core/i18n/i18n.js';
10
10
  import type {
@@ -35,7 +35,7 @@ export class SlowCSSSelector extends BaseInsightComponent<SlowCSSSelectorInsight
35
35
  if (!cssModel) {
36
36
  return undefined;
37
37
  }
38
- const styleSheetHeader = cssModel.styleSheetHeaderForId(selector.style_sheet_id as Protocol.CSS.StyleSheetId);
38
+ const styleSheetHeader = cssModel.styleSheetHeaderForId(selector.style_sheet_id as Protocol.DOM.StyleSheetId);
39
39
  if (!styleSheetHeader?.resourceURL()) {
40
40
  return undefined;
41
41
  }
@@ -45,7 +45,7 @@ export class SlowCSSSelector extends BaseInsightComponent<SlowCSSSelectorInsight
45
45
  let ranges = this.#selectorLocations.get(key);
46
46
  if (!ranges) {
47
47
  const result = await cssModel.agent.invoke_getLocationForSelector(
48
- {selectorText: selector.selector, styleSheetId: selector.style_sheet_id as Protocol.CSS.StyleSheetId});
48
+ {selectorText: selector.selector, styleSheetId: selector.style_sheet_id as Protocol.DOM.StyleSheetId});
49
49
  if (result.getError() || !result.ranges) {
50
50
  return undefined;
51
51
  }
@@ -16,21 +16,20 @@ Flame chart data providers have two jobs:
16
16
 
17
17
  The main flame chart is currently being migrated to use the data of the new engine. This migration is supposed to be done on a track by track basis (https://crbug.com/1416533).
18
18
 
19
-
20
19
  ## Migrating a track from the main flame chart to use the new engine
21
20
 
22
21
  Migrating a track consists of taking the code in the data provider corresponding to a track (both the appending into the flame chart data and the handling of extra features) and moving it to a dedicated "track appender". Generally this boils down to these steps (note that steps 3 - 6 must be implemented together in the same change):
23
22
 
24
- 0. Add screenshot tests for the track. In order to ensure no regressions are introduced after a migration we use screenshot tests for expanded and collapsed track. See for example the [gpu_track_test](../../../test/interactions/panels/performance/timeline/gpu_track_test.ts).
23
+ 0. Add screenshot tests for the track. In order to ensure no regressions are introduced after a migration we use screenshot tests for expanded and collapsed track. See for example the [gpu_track_test](../../../test/interactions/panels/performance/timeline/gpu_track.test.ts).
25
24
 
26
- After adding the test file, you can run `npm run auto-screenshotstest` to generate the screenshot locally to check before submitting.
25
+ After adding the test file, you can run `npm run auto-screenshotstest` to generate the screenshot locally to check before submitting.
27
26
 
28
- Or you can upload to the Gerrit and after the screenshot tests fails, run `./scripts/tools/update_goldens.py` to update the screenshots.
29
- See [update_goldens.py](../../../scripts/tools/update_goldens.py) for more information.
27
+ Or you can upload to the Gerrit and after the screenshot tests fails, run `./scripts/tools/update_goldens.py` to update the screenshots.
28
+ See [update_goldens.py](../../../scripts/tools/update_goldens.py) for more information.
30
29
 
31
30
  1. Add missing related functionality to the new engine (not always needed).
32
31
 
33
- Whatever's needed to support using the new engine as source of data for the track being migrated. This could mean adding a new handler or buffering/exporting a new kind of event in a particular handler, for example.
32
+ Whatever's needed to support using the new engine as source of data for the track being migrated. This could mean adding a new handler or buffering/exporting a new kind of event in a particular handler, for example.
34
33
 
35
34
  2. Define a new appender for the track being migrated. Make sure the class implements the `CompatibilityTracksAppender.TrackAppender` interface. See for example the [TimingsTrackAppender](TimingsTrackAppender.ts).
36
35
 
@@ -38,24 +37,20 @@ Migrating a track consists of taking the code in the data provider corresponding
38
37
 
39
38
  4. Move the appending of the data track in the data provider into the new track appender:
40
39
 
41
- The data appending happens at the [appendLegacyTrackData method](https://source.chromium.org/chromium/_/chromium/devtools/devtools-frontend/+/3925b7d73681966c9a8c844c49c7e815ecdcff82:front_end/panels/timeline/TimelineFlameChartDataProvider.ts;l=528). The implementation for each track should be under the switch case with the track being migrated.
40
+ The data appending happens at the [appendLegacyTrackData method](https://source.chromium.org/chromium/_/chromium/devtools/devtools-frontend/+/3925b7d73681966c9a8c844c49c7e815ecdcff82:front_end/panels/timeline/TimelineFlameChartDataProvider.ts;l=528). The implementation for each track should be under the switch case with the track being migrated.
42
41
 
43
- The appending is usually the result of calling `appendSyncEvents` and/or `appendAsyncEventsGroup`. These two methods are commonly shared across tracks in the legacy system, and as such contain the handling of particular details of all tracks, which makes them very complex. To migrate a track to the new system, you will have to inspect the code paths invoked to append a track in the legacy system and extract them. The extracted code should be re-implemented in a functionally-equivalent way under the `appendTrackAtLevel` method implementation of the new track appender.
42
+ The appending is usually the result of calling `appendSyncEvents` and/or `appendAsyncEventsGroup`. These two methods are commonly shared across tracks in the legacy system, and as such contain the handling of particular details of all tracks, which makes them very complex. To migrate a track to the new system, you will have to inspect the code paths invoked to append a track in the legacy system and extract them. The extracted code should be re-implemented in a functionally-equivalent way under the `appendTrackAtLevel` method implementation of the new track appender.
44
43
 
45
- Note that there might be similarities in the way multiple track appenders "append" their data, in that case it would make sense to introduce new helpers that are shared between appenders to prevent code duplication.
44
+ Note that there might be similarities in the way multiple track appenders "append" their data, in that case it would make sense to introduce new helpers that are shared between appenders to prevent code duplication.
46
45
 
47
46
  5. Move the handling of the extra features.
48
47
 
49
- This is usually achieved by implementing the methods `colorForEvent`, `titleForEvent` and `popoverInfo`. Note how The implementation of these methods should be equivalent to the codepaths of the methods with the same names in the data provider related to the tracks/events being migrated. Here again we should look out for opportunities to introduce helpers to share between track appenders.
48
+ This is usually achieved by implementing the methods `colorForEvent`, `titleForEvent` and `popoverInfo`. Note how The implementation of these methods should be equivalent to the codepaths of the methods with the same names in the data provider related to the tracks/events being migrated. Here again we should look out for opportunities to introduce helpers to share between track appenders.
50
49
 
51
- Note: Queries done by the FlameChart renderer for events' extra features are passed from the data provider to the CompatibilityTracksAppender ([see example](https://source.chromium.org/chromium/_/chromium/devtools/devtools-frontend/+/3925b7d73681966c9a8c844c49c7e815ecdcff82:front_end/panels/timeline/TimelineFlameChartDataProvider.ts;l=1083)), which then [forwards](https://source.chromium.org/chromium/_/chromium/devtools/devtools-frontend/+/3925b7d73681966c9a8c844c49c7e815ecdcff82:front_end/panels/timeline/CompatibilityTracksAppender.ts;l=107) the query to the appropriate track appender.
50
+ Note: Queries done by the FlameChart renderer for events' extra features are passed from the data provider to the CompatibilityTracksAppender ([see example](https://source.chromium.org/chromium/_/chromium/devtools/devtools-frontend/+/3925b7d73681966c9a8c844c49c7e815ecdcff82:front_end/panels/timeline/TimelineFlameChartDataProvider.ts;l=1083)), which then [forwards](https://source.chromium.org/chromium/_/chromium/devtools/devtools-frontend/+/3925b7d73681966c9a8c844c49c7e815ecdcff82:front_end/panels/timeline/CompatibilityTracksAppender.ts;l=107) the query to the appropriate track appender.
52
51
 
53
52
  6. Look for any remaining references to the track, or events in the track being migrated, throughout [TimelineFlameChartDataProvider.ts](TimelineFlameChartDataProvider.ts). Make sure they have an equivalent in the new system and that it would be invoked at the same time as it was before the migration. There is no more specific rule that can be followed: each track needs to be checked independently.
54
53
 
55
-
56
54
  ### Things to look out for:
57
55
 
58
- * Timings: Trace events in the new engine uses raw timestamps coming from a trace. This means the new engine uses **microseconds**. However, most features in the panel use **milliseconds**. Make sure you make the appropriate time conversion when appending new tracks.
59
-
60
-
61
-
56
+ - Timings: Trace events in the new engine uses raw timestamps coming from a trace. This means the new engine uses **microseconds**. However, most features in the panel use **milliseconds**. Make sure you make the appropriate time conversion when appending new tracks.
@@ -1,7 +1,7 @@
1
1
  // Copyright 2024 The Chromium Authors
2
2
  // Use of this source code is governed by a BSD-style license that can be
3
3
  // found in the LICENSE file.
4
- import '../../../../ui/components/icon_button/icon_button.js';
4
+ import '../../../../ui/kit/kit.js';
5
5
 
6
6
  /* eslint-disable @devtools/no-lit-render-outside-of-view */
7
7
 
@@ -3,7 +3,7 @@
3
3
  // found in the LICENSE file.
4
4
  /* eslint-disable @devtools/no-lit-render-outside-of-view */
5
5
 
6
- import '../../../../ui/components/icon_button/icon_button.js';
6
+ import '../../../../ui/kit/kit.js';
7
7
  import '../../../../ui/components/tooltips/tooltips.js';
8
8
  import '../../../../ui/components/spinners/spinners.js';
9
9
 
@@ -87,9 +87,10 @@ UI.ViewManager.registerViewExtension({
87
87
  title: i18nLazyString(UIStrings.performance),
88
88
  commandPrompt: i18nLazyString(UIStrings.showPerformance),
89
89
  order: 50,
90
- async loadView() {
90
+ async loadView(universe) {
91
91
  const Timeline = await loadTimelineModule();
92
- return Timeline.TimelinePanel.TimelinePanel.instance();
92
+ const resourceLoader = universe.context.get(SDK.PageResourceLoader.PageResourceLoader);
93
+ return Timeline.TimelinePanel.TimelinePanel.instance({forceNew: true, resourceLoader});
93
94
  },
94
95
  });
95
96
 
@@ -2,6 +2,7 @@
2
2
  // Use of this source code is governed by a BSD-style license that can be
3
3
  // found in the LICENSE file.
4
4
 
5
+ import '../../ui/kit/kit.js';
5
6
  import '../../ui/components/icon_button/icon_button.js';
6
7
 
7
8
  import * as Common from '../../core/common/common.js';
@@ -42,6 +43,16 @@ const UIStrings = {
42
43
  * @example {3G} PH2
43
44
  */
44
45
  resourceTypeWithThrottling: '{PH1} (throttled to {PH2})',
46
+ /**
47
+ * @description Tooltip for a failed request
48
+ * @example {Document} PH1
49
+ */
50
+ requestFailed: '{PH1} request failed',
51
+ /**
52
+ * @description Tooltip for a failed request
53
+ * @example {Document} PH1
54
+ */
55
+ prefetchFailed: '{PH1} prefetch request failed',
45
56
  } as const;
46
57
 
47
58
  const str_ = i18n.i18n.registerUIStrings('panels/utils/utils.ts', UIStrings);
@@ -74,16 +85,19 @@ export class PanelUtils {
74
85
 
75
86
  if (PanelUtils.isFailedNetworkRequest(request)) {
76
87
  let iconName: string;
88
+ let title: string;
77
89
  // Failed prefetch network requests are displayed as warnings instead of errors.
78
90
  if (request.resourceType() === Common.ResourceType.resourceTypes.Prefetch) {
91
+ title = i18nString(UIStrings.prefetchFailed, {PH1: type.title()});
79
92
  iconName = 'warning-filled';
80
93
  } else {
94
+ title = i18nString(UIStrings.requestFailed, {PH1: type.title()});
81
95
  iconName = 'cross-circle-filled';
82
96
  }
83
97
 
84
98
  // clang-format off
85
99
  return html`<devtools-icon
86
- class="icon" name=${iconName} title=${type.title()}>
100
+ class="icon" name=${iconName} title=${title}> role=img
87
101
  </devtools-icon>`;
88
102
  // clang-format on
89
103
  }
@@ -93,6 +107,7 @@ export class PanelUtils {
93
107
  return html`<devtools-icon
94
108
  class="icon"
95
109
  name="warning-filled"
110
+ role=img
96
111
  title=${i18nString(UIStrings.thirdPartyPhaseout)}
97
112
  ></devtools-icon>`;
98
113
  // clang-format on
@@ -112,7 +127,7 @@ export class PanelUtils {
112
127
 
113
128
  // clang-format off
114
129
  return html`<div class="network-override-marker">
115
- <devtools-icon class="icon" name="document" title=${title}></devtools-icon>
130
+ <devtools-icon class="icon" name="document" role=img title=${title}></devtools-icon>
116
131
  </div>`;
117
132
  // clang-format on
118
133
  }
@@ -149,7 +164,7 @@ export class PanelUtils {
149
164
  Common.ResourceType.ResourceType.simplifyContentType(request.mimeType) === 'application/json') {
150
165
  // clang-format off
151
166
  return html`<devtools-icon
152
- class="icon" name="file-json" title=${iconTitleForRequest(request)}
167
+ class="icon" name="file-json" title=${iconTitleForRequest(request)} role=img
153
168
  style="color:var(--icon-file-script)">
154
169
  </devtools-icon>`;
155
170
  // clang-format on
@@ -40,32 +40,22 @@ export function getReleaseNote(): ReleaseNote {
40
40
  }
41
41
 
42
42
  let releaseNote: ReleaseNote = {
43
- version: 83,
44
- header: 'What\'s new in DevTools 142',
43
+ version: 143,
44
+ header: 'What\'s new in DevTools 143',
45
45
  markdownLinks: [
46
46
  {
47
- key: 'perf-ai-agent',
48
- link: 'https://developer.chrome.com/blog/new-in-devtools-142/#perf-ai-agent',
47
+ key: 'mcp-server',
48
+ link: 'https://developer.chrome.com/blog/new-in-devtools-143/#mcp-server',
49
49
  },
50
50
  {
51
- key: 'ai-code-completion',
52
- link: 'https://developer.chrome.com/blog/new-in-devtools-142/#ai-code-completion',
51
+ key: 'trace-sharing',
52
+ link: 'https://developer.chrome.com/blog/new-in-devtools-143/#trace-sharing',
53
53
  },
54
54
  {
55
- key: 'gdp',
56
- link: 'https://developer.chrome.com/blog/new-in-devtools-142/#gdp',
57
- },
58
- {
59
- key: 'ai-main-button',
60
- link: 'https://developer.chrome.com/blog/new-in-devtools-142/#ai-main-button',
61
- },
62
- ],
63
- videoLinks: [
64
- {
65
- description: 'See past highlights from Chrome 141',
66
- link: 'https://developer.chrome.com/blog/new-in-devtools-141' as Platform.DevToolsPath.UrlString,
67
- type: VideoType.WHATS_NEW,
55
+ key: 'starting-style',
56
+ link: 'https://developer.chrome.com/blog/new-in-devtools-143/#starting-style',
68
57
  },
69
58
  ],
70
- link: 'https://developer.chrome.com/blog/new-in-devtools-142/',
59
+ videoLinks: [],
60
+ link: 'https://developer.chrome.com/blog/new-in-devtools-143/',
71
61
  };
@@ -1,11 +1,11 @@
1
- ### [Full stack trace AI agent in Performance panel](perf-ai-agent)
2
- The Performance panel now integrates a more capable AI agent that has full access to the stack trace.
1
+ ### [MCP server](mcp-server)
3
2
 
4
- ### [AI code completion in Sources and Console](ai-code-completion)
5
- Code completion powered by AI is now available in the Sources panel and the Console.
3
+ Let your favourite coding agent debug your pages at runtime, using the Chrome DevTools MCP server.
6
4
 
7
- ### [Google Developer Program support](gdp)
8
- The Google Developer Program, a ready-made subscription and community platform, is now in DevTools, offering a more personalized experience, a badge system, and easier discovery of new features.
5
+ ### [Improved trace sharing](trace-sharing)
9
6
 
10
- ### [One main 'Debug with AI' button](ai-main-button)
11
- The primary action bar at the top of DevTools now features the primary "Debug with AI" button which opens the 'AI assistance' panel in a right-hand side bar.
7
+ Optionally include resource content and script source maps in exported performance traces.
8
+
9
+ ### [Support for @starting-style](starting-style)
10
+
11
+ Debug and identify CSS entry animations using the new adorner in the Elements panel.
@@ -1,7 +1,7 @@
1
1
  Name: Dependencies sourced from the upstream `chromium` repository
2
2
  URL: https://chromium.googlesource.com/chromium/src
3
3
  Version: N/A
4
- Revision: d967be56e70076834aad74008418755b70035538
4
+ Revision: 5bbbb9ffe6bf19fdc31b46add466cd6ef53d75b4
5
5
  Update Mechanism: Manual (https://crbug.com/428069060)
6
6
  License: BSD-3-Clause
7
7
  License File: LICENSE
@@ -1,6 +1,7 @@
1
1
  Name: mitt
2
2
  Short Name: mitt
3
3
  URL: https://github.com/developit/mitt
4
+ Version: 3.0.1
4
5
  License: MIT
5
6
  License File: LICENSE
6
7
  Security Critical: no
@@ -1,6 +1,7 @@
1
1
  Name: parsel
2
2
  Short Name: parsel
3
3
  URL: https://github.com/LeaVerou/parsel
4
+ Version: 1.2.2
4
5
  License: MIT
5
6
  License File: LICENSE
6
7
  Security Critical: no
@@ -1,6 +1,7 @@
1
1
  Name: rxjs
2
2
  Short Name: rxjs
3
3
  URL: https://github.com/ReactiveX/rxjs
4
+ Version: 7.8.2
4
5
  License: Apache-2.0
5
6
  License File: LICENSE
6
7
  Security Critical: no
@@ -1,7 +1,7 @@
1
1
  // Copyright 2020 The Chromium Authors
2
2
  // Use of this source code is governed by a BSD-style license that can be
3
3
  // found in the LICENSE file.
4
- /* eslint-disable @devtools/no-lit-render-outside-of-view */
4
+ /* eslint-disable @devtools/no-lit-render-outside-of-view, @devtools/enforce-custom-element-definitions-location */
5
5
 
6
6
  import type * as Platform from '../../../core/platform/platform.js';
7
7
  import {html, render} from '../../../ui/lit/lit.js';
@@ -16,7 +16,12 @@ export interface AdornerData {
16
16
  jslogContext?: string;
17
17
  }
18
18
 
19
+ /**
20
+ * @deprecated Do not add new usages. The custom component will be removed an
21
+ * embedded into the corresponding views.
22
+ */
19
23
  export class Adorner extends HTMLElement {
24
+ static readonly observedAttributes = ['active', 'toggleable'];
20
25
  name = '';
21
26
 
22
27
  readonly #shadow = this.attachShadow({mode: 'open'});
@@ -53,6 +58,21 @@ export class Adorner extends HTMLElement {
53
58
  this.#render();
54
59
  }
55
60
 
61
+ attributeChangedCallback(name: string, oldValue: string, newValue: string): void {
62
+ if (oldValue === newValue) {
63
+ return;
64
+ }
65
+
66
+ switch (name) {
67
+ case 'active':
68
+ this.toggle(newValue === 'true');
69
+ break;
70
+ case 'toggleable':
71
+ this.#isToggle = newValue === 'true';
72
+ break;
73
+ }
74
+ }
75
+
56
76
  isActive(): boolean {
57
77
  return this.getAttribute('aria-pressed') === 'true';
58
78
  }