chrome-devtools-frontend 1.0.1376716 → 1.0.1386602

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 (885) hide show
  1. package/.stylelintrc.json +2 -1
  2. package/config/gni/devtools_grd_files.gni +40 -11
  3. package/config/gni/devtools_image_files.gni +4 -0
  4. package/docs/README.md +4 -0
  5. package/docs/contributing/issues.md +13 -10
  6. package/docs/get_the_code.md +4 -1
  7. package/docs/policy/README.md +6 -0
  8. package/docs/policy/slow-close.md +52 -0
  9. package/docs/styleguide/ux/README.md +1 -0
  10. package/docs/styleguide/ux/numbers.md +106 -0
  11. package/front_end/Images/src/animation.svg +3 -0
  12. package/front_end/Images/src/brush-2.svg +3 -0
  13. package/front_end/Images/src/cookie_off.svg +3 -0
  14. package/front_end/Images/src/domain.svg +3 -0
  15. package/front_end/core/common/Color.ts +3 -3
  16. package/front_end/core/common/SettingRegistration.ts +8 -1
  17. package/front_end/core/host/AidaClient.ts +4 -3
  18. package/front_end/core/host/InspectorFrontendHost.ts +4 -0
  19. package/front_end/core/host/InspectorFrontendHostAPI.ts +0 -1
  20. package/front_end/core/host/UserMetrics.ts +0 -8
  21. package/front_end/core/i18n/ByteUtilities.test.ts +34 -0
  22. package/front_end/core/i18n/ByteUtilities.ts +65 -0
  23. package/front_end/core/i18n/NumberFormatter.ts +75 -0
  24. package/front_end/core/i18n/i18n.ts +4 -0
  25. package/front_end/core/i18n/locales/af.json +1031 -887
  26. package/front_end/core/i18n/locales/am.json +1036 -892
  27. package/front_end/core/i18n/locales/ar.json +1039 -895
  28. package/front_end/core/i18n/locales/as.json +1032 -888
  29. package/front_end/core/i18n/locales/az.json +1034 -890
  30. package/front_end/core/i18n/locales/be.json +1031 -887
  31. package/front_end/core/i18n/locales/bg.json +1031 -887
  32. package/front_end/core/i18n/locales/bn.json +1033 -889
  33. package/front_end/core/i18n/locales/bs.json +1036 -892
  34. package/front_end/core/i18n/locales/ca.json +1031 -887
  35. package/front_end/core/i18n/locales/cs.json +1030 -886
  36. package/front_end/core/i18n/locales/cy.json +1032 -888
  37. package/front_end/core/i18n/locales/da.json +1031 -887
  38. package/front_end/core/i18n/locales/de.json +1033 -889
  39. package/front_end/core/i18n/locales/el.json +1031 -887
  40. package/front_end/core/i18n/locales/en-GB.json +1033 -889
  41. package/front_end/core/i18n/locales/es-419.json +1029 -885
  42. package/front_end/core/i18n/locales/es.json +1032 -888
  43. package/front_end/core/i18n/locales/et.json +1033 -889
  44. package/front_end/core/i18n/locales/eu.json +1031 -887
  45. package/front_end/core/i18n/locales/fa.json +1035 -891
  46. package/front_end/core/i18n/locales/fi.json +1035 -891
  47. package/front_end/core/i18n/locales/fil.json +1034 -890
  48. package/front_end/core/i18n/locales/fr-CA.json +1031 -887
  49. package/front_end/core/i18n/locales/fr.json +1049 -905
  50. package/front_end/core/i18n/locales/gl.json +1032 -888
  51. package/front_end/core/i18n/locales/gu.json +1035 -891
  52. package/front_end/core/i18n/locales/he.json +1031 -887
  53. package/front_end/core/i18n/locales/hi.json +1034 -890
  54. package/front_end/core/i18n/locales/hr.json +1031 -887
  55. package/front_end/core/i18n/locales/hu.json +1033 -889
  56. package/front_end/core/i18n/locales/hy.json +1046 -902
  57. package/front_end/core/i18n/locales/id.json +1023 -879
  58. package/front_end/core/i18n/locales/is.json +1032 -888
  59. package/front_end/core/i18n/locales/it.json +1031 -887
  60. package/front_end/core/i18n/locales/ja.json +1042 -898
  61. package/front_end/core/i18n/locales/ka.json +1034 -890
  62. package/front_end/core/i18n/locales/kk.json +1035 -891
  63. package/front_end/core/i18n/locales/km.json +1035 -891
  64. package/front_end/core/i18n/locales/kn.json +1036 -892
  65. package/front_end/core/i18n/locales/ko.json +1031 -887
  66. package/front_end/core/i18n/locales/ky.json +1032 -888
  67. package/front_end/core/i18n/locales/lo.json +1030 -886
  68. package/front_end/core/i18n/locales/lt.json +1032 -888
  69. package/front_end/core/i18n/locales/lv.json +1032 -888
  70. package/front_end/core/i18n/locales/mk.json +1032 -888
  71. package/front_end/core/i18n/locales/ml.json +1033 -889
  72. package/front_end/core/i18n/locales/mn.json +1034 -890
  73. package/front_end/core/i18n/locales/mr.json +1035 -891
  74. package/front_end/core/i18n/locales/ms.json +1033 -889
  75. package/front_end/core/i18n/locales/my.json +1033 -889
  76. package/front_end/core/i18n/locales/ne.json +1036 -892
  77. package/front_end/core/i18n/locales/nl.json +1033 -889
  78. package/front_end/core/i18n/locales/no.json +1036 -892
  79. package/front_end/core/i18n/locales/or.json +1043 -899
  80. package/front_end/core/i18n/locales/pa.json +1030 -886
  81. package/front_end/core/i18n/locales/pl.json +1032 -888
  82. package/front_end/core/i18n/locales/pt-PT.json +1033 -889
  83. package/front_end/core/i18n/locales/pt.json +1033 -889
  84. package/front_end/core/i18n/locales/ro.json +1029 -885
  85. package/front_end/core/i18n/locales/ru.json +1026 -882
  86. package/front_end/core/i18n/locales/si.json +1031 -887
  87. package/front_end/core/i18n/locales/sk.json +1033 -889
  88. package/front_end/core/i18n/locales/sl.json +1031 -887
  89. package/front_end/core/i18n/locales/sq.json +1061 -917
  90. package/front_end/core/i18n/locales/sr-Latn.json +1033 -889
  91. package/front_end/core/i18n/locales/sr.json +1033 -889
  92. package/front_end/core/i18n/locales/sv.json +1031 -887
  93. package/front_end/core/i18n/locales/sw.json +1033 -889
  94. package/front_end/core/i18n/locales/ta.json +1058 -914
  95. package/front_end/core/i18n/locales/te.json +1037 -893
  96. package/front_end/core/i18n/locales/th.json +1032 -888
  97. package/front_end/core/i18n/locales/tr.json +1031 -887
  98. package/front_end/core/i18n/locales/uk.json +1030 -886
  99. package/front_end/core/i18n/locales/ur.json +1031 -887
  100. package/front_end/core/i18n/locales/uz.json +1023 -879
  101. package/front_end/core/i18n/locales/vi.json +1032 -888
  102. package/front_end/core/i18n/locales/zh-HK.json +1032 -888
  103. package/front_end/core/i18n/locales/zh-TW.json +1032 -888
  104. package/front_end/core/i18n/locales/zh.json +1033 -889
  105. package/front_end/core/i18n/locales/zu.json +1032 -888
  106. package/front_end/core/i18n/time-utilities.test.ts +20 -2
  107. package/front_end/core/i18n/time-utilities.ts +125 -86
  108. package/front_end/core/platform/NumberUtilities.test.ts +3 -26
  109. package/front_end/core/platform/NumberUtilities.ts +0 -20
  110. package/front_end/core/root/Runtime.ts +6 -4
  111. package/front_end/core/sdk/CPUThrottlingManager.ts +4 -0
  112. package/front_end/core/sdk/CSSContainerQuery.test.ts +10 -16
  113. package/front_end/core/sdk/CSSContainerQuery.ts +3 -15
  114. package/front_end/core/sdk/CSSMatchedStyles.test.ts +4 -0
  115. package/front_end/core/sdk/CSSMatchedStyles.ts +5 -5
  116. package/front_end/core/sdk/CSSModel.ts +18 -0
  117. package/front_end/core/sdk/CSSPropertyParser.test.ts +16 -1
  118. package/front_end/core/sdk/CSSPropertyParser.ts +2 -2
  119. package/front_end/core/sdk/NetworkManager.test.ts +50 -0
  120. package/front_end/core/sdk/NetworkManager.ts +6 -4
  121. package/front_end/core/sdk/SourceMap.test.ts +5 -5
  122. package/front_end/core/sdk/SourceMapScopeChainEntry.test.ts +7 -2
  123. package/front_end/core/sdk/SourceMapScopeChainEntry.ts +2 -2
  124. package/front_end/core/sdk/SourceMapScopes.test.ts +112 -45
  125. package/front_end/core/sdk/SourceMapScopes.ts +39 -14
  126. package/front_end/core/sdk/SourceMapScopesInfo.test.ts +51 -50
  127. package/front_end/core/sdk/SourceMapScopesInfo.ts +1 -1
  128. package/front_end/core/sdk/sdk-meta.ts +35 -0
  129. package/front_end/devtools_compatibility.js +0 -1
  130. package/front_end/entrypoints/devtools_app/devtools_app.ts +1 -0
  131. package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshot.ts +3 -3
  132. package/front_end/entrypoints/inspector_main/renderingOptions.css +1 -1
  133. package/front_end/entrypoints/main/ExecutionContextSelector.test.ts +13 -3
  134. package/front_end/entrypoints/main/ExecutionContextSelector.ts +23 -1
  135. package/front_end/entrypoints/main/MainImpl.ts +0 -5
  136. package/front_end/generated/ARIAProperties.js +4 -0
  137. package/front_end/generated/Deprecation.ts +0 -15
  138. package/front_end/generated/InspectorBackendCommands.js +9 -7
  139. package/front_end/generated/SupportedCSSProperties.js +14 -41
  140. package/front_end/generated/protocol-mapping.d.ts +15 -1
  141. package/front_end/generated/protocol-proxy-api.d.ts +14 -1
  142. package/front_end/generated/protocol.ts +27 -2
  143. package/front_end/models/bindings/IgnoreListManager.ts +25 -2
  144. package/front_end/models/crux-manager/CrUXManager.test.ts +25 -6
  145. package/front_end/models/crux-manager/CrUXManager.ts +23 -4
  146. package/front_end/models/extensions/ExtensionAPI.ts +9 -1
  147. package/front_end/models/extensions/ExtensionServer.test.ts +14 -0
  148. package/front_end/models/extensions/ExtensionServer.ts +28 -15
  149. package/front_end/models/heap_snapshot_model/HeapSnapshotModel.ts +2 -0
  150. package/front_end/models/issues_manager/CookieIssue.ts +79 -2
  151. package/front_end/models/issues_manager/IssuesManager.ts +1 -1
  152. package/front_end/models/issues_manager/descriptions/cookieExcludePortMismatch.md +8 -0
  153. package/front_end/models/issues_manager/descriptions/cookieExcludeSchemeMismatch.md +7 -0
  154. package/front_end/models/javascript_metadata/NativeFunctions.js +22 -25
  155. package/front_end/models/live-metrics/web-vitals-injected/{rollup.config.js → rollup.config.mjs} +1 -1
  156. package/front_end/models/persistence/EditFileSystemView.ts +20 -10
  157. package/front_end/models/persistence/WorkspaceSettingsTab.ts +50 -54
  158. package/front_end/models/persistence/editFileSystemView.css +38 -15
  159. package/front_end/models/persistence/workspaceSettingsTab.css +21 -87
  160. package/front_end/models/timeline_model/timeline_model.ts +0 -6
  161. package/front_end/models/trace/Processor.test.ts +18 -17
  162. package/front_end/models/trace/Processor.ts +10 -14
  163. package/front_end/models/trace/README.md +0 -1
  164. package/front_end/models/trace/extras/Metadata.test.ts +35 -2
  165. package/front_end/models/trace/extras/Metadata.ts +24 -5
  166. package/front_end/models/{timeline_model → trace/extras}/TimelineJSProfile.ts +19 -29
  167. package/front_end/models/{timeline_model/TimelineModelFilter.test.ts → trace/extras/TraceFilter.test.ts} +15 -17
  168. package/front_end/models/trace/extras/TraceFilter.ts +62 -0
  169. package/front_end/models/{timeline_model/TimelineProfileTree.test.ts → trace/extras/TraceTree.test.ts} +44 -43
  170. package/front_end/models/{timeline_model/TimelineProfileTree.ts → trace/extras/TraceTree.ts} +86 -70
  171. package/front_end/models/trace/extras/URLForEntry.ts +6 -5
  172. package/front_end/models/trace/extras/extras.ts +3 -0
  173. package/front_end/models/trace/handlers/AnimationHandler.ts +0 -8
  174. package/front_end/models/trace/handlers/ExtensionTraceDataHandler.ts +1 -11
  175. package/front_end/models/trace/handlers/FramesHandler.test.ts +1 -6
  176. package/front_end/models/trace/handlers/FramesHandler.ts +1 -14
  177. package/front_end/models/trace/handlers/GPUHandler.test.ts +0 -2
  178. package/front_end/models/trace/handlers/GPUHandler.ts +1 -25
  179. package/front_end/models/trace/handlers/ImagePaintingHandler.ts +15 -0
  180. package/front_end/models/trace/handlers/InitiatorsHandler.test.ts +0 -1
  181. package/front_end/models/trace/handlers/InitiatorsHandler.ts +0 -20
  182. package/front_end/models/trace/handlers/InvalidationsHandler.test.ts +0 -1
  183. package/front_end/models/trace/handlers/InvalidationsHandler.ts +0 -18
  184. package/front_end/models/trace/handlers/LargestImagePaintHandler.test.ts +2 -2
  185. package/front_end/models/trace/handlers/LargestImagePaintHandler.ts +63 -3
  186. package/front_end/models/trace/handlers/LargestTextPaintHandler.ts +3 -0
  187. package/front_end/models/trace/handlers/LayerTreeHandler.test.ts +0 -2
  188. package/front_end/models/trace/handlers/LayerTreeHandler.ts +1 -18
  189. package/front_end/models/trace/handlers/LayoutShiftsHandler.test.ts +0 -3
  190. package/front_end/models/trace/handlers/LayoutShiftsHandler.ts +1 -20
  191. package/front_end/models/trace/handlers/MemoryHandler.test.ts +0 -1
  192. package/front_end/models/trace/handlers/MemoryHandler.ts +3 -0
  193. package/front_end/models/trace/handlers/MetaHandler.test.ts +1 -32
  194. package/front_end/models/trace/handlers/MetaHandler.ts +2 -30
  195. package/front_end/models/trace/handlers/NetworkRequestsHandler.test.ts +0 -26
  196. package/front_end/models/trace/handlers/NetworkRequestsHandler.ts +4 -23
  197. package/front_end/models/trace/handlers/PageFramesHandler.ts +3 -0
  198. package/front_end/models/trace/handlers/RendererHandler.test.ts +0 -4
  199. package/front_end/models/trace/handlers/RendererHandler.ts +1 -24
  200. package/front_end/models/trace/handlers/SamplesHandler.test.ts +0 -5
  201. package/front_end/models/trace/handlers/SamplesHandler.ts +0 -26
  202. package/front_end/models/trace/handlers/ScreenshotsHandler.test.ts +0 -1
  203. package/front_end/models/trace/handlers/SelectorStatsHandler.ts +3 -0
  204. package/front_end/models/trace/handlers/ServerTimingsHandler.ts +1 -16
  205. package/front_end/models/trace/handlers/Threads.test.ts +1 -2
  206. package/front_end/models/trace/handlers/UserInteractionsHandler.test.ts +4 -27
  207. package/front_end/models/trace/handlers/UserInteractionsHandler.ts +16 -25
  208. package/front_end/models/trace/handlers/UserTimingsHandler.ts +0 -17
  209. package/front_end/models/trace/handlers/WorkersHandler.test.ts +0 -1
  210. package/front_end/models/trace/handlers/WorkersHandler.ts +0 -23
  211. package/front_end/models/trace/handlers/types.ts +1 -8
  212. package/front_end/models/trace/helpers/Timing.ts +8 -0
  213. package/front_end/models/trace/insights/{CumulativeLayoutShift.test.ts → CLSCulprits.test.ts} +21 -21
  214. package/front_end/models/trace/insights/{CumulativeLayoutShift.ts → CLSCulprits.ts} +32 -5
  215. package/front_end/models/trace/insights/Common.ts +5 -55
  216. package/front_end/models/trace/insights/DocumentLatency.test.ts +2 -2
  217. package/front_end/models/trace/insights/DocumentLatency.ts +39 -6
  218. package/front_end/models/trace/insights/FontDisplay.ts +31 -5
  219. package/front_end/models/trace/insights/ImageDelivery.test.ts +98 -0
  220. package/front_end/models/trace/insights/ImageDelivery.ts +183 -0
  221. package/front_end/models/trace/insights/InteractionToNextPaint.test.ts +1 -1
  222. package/front_end/models/trace/insights/InteractionToNextPaint.ts +32 -6
  223. package/front_end/models/trace/insights/LCPDiscovery.test.ts +58 -0
  224. package/front_end/models/trace/insights/LCPDiscovery.ts +122 -0
  225. package/front_end/models/trace/insights/{LargestContentfulPaint.test.ts → LCPPhases.test.ts} +6 -28
  226. package/front_end/models/trace/insights/{LargestContentfulPaint.ts → LCPPhases.ts} +59 -38
  227. package/front_end/models/trace/insights/{InsightRunners.ts → Models.ts} +5 -3
  228. package/front_end/models/trace/insights/RenderBlocking.test.ts +1 -1
  229. package/front_end/models/trace/insights/RenderBlocking.ts +41 -28
  230. package/front_end/models/trace/insights/SlowCSSSelector.ts +33 -5
  231. package/front_end/models/trace/insights/{ThirdPartyWeb.test.ts → ThirdParties.test.ts} +3 -3
  232. package/front_end/models/trace/insights/{ThirdPartyWeb.ts → ThirdParties.ts} +32 -5
  233. package/front_end/models/trace/insights/Viewport.test.ts +1 -1
  234. package/front_end/models/trace/insights/Viewport.ts +40 -9
  235. package/front_end/models/trace/insights/insights.ts +1 -1
  236. package/front_end/models/trace/insights/types.ts +22 -9
  237. package/front_end/models/trace/types/File.ts +7 -0
  238. package/front_end/models/trace/types/TraceEvents.ts +60 -24
  239. package/front_end/panels/animation/AnimationTimeline.ts +2 -4
  240. package/front_end/panels/application/ApplicationPanelSidebar.test.ts +0 -5
  241. package/front_end/panels/application/ApplicationPanelSidebar.ts +15 -21
  242. package/front_end/panels/application/IndexedDBViews.ts +4 -1
  243. package/front_end/panels/application/ServiceWorkerCacheViews.ts +4 -1
  244. package/front_end/panels/application/SharedStorageItemsView.test.ts +3 -3
  245. package/front_end/panels/application/SharedStorageItemsView.ts +5 -3
  246. package/front_end/panels/application/StorageView.test.ts +1 -1
  247. package/front_end/panels/application/StorageView.ts +3 -3
  248. package/front_end/panels/application/components/StorageMetadataView.ts +1 -2
  249. package/front_end/panels/application/resourcesSidebar.css +1 -1
  250. package/front_end/panels/browser_debugger/CategorizedBreakpointsSidebarPane.ts +1 -1
  251. package/front_end/panels/browser_debugger/DOMBreakpointsSidebarPane.ts +1 -1
  252. package/front_end/panels/browser_debugger/XHRBreakpointsSidebarPane.ts +35 -32
  253. package/front_end/panels/browser_debugger/categorizedBreakpointsSidebarPane.css +1 -1
  254. package/front_end/panels/browser_debugger/xhrBreakpointsSidebarPane.css +1 -1
  255. package/front_end/panels/console/ConsoleViewMessage.test.ts +25 -0
  256. package/front_end/panels/console/ConsoleViewMessage.ts +23 -0
  257. package/front_end/panels/coverage/CoverageListView.ts +1 -1
  258. package/front_end/panels/coverage/CoverageView.ts +3 -3
  259. package/front_end/panels/developer_resources/DeveloperResourcesListView.ts +1 -1
  260. package/front_end/panels/elements/ClassesPaneWidget.ts +1 -1
  261. package/front_end/panels/elements/ComputedStyleModel.ts +9 -2
  262. package/front_end/panels/elements/ComputedStyleWidget.test.ts +72 -0
  263. package/front_end/panels/elements/ComputedStyleWidget.ts +12 -0
  264. package/front_end/panels/elements/ElementStatePaneWidget.test.ts +85 -30
  265. package/front_end/panels/elements/ElementStatePaneWidget.ts +49 -26
  266. package/front_end/panels/elements/ElementsSidebarPane.ts +3 -3
  267. package/front_end/panels/elements/ElementsTreeElement.ts +25 -11
  268. package/front_end/panels/elements/LayersWidget.ts +1 -1
  269. package/front_end/panels/elements/MetricsSidebarPane.ts +12 -7
  270. package/front_end/panels/elements/PropertyMatchers.test.ts +7 -0
  271. package/front_end/panels/elements/PropertyMatchers.ts +6 -0
  272. package/front_end/panels/elements/StylePropertiesSection.ts +15 -6
  273. package/front_end/panels/elements/StylePropertyTreeElement.test.ts +3 -1
  274. package/front_end/panels/elements/StylePropertyTreeElement.ts +8 -3
  275. package/front_end/panels/elements/classesPaneWidget.css +1 -1
  276. package/front_end/panels/elements/stylePropertiesTreeOutline.css +2 -2
  277. package/front_end/panels/emulation/DeviceModeView.ts +1 -1
  278. package/front_end/panels/emulation/DeviceModeWrapper.ts +1 -1
  279. package/front_end/panels/emulation/InspectedPagePlaceholder.ts +1 -1
  280. package/front_end/panels/explain/components/ConsoleInsight.ts +8 -18
  281. package/front_end/panels/freestyler/AiAgent.test.ts +376 -50
  282. package/front_end/panels/freestyler/AiAgent.ts +251 -144
  283. package/front_end/panels/freestyler/AiHistoryStorage.test.ts +159 -0
  284. package/front_end/panels/freestyler/AiHistoryStorage.ts +73 -0
  285. package/front_end/panels/freestyler/DrJonesFileAgent.test.ts +113 -38
  286. package/front_end/panels/freestyler/DrJonesFileAgent.ts +56 -34
  287. package/front_end/panels/freestyler/DrJonesNetworkAgent.test.ts +29 -20
  288. package/front_end/panels/freestyler/DrJonesNetworkAgent.ts +39 -18
  289. package/front_end/panels/freestyler/DrJonesPerformanceAgent.test.ts +44 -42
  290. package/front_end/panels/freestyler/DrJonesPerformanceAgent.ts +51 -22
  291. package/front_end/panels/freestyler/FreestylerAgent.test.ts +210 -28
  292. package/front_end/panels/freestyler/FreestylerAgent.ts +65 -26
  293. package/front_end/panels/freestyler/FreestylerPanel.test.ts +610 -39
  294. package/front_end/panels/freestyler/FreestylerPanel.ts +414 -255
  295. package/front_end/panels/freestyler/components/FreestylerChatUi.test.ts +126 -34
  296. package/front_end/panels/freestyler/components/FreestylerChatUi.ts +431 -280
  297. package/front_end/panels/freestyler/components/UserActionRow.ts +157 -47
  298. package/front_end/panels/freestyler/components/freestylerChatUi.css +90 -35
  299. package/front_end/panels/freestyler/components/userActionRow.css +41 -67
  300. package/front_end/panels/freestyler/freestyler-meta.ts +3 -11
  301. package/front_end/panels/freestyler/freestyler.ts +1 -0
  302. package/front_end/panels/issues/IssueAggregator.test.ts +50 -0
  303. package/front_end/panels/issues/IssueAggregator.ts +10 -10
  304. package/front_end/panels/issues/components/HideIssuesMenu.ts +2 -11
  305. package/front_end/panels/issues/issuesTree.css +1 -1
  306. package/front_end/panels/layer_viewer/LayerDetailsView.ts +2 -3
  307. package/front_end/panels/layer_viewer/Layers3DView.ts +1 -1
  308. package/front_end/panels/layer_viewer/PaintProfilerView.ts +6 -6
  309. package/front_end/panels/layers/LayersPanel.ts +1 -1
  310. package/front_end/panels/lighthouse/LighthouseReportRenderer.ts +46 -0
  311. package/front_end/panels/lighthouse/lighthouseStartView.css +1 -1
  312. package/front_end/panels/media/TickingFlameChart.ts +1 -1
  313. package/front_end/panels/mobile_throttling/ThrottlingSettingsTab.ts +26 -17
  314. package/front_end/panels/mobile_throttling/throttlingSettingsTab.css +25 -19
  315. package/front_end/panels/network/BinaryResourceView.ts +6 -7
  316. package/front_end/panels/network/BlockedURLsPane.ts +1 -1
  317. package/front_end/panels/network/EventSourceMessagesView.ts +1 -1
  318. package/front_end/panels/network/NetworkDataGridNode.ts +4 -3
  319. package/front_end/panels/network/NetworkLogView.test.ts +1 -1
  320. package/front_end/panels/network/NetworkLogView.ts +7 -8
  321. package/front_end/panels/network/NetworkPanel.ts +40 -32
  322. package/front_end/panels/network/NetworkWaterfallColumn.ts +1 -1
  323. package/front_end/panels/network/RequestTimingView.test.ts +35 -1
  324. package/front_end/panels/network/RequestTimingView.ts +96 -0
  325. package/front_end/panels/network/ResourceWebSocketFrameView.ts +2 -2
  326. package/front_end/panels/network/networkTimingTable.css +2 -1
  327. package/front_end/panels/performance_monitor/PerformanceMonitor.ts +1 -1
  328. package/front_end/panels/profiler/HeapProfileView.ts +10 -10
  329. package/front_end/panels/profiler/HeapSnapshotView.ts +2 -2
  330. package/front_end/panels/profiler/HeapTimelineOverview.ts +13 -13
  331. package/front_end/panels/profiler/IsolateSelector.ts +4 -5
  332. package/front_end/panels/profiler/LiveHeapProfileView.ts +3 -1
  333. package/front_end/panels/profiler/ProfileFlameChartDataProvider.ts +4 -4
  334. package/front_end/panels/profiler/ProfileSidebarTreeElement.ts +7 -6
  335. package/front_end/panels/profiler/ProfileView.ts +3 -3
  336. package/front_end/panels/profiler/profileLauncherView.css +1 -1
  337. package/front_end/panels/profiler/profilesSidebarTree.css +1 -1
  338. package/front_end/panels/recorder/components/RecordingView.ts +2 -2
  339. package/front_end/panels/recorder/injected/{rollup.config.js → rollup.config.mjs} +1 -1
  340. package/front_end/panels/recorder/recorderController.css +1 -5
  341. package/front_end/panels/security/CookieControlsTreeElement.ts +18 -0
  342. package/front_end/panels/security/CookieControlsView.test.ts +29 -0
  343. package/front_end/panels/security/CookieControlsView.ts +265 -0
  344. package/front_end/panels/security/CookieReportTreeElement.ts +1 -9
  345. package/front_end/panels/security/CookieReportView.test.ts +157 -0
  346. package/front_end/panels/security/CookieReportView.ts +316 -0
  347. package/front_end/panels/security/SecurityPanel.ts +12 -4
  348. package/front_end/panels/security/SecurityPanelSidebar.ts +6 -1
  349. package/front_end/panels/security/cookieControlsView.css +101 -0
  350. package/front_end/panels/security/cookieReportView.css +69 -0
  351. package/front_end/panels/security/security.ts +4 -0
  352. package/front_end/panels/security/sidebar.css +2 -3
  353. package/front_end/panels/sensors/LocationsSettingsTab.ts +26 -11
  354. package/front_end/panels/sensors/locationsSettingsTab.css +18 -18
  355. package/front_end/panels/settings/AISettingsTab.ts +6 -15
  356. package/front_end/panels/settings/KeybindsSettingsTab.ts +4 -3
  357. package/front_end/panels/settings/SettingsScreen.ts +64 -55
  358. package/front_end/panels/settings/aiSettingsTab.css +3 -14
  359. package/front_end/panels/settings/components/SyncSection.ts +1 -2
  360. package/front_end/panels/settings/components/syncSection.css +0 -10
  361. package/front_end/panels/settings/frameworkIgnoreListSettingsTab.css +4 -2
  362. package/front_end/panels/settings/keybindsSettingsTab.css +12 -10
  363. package/front_end/panels/settings/settings-meta.ts +3 -1
  364. package/front_end/panels/settings/settingsScreen.css +37 -125
  365. package/front_end/panels/sources/CallStackSidebarPane.ts +2 -2
  366. package/front_end/panels/sources/DebuggerPlugin.ts +9 -4
  367. package/front_end/panels/sources/NavigatorView.ts +12 -13
  368. package/front_end/panels/sources/navigatorTree.css +1 -1
  369. package/front_end/panels/sources/sourcesPanel.css +2 -2
  370. package/front_end/panels/timeline/ActiveFilters.ts +3 -4
  371. package/front_end/panels/timeline/AnimationsTrackAppender.ts +2 -9
  372. package/front_end/panels/timeline/AppenderUtils.ts +1 -1
  373. package/front_end/panels/timeline/CompatibilityTracksAppender.ts +38 -41
  374. package/front_end/panels/timeline/CountersGraph.ts +2 -4
  375. package/front_end/panels/timeline/EventsTimelineTreeView.ts +7 -8
  376. package/front_end/panels/timeline/ExtensionTrackAppender.ts +4 -13
  377. package/front_end/panels/timeline/InteractionsTrackAppender.ts +3 -4
  378. package/front_end/panels/timeline/LayoutShiftsTrackAppender.ts +6 -12
  379. package/front_end/panels/timeline/README.md +2 -1
  380. package/front_end/panels/timeline/ServerTimingsTrackAppender.ts +1 -10
  381. package/front_end/panels/timeline/ThreadAppender.ts +9 -12
  382. package/front_end/panels/timeline/TimelineController.ts +14 -4
  383. package/front_end/panels/timeline/TimelineDetailsView.test.ts +3 -2
  384. package/front_end/panels/timeline/TimelineDetailsView.ts +18 -17
  385. package/front_end/panels/timeline/TimelineEventOverview.ts +3 -4
  386. package/front_end/panels/timeline/TimelineFilters.ts +3 -4
  387. package/front_end/panels/timeline/TimelineFlameChartDataProvider.test.ts +1 -1
  388. package/front_end/panels/timeline/TimelineFlameChartDataProvider.ts +58 -46
  389. package/front_end/panels/timeline/TimelineFlameChartNetworkDataProvider.ts +2 -3
  390. package/front_end/panels/timeline/TimelineFlameChartView.ts +54 -26
  391. package/front_end/panels/timeline/TimelineHistoryManager.test.ts +20 -15
  392. package/front_end/panels/timeline/TimelineHistoryManager.ts +46 -58
  393. package/front_end/panels/timeline/TimelineLayersView.ts +1 -1
  394. package/front_end/panels/timeline/TimelineLoader.test.ts +1 -2
  395. package/front_end/panels/timeline/TimelineLoader.ts +19 -4
  396. package/front_end/panels/timeline/TimelineMiniMap.ts +12 -2
  397. package/front_end/panels/timeline/TimelinePaintProfilerView.ts +1 -1
  398. package/front_end/panels/timeline/TimelinePanel.ts +161 -32
  399. package/front_end/panels/timeline/TimelineTreeView.test.ts +12 -13
  400. package/front_end/panels/timeline/TimelineTreeView.ts +98 -54
  401. package/front_end/panels/timeline/TimelineUIUtils.test.ts +2 -2
  402. package/front_end/panels/timeline/TimelineUIUtils.ts +56 -14
  403. package/front_end/panels/timeline/TimingsTrackAppender.ts +6 -13
  404. package/front_end/panels/timeline/components/FieldSettingsDialog.test.ts +1 -0
  405. package/front_end/panels/timeline/components/FieldSettingsDialog.ts +6 -1
  406. package/front_end/panels/timeline/components/LayoutShiftDetails.ts +6 -7
  407. package/front_end/panels/timeline/components/LiveMetricsView.test.ts +15 -3
  408. package/front_end/panels/timeline/components/LiveMetricsView.ts +27 -44
  409. package/front_end/panels/timeline/components/MetricCard.test.ts +1 -1
  410. package/front_end/panels/timeline/components/MetricCard.ts +46 -0
  411. package/front_end/panels/timeline/components/NetworkRequestDetails.ts +3 -4
  412. package/front_end/panels/timeline/components/Sidebar.ts +1 -4
  413. package/front_end/panels/timeline/components/SidebarAnnotationsTab.test.ts +1 -1
  414. package/front_end/panels/timeline/components/SidebarInsightsTab.ts +1 -1
  415. package/front_end/panels/timeline/components/SidebarSingleInsightSet.test.ts +23 -35
  416. package/front_end/panels/timeline/components/SidebarSingleInsightSet.ts +53 -41
  417. package/front_end/panels/timeline/components/TimelineSummary.test.ts +75 -0
  418. package/front_end/panels/timeline/components/TimelineSummary.ts +101 -0
  419. package/front_end/panels/timeline/components/Utils.test.ts +49 -0
  420. package/front_end/panels/timeline/components/Utils.ts +2 -2
  421. package/front_end/panels/timeline/components/components.ts +2 -0
  422. package/front_end/panels/timeline/components/insights/BaseInsightComponent.test.ts +84 -0
  423. package/front_end/panels/timeline/components/insights/BaseInsightComponent.ts +291 -0
  424. package/front_end/panels/timeline/components/insights/CLSCulprits.ts +24 -62
  425. package/front_end/panels/timeline/components/insights/DocumentLatency.ts +43 -72
  426. package/front_end/panels/timeline/components/insights/EventRef.ts +70 -2
  427. package/front_end/panels/timeline/components/insights/FontDisplay.ts +37 -61
  428. package/front_end/panels/timeline/components/insights/Helpers.ts +5 -212
  429. package/front_end/panels/timeline/components/insights/ImageDelivery.ts +142 -0
  430. package/front_end/panels/timeline/components/insights/InteractionToNextPaint.ts +34 -69
  431. package/front_end/panels/timeline/components/insights/LCPDiscovery.ts +52 -103
  432. package/front_end/panels/timeline/components/insights/LCPPhases.ts +31 -92
  433. package/front_end/panels/timeline/components/insights/RenderBlocking.ts +38 -64
  434. package/front_end/panels/timeline/components/insights/SidebarInsight.ts +3 -198
  435. package/front_end/panels/timeline/components/insights/SlowCSSSelector.ts +59 -95
  436. package/front_end/panels/timeline/components/insights/Table.ts +6 -3
  437. package/front_end/panels/timeline/components/insights/ThirdParties.ts +51 -78
  438. package/front_end/panels/timeline/components/insights/Viewport.ts +27 -49
  439. package/front_end/panels/timeline/components/insights/{sidebarInsight.css → baseInsightComponent.css} +9 -9
  440. package/front_end/panels/timeline/components/insights/insights.ts +4 -0
  441. package/front_end/panels/timeline/components/insights/types.ts +0 -7
  442. package/front_end/panels/timeline/components/liveMetricsView.css +10 -18
  443. package/front_end/panels/timeline/components/metricCard.css +11 -0
  444. package/front_end/panels/timeline/components/sidebarInsightsTab.css +1 -1
  445. package/front_end/panels/timeline/components/timelineSummary.css +67 -0
  446. package/front_end/panels/timeline/docs/flame_chart_migration.md +1 -1
  447. package/front_end/panels/timeline/fixtures/traces/README.md +4 -0
  448. package/front_end/panels/timeline/fixtures/traces/image-delivery.json.gz +0 -0
  449. package/front_end/panels/timeline/overlays/OverlaysImpl.test.ts +5 -5
  450. package/front_end/panels/timeline/overlays/OverlaysImpl.ts +35 -12
  451. package/front_end/panels/timeline/timeline-meta.ts +1 -1
  452. package/front_end/panels/timeline/timelineFlameChartView.css +1 -1
  453. package/front_end/panels/timeline/timelineFlamechartPopover.css +14 -4
  454. package/front_end/panels/timeline/timelineHistoryManager.css +7 -3
  455. package/front_end/panels/timeline/timelinePanel.css +0 -1
  456. package/front_end/panels/timeline/track_appenders/CompatibilityTracksAppender.test.ts +5 -5
  457. package/front_end/panels/timeline/track_appenders/ExtensionTrackAppender.test.ts +5 -6
  458. package/front_end/panels/timeline/track_appenders/LayoutShiftsTrackAppender.test.ts +11 -2
  459. package/front_end/panels/timeline/track_appenders/ServerTimingsTrackAppender.test.ts +0 -9
  460. package/front_end/panels/timeline/track_appenders/ThreadAppender.test.ts +37 -44
  461. package/front_end/panels/timeline/track_appenders/TimingsTrackAppender.test.ts +44 -30
  462. package/front_end/panels/timeline/utils/AICallTree.test.ts +105 -0
  463. package/front_end/panels/timeline/utils/AICallTree.ts +25 -24
  464. package/front_end/panels/timeline/utils/EntryName.ts +1 -2
  465. package/front_end/panels/timeline/utils/Helpers.ts +19 -0
  466. package/front_end/panels/timeline/utils/IgnoreList.test.ts +52 -0
  467. package/front_end/panels/timeline/utils/IgnoreList.ts +68 -7
  468. package/front_end/panels/timeline/utils/SourceMapsResolver.ts +2 -0
  469. package/front_end/panels/webauthn/webauthnPane.css +1 -1
  470. package/front_end/panels/whats_new/ReleaseNote.test.ts +90 -0
  471. package/front_end/panels/whats_new/ReleaseNoteText.ts +52 -0
  472. package/front_end/panels/whats_new/ReleaseNoteView.ts +157 -0
  473. package/front_end/panels/whats_new/WhatsNewImpl.ts +102 -0
  474. package/front_end/panels/whats_new/releaseNoteView.css +121 -0
  475. package/front_end/panels/whats_new/resources/WNDT.md +6 -0
  476. package/front_end/panels/whats_new/resources/whatsnew.avif +0 -0
  477. package/front_end/panels/whats_new/whats_new-meta.ts +142 -0
  478. package/front_end/panels/whats_new/whats_new.ts +13 -0
  479. package/front_end/services/puppeteer/PuppeteerConnection.ts +4 -3
  480. package/front_end/testing/EnvironmentHelpers.ts +6 -20
  481. package/front_end/testing/InsightHelpers.ts +4 -4
  482. package/front_end/testing/SourceMapEncoder.ts +27 -11
  483. package/front_end/testing/TraceHelpers.ts +3 -2
  484. package/front_end/testing/TraceLoader.ts +6 -2
  485. package/front_end/third_party/lighthouse/README.chromium +2 -2
  486. package/front_end/third_party/lighthouse/lighthouse-dt-bundle.js +1380 -1369
  487. package/front_end/third_party/lighthouse/locales/ar-XB.json +88 -85
  488. package/front_end/third_party/lighthouse/locales/ar.json +98 -95
  489. package/front_end/third_party/lighthouse/locales/bg.json +88 -85
  490. package/front_end/third_party/lighthouse/locales/ca.json +91 -88
  491. package/front_end/third_party/lighthouse/locales/cs.json +91 -88
  492. package/front_end/third_party/lighthouse/locales/da.json +94 -91
  493. package/front_end/third_party/lighthouse/locales/de.json +92 -89
  494. package/front_end/third_party/lighthouse/locales/el.json +92 -89
  495. package/front_end/third_party/lighthouse/locales/en-GB.json +89 -86
  496. package/front_end/third_party/lighthouse/locales/en-US.json +23 -20
  497. package/front_end/third_party/lighthouse/locales/en-XA.json +88 -85
  498. package/front_end/third_party/lighthouse/locales/en-XL.json +23 -20
  499. package/front_end/third_party/lighthouse/locales/es-419.json +92 -89
  500. package/front_end/third_party/lighthouse/locales/es.json +91 -88
  501. package/front_end/third_party/lighthouse/locales/fi.json +92 -89
  502. package/front_end/third_party/lighthouse/locales/fil.json +93 -90
  503. package/front_end/third_party/lighthouse/locales/fr.json +94 -91
  504. package/front_end/third_party/lighthouse/locales/he.json +97 -94
  505. package/front_end/third_party/lighthouse/locales/hi.json +92 -89
  506. package/front_end/third_party/lighthouse/locales/hr.json +90 -87
  507. package/front_end/third_party/lighthouse/locales/hu.json +90 -87
  508. package/front_end/third_party/lighthouse/locales/id.json +91 -88
  509. package/front_end/third_party/lighthouse/locales/it.json +90 -87
  510. package/front_end/third_party/lighthouse/locales/ja.json +90 -87
  511. package/front_end/third_party/lighthouse/locales/ko.json +90 -87
  512. package/front_end/third_party/lighthouse/locales/lt.json +90 -87
  513. package/front_end/third_party/lighthouse/locales/lv.json +91 -88
  514. package/front_end/third_party/lighthouse/locales/nl.json +90 -87
  515. package/front_end/third_party/lighthouse/locales/no.json +92 -89
  516. package/front_end/third_party/lighthouse/locales/pl.json +90 -87
  517. package/front_end/third_party/lighthouse/locales/pt-PT.json +111 -108
  518. package/front_end/third_party/lighthouse/locales/pt.json +97 -94
  519. package/front_end/third_party/lighthouse/locales/ro.json +94 -91
  520. package/front_end/third_party/lighthouse/locales/ru.json +93 -90
  521. package/front_end/third_party/lighthouse/locales/sk.json +93 -90
  522. package/front_end/third_party/lighthouse/locales/sl.json +91 -88
  523. package/front_end/third_party/lighthouse/locales/sr-Latn.json +91 -88
  524. package/front_end/third_party/lighthouse/locales/sr.json +91 -88
  525. package/front_end/third_party/lighthouse/locales/sv.json +92 -89
  526. package/front_end/third_party/lighthouse/locales/ta.json +101 -98
  527. package/front_end/third_party/lighthouse/locales/te.json +92 -89
  528. package/front_end/third_party/lighthouse/locales/th.json +95 -92
  529. package/front_end/third_party/lighthouse/locales/tr.json +91 -88
  530. package/front_end/third_party/lighthouse/locales/uk.json +93 -90
  531. package/front_end/third_party/lighthouse/locales/vi.json +95 -92
  532. package/front_end/third_party/lighthouse/locales/zh-HK.json +92 -89
  533. package/front_end/third_party/lighthouse/locales/zh-TW.json +98 -95
  534. package/front_end/third_party/lighthouse/locales/zh.json +96 -93
  535. package/front_end/third_party/puppeteer/README.chromium +2 -2
  536. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.d.ts +10 -3
  537. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.d.ts.map +1 -1
  538. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.js.map +1 -1
  539. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/ElementHandle.d.ts +14 -3
  540. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/ElementHandle.d.ts.map +1 -1
  541. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/ElementHandle.js +16 -2
  542. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/ElementHandle.js.map +1 -1
  543. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Frame.d.ts.map +1 -1
  544. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Frame.js +3 -1
  545. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Frame.js.map +1 -1
  546. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/HTTPRequest.d.ts +1 -0
  547. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/HTTPRequest.d.ts.map +1 -1
  548. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/HTTPRequest.js +1 -0
  549. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/HTTPRequest.js.map +1 -1
  550. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Input.d.ts +34 -5
  551. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Input.d.ts.map +1 -1
  552. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Input.js +51 -2
  553. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Input.js.map +1 -1
  554. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.d.ts +4 -0
  555. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.d.ts.map +1 -1
  556. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.js.map +1 -1
  557. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/ElementHandle.d.ts.map +1 -1
  558. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/ElementHandle.js +10 -8
  559. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/ElementHandle.js.map +1 -1
  560. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.d.ts.map +1 -1
  561. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.js +1 -1
  562. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.js.map +1 -1
  563. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Input.d.ts +14 -4
  564. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Input.d.ts.map +1 -1
  565. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Input.js +57 -23
  566. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Input.js.map +1 -1
  567. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.d.ts +1 -0
  568. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.d.ts.map +1 -1
  569. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.js +3 -0
  570. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.js.map +1 -1
  571. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.d.ts +3 -2
  572. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.d.ts.map +1 -1
  573. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.js +10 -4
  574. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.js.map +1 -1
  575. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserConnector.d.ts.map +1 -1
  576. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserConnector.js +2 -2
  577. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserConnector.js.map +1 -1
  578. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserContext.d.ts +2 -0
  579. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserContext.d.ts.map +1 -1
  580. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserContext.js +7 -0
  581. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserContext.js.map +1 -1
  582. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ElementHandle.d.ts +1 -1
  583. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ElementHandle.d.ts.map +1 -1
  584. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ElementHandle.js +13 -10
  585. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ElementHandle.js.map +1 -1
  586. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPRequest.d.ts +1 -0
  587. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPRequest.d.ts.map +1 -1
  588. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPRequest.js +3 -0
  589. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPRequest.js.map +1 -1
  590. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPResponse.d.ts +1 -2
  591. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPResponse.d.ts.map +1 -1
  592. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPResponse.js +4 -4
  593. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPResponse.js.map +1 -1
  594. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Input.d.ts +15 -4
  595. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Input.d.ts.map +1 -1
  596. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Input.js +55 -26
  597. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Input.js.map +1 -1
  598. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/NetworkManager.d.ts.map +1 -1
  599. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/NetworkManager.js +24 -12
  600. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/NetworkManager.js.map +1 -1
  601. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.d.ts +1 -0
  602. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.d.ts.map +1 -1
  603. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.js +3 -0
  604. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.js.map +1 -1
  605. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/CallbackRegistry.d.ts +0 -8
  606. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/CallbackRegistry.d.ts.map +1 -1
  607. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/CallbackRegistry.js +2 -11
  608. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/CallbackRegistry.js.map +1 -1
  609. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConnectOptions.d.ts +5 -0
  610. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConnectOptions.d.ts.map +1 -1
  611. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConsoleMessage.d.ts +2 -1
  612. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConsoleMessage.d.ts.map +1 -1
  613. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConsoleMessage.js +5 -2
  614. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConsoleMessage.js.map +1 -1
  615. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/DownloadBehavior.d.ts +30 -0
  616. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/DownloadBehavior.d.ts.map +1 -0
  617. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/DownloadBehavior.js +8 -0
  618. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/DownloadBehavior.js.map +1 -0
  619. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Errors.d.ts +7 -0
  620. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Errors.d.ts.map +1 -1
  621. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Errors.js +9 -1
  622. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Errors.js.map +1 -1
  623. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/WaitTask.d.ts.map +1 -1
  624. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/WaitTask.js +5 -3
  625. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/WaitTask.js.map +1 -1
  626. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/common.d.ts +1 -0
  627. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/common.d.ts.map +1 -1
  628. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/environment.d.ts +1 -1
  629. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/environment.d.ts.map +1 -1
  630. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/environment.js +0 -3
  631. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/environment.js.map +1 -1
  632. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/injected.d.ts +1 -1
  633. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/injected.js +1 -1
  634. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/version.d.ts +1 -1
  635. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/version.js +1 -1
  636. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/injected/injected.d.ts +1 -1
  637. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserLauncher.d.ts.map +1 -1
  638. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserLauncher.js +2 -2
  639. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserLauncher.js.map +1 -1
  640. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.d.ts +3 -3
  641. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js +3 -3
  642. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/Mutex.d.ts +2 -2
  643. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/incremental-id-generator.d.ts +14 -0
  644. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/incremental-id-generator.d.ts.map +1 -0
  645. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/incremental-id-generator.js +18 -0
  646. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/incremental-id-generator.js.map +1 -0
  647. package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.d.ts +100 -10
  648. package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.js +291 -143
  649. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.d.ts +10 -3
  650. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.d.ts.map +1 -1
  651. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.js.map +1 -1
  652. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/ElementHandle.d.ts +14 -3
  653. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/ElementHandle.d.ts.map +1 -1
  654. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/ElementHandle.js +16 -2
  655. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/ElementHandle.js.map +1 -1
  656. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Frame.d.ts.map +1 -1
  657. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Frame.js +3 -1
  658. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Frame.js.map +1 -1
  659. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/HTTPRequest.d.ts +1 -0
  660. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/HTTPRequest.d.ts.map +1 -1
  661. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/HTTPRequest.js +1 -0
  662. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/HTTPRequest.js.map +1 -1
  663. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Input.d.ts +34 -5
  664. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Input.d.ts.map +1 -1
  665. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Input.js +51 -2
  666. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Input.js.map +1 -1
  667. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.d.ts +4 -0
  668. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.d.ts.map +1 -1
  669. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.js.map +1 -1
  670. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/ElementHandle.d.ts.map +1 -1
  671. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/ElementHandle.js +10 -8
  672. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/ElementHandle.js.map +1 -1
  673. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.d.ts.map +1 -1
  674. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.js +1 -1
  675. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.js.map +1 -1
  676. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Input.d.ts +14 -4
  677. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Input.d.ts.map +1 -1
  678. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Input.js +57 -23
  679. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Input.js.map +1 -1
  680. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.d.ts +1 -0
  681. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.d.ts.map +1 -1
  682. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.js +3 -0
  683. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.js.map +1 -1
  684. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.d.ts +3 -2
  685. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.d.ts.map +1 -1
  686. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.js +10 -4
  687. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.js.map +1 -1
  688. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserConnector.d.ts.map +1 -1
  689. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserConnector.js +2 -2
  690. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserConnector.js.map +1 -1
  691. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserContext.d.ts +2 -0
  692. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserContext.d.ts.map +1 -1
  693. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserContext.js +7 -0
  694. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserContext.js.map +1 -1
  695. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ElementHandle.d.ts +1 -1
  696. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ElementHandle.d.ts.map +1 -1
  697. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ElementHandle.js +13 -10
  698. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ElementHandle.js.map +1 -1
  699. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPRequest.d.ts +1 -0
  700. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPRequest.d.ts.map +1 -1
  701. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPRequest.js +3 -0
  702. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPRequest.js.map +1 -1
  703. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPResponse.d.ts +1 -2
  704. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPResponse.d.ts.map +1 -1
  705. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPResponse.js +4 -4
  706. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPResponse.js.map +1 -1
  707. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Input.d.ts +15 -4
  708. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Input.d.ts.map +1 -1
  709. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Input.js +55 -26
  710. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Input.js.map +1 -1
  711. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/NetworkManager.d.ts.map +1 -1
  712. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/NetworkManager.js +24 -12
  713. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/NetworkManager.js.map +1 -1
  714. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.d.ts +1 -0
  715. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.d.ts.map +1 -1
  716. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.js +3 -0
  717. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.js.map +1 -1
  718. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/CallbackRegistry.d.ts +0 -8
  719. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/CallbackRegistry.d.ts.map +1 -1
  720. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/CallbackRegistry.js +1 -9
  721. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/CallbackRegistry.js.map +1 -1
  722. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConnectOptions.d.ts +5 -0
  723. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConnectOptions.d.ts.map +1 -1
  724. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConsoleMessage.d.ts +2 -1
  725. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConsoleMessage.d.ts.map +1 -1
  726. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConsoleMessage.js +5 -2
  727. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConsoleMessage.js.map +1 -1
  728. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/DownloadBehavior.d.ts +30 -0
  729. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/DownloadBehavior.d.ts.map +1 -0
  730. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/DownloadBehavior.js +7 -0
  731. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/DownloadBehavior.js.map +1 -0
  732. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Errors.d.ts +7 -0
  733. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Errors.d.ts.map +1 -1
  734. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Errors.js +7 -0
  735. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Errors.js.map +1 -1
  736. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/WaitTask.d.ts.map +1 -1
  737. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/WaitTask.js +5 -3
  738. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/WaitTask.js.map +1 -1
  739. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/common.d.ts +1 -0
  740. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/common.d.ts.map +1 -1
  741. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/environment.d.ts +1 -1
  742. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/environment.d.ts.map +1 -1
  743. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/environment.js +0 -3
  744. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/environment.js.map +1 -1
  745. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/injected.d.ts +1 -1
  746. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/injected.js +1 -1
  747. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/version.d.ts +1 -1
  748. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/version.js +1 -1
  749. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserLauncher.d.ts.map +1 -1
  750. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserLauncher.js +2 -2
  751. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserLauncher.js.map +1 -1
  752. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.d.ts +3 -3
  753. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js +3 -3
  754. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/incremental-id-generator.d.ts +14 -0
  755. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/incremental-id-generator.d.ts.map +1 -0
  756. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/incremental-id-generator.js +15 -0
  757. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/incremental-id-generator.js.map +1 -0
  758. package/front_end/third_party/puppeteer/package/lib/types.d.ts +100 -10
  759. package/front_end/third_party/puppeteer/package/package.json +5 -5
  760. package/front_end/third_party/puppeteer/package/src/api/Browser.ts +10 -3
  761. package/front_end/third_party/puppeteer/package/src/api/ElementHandle.ts +21 -3
  762. package/front_end/third_party/puppeteer/package/src/api/Frame.ts +3 -1
  763. package/front_end/third_party/puppeteer/package/src/api/HTTPRequest.ts +1 -0
  764. package/front_end/third_party/puppeteer/package/src/api/Input.ts +57 -8
  765. package/front_end/third_party/puppeteer/package/src/api/Page.ts +5 -0
  766. package/front_end/third_party/puppeteer/package/src/bidi/ElementHandle.ts +9 -7
  767. package/front_end/third_party/puppeteer/package/src/bidi/Frame.ts +1 -0
  768. package/front_end/third_party/puppeteer/package/src/bidi/Input.ts +72 -31
  769. package/front_end/third_party/puppeteer/package/src/bidi/Page.ts +4 -0
  770. package/front_end/third_party/puppeteer/package/src/cdp/Browser.ts +11 -3
  771. package/front_end/third_party/puppeteer/package/src/cdp/BrowserConnector.ts +2 -0
  772. package/front_end/third_party/puppeteer/package/src/cdp/BrowserContext.ts +11 -0
  773. package/front_end/third_party/puppeteer/package/src/cdp/ElementHandle.ts +14 -9
  774. package/front_end/third_party/puppeteer/package/src/cdp/HTTPRequest.ts +4 -0
  775. package/front_end/third_party/puppeteer/package/src/cdp/HTTPResponse.ts +3 -5
  776. package/front_end/third_party/puppeteer/package/src/cdp/Input.ts +71 -26
  777. package/front_end/third_party/puppeteer/package/src/cdp/NetworkManager.ts +34 -17
  778. package/front_end/third_party/puppeteer/package/src/cdp/Page.ts +4 -0
  779. package/front_end/third_party/puppeteer/package/src/common/CallbackRegistry.ts +1 -15
  780. package/front_end/third_party/puppeteer/package/src/common/ConnectOptions.ts +5 -0
  781. package/front_end/third_party/puppeteer/package/src/common/ConsoleMessage.ts +8 -1
  782. package/front_end/third_party/puppeteer/package/src/common/DownloadBehavior.ts +31 -0
  783. package/front_end/third_party/puppeteer/package/src/common/Errors.ts +7 -0
  784. package/front_end/third_party/puppeteer/package/src/common/WaitTask.ts +9 -9
  785. package/front_end/third_party/puppeteer/package/src/common/common.ts +1 -0
  786. package/front_end/third_party/puppeteer/package/src/environment.ts +1 -4
  787. package/front_end/third_party/puppeteer/package/src/generated/injected.ts +1 -1
  788. package/front_end/third_party/puppeteer/package/src/generated/version.ts +1 -1
  789. package/front_end/third_party/puppeteer/package/src/node/BrowserLauncher.ts +2 -0
  790. package/front_end/third_party/puppeteer/package/src/revisions.ts +3 -3
  791. package/front_end/third_party/puppeteer/package/src/util/incremental-id-generator.ts +20 -0
  792. package/front_end/third_party/puppeteer/puppeteer-tsconfig.json +2 -0
  793. package/front_end/ui/components/buttons/Button.test.ts +14 -0
  794. package/front_end/ui/components/buttons/Button.ts +27 -4
  795. package/front_end/ui/components/cards/card.css +7 -4
  796. package/front_end/ui/components/data_grid/DataGridControllerIntegrator.ts +4 -1
  797. package/front_end/ui/components/dialogs/ButtonDialog.test.ts +78 -0
  798. package/front_end/ui/components/dialogs/ButtonDialog.ts +131 -0
  799. package/front_end/ui/components/dialogs/Dialog.test.ts +43 -0
  800. package/front_end/ui/components/dialogs/Dialog.ts +63 -3
  801. package/front_end/ui/components/dialogs/ShortcutDialog.test.ts +15 -1
  802. package/front_end/ui/components/dialogs/ShortcutDialog.ts +33 -23
  803. package/front_end/ui/components/dialogs/buttonDialog.css +9 -0
  804. package/front_end/ui/components/dialogs/dialog.css +15 -4
  805. package/front_end/ui/components/dialogs/dialogs.ts +2 -0
  806. package/front_end/ui/components/dialogs/shortcutDialog.css +58 -38
  807. package/front_end/ui/components/docs/dialog/button_dialog.html +28 -0
  808. package/front_end/ui/components/docs/dialog/button_dialog.ts +29 -0
  809. package/front_end/ui/components/docs/freestyler/basic.ts +6 -8
  810. package/front_end/ui/components/docs/freestyler/empty_state.ts +6 -8
  811. package/front_end/ui/components/docs/performance_panel/basic.ts +1 -1
  812. package/front_end/ui/components/docs/performance_panel/timeline_history_manager.ts +6 -4
  813. package/front_end/ui/components/docs/performance_panel/track_example.html +1 -1
  814. package/front_end/ui/components/floating_button/FloatingButton.ts +3 -2
  815. package/front_end/ui/components/icon_button/fileSourceIcon.css +7 -3
  816. package/front_end/ui/components/issue_counter/IssueCounter.ts +15 -2
  817. package/front_end/ui/components/legacy_wrapper/LegacyWrapper.ts +1 -1
  818. package/front_end/ui/components/markdown_view/MarkdownView.test.ts +39 -17
  819. package/front_end/ui/components/markdown_view/MarkdownView.ts +92 -14
  820. package/front_end/ui/components/markdown_view/markdownView.css +15 -0
  821. package/front_end/ui/components/render_coordinator/RenderCoordinator.ts +24 -18
  822. package/front_end/ui/components/settings/SettingCheckbox.ts +3 -2
  823. package/front_end/ui/components/switch/SwitchImpl.ts +2 -2
  824. package/front_end/ui/legacy/ContextMenu.ts +2 -2
  825. package/front_end/ui/legacy/Infobar.ts +6 -0
  826. package/front_end/ui/legacy/InplaceEditor.ts +18 -14
  827. package/front_end/ui/legacy/InspectorView.ts +40 -0
  828. package/front_end/ui/legacy/ListWidget.ts +4 -2
  829. package/front_end/ui/legacy/TabbedPane.ts +0 -14
  830. package/front_end/ui/legacy/ThrottledWidget.ts +2 -2
  831. package/front_end/ui/legacy/Toolbar.ts +3 -3
  832. package/front_end/ui/legacy/UIUtils.ts +8 -13
  833. package/front_end/ui/legacy/Widget.ts +32 -0
  834. package/front_end/ui/legacy/components/cookie_table/CookiesTable.ts +7 -2
  835. package/front_end/ui/legacy/components/data_grid/DataGrid.test.ts +6 -9
  836. package/front_end/ui/legacy/components/data_grid/DataGrid.ts +43 -38
  837. package/front_end/ui/legacy/components/data_grid/ViewportDataGrid.ts +21 -12
  838. package/front_end/ui/legacy/components/inline_editor/LinkSwatch.test.ts +19 -0
  839. package/front_end/ui/legacy/components/inline_editor/LinkSwatch.ts +1 -1
  840. package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +1 -1
  841. package/front_end/ui/legacy/components/perf_ui/ChartViewport.ts +2 -2
  842. package/front_end/ui/legacy/components/perf_ui/FilmStripView.ts +1 -1
  843. package/front_end/ui/legacy/components/perf_ui/FlameChart.ts +37 -47
  844. package/front_end/ui/legacy/components/perf_ui/OverviewGrid.ts +129 -100
  845. package/front_end/ui/legacy/components/perf_ui/TimelineGrid.ts +4 -2
  846. package/front_end/ui/legacy/components/perf_ui/TimelineOverviewCalculator.test.ts +9 -4
  847. package/front_end/ui/legacy/components/perf_ui/TimelineOverviewCalculator.ts +23 -9
  848. package/front_end/ui/legacy/components/perf_ui/TimelineOverviewPane.ts +102 -43
  849. package/front_end/ui/legacy/components/perf_ui/flameChart.css +0 -2
  850. package/front_end/ui/legacy/components/perf_ui/perf_ui-meta.ts +4 -4
  851. package/front_end/ui/legacy/components/source_frame/BinaryResourceViewFactory.test.ts +49 -0
  852. package/front_end/ui/legacy/components/source_frame/BinaryResourceViewFactory.ts +23 -46
  853. package/front_end/ui/legacy/components/source_frame/ImageView.ts +1 -1
  854. package/front_end/ui/legacy/components/utils/ImagePreview.ts +1 -1
  855. package/front_end/ui/legacy/components/utils/jsUtils.css +8 -0
  856. package/front_end/ui/legacy/filter.css +1 -1
  857. package/front_end/ui/legacy/inspectorCommon.css +1 -1
  858. package/front_end/ui/legacy/listWidget.css +4 -1
  859. package/front_end/ui/legacy/reportView.css +1 -1
  860. package/front_end/ui/legacy/textPrompt.css +1 -1
  861. package/front_end/ui/legacy/toolbar.css +7 -11
  862. package/front_end/ui/legacy/treeoutline.css +3 -1
  863. package/front_end/ui/visual_logging/KnownContextValues.ts +186 -1
  864. package/front_end/ui/visual_logging/LoggingConfig.ts +6 -2
  865. package/front_end/ui/visual_logging/LoggingDriver.test.ts +27 -1
  866. package/front_end/ui/visual_logging/LoggingDriver.ts +7 -4
  867. package/package.json +8 -8
  868. package/scripts/build/ninja/bundle.gni +3 -3
  869. package/scripts/build/{rollup.config.js → rollup.config.mjs} +4 -4
  870. package/scripts/build/wasm-as.py +1 -1
  871. package/scripts/devtools_paths.py +8 -4
  872. package/scripts/eslint_rules/tests/check_test_definitions_test.js +8 -3
  873. package/scripts/freestyler/auto_freestyler.js +12 -4
  874. package/scripts/freestyler/to_tsv.mjs +40 -0
  875. package/scripts/tools/update_goldens.py +11 -13
  876. package/scripts/tools/update_goldens_v2.py +1 -1
  877. package/front_end/models/timeline_model/TimelineModelFilter.ts +0 -61
  878. package/front_end/panels/timeline/components/insights/SidebarInsight.test.ts +0 -72
  879. package/front_end/ui/components/docs/two_states_counter/basic.html +0 -27
  880. package/front_end/ui/components/docs/two_states_counter/basic.ts +0 -45
  881. package/front_end/ui/components/two_states_counter/TwoStatesCounter.test.ts +0 -73
  882. package/front_end/ui/components/two_states_counter/TwoStatesCounter.ts +0 -104
  883. package/front_end/ui/components/two_states_counter/twoStatesCounter.css +0 -37
  884. package/front_end/ui/components/two_states_counter/two_states_counter.ts +0 -9
  885. /package/front_end/Images/{rollup.config.js → rollup.config.mjs} +0 -0
@@ -4,14 +4,20 @@
4
4
 
5
5
  import * as Common from '../../core/common/common.js';
6
6
  import * as Host from '../../core/host/host.js';
7
+ import type * as Platform from '../../core/platform/platform.js';
7
8
  import * as SDK from '../../core/sdk/sdk.js';
8
9
  import * as Workspace from '../../models/workspace/workspace.js';
9
10
  import {findMenuItemWithLabel, getMenu} from '../../testing/ContextMenuHelpers.js';
10
11
  import {dispatchClickEvent} from '../../testing/DOMHelpers.js';
11
12
  import {describeWithEnvironment, getGetHostConfigStub, registerNoopActions} from '../../testing/EnvironmentHelpers.js';
12
13
  import * as UI from '../../ui/legacy/legacy.js';
14
+ import * as ElementsPanel from '../elements/elements.js';
15
+ import * as NetworkPanel from '../network/network.js';
16
+ import * as SourcesPanel from '../sources/sources.js';
17
+ import * as TimelinePanel from '../timeline/timeline.js';
13
18
  import * as TimelineUtils from '../timeline/utils/utils.js';
14
19
 
20
+ import * as AiAgent from './AiAgent.js';
15
21
  import * as Freestyler from './freestyler.js';
16
22
 
17
23
  function getTestAidaClient() {
@@ -33,12 +39,16 @@ async function drainMicroTasks() {
33
39
  }
34
40
 
35
41
  describeWithEnvironment('FreestylerPanel', () => {
36
- let mockView: sinon.SinonStub;
42
+ let mockView: sinon.SinonStub<[Freestyler.Props, unknown, HTMLElement]>;
37
43
  let panel: Freestyler.FreestylerPanel;
38
44
 
39
45
  beforeEach(() => {
40
46
  mockView = sinon.stub();
41
47
  registerNoopActions(['elements.toggle-element-search']);
48
+ UI.Context.Context.instance().setFlavor(ElementsPanel.ElementsPanel.ElementsPanel, null);
49
+ UI.Context.Context.instance().setFlavor(NetworkPanel.NetworkPanel.NetworkPanel, null);
50
+ UI.Context.Context.instance().setFlavor(SourcesPanel.SourcesPanel.SourcesPanel, null);
51
+ UI.Context.Context.instance().setFlavor(TimelinePanel.TimelinePanel.TimelinePanel, null);
42
52
  });
43
53
 
44
54
  afterEach(() => {
@@ -309,9 +319,10 @@ describeWithEnvironment('FreestylerPanel', () => {
309
319
  UI.Context.Context.instance().setFlavor(SDK.DOMModel.DOMNode, node);
310
320
  panel.markAsRoot();
311
321
  panel.show(document.body);
322
+ panel.handleAction('freestyler.elements-floating-button');
312
323
 
313
324
  sinon.assert.calledWith(mockView, sinon.match({
314
- selectedElement: node,
325
+ selectedContext: new Freestyler.NodeContext(node),
315
326
  }));
316
327
  });
317
328
 
@@ -324,8 +335,9 @@ describeWithEnvironment('FreestylerPanel', () => {
324
335
  });
325
336
  panel.markAsRoot();
326
337
  panel.show(document.body);
338
+ panel.handleAction('freestyler.elements-floating-button');
327
339
  sinon.assert.calledWith(mockView, sinon.match({
328
- selectedElement: null,
340
+ selectedContext: null,
329
341
  }));
330
342
 
331
343
  const node = sinon.createStubInstance(SDK.DOMModel.DOMNode, {
@@ -334,7 +346,7 @@ describeWithEnvironment('FreestylerPanel', () => {
334
346
  UI.Context.Context.instance().setFlavor(SDK.DOMModel.DOMNode, node);
335
347
 
336
348
  sinon.assert.calledWith(mockView, sinon.match({
337
- selectedElement: node,
349
+ selectedContext: new Freestyler.NodeContext(node),
338
350
  }));
339
351
  });
340
352
 
@@ -347,8 +359,9 @@ describeWithEnvironment('FreestylerPanel', () => {
347
359
  });
348
360
  panel.markAsRoot();
349
361
  panel.show(document.body);
362
+ panel.handleAction('freestyler.elements-floating-button');
350
363
  sinon.assert.calledWith(mockView, sinon.match({
351
- selectedElement: null,
364
+ selectedContext: null,
352
365
  }));
353
366
 
354
367
  const node = sinon.createStubInstance(SDK.DOMModel.DOMNode, {
@@ -357,7 +370,7 @@ describeWithEnvironment('FreestylerPanel', () => {
357
370
  UI.Context.Context.instance().setFlavor(SDK.DOMModel.DOMNode, node);
358
371
 
359
372
  sinon.assert.calledWith(mockView, sinon.match({
360
- selectedElement: null,
373
+ selectedContext: null,
361
374
  }));
362
375
  });
363
376
 
@@ -391,9 +404,10 @@ describeWithEnvironment('FreestylerPanel', () => {
391
404
  UI.Context.Context.instance().setFlavor(SDK.NetworkRequest.NetworkRequest, networkRequest);
392
405
  panel.markAsRoot();
393
406
  panel.show(document.body);
407
+ panel.handleAction('drjones.network-floating-button');
394
408
 
395
409
  sinon.assert.calledWith(mockView, sinon.match({
396
- selectedNetworkRequest: networkRequest,
410
+ selectedContext: new Freestyler.RequestContext(networkRequest),
397
411
  }));
398
412
  });
399
413
 
@@ -406,15 +420,16 @@ describeWithEnvironment('FreestylerPanel', () => {
406
420
  });
407
421
  panel.markAsRoot();
408
422
  panel.show(document.body);
423
+ panel.handleAction('drjones.network-floating-button');
409
424
  sinon.assert.calledWith(mockView, sinon.match({
410
- selectedNetworkRequest: null,
425
+ selectedContext: null,
411
426
  }));
412
427
 
413
428
  const networkRequest = sinon.createStubInstance(SDK.NetworkRequest.NetworkRequest);
414
429
  UI.Context.Context.instance().setFlavor(SDK.NetworkRequest.NetworkRequest, networkRequest);
415
430
 
416
431
  sinon.assert.calledWith(mockView, sinon.match({
417
- selectedNetworkRequest: networkRequest,
432
+ selectedContext: new Freestyler.RequestContext(networkRequest),
418
433
  }));
419
434
  });
420
435
 
@@ -446,9 +461,10 @@ describeWithEnvironment('FreestylerPanel', () => {
446
461
  UI.Context.Context.instance().setFlavor(TimelineUtils.AICallTree.AICallTree, selectedAiCallTree);
447
462
  panel.markAsRoot();
448
463
  panel.show(document.body);
464
+ panel.handleAction('drjones.performance-panel-context');
449
465
 
450
466
  sinon.assert.calledWith(mockView, sinon.match({
451
- selectedAiCallTree,
467
+ selectedContext: new Freestyler.CallTreeContext(selectedAiCallTree as TimelineUtils.AICallTree.AICallTree),
452
468
  }));
453
469
  });
454
470
 
@@ -461,15 +477,16 @@ describeWithEnvironment('FreestylerPanel', () => {
461
477
  });
462
478
  panel.markAsRoot();
463
479
  panel.show(document.body);
480
+ panel.handleAction('drjones.performance-panel-context');
464
481
  sinon.assert.calledWith(mockView, sinon.match({
465
- selectedAiCallTree: null,
482
+ selectedContext: null,
466
483
  }));
467
484
 
468
485
  const selectedAiCallTree = {};
469
486
  UI.Context.Context.instance().setFlavor(TimelineUtils.AICallTree.AICallTree, selectedAiCallTree);
470
487
 
471
488
  sinon.assert.calledWith(mockView, sinon.match({
472
- selectedAiCallTree,
489
+ selectedContext: new Freestyler.CallTreeContext(selectedAiCallTree as TimelineUtils.AICallTree.AICallTree),
473
490
  }));
474
491
  });
475
492
 
@@ -501,9 +518,10 @@ describeWithEnvironment('FreestylerPanel', () => {
501
518
  UI.Context.Context.instance().setFlavor(Workspace.UISourceCode.UISourceCode, uiSourceCode);
502
519
  panel.markAsRoot();
503
520
  panel.show(document.body);
521
+ panel.handleAction('drjones.sources-panel-context');
504
522
 
505
523
  sinon.assert.calledWith(mockView, sinon.match({
506
- selectedFile: uiSourceCode,
524
+ selectedContext: new Freestyler.FileContext(uiSourceCode),
507
525
  }));
508
526
  });
509
527
 
@@ -516,15 +534,16 @@ describeWithEnvironment('FreestylerPanel', () => {
516
534
  });
517
535
  panel.markAsRoot();
518
536
  panel.show(document.body);
537
+ panel.handleAction('drjones.sources-panel-context');
519
538
  sinon.assert.calledWith(mockView, sinon.match({
520
- selectedFile: null,
539
+ selectedContext: null,
521
540
  }));
522
541
 
523
542
  const uiSourceCode = sinon.createStubInstance(Workspace.UISourceCode.UISourceCode);
524
543
  UI.Context.Context.instance().setFlavor(Workspace.UISourceCode.UISourceCode, uiSourceCode);
525
544
 
526
545
  sinon.assert.calledWith(mockView, sinon.match({
527
- selectedFile: uiSourceCode,
546
+ selectedContext: new Freestyler.FileContext(uiSourceCode),
528
547
  }));
529
548
  });
530
549
 
@@ -611,17 +630,17 @@ describeWithEnvironment('FreestylerPanel', () => {
611
630
  syncInfo: getTestSyncInfo(),
612
631
  });
613
632
  panel.handleAction('freestyler.elements-floating-button');
614
- (mockView.lastCall.args.at(0) as Freestyler.Props).onTextSubmit('test');
633
+ mockView.lastCall.args[0].onTextSubmit('test');
615
634
  await drainMicroTasks();
616
635
 
617
- assert.deepEqual(mockView.lastCall.args.at(0).messages, [
636
+ assert.deepEqual(mockView.lastCall.args[0].messages, [
618
637
  {
619
- entity: 'user',
638
+ entity: Freestyler.ChatMessageEntity.USER,
620
639
  text: 'test',
621
640
  },
622
641
  {
623
642
  answer: 'test',
624
- entity: 'model',
643
+ entity: Freestyler.ChatMessageEntity.MODEL,
625
644
  rpcId: undefined,
626
645
  suggestions: undefined,
627
646
  steps: [],
@@ -631,27 +650,66 @@ describeWithEnvironment('FreestylerPanel', () => {
631
650
  const button = toolbar!.shadowRoot!.querySelector('devtools-button[aria-label=\'New chat\']');
632
651
  assert.instanceOf(button, HTMLElement);
633
652
  dispatchClickEvent(button);
634
- assert.deepEqual(mockView.lastCall.args.at(0).messages, []);
653
+ assert.deepEqual(mockView.lastCall.args[0].messages, []);
635
654
  });
636
655
 
637
- it('should switch agents and restore history', async () => {
656
+ it('should select default agent after new chat', async () => {
657
+ const stub = getGetHostConfigStub({
658
+ devToolsFreestyler: {
659
+ enabled: true,
660
+ },
661
+ });
638
662
  panel = new Freestyler.FreestylerPanel(mockView, {
639
663
  aidaClient: getTestAidaClient(),
640
664
  aidaAvailability: Host.AidaClient.AidaAccessPreconditions.AVAILABLE,
641
665
  syncInfo: getTestSyncInfo(),
642
666
  });
643
667
  panel.handleAction('freestyler.elements-floating-button');
644
- (mockView.lastCall.args.at(0) as Freestyler.Props).onTextSubmit('User question to Freestyler?');
668
+ mockView.lastCall.args[0].onTextSubmit('test');
645
669
  await drainMicroTasks();
670
+ UI.Context.Context.instance().setFlavor(
671
+ ElementsPanel.ElementsPanel.ElementsPanel,
672
+ sinon.createStubInstance(ElementsPanel.ElementsPanel.ElementsPanel));
673
+
674
+ assert.deepEqual(mockView.lastCall.args[0].messages, [
675
+ {
676
+ entity: Freestyler.ChatMessageEntity.USER,
677
+ text: 'test',
678
+ },
679
+ {
680
+ answer: 'test',
681
+ entity: Freestyler.ChatMessageEntity.MODEL,
682
+ rpcId: undefined,
683
+ suggestions: undefined,
684
+ steps: [],
685
+ },
686
+ ]);
687
+ const toolbar = panel.contentElement.querySelector('.freestyler-left-toolbar');
688
+ const button = toolbar!.shadowRoot!.querySelector('devtools-button[aria-label=\'New chat\']');
689
+ assert.instanceOf(button, HTMLElement);
690
+ dispatchClickEvent(button);
691
+ assert.deepEqual(mockView.lastCall.args[0].messages, []);
692
+ assert.deepEqual(mockView.lastCall.args[0].agentType, AiAgent.AgentType.FREESTYLER);
693
+ stub.restore();
694
+ });
646
695
 
647
- assert.deepEqual(mockView.lastCall.args.at(0).messages, [
696
+ it('should switch agents and restore history', async () => {
697
+ panel = new Freestyler.FreestylerPanel(mockView, {
698
+ aidaClient: getTestAidaClient(),
699
+ aidaAvailability: Host.AidaClient.AidaAccessPreconditions.AVAILABLE,
700
+ syncInfo: getTestSyncInfo(),
701
+ });
702
+ panel.handleAction('freestyler.elements-floating-button');
703
+ mockView.lastCall.args[0].onTextSubmit('User question to Freestyler?');
704
+ await drainMicroTasks();
705
+ assert.deepEqual(mockView.lastCall.args[0].messages, [
648
706
  {
649
- entity: 'user',
707
+ entity: Freestyler.ChatMessageEntity.USER,
650
708
  text: 'User question to Freestyler?',
651
709
  },
652
710
  {
653
711
  answer: 'test',
654
- entity: 'model',
712
+ entity: Freestyler.ChatMessageEntity.MODEL,
655
713
  rpcId: undefined,
656
714
  suggestions: undefined,
657
715
  steps: [],
@@ -659,16 +717,16 @@ describeWithEnvironment('FreestylerPanel', () => {
659
717
  ]);
660
718
 
661
719
  panel.handleAction('drjones.network-floating-button');
662
- (mockView.lastCall.args.at(0) as Freestyler.Props).onTextSubmit('User question to DrJones?');
720
+ mockView.lastCall.args[0].onTextSubmit('User question to DrJones?');
663
721
  await drainMicroTasks();
664
- assert.deepEqual(mockView.lastCall.args.at(0).messages, [
722
+ assert.deepEqual(mockView.lastCall.args[0].messages, [
665
723
  {
666
- entity: 'user',
724
+ entity: Freestyler.ChatMessageEntity.USER,
667
725
  text: 'User question to DrJones?',
668
726
  },
669
727
  {
670
728
  answer: 'test',
671
- entity: 'model',
729
+ entity: Freestyler.ChatMessageEntity.MODEL,
672
730
  rpcId: undefined,
673
731
  suggestions: undefined,
674
732
  steps: [],
@@ -686,14 +744,14 @@ describeWithEnvironment('FreestylerPanel', () => {
686
744
  contextMenu.invokeHandler(freestylerEntry.id());
687
745
 
688
746
  await drainMicroTasks();
689
- assert.deepEqual(mockView.lastCall.args.at(0).messages, [
747
+ assert.deepEqual(mockView.lastCall.args[0].messages, [
690
748
  {
691
- entity: 'user',
749
+ entity: Freestyler.ChatMessageEntity.USER,
692
750
  text: 'User question to Freestyler?',
693
751
  },
694
752
  {
695
753
  answer: 'test',
696
- entity: 'model',
754
+ entity: Freestyler.ChatMessageEntity.MODEL,
697
755
  rpcId: undefined,
698
756
  suggestions: undefined,
699
757
  steps: [],
@@ -709,27 +767,540 @@ describeWithEnvironment('FreestylerPanel', () => {
709
767
  syncInfo: getTestSyncInfo(),
710
768
  });
711
769
  panel.handleAction('freestyler.elements-floating-button');
712
- (mockView.lastCall.args.at(0) as Freestyler.Props).onTextSubmit('test');
770
+ mockView.lastCall.args[0].onTextSubmit('test');
713
771
  await drainMicroTasks();
714
772
 
715
- assert.deepEqual(mockView.lastCall.args.at(0).messages, [
773
+ assert.deepEqual(mockView.lastCall.args[0].messages, [
716
774
  {
717
- entity: 'user',
775
+ entity: Freestyler.ChatMessageEntity.USER,
718
776
  text: 'test',
719
777
  },
720
778
  {
721
779
  answer: 'test',
722
- entity: 'model',
780
+ entity: Freestyler.ChatMessageEntity.MODEL,
723
781
  rpcId: undefined,
724
782
  suggestions: undefined,
725
783
  steps: [],
726
784
  },
727
785
  ]);
728
786
  const toolbar = panel.contentElement.querySelector('.freestyler-left-toolbar');
729
- const button = toolbar!.shadowRoot!.querySelector('devtools-button[aria-label=\'Clear chat\']');
787
+ const button = toolbar!.shadowRoot!.querySelector('devtools-button[aria-label=\'Delete chat\']');
730
788
  assert.instanceOf(button, HTMLElement);
731
789
  dispatchClickEvent(button);
732
- assert.deepEqual(mockView.lastCall.args.at(0).messages, []);
733
- assert.deepEqual(mockView.lastCall.args.at(0).agentType, undefined);
790
+ assert.deepEqual(mockView.lastCall.args[0].messages, []);
791
+ assert.deepEqual(mockView.lastCall.args[0].agentType, undefined);
792
+ });
793
+
794
+ it('should select default agent based on open panel after clearing the chat', async () => {
795
+ const stub = getGetHostConfigStub({
796
+ devToolsFreestyler: {
797
+ enabled: true,
798
+ },
799
+ });
800
+ panel = new Freestyler.FreestylerPanel(mockView, {
801
+ aidaClient: getTestAidaClient(),
802
+ aidaAvailability: Host.AidaClient.AidaAccessPreconditions.AVAILABLE,
803
+ syncInfo: getTestSyncInfo(),
804
+ });
805
+ panel.handleAction('freestyler.elements-floating-button');
806
+ mockView.lastCall.args[0].onTextSubmit('test');
807
+ await drainMicroTasks();
808
+
809
+ UI.Context.Context.instance().setFlavor(
810
+ ElementsPanel.ElementsPanel.ElementsPanel, sinon.createStubInstance(ElementsPanel.ElementsPanel.ElementsPanel));
811
+ assert.deepEqual(mockView.lastCall.args[0].messages, [
812
+ {
813
+ entity: Freestyler.ChatMessageEntity.USER,
814
+ text: 'test',
815
+ },
816
+ {
817
+ answer: 'test',
818
+ entity: Freestyler.ChatMessageEntity.MODEL,
819
+ rpcId: undefined,
820
+ suggestions: undefined,
821
+ steps: [],
822
+ },
823
+ ]);
824
+ const toolbar = panel.contentElement.querySelector('.freestyler-left-toolbar');
825
+ const button = toolbar!.shadowRoot!.querySelector('devtools-button[aria-label=\'Delete chat\']');
826
+ assert.instanceOf(button, HTMLElement);
827
+ dispatchClickEvent(button);
828
+ assert.deepEqual(mockView.lastCall.args[0].messages, []);
829
+ assert.deepEqual(mockView.lastCall.args[0].agentType, AiAgent.AgentType.FREESTYLER);
830
+ stub.restore();
831
+ });
832
+
833
+ it('should have empty state after clear chat history', async () => {
834
+ panel = new Freestyler.FreestylerPanel(mockView, {
835
+ aidaClient: getTestAidaClient(),
836
+ aidaAvailability: Host.AidaClient.AidaAccessPreconditions.AVAILABLE,
837
+ syncInfo: getTestSyncInfo(),
838
+ });
839
+ panel.handleAction('freestyler.elements-floating-button');
840
+ mockView.lastCall.args[0].onTextSubmit('User question to Freestyler?');
841
+ await drainMicroTasks();
842
+ assert.deepEqual(mockView.lastCall.args[0].messages, [
843
+ {
844
+ entity: Freestyler.ChatMessageEntity.USER,
845
+ text: 'User question to Freestyler?',
846
+ },
847
+ {
848
+ answer: 'test',
849
+ entity: Freestyler.ChatMessageEntity.MODEL,
850
+ rpcId: undefined,
851
+ suggestions: undefined,
852
+ steps: [],
853
+ },
854
+ ]);
855
+
856
+ panel.handleAction('drjones.network-floating-button');
857
+ mockView.lastCall.args[0].onTextSubmit('User question to DrJones?');
858
+ await drainMicroTasks();
859
+ assert.deepEqual(mockView.lastCall.args[0].messages, [
860
+ {
861
+ entity: Freestyler.ChatMessageEntity.USER,
862
+ text: 'User question to DrJones?',
863
+ },
864
+ {
865
+ answer: 'test',
866
+ entity: Freestyler.ChatMessageEntity.MODEL,
867
+ rpcId: undefined,
868
+ suggestions: undefined,
869
+ steps: [],
870
+ },
871
+ ]);
872
+
873
+ let toolbar = panel.contentElement.querySelector('.freestyler-left-toolbar');
874
+ let button = toolbar!.shadowRoot!.querySelector('devtools-button[aria-label=\'History\']');
875
+ assert.instanceOf(button, HTMLElement);
876
+ let contextMenu = getMenu(() => {
877
+ dispatchClickEvent(button!);
878
+ });
879
+ const clearAll = findMenuItemWithLabel(contextMenu.footerSection(), 'Clear chat history')!;
880
+ assert.isDefined(clearAll);
881
+ contextMenu.invokeHandler(clearAll.id());
882
+ await drainMicroTasks();
883
+ assert.deepEqual(mockView.lastCall.args[0].messages, []);
884
+ assert.deepEqual(mockView.lastCall.args[0].agentType, undefined);
885
+
886
+ await drainMicroTasks();
887
+ contextMenu.discard();
888
+ await drainMicroTasks();
889
+
890
+ toolbar = panel.contentElement.querySelector('.freestyler-left-toolbar');
891
+ button = toolbar!.shadowRoot!.querySelector('devtools-button[aria-label=\'History\']');
892
+ assert.instanceOf(button, HTMLElement);
893
+ contextMenu = getMenu(() => {
894
+ dispatchClickEvent(button);
895
+ });
896
+ const menuItem = findMenuItemWithLabel(contextMenu.defaultSection(), 'No past conversations');
897
+ assert(menuItem);
898
+ });
899
+
900
+ describe('cross-origin', () => {
901
+ it('blocks input on cross origin requests', async () => {
902
+ const networkRequest = sinon.createStubInstance(SDK.NetworkRequest.NetworkRequest, {
903
+ url: 'https://a.test' as Platform.DevToolsPath.UrlString,
904
+ });
905
+ UI.Context.Context.instance().setFlavor(SDK.NetworkRequest.NetworkRequest, networkRequest);
906
+ panel = new Freestyler.FreestylerPanel(mockView, {
907
+ aidaClient: getTestAidaClient(),
908
+ aidaAvailability: Host.AidaClient.AidaAccessPreconditions.AVAILABLE,
909
+ syncInfo: getTestSyncInfo(),
910
+ });
911
+ panel.markAsRoot();
912
+ panel.show(document.body);
913
+ panel.handleAction('drjones.network-floating-button');
914
+
915
+ sinon.assert.calledWith(mockView, sinon.match({
916
+ selectedContext: new Freestyler.RequestContext(networkRequest),
917
+ blockedByCrossOrigin: false,
918
+ }));
919
+
920
+ // Send a query for https://a.test.
921
+ panel.handleAction('drjones.network-floating-button');
922
+ mockView.lastCall.args[0].onTextSubmit('test');
923
+ await drainMicroTasks();
924
+
925
+ // Change context to https://b.test.
926
+ const networkRequest2 = sinon.createStubInstance(SDK.NetworkRequest.NetworkRequest, {
927
+ url: 'https://b.test' as Platform.DevToolsPath.UrlString,
928
+ });
929
+ UI.Context.Context.instance().setFlavor(SDK.NetworkRequest.NetworkRequest, networkRequest2);
930
+ panel.handleAction('drjones.network-floating-button');
931
+ await drainMicroTasks();
932
+
933
+ sinon.assert.calledWith(mockView, sinon.match({
934
+ selectedContext: new Freestyler.RequestContext(networkRequest2),
935
+ blockedByCrossOrigin: true,
936
+ }));
937
+ });
938
+
939
+ it('should be able to continue same-origin requests', async () => {
940
+ const stub = getGetHostConfigStub({
941
+ devToolsFreestyler: {
942
+ enabled: true,
943
+ },
944
+ });
945
+ panel = new Freestyler.FreestylerPanel(mockView, {
946
+ aidaClient: getTestAidaClient(),
947
+ aidaAvailability: Host.AidaClient.AidaAccessPreconditions.AVAILABLE,
948
+ syncInfo: getTestSyncInfo(),
949
+ });
950
+ UI.Context.Context.instance().setFlavor(
951
+ ElementsPanel.ElementsPanel.ElementsPanel,
952
+ sinon.createStubInstance(ElementsPanel.ElementsPanel.ElementsPanel));
953
+
954
+ panel.handleAction('freestyler.elements-floating-button');
955
+ mockView.lastCall.args[0].onTextSubmit('test');
956
+ await drainMicroTasks();
957
+
958
+ assert.deepEqual(mockView.lastCall.args[0].messages, [
959
+ {
960
+ entity: Freestyler.ChatMessageEntity.USER,
961
+ text: 'test',
962
+ },
963
+ {
964
+ answer: 'test',
965
+ entity: Freestyler.ChatMessageEntity.MODEL,
966
+ rpcId: undefined,
967
+ suggestions: undefined,
968
+ steps: [],
969
+ },
970
+ ]);
971
+
972
+ UI.Context.Context.instance().setFlavor(
973
+ ElementsPanel.ElementsPanel.ElementsPanel,
974
+ sinon.createStubInstance(ElementsPanel.ElementsPanel.ElementsPanel));
975
+
976
+ panel.handleAction('freestyler.elements-floating-button');
977
+ mockView.lastCall.args[0].onTextSubmit('test2');
978
+ await drainMicroTasks();
979
+
980
+ assert.strictEqual(mockView.lastCall.args[0].isReadOnly, false);
981
+ assert.deepEqual(mockView.lastCall.args[0].messages, [
982
+ {
983
+ entity: Freestyler.ChatMessageEntity.USER,
984
+ text: 'test',
985
+ },
986
+ {
987
+ answer: 'test',
988
+ entity: Freestyler.ChatMessageEntity.MODEL,
989
+ rpcId: undefined,
990
+ suggestions: undefined,
991
+ steps: [],
992
+ },
993
+ {
994
+ entity: Freestyler.ChatMessageEntity.USER,
995
+ text: 'test2',
996
+ },
997
+ {
998
+ answer: 'test',
999
+ entity: Freestyler.ChatMessageEntity.MODEL,
1000
+ rpcId: undefined,
1001
+ suggestions: undefined,
1002
+ steps: [],
1003
+ },
1004
+ ]);
1005
+
1006
+ stub.restore();
1007
+ });
1008
+ });
1009
+
1010
+ describe('auto agent selection for panels', () => {
1011
+ describe('Elements panel', () => {
1012
+ it('should select FREESTYLER agent when the Elements panel is open in initial render', () => {
1013
+ const stub = getGetHostConfigStub({
1014
+ devToolsFreestyler: {
1015
+ enabled: true,
1016
+ },
1017
+ });
1018
+ UI.Context.Context.instance().setFlavor(
1019
+ ElementsPanel.ElementsPanel.ElementsPanel,
1020
+ sinon.createStubInstance(ElementsPanel.ElementsPanel.ElementsPanel));
1021
+ panel = new Freestyler.FreestylerPanel(mockView, {
1022
+ aidaClient: getTestAidaClient(),
1023
+ aidaAvailability: Host.AidaClient.AidaAccessPreconditions.AVAILABLE,
1024
+ syncInfo: getTestSyncInfo(),
1025
+ });
1026
+
1027
+ panel.markAsRoot();
1028
+ panel.show(document.body);
1029
+
1030
+ sinon.assert.calledWith(mockView, sinon.match({
1031
+ agentType: AiAgent.AgentType.FREESTYLER,
1032
+ }));
1033
+ stub.restore();
1034
+ });
1035
+
1036
+ it('should update to no agent state when the Elements panel is closed and no other panels are open', () => {
1037
+ const stub = getGetHostConfigStub({
1038
+ devToolsFreestyler: {
1039
+ enabled: true,
1040
+ },
1041
+ });
1042
+ UI.Context.Context.instance().setFlavor(
1043
+ ElementsPanel.ElementsPanel.ElementsPanel,
1044
+ sinon.createStubInstance(ElementsPanel.ElementsPanel.ElementsPanel));
1045
+ panel = new Freestyler.FreestylerPanel(mockView, {
1046
+ aidaClient: getTestAidaClient(),
1047
+ aidaAvailability: Host.AidaClient.AidaAccessPreconditions.AVAILABLE,
1048
+ syncInfo: getTestSyncInfo(),
1049
+ });
1050
+
1051
+ panel.markAsRoot();
1052
+ panel.show(document.body);
1053
+ sinon.assert.calledWith(mockView, sinon.match({
1054
+ agentType: AiAgent.AgentType.FREESTYLER,
1055
+ }));
1056
+
1057
+ UI.Context.Context.instance().setFlavor(ElementsPanel.ElementsPanel.ElementsPanel, null);
1058
+ assert.deepStrictEqual(mockView.lastCall.args[0].agentType, undefined);
1059
+ stub.restore();
1060
+ });
1061
+
1062
+ it('should render no agent state when Elements panel is open but Freestyler is not enabled', () => {
1063
+ const stub = getGetHostConfigStub({
1064
+ devToolsFreestyler: {
1065
+ enabled: false,
1066
+ },
1067
+ });
1068
+ UI.Context.Context.instance().setFlavor(
1069
+ ElementsPanel.ElementsPanel.ElementsPanel,
1070
+ sinon.createStubInstance(ElementsPanel.ElementsPanel.ElementsPanel));
1071
+ panel = new Freestyler.FreestylerPanel(mockView, {
1072
+ aidaClient: getTestAidaClient(),
1073
+ aidaAvailability: Host.AidaClient.AidaAccessPreconditions.AVAILABLE,
1074
+ syncInfo: getTestSyncInfo(),
1075
+ });
1076
+
1077
+ panel.markAsRoot();
1078
+ panel.show(document.body);
1079
+
1080
+ assert.deepStrictEqual(mockView.lastCall.args[0].agentType, undefined);
1081
+ stub.restore();
1082
+ });
1083
+ });
1084
+
1085
+ describe('Network panel', () => {
1086
+ it('should select DRJONES_NETWORK agent when the Network panel is open in initial render', () => {
1087
+ const stub = getGetHostConfigStub({
1088
+ devToolsAiAssistanceNetworkAgent: {
1089
+ enabled: true,
1090
+ },
1091
+ });
1092
+ UI.Context.Context.instance().setFlavor(
1093
+ NetworkPanel.NetworkPanel.NetworkPanel, sinon.createStubInstance(NetworkPanel.NetworkPanel.NetworkPanel));
1094
+ panel = new Freestyler.FreestylerPanel(mockView, {
1095
+ aidaClient: getTestAidaClient(),
1096
+ aidaAvailability: Host.AidaClient.AidaAccessPreconditions.AVAILABLE,
1097
+ syncInfo: getTestSyncInfo(),
1098
+ });
1099
+
1100
+ panel.markAsRoot();
1101
+ panel.show(document.body);
1102
+
1103
+ sinon.assert.calledWith(mockView, sinon.match({
1104
+ agentType: AiAgent.AgentType.DRJONES_NETWORK_REQUEST,
1105
+ }));
1106
+ stub.restore();
1107
+ });
1108
+
1109
+ it('should update to no agent state when the Network panel is closed and no other panels are open', () => {
1110
+ const stub = getGetHostConfigStub({
1111
+ devToolsAiAssistanceNetworkAgent: {
1112
+ enabled: true,
1113
+ },
1114
+ });
1115
+ UI.Context.Context.instance().setFlavor(
1116
+ NetworkPanel.NetworkPanel.NetworkPanel, sinon.createStubInstance(NetworkPanel.NetworkPanel.NetworkPanel));
1117
+ panel = new Freestyler.FreestylerPanel(mockView, {
1118
+ aidaClient: getTestAidaClient(),
1119
+ aidaAvailability: Host.AidaClient.AidaAccessPreconditions.AVAILABLE,
1120
+ syncInfo: getTestSyncInfo(),
1121
+ });
1122
+
1123
+ panel.markAsRoot();
1124
+ panel.show(document.body);
1125
+ sinon.assert.calledWith(mockView, sinon.match({
1126
+ agentType: AiAgent.AgentType.DRJONES_NETWORK_REQUEST,
1127
+ }));
1128
+
1129
+ UI.Context.Context.instance().setFlavor(NetworkPanel.NetworkPanel.NetworkPanel, null);
1130
+ assert.deepStrictEqual(mockView.lastCall.args[0].agentType, undefined);
1131
+ stub.restore();
1132
+ });
1133
+
1134
+ it('should render no agent state when Network panel is open but devToolsAiAssistanceNetworkAgent is not enabled',
1135
+ () => {
1136
+ const stub = getGetHostConfigStub({
1137
+ devToolsAiAssistanceNetworkAgent: {
1138
+ enabled: false,
1139
+ },
1140
+ });
1141
+ UI.Context.Context.instance().setFlavor(
1142
+ NetworkPanel.NetworkPanel.NetworkPanel,
1143
+ sinon.createStubInstance(NetworkPanel.NetworkPanel.NetworkPanel));
1144
+ panel = new Freestyler.FreestylerPanel(mockView, {
1145
+ aidaClient: getTestAidaClient(),
1146
+ aidaAvailability: Host.AidaClient.AidaAccessPreconditions.AVAILABLE,
1147
+ syncInfo: getTestSyncInfo(),
1148
+ });
1149
+
1150
+ panel.markAsRoot();
1151
+ panel.show(document.body);
1152
+
1153
+ assert.deepStrictEqual(mockView.lastCall.args[0].agentType, undefined);
1154
+ stub.restore();
1155
+ });
1156
+ });
1157
+
1158
+ describe('Sources panel', () => {
1159
+ it('should select DRJONES_FILE agent when the Sources panel is open in initial render', () => {
1160
+ const stub = getGetHostConfigStub({
1161
+ devToolsAiAssistanceFileAgent: {
1162
+ enabled: true,
1163
+ },
1164
+ });
1165
+ UI.Context.Context.instance().setFlavor(
1166
+ SourcesPanel.SourcesPanel.SourcesPanel, sinon.createStubInstance(SourcesPanel.SourcesPanel.SourcesPanel));
1167
+ panel = new Freestyler.FreestylerPanel(mockView, {
1168
+ aidaClient: getTestAidaClient(),
1169
+ aidaAvailability: Host.AidaClient.AidaAccessPreconditions.AVAILABLE,
1170
+ syncInfo: getTestSyncInfo(),
1171
+ });
1172
+
1173
+ panel.markAsRoot();
1174
+ panel.show(document.body);
1175
+
1176
+ sinon.assert.calledWith(mockView, sinon.match({
1177
+ agentType: AiAgent.AgentType.DRJONES_FILE,
1178
+ }));
1179
+ stub.restore();
1180
+ });
1181
+
1182
+ it('should update to no agent state when the Sources panel is closed and no other panels are open', () => {
1183
+ const stub = getGetHostConfigStub({
1184
+ devToolsAiAssistanceFileAgent: {
1185
+ enabled: true,
1186
+ },
1187
+ });
1188
+ UI.Context.Context.instance().setFlavor(
1189
+ SourcesPanel.SourcesPanel.SourcesPanel, sinon.createStubInstance(SourcesPanel.SourcesPanel.SourcesPanel));
1190
+ panel = new Freestyler.FreestylerPanel(mockView, {
1191
+ aidaClient: getTestAidaClient(),
1192
+ aidaAvailability: Host.AidaClient.AidaAccessPreconditions.AVAILABLE,
1193
+ syncInfo: getTestSyncInfo(),
1194
+ });
1195
+
1196
+ panel.markAsRoot();
1197
+ panel.show(document.body);
1198
+ sinon.assert.calledWith(mockView, sinon.match({
1199
+ agentType: AiAgent.AgentType.DRJONES_FILE,
1200
+ }));
1201
+
1202
+ UI.Context.Context.instance().setFlavor(SourcesPanel.SourcesPanel.SourcesPanel, null);
1203
+ assert.deepStrictEqual(mockView.lastCall.args[0].agentType, undefined);
1204
+ stub.restore();
1205
+ });
1206
+
1207
+ it('should render no agent state when Sources panel is open but devToolsAiAssistanceFileAgent is not enabled',
1208
+ () => {
1209
+ const stub = getGetHostConfigStub({
1210
+ devToolsAiAssistanceFileAgent: {
1211
+ enabled: false,
1212
+ },
1213
+ });
1214
+ UI.Context.Context.instance().setFlavor(
1215
+ SourcesPanel.SourcesPanel.SourcesPanel,
1216
+ sinon.createStubInstance(SourcesPanel.SourcesPanel.SourcesPanel));
1217
+ panel = new Freestyler.FreestylerPanel(mockView, {
1218
+ aidaClient: getTestAidaClient(),
1219
+ aidaAvailability: Host.AidaClient.AidaAccessPreconditions.AVAILABLE,
1220
+ syncInfo: getTestSyncInfo(),
1221
+ });
1222
+
1223
+ panel.markAsRoot();
1224
+ panel.show(document.body);
1225
+
1226
+ assert.deepStrictEqual(mockView.lastCall.args[0].agentType, undefined);
1227
+ stub.restore();
1228
+ });
1229
+ });
1230
+
1231
+ describe('Performance panel', () => {
1232
+ it('should select DRJONES_PERFORMANCE agent when the Performance panel is open in initial render', () => {
1233
+ const stub = getGetHostConfigStub({
1234
+ devToolsAiAssistancePerformanceAgent: {
1235
+ enabled: true,
1236
+ },
1237
+ });
1238
+ UI.Context.Context.instance().setFlavor(
1239
+ TimelinePanel.TimelinePanel.TimelinePanel,
1240
+ sinon.createStubInstance(TimelinePanel.TimelinePanel.TimelinePanel));
1241
+ panel = new Freestyler.FreestylerPanel(mockView, {
1242
+ aidaClient: getTestAidaClient(),
1243
+ aidaAvailability: Host.AidaClient.AidaAccessPreconditions.AVAILABLE,
1244
+ syncInfo: getTestSyncInfo(),
1245
+ });
1246
+
1247
+ panel.markAsRoot();
1248
+ panel.show(document.body);
1249
+
1250
+ sinon.assert.calledWith(mockView, sinon.match({
1251
+ agentType: AiAgent.AgentType.DRJONES_PERFORMANCE,
1252
+ }));
1253
+ stub.restore();
1254
+ });
1255
+
1256
+ it('should update to no agent state when the Performance panel is closed and no other panels are open', () => {
1257
+ const stub = getGetHostConfigStub({
1258
+ devToolsAiAssistancePerformanceAgent: {
1259
+ enabled: true,
1260
+ },
1261
+ });
1262
+ UI.Context.Context.instance().setFlavor(
1263
+ TimelinePanel.TimelinePanel.TimelinePanel,
1264
+ sinon.createStubInstance(TimelinePanel.TimelinePanel.TimelinePanel));
1265
+ panel = new Freestyler.FreestylerPanel(mockView, {
1266
+ aidaClient: getTestAidaClient(),
1267
+ aidaAvailability: Host.AidaClient.AidaAccessPreconditions.AVAILABLE,
1268
+ syncInfo: getTestSyncInfo(),
1269
+ });
1270
+
1271
+ panel.markAsRoot();
1272
+ panel.show(document.body);
1273
+ sinon.assert.calledWith(mockView, sinon.match({
1274
+ agentType: AiAgent.AgentType.DRJONES_PERFORMANCE,
1275
+ }));
1276
+
1277
+ UI.Context.Context.instance().setFlavor(TimelinePanel.TimelinePanel.TimelinePanel, null);
1278
+ assert.deepStrictEqual(mockView.lastCall.args[0].agentType, undefined);
1279
+ stub.restore();
1280
+ });
1281
+
1282
+ it('should render no agent state when Performance panel is open but devToolsAiAssistancePerformanceAgent is not enabled',
1283
+ () => {
1284
+ const stub = getGetHostConfigStub({
1285
+ devToolsAiAssistancePerformanceAgent: {
1286
+ enabled: false,
1287
+ },
1288
+ });
1289
+ UI.Context.Context.instance().setFlavor(
1290
+ TimelinePanel.TimelinePanel.TimelinePanel,
1291
+ sinon.createStubInstance(TimelinePanel.TimelinePanel.TimelinePanel));
1292
+ panel = new Freestyler.FreestylerPanel(mockView, {
1293
+ aidaClient: getTestAidaClient(),
1294
+ aidaAvailability: Host.AidaClient.AidaAccessPreconditions.AVAILABLE,
1295
+ syncInfo: getTestSyncInfo(),
1296
+ });
1297
+
1298
+ panel.markAsRoot();
1299
+ panel.show(document.body);
1300
+
1301
+ assert.deepStrictEqual(mockView.lastCall.args[0].agentType, undefined);
1302
+ stub.restore();
1303
+ });
1304
+ });
734
1305
  });
735
1306
  });