chrome-devtools-frontend 1.0.1549484 → 1.0.1553956

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 (601) hide show
  1. package/docs/styleguide/ux/components.md +84 -17
  2. package/docs/styleguide/ux/images/cards.png +0 -0
  3. package/docs/ui_engineering.md +2 -2
  4. package/eslint.config.mjs +7 -0
  5. package/front_end/Images/generate-css-vars.js +8 -4
  6. package/front_end/core/common/Settings.ts +20 -8
  7. package/front_end/core/host/UserMetrics.ts +3 -1
  8. package/front_end/core/i18n/collect-ui-strings.js +19 -10
  9. package/front_end/core/i18n/generate-locales-js.js +4 -4
  10. package/front_end/core/protocol_client/CDPConnection.ts +1 -0
  11. package/front_end/core/protocol_client/InspectorBackend.ts +5 -1
  12. package/front_end/core/root/Runtime.ts +0 -12
  13. package/front_end/core/sdk/DOMModel.ts +38 -3
  14. package/front_end/core/sdk/DebuggerModel.ts +9 -4
  15. package/front_end/core/sdk/IsolateManager.ts +7 -0
  16. package/front_end/core/sdk/NetworkManager.ts +12 -10
  17. package/front_end/core/sdk/PageResourceLoader.ts +11 -4
  18. package/front_end/core/sdk/RehydratingConnection.ts +5 -2
  19. package/front_end/core/sdk/SourceMapManager.ts +12 -6
  20. package/front_end/entrypoints/main/MainImpl.ts +28 -19
  21. package/front_end/foundation/Universe.ts +7 -0
  22. package/front_end/generated/InspectorBackendCommands.ts +5 -2
  23. package/front_end/generated/SupportedCSSProperties.js +14 -0
  24. package/front_end/generated/protocol-mapping.d.ts +8 -0
  25. package/front_end/generated/protocol-proxy-api.d.ts +6 -0
  26. package/front_end/generated/protocol.ts +76 -0
  27. package/front_end/models/ai_assistance/AiConversation.ts +94 -4
  28. package/front_end/models/ai_assistance/BuiltInAi.ts +79 -5
  29. package/front_end/models/ai_assistance/agents/AiAgent.ts +30 -15
  30. package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +179 -41
  31. package/front_end/models/ai_assistance/agents/StylingAgent.snapshot.txt +5 -0
  32. package/front_end/models/ai_assistance/agents/StylingAgent.ts +62 -0
  33. package/front_end/models/ai_assistance/data_formatters/NetworkRequestFormatter.ts +2 -1
  34. package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.ts +1 -7
  35. package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.snapshot.txt +124 -12
  36. package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.ts +125 -30
  37. package/front_end/models/ai_assistance/performance/AICallTree.ts +42 -0
  38. package/front_end/models/ai_code_generation/AiCodeGeneration.ts +12 -0
  39. package/front_end/models/issues_manager/AttributionReportingIssue.ts +6 -8
  40. package/front_end/models/issues_manager/BounceTrackingIssue.ts +4 -14
  41. package/front_end/models/issues_manager/ClientHintIssue.ts +5 -12
  42. package/front_end/models/issues_manager/ContentSecurityPolicyIssue.ts +5 -12
  43. package/front_end/models/issues_manager/CookieDeprecationMetadataIssue.ts +7 -14
  44. package/front_end/models/issues_manager/CookieIssue.ts +27 -30
  45. package/front_end/models/issues_manager/CorsIssue.ts +8 -17
  46. package/front_end/models/issues_manager/CrossOriginEmbedderPolicyIssue.ts +5 -8
  47. package/front_end/models/issues_manager/DeprecationIssue.ts +7 -14
  48. package/front_end/models/issues_manager/ElementAccessibilityIssue.ts +7 -14
  49. package/front_end/models/issues_manager/FederatedAuthRequestIssue.ts +4 -11
  50. package/front_end/models/issues_manager/FederatedAuthUserInfoRequestIssue.ts +4 -11
  51. package/front_end/models/issues_manager/GenericIssue.ts +11 -16
  52. package/front_end/models/issues_manager/HeavyAdIssue.ts +4 -11
  53. package/front_end/models/issues_manager/Issue.ts +13 -4
  54. package/front_end/models/issues_manager/IssueAggregator.ts +17 -2
  55. package/front_end/models/issues_manager/IssuesManager.ts +5 -0
  56. package/front_end/models/issues_manager/LowTextContrastIssue.ts +3 -10
  57. package/front_end/models/issues_manager/MixedContentIssue.ts +7 -13
  58. package/front_end/models/issues_manager/PartitioningBlobURLIssue.ts +4 -11
  59. package/front_end/models/issues_manager/PermissionElementIssue.ts +262 -0
  60. package/front_end/models/issues_manager/PropertyRuleIssue.ts +6 -12
  61. package/front_end/models/issues_manager/QuirksModeIssue.ts +3 -10
  62. package/front_end/models/issues_manager/SRIMessageSignatureIssue.ts +7 -13
  63. package/front_end/models/issues_manager/SharedArrayBufferIssue.ts +4 -11
  64. package/front_end/models/issues_manager/SharedDictionaryIssue.ts +6 -13
  65. package/front_end/models/issues_manager/StylesheetLoadingIssue.ts +8 -13
  66. package/front_end/models/issues_manager/UnencodedDigestIssue.ts +2 -9
  67. package/front_end/models/issues_manager/descriptions/permissionElementActivationDisabled.md +7 -0
  68. package/front_end/models/issues_manager/descriptions/permissionElementActivationDisabledWithOccluder.md +9 -0
  69. package/front_end/models/issues_manager/descriptions/permissionElementActivationDisabledWithOccluderParent.md +9 -0
  70. package/front_end/models/issues_manager/descriptions/permissionElementCspFrameAncestorsMissing.md +5 -0
  71. package/front_end/models/issues_manager/descriptions/permissionElementFencedFrameDisallowed.md +5 -0
  72. package/front_end/models/issues_manager/descriptions/permissionElementFontSizeTooLarge.md +5 -0
  73. package/front_end/models/issues_manager/descriptions/permissionElementFontSizeTooSmall.md +5 -0
  74. package/front_end/models/issues_manager/descriptions/permissionElementGeolocationDeprecated.md +5 -0
  75. package/front_end/models/issues_manager/descriptions/permissionElementInsetBoxShadowUnsupported.md +5 -0
  76. package/front_end/models/issues_manager/descriptions/permissionElementInvalidDisplayStyle.md +5 -0
  77. package/front_end/models/issues_manager/descriptions/permissionElementInvalidSizeValue.md +5 -0
  78. package/front_end/models/issues_manager/descriptions/permissionElementInvalidType.md +5 -0
  79. package/front_end/models/issues_manager/descriptions/permissionElementInvalidTypeActivation.md +5 -0
  80. package/front_end/models/issues_manager/descriptions/permissionElementLowContrast.md +5 -0
  81. package/front_end/models/issues_manager/descriptions/permissionElementNonOpaqueColor.md +5 -0
  82. package/front_end/models/issues_manager/descriptions/permissionElementPaddingBottomUnsupported.md +6 -0
  83. package/front_end/models/issues_manager/descriptions/permissionElementPaddingRightUnsupported.md +6 -0
  84. package/front_end/models/issues_manager/descriptions/permissionElementPermissionsPolicyBlocked.md +5 -0
  85. package/front_end/models/issues_manager/descriptions/permissionElementRegistrationFailed.md +5 -0
  86. package/front_end/models/issues_manager/descriptions/permissionElementRequestInProgress.md +5 -0
  87. package/front_end/models/issues_manager/descriptions/permissionElementSecurityChecksFailed.md +5 -0
  88. package/front_end/models/issues_manager/descriptions/permissionElementTypeNotSupported.md +5 -0
  89. package/front_end/models/issues_manager/descriptions/permissionElementUntrustedEvent.md +7 -0
  90. package/front_end/models/issues_manager/issues_manager.ts +2 -0
  91. package/front_end/models/javascript_metadata/NativeFunctions.js +8 -13
  92. package/front_end/models/stack_trace/StackTraceModel.ts +37 -18
  93. package/front_end/models/trace/Processor.ts +14 -15
  94. package/front_end/models/trace/insights/Common.ts +2 -8
  95. package/front_end/models/trace/insights/types.ts +12 -2
  96. package/front_end/models/trace/types/TraceEvents.ts +4 -1
  97. package/front_end/panels/ai_assistance/AiAssistancePanel.ts +28 -6
  98. package/front_end/panels/ai_assistance/ai_assistance-meta.ts +9 -23
  99. package/front_end/panels/ai_assistance/ai_assistance.ts +1 -0
  100. package/front_end/panels/ai_assistance/components/ChatView.ts +78 -2
  101. package/front_end/panels/ai_assistance/components/CollapsibleAssistanceContentWidget.ts +71 -0
  102. package/front_end/panels/ai_assistance/components/PerformanceAgentFlameChart.ts +126 -0
  103. package/front_end/panels/ai_assistance/components/PerformanceAgentMarkdownRenderer.ts +131 -2
  104. package/front_end/panels/ai_assistance/components/chatView.css +28 -0
  105. package/front_end/panels/ai_assistance/components/collapsibleAssistanceContentWidget.css +33 -0
  106. package/front_end/panels/application/AppManifestView.ts +1007 -521
  107. package/front_end/panels/application/ApplicationPanelSidebar.ts +22 -38
  108. package/front_end/panels/application/BackForwardCacheTreeElement.ts +2 -2
  109. package/front_end/panels/application/BounceTrackingMitigationsTreeElement.ts +2 -2
  110. package/front_end/panels/application/ExtensionStorageItemsView.ts +3 -5
  111. package/front_end/panels/application/InterestGroupTreeElement.ts +2 -2
  112. package/front_end/panels/application/KeyValueStorageItemsView.ts +3 -2
  113. package/front_end/panels/application/OpenedWindowDetailsView.ts +2 -2
  114. package/front_end/panels/application/OriginTrialTreeView.ts +1 -1
  115. package/front_end/panels/application/PreloadingTreeElement.ts +3 -3
  116. package/front_end/panels/application/ReportingApiTreeElement.ts +2 -2
  117. package/front_end/panels/application/ServiceWorkerCacheTreeElement.ts +3 -3
  118. package/front_end/panels/application/SharedStorageListTreeElement.ts +2 -2
  119. package/front_end/panels/application/StorageBucketsTreeElement.ts +3 -3
  120. package/front_end/panels/application/StorageView.ts +2 -2
  121. package/front_end/panels/application/TrustTokensTreeElement.ts +2 -2
  122. package/front_end/panels/application/components/BackForwardCacheView.ts +2 -2
  123. package/front_end/panels/application/components/PermissionsPolicySection.ts +1 -1
  124. package/front_end/panels/application/components/ProtocolHandlersView.ts +1 -1
  125. package/front_end/panels/application/components/SharedStorageMetadataView.ts +1 -1
  126. package/front_end/panels/application/components/TrustTokensView.ts +1 -1
  127. package/front_end/panels/application/preloading/PreloadingView.ts +46 -45
  128. package/front_end/panels/application/preloading/components/MismatchedPreloadingGrid.ts +80 -75
  129. package/front_end/panels/application/preloading/components/PreloadingDisabledInfobar.ts +169 -133
  130. package/front_end/panels/application/preloading/components/PreloadingGrid.ts +1 -1
  131. package/front_end/panels/application/preloading/components/RuleSetDetailsView.ts +74 -93
  132. package/front_end/panels/application/preloading/components/RuleSetGrid.ts +143 -118
  133. package/front_end/panels/application/preloading/components/UsedPreloadingView.ts +52 -12
  134. package/front_end/panels/application/preloading/components/components.ts +0 -2
  135. package/front_end/panels/changes/ChangesSidebar.ts +2 -0
  136. package/front_end/panels/changes/CombinedDiffView.ts +2 -0
  137. package/front_end/panels/common/Annotation.ts +184 -0
  138. package/front_end/panels/common/AnnotationManager.ts +208 -0
  139. package/front_end/panels/common/ExtensionView.ts +47 -0
  140. package/front_end/panels/common/PersistenceUtils.ts +22 -26
  141. package/front_end/panels/common/annotation.css +40 -0
  142. package/front_end/panels/common/common.ts +2 -0
  143. package/front_end/panels/console/ConsoleInsightTeaser.ts +187 -5
  144. package/front_end/panels/console/ConsolePinPane.ts +437 -217
  145. package/front_end/panels/console/ConsolePrompt.ts +36 -227
  146. package/front_end/panels/console/ConsoleView.ts +69 -68
  147. package/front_end/panels/console/ConsoleViewMessage.ts +18 -14
  148. package/front_end/panels/console/consoleInsightTeaser.css +23 -0
  149. package/front_end/panels/console/consoleView.css +1 -1
  150. package/front_end/panels/console_counters/WarningErrorCounter.ts +2 -0
  151. package/front_end/panels/css_overview/CSSOverviewCompletedView.ts +1 -1
  152. package/front_end/panels/elements/AdoptedStyleSheetTreeElement.ts +89 -0
  153. package/front_end/panels/elements/ColorSwatchPopoverIcon.ts +5 -5
  154. package/front_end/panels/elements/ComputedStyleWidget.ts +16 -5
  155. package/front_end/panels/elements/ElementsPanel.ts +75 -0
  156. package/front_end/panels/elements/ElementsSidebarPane.ts +1 -3
  157. package/front_end/panels/elements/ElementsTreeElement.ts +459 -451
  158. package/front_end/panels/elements/ElementsTreeOutline.ts +48 -15
  159. package/front_end/panels/elements/ShortcutTreeElement.ts +2 -2
  160. package/front_end/panels/elements/StyleEditorWidget.ts +2 -2
  161. package/front_end/panels/elements/StylePropertyTreeElement.ts +21 -20
  162. package/front_end/panels/elements/StylesSidebarPane.ts +5 -6
  163. package/front_end/panels/elements/TopLayerContainer.ts +2 -2
  164. package/front_end/panels/elements/components/ElementsBreadcrumbs.ts +1 -1
  165. package/front_end/panels/elements/components/ElementsTreeExpandButton.ts +1 -1
  166. package/front_end/panels/elements/components/QueryContainer.ts +1 -1
  167. package/front_end/panels/elements/components/StylePropertyEditor.ts +1 -1
  168. package/front_end/panels/emulation/DeviceModeWrapper.ts +48 -3
  169. package/front_end/panels/emulation/MediaQueryInspector.ts +171 -125
  170. package/front_end/panels/explain/components/ConsoleInsight.ts +181 -154
  171. package/front_end/panels/explain/components/consoleInsight.css +348 -347
  172. package/front_end/panels/issues/AffectedPermissionElementsView.ts +46 -0
  173. package/front_end/panels/issues/AffectedResourcesView.ts +2 -2
  174. package/front_end/panels/issues/AttributionReportingIssueDetailsView.ts +2 -2
  175. package/front_end/panels/issues/IssueKindView.ts +2 -2
  176. package/front_end/panels/issues/IssueView.ts +6 -4
  177. package/front_end/panels/issues/IssuesPane.ts +6 -0
  178. package/front_end/panels/js_timeline/js_timeline-meta.ts +4 -2
  179. package/front_end/panels/layer_viewer/LayerDetailsView.ts +165 -149
  180. package/front_end/panels/layer_viewer/Layers3DView.ts +131 -78
  181. package/front_end/panels/lighthouse/LighthouseStatusView.ts +149 -100
  182. package/front_end/panels/linear_memory_inspector/components/LinearMemoryHighlightChipList.ts +91 -65
  183. package/front_end/panels/linear_memory_inspector/components/LinearMemoryInspector.ts +25 -34
  184. package/front_end/panels/linear_memory_inspector/components/LinearMemoryNavigator.ts +1 -1
  185. package/front_end/panels/linear_memory_inspector/components/LinearMemoryValueInterpreter.ts +61 -45
  186. package/front_end/panels/linear_memory_inspector/components/ValueInterpreterDisplay.ts +171 -152
  187. package/front_end/panels/linear_memory_inspector/components/ValueInterpreterSettings.ts +50 -51
  188. package/front_end/panels/linear_memory_inspector/components/valueInterpreterDisplay.css +0 -13
  189. package/front_end/panels/linear_memory_inspector/components/valueInterpreterSettings.css +20 -18
  190. package/front_end/panels/media/PlayerListView.ts +1 -1
  191. package/front_end/panels/mobile_throttling/CalibrationController.ts +3 -1
  192. package/front_end/panels/mobile_throttling/ThrottlingManager.ts +2 -2
  193. package/front_end/panels/mobile_throttling/ThrottlingSettingsTab.ts +2 -3
  194. package/front_end/panels/network/NetworkDataGridNode.ts +17 -9
  195. package/front_end/panels/network/NetworkFrameGrouper.ts +2 -2
  196. package/front_end/panels/network/NetworkItemView.ts +46 -7
  197. package/front_end/panels/network/NetworkLogView.ts +10 -11
  198. package/front_end/panels/network/NetworkLogViewColumns.ts +3 -3
  199. package/front_end/panels/network/NetworkPanel.ts +63 -1
  200. package/front_end/panels/network/RequestCookiesView.ts +2 -2
  201. package/front_end/panels/network/RequestInitiatorView.ts +146 -113
  202. package/front_end/panels/network/SignedExchangeInfoView.ts +2 -2
  203. package/front_end/panels/network/components/RequestHeaderSection.css +51 -50
  204. package/front_end/panels/network/components/RequestHeaderSection.ts +81 -71
  205. package/front_end/panels/network/components/RequestHeadersView.css +1 -1
  206. package/front_end/panels/network/components/RequestHeadersView.ts +26 -11
  207. package/front_end/panels/network/components/RequestTrustTokensView.css +24 -14
  208. package/front_end/panels/network/components/RequestTrustTokensView.ts +145 -142
  209. package/front_end/panels/profiler/HeapSnapshotGridNodes.ts +3 -3
  210. package/front_end/panels/profiler/IsolateSelector.ts +2 -1
  211. package/front_end/panels/profiler/ProfileDataGrid.ts +2 -2
  212. package/front_end/panels/profiler/ProfilesPanel.ts +2 -2
  213. package/front_end/panels/protocol_monitor/JSONEditor.ts +1 -1
  214. package/front_end/panels/protocol_monitor/ProtocolMonitor.ts +49 -33
  215. package/front_end/panels/recorder/RecorderController.ts +2 -3
  216. package/front_end/panels/recorder/components/ControlButton.ts +68 -34
  217. package/front_end/panels/recorder/components/CreateRecordingView.ts +10 -7
  218. package/front_end/panels/recorder/components/ExtensionView.ts +1 -1
  219. package/front_end/panels/recorder/components/RecordingListView.ts +1 -1
  220. package/front_end/panels/recorder/components/RecordingView.ts +82 -89
  221. package/front_end/panels/recorder/components/ReplaySection.ts +226 -145
  222. package/front_end/panels/recorder/{controllers → components}/SelectorPicker.ts +129 -52
  223. package/front_end/panels/recorder/components/StepEditor.ts +21 -67
  224. package/front_end/panels/recorder/components/StepView.ts +223 -181
  225. package/front_end/panels/recorder/components/TimelineSection.ts +69 -48
  226. package/front_end/panels/recorder/components/components.ts +2 -2
  227. package/front_end/panels/recorder/components/selectorPicker.css +14 -0
  228. package/front_end/panels/recorder/components/stepEditor.css +0 -5
  229. package/front_end/panels/recorder/components/stepView.css +196 -198
  230. package/front_end/panels/recorder/extensions/ExtensionManager.ts +4 -48
  231. package/front_end/panels/recorder/models/ScreenshotUtils.ts +17 -11
  232. package/front_end/panels/screencast/ScreencastView.ts +8 -8
  233. package/front_end/panels/search/SearchView.ts +1 -1
  234. package/front_end/panels/security/CookieControlsTreeElement.ts +2 -2
  235. package/front_end/panels/security/CookieControlsView.ts +9 -16
  236. package/front_end/panels/security/CookieReportTreeElement.ts +2 -2
  237. package/front_end/panels/security/SecurityPanel.ts +5 -5
  238. package/front_end/panels/security/SecurityPanelSidebar.ts +3 -4
  239. package/front_end/panels/settings/KeybindsSettingsTab.ts +4 -4
  240. package/front_end/panels/settings/SettingsScreen.ts +2 -3
  241. package/front_end/panels/settings/components/SyncSection.ts +0 -1
  242. package/front_end/panels/snippets/SnippetsQuickOpen.ts +16 -8
  243. package/front_end/panels/sources/BreakpointEditDialog.ts +3 -3
  244. package/front_end/panels/sources/BreakpointsView.ts +1 -1
  245. package/front_end/panels/sources/CSSPlugin.ts +6 -6
  246. package/front_end/panels/sources/CallStackSidebarPane.ts +63 -78
  247. package/front_end/panels/sources/DebuggerPausedMessage.ts +3 -3
  248. package/front_end/panels/sources/FilteredUISourceCodeListProvider.ts +39 -30
  249. package/front_end/panels/sources/GoToLineQuickOpen.ts +11 -7
  250. package/front_end/panels/sources/NavigatorView.ts +2 -2
  251. package/front_end/panels/sources/OpenFileQuickOpen.ts +11 -15
  252. package/front_end/panels/sources/OutlineQuickOpen.ts +23 -26
  253. package/front_end/panels/sources/SourcesPanel.ts +1 -11
  254. package/front_end/panels/sources/SourcesView.ts +2 -2
  255. package/front_end/panels/sources/TabbedEditorContainer.ts +13 -11
  256. package/front_end/panels/sources/ThreadsSidebarPane.ts +96 -101
  257. package/front_end/panels/sources/UISourceCodeFrame.ts +5 -5
  258. package/front_end/panels/sources/threadsSidebarPane.css +6 -5
  259. package/front_end/panels/timeline/InteractionsTrackAppender.ts +2 -3
  260. package/front_end/panels/timeline/TimelineFlameChartDataProvider.ts +23 -33
  261. package/front_end/panels/timeline/TimelineFlameChartNetworkDataProvider.ts +4 -3
  262. package/front_end/panels/timeline/TimelineFlameChartView.ts +12 -0
  263. package/front_end/panels/timeline/TimelineHistoryManager.ts +2 -2
  264. package/front_end/panels/timeline/TimelinePanel.ts +17 -14
  265. package/front_end/panels/timeline/components/CPUThrottlingSelector.ts +1 -1
  266. package/front_end/panels/timeline/components/IgnoreListSetting.ts +164 -142
  267. package/front_end/panels/timeline/components/InteractionBreakdown.ts +48 -28
  268. package/front_end/panels/timeline/components/LayoutShiftDetails.ts +18 -23
  269. package/front_end/panels/timeline/components/LiveMetricsView.ts +1 -1
  270. package/front_end/panels/timeline/components/NetworkRequestTooltip.ts +99 -74
  271. package/front_end/panels/timeline/components/NetworkThrottlingSelector.ts +1 -1
  272. package/front_end/panels/timeline/components/OriginMap.ts +1 -1
  273. package/front_end/panels/timeline/components/SidebarInsightsTab.ts +9 -12
  274. package/front_end/panels/timeline/components/SidebarSingleInsightSet.ts +262 -291
  275. package/front_end/panels/timeline/components/Utils.ts +25 -0
  276. package/front_end/panels/timeline/components/insights/BaseInsightComponent.ts +210 -146
  277. package/front_end/panels/timeline/components/insights/CLSCulprits.ts +8 -20
  278. package/front_end/panels/timeline/components/insights/Cache.ts +0 -9
  279. package/front_end/panels/timeline/components/insights/Checklist.ts +1 -1
  280. package/front_end/panels/timeline/components/insights/DOMSize.ts +12 -34
  281. package/front_end/panels/timeline/components/insights/DocumentLatency.ts +0 -9
  282. package/front_end/panels/timeline/components/insights/DuplicatedJavaScript.ts +0 -9
  283. package/front_end/panels/timeline/components/insights/EventRef.ts +47 -109
  284. package/front_end/panels/timeline/components/insights/FontDisplay.ts +0 -9
  285. package/front_end/panels/timeline/components/insights/ForcedReflow.ts +0 -9
  286. package/front_end/panels/timeline/components/insights/INPBreakdown.ts +0 -9
  287. package/front_end/panels/timeline/components/insights/ImageDelivery.ts +2 -11
  288. package/front_end/panels/timeline/components/insights/ImageRef.ts +112 -0
  289. package/front_end/panels/timeline/components/insights/InsightRenderer.ts +91 -0
  290. package/front_end/panels/timeline/components/insights/LCPBreakdown.ts +0 -9
  291. package/front_end/panels/timeline/components/insights/LCPDiscovery.ts +4 -11
  292. package/front_end/panels/timeline/components/insights/LegacyJavaScript.ts +0 -9
  293. package/front_end/panels/timeline/components/insights/ModernHTTP.ts +0 -9
  294. package/front_end/panels/timeline/components/insights/NetworkDependencyTree.ts +7 -22
  295. package/front_end/panels/timeline/components/insights/NodeLink.ts +68 -43
  296. package/front_end/panels/timeline/components/insights/README.md +2 -3
  297. package/front_end/panels/timeline/components/insights/RenderBlocking.ts +0 -9
  298. package/front_end/panels/timeline/components/insights/SlowCSSSelector.ts +0 -9
  299. package/front_end/panels/timeline/components/insights/ThirdParties.ts +0 -9
  300. package/front_end/panels/timeline/components/insights/Viewport.ts +7 -19
  301. package/front_end/panels/timeline/components/insights/baseInsightComponent.css +5 -0
  302. package/front_end/panels/timeline/components/insights/insights.ts +2 -0
  303. package/front_end/panels/timeline/components/interactionBreakdown.css +15 -13
  304. package/front_end/panels/timeline/enable-easter-egg.js +7 -3
  305. package/front_end/panels/timeline/overlays/components/EntriesLinkOverlay.ts +1 -1
  306. package/front_end/panels/timeline/overlays/components/EntryLabelOverlay.ts +1 -1
  307. package/front_end/panels/timeline/timeline-meta.ts +3 -2
  308. package/front_end/panels/utils/utils.ts +1 -0
  309. package/front_end/third_party/chromium/README.chromium +1 -1
  310. package/front_end/third_party/puppeteer/README.chromium +2 -2
  311. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/BluetoothEmulation.d.ts +96 -0
  312. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/BluetoothEmulation.d.ts.map +1 -0
  313. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/BluetoothEmulation.js +8 -0
  314. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/BluetoothEmulation.js.map +1 -0
  315. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.d.ts +87 -0
  316. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.d.ts.map +1 -1
  317. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.js.map +1 -1
  318. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/DeviceRequestPrompt.d.ts +2 -6
  319. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/DeviceRequestPrompt.d.ts.map +1 -1
  320. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/DeviceRequestPrompt.js +5 -24
  321. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/DeviceRequestPrompt.js.map +1 -1
  322. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.d.ts +5 -0
  323. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.d.ts.map +1 -1
  324. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.js.map +1 -1
  325. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/api.d.ts +1 -0
  326. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/api.d.ts.map +1 -1
  327. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/api.js.map +1 -1
  328. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BluetoothEmulation.d.ts +18 -0
  329. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BluetoothEmulation.d.ts.map +1 -0
  330. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BluetoothEmulation.js +42 -0
  331. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BluetoothEmulation.js.map +1 -0
  332. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.d.ts +4 -1
  333. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.d.ts.map +1 -1
  334. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.js +10 -0
  335. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.js.map +1 -1
  336. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/DeviceRequestPrompt.d.ts +27 -0
  337. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/DeviceRequestPrompt.d.ts.map +1 -0
  338. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/DeviceRequestPrompt.js +90 -0
  339. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/DeviceRequestPrompt.js.map +1 -0
  340. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.d.ts +3 -1
  341. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.d.ts.map +1 -1
  342. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.js +3 -2
  343. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.js.map +1 -1
  344. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.d.ts +4 -1
  345. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.d.ts.map +1 -1
  346. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.js +5 -2
  347. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.js.map +1 -1
  348. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.d.ts +4 -0
  349. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.d.ts.map +1 -1
  350. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.js +14 -2
  351. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.js.map +1 -1
  352. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/util.d.ts.map +1 -1
  353. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/util.js +7 -0
  354. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/util.js.map +1 -1
  355. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Accessibility.js +1 -1
  356. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Accessibility.js.map +1 -1
  357. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BluetoothEmulation.d.ts +18 -0
  358. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BluetoothEmulation.d.ts.map +1 -0
  359. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BluetoothEmulation.js +30 -0
  360. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BluetoothEmulation.js.map +1 -0
  361. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.d.ts +5 -2
  362. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.d.ts.map +1 -1
  363. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.js +22 -3
  364. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.js.map +1 -1
  365. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/CdpSession.d.ts +1 -1
  366. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/CdpSession.d.ts.map +1 -1
  367. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/DeviceRequestPrompt.d.ts +2 -3
  368. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/DeviceRequestPrompt.d.ts.map +1 -1
  369. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/DeviceRequestPrompt.js +4 -6
  370. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/DeviceRequestPrompt.js.map +1 -1
  371. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/FrameManager.d.ts +2 -2
  372. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/FrameManager.d.ts.map +1 -1
  373. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/FrameManager.js +1 -1
  374. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/FrameManager.js.map +1 -1
  375. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.d.ts +2 -0
  376. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.d.ts.map +1 -1
  377. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.js +8 -0
  378. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.js.map +1 -1
  379. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/WebWorker.d.ts.map +1 -1
  380. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/WebWorker.js +8 -3
  381. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/WebWorker.js.map +1 -1
  382. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/cdp.d.ts +1 -0
  383. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/cdp.d.ts.map +1 -1
  384. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/cdp.js +1 -0
  385. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/cdp.js.map +1 -1
  386. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/BrowserConnector.js +30 -0
  387. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/BrowserConnector.js.map +1 -1
  388. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConnectOptions.d.ts +15 -0
  389. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConnectOptions.d.ts.map +1 -1
  390. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/injected/injected.d.ts +1 -1
  391. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ChromeLauncher.d.ts +1 -1
  392. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ChromeLauncher.d.ts.map +1 -1
  393. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ChromeLauncher.js +2 -13
  394. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ChromeLauncher.js.map +1 -1
  395. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/LaunchOptions.d.ts +5 -3
  396. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/LaunchOptions.d.ts.map +1 -1
  397. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/LaunchOptions.js +17 -0
  398. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/LaunchOptions.js.map +1 -1
  399. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.d.ts +3 -3
  400. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js +3 -3
  401. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js.map +1 -1
  402. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/Mutex.d.ts +2 -2
  403. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/version.d.ts +1 -1
  404. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/version.js +1 -1
  405. package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.d.ts +221 -4
  406. package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.js +182 -95
  407. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/BluetoothEmulation.d.ts +96 -0
  408. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/BluetoothEmulation.d.ts.map +1 -0
  409. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/BluetoothEmulation.js +7 -0
  410. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/BluetoothEmulation.js.map +1 -0
  411. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.d.ts +87 -0
  412. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.d.ts.map +1 -1
  413. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.js.map +1 -1
  414. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/DeviceRequestPrompt.d.ts +2 -6
  415. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/DeviceRequestPrompt.d.ts.map +1 -1
  416. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/DeviceRequestPrompt.js +4 -22
  417. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/DeviceRequestPrompt.js.map +1 -1
  418. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.d.ts +5 -0
  419. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.d.ts.map +1 -1
  420. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.js.map +1 -1
  421. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/api.d.ts +1 -0
  422. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/api.d.ts.map +1 -1
  423. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/api.js.map +1 -1
  424. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BluetoothEmulation.d.ts +18 -0
  425. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BluetoothEmulation.d.ts.map +1 -0
  426. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BluetoothEmulation.js +38 -0
  427. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BluetoothEmulation.js.map +1 -0
  428. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.d.ts +4 -1
  429. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.d.ts.map +1 -1
  430. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.js +10 -0
  431. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.js.map +1 -1
  432. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/DeviceRequestPrompt.d.ts +27 -0
  433. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/DeviceRequestPrompt.d.ts.map +1 -0
  434. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/DeviceRequestPrompt.js +85 -0
  435. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/DeviceRequestPrompt.js.map +1 -0
  436. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.d.ts +3 -1
  437. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.d.ts.map +1 -1
  438. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.js +3 -2
  439. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.js.map +1 -1
  440. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.d.ts +4 -1
  441. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.d.ts.map +1 -1
  442. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.js +5 -2
  443. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.js.map +1 -1
  444. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.d.ts +4 -0
  445. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.d.ts.map +1 -1
  446. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.js +14 -2
  447. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.js.map +1 -1
  448. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/util.d.ts.map +1 -1
  449. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/util.js +7 -0
  450. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/util.js.map +1 -1
  451. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Accessibility.js +1 -1
  452. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Accessibility.js.map +1 -1
  453. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BluetoothEmulation.d.ts +18 -0
  454. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BluetoothEmulation.d.ts.map +1 -0
  455. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BluetoothEmulation.js +26 -0
  456. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BluetoothEmulation.js.map +1 -0
  457. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.d.ts +5 -2
  458. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.d.ts.map +1 -1
  459. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.js +22 -3
  460. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.js.map +1 -1
  461. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/CdpSession.d.ts +1 -1
  462. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/CdpSession.d.ts.map +1 -1
  463. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/DeviceRequestPrompt.d.ts +2 -3
  464. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/DeviceRequestPrompt.d.ts.map +1 -1
  465. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/DeviceRequestPrompt.js +2 -4
  466. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/DeviceRequestPrompt.js.map +1 -1
  467. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/FrameManager.d.ts +2 -2
  468. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/FrameManager.d.ts.map +1 -1
  469. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/FrameManager.js +2 -2
  470. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/FrameManager.js.map +1 -1
  471. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.d.ts +2 -0
  472. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.d.ts.map +1 -1
  473. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.js +8 -0
  474. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.js.map +1 -1
  475. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/WebWorker.d.ts.map +1 -1
  476. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/WebWorker.js +8 -3
  477. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/WebWorker.js.map +1 -1
  478. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/cdp.d.ts +1 -0
  479. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/cdp.d.ts.map +1 -1
  480. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/cdp.js +1 -0
  481. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/cdp.js.map +1 -1
  482. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserConnector.js +31 -1
  483. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserConnector.js.map +1 -1
  484. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConnectOptions.d.ts +15 -0
  485. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConnectOptions.d.ts.map +1 -1
  486. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ChromeLauncher.d.ts +1 -1
  487. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ChromeLauncher.d.ts.map +1 -1
  488. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ChromeLauncher.js +2 -13
  489. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ChromeLauncher.js.map +1 -1
  490. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/LaunchOptions.d.ts +5 -3
  491. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/LaunchOptions.d.ts.map +1 -1
  492. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/LaunchOptions.js +16 -1
  493. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/LaunchOptions.js.map +1 -1
  494. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.d.ts +3 -3
  495. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js +3 -3
  496. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js.map +1 -1
  497. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/version.d.ts +1 -1
  498. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/version.js +1 -1
  499. package/front_end/third_party/puppeteer/package/lib/types.d.ts +221 -4
  500. package/front_end/third_party/puppeteer/package/package.json +4 -4
  501. package/front_end/third_party/puppeteer/package/src/api/BluetoothEmulation.ts +103 -0
  502. package/front_end/third_party/puppeteer/package/src/api/Browser.ts +96 -1
  503. package/front_end/third_party/puppeteer/package/src/api/DeviceRequestPrompt.ts +2 -10
  504. package/front_end/third_party/puppeteer/package/src/api/Page.ts +6 -0
  505. package/front_end/third_party/puppeteer/package/src/api/api.ts +1 -0
  506. package/front_end/third_party/puppeteer/package/src/bidi/BluetoothEmulation.ts +52 -0
  507. package/front_end/third_party/puppeteer/package/src/bidi/Browser.ts +15 -0
  508. package/front_end/third_party/puppeteer/package/src/bidi/DeviceRequestPrompt.ts +138 -0
  509. package/front_end/third_party/puppeteer/package/src/bidi/Frame.ts +7 -3
  510. package/front_end/third_party/puppeteer/package/src/bidi/Page.ts +10 -2
  511. package/front_end/third_party/puppeteer/package/src/bidi/core/BrowsingContext.ts +30 -2
  512. package/front_end/third_party/puppeteer/package/src/bidi/util.ts +8 -0
  513. package/front_end/third_party/puppeteer/package/src/cdp/Accessibility.ts +1 -1
  514. package/front_end/third_party/puppeteer/package/src/cdp/BluetoothEmulation.ts +47 -0
  515. package/front_end/third_party/puppeteer/package/src/cdp/Browser.ts +33 -3
  516. package/front_end/third_party/puppeteer/package/src/cdp/CdpSession.ts +1 -1
  517. package/front_end/third_party/puppeteer/package/src/cdp/DeviceRequestPrompt.ts +3 -8
  518. package/front_end/third_party/puppeteer/package/src/cdp/Frame.ts +2 -2
  519. package/front_end/third_party/puppeteer/package/src/cdp/FrameManager.ts +9 -4
  520. package/front_end/third_party/puppeteer/package/src/cdp/Page.ts +13 -0
  521. package/front_end/third_party/puppeteer/package/src/cdp/WebWorker.ts +8 -3
  522. package/front_end/third_party/puppeteer/package/src/cdp/cdp.ts +1 -0
  523. package/front_end/third_party/puppeteer/package/src/common/BrowserConnector.ts +45 -1
  524. package/front_end/third_party/puppeteer/package/src/common/ConnectOptions.ts +20 -0
  525. package/front_end/third_party/puppeteer/package/src/node/ChromeLauncher.ts +5 -17
  526. package/front_end/third_party/puppeteer/package/src/node/LaunchOptions.ts +23 -7
  527. package/front_end/third_party/puppeteer/package/src/revisions.ts +3 -3
  528. package/front_end/third_party/puppeteer/package/src/util/version.ts +1 -1
  529. package/front_end/third_party/puppeteer/puppeteer-tsconfig.json +4 -0
  530. package/front_end/ui/components/adorners/Adorner.ts +20 -0
  531. package/front_end/ui/components/annotations/AnnotationRepository.ts +154 -14
  532. package/front_end/ui/components/buttons/Button.ts +1 -1
  533. package/front_end/ui/components/buttons/FloatingButton.ts +1 -1
  534. package/front_end/ui/components/highlighting/HighlightElement.ts +15 -2
  535. package/front_end/ui/components/icon_button/FileSourceIcon.ts +1 -1
  536. package/front_end/ui/components/icon_button/IconButton.ts +1 -1
  537. package/front_end/ui/components/icon_button/icon_button.ts +0 -2
  538. package/front_end/ui/components/issue_counter/IssueCounter.ts +1 -1
  539. package/front_end/ui/components/issue_counter/IssueLinkIcon.ts +1 -1
  540. package/front_end/ui/components/markdown_view/MarkdownImage.ts +3 -3
  541. package/front_end/ui/components/request_link_icon/RequestLinkIcon.ts +1 -1
  542. package/front_end/ui/components/settings/SettingDeprecationWarning.ts +1 -1
  543. package/front_end/ui/components/snackbars/Snackbars.docs.ts +0 -1
  544. package/front_end/ui/components/survey_link/SurveyLink.ts +1 -1
  545. package/front_end/ui/components/text_editor/AiCodeCompletionTeaserPlaceholder.ts +12 -3
  546. package/front_end/ui/components/text_editor/AiCodeGenerationProvider.ts +182 -0
  547. package/front_end/ui/components/text_editor/config.ts +2 -2
  548. package/front_end/ui/components/text_editor/text_editor.ts +1 -0
  549. package/front_end/ui/helpers/OpenInNewTab.ts +5 -1
  550. package/front_end/ui/i18n/i18n.ts +9 -9
  551. package/front_end/ui/kit/cards/Card.docs.ts +43 -0
  552. package/front_end/ui/kit/icons/Icon.docs.ts +34 -0
  553. package/front_end/ui/{components/icon_button → kit/icons}/Icon.ts +4 -4
  554. package/front_end/ui/kit/kit.ts +2 -0
  555. package/front_end/ui/kit/link/Link.docs.ts +15 -0
  556. package/front_end/ui/kit/link/Link.ts +151 -0
  557. package/front_end/ui/kit/link/link.css +27 -0
  558. package/front_end/ui/legacy/EmptyWidget.ts +6 -0
  559. package/front_end/ui/legacy/Floaty.ts +442 -0
  560. package/front_end/ui/legacy/Infobar.ts +3 -3
  561. package/front_end/ui/legacy/InspectorView.ts +15 -3
  562. package/front_end/ui/legacy/ReportView.ts +1 -1
  563. package/front_end/ui/legacy/SearchableView.ts +2 -2
  564. package/front_end/ui/legacy/SelectMenu.docs.ts +0 -1
  565. package/front_end/ui/legacy/SoftContextMenu.ts +5 -5
  566. package/front_end/ui/legacy/SoftDropDown.ts +2 -2
  567. package/front_end/ui/legacy/TabbedPane.ts +139 -61
  568. package/front_end/ui/legacy/Toolbar.ts +3 -3
  569. package/front_end/ui/legacy/Treeoutline.ts +2 -2
  570. package/front_end/ui/legacy/UIUtils.ts +4 -4
  571. package/front_end/ui/legacy/ViewManager.ts +4 -4
  572. package/front_end/ui/legacy/components/color_picker/ContrastDetails.ts +8 -8
  573. package/front_end/ui/legacy/components/color_picker/Spectrum.ts +4 -4
  574. package/front_end/ui/legacy/components/cookie_table/CookiesTable.ts +5 -5
  575. package/front_end/ui/legacy/components/inline_editor/ColorSwatch.ts +36 -36
  576. package/front_end/ui/legacy/components/inline_editor/FontEditor.ts +2 -2
  577. package/front_end/ui/legacy/components/inline_editor/Swatches.ts +5 -5
  578. package/front_end/ui/legacy/components/object_ui/CustomPreviewComponent.ts +3 -3
  579. package/front_end/ui/legacy/components/object_ui/JavaScriptREPL.ts +22 -37
  580. package/front_end/ui/legacy/components/object_ui/RemoteObjectPreviewFormatter.ts +31 -1
  581. package/front_end/ui/legacy/components/perf_ui/FlameChart.ts +2 -2
  582. package/front_end/ui/legacy/components/perf_ui/OverviewGrid.ts +3 -3
  583. package/front_end/ui/legacy/components/quick_open/CommandMenu.ts +22 -29
  584. package/front_end/ui/legacy/components/quick_open/FilteredListWidget.ts +8 -15
  585. package/front_end/ui/legacy/components/quick_open/HelpQuickOpen.ts +11 -14
  586. package/front_end/ui/legacy/components/utils/Linkifier.ts +7 -11
  587. package/front_end/ui/legacy/floaty.css +77 -0
  588. package/front_end/ui/legacy/legacy.ts +2 -0
  589. package/front_end/ui/visual_logging/KnownContextValues.ts +6 -0
  590. package/inspector_overlay/loadCSS.rollup.js +5 -4
  591. package/mcp/mcp.ts +1 -0
  592. package/package.json +2 -2
  593. package/front_end/panels/application/preloading/components/PreloadingMismatchedHeadersGrid.ts +0 -99
  594. package/front_end/panels/recorder/components/SelectButton.ts +0 -304
  595. package/front_end/panels/recorder/controllers/controllers.ts +0 -7
  596. package/front_end/ui/components/chrome_link/ChromeLink.ts +0 -76
  597. package/front_end/ui/components/chrome_link/chromeLink.css +0 -12
  598. package/front_end/ui/components/chrome_link/chrome_link.ts +0 -9
  599. package/front_end/ui/components/icon_button/Icon.docs.ts +0 -78
  600. /package/front_end/panels/recorder/components/{selectButton.css → replaySection.css} +0 -0
  601. /package/front_end/ui/{components/icon_button → kit/icons}/icon.css +0 -0
@@ -123,19 +123,10 @@ button.addEventListener('click', event => onClick(event));
123
123
 
124
124
  ### Resources
125
125
 
126
- #### For developers
127
-
128
- ##### Implementation
129
-
130
126
  * [`devtools-button`](https://source.chromium.org/chromium/chromium/src/+/main:third_party/devtools-frontend/src/front_end/ui/components/buttons/Button.ts)
131
-
132
- #### For designers
133
-
134
- ##### Figma
135
-
136
- * [Buttons](https://www.figma.com/design/A5iQBBNAe5zPFpJvUzUgW8/CDT-design-kit?node-id=481-2167&m=dev)
127
+ * [Buttons Figma](https://www.figma.com/design/A5iQBBNAe5zPFpJvUzUgW8/CDT-design-kit?node-id=481-2167&m=dev)
137
128
  * [Icon
138
- buttons](https://www.figma.com/design/A5iQBBNAe5zPFpJvUzUgW8/CDT-design-kit?node-id=571-616&m=dev)
129
+ buttons Figma](https://www.figma.com/design/A5iQBBNAe5zPFpJvUzUgW8/CDT-design-kit?node-id=571-616&m=dev)
139
130
 
140
131
  ## Combo Boxes and Single Select menus
141
132
 
@@ -290,14 +281,39 @@ Find an exhaustive collection of icons currently used in DevTools [here](https:/
290
281
 
291
282
  #### Developer guidelines
292
283
 
293
- For some frequently used icons e.g. cross-circle, warning-filled etc. colors are auto-set in the component. See full list [here](https://source.chromium.org/chromium/chromium/src/+/main:third_party/devtools-frontend/src/front_end/ui/components/icon_button/icon.css;l=47)
284
+ For some frequently used icons, colors are auto-set in the component. The full list of icons with auto-set colors is:
285
+
286
+ - `warning-filled`
287
+ - `issue-exclamation-filled`
288
+ - `cross-circle`
289
+ - `cross-circle-filled`
290
+ - `issue-cross-filled`
291
+ - `small-status-dot`
292
+ - `issue-text-filled`
293
+ - `large-arrow-right-filled`
294
+ - `code-circle`
295
+ - `file-document`
296
+ - `file-font`
297
+ - `file-script`
298
+ - `file-stylesheet`
299
+ - `file-media`
300
+
301
+ For the definitions, refer to the [icon.css file](https://source.chromium.org/chromium/chromium/src/+/main:third_party/devtools-frontend/src/front_end/ui/kit/icons/icon.css).
302
+
303
+ The default icon size is at 20x20 pixels. There are predefined classes for other sizes, don't deviate from them:
304
+
305
+ * `.extra-small`: 12x12 pixels
306
+ * `.small`: 14x14 pixels
307
+ * `.medium`: 16x16 pixels
308
+ * `.large`: 18x18 pixels
309
+ * `.extra-large`: 20x20 pixels
294
310
 
295
311
  ##### Dos and Don'ts
296
312
 
297
313
  ###### Do
298
314
 
299
315
  * Set class and change color in .css files
300
- * Set one of the predefined classes to change icon size e.g. extra-small for 12px
316
+ * Set one of the predefined classes to change icon size.
301
317
 
302
318
  ###### Don't
303
319
 
@@ -313,11 +329,12 @@ Usage with lit-html:
313
329
  html`<devtools-icon name=${'some-icon-name'}></devtools-icon>`;
314
330
  ```
315
331
 
316
- Usage with the imperative API:
332
+ ### Resources
317
333
 
318
- ```ts
319
- const someIcon = IconButton.Icon.create('some-icon-name', 'some-class');
320
- ```
334
+ * [`devtools-icon`](https://source.chromium.org/chromium/chromium/src/+/main:third_party/devtools-frontend/src/front_end/ui/kit/icons/Icon.ts)
335
+ * [Component Documentation Example](https://chromedevtools.github.io/devtools-frontend/#Icon)
336
+ * [Icon Figma](https://www.figma.com/design/A5iQBBNAe5zPFpJvUzUgW8/Chrome-DevTools-Design-Kit?node-id=4323-3772)
337
+ * [Greenlines](http://go/chrome-devtools:icons-greenlines)
321
338
 
322
339
  ## Context menus
323
340
 
@@ -568,3 +585,53 @@ UI.ContextMenu.registerItem({
568
585
  ```
569
586
 
570
587
  This will automatically add the "Open file" action to the context menu that appears when clicking the Elements panel's 3-dot button.
588
+
589
+
590
+ ## Cards
591
+
592
+ ![Card component](images/cards.png)
593
+
594
+ ### Usage
595
+
596
+ #### Developer guidelines
597
+
598
+ ###### Basic card with heading
599
+
600
+ Usage with lit-html:
601
+
602
+ ```ts
603
+ html`<devtools-card heading="Simple card">
604
+ <div class="content">This is a simple card.</div>
605
+ </devtools-card>`
606
+ ```
607
+
608
+ ###### Card without a heading
609
+
610
+ Usage with lit-html:
611
+
612
+ ```ts
613
+ html`<devtools-card>
614
+ <div class="content">This is a card without a heading.</div>
615
+ </devtools-card>`
616
+ ```
617
+
618
+ ###### Card with rich heading
619
+
620
+ Usage with lit-html:
621
+
622
+ ```ts
623
+ html`<devtools-card heading="Card with rich heading">
624
+ <span slot="heading-prefix">Slotted heading prefix</span>
625
+ <span slot="heading-suffix">Slotted heading suffix</span>
626
+ <div class="content">This is a card with a rich heading.</div>
627
+ </devtools-card>`
628
+ ```
629
+
630
+ ### Resources
631
+
632
+ * [`devtools-card`](https://source.chromium.org/chromium/chromium/src/+/main:third_party/devtools-frontend/src/front_end/ui/kit/cards/Card.ts)
633
+ * [Component Documentation Example](https://chromedevtools.github.io/devtools-frontend/#Card)
634
+
635
+ * [Cards Figma](https://www.figma.com/design/A5iQBBNAe5zPFpJvUzUgW8/Chrome-DevTools-Design-Kit?node-id=3456-939)
636
+
637
+ * [Greenlines](http:/go/chrome-devtools:cards-greenlines)
@@ -730,7 +730,7 @@ class SomeWidget extends UI.Widget.Widget {
730
730
  }
731
731
  ```
732
732
 
733
- ## Migrating `IconButton.Icon.Icon`
733
+ ## Migrating `Icon`
734
734
 
735
735
  Replace the imperative `Icon` creation with the declarative `<devtools-icon>` component.
736
736
 
@@ -740,7 +740,7 @@ Replace the imperative `Icon` creation with the declarative `<devtools-icon>` co
740
740
  class SomeWidget extends UI.Widget.Widget {
741
741
  constructor() {
742
742
  super();
743
- const icon = new IconButton.Icon.Icon();
743
+ const icon = new Icon();
744
744
  icon.data = {iconName: 'checkmark', color: 'var(--icon-checkmark-green)', width: '14px', height: '14px'};
745
745
  this.contentElement.appendChild(icon);
746
746
  }
package/eslint.config.mjs CHANGED
@@ -703,6 +703,13 @@ export default defineConfig([
703
703
  ],
704
704
  },
705
705
  },
706
+ {
707
+ name: 'Front-end docs files',
708
+ files: ['front_end/**/*.docs.ts'],
709
+ rules: {
710
+ 'no-console': 'off',
711
+ },
712
+ },
706
713
  {
707
714
  name: 'TypeScript test files',
708
715
  files: [
@@ -1,9 +1,10 @@
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
- const path = require('node:path');
4
+ import * as path from 'node:path';
5
+
6
+ import {writeIfChanged} from '../../scripts/build/ninja/write-if-changed.js';
5
7
 
6
- const {writeIfChanged} = require('../../scripts/build/ninja/write-if-changed.js');
7
8
  const [, , buildTimestamp, targetGenDir, targetName, ...imageSources] = process.argv;
8
9
 
9
10
  /**
@@ -15,7 +16,7 @@ function generateCSSVariableDefinition(fileName) {
15
16
  // We have to remove the `src/` part from any SVG file names for the CSS variables, while
16
17
  // we still use the full URL for the meta.url import. That's because the rollup-plugin-import-meta-assets
17
18
  // rewrites the image URLs to the new location, but doesn't modify the generated CSS variable name
18
- fileName.replace('src\/', '').replace(path.extname(fileName), '')}', 'url(\\"' + new URL('./${
19
+ fileName.replace('src/', '').replace(path.extname(fileName), '')}', 'url(\\"' + new URL('./${
19
20
  fileName}', import.meta.url).toString() + '\\")');`;
20
21
  }
21
22
 
@@ -45,4 +46,7 @@ const tsconfigContent = `{
45
46
  }
46
47
  `;
47
48
 
48
- writeIfChanged(path.join(targetGenDir, `${targetName}-tsconfig.json`), tsconfigContent);
49
+ writeIfChanged(
50
+ path.join(targetGenDir, `${targetName}-tsconfig.json`),
51
+ tsconfigContent,
52
+ );
@@ -246,17 +246,29 @@ export interface SettingsBackingStore {
246
246
  clear(): void;
247
247
  }
248
248
 
249
- export const NOOP_STORAGE: SettingsBackingStore = {
250
- register: () => {},
251
- set: () => {},
252
- get: () => Promise.resolve(''),
253
- remove: () => {},
254
- clear: () => {},
255
- };
249
+ export class InMemoryStorage implements SettingsBackingStore {
250
+ #store = new Map();
251
+
252
+ register(_setting: string): void {
253
+ }
254
+ set(key: string, value: string): void {
255
+ this.#store.set(key, value);
256
+ }
257
+ get(key: string): Promise<string> {
258
+ return this.#store.get(key);
259
+ }
260
+ remove(key: string): void {
261
+ this.#store.delete(key);
262
+ }
263
+ clear(): void {
264
+ this.#store.clear();
265
+ }
266
+ }
256
267
 
257
268
  export class SettingsStorage {
258
269
  constructor(
259
- private object: Record<string, string>, private readonly backingStore: SettingsBackingStore = NOOP_STORAGE,
270
+ private object: Record<string, string>,
271
+ private readonly backingStore: SettingsBackingStore = new InMemoryStorage(),
260
272
  private readonly storagePrefix = '') {
261
273
  }
262
274
 
@@ -529,7 +529,9 @@ export enum Action {
529
529
  InsightTeaserGenerationErrored = 194,
530
530
  AiCodeGenerationSuggestionDisplayed = 195,
531
531
  AiCodeGenerationSuggestionAccepted = 196,
532
- MAX_VALUE = 197,
532
+ InsightTeaserModelDownloadStarted = 197,
533
+ InsightTeaserModelDownloadCompleted = 198,
534
+ MAX_VALUE = 199,
533
535
  /* eslint-enable @typescript-eslint/naming-convention */
534
536
  }
535
537
 
@@ -2,15 +2,18 @@
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
- const glob = require('glob');
6
- const path = require('node:path');
7
- const yargs = require('yargs');
8
- const {hideBin} = require('yargs/helpers');
5
+ import glob from 'glob';
6
+ import * as path from 'node:path';
7
+ import yargs from 'yargs';
8
+ import {hideBin} from 'yargs/helpers';
9
9
 
10
- const {writeIfChanged} = require('../../../scripts/build/ninja/write-if-changed.js');
11
- const {bakePlaceholders} = require('../../../third_party/i18n/bake-ctc-to-lhl.js');
12
- const {collectAllStringsInDir, createPsuedoLocaleStrings, IGNORED_PATH_COMPONENTS} =
13
- require('../../../third_party/i18n/collect-strings.js');
10
+ import {writeIfChanged} from '../../../scripts/build/ninja/write-if-changed.js';
11
+ import {bakePlaceholders} from '../../../third_party/i18n/bake-ctc-to-lhl.js';
12
+ import {
13
+ collectAllStringsInDir,
14
+ createPsuedoLocaleStrings,
15
+ IGNORED_PATH_COMPONENTS,
16
+ } from '../../../third_party/i18n/collect-strings.js';
14
17
 
15
18
  /** @typedef {import('../../../third_party/i18n/bake-ctc-to-lhl.js').CtcMessage} CtcMessage */
16
19
 
@@ -39,7 +42,9 @@ function convertCtcToLhLAndSave(outputDirectory, locale, strings) {
39
42
 
40
43
  /** @type {Record<string, CtcMessage>} */
41
44
  const sortedCtcStrings = {};
42
- const sortedEntries = Object.entries(strings).sort(([keyA], [keyB]) => keyA.localeCompare(keyB));
45
+ const sortedEntries = Object.entries(strings).sort(
46
+ ([keyA], [keyB]) => keyA.localeCompare(keyB),
47
+ );
43
48
  for (const [key, defn] of sortedEntries) {
44
49
  sortedCtcStrings[key] = defn;
45
50
  }
@@ -73,7 +78,11 @@ for (const directory of inputDirectories) {
73
78
  const outputDirectory = yargsObject['output-directory'];
74
79
  convertCtcToLhLAndSave(outputDirectory, 'en-US', collectedStrings);
75
80
  if (yargsObject['include-en-xl']) {
76
- convertCtcToLhLAndSave(outputDirectory, 'en-XL', createPsuedoLocaleStrings(collectedStrings));
81
+ convertCtcToLhLAndSave(
82
+ outputDirectory,
83
+ 'en-XL',
84
+ createPsuedoLocaleStrings(collectedStrings),
85
+ );
77
86
  }
78
87
 
79
88
  // Write the depfile. This is necessary to properly rebuild en-US.json/en-XL.json
@@ -2,11 +2,11 @@
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
- const path = require('node:path');
6
- const yargs = require('yargs');
7
- const {hideBin} = require('yargs/helpers');
5
+ import * as path from 'node:path';
6
+ import yargs from 'yargs';
7
+ import {hideBin} from 'yargs/helpers';
8
8
 
9
- const {writeIfChanged} = require('../../../scripts/build/ninja/write-if-changed.js');
9
+ import {writeIfChanged} from '../../../scripts/build/ninja/write-if-changed.js';
10
10
 
11
11
  const yargsObject = yargs(hideBin(process.argv))
12
12
  .option('target-gen-dir', {
@@ -42,6 +42,7 @@ export enum CDPErrorStatus {
42
42
  SERVER_ERROR = -32000,
43
43
  SESSION_NOT_FOUND = SERVER_ERROR - 1,
44
44
  DEVTOOLS_STUB_ERROR = -32015,
45
+ DEVTOOLS_REHYDRATION_ERROR = -32016,
45
46
  }
46
47
 
47
48
  export interface CDPError {
@@ -638,6 +638,7 @@ export class TargetBase {
638
638
 
639
639
  /** These are not logged as console.error */
640
640
  const IGNORED_ERRORS = new Set<CDPErrorStatus>([
641
+ CDPErrorStatus.DEVTOOLS_REHYDRATION_ERROR,
641
642
  CDPErrorStatus.DEVTOOLS_STUB_ERROR,
642
643
  CDPErrorStatus.SERVER_ERROR,
643
644
  CDPErrorStatus.SESSION_NOT_FOUND,
@@ -694,7 +695,10 @@ class AgentPrototype {
694
695
  if ('result' in response) {
695
696
  return {...response.result, getError: () => undefined};
696
697
  }
697
- return {getError: () => undefined};
698
+ return {
699
+ getError: () => `Command ${method} returned neither result nor an error, params: ${
700
+ JSON.stringify(request, undefined, 2)}`,
701
+ };
698
702
  });
699
703
  }
700
704
  }
@@ -478,16 +478,6 @@ interface AllowPopoverForcing {
478
478
  enabled: boolean;
479
479
  }
480
480
 
481
- interface AiSubmenuPrompts {
482
- enabled: boolean;
483
- featureName?: string;
484
- }
485
-
486
- interface AiDebugWithAi {
487
- enabled: boolean;
488
- featureName?: string;
489
- }
490
-
491
481
  interface GlobalAiButton {
492
482
  enabled: boolean;
493
483
  promotionEnabled: boolean;
@@ -561,7 +551,6 @@ export type HostConfig = Platform.TypeScriptUtilities.RecursivePartial<{
561
551
  devToolsFreestyler: HostConfigFreestyler,
562
552
  devToolsGreenDevUi: HostConfigGreenDevUi,
563
553
  devToolsAiAssistanceNetworkAgent: HostConfigAiAssistanceNetworkAgent,
564
- devToolsAiDebugWithAi: AiDebugWithAi,
565
554
  devToolsAiAssistanceFileAgent: HostConfigAiAssistanceFileAgent,
566
555
  devToolsAiAssistancePerformanceAgent: HostConfigAiAssistancePerformanceAgent,
567
556
  devToolsAiCodeCompletion: HostConfigAiCodeCompletion,
@@ -580,7 +569,6 @@ export type HostConfig = Platform.TypeScriptUtilities.RecursivePartial<{
580
569
  thirdPartyCookieControls: HostConfigThirdPartyCookieControls,
581
570
  devToolsAiGeneratedTimelineLabels: AiGeneratedTimelineLabels,
582
571
  devToolsAllowPopoverForcing: AllowPopoverForcing,
583
- devToolsAiSubmenuPrompts: AiSubmenuPrompts,
584
572
  devToolsGlobalAiButton: GlobalAiButton,
585
573
  devToolsGdpProfiles: GdpProfiles,
586
574
  devToolsGdpProfilesAvailability: GdpProfilesAvailability,
@@ -32,6 +32,7 @@
32
32
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
33
33
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34
34
  */
35
+ /* eslint-disable @devtools/no-adopted-style-sheets */
35
36
 
36
37
  import type * as ProtocolProxyApi from '../../generated/protocol-proxy-api.js';
37
38
  import * as Protocol from '../../generated/protocol.js';
@@ -160,6 +161,7 @@ export class DOMNode {
160
161
  */
161
162
  detached = false;
162
163
  #retainedNodes?: Set<Protocol.DOM.BackendNodeId>;
164
+ #adoptedStyleSheets: AdoptedStyleSheet[] = [];
163
165
 
164
166
  constructor(domModel: DOMModel) {
165
167
  this.#domModel = domModel;
@@ -206,6 +208,10 @@ export class DOMNode {
206
208
  this.setAttributesPayload(payload.attributes);
207
209
  }
208
210
 
211
+ if (payload.adoptedStyleSheets) {
212
+ this.#adoptedStyleSheets = this.toAdoptedStyleSheets(payload.adoptedStyleSheets);
213
+ }
214
+
209
215
  this.childNodeCountInternal = payload.childNodeCount || 0;
210
216
  if (payload.shadowRoots) {
211
217
  for (let i = 0; i < payload.shadowRoots.length; ++i) {
@@ -827,6 +833,19 @@ export class DOMNode {
827
833
  }
828
834
  }
829
835
 
836
+ private toAdoptedStyleSheets(ids: Protocol.DOM.StyleSheetId[]): AdoptedStyleSheet[] {
837
+ return ids.map(id => (new AdoptedStyleSheet(id, this.#domModel.cssModel())));
838
+ }
839
+
840
+ setAdoptedStyleSheets(ids: Protocol.DOM.StyleSheetId[]): void {
841
+ this.#adoptedStyleSheets = this.toAdoptedStyleSheets(ids);
842
+ this.#domModel.dispatchEventToListeners(Events.AdoptedStyleSheetsModified, this);
843
+ }
844
+
845
+ get adoptedStyleSheetsForNode(): AdoptedStyleSheet[] {
846
+ return this.#adoptedStyleSheets;
847
+ }
848
+
830
849
  setDistributedNodePayloads(payloads: Protocol.DOM.BackendNode[]): void {
831
850
  this.#distributedNodes = [];
832
851
  for (const payload of payloads) {
@@ -1206,6 +1225,11 @@ export class DOMDocument extends DOMNode {
1206
1225
  }
1207
1226
  }
1208
1227
 
1228
+ export class AdoptedStyleSheet {
1229
+ constructor(readonly id: Protocol.DOM.StyleSheetId, readonly cssModel: CSSModel) {
1230
+ }
1231
+ }
1232
+
1209
1233
  export class DOMModel extends SDKModel<EventTypes> {
1210
1234
  agent: ProtocolProxyApi.DOMApi;
1211
1235
  idToDOMNode = new Map<Protocol.DOM.NodeId, DOMNode>();
@@ -1571,6 +1595,14 @@ export class DOMModel extends SDKModel<EventTypes> {
1571
1595
  this.scheduleMutationEvent(node);
1572
1596
  }
1573
1597
 
1598
+ adoptedStyleSheetsModified(parentId: Protocol.DOM.NodeId, styleSheets: Protocol.DOM.StyleSheetId[]): void {
1599
+ const parent = this.idToDOMNode.get(parentId);
1600
+ if (!parent) {
1601
+ return;
1602
+ }
1603
+ parent.setAdoptedStyleSheets(styleSheets);
1604
+ }
1605
+
1574
1606
  scrollableFlagUpdated(nodeId: Protocol.DOM.NodeId, isScrollable: boolean): void {
1575
1607
  const node = this.nodeForId(nodeId);
1576
1608
  if (!node || node.isScrollable() === isScrollable) {
@@ -1776,6 +1808,7 @@ export enum Events {
1776
1808
  TopLayerElementsChanged = 'TopLayerElementsChanged',
1777
1809
  ScrollableFlagUpdated = 'ScrollableFlagUpdated',
1778
1810
  AffectedByStartingStylesFlagUpdated = 'AffectedByStartingStylesFlagUpdated',
1811
+ AdoptedStyleSheetsModified = 'AdoptedStyleSheetsModified',
1779
1812
  /* eslint-enable @typescript-eslint/naming-convention */
1780
1813
  }
1781
1814
 
@@ -1793,6 +1826,7 @@ export interface EventTypes {
1793
1826
  [Events.TopLayerElementsChanged]: void;
1794
1827
  [Events.ScrollableFlagUpdated]: {node: DOMNode};
1795
1828
  [Events.AffectedByStartingStylesFlagUpdated]: {node: DOMNode};
1829
+ [Events.AdoptedStyleSheetsModified]: DOMNode;
1796
1830
  }
1797
1831
 
1798
1832
  class DOMDispatcher implements ProtocolProxyApi.DOMDispatcher {
@@ -1800,9 +1834,6 @@ class DOMDispatcher implements ProtocolProxyApi.DOMDispatcher {
1800
1834
  constructor(domModel: DOMModel) {
1801
1835
  this.#domModel = domModel;
1802
1836
  }
1803
- adoptedStyleSheetsModified(_params: Protocol.DOM.AdoptedStyleSheetsModifiedEvent): void {
1804
- // TODO: implementation
1805
- }
1806
1837
 
1807
1838
  documentUpdated(): void {
1808
1839
  this.#domModel.documentUpdated();
@@ -1816,6 +1847,10 @@ class DOMDispatcher implements ProtocolProxyApi.DOMDispatcher {
1816
1847
  this.#domModel.attributeRemoved(nodeId, name);
1817
1848
  }
1818
1849
 
1850
+ adoptedStyleSheetsModified({nodeId, adoptedStyleSheets}: Protocol.DOM.AdoptedStyleSheetsModifiedEvent): void {
1851
+ this.#domModel.adoptedStyleSheetsModified(nodeId, adoptedStyleSheets);
1852
+ }
1853
+
1819
1854
  inlineStyleInvalidated({nodeIds}: Protocol.DOM.InlineStyleInvalidatedEvent): void {
1820
1855
  this.#domModel.inlineStyleInvalidated(nodeIds);
1821
1856
  }
@@ -942,10 +942,15 @@ export class DebuggerModel extends SDKModel<EventTypes> {
942
942
  * Important: This iterator will not yield the "synchronous" part of the stack trace, only the async parent chain.
943
943
  */
944
944
  async *
945
- iterateAsyncParents(stackTraceOrPausedDetails: Protocol.Runtime.StackTrace|DebuggerPausedDetails):
945
+ iterateAsyncParents(
946
+ stackTraceOrPausedDetails: Protocol.Runtime.StackTrace|
947
+ Pick<DebuggerPausedDetails, 'asyncStackTrace'|'asyncStackTraceId'>):
946
948
  AsyncGenerator<{stackTrace: Protocol.Runtime.StackTrace, target: Target}> {
947
949
  // We make `DebuggerPausedDetails` look like a stack trace. We are only interested in `parent` and `parentId` in any case.
948
- let stackTrace: Protocol.Runtime.StackTrace = stackTraceOrPausedDetails instanceof DebuggerPausedDetails ?
950
+ const isPausedDetails = (details: typeof stackTraceOrPausedDetails):
951
+ details is Pick<DebuggerPausedDetails, 'asyncStackTrace'|'asyncStackTraceId'> =>
952
+ !('parent' in details) && !('parentId' in details);
953
+ let stackTrace: Protocol.Runtime.StackTrace = isPausedDetails(stackTraceOrPausedDetails) ?
949
954
  {
950
955
  callFrames: [],
951
956
  parent: stackTraceOrPausedDetails.asyncStackTrace,
@@ -1507,8 +1512,8 @@ export class DebuggerPausedDetails {
1507
1512
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
1508
1513
  auxData: Record<string, any>|undefined;
1509
1514
  breakpointIds: string[];
1510
- asyncStackTrace: Protocol.Runtime.StackTrace|undefined;
1511
- asyncStackTraceId: Protocol.Runtime.StackTraceId|undefined;
1515
+ asyncStackTrace?: Protocol.Runtime.StackTrace;
1516
+ asyncStackTraceId?: Protocol.Runtime.StackTraceId;
1512
1517
  constructor(
1513
1518
  debuggerModel: DebuggerModel,
1514
1519
  callFrames: Protocol.Debugger.CallFrame[],
@@ -49,6 +49,13 @@ export class IsolateManager extends Common.ObjectWrapper.ObjectWrapper<EventType
49
49
  }
50
50
  }
51
51
 
52
+ unobserveIsolates(observer: Observer): void {
53
+ this.#observers.delete(observer);
54
+ if (!this.#observers.size) {
55
+ this.#pollId++;
56
+ }
57
+ }
58
+
52
59
  modelAdded(model: RuntimeModel): void {
53
60
  void this.#modelAdded(model);
54
61
  }
@@ -1978,8 +1978,6 @@ export namespace RequestConditions {
1978
1978
  }
1979
1979
  }
1980
1980
 
1981
- let multiTargetNetworkManagerInstance: MultitargetNetworkManager|null;
1982
-
1983
1981
  export class AppliedNetworkConditions {
1984
1982
  constructor(
1985
1983
  readonly conditions: Conditions, readonly appliedNetworkConditionsId: string, readonly urlPattern?: string) {
@@ -1988,6 +1986,7 @@ export class AppliedNetworkConditions {
1988
1986
 
1989
1987
  export class MultitargetNetworkManager extends Common.ObjectWrapper.ObjectWrapper<MultitargetNetworkManager.EventTypes>
1990
1988
  implements SDKModelObserver<NetworkManager> {
1989
+ readonly #targetManager: TargetManager;
1991
1990
  #userAgentOverride = '';
1992
1991
  #userAgentMetadataOverride: Protocol.Emulation.UserAgentMetadata|null = null;
1993
1992
  #customAcceptedEncodings: Protocol.Network.ContentEncoding[]|null = null;
@@ -2004,8 +2003,9 @@ export class MultitargetNetworkManager extends Common.ObjectWrapper.ObjectWrappe
2004
2003
  #customUserAgent?: string;
2005
2004
  #isBlocking = false;
2006
2005
 
2007
- constructor() {
2006
+ constructor(targetManager: TargetManager) {
2008
2007
  super();
2008
+ this.#targetManager = targetManager;
2009
2009
 
2010
2010
  // TODO(allada) Remove these and merge it with request interception.
2011
2011
  const blockedPatternChanged: () => void = () => {
@@ -2016,22 +2016,24 @@ export class MultitargetNetworkManager extends Common.ObjectWrapper.ObjectWrappe
2016
2016
  RequestConditions.Events.REQUEST_CONDITIONS_CHANGED, blockedPatternChanged);
2017
2017
  this.updateBlockedPatterns();
2018
2018
 
2019
- TargetManager.instance().observeModels(NetworkManager, this);
2019
+ this.#targetManager.observeModels(NetworkManager, this);
2020
2020
  }
2021
2021
 
2022
2022
  static instance(opts: {
2023
2023
  forceNew: boolean|null,
2024
+ targetManager?: TargetManager,
2024
2025
  } = {forceNew: null}): MultitargetNetworkManager {
2025
- const {forceNew} = opts;
2026
- if (!multiTargetNetworkManagerInstance || forceNew) {
2027
- multiTargetNetworkManagerInstance = new MultitargetNetworkManager();
2026
+ const {forceNew, targetManager} = opts;
2027
+ if (!Root.DevToolsContext.globalInstance().has(MultitargetNetworkManager) || forceNew) {
2028
+ Root.DevToolsContext.globalInstance().set(
2029
+ MultitargetNetworkManager, new MultitargetNetworkManager(targetManager ?? TargetManager.instance()));
2028
2030
  }
2029
2031
 
2030
- return multiTargetNetworkManagerInstance;
2032
+ return Root.DevToolsContext.globalInstance().get(MultitargetNetworkManager);
2031
2033
  }
2032
2034
 
2033
2035
  static dispose(): void {
2034
- multiTargetNetworkManagerInstance = null;
2036
+ Root.DevToolsContext.globalInstance().delete(MultitargetNetworkManager);
2035
2037
  }
2036
2038
 
2037
2039
  static patchUserAgentWithChromeVersion(uaString: string): string {
@@ -2319,7 +2321,7 @@ export class MultitargetNetworkManager extends Common.ObjectWrapper.ObjectWrappe
2319
2321
  }
2320
2322
 
2321
2323
  async getCertificate(origin: string): Promise<string[]> {
2322
- const target = TargetManager.instance().primaryPageTarget();
2324
+ const target = this.#targetManager.primaryPageTarget();
2323
2325
  if (!target) {
2324
2326
  return [];
2325
2327
  }
@@ -70,6 +70,13 @@ export class ResourceKey {
70
70
 
71
71
  export type UserAgentProvider = Pick<MultitargetNetworkManager, 'currentUserAgent'>;
72
72
 
73
+ /**
74
+ * The PageResourceLoader has two responsibilities: loading resources and tracking statistics scoped to targets
75
+ * for the DeveloperResourcesPanel. Many places only require the former, so we expose that functionality via small
76
+ * sub-interface. This makes it easier to test classes that require resource loading.
77
+ */
78
+ export type ResourceLoader = Pick<PageResourceLoader, 'loadResource'>;
79
+
73
80
  interface LoadQueueEntry {
74
81
  resolve: () => void;
75
82
  reject: (arg0: Error) => void;
@@ -80,7 +87,7 @@ interface LoadQueueEntry {
80
87
  * `PageResource` object around that holds meta information. This can be as the basis for reporting to the user which
81
88
  * resources were loaded, and whether there was a load error.
82
89
  */
83
- export class PageResourceLoader extends Common.ObjectWrapper.ObjectWrapper<EventTypes> {
90
+ export class PageResourceLoader extends Common.ObjectWrapper.ObjectWrapper<EventTypes> implements ResourceLoader {
84
91
  readonly #targetManager: TargetManager;
85
92
  readonly #settings: Common.Settings.Settings;
86
93
  readonly #userAgentProvider: UserAgentProvider;
@@ -91,14 +98,14 @@ export class PageResourceLoader extends Common.ObjectWrapper.ObjectWrapper<Event
91
98
  #queuedLoads: LoadQueueEntry[] = [];
92
99
  readonly #loadOverride: ((arg0: string) => Promise<{
93
100
  success: boolean,
94
- content: string,
101
+ content: string|Uint8Array<ArrayBuffer>,
95
102
  errorDescription: Host.ResourceLoader.LoadErrorDescription,
96
103
  }>)|null;
97
104
  constructor(
98
105
  targetManager: TargetManager, settings: Common.Settings.Settings, userAgentProvider: UserAgentProvider,
99
106
  loadOverride: ((arg0: string) => Promise<{
100
107
  success: boolean,
101
- content: string,
108
+ content: string|Uint8Array<ArrayBuffer>,
102
109
  errorDescription: Host.ResourceLoader.LoadErrorDescription,
103
110
  }>)|null,
104
111
  maxConcurrentLoads = 500) {
@@ -116,7 +123,7 @@ export class PageResourceLoader extends Common.ObjectWrapper.ObjectWrapper<Event
116
123
  forceNew: boolean,
117
124
  loadOverride: (null|((arg0: string) => Promise<{
118
125
  success: boolean,
119
- content: string,
126
+ content: string|Uint8Array<ArrayBuffer>,
120
127
  errorDescription: Host.ResourceLoader.LoadErrorDescription,
121
128
  }>)),
122
129
  targetManager?: TargetManager,