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,98 @@
1
+ // Copyright 2025 The Chromium Authors
2
+ // Use of this source code is governed by a BSD-style license that can be
3
+ // found in the LICENSE file.
4
+
5
+ import * as Common from '../../../core/common/common.js';
6
+ import * as Root from '../../../core/root/root.js';
7
+ import type * as SDK from '../../../core/sdk/sdk.js';
8
+
9
+ import {AnnotationType} from './AnnotationType.js';
10
+
11
+ interface BaseAnnotationData {
12
+ id: number;
13
+ type: AnnotationType;
14
+ message: string;
15
+ // Sometimes the anchor for an annotation is not known, but is provided using a
16
+ // string id instead (which can be converted to an `anchor` later).
17
+ lookupId: string;
18
+ // Sometimes we want annotations to anchor to a particular string on the page.
19
+ anchorToString?: string;
20
+ }
21
+
22
+ export interface ElementsAnnotationData extends BaseAnnotationData {
23
+ type: AnnotationType.ELEMENT_NODE;
24
+ anchor?: SDK.DOMModel.DOMNode;
25
+ }
26
+
27
+ export const enum Events {
28
+ ANNOTATION_ADDED = 'AnnotationAdded',
29
+ }
30
+
31
+ export interface EventTypes {
32
+ [Events.ANNOTATION_ADDED]: BaseAnnotationData;
33
+ }
34
+
35
+ export class AnnotationRepository {
36
+ static #instance: AnnotationRepository|null = null;
37
+ #events = new Common.ObjectWrapper.ObjectWrapper<EventTypes>();
38
+ #annotations: BaseAnnotationData[] = [];
39
+ #nextId = 0;
40
+
41
+ static instance(): AnnotationRepository {
42
+ if (!AnnotationRepository.#instance) {
43
+ AnnotationRepository.#instance = new AnnotationRepository();
44
+ }
45
+ return AnnotationRepository.#instance;
46
+ }
47
+
48
+ static annotationsEnabled(): boolean {
49
+ return Boolean(Root.Runtime.hostConfig.devToolsGreenDevUi?.enabled);
50
+ }
51
+
52
+ addEventListener<T extends keyof EventTypes>(
53
+ eventType: T, listener: (arg0: Common.EventTarget.EventTargetEvent<EventTypes[T]>) => void,
54
+ thisObject?: Object): Common.EventTarget.EventDescriptor<EventTypes, T> {
55
+ if (!AnnotationRepository.annotationsEnabled()) {
56
+ console.warn('Received request to add event listener with annotations disabled');
57
+ }
58
+ return this.#events.addEventListener(eventType, listener, thisObject);
59
+ }
60
+
61
+ getAnnotationsByType(type: AnnotationType): BaseAnnotationData[] {
62
+ if (!AnnotationRepository.annotationsEnabled()) {
63
+ console.warn('Received query for annotation types with annotations disabled');
64
+ return [];
65
+ }
66
+
67
+ const annotations = this.#annotations.filter(annotation => annotation.type === type);
68
+ return annotations;
69
+ }
70
+
71
+ addElementsAnnotation(
72
+ label: string,
73
+ lookupId?: string,
74
+ anchor?: SDK.DOMModel.DOMNode,
75
+ anchorToString?: string,
76
+ ): void {
77
+ if (!AnnotationRepository.annotationsEnabled()) {
78
+ console.warn('Received annotation registration with annotations disabled');
79
+ return;
80
+ }
81
+
82
+ const annotationData: ElementsAnnotationData = {
83
+ id: this.#nextId++,
84
+ type: AnnotationType.ELEMENT_NODE,
85
+ message: label,
86
+ lookupId: lookupId || '',
87
+ anchor,
88
+ anchorToString
89
+ };
90
+ this.#annotations.push(annotationData);
91
+ // eslint-disable-next-line no-console
92
+ console.log('[AnnotationRepository] Added annotation:', label, {
93
+ annotationData,
94
+ annotations: this.#annotations.length,
95
+ });
96
+ this.#events.dispatchEventToListeners(Events.ANNOTATION_ADDED, annotationData);
97
+ }
98
+ }
@@ -0,0 +1,10 @@
1
+ // Copyright 2025 The Chromium Authors
2
+ // Use of this source code is governed by a BSD-style license that can be
3
+ // found in the LICENSE file.
4
+
5
+ export enum AnnotationType {
6
+ ELEMENT_NODE = 0,
7
+ STYLE_RULE = 1,
8
+ NETWORK_REQUEST = 2,
9
+ NETWORK_REQUEST_SUBPANEL_HEADERS = 3,
10
+ }
@@ -0,0 +1,6 @@
1
+ // Copyright 2025 The Chromium Authors
2
+ // Use of this source code is governed by a BSD-style license that can be
3
+ // found in the LICENSE file.
4
+
5
+ export * from './AnnotationRepository.js';
6
+ export * from './AnnotationType.js';
@@ -1,9 +1,9 @@
1
1
  // Copyright 2021 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
- import '../icon_button/icon_button.js';
6
+ import '../../kit/kit.js';
7
7
 
8
8
  import * as Lit from '../../lit/lit.js';
9
9
  import * as VisualLogging from '../../visual_logging/visual_logging.js';
@@ -1,8 +1,8 @@
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
- /* eslint-disable @devtools/no-lit-render-outside-of-view */
5
- import '../icon_button/icon_button.js';
4
+ /* eslint-disable @devtools/no-lit-render-outside-of-view, @devtools/enforce-custom-element-definitions-location */
5
+ import '../../kit/kit.js';
6
6
 
7
7
  import * as VisualLogging from '../../../ui/visual_logging/visual_logging.js';
8
8
  import * as Lit from '../../lit/lit.js';
@@ -1,7 +1,7 @@
1
1
  // Copyright 2022 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 * as Common from '../../../core/common/common.js';
7
7
  import * as Host from '../../../core/host/host.js';
@@ -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
- /* 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 Buttons from '../../../ui/components/buttons/buttons.js';
7
7
  import * as ComponentHelpers from '../../../ui/components/helpers/helpers.js';
@@ -1,7 +1,7 @@
1
1
  // Copyright 2023 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 * as i18n from '../../../core/i18n/i18n.js';
7
7
  import * as Platform from '../../../core/platform/platform.js';
@@ -1,6 +1,7 @@
1
1
  // Copyright 2023 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/enforce-custom-element-definitions-location */
4
5
  import './ButtonDialog.js';
5
6
 
6
7
  /* eslint-disable @devtools/no-lit-render-outside-of-view */
@@ -1,7 +1,7 @@
1
1
  // Copyright 2019 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 * as i18n from '../../../core/i18n/i18n.js';
7
7
  import * as Diff from '../../../third_party/diff/diff.js';
@@ -1,7 +1,7 @@
1
1
  // Copyright 2021 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 * as Lit from '../../lit/lit.js';
7
7
  import * as VisualLogging from '../../visual_logging/visual_logging.js';
@@ -1,15 +1,19 @@
1
1
  // Copyright 2025 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/enforce-custom-element-definitions-location */
4
5
 
5
6
  import * as TextUtils from '../../../models/text_utils/text_utils.js';
6
7
 
7
8
  import {HighlightManager} from './HighlightManager.js';
9
+ import {type HighlightChange, highlightRangesWithStyleClass, revertDomChanges} from './MarkupHighlight.js';
8
10
 
9
11
  export class HighlightElement extends HTMLElement {
10
- static readonly observedAttributes = ['ranges', 'current-range'];
12
+ static readonly observedAttributes = ['ranges', 'current-range', 'type'];
11
13
  #ranges: TextUtils.TextRange.SourceRange[] = [];
12
14
  #currentRange: TextUtils.TextRange.SourceRange|undefined;
15
+ #type = 'css';
16
+ #markupChanges: HighlightChange[] = [];
13
17
 
14
18
  attributeChangedCallback(name: string, oldValue: string|null, newValue: string|null): void {
15
19
  if (oldValue === newValue) {
@@ -22,8 +26,18 @@ export class HighlightElement extends HTMLElement {
22
26
  case 'current-range':
23
27
  this.#currentRange = parseRanges(newValue)[0];
24
28
  break;
29
+ case 'type':
30
+ this.#type = newValue || 'css';
31
+ break;
25
32
  }
26
- HighlightManager.instance().set(this, this.#ranges, this.#currentRange);
33
+ queueMicrotask(() => {
34
+ if (this.#type === 'css') {
35
+ HighlightManager.instance().set(this, this.#ranges, this.#currentRange);
36
+ } else {
37
+ revertDomChanges(this.#markupChanges);
38
+ highlightRangesWithStyleClass(this, this.#ranges, 'highlight', this.#markupChanges);
39
+ }
40
+ });
27
41
  }
28
42
  }
29
43
 
@@ -0,0 +1,162 @@
1
+ // Copyright 2025 The Chromium Authors
2
+ // Use of this source code is governed by a BSD-style license that can be
3
+ // found in the LICENSE file.
4
+
5
+ import * as TextUtils from '../../../models/text_utils/text_utils.js';
6
+
7
+ export const highlightedSearchResultClassName = 'highlighted-search-result';
8
+ export const highlightedCurrentSearchResultClassName = 'current-search-result';
9
+
10
+ export interface HighlightChange {
11
+ node: Element|Text;
12
+ type: string;
13
+ oldText?: string;
14
+ newText?: string;
15
+ nextSibling?: Node;
16
+ parent?: Node;
17
+ }
18
+
19
+ export function highlightRangesWithStyleClass(
20
+ element: Element, resultRanges: TextUtils.TextRange.SourceRange[], styleClass: string,
21
+ changes?: HighlightChange[]): Element[] {
22
+ changes = changes || [];
23
+ const highlightNodes: Element[] = [];
24
+ const textNodes = element.childTextNodes();
25
+ const lineText = textNodes
26
+ .map(function(node) {
27
+ return node.textContent;
28
+ })
29
+ .join('');
30
+ const ownerDocument = element.ownerDocument;
31
+
32
+ if (textNodes.length === 0) {
33
+ return highlightNodes;
34
+ }
35
+
36
+ const nodeRanges: TextUtils.TextRange.SourceRange[] = [];
37
+ let rangeEndOffset = 0;
38
+ for (const textNode of textNodes) {
39
+ const range =
40
+ new TextUtils.TextRange.SourceRange(rangeEndOffset, textNode.textContent ? textNode.textContent.length : 0);
41
+ rangeEndOffset = range.offset + range.length;
42
+ nodeRanges.push(range);
43
+ }
44
+
45
+ let startIndex = 0;
46
+ for (let i = 0; i < resultRanges.length; ++i) {
47
+ const startOffset = resultRanges[i].offset;
48
+ const endOffset = startOffset + resultRanges[i].length;
49
+
50
+ while (startIndex < textNodes.length &&
51
+ nodeRanges[startIndex].offset + nodeRanges[startIndex].length <= startOffset) {
52
+ startIndex++;
53
+ }
54
+ let endIndex = startIndex;
55
+ while (endIndex < textNodes.length && nodeRanges[endIndex].offset + nodeRanges[endIndex].length < endOffset) {
56
+ endIndex++;
57
+ }
58
+ if (endIndex === textNodes.length) {
59
+ break;
60
+ }
61
+
62
+ const highlightNode = ownerDocument.createElement('span');
63
+ highlightNode.className = styleClass;
64
+ highlightNode.textContent = lineText.substring(startOffset, endOffset);
65
+
66
+ const lastTextNode = textNodes[endIndex];
67
+ const lastText = lastTextNode.textContent || '';
68
+ lastTextNode.textContent = lastText.substring(endOffset - nodeRanges[endIndex].offset);
69
+ changes.push({
70
+ node: (lastTextNode as Element),
71
+ type: 'changed',
72
+ oldText: lastText,
73
+ newText: lastTextNode.textContent,
74
+ nextSibling: undefined,
75
+ parent: undefined,
76
+ });
77
+
78
+ if (startIndex === endIndex && lastTextNode.parentElement) {
79
+ lastTextNode.parentElement.insertBefore(highlightNode, lastTextNode);
80
+ changes.push({
81
+ node: highlightNode,
82
+ type: 'added',
83
+ nextSibling: lastTextNode,
84
+ parent: lastTextNode.parentElement,
85
+ oldText: undefined,
86
+ newText: undefined,
87
+ });
88
+ highlightNodes.push(highlightNode);
89
+
90
+ const prefixNode =
91
+ ownerDocument.createTextNode(lastText.substring(0, startOffset - nodeRanges[startIndex].offset));
92
+ lastTextNode.parentElement.insertBefore(prefixNode, highlightNode);
93
+ changes.push({
94
+ node: prefixNode,
95
+ type: 'added',
96
+ nextSibling: highlightNode,
97
+ parent: lastTextNode.parentElement,
98
+ oldText: undefined,
99
+ newText: undefined,
100
+ });
101
+ } else {
102
+ const firstTextNode = textNodes[startIndex];
103
+ const firstText = firstTextNode.textContent || '';
104
+ const anchorElement = firstTextNode.nextSibling;
105
+
106
+ if (firstTextNode.parentElement) {
107
+ firstTextNode.parentElement.insertBefore(highlightNode, anchorElement);
108
+ changes.push({
109
+ node: highlightNode,
110
+ type: 'added',
111
+ nextSibling: anchorElement || undefined,
112
+ parent: firstTextNode.parentElement,
113
+ oldText: undefined,
114
+ newText: undefined,
115
+ });
116
+ highlightNodes.push(highlightNode);
117
+ }
118
+
119
+ firstTextNode.textContent = firstText.substring(0, startOffset - nodeRanges[startIndex].offset);
120
+ changes.push({
121
+ node: (firstTextNode as Element),
122
+ type: 'changed',
123
+ oldText: firstText,
124
+ newText: firstTextNode.textContent,
125
+ nextSibling: undefined,
126
+ parent: undefined,
127
+ });
128
+
129
+ for (let j = startIndex + 1; j < endIndex; j++) {
130
+ const textNode = textNodes[j];
131
+ const text = textNode.textContent;
132
+ textNode.textContent = '';
133
+ changes.push({
134
+ node: (textNode as Element),
135
+ type: 'changed',
136
+ oldText: text || undefined,
137
+ newText: textNode.textContent,
138
+ nextSibling: undefined,
139
+ parent: undefined,
140
+ });
141
+ }
142
+ }
143
+ startIndex = endIndex;
144
+ nodeRanges[startIndex].offset = endOffset;
145
+ nodeRanges[startIndex].length = lastTextNode.textContent.length;
146
+ }
147
+ return highlightNodes;
148
+ }
149
+
150
+ export function revertDomChanges(domChanges: HighlightChange[]): void {
151
+ for (let i = domChanges.length - 1; i >= 0; --i) {
152
+ const entry = domChanges[i];
153
+ switch (entry.type) {
154
+ case 'added':
155
+ entry.node.remove();
156
+ break;
157
+ case 'changed':
158
+ entry.node.textContent = entry.oldText ?? null;
159
+ break;
160
+ }
161
+ }
162
+ }
@@ -6,4 +6,11 @@ import './HighlightElement.js';
6
6
 
7
7
  import * as HighlightManager from './HighlightManager.js';
8
8
 
9
+ export {
10
+ type HighlightChange,
11
+ highlightedCurrentSearchResultClassName,
12
+ highlightedSearchResultClassName,
13
+ highlightRangesWithStyleClass,
14
+ revertDomChanges
15
+ } from './MarkupHighlight.js';
9
16
  export {HighlightManager};
@@ -1,9 +1,9 @@
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
- /* 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
- import './IconButton.js';
6
+ import '../../kit/kit.js';
7
7
 
8
8
  import {Directives, html, render} from '../../lit/lit.js';
9
9
 
@@ -1,9 +1,9 @@
1
1
  // Copyright 2021 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
- import './Icon.js';
6
+ import '../../kit/kit.js';
7
7
 
8
8
  import * as Lit from '../../lit/lit.js';
9
9
 
@@ -3,11 +3,9 @@
3
3
  // found in the LICENSE file.
4
4
 
5
5
  import * as FileSourceIcon from './FileSourceIcon.js';
6
- import * as Icon from './Icon.js';
7
6
  import * as IconButton from './IconButton.js';
8
7
 
9
8
  export {
10
9
  FileSourceIcon,
11
- Icon,
12
10
  IconButton,
13
11
  };
@@ -1,15 +1,15 @@
1
1
  // Copyright 2021 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 '../icon_button/icon_button.js';
7
7
 
8
8
  import * as Common from '../../../core/common/common.js';
9
9
  import * as i18n from '../../../core/i18n/i18n.js';
10
10
  import * as IssuesManager from '../../../models/issues_manager/issues_manager.js';
11
+ import type * as IconButton from '../../../ui/components/icon_button/icon_button.js';
11
12
  import {html, render} from '../../lit/lit.js';
12
- import type * as IconButton from '../icon_button/icon_button.js';
13
13
 
14
14
  import issueCounterStyles from './issueCounter.css.js';
15
15
 
@@ -1,9 +1,9 @@
1
1
  // Copyright 2021 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
- import '../../../ui/components/icon_button/icon_button.js';
6
+ import '../../../ui/kit/kit.js';
7
7
 
8
8
  import * as Common from '../../../core/common/common.js';
9
9
  import * as i18n from '../../../core/i18n/i18n.js';
@@ -1,7 +1,7 @@
1
1
  // Copyright 2023 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-imperative-dom-api */
4
+ /* eslint-disable @devtools/no-imperative-dom-api, @devtools/enforce-custom-element-definitions-location*/
5
5
 
6
6
  import type * as Platform from '../../../core/platform/platform.js';
7
7
  import type * as UI from '../../legacy/legacy.js';
@@ -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 * as Platform from '../../../core/platform/platform.js';
7
7
  import * as Lit from '../../lit/lit.js';