chrome-devtools-frontend 1.0.1550444 → 1.0.1555174

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 (466) hide show
  1. package/docs/styleguide/ux/components.md +34 -8
  2. package/eslint.config.mjs +7 -0
  3. package/front_end/Images/generate-css-vars.js +8 -4
  4. package/front_end/Images/src/spark.svg +10 -0
  5. package/front_end/core/common/Settings.ts +20 -8
  6. package/front_end/core/host/UserMetrics.ts +3 -1
  7. package/front_end/core/i18n/collect-ui-strings.js +19 -10
  8. package/front_end/core/i18n/generate-locales-js.js +4 -4
  9. package/front_end/core/protocol_client/CDPConnection.ts +1 -0
  10. package/front_end/core/protocol_client/InspectorBackend.ts +5 -1
  11. package/front_end/core/root/Runtime.ts +0 -12
  12. package/front_end/core/sdk/DOMModel.ts +38 -3
  13. package/front_end/core/sdk/DebuggerModel.ts +9 -4
  14. package/front_end/core/sdk/IsolateManager.ts +7 -0
  15. package/front_end/core/sdk/PageResourceLoader.ts +3 -3
  16. package/front_end/core/sdk/RehydratingConnection.ts +5 -2
  17. package/front_end/core/sdk/ResourceTreeModel.ts +0 -1
  18. package/front_end/entrypoints/main/MainImpl.ts +28 -10
  19. package/front_end/generated/SupportedCSSProperties.js +32 -0
  20. package/front_end/models/ai_assistance/AiConversation.ts +94 -4
  21. package/front_end/models/ai_assistance/agents/AiAgent.ts +30 -15
  22. package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +179 -41
  23. package/front_end/models/ai_assistance/agents/StylingAgent.snapshot.txt +5 -0
  24. package/front_end/models/ai_assistance/agents/StylingAgent.ts +62 -0
  25. package/front_end/models/ai_assistance/data_formatters/NetworkRequestFormatter.ts +2 -1
  26. package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.ts +1 -7
  27. package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.snapshot.txt +124 -12
  28. package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.ts +125 -30
  29. package/front_end/models/ai_assistance/performance/AICallTree.ts +42 -0
  30. package/front_end/models/ai_code_generation/AiCodeGeneration.ts +12 -0
  31. package/front_end/models/issues_manager/Issue.ts +1 -0
  32. package/front_end/models/issues_manager/IssueAggregator.ts +9 -0
  33. package/front_end/models/issues_manager/IssuesManager.ts +5 -0
  34. package/front_end/models/issues_manager/PermissionElementIssue.ts +262 -0
  35. package/front_end/models/issues_manager/descriptions/permissionElementActivationDisabled.md +7 -0
  36. package/front_end/models/issues_manager/descriptions/permissionElementActivationDisabledWithOccluder.md +9 -0
  37. package/front_end/models/issues_manager/descriptions/permissionElementActivationDisabledWithOccluderParent.md +9 -0
  38. package/front_end/models/issues_manager/descriptions/permissionElementCspFrameAncestorsMissing.md +5 -0
  39. package/front_end/models/issues_manager/descriptions/permissionElementFencedFrameDisallowed.md +5 -0
  40. package/front_end/models/issues_manager/descriptions/permissionElementFontSizeTooLarge.md +5 -0
  41. package/front_end/models/issues_manager/descriptions/permissionElementFontSizeTooSmall.md +5 -0
  42. package/front_end/models/issues_manager/descriptions/permissionElementGeolocationDeprecated.md +5 -0
  43. package/front_end/models/issues_manager/descriptions/permissionElementInsetBoxShadowUnsupported.md +5 -0
  44. package/front_end/models/issues_manager/descriptions/permissionElementInvalidDisplayStyle.md +5 -0
  45. package/front_end/models/issues_manager/descriptions/permissionElementInvalidSizeValue.md +5 -0
  46. package/front_end/models/issues_manager/descriptions/permissionElementInvalidType.md +5 -0
  47. package/front_end/models/issues_manager/descriptions/permissionElementInvalidTypeActivation.md +5 -0
  48. package/front_end/models/issues_manager/descriptions/permissionElementLowContrast.md +5 -0
  49. package/front_end/models/issues_manager/descriptions/permissionElementNonOpaqueColor.md +5 -0
  50. package/front_end/models/issues_manager/descriptions/permissionElementPaddingBottomUnsupported.md +6 -0
  51. package/front_end/models/issues_manager/descriptions/permissionElementPaddingRightUnsupported.md +6 -0
  52. package/front_end/models/issues_manager/descriptions/permissionElementPermissionsPolicyBlocked.md +5 -0
  53. package/front_end/models/issues_manager/descriptions/permissionElementRegistrationFailed.md +5 -0
  54. package/front_end/models/issues_manager/descriptions/permissionElementRequestInProgress.md +5 -0
  55. package/front_end/models/issues_manager/descriptions/permissionElementSecurityChecksFailed.md +5 -0
  56. package/front_end/models/issues_manager/descriptions/permissionElementTypeNotSupported.md +5 -0
  57. package/front_end/models/issues_manager/descriptions/permissionElementUntrustedEvent.md +7 -0
  58. package/front_end/models/issues_manager/issues_manager.ts +2 -0
  59. package/front_end/models/javascript_metadata/NativeFunctions.js +23 -23
  60. package/front_end/models/stack_trace/StackTraceModel.ts +37 -18
  61. package/front_end/models/trace/Processor.ts +14 -15
  62. package/front_end/models/trace/insights/Common.ts +2 -8
  63. package/front_end/models/trace/insights/types.ts +12 -2
  64. package/front_end/models/trace/types/TraceEvents.ts +4 -1
  65. package/front_end/panels/ai_assistance/AiAssistancePanel.ts +28 -6
  66. package/front_end/panels/ai_assistance/ai_assistance-meta.ts +9 -23
  67. package/front_end/panels/ai_assistance/ai_assistance.ts +1 -0
  68. package/front_end/panels/ai_assistance/components/ChatView.ts +78 -2
  69. package/front_end/panels/ai_assistance/components/CollapsibleAssistanceContentWidget.ts +71 -0
  70. package/front_end/panels/ai_assistance/components/PerformanceAgentFlameChart.ts +126 -0
  71. package/front_end/panels/ai_assistance/components/PerformanceAgentMarkdownRenderer.ts +131 -2
  72. package/front_end/panels/ai_assistance/components/chatView.css +28 -0
  73. package/front_end/panels/ai_assistance/components/collapsibleAssistanceContentWidget.css +33 -0
  74. package/front_end/panels/application/AppManifestView.ts +1007 -521
  75. package/front_end/panels/application/ApplicationPanelSidebar.ts +1 -17
  76. package/front_end/panels/application/BounceTrackingMitigationsTreeElement.ts +2 -6
  77. package/front_end/panels/application/ExtensionStorageItemsView.ts +3 -5
  78. package/front_end/panels/application/KeyValueStorageItemsView.ts +3 -2
  79. package/front_end/panels/application/components/BackForwardCacheView.ts +2 -2
  80. package/front_end/panels/application/components/BounceTrackingMitigationsView.ts +133 -118
  81. package/front_end/panels/application/preloading/PreloadingView.ts +46 -45
  82. package/front_end/panels/application/preloading/components/MismatchedPreloadingGrid.ts +80 -75
  83. package/front_end/panels/application/preloading/components/PreloadingDisabledInfobar.ts +169 -133
  84. package/front_end/panels/application/preloading/components/RuleSetDetailsView.ts +74 -93
  85. package/front_end/panels/application/preloading/components/RuleSetGrid.ts +142 -117
  86. package/front_end/panels/application/preloading/components/UsedPreloadingView.ts +51 -11
  87. package/front_end/panels/application/preloading/components/components.ts +0 -2
  88. package/front_end/panels/common/Annotation.ts +184 -0
  89. package/front_end/panels/common/AnnotationManager.ts +148 -11
  90. package/front_end/panels/common/ExtensionView.ts +47 -0
  91. package/front_end/panels/common/PersistenceUtils.ts +22 -25
  92. package/front_end/panels/common/annotation.css +40 -0
  93. package/front_end/panels/common/common.ts +1 -0
  94. package/front_end/panels/console/ConsoleInsightTeaser.ts +187 -5
  95. package/front_end/panels/console/ConsolePinPane.ts +437 -217
  96. package/front_end/panels/console/ConsolePrompt.ts +32 -223
  97. package/front_end/panels/console/ConsoleView.ts +67 -66
  98. package/front_end/panels/console/ConsoleViewMessage.ts +8 -3
  99. package/front_end/panels/console/consoleInsightTeaser.css +23 -0
  100. package/front_end/panels/console/consoleView.css +1 -1
  101. package/front_end/panels/elements/AdoptedStyleSheetTreeElement.ts +89 -0
  102. package/front_end/panels/elements/ColorSwatchPopoverIcon.ts +2 -2
  103. package/front_end/panels/elements/ComputedStyleWidget.ts +16 -5
  104. package/front_end/panels/elements/ElementsPanel.ts +38 -12
  105. package/front_end/panels/elements/ElementsSidebarPane.ts +1 -3
  106. package/front_end/panels/elements/ElementsTreeElement.ts +313 -353
  107. package/front_end/panels/elements/ElementsTreeOutline.ts +39 -13
  108. package/front_end/panels/elements/StylePropertyTreeElement.ts +15 -14
  109. package/front_end/panels/elements/StylesSidebarPane.ts +1 -1
  110. package/front_end/panels/emulation/MediaQueryInspector.ts +171 -125
  111. package/front_end/panels/explain/components/ConsoleInsight.ts +175 -150
  112. package/front_end/panels/explain/components/consoleInsight.css +348 -347
  113. package/front_end/panels/issues/AffectedPermissionElementsView.ts +46 -0
  114. package/front_end/panels/issues/IssueView.ts +2 -0
  115. package/front_end/panels/issues/IssuesPane.ts +6 -0
  116. package/front_end/panels/layer_viewer/LayerDetailsView.ts +165 -149
  117. package/front_end/panels/layer_viewer/Layers3DView.ts +131 -78
  118. package/front_end/panels/lighthouse/LighthouseStatusView.ts +149 -100
  119. package/front_end/panels/linear_memory_inspector/components/LinearMemoryHighlightChipList.ts +90 -64
  120. package/front_end/panels/linear_memory_inspector/components/LinearMemoryInspector.ts +25 -34
  121. package/front_end/panels/linear_memory_inspector/components/LinearMemoryValueInterpreter.ts +60 -44
  122. package/front_end/panels/linear_memory_inspector/components/ValueInterpreterDisplay.ts +170 -151
  123. package/front_end/panels/linear_memory_inspector/components/ValueInterpreterSettings.ts +50 -51
  124. package/front_end/panels/linear_memory_inspector/components/valueInterpreterDisplay.css +0 -13
  125. package/front_end/panels/linear_memory_inspector/components/valueInterpreterSettings.css +20 -18
  126. package/front_end/panels/mobile_throttling/CalibrationController.ts +3 -1
  127. package/front_end/panels/network/NetworkDataGridNode.ts +14 -6
  128. package/front_end/panels/network/NetworkItemView.ts +42 -3
  129. package/front_end/panels/network/NetworkLogView.ts +10 -11
  130. package/front_end/panels/network/NetworkPanel.ts +63 -1
  131. package/front_end/panels/network/RequestInitiatorView.ts +146 -113
  132. package/front_end/panels/network/components/RequestHeaderSection.css +51 -50
  133. package/front_end/panels/network/components/RequestHeaderSection.ts +81 -71
  134. package/front_end/panels/network/components/RequestHeadersView.css +1 -1
  135. package/front_end/panels/network/components/RequestHeadersView.ts +26 -11
  136. package/front_end/panels/network/components/RequestTrustTokensView.css +24 -14
  137. package/front_end/panels/network/components/RequestTrustTokensView.ts +144 -140
  138. package/front_end/panels/profiler/IsolateSelector.ts +2 -1
  139. package/front_end/panels/protocol_monitor/ProtocolMonitor.ts +49 -33
  140. package/front_end/panels/recorder/RecorderController.ts +2 -3
  141. package/front_end/panels/recorder/components/ControlButton.ts +68 -34
  142. package/front_end/panels/recorder/components/CreateRecordingView.ts +9 -6
  143. package/front_end/panels/recorder/components/RecordingView.ts +81 -88
  144. package/front_end/panels/recorder/components/ReplaySection.ts +226 -145
  145. package/front_end/panels/recorder/{controllers → components}/SelectorPicker.ts +129 -52
  146. package/front_end/panels/recorder/components/StepEditor.ts +21 -67
  147. package/front_end/panels/recorder/components/StepView.ts +222 -180
  148. package/front_end/panels/recorder/components/TimelineSection.ts +69 -48
  149. package/front_end/panels/recorder/components/components.ts +2 -2
  150. package/front_end/panels/recorder/components/selectorPicker.css +14 -0
  151. package/front_end/panels/recorder/components/stepEditor.css +0 -5
  152. package/front_end/panels/recorder/components/stepView.css +196 -198
  153. package/front_end/panels/recorder/extensions/ExtensionManager.ts +4 -48
  154. package/front_end/panels/recorder/models/ScreenshotUtils.ts +17 -11
  155. package/front_end/panels/security/CookieControlsView.ts +30 -26
  156. package/front_end/panels/settings/components/SyncSection.ts +0 -1
  157. package/front_end/panels/sources/CSSPlugin.ts +3 -3
  158. package/front_end/panels/sources/CallStackSidebarPane.ts +60 -75
  159. package/front_end/panels/sources/SourcesPanel.ts +1 -11
  160. package/front_end/panels/sources/TabbedEditorContainer.ts +11 -8
  161. package/front_end/panels/sources/ThreadsSidebarPane.ts +96 -101
  162. package/front_end/panels/sources/threadsSidebarPane.css +6 -5
  163. package/front_end/panels/timeline/CompatibilityTracksAppender.ts +0 -1
  164. package/front_end/panels/timeline/InteractionsTrackAppender.ts +2 -3
  165. package/front_end/panels/timeline/TimelineFlameChartDataProvider.ts +23 -33
  166. package/front_end/panels/timeline/TimelineFlameChartNetworkDataProvider.ts +4 -3
  167. package/front_end/panels/timeline/TimelineFlameChartView.ts +12 -0
  168. package/front_end/panels/timeline/TimelinePanel.ts +3 -5
  169. package/front_end/panels/timeline/components/IgnoreListSetting.ts +164 -142
  170. package/front_end/panels/timeline/components/InteractionBreakdown.ts +48 -28
  171. package/front_end/panels/timeline/components/LayoutShiftDetails.ts +18 -23
  172. package/front_end/panels/timeline/components/NetworkRequestTooltip.ts +98 -73
  173. package/front_end/panels/timeline/components/Sidebar.ts +16 -7
  174. package/front_end/panels/timeline/components/SidebarInsightsTab.ts +174 -137
  175. package/front_end/panels/timeline/components/SidebarSingleInsightSet.ts +262 -291
  176. package/front_end/panels/timeline/components/Utils.ts +25 -0
  177. package/front_end/panels/timeline/components/insights/BaseInsightComponent.ts +210 -146
  178. package/front_end/panels/timeline/components/insights/CLSCulprits.ts +8 -20
  179. package/front_end/panels/timeline/components/insights/Cache.ts +0 -9
  180. package/front_end/panels/timeline/components/insights/Checklist.ts +53 -43
  181. package/front_end/panels/timeline/components/insights/DOMSize.ts +11 -33
  182. package/front_end/panels/timeline/components/insights/DocumentLatency.ts +6 -12
  183. package/front_end/panels/timeline/components/insights/DuplicatedJavaScript.ts +0 -9
  184. package/front_end/panels/timeline/components/insights/EventRef.ts +47 -109
  185. package/front_end/panels/timeline/components/insights/FontDisplay.ts +0 -9
  186. package/front_end/panels/timeline/components/insights/ForcedReflow.ts +0 -9
  187. package/front_end/panels/timeline/components/insights/INPBreakdown.ts +0 -9
  188. package/front_end/panels/timeline/components/insights/ImageDelivery.ts +1 -10
  189. package/front_end/panels/timeline/components/insights/ImageRef.ts +112 -0
  190. package/front_end/panels/timeline/components/insights/InsightRenderer.ts +91 -0
  191. package/front_end/panels/timeline/components/insights/LCPBreakdown.ts +0 -9
  192. package/front_end/panels/timeline/components/insights/LCPDiscovery.ts +11 -14
  193. package/front_end/panels/timeline/components/insights/LegacyJavaScript.ts +0 -9
  194. package/front_end/panels/timeline/components/insights/ModernHTTP.ts +0 -9
  195. package/front_end/panels/timeline/components/insights/NetworkDependencyTree.ts +6 -21
  196. package/front_end/panels/timeline/components/insights/NodeLink.ts +68 -43
  197. package/front_end/panels/timeline/components/insights/README.md +2 -3
  198. package/front_end/panels/timeline/components/insights/RenderBlocking.ts +0 -9
  199. package/front_end/panels/timeline/components/insights/SlowCSSSelector.ts +0 -9
  200. package/front_end/panels/timeline/components/insights/ThirdParties.ts +0 -9
  201. package/front_end/panels/timeline/components/insights/Viewport.ts +7 -19
  202. package/front_end/panels/timeline/components/insights/baseInsightComponent.css +5 -0
  203. package/front_end/panels/timeline/components/insights/insights.ts +2 -0
  204. package/front_end/panels/timeline/components/interactionBreakdown.css +15 -13
  205. package/front_end/panels/timeline/components/sidebarInsightsTab.css +50 -48
  206. package/front_end/panels/timeline/enable-easter-egg.js +7 -3
  207. package/front_end/third_party/chromium/README.chromium +1 -1
  208. package/front_end/third_party/puppeteer/README.chromium +2 -2
  209. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/BluetoothEmulation.d.ts +96 -0
  210. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/BluetoothEmulation.d.ts.map +1 -0
  211. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/BluetoothEmulation.js +8 -0
  212. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/BluetoothEmulation.js.map +1 -0
  213. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.d.ts +87 -0
  214. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.d.ts.map +1 -1
  215. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.js.map +1 -1
  216. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/DeviceRequestPrompt.d.ts +2 -6
  217. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/DeviceRequestPrompt.d.ts.map +1 -1
  218. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/DeviceRequestPrompt.js +5 -24
  219. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/DeviceRequestPrompt.js.map +1 -1
  220. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.d.ts +5 -0
  221. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.d.ts.map +1 -1
  222. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.js.map +1 -1
  223. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/api.d.ts +1 -0
  224. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/api.d.ts.map +1 -1
  225. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/api.js.map +1 -1
  226. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BluetoothEmulation.d.ts +18 -0
  227. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BluetoothEmulation.d.ts.map +1 -0
  228. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BluetoothEmulation.js +42 -0
  229. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BluetoothEmulation.js.map +1 -0
  230. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.d.ts +4 -1
  231. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.d.ts.map +1 -1
  232. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.js +10 -0
  233. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.js.map +1 -1
  234. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/DeviceRequestPrompt.d.ts +27 -0
  235. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/DeviceRequestPrompt.d.ts.map +1 -0
  236. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/DeviceRequestPrompt.js +90 -0
  237. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/DeviceRequestPrompt.js.map +1 -0
  238. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.d.ts +3 -1
  239. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.d.ts.map +1 -1
  240. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.js +3 -2
  241. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.js.map +1 -1
  242. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.d.ts +4 -1
  243. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.d.ts.map +1 -1
  244. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.js +5 -2
  245. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.js.map +1 -1
  246. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.d.ts +4 -0
  247. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.d.ts.map +1 -1
  248. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.js +14 -2
  249. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.js.map +1 -1
  250. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/util.d.ts.map +1 -1
  251. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/util.js +7 -0
  252. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/util.js.map +1 -1
  253. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Accessibility.js +1 -1
  254. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Accessibility.js.map +1 -1
  255. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BluetoothEmulation.d.ts +18 -0
  256. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BluetoothEmulation.d.ts.map +1 -0
  257. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BluetoothEmulation.js +30 -0
  258. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BluetoothEmulation.js.map +1 -0
  259. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.d.ts +5 -2
  260. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.d.ts.map +1 -1
  261. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.js +22 -3
  262. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.js.map +1 -1
  263. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/CdpSession.d.ts +1 -1
  264. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/CdpSession.d.ts.map +1 -1
  265. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/DeviceRequestPrompt.d.ts +2 -3
  266. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/DeviceRequestPrompt.d.ts.map +1 -1
  267. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/DeviceRequestPrompt.js +4 -6
  268. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/DeviceRequestPrompt.js.map +1 -1
  269. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/FrameManager.d.ts +2 -2
  270. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/FrameManager.d.ts.map +1 -1
  271. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/FrameManager.js +1 -1
  272. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/FrameManager.js.map +1 -1
  273. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.d.ts +2 -0
  274. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.d.ts.map +1 -1
  275. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.js +8 -0
  276. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.js.map +1 -1
  277. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/WebWorker.d.ts.map +1 -1
  278. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/WebWorker.js +8 -3
  279. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/WebWorker.js.map +1 -1
  280. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/cdp.d.ts +1 -0
  281. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/cdp.d.ts.map +1 -1
  282. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/cdp.js +1 -0
  283. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/cdp.js.map +1 -1
  284. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/BrowserConnector.js +30 -0
  285. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/BrowserConnector.js.map +1 -1
  286. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConnectOptions.d.ts +15 -0
  287. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConnectOptions.d.ts.map +1 -1
  288. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/injected/injected.d.ts +1 -1
  289. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ChromeLauncher.d.ts +1 -1
  290. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ChromeLauncher.d.ts.map +1 -1
  291. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ChromeLauncher.js +2 -13
  292. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ChromeLauncher.js.map +1 -1
  293. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/LaunchOptions.d.ts +5 -3
  294. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/LaunchOptions.d.ts.map +1 -1
  295. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/LaunchOptions.js +17 -0
  296. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/LaunchOptions.js.map +1 -1
  297. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.d.ts +3 -3
  298. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js +3 -3
  299. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js.map +1 -1
  300. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/Mutex.d.ts +2 -2
  301. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/version.d.ts +1 -1
  302. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/version.js +1 -1
  303. package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.d.ts +221 -4
  304. package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.js +182 -95
  305. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/BluetoothEmulation.d.ts +96 -0
  306. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/BluetoothEmulation.d.ts.map +1 -0
  307. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/BluetoothEmulation.js +7 -0
  308. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/BluetoothEmulation.js.map +1 -0
  309. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.d.ts +87 -0
  310. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.d.ts.map +1 -1
  311. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.js.map +1 -1
  312. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/DeviceRequestPrompt.d.ts +2 -6
  313. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/DeviceRequestPrompt.d.ts.map +1 -1
  314. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/DeviceRequestPrompt.js +4 -22
  315. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/DeviceRequestPrompt.js.map +1 -1
  316. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.d.ts +5 -0
  317. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.d.ts.map +1 -1
  318. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.js.map +1 -1
  319. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/api.d.ts +1 -0
  320. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/api.d.ts.map +1 -1
  321. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/api.js.map +1 -1
  322. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BluetoothEmulation.d.ts +18 -0
  323. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BluetoothEmulation.d.ts.map +1 -0
  324. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BluetoothEmulation.js +38 -0
  325. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BluetoothEmulation.js.map +1 -0
  326. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.d.ts +4 -1
  327. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.d.ts.map +1 -1
  328. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.js +10 -0
  329. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.js.map +1 -1
  330. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/DeviceRequestPrompt.d.ts +27 -0
  331. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/DeviceRequestPrompt.d.ts.map +1 -0
  332. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/DeviceRequestPrompt.js +85 -0
  333. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/DeviceRequestPrompt.js.map +1 -0
  334. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.d.ts +3 -1
  335. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.d.ts.map +1 -1
  336. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.js +3 -2
  337. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.js.map +1 -1
  338. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.d.ts +4 -1
  339. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.d.ts.map +1 -1
  340. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.js +5 -2
  341. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.js.map +1 -1
  342. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.d.ts +4 -0
  343. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.d.ts.map +1 -1
  344. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.js +14 -2
  345. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.js.map +1 -1
  346. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/util.d.ts.map +1 -1
  347. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/util.js +7 -0
  348. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/util.js.map +1 -1
  349. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Accessibility.js +1 -1
  350. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Accessibility.js.map +1 -1
  351. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BluetoothEmulation.d.ts +18 -0
  352. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BluetoothEmulation.d.ts.map +1 -0
  353. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BluetoothEmulation.js +26 -0
  354. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BluetoothEmulation.js.map +1 -0
  355. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.d.ts +5 -2
  356. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.d.ts.map +1 -1
  357. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.js +22 -3
  358. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.js.map +1 -1
  359. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/CdpSession.d.ts +1 -1
  360. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/CdpSession.d.ts.map +1 -1
  361. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/DeviceRequestPrompt.d.ts +2 -3
  362. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/DeviceRequestPrompt.d.ts.map +1 -1
  363. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/DeviceRequestPrompt.js +2 -4
  364. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/DeviceRequestPrompt.js.map +1 -1
  365. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/FrameManager.d.ts +2 -2
  366. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/FrameManager.d.ts.map +1 -1
  367. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/FrameManager.js +2 -2
  368. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/FrameManager.js.map +1 -1
  369. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.d.ts +2 -0
  370. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.d.ts.map +1 -1
  371. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.js +8 -0
  372. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.js.map +1 -1
  373. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/WebWorker.d.ts.map +1 -1
  374. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/WebWorker.js +8 -3
  375. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/WebWorker.js.map +1 -1
  376. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/cdp.d.ts +1 -0
  377. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/cdp.d.ts.map +1 -1
  378. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/cdp.js +1 -0
  379. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/cdp.js.map +1 -1
  380. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserConnector.js +31 -1
  381. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserConnector.js.map +1 -1
  382. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConnectOptions.d.ts +15 -0
  383. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConnectOptions.d.ts.map +1 -1
  384. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ChromeLauncher.d.ts +1 -1
  385. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ChromeLauncher.d.ts.map +1 -1
  386. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ChromeLauncher.js +2 -13
  387. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ChromeLauncher.js.map +1 -1
  388. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/LaunchOptions.d.ts +5 -3
  389. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/LaunchOptions.d.ts.map +1 -1
  390. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/LaunchOptions.js +16 -1
  391. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/LaunchOptions.js.map +1 -1
  392. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.d.ts +3 -3
  393. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js +3 -3
  394. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js.map +1 -1
  395. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/version.d.ts +1 -1
  396. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/version.js +1 -1
  397. package/front_end/third_party/puppeteer/package/lib/types.d.ts +221 -4
  398. package/front_end/third_party/puppeteer/package/package.json +4 -4
  399. package/front_end/third_party/puppeteer/package/src/api/BluetoothEmulation.ts +103 -0
  400. package/front_end/third_party/puppeteer/package/src/api/Browser.ts +96 -1
  401. package/front_end/third_party/puppeteer/package/src/api/DeviceRequestPrompt.ts +2 -10
  402. package/front_end/third_party/puppeteer/package/src/api/Page.ts +6 -0
  403. package/front_end/third_party/puppeteer/package/src/api/api.ts +1 -0
  404. package/front_end/third_party/puppeteer/package/src/bidi/BluetoothEmulation.ts +52 -0
  405. package/front_end/third_party/puppeteer/package/src/bidi/Browser.ts +15 -0
  406. package/front_end/third_party/puppeteer/package/src/bidi/DeviceRequestPrompt.ts +138 -0
  407. package/front_end/third_party/puppeteer/package/src/bidi/Frame.ts +7 -3
  408. package/front_end/third_party/puppeteer/package/src/bidi/Page.ts +10 -2
  409. package/front_end/third_party/puppeteer/package/src/bidi/core/BrowsingContext.ts +30 -2
  410. package/front_end/third_party/puppeteer/package/src/bidi/util.ts +8 -0
  411. package/front_end/third_party/puppeteer/package/src/cdp/Accessibility.ts +1 -1
  412. package/front_end/third_party/puppeteer/package/src/cdp/BluetoothEmulation.ts +47 -0
  413. package/front_end/third_party/puppeteer/package/src/cdp/Browser.ts +33 -3
  414. package/front_end/third_party/puppeteer/package/src/cdp/CdpSession.ts +1 -1
  415. package/front_end/third_party/puppeteer/package/src/cdp/DeviceRequestPrompt.ts +3 -8
  416. package/front_end/third_party/puppeteer/package/src/cdp/Frame.ts +2 -2
  417. package/front_end/third_party/puppeteer/package/src/cdp/FrameManager.ts +9 -4
  418. package/front_end/third_party/puppeteer/package/src/cdp/Page.ts +13 -0
  419. package/front_end/third_party/puppeteer/package/src/cdp/WebWorker.ts +8 -3
  420. package/front_end/third_party/puppeteer/package/src/cdp/cdp.ts +1 -0
  421. package/front_end/third_party/puppeteer/package/src/common/BrowserConnector.ts +45 -1
  422. package/front_end/third_party/puppeteer/package/src/common/ConnectOptions.ts +20 -0
  423. package/front_end/third_party/puppeteer/package/src/node/ChromeLauncher.ts +5 -17
  424. package/front_end/third_party/puppeteer/package/src/node/LaunchOptions.ts +23 -7
  425. package/front_end/third_party/puppeteer/package/src/revisions.ts +3 -3
  426. package/front_end/third_party/puppeteer/package/src/util/version.ts +1 -1
  427. package/front_end/third_party/puppeteer/puppeteer-tsconfig.json +4 -0
  428. package/front_end/ui/components/annotations/AnnotationRepository.ts +153 -13
  429. package/front_end/ui/components/settings/SettingCheckbox.ts +4 -6
  430. package/front_end/ui/components/snackbars/Snackbars.docs.ts +0 -1
  431. package/front_end/ui/components/text_editor/AiCodeCompletionTeaserPlaceholder.ts +12 -3
  432. package/front_end/ui/components/text_editor/AiCodeGenerationProvider.ts +182 -0
  433. package/front_end/ui/components/text_editor/text_editor.ts +1 -0
  434. package/front_end/ui/helpers/OpenInNewTab.ts +5 -1
  435. package/front_end/ui/i18n/i18n.ts +9 -9
  436. package/front_end/ui/kit/icons/Icon.docs.ts +22 -65
  437. package/front_end/ui/kit/kit.ts +1 -0
  438. package/front_end/ui/kit/link/Link.docs.ts +15 -0
  439. package/front_end/ui/kit/link/Link.ts +151 -0
  440. package/front_end/ui/kit/link/link.css +27 -0
  441. package/front_end/ui/legacy/EmptyWidget.ts +6 -0
  442. package/front_end/ui/legacy/Floaty.ts +442 -0
  443. package/front_end/ui/legacy/InspectorView.ts +12 -0
  444. package/front_end/ui/legacy/ReportView.ts +1 -1
  445. package/front_end/ui/legacy/SelectMenu.docs.ts +0 -1
  446. package/front_end/ui/legacy/TabbedPane.ts +150 -65
  447. package/front_end/ui/legacy/Widget.ts +1 -3
  448. package/front_end/ui/legacy/components/cookie_table/CookiesTable.ts +1 -1
  449. package/front_end/ui/legacy/components/inline_editor/ColorSwatch.ts +36 -36
  450. package/front_end/ui/legacy/components/object_ui/JavaScriptREPL.ts +22 -37
  451. package/front_end/ui/legacy/components/object_ui/RemoteObjectPreviewFormatter.ts +31 -1
  452. package/front_end/ui/legacy/components/perf_ui/FlameChart.ts +2 -2
  453. package/front_end/ui/legacy/components/utils/Linkifier.ts +7 -11
  454. package/front_end/ui/legacy/floaty.css +77 -0
  455. package/front_end/ui/legacy/legacy.ts +2 -0
  456. package/front_end/ui/legacy/tabbedPane.css +4 -7
  457. package/front_end/ui/visual_logging/KnownContextValues.ts +7 -0
  458. package/inspector_overlay/loadCSS.rollup.js +5 -4
  459. package/package.json +2 -2
  460. package/front_end/panels/application/preloading/components/PreloadingMismatchedHeadersGrid.ts +0 -99
  461. package/front_end/panels/recorder/components/SelectButton.ts +0 -304
  462. package/front_end/panels/recorder/controllers/controllers.ts +0 -7
  463. package/front_end/ui/components/chrome_link/ChromeLink.ts +0 -76
  464. package/front_end/ui/components/chrome_link/chromeLink.css +0 -12
  465. package/front_end/ui/components/chrome_link/chrome_link.ts +0 -9
  466. /package/front_end/panels/recorder/components/{selectButton.css → replaySection.css} +0 -0
@@ -0,0 +1,91 @@
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 type * as Trace from '../../../../models/trace/trace.js';
6
+ import * as UI from '../../../../ui/legacy/legacy.js';
7
+
8
+ import type {BaseInsightComponent} from './BaseInsightComponent.js';
9
+ import {Cache} from './Cache.js';
10
+ import {CLSCulprits} from './CLSCulprits.js';
11
+ import {DocumentLatency} from './DocumentLatency.js';
12
+ import {DOMSize} from './DOMSize.js';
13
+ import {DuplicatedJavaScript} from './DuplicatedJavaScript.js';
14
+ import {FontDisplay} from './FontDisplay.js';
15
+ import {ForcedReflow} from './ForcedReflow.js';
16
+ import {ImageDelivery} from './ImageDelivery.js';
17
+ import {INPBreakdown} from './INPBreakdown.js';
18
+ import {LCPBreakdown} from './LCPBreakdown.js';
19
+ import {LCPDiscovery} from './LCPDiscovery.js';
20
+ import {LegacyJavaScript} from './LegacyJavaScript.js';
21
+ import {ModernHTTP} from './ModernHTTP.js';
22
+ import {NetworkDependencyTree} from './NetworkDependencyTree.js';
23
+ import {RenderBlocking} from './RenderBlocking.js';
24
+ import {SlowCSSSelector} from './SlowCSSSelector.js';
25
+ import {ThirdParties} from './ThirdParties.js';
26
+ import {Viewport} from './Viewport.js';
27
+
28
+ const {widgetConfig} = UI.Widget;
29
+
30
+ type InsightWidgetElement = UI.Widget.WidgetElement<BaseInsightComponent<Trace.Insights.Types.InsightModel>>;
31
+
32
+ /**
33
+ * Every insight (INCLUDING experimental ones).
34
+ *
35
+ * Order does not matter (but keep alphabetized).
36
+ */
37
+ const INSIGHT_NAME_TO_COMPONENT = {
38
+ Cache,
39
+ CLSCulprits,
40
+ DocumentLatency,
41
+ DOMSize,
42
+ DuplicatedJavaScript,
43
+ FontDisplay,
44
+ ForcedReflow,
45
+ ImageDelivery,
46
+ INPBreakdown,
47
+ LCPDiscovery,
48
+ LCPBreakdown,
49
+ LegacyJavaScript,
50
+ ModernHTTP,
51
+ NetworkDependencyTree,
52
+ RenderBlocking,
53
+ SlowCSSSelector,
54
+ ThirdParties,
55
+ Viewport,
56
+ };
57
+
58
+ export class InsightRenderer {
59
+ #insightWidgetCache = new WeakMap<Trace.Insights.Types.InsightModel, InsightWidgetElement>();
60
+
61
+ renderInsightToWidgetElement(
62
+ parsedTrace: Trace.TraceModel.ParsedTrace, insightSet: Trace.Insights.Types.InsightSet,
63
+ model: Trace.Insights.Types.InsightModel, insightName: string,
64
+ options: Partial<BaseInsightComponent<Trace.Insights.Types.InsightModel>>): InsightWidgetElement {
65
+ let widgetElement = this.#insightWidgetCache.get(model);
66
+ if (!widgetElement) {
67
+ widgetElement = document.createElement('devtools-widget') as InsightWidgetElement;
68
+
69
+ const componentClass = INSIGHT_NAME_TO_COMPONENT[insightName as keyof typeof INSIGHT_NAME_TO_COMPONENT];
70
+ const widget = new componentClass(widgetElement) as BaseInsightComponent<Trace.Insights.Types.InsightModel>;
71
+ widget.selected = false;
72
+ widget.parsedTrace = parsedTrace;
73
+ widget.model = model;
74
+ widget.bounds = insightSet.bounds;
75
+ widget.insightSetKey = insightSet.id;
76
+ Object.assign(widget, options);
77
+ widgetElement.widgetConfig = widgetConfig(() => {
78
+ return widget;
79
+ });
80
+
81
+ this.#insightWidgetCache.set(model, widgetElement);
82
+ }
83
+
84
+ const widget = widgetElement.getWidget();
85
+ if (widget) {
86
+ Object.assign(widget, options);
87
+ }
88
+
89
+ return widgetElement;
90
+ }
91
+ }
@@ -18,7 +18,6 @@ const {UIStrings, i18nString} = Trace.Insights.Models.LCPBreakdown;
18
18
  const {html} = Lit;
19
19
 
20
20
  export class LCPBreakdown extends BaseInsightComponent<LCPBreakdownInsightModel> {
21
- static override readonly litTagName = Lit.StaticHtml.literal`devtools-performance-lcp-breakdown`;
22
21
  override internalName = 'lcp-by-phase';
23
22
  #overlay: Trace.Types.Overlays.TimespanBreakdown|null = null;
24
23
 
@@ -136,11 +135,3 @@ export class LCPBreakdown extends BaseInsightComponent<LCPBreakdownInsightModel>
136
135
  return html`${sections}`;
137
136
  }
138
137
  }
139
-
140
- declare global {
141
- interface HTMLElementTagNameMap {
142
- 'devtools-performance-lcp-breakdown': LCPBreakdown;
143
- }
144
- }
145
-
146
- customElements.define('devtools-performance-lcp-breakdown', LCPBreakdown);
@@ -1,18 +1,19 @@
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-imperative-dom-api */
5
-
6
- import './Checklist.js';
7
4
 
8
5
  import * as i18n from '../../../../core/i18n/i18n.js';
9
6
  import type {LCPDiscoveryInsightModel} from '../../../../models/trace/insights/LCPDiscovery.js';
10
7
  import * as Trace from '../../../../models/trace/trace.js';
11
8
  import * as uiI18n from '../../../../ui/i18n/i18n.js';
9
+ import * as UI from '../../../../ui/legacy/legacy.js';
12
10
  import * as Lit from '../../../../ui/lit/lit.js';
13
11
 
14
12
  import {BaseInsightComponent} from './BaseInsightComponent.js';
15
- import {imageRef} from './EventRef.js';
13
+ import {Checklist} from './Checklist.js';
14
+ import {imageRef} from './ImageRef.js';
15
+
16
+ const {widgetConfig} = UI.Widget;
16
17
 
17
18
  const {UIStrings, i18nString, getImageData} = Trace.Insights.Models.LCPDiscovery;
18
19
 
@@ -22,7 +23,6 @@ const {html} = Lit;
22
23
  const str_ = i18n.i18n.registerUIStrings('models/trace/insights/LCPDiscovery.ts', UIStrings);
23
24
 
24
25
  export class LCPDiscovery extends BaseInsightComponent<LCPDiscoveryInsightModel> {
25
- static override readonly litTagName = Lit.StaticHtml.literal`devtools-performance-lcp-discovery`;
26
26
  override internalName = 'lcp-discovery';
27
27
 
28
28
  protected override hasAskAiSupport(): boolean {
@@ -61,10 +61,13 @@ export class LCPDiscovery extends BaseInsightComponent<LCPDiscoveryInsightModel>
61
61
  }
62
62
 
63
63
  #renderDiscoveryDelay(delay: Trace.Types.Timing.Micro): HTMLElement {
64
+ // Trace.Types.Overlays.TimespanBreakdownEntryBreakdown needs an HTMLElement, which we have to localize here.
65
+ /* eslint-disable @devtools/no-imperative-dom-api */
64
66
  const timeWrapper = document.createElement('span');
65
67
  timeWrapper.classList.add('discovery-time-ms');
66
68
  timeWrapper.innerText = i18n.TimeUtilities.formatMicroSecondsAsMillisFixed(delay);
67
69
  return uiI18n.getFormatLocalizedString(str_, UIStrings.lcpLoadDelay, {PH1: timeWrapper});
70
+ /* eslint-enable @devtools/no-imperative-dom-api */
68
71
  }
69
72
 
70
73
  override renderContent(): Lit.LitTemplate {
@@ -88,17 +91,11 @@ export class LCPDiscovery extends BaseInsightComponent<LCPDiscoveryInsightModel>
88
91
  // clang-format off
89
92
  return html`
90
93
  <div class="insight-section">
91
- <devtools-performance-checklist class="insight-section" .checklist=${imageData.checklist}></devtools-performance-checklist>
94
+ <devtools-widget .widgetConfig=${widgetConfig(Checklist, {
95
+ checklist: imageData.checklist,
96
+ })}></devtools-widget>
92
97
  <div class="insight-section">${imageRef(imageData.request)}${delayEl}</div>
93
98
  </div>`;
94
99
  // clang-format on
95
100
  }
96
101
  }
97
-
98
- declare global {
99
- interface HTMLElementTagNameMap {
100
- 'devtools-performance-lcp-discovery': LCPDiscovery;
101
- }
102
- }
103
-
104
- customElements.define('devtools-performance-lcp-discovery', LCPDiscovery);
@@ -22,7 +22,6 @@ const {UIStrings, i18nString} = Trace.Insights.Models.LegacyJavaScript;
22
22
  const {html} = Lit;
23
23
 
24
24
  export class LegacyJavaScript extends BaseInsightComponent<LegacyJavaScriptInsightModel> {
25
- static override readonly litTagName = Lit.StaticHtml.literal`devtools-performance-legacy-javascript`;
26
25
  override internalName = 'legacy-javascript';
27
26
 
28
27
  override getEstimatedSavingsTime(): Trace.Types.Timing.Milli|null {
@@ -98,11 +97,3 @@ export class LegacyJavaScript extends BaseInsightComponent<LegacyJavaScriptInsig
98
97
  // clang-format on
99
98
  }
100
99
  }
101
-
102
- declare global {
103
- interface HTMLElementTagNameMap {
104
- 'devtools-performance-legacy-javascript': LegacyJavaScript;
105
- }
106
- }
107
-
108
- customElements.define('devtools-performance-legacy-javascript', LegacyJavaScript);
@@ -17,7 +17,6 @@ const {UIStrings, i18nString, createOverlayForRequest} = Trace.Insights.Models.M
17
17
  const {html} = Lit;
18
18
 
19
19
  export class ModernHTTP extends BaseInsightComponent<ModernHTTPInsightModel> {
20
- static override readonly litTagName = Lit.StaticHtml.literal`devtools-performance-modern-http`;
21
20
  override internalName = 'modern-http';
22
21
 
23
22
  protected override hasAskAiSupport(): boolean {
@@ -68,11 +67,3 @@ export class ModernHTTP extends BaseInsightComponent<ModernHTTPInsightModel> {
68
67
  // clang-format on
69
68
  }
70
69
  }
71
-
72
- declare global {
73
- interface HTMLElementTagNameMap {
74
- 'devtools-performance-modern-http': ModernHTTP;
75
- }
76
- }
77
-
78
- customElements.define('devtools-performance-modern-http', ModernHTTP);
@@ -3,7 +3,6 @@
3
3
  // found in the LICENSE file.
4
4
 
5
5
  import './Table.js';
6
- import './NodeLink.js';
7
6
  import '../../../../ui/kit/kit.js';
8
7
 
9
8
  import * as i18n from '../../../../core/i18n/i18n.js';
@@ -17,7 +16,7 @@ import {BaseInsightComponent} from './BaseInsightComponent.js';
17
16
  import {eventRef} from './EventRef.js';
18
17
  import {md} from './Helpers.js';
19
18
  import networkDependencyTreeInsightStyles from './networkDependencyTreeInsight.css.js';
20
- import type {NodeLinkData} from './NodeLink.js';
19
+ import {nodeLink} from './NodeLink.js';
21
20
  import {renderOthersLabel, type TableData, type TableDataRow} from './Table.js';
22
21
 
23
22
  const {UIStrings, i18nString} = Trace.Insights.Models.NetworkDependencyTree;
@@ -27,7 +26,6 @@ const {html} = Lit;
27
26
  export const MAX_CHAINS_TO_SHOW = 5;
28
27
 
29
28
  export class NetworkDependencyTree extends BaseInsightComponent<NetworkDependencyTreeInsightModel> {
30
- static override readonly litTagName = Lit.StaticHtml.literal`devtools-performance-long-critical-network-tree`;
31
29
  override internalName = 'long-critical-network-tree';
32
30
 
33
31
  #relatedRequests: Set<Trace.Types.Events.SyntheticNetworkRequest>|null = null;
@@ -225,16 +223,11 @@ export class NetworkDependencyTree extends BaseInsightComponent<NetworkDependenc
225
223
  };
226
224
  }
227
225
 
228
- // clang-format off
229
- const nodeEl = html`
230
- <devtools-performance-node-link
231
- .data=${{
232
- backendNodeId: preconnectOrigin.node_id,
233
- frame: preconnectOrigin.frame,
234
- fallbackHtmlSnippet: `<link rel="preconnect" href="${preconnectOrigin.url}">`,
235
- } as NodeLinkData}>
236
- </devtools-performance-node-link>`;
237
- // clang-format on
226
+ const nodeEl = nodeLink({
227
+ backendNodeId: preconnectOrigin.node_id,
228
+ frame: preconnectOrigin.frame,
229
+ fallbackHtmlSnippet: `<link rel="preconnect" href="${preconnectOrigin.url}">`,
230
+ });
238
231
 
239
232
  return {
240
233
  values: [preconnectOrigin.url, nodeEl],
@@ -310,11 +303,3 @@ export class NetworkDependencyTree extends BaseInsightComponent<NetworkDependenc
310
303
  `;
311
304
  }
312
305
  }
313
-
314
- declare global {
315
- interface HTMLElementTagNameMap {
316
- 'devtools-performance-long-critical-network-tree': NetworkDependencyTree;
317
- }
318
- }
319
-
320
- customElements.define('devtools-performance-long-critical-network-tree', NetworkDependencyTree);
@@ -1,24 +1,67 @@
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
-
6
- // TODO: move to ui/components/node_link?
7
4
 
8
5
  import type * as Platform from '../../../../core/platform/platform.js';
9
6
  import * as SDK from '../../../../core/sdk/sdk.js';
10
7
  import type * as Protocol from '../../../../generated/protocol.js';
11
8
  import * as Buttons from '../../../../ui/components/buttons/buttons.js';
12
- import * as ComponentHelpers from '../../../../ui/components/helpers/helpers.js';
13
9
  import * as LegacyComponents from '../../../../ui/legacy/components/utils/utils.js';
10
+ import * as UI from '../../../../ui/legacy/legacy.js';
14
11
  import * as Lit from '../../../../ui/lit/lit.js';
15
12
  import * as PanelsCommon from '../../../common/common.js';
16
13
 
17
14
  const {html} = Lit;
15
+ const {widgetConfig} = UI.Widget;
16
+
17
+ interface ViewInput {
18
+ relatedNodeEl: Node|undefined;
19
+ fallbackUrl?: Platform.DevToolsPath.UrlString;
20
+ fallbackHtmlSnippet?: string;
21
+ fallbackText?: string;
22
+ }
23
+
24
+ type View = (input: ViewInput, output: undefined, target: HTMLElement) => void;
25
+
26
+ export const DEFAULT_VIEW: View = (input, output, target) => {
27
+ const {
28
+ relatedNodeEl,
29
+ fallbackUrl,
30
+ fallbackHtmlSnippet,
31
+ fallbackText,
32
+ } = input;
33
+
34
+ let template;
35
+ if (relatedNodeEl) {
36
+ template = html`<div class='node-link'>${relatedNodeEl}</div>`;
37
+ } else if (fallbackUrl) {
38
+ const MAX_URL_LENGTH = 20;
39
+ const options = {
40
+ tabStop: true,
41
+ showColumnNumber: false,
42
+ inlineFrameIndex: 0,
43
+ maxLength: MAX_URL_LENGTH,
44
+ };
45
+ const linkEl = LegacyComponents.Linkifier.Linkifier.linkifyURL(fallbackUrl, options);
46
+ template = html`<div class='node-link'>
47
+ <style>${Buttons.textButtonStyles}</style>
48
+ ${linkEl}
49
+ </div>`;
50
+ } else if (fallbackHtmlSnippet) {
51
+ // TODO: Use CodeHighlighter.
52
+ template = html`<pre style='text-wrap: auto'>${fallbackHtmlSnippet}</pre>`;
53
+ } else if (fallbackText) {
54
+ template = html`<span>${fallbackText}</span>`;
55
+ } else {
56
+ template = Lit.nothing;
57
+ }
58
+
59
+ Lit.render(template, target);
60
+ };
18
61
 
19
62
  export interface NodeLinkData {
20
63
  backendNodeId: Protocol.DOM.BackendNodeId;
21
- frame: string;
64
+ frame?: string;
22
65
  options?: PanelsCommon.DOMLinkifier.Options;
23
66
  /**
24
67
  * URL to display if backendNodeId cannot be resolved (ie for traces loaded from disk).
@@ -37,8 +80,8 @@ export interface NodeLinkData {
37
80
  fallbackText?: string;
38
81
  }
39
82
 
40
- export class NodeLink extends HTMLElement {
41
- readonly #shadow = this.attachShadow({mode: 'open'});
83
+ export class NodeLink extends UI.Widget.Widget {
84
+ #view: View;
42
85
  #backendNodeId?: Protocol.DOM.BackendNodeId;
43
86
  #frame?: string;
44
87
  #options?: PanelsCommon.DOMLinkifier.Options;
@@ -51,6 +94,11 @@ export class NodeLink extends HTMLElement {
51
94
  */
52
95
  #linkifiedNodeForBackendId = new Map<Protocol.DOM.BackendNodeId, Node|'NO_NODE_FOUND'>();
53
96
 
97
+ constructor(element?: HTMLElement, view: View = DEFAULT_VIEW) {
98
+ super(element, {useShadowDom: true});
99
+ this.#view = view;
100
+ }
101
+
54
102
  set data(data: NodeLinkData) {
55
103
  this.#backendNodeId = data.backendNodeId;
56
104
  this.#frame = data.frame;
@@ -58,7 +106,7 @@ export class NodeLink extends HTMLElement {
58
106
  this.#fallbackUrl = data.fallbackUrl;
59
107
  this.#fallbackHtmlSnippet = data.fallbackHtmlSnippet;
60
108
  this.#fallbackText = data.fallbackText;
61
- void ComponentHelpers.ScheduledRender.scheduleRender(this, this.#render);
109
+ this.requestUpdate();
62
110
  }
63
111
 
64
112
  async #linkify(): Promise<Node|undefined> {
@@ -97,42 +145,19 @@ export class NodeLink extends HTMLElement {
97
145
  return linkedNode;
98
146
  }
99
147
 
100
- async #render(): Promise<void> {
101
- const relatedNodeEl = await this.#linkify();
102
-
103
- let template;
104
- if (relatedNodeEl) {
105
- template = html`<div class='node-link'>${relatedNodeEl}</div>`;
106
- } else if (this.#fallbackUrl) {
107
- const MAX_URL_LENGTH = 20;
108
- const options = {
109
- tabStop: true,
110
- showColumnNumber: false,
111
- inlineFrameIndex: 0,
112
- maxLength: MAX_URL_LENGTH,
113
- };
114
- const linkEl = LegacyComponents.Linkifier.Linkifier.linkifyURL(this.#fallbackUrl, options);
115
- template = html`<div class='node-link'>
116
- <style>${Buttons.textButtonStyles}</style>
117
- ${linkEl}
118
- </div>`;
119
- } else if (this.#fallbackHtmlSnippet) {
120
- // TODO: Use CodeHighlighter.
121
- template = html`<pre style='text-wrap: auto'>${this.#fallbackHtmlSnippet}</pre>`;
122
- } else if (this.#fallbackText) {
123
- template = html`<span>${this.#fallbackText}</span>`;
124
- } else {
125
- template = Lit.nothing;
126
- }
127
-
128
- Lit.render(template, this.#shadow, {host: this});
148
+ override async performUpdate(): Promise<void> {
149
+ const input: ViewInput = {
150
+ relatedNodeEl: await this.#linkify(),
151
+ fallbackUrl: this.#fallbackUrl,
152
+ fallbackHtmlSnippet: this.#fallbackHtmlSnippet,
153
+ fallbackText: this.#fallbackText,
154
+ };
155
+ this.#view(input, undefined, this.contentElement);
129
156
  }
130
157
  }
131
158
 
132
- declare global {
133
- interface HTMLElementTagNameMap {
134
- 'devtools-performance-node-link': NodeLink;
135
- }
159
+ export function nodeLink(data: NodeLinkData): Lit.TemplateResult {
160
+ return html`<devtools-widget .widgetConfig=${widgetConfig(NodeLink, {
161
+ data,
162
+ })}></devtools-widget>`;
136
163
  }
137
-
138
- customElements.define('devtools-performance-node-link', NodeLink);
@@ -17,10 +17,9 @@ When creating your component, extend the `BaseInsightComponent` class (defined i
17
17
 
18
18
  In your component you can access all this data via `this.data.X`, where `X` is one of the keys listed above.
19
19
 
20
- You will have to define 4 properties on your component:
20
+ You will have to define some properties on your component:
21
21
 
22
- 1. `static readonly litTagName` is the HTML tag name given to your element (define this just as you do for all custom elements).
23
- 2. `override internalName: string` is a name used to identify the insight. It **must be unique across all insights** and is used to track if it is active or not.
22
+ 1. `override internalName: string` is a name used to identify the insight. It **must be unique across all insights** and is used to track if it is active or not.
24
23
 
25
24
  > Go to KnownContextValues.ts and add your insight: `timeline.toggle-insight.your-insight-name` and `timeline.insights.your-insight-name`.
26
25
 
@@ -16,7 +16,6 @@ const {UIStrings, i18nString, createOverlayForRequest} = Trace.Insights.Models.R
16
16
  const {html} = Lit;
17
17
 
18
18
  export class RenderBlocking extends BaseInsightComponent<RenderBlockingInsightModel> {
19
- static override readonly litTagName = Lit.StaticHtml.literal`devtools-performance-render-blocking-requests`;
20
19
  override internalName = 'render-blocking-requests';
21
20
 
22
21
  mapToRow(request: Trace.Types.Events.SyntheticNetworkRequest): TableDataRow {
@@ -71,11 +70,3 @@ export class RenderBlocking extends BaseInsightComponent<RenderBlockingInsightMo
71
70
  // clang-format on
72
71
  }
73
72
  }
74
-
75
- declare global {
76
- interface HTMLElementTagNameMap {
77
- 'devtools-performance-render-blocking-requests': RenderBlocking;
78
- }
79
- }
80
-
81
- customElements.define('devtools-performance-render-blocking-requests', RenderBlocking);
@@ -22,7 +22,6 @@ const {UIStrings, i18nString} = Trace.Insights.Models.SlowCSSSelector;
22
22
  const {html} = Lit;
23
23
 
24
24
  export class SlowCSSSelector extends BaseInsightComponent<SlowCSSSelectorInsightModel> {
25
- static override readonly litTagName = Lit.StaticHtml.literal`devtools-performance-slow-css-selector`;
26
25
  override internalName = 'slow-css-selector';
27
26
  #selectorLocations = new Map<string, Protocol.CSS.SourceRange[]>();
28
27
 
@@ -162,11 +161,3 @@ export class SlowCSSSelector extends BaseInsightComponent<SlowCSSSelectorInsight
162
161
  return html`${sections}`;
163
162
  }
164
163
  }
165
-
166
- declare global {
167
- interface HTMLElementTagNameMap {
168
- 'devtools-performance-slow-css-selector': SlowCSSSelector;
169
- }
170
- }
171
-
172
- customElements.define('devtools-performance-slow-css-selector', SlowCSSSelector);
@@ -17,7 +17,6 @@ const {html} = Lit;
17
17
  const MAX_TO_SHOW = 5;
18
18
 
19
19
  export class ThirdParties extends BaseInsightComponent<ThirdPartiesInsightModel> {
20
- static override readonly litTagName = Lit.StaticHtml.literal`devtools-performance-third-parties`;
21
20
  override internalName = 'third-parties';
22
21
 
23
22
  #mainThreadTimeAggregator: RowLimitAggregator<Trace.Extras.ThirdParties.EntitySummary> = {
@@ -110,11 +109,3 @@ export class ThirdParties extends BaseInsightComponent<ThirdPartiesInsightModel>
110
109
  return html`${sections}`;
111
110
  }
112
111
  }
113
-
114
- declare global {
115
- interface HTMLElementTagNameMap {
116
- 'devtools-performance-third-parties': ThirdParties;
117
- }
118
- }
119
-
120
- customElements.define('devtools-performance-third-parties', ThirdParties);
@@ -2,18 +2,16 @@
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 './NodeLink.js';
6
-
7
5
  import type {ViewportInsightModel} from '../../../../models/trace/insights/Viewport.js';
8
6
  import type * as Trace from '../../../../models/trace/trace.js';
9
7
  import * as Lit from '../../../../ui/lit/lit.js';
10
8
 
11
9
  import {BaseInsightComponent} from './BaseInsightComponent.js';
10
+ import {nodeLink} from './NodeLink.js';
12
11
 
13
12
  const {html} = Lit;
14
13
 
15
14
  export class Viewport extends BaseInsightComponent<ViewportInsightModel> {
16
- static override readonly litTagName = Lit.StaticHtml.literal`devtools-performance-viewport`;
17
15
  override internalName = 'viewport';
18
16
 
19
17
  protected override hasAskAiSupport(): boolean {
@@ -37,23 +35,13 @@ export class Viewport extends BaseInsightComponent<ViewportInsightModel> {
37
35
  // clang-format off
38
36
  return html`
39
37
  <div>
40
- <devtools-performance-node-link
41
- .data=${{
42
- backendNodeId,
43
- frame: this.model.viewportEvent.args.data.frame ?? '',
44
- options: {tooltip: this.model.viewportEvent.args.data.content},
45
- fallbackHtmlSnippet: `<meta name=viewport content="${this.model.viewportEvent.args.data.content}">`,
46
- }}>
47
- </devtools-performance-node-link>
38
+ ${nodeLink({
39
+ backendNodeId,
40
+ frame: this.model.viewportEvent.args.data.frame ?? '',
41
+ options: {tooltip: this.model.viewportEvent.args.data.content},
42
+ fallbackHtmlSnippet: `<meta name=viewport content="${this.model.viewportEvent.args.data.content}">`,
43
+ })}
48
44
  </div>`;
49
45
  // clang-format on
50
46
  }
51
47
  }
52
-
53
- declare global {
54
- interface HTMLElementTagNameMap {
55
- 'devtools-performance-viewport': Viewport;
56
- }
57
- }
58
-
59
- customElements.define('devtools-performance-viewport', Viewport);
@@ -60,6 +60,11 @@
60
60
  }
61
61
  }
62
62
 
63
+ .insight.ai-assistance-context {
64
+ display: block;
65
+ min-width: 200px;
66
+ }
67
+
63
68
  .insight-hover-icon {
64
69
  position: absolute;
65
70
  top: var(--sys-size-5);
@@ -15,6 +15,7 @@ import * as ForcedReflow from './ForcedReflow.js';
15
15
  import * as Helpers from './Helpers.js';
16
16
  import * as ImageDelivery from './ImageDelivery.js';
17
17
  import * as INPBreakdown from './INPBreakdown.js';
18
+ import * as InsightRenderer from './InsightRenderer.js';
18
19
  import * as LCPBreakdown from './LCPBreakdown.js';
19
20
  import * as LCPDiscovery from './LCPDiscovery.js';
20
21
  import * as LegacyJavaScript from './LegacyJavaScript.js';
@@ -43,6 +44,7 @@ export {
43
44
  Helpers,
44
45
  ImageDelivery,
45
46
  INPBreakdown,
47
+ InsightRenderer,
46
48
  LCPBreakdown,
47
49
  LCPDiscovery,
48
50
  LegacyJavaScript,
@@ -4,19 +4,21 @@
4
4
  * found in the LICENSE file.
5
5
  */
6
6
 
7
- :host {
8
- display: block;
9
- }
7
+ @scope to (devtools-widget > *) {
8
+ :host {
9
+ display: block;
10
+ }
10
11
 
11
- .breakdown {
12
- margin: 0;
13
- padding: 0;
14
- list-style: none;
15
- color: var(--sys-color-token-subtle);
16
- }
12
+ .breakdown {
13
+ margin: 0;
14
+ padding: 0;
15
+ list-style: none;
16
+ color: var(--sys-color-token-subtle);
17
+ }
17
18
 
18
- .value {
19
- display: inline-block;
20
- padding: 0 5px;
21
- color: var(--sys-color-on-surface);
19
+ .value {
20
+ display: inline-block;
21
+ padding: 0 5px;
22
+ color: var(--sys-color-on-surface);
23
+ }
22
24
  }