chrome-devtools-frontend 1.0.1550444 → 1.0.1555174

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (466) hide show
  1. package/docs/styleguide/ux/components.md +34 -8
  2. package/eslint.config.mjs +7 -0
  3. package/front_end/Images/generate-css-vars.js +8 -4
  4. package/front_end/Images/src/spark.svg +10 -0
  5. package/front_end/core/common/Settings.ts +20 -8
  6. package/front_end/core/host/UserMetrics.ts +3 -1
  7. package/front_end/core/i18n/collect-ui-strings.js +19 -10
  8. package/front_end/core/i18n/generate-locales-js.js +4 -4
  9. package/front_end/core/protocol_client/CDPConnection.ts +1 -0
  10. package/front_end/core/protocol_client/InspectorBackend.ts +5 -1
  11. package/front_end/core/root/Runtime.ts +0 -12
  12. package/front_end/core/sdk/DOMModel.ts +38 -3
  13. package/front_end/core/sdk/DebuggerModel.ts +9 -4
  14. package/front_end/core/sdk/IsolateManager.ts +7 -0
  15. package/front_end/core/sdk/PageResourceLoader.ts +3 -3
  16. package/front_end/core/sdk/RehydratingConnection.ts +5 -2
  17. package/front_end/core/sdk/ResourceTreeModel.ts +0 -1
  18. package/front_end/entrypoints/main/MainImpl.ts +28 -10
  19. package/front_end/generated/SupportedCSSProperties.js +32 -0
  20. package/front_end/models/ai_assistance/AiConversation.ts +94 -4
  21. package/front_end/models/ai_assistance/agents/AiAgent.ts +30 -15
  22. package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +179 -41
  23. package/front_end/models/ai_assistance/agents/StylingAgent.snapshot.txt +5 -0
  24. package/front_end/models/ai_assistance/agents/StylingAgent.ts +62 -0
  25. package/front_end/models/ai_assistance/data_formatters/NetworkRequestFormatter.ts +2 -1
  26. package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.ts +1 -7
  27. package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.snapshot.txt +124 -12
  28. package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.ts +125 -30
  29. package/front_end/models/ai_assistance/performance/AICallTree.ts +42 -0
  30. package/front_end/models/ai_code_generation/AiCodeGeneration.ts +12 -0
  31. package/front_end/models/issues_manager/Issue.ts +1 -0
  32. package/front_end/models/issues_manager/IssueAggregator.ts +9 -0
  33. package/front_end/models/issues_manager/IssuesManager.ts +5 -0
  34. package/front_end/models/issues_manager/PermissionElementIssue.ts +262 -0
  35. package/front_end/models/issues_manager/descriptions/permissionElementActivationDisabled.md +7 -0
  36. package/front_end/models/issues_manager/descriptions/permissionElementActivationDisabledWithOccluder.md +9 -0
  37. package/front_end/models/issues_manager/descriptions/permissionElementActivationDisabledWithOccluderParent.md +9 -0
  38. package/front_end/models/issues_manager/descriptions/permissionElementCspFrameAncestorsMissing.md +5 -0
  39. package/front_end/models/issues_manager/descriptions/permissionElementFencedFrameDisallowed.md +5 -0
  40. package/front_end/models/issues_manager/descriptions/permissionElementFontSizeTooLarge.md +5 -0
  41. package/front_end/models/issues_manager/descriptions/permissionElementFontSizeTooSmall.md +5 -0
  42. package/front_end/models/issues_manager/descriptions/permissionElementGeolocationDeprecated.md +5 -0
  43. package/front_end/models/issues_manager/descriptions/permissionElementInsetBoxShadowUnsupported.md +5 -0
  44. package/front_end/models/issues_manager/descriptions/permissionElementInvalidDisplayStyle.md +5 -0
  45. package/front_end/models/issues_manager/descriptions/permissionElementInvalidSizeValue.md +5 -0
  46. package/front_end/models/issues_manager/descriptions/permissionElementInvalidType.md +5 -0
  47. package/front_end/models/issues_manager/descriptions/permissionElementInvalidTypeActivation.md +5 -0
  48. package/front_end/models/issues_manager/descriptions/permissionElementLowContrast.md +5 -0
  49. package/front_end/models/issues_manager/descriptions/permissionElementNonOpaqueColor.md +5 -0
  50. package/front_end/models/issues_manager/descriptions/permissionElementPaddingBottomUnsupported.md +6 -0
  51. package/front_end/models/issues_manager/descriptions/permissionElementPaddingRightUnsupported.md +6 -0
  52. package/front_end/models/issues_manager/descriptions/permissionElementPermissionsPolicyBlocked.md +5 -0
  53. package/front_end/models/issues_manager/descriptions/permissionElementRegistrationFailed.md +5 -0
  54. package/front_end/models/issues_manager/descriptions/permissionElementRequestInProgress.md +5 -0
  55. package/front_end/models/issues_manager/descriptions/permissionElementSecurityChecksFailed.md +5 -0
  56. package/front_end/models/issues_manager/descriptions/permissionElementTypeNotSupported.md +5 -0
  57. package/front_end/models/issues_manager/descriptions/permissionElementUntrustedEvent.md +7 -0
  58. package/front_end/models/issues_manager/issues_manager.ts +2 -0
  59. package/front_end/models/javascript_metadata/NativeFunctions.js +23 -23
  60. package/front_end/models/stack_trace/StackTraceModel.ts +37 -18
  61. package/front_end/models/trace/Processor.ts +14 -15
  62. package/front_end/models/trace/insights/Common.ts +2 -8
  63. package/front_end/models/trace/insights/types.ts +12 -2
  64. package/front_end/models/trace/types/TraceEvents.ts +4 -1
  65. package/front_end/panels/ai_assistance/AiAssistancePanel.ts +28 -6
  66. package/front_end/panels/ai_assistance/ai_assistance-meta.ts +9 -23
  67. package/front_end/panels/ai_assistance/ai_assistance.ts +1 -0
  68. package/front_end/panels/ai_assistance/components/ChatView.ts +78 -2
  69. package/front_end/panels/ai_assistance/components/CollapsibleAssistanceContentWidget.ts +71 -0
  70. package/front_end/panels/ai_assistance/components/PerformanceAgentFlameChart.ts +126 -0
  71. package/front_end/panels/ai_assistance/components/PerformanceAgentMarkdownRenderer.ts +131 -2
  72. package/front_end/panels/ai_assistance/components/chatView.css +28 -0
  73. package/front_end/panels/ai_assistance/components/collapsibleAssistanceContentWidget.css +33 -0
  74. package/front_end/panels/application/AppManifestView.ts +1007 -521
  75. package/front_end/panels/application/ApplicationPanelSidebar.ts +1 -17
  76. package/front_end/panels/application/BounceTrackingMitigationsTreeElement.ts +2 -6
  77. package/front_end/panels/application/ExtensionStorageItemsView.ts +3 -5
  78. package/front_end/panels/application/KeyValueStorageItemsView.ts +3 -2
  79. package/front_end/panels/application/components/BackForwardCacheView.ts +2 -2
  80. package/front_end/panels/application/components/BounceTrackingMitigationsView.ts +133 -118
  81. package/front_end/panels/application/preloading/PreloadingView.ts +46 -45
  82. package/front_end/panels/application/preloading/components/MismatchedPreloadingGrid.ts +80 -75
  83. package/front_end/panels/application/preloading/components/PreloadingDisabledInfobar.ts +169 -133
  84. package/front_end/panels/application/preloading/components/RuleSetDetailsView.ts +74 -93
  85. package/front_end/panels/application/preloading/components/RuleSetGrid.ts +142 -117
  86. package/front_end/panels/application/preloading/components/UsedPreloadingView.ts +51 -11
  87. package/front_end/panels/application/preloading/components/components.ts +0 -2
  88. package/front_end/panels/common/Annotation.ts +184 -0
  89. package/front_end/panels/common/AnnotationManager.ts +148 -11
  90. package/front_end/panels/common/ExtensionView.ts +47 -0
  91. package/front_end/panels/common/PersistenceUtils.ts +22 -25
  92. package/front_end/panels/common/annotation.css +40 -0
  93. package/front_end/panels/common/common.ts +1 -0
  94. package/front_end/panels/console/ConsoleInsightTeaser.ts +187 -5
  95. package/front_end/panels/console/ConsolePinPane.ts +437 -217
  96. package/front_end/panels/console/ConsolePrompt.ts +32 -223
  97. package/front_end/panels/console/ConsoleView.ts +67 -66
  98. package/front_end/panels/console/ConsoleViewMessage.ts +8 -3
  99. package/front_end/panels/console/consoleInsightTeaser.css +23 -0
  100. package/front_end/panels/console/consoleView.css +1 -1
  101. package/front_end/panels/elements/AdoptedStyleSheetTreeElement.ts +89 -0
  102. package/front_end/panels/elements/ColorSwatchPopoverIcon.ts +2 -2
  103. package/front_end/panels/elements/ComputedStyleWidget.ts +16 -5
  104. package/front_end/panels/elements/ElementsPanel.ts +38 -12
  105. package/front_end/panels/elements/ElementsSidebarPane.ts +1 -3
  106. package/front_end/panels/elements/ElementsTreeElement.ts +313 -353
  107. package/front_end/panels/elements/ElementsTreeOutline.ts +39 -13
  108. package/front_end/panels/elements/StylePropertyTreeElement.ts +15 -14
  109. package/front_end/panels/elements/StylesSidebarPane.ts +1 -1
  110. package/front_end/panels/emulation/MediaQueryInspector.ts +171 -125
  111. package/front_end/panels/explain/components/ConsoleInsight.ts +175 -150
  112. package/front_end/panels/explain/components/consoleInsight.css +348 -347
  113. package/front_end/panels/issues/AffectedPermissionElementsView.ts +46 -0
  114. package/front_end/panels/issues/IssueView.ts +2 -0
  115. package/front_end/panels/issues/IssuesPane.ts +6 -0
  116. package/front_end/panels/layer_viewer/LayerDetailsView.ts +165 -149
  117. package/front_end/panels/layer_viewer/Layers3DView.ts +131 -78
  118. package/front_end/panels/lighthouse/LighthouseStatusView.ts +149 -100
  119. package/front_end/panels/linear_memory_inspector/components/LinearMemoryHighlightChipList.ts +90 -64
  120. package/front_end/panels/linear_memory_inspector/components/LinearMemoryInspector.ts +25 -34
  121. package/front_end/panels/linear_memory_inspector/components/LinearMemoryValueInterpreter.ts +60 -44
  122. package/front_end/panels/linear_memory_inspector/components/ValueInterpreterDisplay.ts +170 -151
  123. package/front_end/panels/linear_memory_inspector/components/ValueInterpreterSettings.ts +50 -51
  124. package/front_end/panels/linear_memory_inspector/components/valueInterpreterDisplay.css +0 -13
  125. package/front_end/panels/linear_memory_inspector/components/valueInterpreterSettings.css +20 -18
  126. package/front_end/panels/mobile_throttling/CalibrationController.ts +3 -1
  127. package/front_end/panels/network/NetworkDataGridNode.ts +14 -6
  128. package/front_end/panels/network/NetworkItemView.ts +42 -3
  129. package/front_end/panels/network/NetworkLogView.ts +10 -11
  130. package/front_end/panels/network/NetworkPanel.ts +63 -1
  131. package/front_end/panels/network/RequestInitiatorView.ts +146 -113
  132. package/front_end/panels/network/components/RequestHeaderSection.css +51 -50
  133. package/front_end/panels/network/components/RequestHeaderSection.ts +81 -71
  134. package/front_end/panels/network/components/RequestHeadersView.css +1 -1
  135. package/front_end/panels/network/components/RequestHeadersView.ts +26 -11
  136. package/front_end/panels/network/components/RequestTrustTokensView.css +24 -14
  137. package/front_end/panels/network/components/RequestTrustTokensView.ts +144 -140
  138. package/front_end/panels/profiler/IsolateSelector.ts +2 -1
  139. package/front_end/panels/protocol_monitor/ProtocolMonitor.ts +49 -33
  140. package/front_end/panels/recorder/RecorderController.ts +2 -3
  141. package/front_end/panels/recorder/components/ControlButton.ts +68 -34
  142. package/front_end/panels/recorder/components/CreateRecordingView.ts +9 -6
  143. package/front_end/panels/recorder/components/RecordingView.ts +81 -88
  144. package/front_end/panels/recorder/components/ReplaySection.ts +226 -145
  145. package/front_end/panels/recorder/{controllers → components}/SelectorPicker.ts +129 -52
  146. package/front_end/panels/recorder/components/StepEditor.ts +21 -67
  147. package/front_end/panels/recorder/components/StepView.ts +222 -180
  148. package/front_end/panels/recorder/components/TimelineSection.ts +69 -48
  149. package/front_end/panels/recorder/components/components.ts +2 -2
  150. package/front_end/panels/recorder/components/selectorPicker.css +14 -0
  151. package/front_end/panels/recorder/components/stepEditor.css +0 -5
  152. package/front_end/panels/recorder/components/stepView.css +196 -198
  153. package/front_end/panels/recorder/extensions/ExtensionManager.ts +4 -48
  154. package/front_end/panels/recorder/models/ScreenshotUtils.ts +17 -11
  155. package/front_end/panels/security/CookieControlsView.ts +30 -26
  156. package/front_end/panels/settings/components/SyncSection.ts +0 -1
  157. package/front_end/panels/sources/CSSPlugin.ts +3 -3
  158. package/front_end/panels/sources/CallStackSidebarPane.ts +60 -75
  159. package/front_end/panels/sources/SourcesPanel.ts +1 -11
  160. package/front_end/panels/sources/TabbedEditorContainer.ts +11 -8
  161. package/front_end/panels/sources/ThreadsSidebarPane.ts +96 -101
  162. package/front_end/panels/sources/threadsSidebarPane.css +6 -5
  163. package/front_end/panels/timeline/CompatibilityTracksAppender.ts +0 -1
  164. package/front_end/panels/timeline/InteractionsTrackAppender.ts +2 -3
  165. package/front_end/panels/timeline/TimelineFlameChartDataProvider.ts +23 -33
  166. package/front_end/panels/timeline/TimelineFlameChartNetworkDataProvider.ts +4 -3
  167. package/front_end/panels/timeline/TimelineFlameChartView.ts +12 -0
  168. package/front_end/panels/timeline/TimelinePanel.ts +3 -5
  169. package/front_end/panels/timeline/components/IgnoreListSetting.ts +164 -142
  170. package/front_end/panels/timeline/components/InteractionBreakdown.ts +48 -28
  171. package/front_end/panels/timeline/components/LayoutShiftDetails.ts +18 -23
  172. package/front_end/panels/timeline/components/NetworkRequestTooltip.ts +98 -73
  173. package/front_end/panels/timeline/components/Sidebar.ts +16 -7
  174. package/front_end/panels/timeline/components/SidebarInsightsTab.ts +174 -137
  175. package/front_end/panels/timeline/components/SidebarSingleInsightSet.ts +262 -291
  176. package/front_end/panels/timeline/components/Utils.ts +25 -0
  177. package/front_end/panels/timeline/components/insights/BaseInsightComponent.ts +210 -146
  178. package/front_end/panels/timeline/components/insights/CLSCulprits.ts +8 -20
  179. package/front_end/panels/timeline/components/insights/Cache.ts +0 -9
  180. package/front_end/panels/timeline/components/insights/Checklist.ts +53 -43
  181. package/front_end/panels/timeline/components/insights/DOMSize.ts +11 -33
  182. package/front_end/panels/timeline/components/insights/DocumentLatency.ts +6 -12
  183. package/front_end/panels/timeline/components/insights/DuplicatedJavaScript.ts +0 -9
  184. package/front_end/panels/timeline/components/insights/EventRef.ts +47 -109
  185. package/front_end/panels/timeline/components/insights/FontDisplay.ts +0 -9
  186. package/front_end/panels/timeline/components/insights/ForcedReflow.ts +0 -9
  187. package/front_end/panels/timeline/components/insights/INPBreakdown.ts +0 -9
  188. package/front_end/panels/timeline/components/insights/ImageDelivery.ts +1 -10
  189. package/front_end/panels/timeline/components/insights/ImageRef.ts +112 -0
  190. package/front_end/panels/timeline/components/insights/InsightRenderer.ts +91 -0
  191. package/front_end/panels/timeline/components/insights/LCPBreakdown.ts +0 -9
  192. package/front_end/panels/timeline/components/insights/LCPDiscovery.ts +11 -14
  193. package/front_end/panels/timeline/components/insights/LegacyJavaScript.ts +0 -9
  194. package/front_end/panels/timeline/components/insights/ModernHTTP.ts +0 -9
  195. package/front_end/panels/timeline/components/insights/NetworkDependencyTree.ts +6 -21
  196. package/front_end/panels/timeline/components/insights/NodeLink.ts +68 -43
  197. package/front_end/panels/timeline/components/insights/README.md +2 -3
  198. package/front_end/panels/timeline/components/insights/RenderBlocking.ts +0 -9
  199. package/front_end/panels/timeline/components/insights/SlowCSSSelector.ts +0 -9
  200. package/front_end/panels/timeline/components/insights/ThirdParties.ts +0 -9
  201. package/front_end/panels/timeline/components/insights/Viewport.ts +7 -19
  202. package/front_end/panels/timeline/components/insights/baseInsightComponent.css +5 -0
  203. package/front_end/panels/timeline/components/insights/insights.ts +2 -0
  204. package/front_end/panels/timeline/components/interactionBreakdown.css +15 -13
  205. package/front_end/panels/timeline/components/sidebarInsightsTab.css +50 -48
  206. package/front_end/panels/timeline/enable-easter-egg.js +7 -3
  207. package/front_end/third_party/chromium/README.chromium +1 -1
  208. package/front_end/third_party/puppeteer/README.chromium +2 -2
  209. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/BluetoothEmulation.d.ts +96 -0
  210. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/BluetoothEmulation.d.ts.map +1 -0
  211. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/BluetoothEmulation.js +8 -0
  212. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/BluetoothEmulation.js.map +1 -0
  213. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.d.ts +87 -0
  214. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.d.ts.map +1 -1
  215. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.js.map +1 -1
  216. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/DeviceRequestPrompt.d.ts +2 -6
  217. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/DeviceRequestPrompt.d.ts.map +1 -1
  218. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/DeviceRequestPrompt.js +5 -24
  219. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/DeviceRequestPrompt.js.map +1 -1
  220. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.d.ts +5 -0
  221. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.d.ts.map +1 -1
  222. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.js.map +1 -1
  223. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/api.d.ts +1 -0
  224. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/api.d.ts.map +1 -1
  225. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/api.js.map +1 -1
  226. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BluetoothEmulation.d.ts +18 -0
  227. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BluetoothEmulation.d.ts.map +1 -0
  228. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BluetoothEmulation.js +42 -0
  229. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BluetoothEmulation.js.map +1 -0
  230. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.d.ts +4 -1
  231. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.d.ts.map +1 -1
  232. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.js +10 -0
  233. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.js.map +1 -1
  234. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/DeviceRequestPrompt.d.ts +27 -0
  235. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/DeviceRequestPrompt.d.ts.map +1 -0
  236. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/DeviceRequestPrompt.js +90 -0
  237. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/DeviceRequestPrompt.js.map +1 -0
  238. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.d.ts +3 -1
  239. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.d.ts.map +1 -1
  240. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.js +3 -2
  241. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.js.map +1 -1
  242. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.d.ts +4 -1
  243. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.d.ts.map +1 -1
  244. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.js +5 -2
  245. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.js.map +1 -1
  246. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.d.ts +4 -0
  247. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.d.ts.map +1 -1
  248. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.js +14 -2
  249. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.js.map +1 -1
  250. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/util.d.ts.map +1 -1
  251. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/util.js +7 -0
  252. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/util.js.map +1 -1
  253. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Accessibility.js +1 -1
  254. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Accessibility.js.map +1 -1
  255. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BluetoothEmulation.d.ts +18 -0
  256. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BluetoothEmulation.d.ts.map +1 -0
  257. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BluetoothEmulation.js +30 -0
  258. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BluetoothEmulation.js.map +1 -0
  259. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.d.ts +5 -2
  260. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.d.ts.map +1 -1
  261. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.js +22 -3
  262. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.js.map +1 -1
  263. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/CdpSession.d.ts +1 -1
  264. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/CdpSession.d.ts.map +1 -1
  265. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/DeviceRequestPrompt.d.ts +2 -3
  266. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/DeviceRequestPrompt.d.ts.map +1 -1
  267. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/DeviceRequestPrompt.js +4 -6
  268. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/DeviceRequestPrompt.js.map +1 -1
  269. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/FrameManager.d.ts +2 -2
  270. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/FrameManager.d.ts.map +1 -1
  271. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/FrameManager.js +1 -1
  272. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/FrameManager.js.map +1 -1
  273. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.d.ts +2 -0
  274. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.d.ts.map +1 -1
  275. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.js +8 -0
  276. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.js.map +1 -1
  277. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/WebWorker.d.ts.map +1 -1
  278. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/WebWorker.js +8 -3
  279. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/WebWorker.js.map +1 -1
  280. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/cdp.d.ts +1 -0
  281. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/cdp.d.ts.map +1 -1
  282. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/cdp.js +1 -0
  283. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/cdp.js.map +1 -1
  284. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/BrowserConnector.js +30 -0
  285. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/BrowserConnector.js.map +1 -1
  286. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConnectOptions.d.ts +15 -0
  287. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConnectOptions.d.ts.map +1 -1
  288. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/injected/injected.d.ts +1 -1
  289. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ChromeLauncher.d.ts +1 -1
  290. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ChromeLauncher.d.ts.map +1 -1
  291. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ChromeLauncher.js +2 -13
  292. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ChromeLauncher.js.map +1 -1
  293. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/LaunchOptions.d.ts +5 -3
  294. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/LaunchOptions.d.ts.map +1 -1
  295. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/LaunchOptions.js +17 -0
  296. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/LaunchOptions.js.map +1 -1
  297. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.d.ts +3 -3
  298. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js +3 -3
  299. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js.map +1 -1
  300. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/Mutex.d.ts +2 -2
  301. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/version.d.ts +1 -1
  302. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/version.js +1 -1
  303. package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.d.ts +221 -4
  304. package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.js +182 -95
  305. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/BluetoothEmulation.d.ts +96 -0
  306. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/BluetoothEmulation.d.ts.map +1 -0
  307. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/BluetoothEmulation.js +7 -0
  308. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/BluetoothEmulation.js.map +1 -0
  309. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.d.ts +87 -0
  310. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.d.ts.map +1 -1
  311. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.js.map +1 -1
  312. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/DeviceRequestPrompt.d.ts +2 -6
  313. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/DeviceRequestPrompt.d.ts.map +1 -1
  314. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/DeviceRequestPrompt.js +4 -22
  315. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/DeviceRequestPrompt.js.map +1 -1
  316. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.d.ts +5 -0
  317. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.d.ts.map +1 -1
  318. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.js.map +1 -1
  319. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/api.d.ts +1 -0
  320. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/api.d.ts.map +1 -1
  321. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/api.js.map +1 -1
  322. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BluetoothEmulation.d.ts +18 -0
  323. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BluetoothEmulation.d.ts.map +1 -0
  324. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BluetoothEmulation.js +38 -0
  325. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BluetoothEmulation.js.map +1 -0
  326. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.d.ts +4 -1
  327. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.d.ts.map +1 -1
  328. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.js +10 -0
  329. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.js.map +1 -1
  330. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/DeviceRequestPrompt.d.ts +27 -0
  331. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/DeviceRequestPrompt.d.ts.map +1 -0
  332. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/DeviceRequestPrompt.js +85 -0
  333. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/DeviceRequestPrompt.js.map +1 -0
  334. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.d.ts +3 -1
  335. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.d.ts.map +1 -1
  336. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.js +3 -2
  337. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.js.map +1 -1
  338. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.d.ts +4 -1
  339. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.d.ts.map +1 -1
  340. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.js +5 -2
  341. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.js.map +1 -1
  342. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.d.ts +4 -0
  343. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.d.ts.map +1 -1
  344. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.js +14 -2
  345. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.js.map +1 -1
  346. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/util.d.ts.map +1 -1
  347. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/util.js +7 -0
  348. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/util.js.map +1 -1
  349. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Accessibility.js +1 -1
  350. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Accessibility.js.map +1 -1
  351. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BluetoothEmulation.d.ts +18 -0
  352. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BluetoothEmulation.d.ts.map +1 -0
  353. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BluetoothEmulation.js +26 -0
  354. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BluetoothEmulation.js.map +1 -0
  355. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.d.ts +5 -2
  356. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.d.ts.map +1 -1
  357. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.js +22 -3
  358. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.js.map +1 -1
  359. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/CdpSession.d.ts +1 -1
  360. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/CdpSession.d.ts.map +1 -1
  361. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/DeviceRequestPrompt.d.ts +2 -3
  362. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/DeviceRequestPrompt.d.ts.map +1 -1
  363. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/DeviceRequestPrompt.js +2 -4
  364. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/DeviceRequestPrompt.js.map +1 -1
  365. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/FrameManager.d.ts +2 -2
  366. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/FrameManager.d.ts.map +1 -1
  367. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/FrameManager.js +2 -2
  368. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/FrameManager.js.map +1 -1
  369. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.d.ts +2 -0
  370. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.d.ts.map +1 -1
  371. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.js +8 -0
  372. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.js.map +1 -1
  373. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/WebWorker.d.ts.map +1 -1
  374. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/WebWorker.js +8 -3
  375. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/WebWorker.js.map +1 -1
  376. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/cdp.d.ts +1 -0
  377. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/cdp.d.ts.map +1 -1
  378. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/cdp.js +1 -0
  379. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/cdp.js.map +1 -1
  380. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserConnector.js +31 -1
  381. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserConnector.js.map +1 -1
  382. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConnectOptions.d.ts +15 -0
  383. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConnectOptions.d.ts.map +1 -1
  384. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ChromeLauncher.d.ts +1 -1
  385. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ChromeLauncher.d.ts.map +1 -1
  386. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ChromeLauncher.js +2 -13
  387. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ChromeLauncher.js.map +1 -1
  388. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/LaunchOptions.d.ts +5 -3
  389. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/LaunchOptions.d.ts.map +1 -1
  390. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/LaunchOptions.js +16 -1
  391. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/LaunchOptions.js.map +1 -1
  392. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.d.ts +3 -3
  393. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js +3 -3
  394. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js.map +1 -1
  395. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/version.d.ts +1 -1
  396. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/version.js +1 -1
  397. package/front_end/third_party/puppeteer/package/lib/types.d.ts +221 -4
  398. package/front_end/third_party/puppeteer/package/package.json +4 -4
  399. package/front_end/third_party/puppeteer/package/src/api/BluetoothEmulation.ts +103 -0
  400. package/front_end/third_party/puppeteer/package/src/api/Browser.ts +96 -1
  401. package/front_end/third_party/puppeteer/package/src/api/DeviceRequestPrompt.ts +2 -10
  402. package/front_end/third_party/puppeteer/package/src/api/Page.ts +6 -0
  403. package/front_end/third_party/puppeteer/package/src/api/api.ts +1 -0
  404. package/front_end/third_party/puppeteer/package/src/bidi/BluetoothEmulation.ts +52 -0
  405. package/front_end/third_party/puppeteer/package/src/bidi/Browser.ts +15 -0
  406. package/front_end/third_party/puppeteer/package/src/bidi/DeviceRequestPrompt.ts +138 -0
  407. package/front_end/third_party/puppeteer/package/src/bidi/Frame.ts +7 -3
  408. package/front_end/third_party/puppeteer/package/src/bidi/Page.ts +10 -2
  409. package/front_end/third_party/puppeteer/package/src/bidi/core/BrowsingContext.ts +30 -2
  410. package/front_end/third_party/puppeteer/package/src/bidi/util.ts +8 -0
  411. package/front_end/third_party/puppeteer/package/src/cdp/Accessibility.ts +1 -1
  412. package/front_end/third_party/puppeteer/package/src/cdp/BluetoothEmulation.ts +47 -0
  413. package/front_end/third_party/puppeteer/package/src/cdp/Browser.ts +33 -3
  414. package/front_end/third_party/puppeteer/package/src/cdp/CdpSession.ts +1 -1
  415. package/front_end/third_party/puppeteer/package/src/cdp/DeviceRequestPrompt.ts +3 -8
  416. package/front_end/third_party/puppeteer/package/src/cdp/Frame.ts +2 -2
  417. package/front_end/third_party/puppeteer/package/src/cdp/FrameManager.ts +9 -4
  418. package/front_end/third_party/puppeteer/package/src/cdp/Page.ts +13 -0
  419. package/front_end/third_party/puppeteer/package/src/cdp/WebWorker.ts +8 -3
  420. package/front_end/third_party/puppeteer/package/src/cdp/cdp.ts +1 -0
  421. package/front_end/third_party/puppeteer/package/src/common/BrowserConnector.ts +45 -1
  422. package/front_end/third_party/puppeteer/package/src/common/ConnectOptions.ts +20 -0
  423. package/front_end/third_party/puppeteer/package/src/node/ChromeLauncher.ts +5 -17
  424. package/front_end/third_party/puppeteer/package/src/node/LaunchOptions.ts +23 -7
  425. package/front_end/third_party/puppeteer/package/src/revisions.ts +3 -3
  426. package/front_end/third_party/puppeteer/package/src/util/version.ts +1 -1
  427. package/front_end/third_party/puppeteer/puppeteer-tsconfig.json +4 -0
  428. package/front_end/ui/components/annotations/AnnotationRepository.ts +153 -13
  429. package/front_end/ui/components/settings/SettingCheckbox.ts +4 -6
  430. package/front_end/ui/components/snackbars/Snackbars.docs.ts +0 -1
  431. package/front_end/ui/components/text_editor/AiCodeCompletionTeaserPlaceholder.ts +12 -3
  432. package/front_end/ui/components/text_editor/AiCodeGenerationProvider.ts +182 -0
  433. package/front_end/ui/components/text_editor/text_editor.ts +1 -0
  434. package/front_end/ui/helpers/OpenInNewTab.ts +5 -1
  435. package/front_end/ui/i18n/i18n.ts +9 -9
  436. package/front_end/ui/kit/icons/Icon.docs.ts +22 -65
  437. package/front_end/ui/kit/kit.ts +1 -0
  438. package/front_end/ui/kit/link/Link.docs.ts +15 -0
  439. package/front_end/ui/kit/link/Link.ts +151 -0
  440. package/front_end/ui/kit/link/link.css +27 -0
  441. package/front_end/ui/legacy/EmptyWidget.ts +6 -0
  442. package/front_end/ui/legacy/Floaty.ts +442 -0
  443. package/front_end/ui/legacy/InspectorView.ts +12 -0
  444. package/front_end/ui/legacy/ReportView.ts +1 -1
  445. package/front_end/ui/legacy/SelectMenu.docs.ts +0 -1
  446. package/front_end/ui/legacy/TabbedPane.ts +150 -65
  447. package/front_end/ui/legacy/Widget.ts +1 -3
  448. package/front_end/ui/legacy/components/cookie_table/CookiesTable.ts +1 -1
  449. package/front_end/ui/legacy/components/inline_editor/ColorSwatch.ts +36 -36
  450. package/front_end/ui/legacy/components/object_ui/JavaScriptREPL.ts +22 -37
  451. package/front_end/ui/legacy/components/object_ui/RemoteObjectPreviewFormatter.ts +31 -1
  452. package/front_end/ui/legacy/components/perf_ui/FlameChart.ts +2 -2
  453. package/front_end/ui/legacy/components/utils/Linkifier.ts +7 -11
  454. package/front_end/ui/legacy/floaty.css +77 -0
  455. package/front_end/ui/legacy/legacy.ts +2 -0
  456. package/front_end/ui/legacy/tabbedPane.css +4 -7
  457. package/front_end/ui/visual_logging/KnownContextValues.ts +7 -0
  458. package/inspector_overlay/loadCSS.rollup.js +5 -4
  459. package/package.json +2 -2
  460. package/front_end/panels/application/preloading/components/PreloadingMismatchedHeadersGrid.ts +0 -99
  461. package/front_end/panels/recorder/components/SelectButton.ts +0 -304
  462. package/front_end/panels/recorder/controllers/controllers.ts +0 -7
  463. package/front_end/ui/components/chrome_link/ChromeLink.ts +0 -76
  464. package/front_end/ui/components/chrome_link/chromeLink.css +0 -12
  465. package/front_end/ui/components/chrome_link/chrome_link.ts +0 -9
  466. /package/front_end/panels/recorder/components/{selectButton.css → replaySection.css} +0 -0
@@ -1,10 +1,10 @@
1
1
  // Copyright 2023 The Chromium Authors
2
2
  // Use of this source code is governed by a BSD-style license that can be
3
3
  // found in the LICENSE file.
4
- /* eslint-disable @devtools/no-imperative-dom-api */
5
4
 
6
5
  import * as Common from '../../../core/common/common.js';
7
6
  import * as Extensions from '../../../models/extensions/extensions.js';
7
+ import * as PanelCommon from '../../common/common.js';
8
8
 
9
9
  let instance: ExtensionManager|null = null;
10
10
 
@@ -25,7 +25,7 @@ export class ExtensionManager extends Common.ObjectWrapper.ObjectWrapper<EventTy
25
25
  return instance;
26
26
  }
27
27
 
28
- #views = new Map<string, ExtensionIframe>();
28
+ #views = new Map<string, PanelCommon.ExtensionIframe.ExtensionIframe>();
29
29
 
30
30
  constructor() {
31
31
  super();
@@ -54,7 +54,7 @@ export class ExtensionManager extends Common.ObjectWrapper.ObjectWrapper<EventTy
54
54
  return Extensions.RecorderPluginManager.RecorderPluginManager.instance().plugins();
55
55
  }
56
56
 
57
- getView(descriptorId: string): ExtensionIframe {
57
+ getView(descriptorId: string): PanelCommon.ExtensionIframe.ExtensionIframe {
58
58
  const view = this.#views.get(descriptorId);
59
59
  if (!view) {
60
60
  throw new Error('View not found');
@@ -69,55 +69,11 @@ export class ExtensionManager extends Common.ObjectWrapper.ObjectWrapper<EventTy
69
69
  #handleView = (event: {data: Extensions.RecorderPluginManager.ViewDescriptor}): void => {
70
70
  const descriptor = event.data;
71
71
  if (!this.#views.has(descriptor.id)) {
72
- this.#views.set(descriptor.id, new ExtensionIframe(descriptor));
72
+ this.#views.set(descriptor.id, new PanelCommon.ExtensionIframe.ExtensionIframe(descriptor));
73
73
  }
74
74
  };
75
75
  }
76
76
 
77
- class ExtensionIframe {
78
- #descriptor: Extensions.RecorderPluginManager.ViewDescriptor;
79
- #iframe: HTMLIFrameElement;
80
- #isShowing = false;
81
- #isLoaded = false;
82
-
83
- constructor(descriptor: Extensions.RecorderPluginManager.ViewDescriptor) {
84
- this.#descriptor = descriptor;
85
- this.#iframe = document.createElement('iframe');
86
- this.#iframe.src = descriptor.pagePath;
87
- this.#iframe.onload = this.#onIframeLoad;
88
- }
89
-
90
- #onIframeLoad = (): void => {
91
- this.#isLoaded = true;
92
- if (this.#isShowing) {
93
- this.#descriptor.onShown();
94
- }
95
- };
96
-
97
- show(): void {
98
- if (this.#isShowing) {
99
- return;
100
- }
101
- this.#isShowing = true;
102
- if (this.#isLoaded) {
103
- this.#descriptor.onShown();
104
- }
105
- }
106
-
107
- hide(): void {
108
- if (!this.#isShowing) {
109
- return;
110
- }
111
- this.#isShowing = false;
112
- this.#isLoaded = false;
113
- this.#descriptor.onHidden();
114
- }
115
-
116
- frame(): HTMLIFrameElement {
117
- return this.#iframe;
118
- }
119
- }
120
-
121
77
  export const enum Events {
122
78
  EXTENSIONS_UPDATED = 'extensionsUpdated',
123
79
  }
@@ -1,7 +1,6 @@
1
1
  // Copyright 2023 The Chromium Authors
2
2
  // Use of this source code is governed by a BSD-style license that can be
3
3
  // found in the LICENSE file.
4
- /* eslint-disable @devtools/no-imperative-dom-api */
5
4
 
6
5
  import * as SDK from '../../../core/sdk/sdk.js';
7
6
 
@@ -26,30 +25,37 @@ async function captureScreenshot(): Promise<Screenshot> {
26
25
 
27
26
  export async function resizeScreenshot(data: Screenshot): Promise<Screenshot> {
28
27
  const img = new Image();
29
- const promise = new Promise(resolve => {
28
+ const imageLoaded = new Promise(resolve => {
30
29
  img.onload = resolve;
31
30
  });
32
31
  img.src = data;
33
- await promise;
32
+ await imageLoaded;
34
33
 
35
- const canvas = document.createElement('canvas');
34
+ const aspectRatio = img.width / img.height;
35
+ const canvas = new OffscreenCanvas(
36
+ SCREENSHOT_WIDTH,
37
+ Math.min(
38
+ SCREENSHOT_MAX_HEIGHT,
39
+ SCREENSHOT_WIDTH / aspectRatio,
40
+ ));
36
41
  const context = canvas.getContext('2d', {willReadFrequently: true});
37
42
  if (!context) {
38
43
  throw new Error('Could not create context.');
39
44
  }
40
- const aspectRatio = img.width / img.height;
41
- canvas.width = SCREENSHOT_WIDTH;
42
- canvas.height = Math.min(
43
- SCREENSHOT_MAX_HEIGHT,
44
- SCREENSHOT_WIDTH / aspectRatio,
45
- );
46
45
  const bitmap = await createImageBitmap(img, {
47
46
  resizeWidth: SCREENSHOT_WIDTH,
48
47
  resizeQuality: 'high',
49
48
  });
50
49
  context.drawImage(bitmap, 0, 0);
51
50
 
52
- return canvas.toDataURL('image/png') as Screenshot;
51
+ const blob = await canvas.convertToBlob({type: 'image/png'});
52
+ const dataUrl = await new Promise<string>((resolve, reject) => {
53
+ const reader = new FileReader();
54
+ reader.onloadend = () => resolve(reader.result as string);
55
+ reader.onerror = reject;
56
+ reader.readAsDataURL(blob);
57
+ });
58
+ return dataUrl as Screenshot;
53
59
  }
54
60
 
55
61
  export async function takeScreenshot(): Promise<Screenshot> {
@@ -4,7 +4,6 @@
4
4
 
5
5
  import '../../ui/components/switch/switch.js';
6
6
  import '../../ui/kit/kit.js';
7
- import '../../ui/components/chrome_link/chrome_link.js';
8
7
 
9
8
  import * as Common from '../../core/common/common.js';
10
9
  import * as Host from '../../core/host/host.js';
@@ -102,20 +101,14 @@ const UIStrings = {
102
101
  * @example {#tpcd-heuristics-grants} PH1
103
102
  */
104
103
  enableFlag: 'To use this, set {PH1} to Default',
105
- /**
106
- * @description Text used for link within the enableFlag to show users where they can enable the Third-party Cookie Metadata Grants flag.
107
- */
108
- tpcdMetadataGrants: '#tpcd-metadata-grants',
109
- /**
110
- * @description Text used for link within the enableFlag to show users where they can enable the Third-party Cookie Heuristics Grants flag.
111
- */
112
- tpcdHeuristicsGrants: '#tpcd-heuristics-grants',
113
104
  } as const;
114
105
 
115
106
  const str_ = i18n.i18n.registerUIStrings('panels/security/CookieControlsView.ts', UIStrings);
116
107
  export const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
117
108
  export const i18nFormatString = uiI18n.getFormatLocalizedString.bind(undefined, str_);
118
109
 
110
+ export const i18nFormatStringTemplate = uiI18n.getFormatLocalizedStringTemplate.bind(undefined, str_);
111
+
119
112
  export interface ViewInput {
120
113
  thirdPartyControlsDict: Root.Runtime.HostConfig['thirdPartyCookieControls'];
121
114
  isGracePeriodActive: boolean;
@@ -127,9 +120,9 @@ export type View = (input: ViewInput, output: object, target: HTMLElement) => vo
127
120
 
128
121
  function getChromeFlagsLink(flag: string): TemplateResult {
129
122
  return html`
130
- <devtools-chrome-link href="chrome://flags/#${flag}" tabindex="0">
131
- ${flag}
132
- </devtools-chrome-link>`;
123
+ <devtools-link href="chrome://flags/${flag}">
124
+ ${flag}
125
+ </devtools-link>`;
133
126
  }
134
127
  const DEFAULT_VIEW: View = (input: ViewInput, _output: object, target: HTMLElement): void => {
135
128
  // createSetting() allows us to initialize the settings with the UI binding values the first
@@ -213,13 +206,21 @@ const DEFAULT_VIEW: View = (input: ViewInput, _output: object, target: HTMLEleme
213
206
  PH1: i18nString(UIStrings.gracePeriod),
214
207
  }) :
215
208
  (input.thirdPartyControlsDict ? !input.thirdPartyControlsDict?.thirdPartyCookieMetadataEnabled: false) ?
216
- i18nFormatString(UIStrings.enableFlag, {
217
- PH1: getChromeFlagsLink(UIStrings.tpcdMetadataGrants),
218
- }) :
219
- i18nFormatString(input.isGracePeriodActive ? UIStrings.gracePeriodExplanation : UIStrings.enrollGracePeriod, {
220
- PH1: UI.Fragment.html`<x-link class="devtools-link" href="https://developers.google.com/privacy-sandbox/cookies/temporary-exceptions/grace-period" jslog=${VisualLogging.link('grace-period-link').track({click: true})}>${i18nString(UIStrings.gracePeriod)}</x-link>`,
221
- })
222
- }
209
+ i18nFormatStringTemplate(UIStrings.enableFlag, {
210
+ PH1: getChromeFlagsLink('#tpcd-metadata-grants'),
211
+ })
212
+ : i18nFormatStringTemplate(
213
+ input.isGracePeriodActive
214
+ ? UIStrings.gracePeriodExplanation
215
+ : UIStrings.enrollGracePeriod,
216
+ {
217
+ PH1: html`<devtools-link
218
+ href="https://developers.google.com/privacy-sandbox/cookies/temporary-exceptions/grace-period"
219
+ .jslogContext=${'grace-period-link'}
220
+ >${i18nString(UIStrings.gracePeriod)}</devtools-link
221
+ >`,
222
+ },
223
+ )}
223
224
  </div>
224
225
  </div>
225
226
  </label>
@@ -246,13 +247,16 @@ const DEFAULT_VIEW: View = (input: ViewInput, _output: object, target: HTMLEleme
246
247
  PH1: i18nString(UIStrings.scenarios),
247
248
  }) :
248
249
  (input.thirdPartyControlsDict ? !input.thirdPartyControlsDict.thirdPartyCookieHeuristicsEnabled: false) ?
249
- i18nFormatString(UIStrings.enableFlag, {
250
- PH1: getChromeFlagsLink(UIStrings.tpcdHeuristicsGrants),
251
- }) :
252
- i18nFormatString(UIStrings.heuristicExplanation, {
253
- PH1: UI.Fragment.html`<x-link class="devtools-link" href="https://developers.google.com/privacy-sandbox/cookies/temporary-exceptions/heuristics-based-exceptions" jslog=${VisualLogging.link('heuristic-link').track({click: true})}>${i18nString(UIStrings.scenarios)}</x-link>`,
254
- })
255
- }
250
+ i18nFormatStringTemplate(UIStrings.enableFlag, {
251
+ PH1: getChromeFlagsLink('#tpcd-heuristics-grants'),
252
+ })
253
+ : i18nFormatStringTemplate(UIStrings.heuristicExplanation, {
254
+ PH1: html`<devtools-link
255
+ href="https://developers.google.com/privacy-sandbox/cookies/temporary-exceptions/heuristics-based-exceptions"
256
+ .jslogContext=${'heuristic-link'}
257
+ >${i18nString(UIStrings.scenarios)}</devtools-link
258
+ >`,
259
+ })}
256
260
  </div>
257
261
  </div>
258
262
  </label>
@@ -2,7 +2,6 @@
2
2
  // Use of this source code is governed by a BSD-style license that can be
3
3
  // found in the LICENSE file.
4
4
 
5
- import '../../../ui/components/chrome_link/chrome_link.js';
6
5
  import '../../../ui/components/settings/settings.js';
7
6
  import '../../../ui/components/tooltips/tooltips.js';
8
7
 
@@ -163,7 +163,7 @@ class ColorSwatchWidget extends CodeMirror.WidgetType {
163
163
 
164
164
  toDOM(view: CodeMirror.EditorView): HTMLElement {
165
165
  const swatch = new InlineEditor.ColorSwatch.ColorSwatch(i18nString(UIStrings.openColorPicker));
166
- swatch.renderColor(this.#color);
166
+ swatch.color = this.#color;
167
167
  const value = swatch.createChild('span');
168
168
  value.textContent = this.#text;
169
169
  value.setAttribute('hidden', 'true');
@@ -171,13 +171,13 @@ class ColorSwatchWidget extends CodeMirror.WidgetType {
171
171
  const insert = event.data.color.getAuthoredText() ?? event.data.color.asString();
172
172
  view.dispatch({changes: {from: this.#from, to: this.#from + this.#text.length, insert}});
173
173
  this.#text = insert;
174
- this.#color = swatch.getColor() as Common.Color.Color;
174
+ this.#color = swatch.color as Common.Color.Color;
175
175
  });
176
176
  swatch.addEventListener(InlineEditor.ColorSwatch.ColorFormatChangedEvent.eventName, event => {
177
177
  const insert = event.data.color.getAuthoredText() ?? event.data.color.asString();
178
178
  view.dispatch({changes: {from: this.#from, to: this.#from + this.#text.length, insert}});
179
179
  this.#text = insert;
180
- this.#color = swatch.getColor() as Common.Color.Color;
180
+ this.#color = swatch.color as Common.Color.Color;
181
181
  });
182
182
  swatch.addEventListener(InlineEditor.ColorSwatch.ClickEvent.eventName, event => {
183
183
  event.consume(true);
@@ -2,6 +2,7 @@
2
2
  // Use of this source code is governed by a BSD-style license that can be
3
3
  // found in the LICENSE file.
4
4
  /* eslint-disable @devtools/no-imperative-dom-api */
5
+ /* eslint-disable @devtools/no-lit-render-outside-of-view */
5
6
 
6
7
  /*
7
8
  * Copyright (C) 2008 Apple Inc. All Rights Reserved.
@@ -40,6 +41,7 @@ import * as SourceMapScopes from '../../models/source_map_scopes/source_map_scop
40
41
  import * as Workspace from '../../models/workspace/workspace.js';
41
42
  import {Icon} from '../../ui/kit/kit.js';
42
43
  import * as UI from '../../ui/legacy/legacy.js';
44
+ import {Directives, html, render} from '../../ui/lit/lit.js';
43
45
  import * as VisualLogging from '../../ui/visual_logging/visual_logging.js';
44
46
 
45
47
  import callStackSidebarPaneStyles from './callStackSidebarPane.css.js';
@@ -88,6 +90,8 @@ const UIStrings = {
88
90
  const str_ = i18n.i18n.registerUIStrings('panels/sources/CallStackSidebarPane.ts', UIStrings);
89
91
  const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
90
92
 
93
+ const {createRef, ref} = Directives;
94
+
91
95
  let callstackSidebarPaneInstance: CallStackSidebarPane;
92
96
 
93
97
  export class CallStackSidebarPane extends UI.View.SimpleView implements UI.ContextFlavorListener.ContextFlavorListener,
@@ -99,12 +103,11 @@ export class CallStackSidebarPane extends UI.View.SimpleView implements UI.Conte
99
103
  private readonly items: UI.ListModel.ListModel<Item>;
100
104
  private list: UI.ListControl.ListControl<Item>;
101
105
  private readonly showMoreMessageElement: Element;
102
- private showIgnoreListed: boolean;
103
- private readonly locationPool: Bindings.LiveLocation.LiveLocationPool;
104
- private readonly updateThrottler: Common.Throttler.Throttler;
105
- private maxAsyncStackChainDepth: number;
106
- private readonly updateItemThrottler: Common.Throttler.Throttler;
107
- private readonly scheduledForUpdateItems: Set<Item>;
106
+ private showIgnoreListed = false;
107
+ private readonly locationPool = new Bindings.LiveLocation.LiveLocationPool();
108
+ private maxAsyncStackChainDepth = defaultMaxAsyncStackChainDepth;
109
+ private readonly updateItemThrottler = new Common.Throttler.Throttler(100);
110
+ private readonly scheduledForUpdateItems = new Set<Item>();
108
111
  private muteActivateItem?: boolean;
109
112
  private lastDebuggerModel: SDK.DebuggerModel.DebuggerModel|null = null;
110
113
 
@@ -115,27 +118,23 @@ export class CallStackSidebarPane extends UI.View.SimpleView implements UI.Conte
115
118
  viewId: 'sources.callstack',
116
119
  useShadowDom: true,
117
120
  });
118
- this.registerRequiredCSS(callStackSidebarPaneStyles);
119
-
120
- ({element: this.ignoreListMessageElement, checkbox: this.ignoreListCheckboxElement} =
121
- this.createIgnoreListMessageElementAndCheckbox());
122
- this.contentElement.appendChild(this.ignoreListMessageElement);
123
121
 
124
- this.notPausedMessageElement = this.contentElement.createChild('div', 'gray-info-message');
125
- this.notPausedMessageElement.textContent = i18nString(UIStrings.notPaused);
126
- this.notPausedMessageElement.tabIndex = -1;
127
-
128
- this.callFrameWarningsElement = this.contentElement.createChild('div', 'call-frame-warnings-message');
129
- const icon = new Icon();
130
- icon.name = 'warning-filled';
131
- icon.classList.add('call-frame-warning-icon', 'small');
132
- this.callFrameWarningsElement.appendChild(icon);
133
- this.callFrameWarningsElement.appendChild(document.createTextNode(i18nString(UIStrings.callFrameWarnings)));
134
- this.callFrameWarningsElement.tabIndex = -1;
122
+ const [ignoreListMessageRef, ignoreListCheckboxRef, notPausedRef, warningRef, showMoreRef] = [
123
+ createRef<HTMLElement>(),
124
+ createRef<HTMLInputElement>(),
125
+ createRef<HTMLElement>(),
126
+ createRef<HTMLElement>(),
127
+ createRef<HTMLElement>(),
128
+ ];
129
+ const ignoreListCheckboxChanged = (): void => {
130
+ this.showIgnoreListed = Boolean(ignoreListCheckboxRef.value?.checked);
131
+ for (const item of this.items) {
132
+ this.refreshItem(item);
133
+ }
134
+ };
135
135
 
136
136
  this.items = new UI.ListModel.ListModel();
137
137
  this.list = new UI.ListControl.ListControl(this.items, this, UI.ListControl.ListMode.NonViewport);
138
- this.contentElement.appendChild(this.list.element);
139
138
  this.list.element.addEventListener('contextmenu', this.onContextMenu.bind(this), false);
140
139
  self.onInvokeElement(this.list.element, event => {
141
140
  const item = this.list.itemForNode((event.target as Node | null));
@@ -145,19 +144,42 @@ export class CallStackSidebarPane extends UI.View.SimpleView implements UI.Conte
145
144
  }
146
145
  });
147
146
 
148
- this.showMoreMessageElement = this.createShowMoreMessageElement();
149
- this.showMoreMessageElement.classList.add('hidden');
150
- this.contentElement.appendChild(this.showMoreMessageElement);
151
-
152
- this.showIgnoreListed = false;
153
- this.locationPool = new Bindings.LiveLocation.LiveLocationPool();
154
-
155
- this.updateThrottler = new Common.Throttler.Throttler(100);
156
- this.maxAsyncStackChainDepth = defaultMaxAsyncStackChainDepth;
157
- this.update();
147
+ const onShowMoreClicked = (): void => {
148
+ this.maxAsyncStackChainDepth += defaultMaxAsyncStackChainDepth;
149
+ this.requestUpdate();
150
+ };
158
151
 
159
- this.updateItemThrottler = new Common.Throttler.Throttler(100);
160
- this.scheduledForUpdateItems = new Set();
152
+ // clang-format off
153
+ render(html`
154
+ <style>${callStackSidebarPaneStyles}</style>
155
+ <div class='ignore-listed-message' ${ref(ignoreListMessageRef)}>
156
+ <label class='ignore-listed-message-label'>
157
+ <input type='checkbox' tabindex=0 class='ignore-listed-checkbox'
158
+ @change=${ignoreListCheckboxChanged} ${ref(ignoreListCheckboxRef)}></input>
159
+ ${i18nString(UIStrings.showIgnorelistedFrames)}
160
+ </label>
161
+ </div>
162
+ <div class='gray-info-message' tabindex=-1 ${ref(notPausedRef)}>
163
+ ${i18nString(UIStrings.notPaused)}
164
+ </div>
165
+ <div class='call-frame-warnings-message' tabindex=-1 ${ref(warningRef)}>
166
+ <devtools-icon .name=${'warning-filled'} class='call-frame-warning-icon small'></devtools-icon>
167
+ ${i18nString(UIStrings.callFrameWarnings)}
168
+ </div>
169
+ ${this.list.element}
170
+ <div class='show-more-message hidden' ${ref(showMoreRef)}>
171
+ <span class='link' @click=${onShowMoreClicked}>${i18nString(UIStrings.showMore)}</span>
172
+ </div>
173
+ `, this.contentElement);
174
+ // clang-format on
175
+
176
+ this.ignoreListMessageElement = ignoreListMessageRef.value as HTMLElement;
177
+ this.ignoreListCheckboxElement = ignoreListCheckboxRef.value as HTMLInputElement;
178
+ this.notPausedMessageElement = notPausedRef.value as HTMLElement;
179
+ this.callFrameWarningsElement = warningRef.value as HTMLElement;
180
+ this.showMoreMessageElement = showMoreRef.value as HTMLElement;
181
+
182
+ this.requestUpdate();
161
183
 
162
184
  SDK.TargetManager.TargetManager.instance().addModelListener(
163
185
  SDK.DebuggerModel.DebuggerModel, SDK.DebuggerModel.Events.DebugInfoAttached, this.debugInfoAttached, this);
@@ -178,11 +200,11 @@ export class CallStackSidebarPane extends UI.View.SimpleView implements UI.Conte
178
200
  this.showIgnoreListed = false;
179
201
  this.ignoreListCheckboxElement.checked = false;
180
202
  this.maxAsyncStackChainDepth = defaultMaxAsyncStackChainDepth;
181
- this.update();
203
+ this.requestUpdate();
182
204
  }
183
205
 
184
206
  private debugInfoAttached(): void {
185
- this.update();
207
+ this.requestUpdate();
186
208
  }
187
209
 
188
210
  private setSourceMapSubscription(debuggerModel: SDK.DebuggerModel.DebuggerModel|null): void {
@@ -203,11 +225,7 @@ export class CallStackSidebarPane extends UI.View.SimpleView implements UI.Conte
203
225
  }
204
226
  }
205
227
 
206
- update(): void {
207
- void this.updateThrottler.schedule(() => this.doUpdate());
208
- }
209
-
210
- async doUpdate(): Promise<void> {
228
+ override async performUpdate(): Promise<void> {
211
229
  this.locationPool.disposeAll();
212
230
 
213
231
  this.callFrameWarningsElement.classList.add('hidden');
@@ -375,39 +393,6 @@ export class CallStackSidebarPane extends UI.View.SimpleView implements UI.Conte
375
393
  return true;
376
394
  }
377
395
 
378
- private createIgnoreListMessageElementAndCheckbox(): {element: Element, checkbox: HTMLInputElement} {
379
- const element = document.createElement('div');
380
- element.classList.add('ignore-listed-message');
381
- const label = element.createChild('label');
382
- label.classList.add('ignore-listed-message-label');
383
- const checkbox = label.createChild('input');
384
- checkbox.tabIndex = 0;
385
- checkbox.type = 'checkbox';
386
- checkbox.classList.add('ignore-listed-checkbox');
387
- label.append(i18nString(UIStrings.showIgnorelistedFrames));
388
- const showAll = (): void => {
389
- this.showIgnoreListed = checkbox.checked;
390
- for (const item of this.items) {
391
- this.refreshItem(item);
392
- }
393
- };
394
- checkbox.addEventListener('click', showAll);
395
- return {element, checkbox};
396
- }
397
-
398
- private createShowMoreMessageElement(): Element {
399
- const element = document.createElement('div');
400
- element.classList.add('show-more-message');
401
- element.createChild('span');
402
- const showAllLink = element.createChild('span', 'link');
403
- showAllLink.textContent = i18nString(UIStrings.showMore);
404
- showAllLink.addEventListener('click', () => {
405
- this.maxAsyncStackChainDepth += defaultMaxAsyncStackChainDepth;
406
- this.update();
407
- }, false);
408
- return element;
409
- }
410
-
411
396
  private onContextMenu(event: Event): void {
412
397
  const item = this.list.itemForNode((event.target as Node | null));
413
398
  if (!item) {
@@ -977,11 +977,8 @@ export class SourcesPanel extends UI.Panel.Panel implements
977
977
  const editorElement = this.element.querySelector('devtools-text-editor');
978
978
  if (!eventTarget.isSelfOrDescendant(editorElement) && uiSourceCode.contentType().isTextType()) {
979
979
  UI.Context.Context.instance().setFlavor(Workspace.UISourceCode.UISourceCode, uiSourceCode);
980
- if (Root.Runtime.hostConfig.devToolsAiSubmenuPrompts?.enabled) {
981
980
  const action = UI.ActionRegistry.ActionRegistry.instance().getAction(openAiAssistanceId);
982
- const submenu = contextMenu.footerSection().appendSubMenuItem(
983
- action.title(), false, openAiAssistanceId,
984
- Root.Runtime.hostConfig.devToolsAiAssistanceFileAgent?.featureName);
981
+ const submenu = contextMenu.footerSection().appendSubMenuItem(action.title(), false, openAiAssistanceId);
985
982
  submenu.defaultSection().appendAction('drjones.sources-panel-context', i18nString(UIStrings.startAChat));
986
983
  appendSubmenuPromptAction(
987
984
  submenu, action, i18nString(UIStrings.assessPerformance), 'Is this script optimized for performance?',
@@ -992,13 +989,6 @@ export class SourcesPanel extends UI.Panel.Panel implements
992
989
  appendSubmenuPromptAction(
993
990
  submenu, action, i18nString(UIStrings.explainInputHandling), 'Does the script handle user input safely',
994
991
  openAiAssistanceId + '.input');
995
- } else if (Root.Runtime.hostConfig.devToolsAiDebugWithAi?.enabled) {
996
- contextMenu.footerSection().appendAction(
997
- openAiAssistanceId, undefined, false, undefined,
998
- Root.Runtime.hostConfig.devToolsAiAssistanceFileAgent?.featureName);
999
- } else {
1000
- contextMenu.footerSection().appendAction(openAiAssistanceId);
1001
- }
1002
992
  }
1003
993
  }
1004
994
 
@@ -14,6 +14,7 @@ import * as uiI18n from '../../ui/i18n/i18n.js';
14
14
  import {Icon} from '../../ui/kit/kit.js';
15
15
  import * as SourceFrame from '../../ui/legacy/components/source_frame/source_frame.js';
16
16
  import * as UI from '../../ui/legacy/legacy.js';
17
+ import {html} from '../../ui/lit/lit.js';
17
18
  import * as VisualLogging from '../../ui/visual_logging/visual_logging.js';
18
19
  import * as PanelCommon from '../common/common.js';
19
20
  import * as Snippets from '../snippets/snippets.js';
@@ -526,10 +527,11 @@ export class TabbedEditorContainer extends Common.ObjectWrapper.ObjectWrapper<Ev
526
527
  }
527
528
 
528
529
  private addLoadErrorIcon(tabId: string): void {
529
- const icon = new Icon();
530
- icon.name = 'cross-circle-filled';
531
- icon.classList.add('small');
532
- UI.Tooltip.Tooltip.install(icon, i18nString(UIStrings.unableToLoadThisContent));
530
+ // clang-format off
531
+ const icon = html`<devtools-icon class="small" name="cross-circle-filled"
532
+ title=${i18nString(UIStrings.unableToLoadThisContent)}>
533
+ </devtools-icon>`;
534
+ // clang-format on
533
535
  if (this.tabbedPane.tabView(tabId)) {
534
536
  this.tabbedPane.setTrailingTabIcon(tabId, icon);
535
537
  }
@@ -605,10 +607,11 @@ export class TabbedEditorContainer extends Common.ObjectWrapper.ObjectWrapper<Ev
605
607
  const tooltip = this.tooltipForFile(uiSourceCode);
606
608
  this.tabbedPane.changeTabTitle(tabId, title, tooltip);
607
609
  if (uiSourceCode.loadError()) {
608
- const icon = new Icon();
609
- icon.name = 'cross-circle-filled';
610
- icon.classList.add('small');
611
- UI.Tooltip.Tooltip.install(icon, i18nString(UIStrings.unableToLoadThisContent));
610
+ // clang-format off
611
+ const icon = html`<devtools-icon class="small" name="cross-circle-filled"
612
+ title=${i18nString(UIStrings.unableToLoadThisContent)}>
613
+ </devtools-icon>`;
614
+ // clang-format on
612
615
  this.tabbedPane.setTrailingTabIcon(tabId, icon);
613
616
  } else if (Persistence.Persistence.PersistenceImpl.instance().hasUnsavedCommittedChanges(uiSourceCode)) {
614
617
  /* eslint-disable @devtools/no-imperative-dom-api --