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
@@ -27,7 +27,7 @@ import type * as Protocol from '../../generated/protocol.js';
27
27
  import * as Common from '../common/common.js';
28
28
  import * as i18n from '../i18n/i18n.js';
29
29
  import type * as Platform from '../platform/platform.js';
30
- import type * as ProtocolClient from '../protocol_client/protocol_client.js';
30
+ import * as ProtocolClient from '../protocol_client/protocol_client.js';
31
31
  import * as Root from '../root/root.js';
32
32
 
33
33
  import * as EnhancedTraces from './EnhancedTracesParser.js';
@@ -325,7 +325,10 @@ export class RehydratingSession extends RehydratingSessionBase {
325
325
  default:
326
326
  this.sendMessageToFrontend({
327
327
  id: data.id,
328
- result: {},
328
+ error: {
329
+ message: `Command ${data.method} not implemented in RehydratingSession.`,
330
+ code: ProtocolClient.CDPConnection.CDPErrorStatus.DEVTOOLS_STUB_ERROR,
331
+ }
329
332
  });
330
333
  break;
331
334
  }
@@ -6,7 +6,7 @@ import * as Common from '../common/common.js';
6
6
  import * as Platform from '../platform/platform.js';
7
7
 
8
8
  import type {FrameAssociated} from './FrameAssociated.js';
9
- import {PageResourceLoader, type PageResourceLoadInitiator} from './PageResourceLoader.js';
9
+ import {PageResourceLoader, type PageResourceLoadInitiator, type ResourceLoader} from './PageResourceLoader.js';
10
10
  import {type DebugId, parseSourceMap, SourceMap, type SourceMapV3} from './SourceMap.js';
11
11
  import {SourceMapCache} from './SourceMapCache.js';
12
12
  import {type Target, Type} from './Target.js';
@@ -112,8 +112,14 @@ export class SourceMapManager<T extends FrameAssociated> extends Common.ObjectWr
112
112
  if (this.#attachingClient === client) {
113
113
  this.#attachingClient = null;
114
114
  const initiator = client.createPageResourceLoadInitiator();
115
+ // TODO(crbug.com/458180550): Pass PageResourceLoader via constructor.
116
+ // The reason we grab it here lazily from the context is that otherwise every
117
+ // unit test using `createTarget` would need to set up a `PageResourceLoader`, as
118
+ // CSSModel and DebuggerModel are autostarted by default, and they create a
119
+ // SourceMapManager in their respective constructors.
120
+ const resourceLoader = this.#target.targetManager().context.get(PageResourceLoader);
115
121
  clientData.sourceMapPromise =
116
- loadSourceMap(PageResourceLoader.instance(), sourceMapURL, client.debugId(), initiator)
122
+ loadSourceMap(resourceLoader, sourceMapURL, client.debugId(), initiator)
117
123
  .then(
118
124
  payload => {
119
125
  const sourceMap = this.#factory(sourceURL, sourceMapURL, payload, client);
@@ -181,7 +187,7 @@ export class SourceMapManager<T extends FrameAssociated> extends Common.ObjectWr
181
187
  }
182
188
 
183
189
  async function loadSourceMap(
184
- pageResourceLoader: PageResourceLoader, url: Platform.DevToolsPath.UrlString, debugId: DebugId|null,
190
+ resourceLoader: ResourceLoader, url: Platform.DevToolsPath.UrlString, debugId: DebugId|null,
185
191
  initiator: PageResourceLoadInitiator): Promise<SourceMapV3> {
186
192
  try {
187
193
  if (debugId) {
@@ -191,7 +197,7 @@ async function loadSourceMap(
191
197
  }
192
198
  }
193
199
 
194
- const {content} = await pageResourceLoader.loadResource(url, initiator);
200
+ const {content} = await resourceLoader.loadResource(url, initiator);
195
201
  const sourceMap = parseSourceMap(content);
196
202
  if ('debugId' in sourceMap && sourceMap.debugId) {
197
203
  // In case something goes wrong with updating the cache, we still want to use the source map.
@@ -204,10 +210,10 @@ async function loadSourceMap(
204
210
  }
205
211
 
206
212
  export async function tryLoadSourceMap(
207
- pageResourceLoader: PageResourceLoader, url: Platform.DevToolsPath.UrlString,
213
+ resourceLoader: ResourceLoader, url: Platform.DevToolsPath.UrlString,
208
214
  initiator: PageResourceLoadInitiator): Promise<SourceMapV3|null> {
209
215
  try {
210
- return await loadSourceMap(pageResourceLoader, url, null, initiator);
216
+ return await loadSourceMap(resourceLoader, url, null, initiator);
211
217
  } catch (cause) {
212
218
  console.error(cause);
213
219
  return null;
@@ -124,11 +124,30 @@ const UIStrings = {
124
124
  * @description Notification shown to the user whenever DevTools receives an external request.
125
125
  */
126
126
  externalRequestReceived: '`DevTools` received an external request',
127
+ /**
128
+ * @description Notification shown to the user whenever DevTools has finished downloading a local AI model.
129
+ */
130
+ aiModelDownloaded: 'AI model downloaded',
127
131
  } as const;
128
132
  const str_ = i18n.i18n.registerUIStrings('entrypoints/main/MainImpl.ts', UIStrings);
129
133
  const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
130
134
 
131
135
  let loadedPanelCommonModule: typeof PanelCommon|undefined;
136
+
137
+ const WINDOW_LOCAL_STORAGE: Common.Settings.SettingsBackingStore = {
138
+ register(_setting: string): void{},
139
+ async get(setting: string): Promise<string> {
140
+ return window.localStorage.getItem(setting) as unknown as string;
141
+ },
142
+ set(setting: string, value: string): void {
143
+ window.localStorage.setItem(setting, value);
144
+ },
145
+ remove(setting: string): void {
146
+ window.localStorage.removeItem(setting);
147
+ },
148
+ clear: () => window.localStorage.clear(),
149
+ };
150
+
132
151
  export class MainImpl {
133
152
  #readyForTestPromise = Promise.withResolvers<void>();
134
153
  #veStartPromise!: Promise<void>;
@@ -271,15 +290,11 @@ export class MainImpl {
271
290
  storagePrefix = '__bundled__';
272
291
  }
273
292
 
274
- let localStorage;
293
+ let localStorage: Common.Settings.SettingsStorage;
275
294
  if (!Host.InspectorFrontendHost.isUnderTest() && window.localStorage) {
276
- const localbackingStore: Common.Settings.SettingsBackingStore = {
277
- ...Common.Settings.NOOP_STORAGE,
278
- clear: () => window.localStorage.clear(),
279
- };
280
- localStorage = new Common.Settings.SettingsStorage(window.localStorage, localbackingStore, storagePrefix);
295
+ localStorage = new Common.Settings.SettingsStorage(window.localStorage, WINDOW_LOCAL_STORAGE, storagePrefix);
281
296
  } else {
282
- localStorage = new Common.Settings.SettingsStorage({}, Common.Settings.NOOP_STORAGE, storagePrefix);
297
+ localStorage = new Common.Settings.SettingsStorage({}, undefined, storagePrefix);
283
298
  }
284
299
 
285
300
  const hostUnsyncedStorage: Common.Settings.SettingsBackingStore = {
@@ -441,20 +456,11 @@ export class MainImpl {
441
456
  IssuesManager.ContrastCheckTrigger.ContrastCheckTrigger.instance();
442
457
 
443
458
  UI.DockController.DockController.instance({forceNew: true, canDock});
444
- SDK.NetworkManager.MultitargetNetworkManager.instance({forceNew: true});
445
459
  SDK.DOMDebuggerModel.DOMDebuggerManager.instance({forceNew: true});
446
460
  const targetManager = SDK.TargetManager.TargetManager.instance();
447
461
  targetManager.addEventListener(
448
462
  SDK.TargetManager.Events.SUSPEND_STATE_CHANGED, this.#onSuspendStateChanged.bind(this));
449
463
 
450
- SDK.PageResourceLoader.PageResourceLoader.instance({
451
- forceNew: true,
452
- targetManager,
453
- settings: Common.Settings.Settings.instance(),
454
- userAgentProvider: SDK.NetworkManager.MultitargetNetworkManager.instance(),
455
- loadOverride: null,
456
- });
457
-
458
464
  Workspace.FileManager.FileManager.instance({forceNew: true});
459
465
 
460
466
  Bindings.NetworkProject.NetworkProjectManager.instance();
@@ -514,7 +520,10 @@ export class MainImpl {
514
520
  LiveMetrics.LiveMetrics.instance();
515
521
  CrUXManager.CrUXManager.instance();
516
522
 
517
- AiAssistanceModel.BuiltInAi.BuiltInAi.instance();
523
+ const builtInAi = AiAssistanceModel.BuiltInAi.BuiltInAi.instance();
524
+ builtInAi.addEventListener(
525
+ AiAssistanceModel.BuiltInAi.Events.DOWNLOADED_AND_SESSION_CREATED,
526
+ () => Snackbar.Snackbar.Snackbar.show({message: i18nString(UIStrings.aiModelDownloaded)}));
518
527
 
519
528
  new PauseListener();
520
529
 
@@ -818,8 +827,8 @@ export class MainMenuItem implements UI.Toolbar.Provider {
818
827
  readonly #item: UI.Toolbar.ToolbarMenuButton;
819
828
  constructor() {
820
829
  this.#item = new UI.Toolbar.ToolbarMenuButton(
821
- this.#handleContextMenu.bind(this), /* isIconDropdown */ true, /* useSoftMenu */ true, 'main-menu',
822
- 'dots-vertical');
830
+ this.#handleContextMenu.bind(this), /* isIconDropdown */ true,
831
+ /* useSoftMenu */ true, 'main-menu', 'dots-vertical');
823
832
  this.#item.element.classList.add('main-menu');
824
833
  this.#item.setTitle(i18nString(UIStrings.customizeAndControlDevtools));
825
834
  }
@@ -27,6 +27,13 @@ export class Universe {
27
27
  const targetManager = new SDK.TargetManager.TargetManager(this.context, options.overrideAutoStartModels);
28
28
  this.context.set(SDK.TargetManager.TargetManager, targetManager);
29
29
 
30
+ const multitargetNetworkManager = new SDK.NetworkManager.MultitargetNetworkManager(targetManager);
31
+ this.context.set(SDK.NetworkManager.MultitargetNetworkManager, multitargetNetworkManager);
32
+
33
+ const pageResourceLoader =
34
+ new SDK.PageResourceLoader.PageResourceLoader(targetManager, settings, multitargetNetworkManager, null);
35
+ this.context.set(SDK.PageResourceLoader.PageResourceLoader, pageResourceLoader);
36
+
30
37
  const workspace = new Workspace.Workspace.WorkspaceImpl();
31
38
  this.context.set(Workspace.Workspace.WorkspaceImpl, workspace);
32
39
 
@@ -90,7 +90,8 @@ inspectorBackend.registerEnum("Audits.ElementAccessibilityIssueReason", {Disallo
90
90
  inspectorBackend.registerEnum("Audits.StyleSheetLoadingIssueReason", {LateImportRule: "LateImportRule", RequestFailed: "RequestFailed"});
91
91
  inspectorBackend.registerEnum("Audits.PropertyRuleIssueReason", {InvalidSyntax: "InvalidSyntax", InvalidInitialValue: "InvalidInitialValue", InvalidInherits: "InvalidInherits", InvalidName: "InvalidName"});
92
92
  inspectorBackend.registerEnum("Audits.UserReidentificationIssueType", {BlockedFrameNavigation: "BlockedFrameNavigation", BlockedSubresource: "BlockedSubresource", NoisedCanvasReadback: "NoisedCanvasReadback"});
93
- inspectorBackend.registerEnum("Audits.InspectorIssueCode", {CookieIssue: "CookieIssue", MixedContentIssue: "MixedContentIssue", BlockedByResponseIssue: "BlockedByResponseIssue", HeavyAdIssue: "HeavyAdIssue", ContentSecurityPolicyIssue: "ContentSecurityPolicyIssue", SharedArrayBufferIssue: "SharedArrayBufferIssue", LowTextContrastIssue: "LowTextContrastIssue", CorsIssue: "CorsIssue", AttributionReportingIssue: "AttributionReportingIssue", QuirksModeIssue: "QuirksModeIssue", PartitioningBlobURLIssue: "PartitioningBlobURLIssue", NavigatorUserAgentIssue: "NavigatorUserAgentIssue", GenericIssue: "GenericIssue", DeprecationIssue: "DeprecationIssue", ClientHintIssue: "ClientHintIssue", FederatedAuthRequestIssue: "FederatedAuthRequestIssue", BounceTrackingIssue: "BounceTrackingIssue", CookieDeprecationMetadataIssue: "CookieDeprecationMetadataIssue", StylesheetLoadingIssue: "StylesheetLoadingIssue", FederatedAuthUserInfoRequestIssue: "FederatedAuthUserInfoRequestIssue", PropertyRuleIssue: "PropertyRuleIssue", SharedDictionaryIssue: "SharedDictionaryIssue", ElementAccessibilityIssue: "ElementAccessibilityIssue", SRIMessageSignatureIssue: "SRIMessageSignatureIssue", UnencodedDigestIssue: "UnencodedDigestIssue", UserReidentificationIssue: "UserReidentificationIssue"});
93
+ inspectorBackend.registerEnum("Audits.PermissionElementIssueType", {InvalidType: "InvalidType", FencedFrameDisallowed: "FencedFrameDisallowed", CspFrameAncestorsMissing: "CspFrameAncestorsMissing", PermissionsPolicyBlocked: "PermissionsPolicyBlocked", PaddingRightUnsupported: "PaddingRightUnsupported", PaddingBottomUnsupported: "PaddingBottomUnsupported", InsetBoxShadowUnsupported: "InsetBoxShadowUnsupported", RequestInProgress: "RequestInProgress", UntrustedEvent: "UntrustedEvent", RegistrationFailed: "RegistrationFailed", TypeNotSupported: "TypeNotSupported", InvalidTypeActivation: "InvalidTypeActivation", SecurityChecksFailed: "SecurityChecksFailed", ActivationDisabled: "ActivationDisabled", GeolocationDeprecated: "GeolocationDeprecated", InvalidDisplayStyle: "InvalidDisplayStyle", NonOpaqueColor: "NonOpaqueColor", LowContrast: "LowContrast", FontSizeTooSmall: "FontSizeTooSmall", FontSizeTooLarge: "FontSizeTooLarge", InvalidSizeValue: "InvalidSizeValue"});
94
+ inspectorBackend.registerEnum("Audits.InspectorIssueCode", {CookieIssue: "CookieIssue", MixedContentIssue: "MixedContentIssue", BlockedByResponseIssue: "BlockedByResponseIssue", HeavyAdIssue: "HeavyAdIssue", ContentSecurityPolicyIssue: "ContentSecurityPolicyIssue", SharedArrayBufferIssue: "SharedArrayBufferIssue", LowTextContrastIssue: "LowTextContrastIssue", CorsIssue: "CorsIssue", AttributionReportingIssue: "AttributionReportingIssue", QuirksModeIssue: "QuirksModeIssue", PartitioningBlobURLIssue: "PartitioningBlobURLIssue", NavigatorUserAgentIssue: "NavigatorUserAgentIssue", GenericIssue: "GenericIssue", DeprecationIssue: "DeprecationIssue", ClientHintIssue: "ClientHintIssue", FederatedAuthRequestIssue: "FederatedAuthRequestIssue", BounceTrackingIssue: "BounceTrackingIssue", CookieDeprecationMetadataIssue: "CookieDeprecationMetadataIssue", StylesheetLoadingIssue: "StylesheetLoadingIssue", FederatedAuthUserInfoRequestIssue: "FederatedAuthUserInfoRequestIssue", PropertyRuleIssue: "PropertyRuleIssue", SharedDictionaryIssue: "SharedDictionaryIssue", ElementAccessibilityIssue: "ElementAccessibilityIssue", SRIMessageSignatureIssue: "SRIMessageSignatureIssue", UnencodedDigestIssue: "UnencodedDigestIssue", UserReidentificationIssue: "UserReidentificationIssue", PermissionElementIssue: "PermissionElementIssue"});
94
95
  inspectorBackend.registerEvent("Audits.issueAdded", ["issue"]);
95
96
  inspectorBackend.registerEnum("Audits.GetEncodedResponseRequestEncoding", {Webp: "webp", Jpeg: "jpeg", Png: "png"});
96
97
  inspectorBackend.registerCommand("Audits.getEncodedResponse", [{"name": "requestId", "type": "string", "optional": false, "description": "Identifier of the network request to get content for.", "typeRef": "Network.RequestId"}, {"name": "encoding", "type": "string", "optional": false, "description": "The encoding to use.", "typeRef": "Audits.GetEncodedResponseRequestEncoding"}, {"name": "quality", "type": "number", "optional": true, "description": "The quality of the encoding (0-1). (defaults to 1)", "typeRef": null}, {"name": "sizeOnly", "type": "boolean", "optional": true, "description": "Whether to only return the size information (defaults to false).", "typeRef": null}], ["body", "originalSize", "encodedSize"], "Returns the response body and size if it were re-encoded with the specified settings. Only applies to images.");
@@ -130,7 +131,8 @@ inspectorBackend.registerType("Audits.ElementAccessibilityIssueDetails", [{"name
130
131
  inspectorBackend.registerType("Audits.StylesheetLoadingIssueDetails", [{"name": "sourceCodeLocation", "type": "object", "optional": false, "description": "Source code position that referenced the failing stylesheet.", "typeRef": "Audits.SourceCodeLocation"}, {"name": "styleSheetLoadingIssueReason", "type": "string", "optional": false, "description": "Reason why the stylesheet couldn't be loaded.", "typeRef": "Audits.StyleSheetLoadingIssueReason"}, {"name": "failedRequestInfo", "type": "object", "optional": true, "description": "Contains additional info when the failure was due to a request.", "typeRef": "Audits.FailedRequestInfo"}]);
131
132
  inspectorBackend.registerType("Audits.PropertyRuleIssueDetails", [{"name": "sourceCodeLocation", "type": "object", "optional": false, "description": "Source code position of the property rule.", "typeRef": "Audits.SourceCodeLocation"}, {"name": "propertyRuleIssueReason", "type": "string", "optional": false, "description": "Reason why the property rule was discarded.", "typeRef": "Audits.PropertyRuleIssueReason"}, {"name": "propertyValue", "type": "string", "optional": true, "description": "The value of the property rule property that failed to parse", "typeRef": null}]);
132
133
  inspectorBackend.registerType("Audits.UserReidentificationIssueDetails", [{"name": "type", "type": "string", "optional": false, "description": "", "typeRef": "Audits.UserReidentificationIssueType"}, {"name": "request", "type": "object", "optional": true, "description": "Applies to BlockedFrameNavigation and BlockedSubresource issue types.", "typeRef": "Audits.AffectedRequest"}, {"name": "sourceCodeLocation", "type": "object", "optional": true, "description": "Applies to NoisedCanvasReadback issue type.", "typeRef": "Audits.SourceCodeLocation"}]);
133
- inspectorBackend.registerType("Audits.InspectorIssueDetails", [{"name": "cookieIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.CookieIssueDetails"}, {"name": "mixedContentIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.MixedContentIssueDetails"}, {"name": "blockedByResponseIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.BlockedByResponseIssueDetails"}, {"name": "heavyAdIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.HeavyAdIssueDetails"}, {"name": "contentSecurityPolicyIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.ContentSecurityPolicyIssueDetails"}, {"name": "sharedArrayBufferIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.SharedArrayBufferIssueDetails"}, {"name": "lowTextContrastIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.LowTextContrastIssueDetails"}, {"name": "corsIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.CorsIssueDetails"}, {"name": "attributionReportingIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.AttributionReportingIssueDetails"}, {"name": "quirksModeIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.QuirksModeIssueDetails"}, {"name": "partitioningBlobURLIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.PartitioningBlobURLIssueDetails"}, {"name": "navigatorUserAgentIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.NavigatorUserAgentIssueDetails"}, {"name": "genericIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.GenericIssueDetails"}, {"name": "deprecationIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.DeprecationIssueDetails"}, {"name": "clientHintIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.ClientHintIssueDetails"}, {"name": "federatedAuthRequestIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.FederatedAuthRequestIssueDetails"}, {"name": "bounceTrackingIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.BounceTrackingIssueDetails"}, {"name": "cookieDeprecationMetadataIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.CookieDeprecationMetadataIssueDetails"}, {"name": "stylesheetLoadingIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.StylesheetLoadingIssueDetails"}, {"name": "propertyRuleIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.PropertyRuleIssueDetails"}, {"name": "federatedAuthUserInfoRequestIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.FederatedAuthUserInfoRequestIssueDetails"}, {"name": "sharedDictionaryIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.SharedDictionaryIssueDetails"}, {"name": "elementAccessibilityIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.ElementAccessibilityIssueDetails"}, {"name": "sriMessageSignatureIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.SRIMessageSignatureIssueDetails"}, {"name": "unencodedDigestIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.UnencodedDigestIssueDetails"}, {"name": "userReidentificationIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.UserReidentificationIssueDetails"}]);
134
+ inspectorBackend.registerType("Audits.PermissionElementIssueDetails", [{"name": "issueType", "type": "string", "optional": false, "description": "", "typeRef": "Audits.PermissionElementIssueType"}, {"name": "type", "type": "string", "optional": true, "description": "The value of the type attribute.", "typeRef": null}, {"name": "nodeId", "type": "number", "optional": true, "description": "The node ID of the <permission> element.", "typeRef": "DOM.BackendNodeId"}, {"name": "isWarning", "type": "boolean", "optional": true, "description": "True if the issue is a warning, false if it is an error.", "typeRef": null}, {"name": "permissionName", "type": "string", "optional": true, "description": "Fields for message construction: Used for messages that reference a specific permission name", "typeRef": null}, {"name": "occluderNodeInfo", "type": "string", "optional": true, "description": "Used for messages about occlusion", "typeRef": null}, {"name": "occluderParentNodeInfo", "type": "string", "optional": true, "description": "Used for messages about occluder's parent", "typeRef": null}, {"name": "disableReason", "type": "string", "optional": true, "description": "Used for messages about activation disabled reason", "typeRef": null}]);
135
+ inspectorBackend.registerType("Audits.InspectorIssueDetails", [{"name": "cookieIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.CookieIssueDetails"}, {"name": "mixedContentIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.MixedContentIssueDetails"}, {"name": "blockedByResponseIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.BlockedByResponseIssueDetails"}, {"name": "heavyAdIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.HeavyAdIssueDetails"}, {"name": "contentSecurityPolicyIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.ContentSecurityPolicyIssueDetails"}, {"name": "sharedArrayBufferIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.SharedArrayBufferIssueDetails"}, {"name": "lowTextContrastIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.LowTextContrastIssueDetails"}, {"name": "corsIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.CorsIssueDetails"}, {"name": "attributionReportingIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.AttributionReportingIssueDetails"}, {"name": "quirksModeIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.QuirksModeIssueDetails"}, {"name": "partitioningBlobURLIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.PartitioningBlobURLIssueDetails"}, {"name": "navigatorUserAgentIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.NavigatorUserAgentIssueDetails"}, {"name": "genericIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.GenericIssueDetails"}, {"name": "deprecationIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.DeprecationIssueDetails"}, {"name": "clientHintIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.ClientHintIssueDetails"}, {"name": "federatedAuthRequestIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.FederatedAuthRequestIssueDetails"}, {"name": "bounceTrackingIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.BounceTrackingIssueDetails"}, {"name": "cookieDeprecationMetadataIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.CookieDeprecationMetadataIssueDetails"}, {"name": "stylesheetLoadingIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.StylesheetLoadingIssueDetails"}, {"name": "propertyRuleIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.PropertyRuleIssueDetails"}, {"name": "federatedAuthUserInfoRequestIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.FederatedAuthUserInfoRequestIssueDetails"}, {"name": "sharedDictionaryIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.SharedDictionaryIssueDetails"}, {"name": "elementAccessibilityIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.ElementAccessibilityIssueDetails"}, {"name": "sriMessageSignatureIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.SRIMessageSignatureIssueDetails"}, {"name": "unencodedDigestIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.UnencodedDigestIssueDetails"}, {"name": "userReidentificationIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.UserReidentificationIssueDetails"}, {"name": "permissionElementIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.PermissionElementIssueDetails"}]);
134
136
  inspectorBackend.registerType("Audits.InspectorIssue", [{"name": "code", "type": "string", "optional": false, "description": "", "typeRef": "Audits.InspectorIssueCode"}, {"name": "details", "type": "object", "optional": false, "description": "", "typeRef": "Audits.InspectorIssueDetails"}, {"name": "issueId", "type": "string", "optional": true, "description": "A unique id for this issue. May be omitted if no other entity (e.g. exception, CDP message, etc.) is referencing this issue.", "typeRef": "Audits.IssueId"}]);
135
137
 
136
138
  // Autofill.
@@ -1354,6 +1356,7 @@ inspectorBackend.registerCommand("Target.setAutoAttach", [{"name": "autoAttach",
1354
1356
  inspectorBackend.registerCommand("Target.autoAttachRelated", [{"name": "targetId", "type": "string", "optional": false, "description": "", "typeRef": "Target.TargetID"}, {"name": "waitForDebuggerOnStart", "type": "boolean", "optional": false, "description": "Whether to pause new targets when attaching to them. Use `Runtime.runIfWaitingForDebugger` to run paused targets.", "typeRef": null}, {"name": "filter", "type": "array", "optional": true, "description": "Only targets matching filter will be attached.", "typeRef": "Target.TargetFilter"}], [], "Adds the specified target to the list of targets that will be monitored for any related target creation (such as child frames, child workers and new versions of service worker) and reported through `attachedToTarget`. The specified target is also auto-attached. This cancels the effect of any previous `setAutoAttach` and is also cancelled by subsequent `setAutoAttach`. Only available at the Browser target.");
1355
1357
  inspectorBackend.registerCommand("Target.setDiscoverTargets", [{"name": "discover", "type": "boolean", "optional": false, "description": "Whether to discover available targets.", "typeRef": null}, {"name": "filter", "type": "array", "optional": true, "description": "Only targets matching filter will be attached. If `discover` is false, `filter` must be omitted or empty.", "typeRef": "Target.TargetFilter"}], [], "Controls whether to discover available targets and notify via `targetCreated/targetInfoChanged/targetDestroyed` events.");
1356
1358
  inspectorBackend.registerCommand("Target.setRemoteLocations", [{"name": "locations", "type": "array", "optional": false, "description": "List of remote locations.", "typeRef": "Target.RemoteLocation"}], [], "Enables target discovery for the specified locations, when `setDiscoverTargets` was set to `true`.");
1359
+ inspectorBackend.registerCommand("Target.getDevToolsTarget", [{"name": "targetId", "type": "string", "optional": false, "description": "Page or tab target ID.", "typeRef": "Target.TargetID"}], ["targetId"], "Gets the targetId of the DevTools page target opened for the given target (if any).");
1357
1360
  inspectorBackend.registerCommand("Target.openDevTools", [{"name": "targetId", "type": "string", "optional": false, "description": "This can be the page or tab target ID.", "typeRef": "Target.TargetID"}, {"name": "panelId", "type": "string", "optional": true, "description": "The id of the panel we want DevTools to open initially. Currently supported panels are elements, console, network, sources, resources and performance.", "typeRef": null}], ["targetId"], "Opens a DevTools window for the target.");
1358
1361
  inspectorBackend.registerType("Target.TargetInfo", [{"name": "targetId", "type": "string", "optional": false, "description": "", "typeRef": "Target.TargetID"}, {"name": "type", "type": "string", "optional": false, "description": "List of types: https://source.chromium.org/chromium/chromium/src/+/main:content/browser/devtools/devtools_agent_host_impl.cc?ss=chromium&q=f:devtools%20-f:out%20%22::kTypeTab%5B%5D%22", "typeRef": null}, {"name": "title", "type": "string", "optional": false, "description": "", "typeRef": null}, {"name": "url", "type": "string", "optional": false, "description": "", "typeRef": null}, {"name": "attached", "type": "boolean", "optional": false, "description": "Whether the target has an attached client.", "typeRef": null}, {"name": "openerId", "type": "string", "optional": true, "description": "Opener target Id", "typeRef": "Target.TargetID"}, {"name": "canAccessOpener", "type": "boolean", "optional": false, "description": "Whether the target has access to the originating window.", "typeRef": null}, {"name": "openerFrameId", "type": "string", "optional": true, "description": "Frame id of originating window (is only set if target has an opener).", "typeRef": "Page.FrameId"}, {"name": "parentFrameId", "type": "string", "optional": true, "description": "Id of the parent frame, only present for the \\\"iframe\\\" targets.", "typeRef": "Page.FrameId"}, {"name": "browserContextId", "type": "string", "optional": true, "description": "", "typeRef": "Browser.BrowserContextID"}, {"name": "subtype", "type": "string", "optional": true, "description": "Provides additional details for specific target types. For example, for the type of \\\"page\\\", this may be set to \\\"prerender\\\".", "typeRef": null}]);
1359
1362
  inspectorBackend.registerType("Target.FilterEntry", [{"name": "exclude", "type": "boolean", "optional": true, "description": "If set, causes exclusion of matching targets from the list.", "typeRef": null}, {"name": "type", "type": "string", "optional": true, "description": "If not present, matches any type.", "typeRef": null}]);
@@ -4519,6 +4519,13 @@ export const generatedProperties = [
4519
4519
  ],
4520
4520
  "name": "timeline-trigger"
4521
4521
  },
4522
+ {
4523
+ "longhands": [
4524
+ "timeline-trigger-exit-range-start",
4525
+ "timeline-trigger-exit-range-end"
4526
+ ],
4527
+ "name": "timeline-trigger-exit-range"
4528
+ },
4522
4529
  {
4523
4530
  "name": "timeline-trigger-exit-range-end"
4524
4531
  },
@@ -4528,6 +4535,13 @@ export const generatedProperties = [
4528
4535
  {
4529
4536
  "name": "timeline-trigger-name"
4530
4537
  },
4538
+ {
4539
+ "longhands": [
4540
+ "timeline-trigger-range-start",
4541
+ "timeline-trigger-range-end"
4542
+ ],
4543
+ "name": "timeline-trigger-range"
4544
+ },
4531
4545
  {
4532
4546
  "name": "timeline-trigger-range-end"
4533
4547
  },
@@ -4837,6 +4837,14 @@ export namespace ProtocolMapping {
4837
4837
  paramsType: [Protocol.Target.SetRemoteLocationsRequest];
4838
4838
  returnType: void;
4839
4839
  };
4840
+ /**
4841
+ * Gets the targetId of the DevTools page target opened for the given target
4842
+ * (if any).
4843
+ */
4844
+ 'Target.getDevToolsTarget': {
4845
+ paramsType: [Protocol.Target.GetDevToolsTargetRequest];
4846
+ returnType: Protocol.Target.GetDevToolsTargetResponse;
4847
+ };
4840
4848
  /**
4841
4849
  * Opens a DevTools window for the target.
4842
4850
  */
@@ -4209,6 +4209,12 @@ declare namespace ProtocolProxyApi {
4209
4209
  */
4210
4210
  invoke_setRemoteLocations(params: Protocol.Target.SetRemoteLocationsRequest): Promise<Protocol.ProtocolResponseWithError>;
4211
4211
 
4212
+ /**
4213
+ * Gets the targetId of the DevTools page target opened for the given target
4214
+ * (if any).
4215
+ */
4216
+ invoke_getDevToolsTarget(params: Protocol.Target.GetDevToolsTargetRequest): Promise<Protocol.Target.GetDevToolsTargetResponse>;
4217
+
4212
4218
  /**
4213
4219
  * Opens a DevTools window for the target.
4214
4220
  */
@@ -1461,6 +1461,66 @@ export namespace Audits {
1461
1461
  sourceCodeLocation?: SourceCodeLocation;
1462
1462
  }
1463
1463
 
1464
+ export const enum PermissionElementIssueType {
1465
+ InvalidType = 'InvalidType',
1466
+ FencedFrameDisallowed = 'FencedFrameDisallowed',
1467
+ CspFrameAncestorsMissing = 'CspFrameAncestorsMissing',
1468
+ PermissionsPolicyBlocked = 'PermissionsPolicyBlocked',
1469
+ PaddingRightUnsupported = 'PaddingRightUnsupported',
1470
+ PaddingBottomUnsupported = 'PaddingBottomUnsupported',
1471
+ InsetBoxShadowUnsupported = 'InsetBoxShadowUnsupported',
1472
+ RequestInProgress = 'RequestInProgress',
1473
+ UntrustedEvent = 'UntrustedEvent',
1474
+ RegistrationFailed = 'RegistrationFailed',
1475
+ TypeNotSupported = 'TypeNotSupported',
1476
+ InvalidTypeActivation = 'InvalidTypeActivation',
1477
+ SecurityChecksFailed = 'SecurityChecksFailed',
1478
+ ActivationDisabled = 'ActivationDisabled',
1479
+ GeolocationDeprecated = 'GeolocationDeprecated',
1480
+ InvalidDisplayStyle = 'InvalidDisplayStyle',
1481
+ NonOpaqueColor = 'NonOpaqueColor',
1482
+ LowContrast = 'LowContrast',
1483
+ FontSizeTooSmall = 'FontSizeTooSmall',
1484
+ FontSizeTooLarge = 'FontSizeTooLarge',
1485
+ InvalidSizeValue = 'InvalidSizeValue',
1486
+ }
1487
+
1488
+ /**
1489
+ * This issue warns about improper usage of the <permission> element.
1490
+ */
1491
+ export interface PermissionElementIssueDetails {
1492
+ issueType: PermissionElementIssueType;
1493
+ /**
1494
+ * The value of the type attribute.
1495
+ */
1496
+ type?: string;
1497
+ /**
1498
+ * The node ID of the <permission> element.
1499
+ */
1500
+ nodeId?: DOM.BackendNodeId;
1501
+ /**
1502
+ * True if the issue is a warning, false if it is an error.
1503
+ */
1504
+ isWarning?: boolean;
1505
+ /**
1506
+ * Fields for message construction:
1507
+ * Used for messages that reference a specific permission name
1508
+ */
1509
+ permissionName?: string;
1510
+ /**
1511
+ * Used for messages about occlusion
1512
+ */
1513
+ occluderNodeInfo?: string;
1514
+ /**
1515
+ * Used for messages about occluder's parent
1516
+ */
1517
+ occluderParentNodeInfo?: string;
1518
+ /**
1519
+ * Used for messages about activation disabled reason
1520
+ */
1521
+ disableReason?: string;
1522
+ }
1523
+
1464
1524
  /**
1465
1525
  * A unique identifier for the type of issue. Each type may use one of the
1466
1526
  * optional fields in InspectorIssueDetails to convey more specific
@@ -1493,6 +1553,7 @@ export namespace Audits {
1493
1553
  SRIMessageSignatureIssue = 'SRIMessageSignatureIssue',
1494
1554
  UnencodedDigestIssue = 'UnencodedDigestIssue',
1495
1555
  UserReidentificationIssue = 'UserReidentificationIssue',
1556
+ PermissionElementIssue = 'PermissionElementIssue',
1496
1557
  }
1497
1558
 
1498
1559
  /**
@@ -1530,6 +1591,7 @@ export namespace Audits {
1530
1591
  sriMessageSignatureIssueDetails?: SRIMessageSignatureIssueDetails;
1531
1592
  unencodedDigestIssueDetails?: UnencodedDigestIssueDetails;
1532
1593
  userReidentificationIssueDetails?: UserReidentificationIssueDetails;
1594
+ permissionElementIssueDetails?: PermissionElementIssueDetails;
1533
1595
  }
1534
1596
 
1535
1597
  /**
@@ -18501,6 +18563,20 @@ export namespace Target {
18501
18563
  locations: RemoteLocation[];
18502
18564
  }
18503
18565
 
18566
+ export interface GetDevToolsTargetRequest {
18567
+ /**
18568
+ * Page or tab target ID.
18569
+ */
18570
+ targetId: TargetID;
18571
+ }
18572
+
18573
+ export interface GetDevToolsTargetResponse extends ProtocolResponseWithError {
18574
+ /**
18575
+ * The targetId of DevTools page target if exists.
18576
+ */
18577
+ targetId?: TargetID;
18578
+ }
18579
+
18504
18580
  export interface OpenDevToolsRequest {
18505
18581
  /**
18506
18582
  * This can be the page or tab target ID.
@@ -4,6 +4,9 @@
4
4
 
5
5
  import * as Host from '../../core/host/host.js';
6
6
  import * as Root from '../../core/root/root.js';
7
+ import * as SDK from '../../core/sdk/sdk.js';
8
+ import * as Trace from '../../models/trace/trace.js';
9
+ import * as NetworkTimeCalculator from '../network_time_calculator/network_time_calculator.js';
7
10
 
8
11
  import {
9
12
  type AiAgent,
@@ -19,6 +22,10 @@ import {PerformanceAgent} from './agents/PerformanceAgent.js';
19
22
  import {StylingAgent} from './agents/StylingAgent.js';
20
23
  import {AiHistoryStorage, ConversationType, type SerializedConversation} from './AiHistoryStorage.js';
21
24
  import type {ChangeManager} from './ChangeManager.js';
25
+ import {NetworkRequestFormatter} from './data_formatters/NetworkRequestFormatter.js';
26
+ import {PerformanceInsightFormatter} from './data_formatters/PerformanceInsightFormatter.js';
27
+ import {micros} from './data_formatters/UnitFormatters.js';
28
+ import {AgentFocus} from './performance/AIContext.js';
22
29
 
23
30
  export const NOT_FOUND_IMAGE_DATA = '';
24
31
  const MAX_TITLE_LENGTH = 80;
@@ -240,15 +247,91 @@ export class AiConversation {
240
247
  return agent;
241
248
  }
242
249
 
250
+ #factsCache = new Map<ExtraContext, Host.AidaClient.RequestFact>();
251
+
252
+ async #createFactsForExtraContext(contexts: ExtraContext[]): Promise<void> {
253
+ for (const context of contexts) {
254
+ const cached = this.#factsCache.get(context);
255
+ if (cached) {
256
+ this.#agent.addFact(cached);
257
+ continue;
258
+ }
259
+
260
+ if (context instanceof SDK.DOMModel.DOMNode) {
261
+ const desc = await StylingAgent.describeElement(context);
262
+
263
+ const fact = {
264
+ text: `Relevant HTML element:\n${desc}`,
265
+ metadata: {
266
+ source: 'devtools-floaty',
267
+ score: 1,
268
+ }
269
+ };
270
+ this.#factsCache.set(context, fact);
271
+ this.#agent.addFact(fact);
272
+ } else if (context instanceof SDK.NetworkRequest.NetworkRequest) {
273
+ const calculator = new NetworkTimeCalculator.NetworkTransferTimeCalculator();
274
+ calculator.updateBoundaries(context);
275
+ const formatter = new NetworkRequestFormatter(context, calculator);
276
+ const desc = await formatter.formatNetworkRequest();
277
+
278
+ const fact = {
279
+ text: `Relevant network request:\n${desc}`,
280
+ metadata: {
281
+ source: 'devtools-floaty',
282
+ score: 1,
283
+ }
284
+ };
285
+ this.#factsCache.set(context, fact);
286
+ this.#agent.addFact(fact);
287
+ } else if ('insight' in context) {
288
+ const focus = AgentFocus.fromInsight(context.trace, context.insight);
289
+ const formatter = new PerformanceInsightFormatter(
290
+ focus,
291
+ context.insight,
292
+ );
293
+
294
+ const text = `Relevant Performance Insight:\n${formatter.formatInsight()}`;
295
+ const fact = {
296
+ text,
297
+ metadata: {
298
+ source: 'devtools-floaty',
299
+ score: 1,
300
+ }
301
+ };
302
+ this.#factsCache.set(context, fact);
303
+ this.#agent.addFact(fact);
304
+ } else {
305
+ // Must be a trace event
306
+ const time = Trace.Types.Timing.Micro(
307
+ context.event.ts - context.traceStartTime,
308
+ );
309
+
310
+ const desc = `Trace event: ${context.event.name}
311
+ Time: ${micros(time)}`;
312
+
313
+ const fact = {
314
+ text: `Relevant trace event:\n${desc}`,
315
+ metadata: {
316
+ source: 'devtools-floaty',
317
+ score: 1,
318
+ }
319
+ };
320
+ this.#factsCache.set(context, fact);
321
+ this.#agent.addFact(fact);
322
+ }
323
+ }
324
+ }
325
+
243
326
  async *
244
327
  run(
245
328
  initialQuery: string,
246
- options: {
247
- selected: ConversationContext<unknown>|null,
248
- signal?: AbortSignal,
249
- },
329
+ options: {selected: ConversationContext<unknown>|null, signal?: AbortSignal, extraContext?: ExtraContext[]},
250
330
  multimodalInput?: MultimodalInput,
251
331
  ): AsyncGenerator<ResponseData, void, void> {
332
+ if (options.extraContext) {
333
+ await this.#createFactsForExtraContext(options.extraContext);
334
+ }
252
335
  for await (const data of this.#agent.run(initialQuery, options, multimodalInput)) {
253
336
  // We don't want to save partial responses to the conversation history.
254
337
  // TODO(crbug.com/463325400): We should save interleaved answers to the history as well.
@@ -267,3 +350,10 @@ export class AiConversation {
267
350
  function isAiAssistanceServerSideLoggingEnabled(): boolean {
268
351
  return !Root.Runtime.hostConfig.aidaAvailability?.disallowLogging;
269
352
  }
353
+
354
+ // TODO: this is the same as the type in UI.Floaty but we cannot use UI
355
+ // here. This is fine for prototyping but if we take this further we can
356
+ // rearchitect.
357
+ type ExtraContext = SDK.DOMModel.DOMNode|SDK.NetworkRequest.NetworkRequest|
358
+ {event: Trace.Types.Events.Event, traceStartTime: Trace.Types.Timing.Micro}|
359
+ {insight: Trace.Insights.Types.InsightModel, trace: Trace.TraceModel.ParsedTrace};