chrome-devtools-frontend 1.0.1506453 → 1.0.1510180

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 (1613) hide show
  1. package/config/owner/COMMON_OWNERS +1 -0
  2. package/eslint.config.mjs +39 -5
  3. package/front_end/Images/src/gdp-logo-standalone.svg +9 -0
  4. package/front_end/core/host/AidaClient.ts +26 -0
  5. package/front_end/core/host/GdpClient.ts +151 -0
  6. package/front_end/core/host/InspectorFrontendHost.ts +7 -0
  7. package/front_end/core/host/InspectorFrontendHostAPI.ts +29 -1
  8. package/front_end/core/host/UserMetrics.ts +0 -25
  9. package/front_end/core/host/host.ts +2 -0
  10. package/front_end/core/root/Runtime.ts +15 -1
  11. package/front_end/core/sdk/CSSMatchedStyles.ts +183 -48
  12. package/front_end/core/sdk/CSSPropertyParser.ts +7 -7
  13. package/front_end/core/sdk/CSSPropertyParserMatchers.ts +175 -37
  14. package/front_end/core/sdk/CSSStyleSheetHeader.ts +5 -0
  15. package/front_end/core/sdk/DOMModel.ts +58 -0
  16. package/front_end/core/sdk/FrameAssociated.ts +4 -1
  17. package/front_end/core/sdk/Script.ts +5 -1
  18. package/front_end/core/sdk/SourceMap.ts +10 -2
  19. package/front_end/core/sdk/SourceMapCache.ts +54 -0
  20. package/front_end/core/sdk/SourceMapManager.ts +20 -7
  21. package/front_end/core/sdk/sdk.ts +2 -0
  22. package/front_end/devtools_compatibility.js +0 -1
  23. package/front_end/entrypoints/main/GlobalAiButton.ts +71 -1
  24. package/front_end/entrypoints/main/MainImpl.ts +6 -27
  25. package/front_end/entrypoints/main/globalAiButton.css +1 -1
  26. package/front_end/entrypoints/main/main-meta.ts +15 -0
  27. package/front_end/generated/InspectorBackendCommands.js +3 -2
  28. package/front_end/generated/SupportedCSSProperties.js +23 -7
  29. package/front_end/generated/protocol-mapping.d.ts +8 -1
  30. package/front_end/generated/protocol-proxy-api.d.ts +6 -1
  31. package/front_end/generated/protocol.ts +17 -4
  32. package/front_end/models/ai_assistance/ConversationHandler.ts +34 -54
  33. package/front_end/models/ai_assistance/ExtensionScope.ts +3 -12
  34. package/front_end/models/ai_assistance/README.md +1 -1
  35. package/front_end/models/ai_assistance/agents/AiAgent.ts +1 -3
  36. package/front_end/models/ai_assistance/agents/FileAgent.ts +0 -6
  37. package/front_end/models/ai_assistance/agents/NetworkAgent.ts +16 -15
  38. package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +32 -16
  39. package/front_end/models/ai_assistance/agents/StylingAgent.ts +199 -23
  40. package/front_end/models/ai_assistance/ai_assistance.ts +2 -0
  41. package/front_end/models/ai_assistance/data_formatters/FileFormatter.ts +4 -1
  42. package/front_end/models/ai_assistance/data_formatters/NetworkRequestFormatter.ts +8 -5
  43. package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.snapshot.txt +248 -83
  44. package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.ts +303 -94
  45. package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.snapshot.txt +442 -93
  46. package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.ts +35 -17
  47. package/front_end/models/ai_assistance/data_formatters/Types.ts +9 -0
  48. package/front_end/models/ai_code_completion/AiCodeCompletion.ts +114 -2
  49. package/front_end/models/autofill_manager/AutofillManager.ts +0 -11
  50. package/front_end/models/bindings/DebuggerLanguagePlugins.ts +64 -6
  51. package/front_end/models/bindings/ResourceScriptMapping.ts +6 -0
  52. package/front_end/models/emulation/DeviceModeModel.ts +13 -14
  53. package/front_end/models/extensions/ExtensionPanel.ts +6 -6
  54. package/front_end/models/extensions/ExtensionServer.ts +2 -0
  55. package/front_end/models/extensions/ExtensionView.ts +4 -0
  56. package/front_end/{ui/legacy/Geometry.ts → models/geometry/GeometryImpl.ts} +4 -4
  57. package/front_end/models/geometry/geometry.ts +5 -0
  58. package/front_end/models/javascript_metadata/NativeFunctions.js +4 -4
  59. package/front_end/models/network_time_calculator/Calculator.ts +14 -0
  60. package/front_end/{panels/network → models/network_time_calculator}/NetworkTimeCalculator.ts +4 -4
  61. package/front_end/models/network_time_calculator/network_time_calculator.ts +6 -0
  62. package/front_end/models/persistence/EditFileSystemView.ts +4 -0
  63. package/front_end/models/persistence/NetworkPersistenceManager.ts +2 -0
  64. package/front_end/models/persistence/PersistenceActions.ts +2 -0
  65. package/front_end/models/persistence/PersistenceUtils.ts +2 -0
  66. package/front_end/models/persistence/WorkspaceSettingsTab.ts +6 -0
  67. package/front_end/models/persistence/persistence-meta.ts +2 -0
  68. package/front_end/models/stack_trace/StackTrace.ts +18 -0
  69. package/front_end/models/stack_trace/StackTraceImpl.ts +4 -1
  70. package/front_end/models/stack_trace/StackTraceModel.ts +4 -3
  71. package/front_end/models/trace/ModelImpl.ts +2 -1
  72. package/front_end/models/trace/Processor.ts +3 -30
  73. package/front_end/models/trace/handlers/AnimationFramesHandler.ts +10 -11
  74. package/front_end/models/trace/handlers/AnimationHandler.ts +4 -4
  75. package/front_end/models/trace/handlers/AsyncJSCallsHandler.ts +8 -9
  76. package/front_end/models/trace/handlers/AuctionWorkletsHandler.ts +10 -10
  77. package/front_end/models/trace/handlers/DOMStatsHandler.ts +2 -2
  78. package/front_end/models/trace/handlers/ExtensionTraceDataHandler.ts +59 -51
  79. package/front_end/models/trace/handlers/FlowsHandler.ts +10 -10
  80. package/front_end/models/trace/handlers/FramesHandler.ts +2 -2
  81. package/front_end/models/trace/handlers/GPUHandler.ts +2 -2
  82. package/front_end/models/trace/handlers/ImagePaintingHandler.ts +12 -12
  83. package/front_end/models/trace/handlers/InitiatorsHandler.ts +18 -20
  84. package/front_end/models/trace/handlers/InvalidationsHandler.ts +6 -6
  85. package/front_end/models/trace/handlers/LargestImagePaintHandler.ts +4 -3
  86. package/front_end/models/trace/handlers/LargestTextPaintHandler.ts +2 -2
  87. package/front_end/models/trace/handlers/LayerTreeHandler.ts +10 -10
  88. package/front_end/models/trace/handlers/LayoutShiftsHandler.ts +28 -28
  89. package/front_end/models/trace/handlers/MemoryHandler.ts +2 -2
  90. package/front_end/models/trace/handlers/MetaHandler.ts +18 -18
  91. package/front_end/models/trace/handlers/NetworkRequestsHandler.ts +25 -23
  92. package/front_end/models/trace/handlers/PageFramesHandler.ts +2 -2
  93. package/front_end/models/trace/handlers/PageLoadMetricsHandler.ts +5 -5
  94. package/front_end/models/trace/handlers/RendererHandler.ts +18 -18
  95. package/front_end/models/trace/handlers/SamplesHandler.ts +6 -9
  96. package/front_end/models/trace/handlers/ScreenshotsHandler.ts +8 -8
  97. package/front_end/models/trace/handlers/ScriptsHandler.ts +2 -2
  98. package/front_end/models/trace/handlers/SelectorStatsHandler.ts +4 -4
  99. package/front_end/models/trace/handlers/UserInteractionsHandler.ts +14 -14
  100. package/front_end/models/trace/handlers/UserTimingsHandler.ts +10 -10
  101. package/front_end/models/trace/handlers/WarningsHandler.ts +12 -12
  102. package/front_end/models/trace/handlers/WorkersHandler.ts +6 -6
  103. package/front_end/models/trace/helpers/Extensions.ts +10 -10
  104. package/front_end/models/trace/helpers/Trace.ts +3 -3
  105. package/front_end/models/trace/insights/ForcedReflow.ts +4 -0
  106. package/front_end/models/trace/insights/NetworkDependencyTree.ts +4 -0
  107. package/front_end/models/trace/insights/ThirdParties.ts +4 -0
  108. package/front_end/models/trace/types/Extensions.ts +27 -17
  109. package/front_end/models/trace/types/Overlays.ts +1 -3
  110. package/front_end/models/trace/types/TraceEvents.ts +2 -5
  111. package/front_end/models/workspace/FileManager.ts +1 -0
  112. package/front_end/panels/accessibility/ARIAAttributesView.ts +2 -60
  113. package/front_end/panels/ai_assistance/AiAssistancePanel.ts +22 -4
  114. package/front_end/panels/ai_assistance/PatchWidget.ts +1 -1
  115. package/front_end/panels/ai_assistance/SelectWorkspaceDialog.ts +2 -1
  116. package/front_end/panels/ai_assistance/ai_assistance-meta.ts +9 -9
  117. package/front_end/panels/ai_assistance/components/ChatView.ts +44 -2
  118. package/front_end/panels/animation/AnimationUI.ts +2 -1
  119. package/front_end/panels/application/KeyValueStorageItemsView.ts +2 -1
  120. package/front_end/panels/application/components/BackForwardCacheStrings.ts +9 -9
  121. package/front_end/panels/autofill/AutofillView.ts +15 -10
  122. package/front_end/panels/browser_debugger/CSPViolationBreakpointsSidebarPane.ts +5 -6
  123. package/front_end/panels/browser_debugger/CategorizedBreakpointsSidebarPane.ts +174 -272
  124. package/front_end/panels/browser_debugger/EventListenerBreakpointsSidebarPane.ts +9 -6
  125. package/front_end/panels/browser_debugger/categorizedBreakpointsSidebarPane.css +1 -1
  126. package/front_end/panels/common/BadgeNotification.ts +121 -0
  127. package/front_end/panels/common/FreDialog.ts +4 -3
  128. package/front_end/panels/common/badgeNotification.css +74 -0
  129. package/front_end/panels/common/common.ts +3 -1
  130. package/front_end/panels/console/ConsolePrompt.ts +2 -3
  131. package/front_end/panels/console/ConsoleView.ts +8 -8
  132. package/front_end/panels/console/ConsoleViewMessage.ts +14 -13
  133. package/front_end/panels/css_overview/CSSOverviewCompletedView.ts +2 -1
  134. package/front_end/panels/elements/CSSRuleValidator.ts +0 -57
  135. package/front_end/panels/elements/ElementsTreeElement.ts +12 -4
  136. package/front_end/panels/elements/ElementsTreeOutlineRenderer.ts +8 -5
  137. package/front_end/panels/elements/PropertyRenderer.ts +1 -1
  138. package/front_end/panels/elements/StylePropertyTreeElement.ts +110 -9
  139. package/front_end/panels/emulation/DeviceModeView.ts +6 -5
  140. package/front_end/panels/layer_viewer/Layers3DView.ts +9 -9
  141. package/front_end/panels/layers/LayerTreeModel.ts +5 -5
  142. package/front_end/panels/lighthouse/LighthouseStatusView.ts +2 -1
  143. package/front_end/panels/lighthouse/LighthouseTimespanView.ts +2 -1
  144. package/front_end/panels/media/MainView.ts +48 -18
  145. package/front_end/panels/media/MediaModel.ts +4 -4
  146. package/front_end/panels/media/PlayerListView.ts +7 -0
  147. package/front_end/panels/mobile_throttling/ThrottlingManager.ts +2 -2
  148. package/front_end/panels/network/NetworkDataGridNode.ts +4 -5
  149. package/front_end/panels/network/NetworkItemView.ts +2 -2
  150. package/front_end/panels/network/NetworkLogView.ts +10 -15
  151. package/front_end/panels/network/NetworkLogViewColumns.ts +6 -8
  152. package/front_end/panels/network/NetworkOverview.ts +6 -4
  153. package/front_end/panels/network/NetworkPanel.ts +5 -5
  154. package/front_end/panels/network/NetworkWaterfallColumn.ts +5 -5
  155. package/front_end/panels/network/RequestTimingView.ts +7 -6
  156. package/front_end/panels/network/network.ts +1 -3
  157. package/front_end/panels/profiler/HeapTimelineOverview.ts +2 -1
  158. package/front_end/panels/profiler/ProfileFlameChartDataProvider.ts +2 -1
  159. package/front_end/panels/sensors/SensorsView.ts +10 -9
  160. package/front_end/panels/settings/AISettingsTab.ts +2 -2
  161. package/front_end/panels/settings/SettingsScreen.ts +19 -9
  162. package/front_end/panels/settings/components/SyncSection.ts +136 -3
  163. package/front_end/panels/settings/components/syncSection.css +54 -0
  164. package/front_end/panels/sources/AiCodeCompletionPlugin.ts +26 -9
  165. package/front_end/panels/sources/CSSPlugin.ts +5 -4
  166. package/front_end/panels/timeline/CountersGraph.ts +1 -1
  167. package/front_end/panels/timeline/ExtensionTrackAppender.ts +2 -2
  168. package/front_end/panels/timeline/LayoutShiftsTrackAppender.ts +3 -3
  169. package/front_end/panels/timeline/TimelineDetailsView.ts +41 -26
  170. package/front_end/panels/timeline/TimelinePaintProfilerView.ts +2 -1
  171. package/front_end/panels/timeline/TimelinePanel.ts +58 -59
  172. package/front_end/panels/timeline/TimelineUIUtils.ts +89 -20
  173. package/front_end/panels/timeline/TimingsTrackAppender.ts +10 -7
  174. package/front_end/panels/timeline/components/insights/CLSCulprits.ts +1 -11
  175. package/front_end/panels/timeline/components/insights/ForcedReflow.ts +4 -0
  176. package/front_end/panels/timeline/components/insights/LCPDiscovery.ts +2 -3
  177. package/front_end/panels/timeline/components/insights/NetworkDependencyTree.ts +4 -0
  178. package/front_end/panels/timeline/components/insights/ThirdParties.ts +4 -0
  179. package/front_end/panels/timeline/extensions/ExtensionUI.ts +1 -1
  180. package/front_end/panels/timeline/overlays/components/EntryLabelOverlay.ts +1 -1
  181. package/front_end/panels/timeline/overlays/components/TimespanBreakdownOverlay.ts +3 -12
  182. package/front_end/panels/timeline/utils/AIContext.ts +14 -1
  183. package/front_end/panels/whats_new/ReleaseNoteText.ts +11 -11
  184. package/front_end/panels/whats_new/resources/WNDT.md +6 -6
  185. package/front_end/services/tracing/tracing.ts +0 -2
  186. package/front_end/tsconfig.json +1 -0
  187. package/front_end/ui/components/buttons/button.css +4 -0
  188. package/front_end/ui/components/highlighting/HighlightManager.ts +19 -9
  189. package/front_end/ui/legacy/ARIAUtils.ts +1 -1
  190. package/front_end/ui/legacy/DockController.ts +1 -1
  191. package/front_end/ui/legacy/GlassPane.ts +2 -1
  192. package/front_end/ui/legacy/InspectorView.ts +41 -14
  193. package/front_end/ui/legacy/ResizerWidget.ts +45 -50
  194. package/front_end/ui/legacy/SoftDropDown.ts +2 -2
  195. package/front_end/ui/legacy/SplitWidget.ts +341 -357
  196. package/front_end/ui/legacy/SuggestBox.ts +2 -2
  197. package/front_end/ui/legacy/TabbedPane.ts +5 -5
  198. package/front_end/ui/legacy/Treeoutline.ts +227 -32
  199. package/front_end/ui/legacy/UIUtils.ts +72 -17
  200. package/front_end/ui/legacy/Widget.ts +15 -14
  201. package/front_end/ui/legacy/components/data_grid/DataGridElement.ts +6 -14
  202. package/front_end/ui/legacy/components/inline_editor/AnimationTimingModel.ts +3 -3
  203. package/front_end/ui/legacy/components/inline_editor/AnimationTimingUI.ts +15 -14
  204. package/front_end/ui/legacy/components/inline_editor/BezierUI.ts +6 -5
  205. package/front_end/ui/legacy/components/inline_editor/CSSAngleUtils.ts +7 -6
  206. package/front_end/ui/legacy/components/inline_editor/CSSShadowEditor.ts +13 -12
  207. package/front_end/ui/legacy/components/object_ui/ObjectPopoverHelper.ts +2 -1
  208. package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +10 -11
  209. package/front_end/ui/legacy/components/perf_ui/FlameChart.ts +3 -2
  210. package/front_end/ui/legacy/components/perf_ui/OverviewGrid.ts +7 -5
  211. package/front_end/ui/legacy/components/perf_ui/TimelineGrid.ts +3 -13
  212. package/front_end/ui/legacy/components/perf_ui/TimelineOverviewCalculator.ts +2 -3
  213. package/front_end/ui/legacy/components/quick_open/FilteredListWidget.ts +2 -1
  214. package/front_end/ui/legacy/components/source_frame/XMLView.ts +268 -295
  215. package/front_end/ui/legacy/components/source_frame/xmlTree.css +10 -8
  216. package/front_end/ui/legacy/components/source_frame/xmlView.css +3 -1
  217. package/front_end/ui/legacy/inspectorCommon.css +3 -2
  218. package/front_end/ui/legacy/legacy.ts +0 -2
  219. package/front_end/ui/visual_logging/KnownContextValues.ts +8 -4
  220. package/package.json +2 -2
  221. package/.gemini/commands/migrate-e2e-non-hosted.toml +0 -43
  222. package/.gemini/commands/review.toml +0 -85
  223. package/.github/workflows/auto-close-prs.yml +0 -30
  224. package/.vscode/devtools-workspace-launch.json +0 -43
  225. package/.vscode/devtools-workspace-settings.json +0 -12
  226. package/.vscode/devtools-workspace-tasks.json +0 -66
  227. package/.vscode/extensions.json +0 -3
  228. package/codereview.settings +0 -4
  229. package/config/gni/devtools_grd_files.gni +0 -2646
  230. package/config/gni/devtools_image_files.gni +0 -309
  231. package/config/gni/i18n.gni +0 -115
  232. package/extensions/cxx_debugging/CMakeLists.txt +0 -162
  233. package/extensions/cxx_debugging/README.md +0 -81
  234. package/extensions/cxx_debugging/e2e/MochaRootHooks.ts +0 -110
  235. package/extensions/cxx_debugging/e2e/OptionsPageTests.ts +0 -36
  236. package/extensions/cxx_debugging/e2e/StandaloneTestDriver.ts +0 -20
  237. package/extensions/cxx_debugging/e2e/TestDriver.ts +0 -311
  238. package/extensions/cxx_debugging/e2e/cxx-debugging-extension-helpers.ts +0 -62
  239. package/extensions/cxx_debugging/e2e/resources/huge-source-file.cc +0 -29
  240. package/extensions/cxx_debugging/e2e/resources/pointers.cc +0 -40
  241. package/extensions/cxx_debugging/e2e/resources/scope-view-non-primitives.c +0 -30
  242. package/extensions/cxx_debugging/e2e/resources/scope-view-non-primitives.cpp +0 -49
  243. package/extensions/cxx_debugging/e2e/resources/scope-view-primitives.c +0 -19
  244. package/extensions/cxx_debugging/e2e/resources/stepping-with-state.c +0 -31
  245. package/extensions/cxx_debugging/e2e/resources/test_wasm_simd.c +0 -13
  246. package/extensions/cxx_debugging/e2e/resources/vector.cc +0 -14
  247. package/extensions/cxx_debugging/e2e/resources/wchar.cc +0 -22
  248. package/extensions/cxx_debugging/e2e/runner.py +0 -542
  249. package/extensions/cxx_debugging/e2e/runner.py.vpython +0 -5
  250. package/extensions/cxx_debugging/e2e/runner.py.vpython3 +0 -5
  251. package/extensions/cxx_debugging/e2e/standalone/MemoryInspector_test.ts +0 -59
  252. package/extensions/cxx_debugging/e2e/tests/cpp_eval.yaml +0 -37
  253. package/extensions/cxx_debugging/e2e/tests/pointer.yaml +0 -42
  254. package/extensions/cxx_debugging/e2e/tests/scope_view_non_primitives.yaml +0 -35
  255. package/extensions/cxx_debugging/e2e/tests/scope_view_non_primitives_cpp.yaml +0 -44
  256. package/extensions/cxx_debugging/e2e/tests/scope_view_primitives.yaml +0 -31
  257. package/extensions/cxx_debugging/e2e/tests/stepping_with_state.yaml +0 -64
  258. package/extensions/cxx_debugging/e2e/tests/string_view.yaml +0 -32
  259. package/extensions/cxx_debugging/e2e/tests/test_big_dwo.yaml +0 -21
  260. package/extensions/cxx_debugging/e2e/tests/test_linear_memory_inspector.yaml +0 -11
  261. package/extensions/cxx_debugging/e2e/tests/test_loop.yaml +0 -34
  262. package/extensions/cxx_debugging/e2e/tests/test_wasm_simd.yaml +0 -42
  263. package/extensions/cxx_debugging/e2e/tests/vector.yaml +0 -26
  264. package/extensions/cxx_debugging/e2e/tests/wchar.yaml +0 -52
  265. package/extensions/cxx_debugging/e2e/tsconfig.json +0 -24
  266. package/extensions/cxx_debugging/lib/ApiContext.cc +0 -627
  267. package/extensions/cxx_debugging/lib/ApiContext.h +0 -119
  268. package/extensions/cxx_debugging/lib/CMakeLists.txt +0 -53
  269. package/extensions/cxx_debugging/lib/Expressions.cc +0 -303
  270. package/extensions/cxx_debugging/lib/Expressions.h +0 -53
  271. package/extensions/cxx_debugging/lib/Variables.cc +0 -101
  272. package/extensions/cxx_debugging/lib/Variables.h +0 -65
  273. package/extensions/cxx_debugging/lib/WasmModule.cc +0 -573
  274. package/extensions/cxx_debugging/lib/WasmModule.h +0 -126
  275. package/extensions/cxx_debugging/lib/WasmVendorPlugins.cc +0 -172
  276. package/extensions/cxx_debugging/lib/WasmVendorPlugins.h +0 -329
  277. package/extensions/cxx_debugging/lib/api.h +0 -593
  278. package/extensions/cxx_debugging/lib/api.h.in +0 -86
  279. package/extensions/cxx_debugging/src/CMakeLists.txt +0 -158
  280. package/extensions/cxx_debugging/src/CreditsItem.ts +0 -126
  281. package/extensions/cxx_debugging/src/CustomFormatters.ts +0 -689
  282. package/extensions/cxx_debugging/src/DWARFSymbols.ts +0 -613
  283. package/extensions/cxx_debugging/src/DevToolsPlugin.html +0 -7
  284. package/extensions/cxx_debugging/src/DevToolsPluginForTests.html +0 -6
  285. package/extensions/cxx_debugging/src/DevToolsPluginHost.ts +0 -145
  286. package/extensions/cxx_debugging/src/DevToolsPluginWorker.ts +0 -120
  287. package/extensions/cxx_debugging/src/DevToolsPluginWorkerMain.ts +0 -9
  288. package/extensions/cxx_debugging/src/ExtensionOptions.html +0 -24
  289. package/extensions/cxx_debugging/src/ExtensionOptions.ts +0 -705
  290. package/extensions/cxx_debugging/src/Formatters.ts +0 -282
  291. package/extensions/cxx_debugging/src/GlobMatch.ts +0 -51
  292. package/extensions/cxx_debugging/src/MEMFSResourceLoader.ts +0 -102
  293. package/extensions/cxx_debugging/src/ModuleConfiguration.ts +0 -117
  294. package/extensions/cxx_debugging/src/ModuleConfigurationList.ts +0 -239
  295. package/extensions/cxx_debugging/src/SymbolsBackend.cc +0 -262
  296. package/extensions/cxx_debugging/src/SymbolsBackend.cc.in +0 -139
  297. package/extensions/cxx_debugging/src/SymbolsBackend.d.ts +0 -179
  298. package/extensions/cxx_debugging/src/SymbolsBackend.d.ts.in +0 -108
  299. package/extensions/cxx_debugging/src/TestDriver.js +0 -21
  300. package/extensions/cxx_debugging/src/WasmTypes.ts +0 -119
  301. package/extensions/cxx_debugging/src/WorkerRPC.ts +0 -158
  302. package/extensions/cxx_debugging/src/index.html +0 -69
  303. package/extensions/cxx_debugging/src/manifest.json.in +0 -22
  304. package/extensions/cxx_debugging/src/rollup.config.in.js +0 -33
  305. package/extensions/cxx_debugging/tests/CMakeLists.txt +0 -146
  306. package/extensions/cxx_debugging/tests/CreditsItem_test.ts +0 -50
  307. package/extensions/cxx_debugging/tests/CustomFormatters_test.ts +0 -307
  308. package/extensions/cxx_debugging/tests/DevToolsPluginTestWorker.ts +0 -43
  309. package/extensions/cxx_debugging/tests/DevToolsPlugin_test.ts +0 -345
  310. package/extensions/cxx_debugging/tests/Externref_test.ts +0 -63
  311. package/extensions/cxx_debugging/tests/Formatters_test.ts +0 -284
  312. package/extensions/cxx_debugging/tests/GlobMatch_test.ts +0 -58
  313. package/extensions/cxx_debugging/tests/Interpreter_test.ts +0 -219
  314. package/extensions/cxx_debugging/tests/LLDBEvalExtensions.h +0 -154
  315. package/extensions/cxx_debugging/tests/LLDBEvalTests.d.ts +0 -24
  316. package/extensions/cxx_debugging/tests/ModuleConfiguration_test.ts +0 -136
  317. package/extensions/cxx_debugging/tests/RealBackend.ts +0 -482
  318. package/extensions/cxx_debugging/tests/SymbolsBackendTests.d.ts +0 -12
  319. package/extensions/cxx_debugging/tests/SymbolsBackend_test.ts +0 -39
  320. package/extensions/cxx_debugging/tests/TestUtils.ts +0 -250
  321. package/extensions/cxx_debugging/tests/WasmModule_test.cc +0 -332
  322. package/extensions/cxx_debugging/tests/build-artifacts.js.in +0 -10
  323. package/extensions/cxx_debugging/tests/inputs/CMakeLists.txt +0 -141
  324. package/extensions/cxx_debugging/tests/inputs/addr_index.s +0 -97
  325. package/extensions/cxx_debugging/tests/inputs/addresses.cc +0 -25
  326. package/extensions/cxx_debugging/tests/inputs/classstatic.s +0 -119
  327. package/extensions/cxx_debugging/tests/inputs/dw_opcodes.def +0 -66
  328. package/extensions/cxx_debugging/tests/inputs/embedded.s +0 -124
  329. package/extensions/cxx_debugging/tests/inputs/enums.s +0 -376
  330. package/extensions/cxx_debugging/tests/inputs/externref.js +0 -22
  331. package/extensions/cxx_debugging/tests/inputs/externref.s +0 -207
  332. package/extensions/cxx_debugging/tests/inputs/globals.s +0 -443
  333. package/extensions/cxx_debugging/tests/inputs/hello-split-missing-dwo.s +0 -92
  334. package/extensions/cxx_debugging/tests/inputs/hello-split.s +0 -134
  335. package/extensions/cxx_debugging/tests/inputs/hello.s +0 -70
  336. package/extensions/cxx_debugging/tests/inputs/helper.s +0 -130
  337. package/extensions/cxx_debugging/tests/inputs/inline.s +0 -196
  338. package/extensions/cxx_debugging/tests/inputs/namespaces.s +0 -207
  339. package/extensions/cxx_debugging/tests/inputs/page.html +0 -6
  340. package/extensions/cxx_debugging/tests/inputs/page.js +0 -35
  341. package/extensions/cxx_debugging/tests/inputs/shadowing.s +0 -121
  342. package/extensions/cxx_debugging/tests/inputs/split-dwarf.s +0 -126
  343. package/extensions/cxx_debugging/tests/inputs/string_view.cc +0 -40
  344. package/extensions/cxx_debugging/tests/inputs/windows_paths.s +0 -70
  345. package/extensions/cxx_debugging/tests/karma.conf.in.js +0 -133
  346. package/extensions/cxx_debugging/tests/karma_preload.html +0 -12
  347. package/extensions/cxx_debugging/third_party/.clang-format +0 -1
  348. package/extensions/cxx_debugging/third_party/lit-html/CHANGELOG.md +0 -247
  349. package/extensions/cxx_debugging/third_party/lit-html/LICENSE +0 -28
  350. package/extensions/cxx_debugging/third_party/lit-html/README.chromium +0 -13
  351. package/extensions/cxx_debugging/third_party/lit-html/README.md +0 -47
  352. package/extensions/cxx_debugging/third_party/lit-html/directives/async-append.d.ts +0 -33
  353. package/extensions/cxx_debugging/third_party/lit-html/directives/async-append.d.ts.map +0 -1
  354. package/extensions/cxx_debugging/third_party/lit-html/directives/async-append.js +0 -108
  355. package/extensions/cxx_debugging/third_party/lit-html/directives/async-append.js.map +0 -1
  356. package/extensions/cxx_debugging/third_party/lit-html/directives/async-replace.d.ts +0 -34
  357. package/extensions/cxx_debugging/third_party/lit-html/directives/async-replace.d.ts.map +0 -1
  358. package/extensions/cxx_debugging/third_party/lit-html/directives/async-replace.js +0 -91
  359. package/extensions/cxx_debugging/third_party/lit-html/directives/async-replace.js.map +0 -1
  360. package/extensions/cxx_debugging/third_party/lit-html/directives/cache.d.ts +0 -30
  361. package/extensions/cxx_debugging/third_party/lit-html/directives/cache.d.ts.map +0 -1
  362. package/extensions/cxx_debugging/third_party/lit-html/directives/cache.js +0 -77
  363. package/extensions/cxx_debugging/third_party/lit-html/directives/cache.js.map +0 -1
  364. package/extensions/cxx_debugging/third_party/lit-html/directives/class-map.d.ts +0 -28
  365. package/extensions/cxx_debugging/third_party/lit-html/directives/class-map.d.ts.map +0 -1
  366. package/extensions/cxx_debugging/third_party/lit-html/directives/class-map.js +0 -101
  367. package/extensions/cxx_debugging/third_party/lit-html/directives/class-map.js.map +0 -1
  368. package/extensions/cxx_debugging/third_party/lit-html/directives/guard.d.ts +0 -49
  369. package/extensions/cxx_debugging/third_party/lit-html/directives/guard.d.ts.map +0 -1
  370. package/extensions/cxx_debugging/third_party/lit-html/directives/guard.js +0 -69
  371. package/extensions/cxx_debugging/third_party/lit-html/directives/guard.js.map +0 -1
  372. package/extensions/cxx_debugging/third_party/lit-html/directives/if-defined.d.ts +0 -22
  373. package/extensions/cxx_debugging/third_party/lit-html/directives/if-defined.d.ts.map +0 -1
  374. package/extensions/cxx_debugging/third_party/lit-html/directives/if-defined.js +0 -37
  375. package/extensions/cxx_debugging/third_party/lit-html/directives/if-defined.js.map +0 -1
  376. package/extensions/cxx_debugging/third_party/lit-html/directives/live.d.ts +0 -38
  377. package/extensions/cxx_debugging/third_party/lit-html/directives/live.d.ts.map +0 -1
  378. package/extensions/cxx_debugging/third_party/lit-html/directives/live.js +0 -73
  379. package/extensions/cxx_debugging/third_party/lit-html/directives/live.js.map +0 -1
  380. package/extensions/cxx_debugging/third_party/lit-html/directives/repeat.d.ts +0 -37
  381. package/extensions/cxx_debugging/third_party/lit-html/directives/repeat.d.ts.map +0 -1
  382. package/extensions/cxx_debugging/third_party/lit-html/directives/repeat.js +0 -415
  383. package/extensions/cxx_debugging/third_party/lit-html/directives/repeat.js.map +0 -1
  384. package/extensions/cxx_debugging/third_party/lit-html/directives/style-map.d.ts +0 -36
  385. package/extensions/cxx_debugging/third_party/lit-html/directives/style-map.d.ts.map +0 -1
  386. package/extensions/cxx_debugging/third_party/lit-html/directives/style-map.js +0 -78
  387. package/extensions/cxx_debugging/third_party/lit-html/directives/style-map.js.map +0 -1
  388. package/extensions/cxx_debugging/third_party/lit-html/directives/template-content.d.ts +0 -23
  389. package/extensions/cxx_debugging/third_party/lit-html/directives/template-content.d.ts.map +0 -1
  390. package/extensions/cxx_debugging/third_party/lit-html/directives/template-content.js +0 -41
  391. package/extensions/cxx_debugging/third_party/lit-html/directives/template-content.js.map +0 -1
  392. package/extensions/cxx_debugging/third_party/lit-html/directives/unsafe-html.d.ts +0 -23
  393. package/extensions/cxx_debugging/third_party/lit-html/directives/unsafe-html.d.ts.map +0 -1
  394. package/extensions/cxx_debugging/third_party/lit-html/directives/unsafe-html.js +0 -44
  395. package/extensions/cxx_debugging/third_party/lit-html/directives/unsafe-html.js.map +0 -1
  396. package/extensions/cxx_debugging/third_party/lit-html/directives/unsafe-svg.d.ts +0 -23
  397. package/extensions/cxx_debugging/third_party/lit-html/directives/unsafe-svg.d.ts.map +0 -1
  398. package/extensions/cxx_debugging/third_party/lit-html/directives/unsafe-svg.js +0 -61
  399. package/extensions/cxx_debugging/third_party/lit-html/directives/unsafe-svg.js.map +0 -1
  400. package/extensions/cxx_debugging/third_party/lit-html/directives/until.d.ts +0 -35
  401. package/extensions/cxx_debugging/third_party/lit-html/directives/until.d.ts.map +0 -1
  402. package/extensions/cxx_debugging/third_party/lit-html/directives/until.js +0 -86
  403. package/extensions/cxx_debugging/third_party/lit-html/directives/until.js.map +0 -1
  404. package/extensions/cxx_debugging/third_party/lit-html/lib/default-template-processor.d.ts +0 -39
  405. package/extensions/cxx_debugging/third_party/lit-html/lib/default-template-processor.d.ts.map +0 -1
  406. package/extensions/cxx_debugging/third_party/lit-html/lib/default-template-processor.js +0 -52
  407. package/extensions/cxx_debugging/third_party/lit-html/lib/default-template-processor.js.map +0 -1
  408. package/extensions/cxx_debugging/third_party/lit-html/lib/directive.d.ts +0 -59
  409. package/extensions/cxx_debugging/third_party/lit-html/lib/directive.d.ts.map +0 -1
  410. package/extensions/cxx_debugging/third_party/lit-html/lib/directive.js +0 -63
  411. package/extensions/cxx_debugging/third_party/lit-html/lib/directive.js.map +0 -1
  412. package/extensions/cxx_debugging/third_party/lit-html/lib/dom.d.ts +0 -29
  413. package/extensions/cxx_debugging/third_party/lit-html/lib/dom.d.ts.map +0 -1
  414. package/extensions/cxx_debugging/third_party/lit-html/lib/dom.js +0 -44
  415. package/extensions/cxx_debugging/third_party/lit-html/lib/dom.js.map +0 -1
  416. package/extensions/cxx_debugging/third_party/lit-html/lib/modify-template.d.ts +0 -38
  417. package/extensions/cxx_debugging/third_party/lit-html/lib/modify-template.d.ts.map +0 -1
  418. package/extensions/cxx_debugging/third_party/lit-html/lib/modify-template.js +0 -125
  419. package/extensions/cxx_debugging/third_party/lit-html/lib/modify-template.js.map +0 -1
  420. package/extensions/cxx_debugging/third_party/lit-html/lib/part.d.ts +0 -46
  421. package/extensions/cxx_debugging/third_party/lit-html/lib/part.d.ts.map +0 -1
  422. package/extensions/cxx_debugging/third_party/lit-html/lib/part.js +0 -23
  423. package/extensions/cxx_debugging/third_party/lit-html/lib/part.js.map +0 -1
  424. package/extensions/cxx_debugging/third_party/lit-html/lib/parts.d.ts +0 -148
  425. package/extensions/cxx_debugging/third_party/lit-html/lib/parts.d.ts.map +0 -1
  426. package/extensions/cxx_debugging/third_party/lit-html/lib/parts.js +0 -476
  427. package/extensions/cxx_debugging/third_party/lit-html/lib/parts.js.map +0 -1
  428. package/extensions/cxx_debugging/third_party/lit-html/lib/render-options.d.ts +0 -19
  429. package/extensions/cxx_debugging/third_party/lit-html/lib/render-options.d.ts.map +0 -1
  430. package/extensions/cxx_debugging/third_party/lit-html/lib/render-options.js +0 -14
  431. package/extensions/cxx_debugging/third_party/lit-html/lib/render-options.js.map +0 -1
  432. package/extensions/cxx_debugging/third_party/lit-html/lib/render.d.ts +0 -33
  433. package/extensions/cxx_debugging/third_party/lit-html/lib/render.d.ts.map +0 -1
  434. package/extensions/cxx_debugging/third_party/lit-html/lib/render.js +0 -43
  435. package/extensions/cxx_debugging/third_party/lit-html/lib/render.js.map +0 -1
  436. package/extensions/cxx_debugging/third_party/lit-html/lib/shady-render.d.ts +0 -83
  437. package/extensions/cxx_debugging/third_party/lit-html/lib/shady-render.d.ts.map +0 -1
  438. package/extensions/cxx_debugging/third_party/lit-html/lib/shady-render.js +0 -286
  439. package/extensions/cxx_debugging/third_party/lit-html/lib/shady-render.js.map +0 -1
  440. package/extensions/cxx_debugging/third_party/lit-html/lib/template-factory.d.ts +0 -57
  441. package/extensions/cxx_debugging/third_party/lit-html/lib/template-factory.d.ts.map +0 -1
  442. package/extensions/cxx_debugging/third_party/lit-html/lib/template-factory.js +0 -48
  443. package/extensions/cxx_debugging/third_party/lit-html/lib/template-factory.js.map +0 -1
  444. package/extensions/cxx_debugging/third_party/lit-html/lib/template-instance.d.ts +0 -30
  445. package/extensions/cxx_debugging/third_party/lit-html/lib/template-instance.d.ts.map +0 -1
  446. package/extensions/cxx_debugging/third_party/lit-html/lib/template-instance.js +0 -134
  447. package/extensions/cxx_debugging/third_party/lit-html/lib/template-instance.js.map +0 -1
  448. package/extensions/cxx_debugging/third_party/lit-html/lib/template-processor.d.ts +0 -46
  449. package/extensions/cxx_debugging/third_party/lit-html/lib/template-processor.d.ts.map +0 -1
  450. package/extensions/cxx_debugging/third_party/lit-html/lib/template-processor.js +0 -14
  451. package/extensions/cxx_debugging/third_party/lit-html/lib/template-processor.js.map +0 -1
  452. package/extensions/cxx_debugging/third_party/lit-html/lib/template-result.d.ts +0 -42
  453. package/extensions/cxx_debugging/third_party/lit-html/lib/template-result.d.ts.map +0 -1
  454. package/extensions/cxx_debugging/third_party/lit-html/lib/template-result.js +0 -131
  455. package/extensions/cxx_debugging/third_party/lit-html/lib/template-result.js.map +0 -1
  456. package/extensions/cxx_debugging/third_party/lit-html/lib/template.d.ts +0 -92
  457. package/extensions/cxx_debugging/third_party/lit-html/lib/template.d.ts.map +0 -1
  458. package/extensions/cxx_debugging/third_party/lit-html/lib/template.js +0 -215
  459. package/extensions/cxx_debugging/third_party/lit-html/lib/template.js.map +0 -1
  460. package/extensions/cxx_debugging/third_party/lit-html/lit-html.d.ts +0 -42
  461. package/extensions/cxx_debugging/third_party/lit-html/lit-html.d.ts.map +0 -1
  462. package/extensions/cxx_debugging/third_party/lit-html/lit-html.js +0 -59
  463. package/extensions/cxx_debugging/third_party/lit-html/lit-html.js.map +0 -1
  464. package/extensions/cxx_debugging/third_party/lit-html/package.json +0 -84
  465. package/extensions/cxx_debugging/third_party/lit-html/polyfills/template_polyfill.d.ts +0 -24
  466. package/extensions/cxx_debugging/third_party/lit-html/polyfills/template_polyfill.d.ts.map +0 -1
  467. package/extensions/cxx_debugging/third_party/lit-html/polyfills/template_polyfill.js +0 -60
  468. package/extensions/cxx_debugging/third_party/lit-html/polyfills/template_polyfill.js.map +0 -1
  469. package/extensions/cxx_debugging/third_party/lit-html/src/directives/async-append.ts +0 -100
  470. package/extensions/cxx_debugging/third_party/lit-html/src/directives/async-replace.ts +0 -82
  471. package/extensions/cxx_debugging/third_party/lit-html/src/directives/cache.ts +0 -90
  472. package/extensions/cxx_debugging/third_party/lit-html/src/directives/class-map.ts +0 -118
  473. package/extensions/cxx_debugging/third_party/lit-html/src/directives/guard.ts +0 -74
  474. package/extensions/cxx_debugging/third_party/lit-html/src/directives/if-defined.ts +0 -40
  475. package/extensions/cxx_debugging/third_party/lit-html/src/directives/live.ts +0 -76
  476. package/extensions/cxx_debugging/third_party/lit-html/src/directives/repeat.ts +0 -442
  477. package/extensions/cxx_debugging/third_party/lit-html/src/directives/style-map.ts +0 -88
  478. package/extensions/cxx_debugging/third_party/lit-html/src/directives/template-content.ts +0 -52
  479. package/extensions/cxx_debugging/third_party/lit-html/src/directives/unsafe-html.ts +0 -54
  480. package/extensions/cxx_debugging/third_party/lit-html/src/directives/unsafe-svg.ts +0 -71
  481. package/extensions/cxx_debugging/third_party/lit-html/src/directives/until.ts +0 -104
  482. package/extensions/cxx_debugging/third_party/lit-html/src/env.d.ts +0 -20
  483. package/extensions/cxx_debugging/third_party/lit-html/src/lib/default-template-processor.ts +0 -59
  484. package/extensions/cxx_debugging/third_party/lit-html/src/lib/directive.ts +0 -73
  485. package/extensions/cxx_debugging/third_party/lit-html/src/lib/dom.ts +0 -55
  486. package/extensions/cxx_debugging/third_party/lit-html/src/lib/modify-template.ts +0 -135
  487. package/extensions/cxx_debugging/third_party/lit-html/src/lib/part.ts +0 -50
  488. package/extensions/cxx_debugging/third_party/lit-html/src/lib/parts.ts +0 -545
  489. package/extensions/cxx_debugging/third_party/lit-html/src/lib/render-options.ts +0 -20
  490. package/extensions/cxx_debugging/third_party/lit-html/src/lib/render.ts +0 -52
  491. package/extensions/cxx_debugging/third_party/lit-html/src/lib/shady-render.ts +0 -316
  492. package/extensions/cxx_debugging/third_party/lit-html/src/lib/template-factory.ts +0 -92
  493. package/extensions/cxx_debugging/third_party/lit-html/src/lib/template-instance.ts +0 -155
  494. package/extensions/cxx_debugging/third_party/lit-html/src/lib/template-processor.ts +0 -51
  495. package/extensions/cxx_debugging/third_party/lit-html/src/lib/template-result.ts +0 -148
  496. package/extensions/cxx_debugging/third_party/lit-html/src/lib/template.ts +0 -255
  497. package/extensions/cxx_debugging/third_party/lit-html/src/lit-html.ts +0 -74
  498. package/extensions/cxx_debugging/third_party/lit-html/src/polyfills/template_polyfill.ts +0 -70
  499. package/extensions/cxx_debugging/third_party/lit-html/ts3.4/directives/async-append.d.ts +0 -33
  500. package/extensions/cxx_debugging/third_party/lit-html/ts3.4/directives/async-replace.d.ts +0 -34
  501. package/extensions/cxx_debugging/third_party/lit-html/ts3.4/directives/cache.d.ts +0 -30
  502. package/extensions/cxx_debugging/third_party/lit-html/ts3.4/directives/class-map.d.ts +0 -28
  503. package/extensions/cxx_debugging/third_party/lit-html/ts3.4/directives/guard.d.ts +0 -49
  504. package/extensions/cxx_debugging/third_party/lit-html/ts3.4/directives/if-defined.d.ts +0 -22
  505. package/extensions/cxx_debugging/third_party/lit-html/ts3.4/directives/live.d.ts +0 -38
  506. package/extensions/cxx_debugging/third_party/lit-html/ts3.4/directives/repeat.d.ts +0 -37
  507. package/extensions/cxx_debugging/third_party/lit-html/ts3.4/directives/style-map.d.ts +0 -36
  508. package/extensions/cxx_debugging/third_party/lit-html/ts3.4/directives/template-content.d.ts +0 -23
  509. package/extensions/cxx_debugging/third_party/lit-html/ts3.4/directives/unsafe-html.d.ts +0 -23
  510. package/extensions/cxx_debugging/third_party/lit-html/ts3.4/directives/unsafe-svg.d.ts +0 -23
  511. package/extensions/cxx_debugging/third_party/lit-html/ts3.4/directives/until.d.ts +0 -35
  512. package/extensions/cxx_debugging/third_party/lit-html/ts3.4/lib/default-template-processor.d.ts +0 -39
  513. package/extensions/cxx_debugging/third_party/lit-html/ts3.4/lib/directive.d.ts +0 -59
  514. package/extensions/cxx_debugging/third_party/lit-html/ts3.4/lib/dom.d.ts +0 -29
  515. package/extensions/cxx_debugging/third_party/lit-html/ts3.4/lib/modify-template.d.ts +0 -38
  516. package/extensions/cxx_debugging/third_party/lit-html/ts3.4/lib/part.d.ts +0 -46
  517. package/extensions/cxx_debugging/third_party/lit-html/ts3.4/lib/parts.d.ts +0 -148
  518. package/extensions/cxx_debugging/third_party/lit-html/ts3.4/lib/render-options.d.ts +0 -19
  519. package/extensions/cxx_debugging/third_party/lit-html/ts3.4/lib/render.d.ts +0 -33
  520. package/extensions/cxx_debugging/third_party/lit-html/ts3.4/lib/shady-render.d.ts +0 -83
  521. package/extensions/cxx_debugging/third_party/lit-html/ts3.4/lib/template-factory.d.ts +0 -57
  522. package/extensions/cxx_debugging/third_party/lit-html/ts3.4/lib/template-instance.d.ts +0 -30
  523. package/extensions/cxx_debugging/third_party/lit-html/ts3.4/lib/template-processor.d.ts +0 -46
  524. package/extensions/cxx_debugging/third_party/lit-html/ts3.4/lib/template-result.d.ts +0 -42
  525. package/extensions/cxx_debugging/third_party/lit-html/ts3.4/lib/template.d.ts +0 -92
  526. package/extensions/cxx_debugging/third_party/lit-html/ts3.4/lit-html.d.ts +0 -42
  527. package/extensions/cxx_debugging/third_party/lit-html/ts3.4/polyfills/template_polyfill.d.ts +0 -24
  528. package/extensions/cxx_debugging/third_party/lit-html/ts3.4/src/env.d.ts +0 -19
  529. package/extensions/cxx_debugging/third_party/lit-html/ts3.4/tsconfig.json +0 -24
  530. package/extensions/cxx_debugging/third_party/lldb-eval/README.chromium +0 -15
  531. package/extensions/cxx_debugging/third_party/llvm/README.chromium +0 -17
  532. package/extensions/cxx_debugging/tools/api.pdl +0 -224
  533. package/extensions/cxx_debugging/tools/bootstrap.py +0 -352
  534. package/extensions/cxx_debugging/tools/generate-api.py +0 -74
  535. package/extensions/cxx_debugging/tools/pdl_cxx.py +0 -171
  536. package/extensions/cxx_debugging/tools/whitespaces.txt +0 -1
  537. package/extensions/cxx_debugging/tsconfig.json +0 -16
  538. package/front_end/core/common/Base64.test.ts +0 -41
  539. package/front_end/core/common/CharacterIdMap.test.ts +0 -46
  540. package/front_end/core/common/Color.test.ts +0 -904
  541. package/front_end/core/common/ColorConverter.test.ts +0 -525
  542. package/front_end/core/common/ColorUtils.test.ts +0 -112
  543. package/front_end/core/common/Console.test.ts +0 -86
  544. package/front_end/core/common/Debouncer.test.ts +0 -26
  545. package/front_end/core/common/EventTarget.test.ts +0 -166
  546. package/front_end/core/common/Gzip.test.ts +0 -63
  547. package/front_end/core/common/Lazy.test.ts +0 -28
  548. package/front_end/core/common/MapWithDefault.test.ts +0 -61
  549. package/front_end/core/common/Mutex.test.ts +0 -98
  550. package/front_end/core/common/Object.test.ts +0 -87
  551. package/front_end/core/common/ParsedURL.test.ts +0 -751
  552. package/front_end/core/common/Progress.test.ts +0 -269
  553. package/front_end/core/common/ResolverBase.test.ts +0 -115
  554. package/front_end/core/common/ResourceType.test.ts +0 -557
  555. package/front_end/core/common/Revealer.test.ts +0 -122
  556. package/front_end/core/common/SegmentedRange.test.ts +0 -210
  557. package/front_end/core/common/SettingRegistration.test.ts +0 -138
  558. package/front_end/core/common/Settings.test.ts +0 -858
  559. package/front_end/core/common/SimpleHistoryManager.test.ts +0 -66
  560. package/front_end/core/common/StringOutputStream.test.ts +0 -29
  561. package/front_end/core/common/TextDictionary.test.ts +0 -85
  562. package/front_end/core/common/Throttler.test.ts +0 -227
  563. package/front_end/core/common/Trie.test.ts +0 -110
  564. package/front_end/core/dom_extension/DOMExtension.test.ts +0 -343
  565. package/front_end/core/host/AidaClient.test.ts +0 -731
  566. package/front_end/core/i18n/ByteUtilities.test.ts +0 -59
  567. package/front_end/core/i18n/DevToolsLocale.test.ts +0 -104
  568. package/front_end/core/i18n/NumberFormatter.test.ts +0 -92
  569. package/front_end/core/i18n/i18n.test.ts +0 -207
  570. package/front_end/core/i18n/time-utilities.test.ts +0 -164
  571. package/front_end/core/platform/ArrayUtilities.test.ts +0 -499
  572. package/front_end/core/platform/DOMUtilities.test.ts +0 -95
  573. package/front_end/core/platform/DateUtilities.test.ts +0 -31
  574. package/front_end/core/platform/DevToolsPath.test.ts +0 -84
  575. package/front_end/core/platform/KeyboardUtilities.test.ts +0 -57
  576. package/front_end/core/platform/MapUtilities.test.ts +0 -50
  577. package/front_end/core/platform/MimeType.test.ts +0 -192
  578. package/front_end/core/platform/NumberUtilities.test.ts +0 -127
  579. package/front_end/core/platform/StringUtilities.test.ts +0 -729
  580. package/front_end/core/platform/TypedArrayUtilities.test.ts +0 -61
  581. package/front_end/core/protocol_client/NodeURL.test.ts +0 -74
  582. package/front_end/core/root/Runtime.test.ts +0 -68
  583. package/front_end/core/sdk/AccessibilityModel.test.ts +0 -17
  584. package/front_end/core/sdk/AnimationModel.test.ts +0 -257
  585. package/front_end/core/sdk/AutofillModel.test.ts +0 -82
  586. package/front_end/core/sdk/CPUThrottlingManager.test.ts +0 -49
  587. package/front_end/core/sdk/CSSContainerQuery.test.ts +0 -67
  588. package/front_end/core/sdk/CSSMatchedStyles.test.ts +0 -772
  589. package/front_end/core/sdk/CSSModel.test.ts +0 -120
  590. package/front_end/core/sdk/CSSProperty.test.ts +0 -130
  591. package/front_end/core/sdk/CSSPropertyParser.test.ts +0 -525
  592. package/front_end/core/sdk/CSSPropertyParserMatchers.test.ts +0 -766
  593. package/front_end/core/sdk/CSSStyleDeclaration.test.ts +0 -261
  594. package/front_end/core/sdk/CSSStyleSheetHeader.test.ts +0 -137
  595. package/front_end/core/sdk/ChildTargetManager.test.ts +0 -259
  596. package/front_end/core/sdk/ConsoleModel.test.ts +0 -202
  597. package/front_end/core/sdk/Cookie.test.ts +0 -294
  598. package/front_end/core/sdk/CookieModel.test.ts +0 -258
  599. package/front_end/core/sdk/CookieParser.test.ts +0 -211
  600. package/front_end/core/sdk/DOMModel.test.ts +0 -171
  601. package/front_end/core/sdk/DebuggerModel.test.ts +0 -461
  602. package/front_end/core/sdk/EmulationModel.test.ts +0 -45
  603. package/front_end/core/sdk/EnhancedTracesParser.test.ts +0 -318
  604. package/front_end/core/sdk/FrameManager.test.ts +0 -305
  605. package/front_end/core/sdk/NetworkManager.test.ts +0 -2196
  606. package/front_end/core/sdk/NetworkRequest.test.ts +0 -550
  607. package/front_end/core/sdk/OverlayColorGenerator.test.ts +0 -21
  608. package/front_end/core/sdk/OverlayModel.test.ts +0 -179
  609. package/front_end/core/sdk/OverlayPersistentHighlighter.test.ts +0 -232
  610. package/front_end/core/sdk/PageResourceLoader.test.ts +0 -369
  611. package/front_end/core/sdk/PreloadingModel.test.ts +0 -877
  612. package/front_end/core/sdk/RehydratingConnection.test.ts +0 -190
  613. package/front_end/core/sdk/RemoteObject.test.ts +0 -493
  614. package/front_end/core/sdk/ResourceTreeModel.test.ts +0 -222
  615. package/front_end/core/sdk/RuntimeModel.test.ts +0 -84
  616. package/front_end/core/sdk/ScreenCaptureModel.test.ts +0 -216
  617. package/front_end/core/sdk/Script.test.ts +0 -155
  618. package/front_end/core/sdk/ServerSentEventsProtocol.test.ts +0 -220
  619. package/front_end/core/sdk/ServerTiming.test.ts +0 -377
  620. package/front_end/core/sdk/ServiceWorkerCacheModel.test.ts +0 -200
  621. package/front_end/core/sdk/ServiceWorkerManager.test.ts +0 -287
  622. package/front_end/core/sdk/SourceMap.test.ts +0 -1350
  623. package/front_end/core/sdk/SourceMapFunctionRanges.test.ts +0 -171
  624. package/front_end/core/sdk/SourceMapManager.test.ts +0 -334
  625. package/front_end/core/sdk/SourceMapScopeChainEntry.test.ts +0 -129
  626. package/front_end/core/sdk/SourceMapScopesInfo.test.ts +0 -747
  627. package/front_end/core/sdk/StorageBucketsModel.test.ts +0 -383
  628. package/front_end/core/sdk/StorageKeyManager.test.ts +0 -95
  629. package/front_end/core/sdk/Target.test.ts +0 -97
  630. package/front_end/core/sdk/TargetManager.test.ts +0 -279
  631. package/front_end/core/sdk/TraceObject.test.ts +0 -30
  632. package/front_end/entrypoints/formatter_worker/CSSFormatter.test.ts +0 -216
  633. package/front_end/entrypoints/formatter_worker/FormattedContentBuilder.test.ts +0 -177
  634. package/front_end/entrypoints/formatter_worker/FormatterWorker.test.ts +0 -19
  635. package/front_end/entrypoints/formatter_worker/HTMLFormatter.test.ts +0 -344
  636. package/front_end/entrypoints/formatter_worker/JSONFormatter.test.ts +0 -147
  637. package/front_end/entrypoints/formatter_worker/JavaScriptFormatter.test.ts +0 -789
  638. package/front_end/entrypoints/formatter_worker/ScopeParser.test.ts +0 -121
  639. package/front_end/entrypoints/formatter_worker/Substitute.test.ts +0 -179
  640. package/front_end/entrypoints/heap_snapshot_worker/heap_snapshot_worker.test.ts +0 -11
  641. package/front_end/entrypoints/inspector_main/InspectorMain.test.ts +0 -344
  642. package/front_end/entrypoints/inspector_main/OutermostTargetSelector.test.ts +0 -80
  643. package/front_end/entrypoints/main/ExecutionContextSelector.test.ts +0 -64
  644. package/front_end/entrypoints/main/GlobalAiButton.test.ts +0 -132
  645. package/front_end/entrypoints/main/MainImpl.test.ts +0 -87
  646. package/front_end/entrypoints/wasmparser_worker/wasmparser_worker.test.ts +0 -11
  647. package/front_end/integration_test_runner.html +0 -40
  648. package/front_end/legacy_test_runner/accessibility_test_runner/accessibility_test_runner.js +0 -83
  649. package/front_end/legacy_test_runner/application_test_runner/CacheStorageTestRunner.js +0 -297
  650. package/front_end/legacy_test_runner/application_test_runner/IndexedDBTestRunner.js +0 -478
  651. package/front_end/legacy_test_runner/application_test_runner/ResourceTreeTestRunner.js +0 -106
  652. package/front_end/legacy_test_runner/application_test_runner/ResourcesTestRunner.js +0 -173
  653. package/front_end/legacy_test_runner/application_test_runner/ServiceWorkersTestRunner.js +0 -133
  654. package/front_end/legacy_test_runner/application_test_runner/StorageTestRunner.js +0 -13
  655. package/front_end/legacy_test_runner/application_test_runner/application_test_runner.js +0 -19
  656. package/front_end/legacy_test_runner/axe_core_test_runner/axe_core_test_runner.js +0 -176
  657. package/front_end/legacy_test_runner/bindings_test_runner/AutomappingTestRunner.js +0 -137
  658. package/front_end/legacy_test_runner/bindings_test_runner/BindingsTestRunner.js +0 -251
  659. package/front_end/legacy_test_runner/bindings_test_runner/IsolatedFilesystemTestRunner.js +0 -289
  660. package/front_end/legacy_test_runner/bindings_test_runner/OverridesTestRunner.js +0 -30
  661. package/front_end/legacy_test_runner/bindings_test_runner/PersistenceTestRunner.js +0 -111
  662. package/front_end/legacy_test_runner/bindings_test_runner/bindings_test_runner.js +0 -17
  663. package/front_end/legacy_test_runner/console_test_runner/console_test_runner.js +0 -732
  664. package/front_end/legacy_test_runner/coverage_test_runner/coverage_test_runner.js +0 -156
  665. package/front_end/legacy_test_runner/data_grid_test_runner/data_grid_test_runner.js +0 -85
  666. package/front_end/legacy_test_runner/device_mode_test_runner/device_mode_test_runner.js +0 -47
  667. package/front_end/legacy_test_runner/elements_test_runner/EditDOMTestRunner.js +0 -79
  668. package/front_end/legacy_test_runner/elements_test_runner/ElementsPanelShadowSelectionOnRefreshTestRunner.js +0 -39
  669. package/front_end/legacy_test_runner/elements_test_runner/ElementsTestRunner.js +0 -1256
  670. package/front_end/legacy_test_runner/elements_test_runner/SetOuterHTMLTestRunner.js +0 -116
  671. package/front_end/legacy_test_runner/elements_test_runner/StylesUpdateLinksTestRunner.js +0 -136
  672. package/front_end/legacy_test_runner/elements_test_runner/elements_test_runner.js +0 -14
  673. package/front_end/legacy_test_runner/extensions_test_runner/ExtensionsNetworkTestRunner.js +0 -27
  674. package/front_end/legacy_test_runner/extensions_test_runner/ExtensionsTestRunner.js +0 -71
  675. package/front_end/legacy_test_runner/extensions_test_runner/extensions_test_runner.js +0 -11
  676. package/front_end/legacy_test_runner/heap_profiler_test_runner/heap_profiler_test_runner.js +0 -785
  677. package/front_end/legacy_test_runner/layers_test_runner/layers_test_runner.js +0 -161
  678. package/front_end/legacy_test_runner/legacy_test_runner.ts +0 -14
  679. package/front_end/legacy_test_runner/network_test_runner/network_test_runner.js +0 -295
  680. package/front_end/legacy_test_runner/performance_test_runner/TimelineDataTestRunner.js +0 -5263
  681. package/front_end/legacy_test_runner/performance_test_runner/TimelineTestRunner.js +0 -357
  682. package/front_end/legacy_test_runner/performance_test_runner/performance_test_runner.js +0 -11
  683. package/front_end/legacy_test_runner/sdk_test_runner/sdk_test_runner.js +0 -314
  684. package/front_end/legacy_test_runner/security_test_runner/security_test_runner.js +0 -36
  685. package/front_end/legacy_test_runner/sources_test_runner/AutocompleteTestRunner.js +0 -50
  686. package/front_end/legacy_test_runner/sources_test_runner/DebuggerTestRunner.js +0 -655
  687. package/front_end/legacy_test_runner/sources_test_runner/EditorTestRunner.js +0 -240
  688. package/front_end/legacy_test_runner/sources_test_runner/LiveEditTestRunner.js +0 -34
  689. package/front_end/legacy_test_runner/sources_test_runner/SearchTestRunner.js +0 -161
  690. package/front_end/legacy_test_runner/sources_test_runner/SourcesTestRunner.js +0 -111
  691. package/front_end/legacy_test_runner/sources_test_runner/sources_test_runner.js +0 -19
  692. package/front_end/legacy_test_runner/test_runner/TestRunner.js +0 -1480
  693. package/front_end/legacy_test_runner/test_runner/test_runner.js +0 -115
  694. package/front_end/models/ai_assistance/AgentProject.test.ts +0 -370
  695. package/front_end/models/ai_assistance/AiHistoryStorage.test.ts +0 -619
  696. package/front_end/models/ai_assistance/ChangeManager.test.ts +0 -330
  697. package/front_end/models/ai_assistance/ConversationHandler.test.ts +0 -355
  698. package/front_end/models/ai_assistance/EvaluateAction.test.ts +0 -173
  699. package/front_end/models/ai_assistance/ExtensionScope.test.ts +0 -447
  700. package/front_end/models/ai_assistance/agents/AiAgent.test.ts +0 -491
  701. package/front_end/models/ai_assistance/agents/FileAgent.test.ts +0 -217
  702. package/front_end/models/ai_assistance/agents/NetworkAgent.test.ts +0 -237
  703. package/front_end/models/ai_assistance/agents/PatchAgent.test.ts +0 -130
  704. package/front_end/models/ai_assistance/agents/PerformanceAgent.test.ts +0 -759
  705. package/front_end/models/ai_assistance/agents/PerformanceAnnotationsAgent.test.ts +0 -32
  706. package/front_end/models/ai_assistance/agents/StylingAgent.test.ts +0 -1065
  707. package/front_end/models/ai_assistance/data_formatters/FileFormatter.test.ts +0 -116
  708. package/front_end/models/ai_assistance/data_formatters/NetworkRequestFormatter.test.ts +0 -87
  709. package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.test.ts +0 -367
  710. package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.test.ts +0 -92
  711. package/front_end/models/ai_code_completion/AiCodeCompletion.test.ts +0 -328
  712. package/front_end/models/autofill_manager/AutofillManager.test.ts +0 -266
  713. package/front_end/models/bindings/CompilerScriptMapping.test.ts +0 -550
  714. package/front_end/models/bindings/ContentProviderBasedProject.test.ts +0 -118
  715. package/front_end/models/bindings/DebuggerLanguagePlugins.test.ts +0 -144
  716. package/front_end/models/bindings/DebuggerWorkspaceBinding.test.ts +0 -179
  717. package/front_end/models/bindings/DefaultScriptMapping.test.ts +0 -193
  718. package/front_end/models/bindings/FileUtils.test.ts +0 -69
  719. package/front_end/models/bindings/LiveLocation.test.ts +0 -47
  720. package/front_end/models/bindings/PresentationConsoleMessageHelper.test.ts +0 -276
  721. package/front_end/models/bindings/ResourceMapping.test.ts +0 -253
  722. package/front_end/models/bindings/ResourceScriptMapping.test.ts +0 -118
  723. package/front_end/models/bindings/ResourceUtils.test.ts +0 -105
  724. package/front_end/models/breakpoints/BreakpointManager.test.ts +0 -1919
  725. package/front_end/models/cpu_profile/CPUProfileDataModel.test.ts +0 -376
  726. package/front_end/models/crux-manager/CrUXManager.test.ts +0 -613
  727. package/front_end/models/emulation/DeviceModeModel.test.ts +0 -104
  728. package/front_end/models/emulation/EmulatedDevices.test.ts +0 -61
  729. package/front_end/models/extensions/ExtensionServer.test.ts +0 -1170
  730. package/front_end/models/extensions/HostUrlPattern.test.ts +0 -312
  731. package/front_end/models/extensions/LanguageExtensionEndpoint.test.ts +0 -65
  732. package/front_end/models/extensions/RecorderPluginManager.test.ts +0 -34
  733. package/front_end/models/formatter/ScriptFormatter.test.ts +0 -93
  734. package/front_end/models/har/Importer.test.ts +0 -353
  735. package/front_end/models/har/Log.test.ts +0 -208
  736. package/front_end/models/har/Writer.test.ts +0 -49
  737. package/front_end/models/heap_snapshot_model/heap_snapshot_model.test.ts +0 -11
  738. package/front_end/models/issues_manager/CheckFormsIssuesTrigger.test.ts +0 -22
  739. package/front_end/models/issues_manager/DeprecationIssue.test.ts +0 -81
  740. package/front_end/models/issues_manager/ElementAccessibilityIssue.test.ts +0 -87
  741. package/front_end/models/issues_manager/FederatedAuthUserInfoRequestIssue.test.ts +0 -52
  742. package/front_end/models/issues_manager/GenericIssue.test.ts +0 -82
  743. package/front_end/models/issues_manager/Issue.test.ts +0 -56
  744. package/front_end/models/issues_manager/IssueResolver.test.ts +0 -91
  745. package/front_end/models/issues_manager/IssuesManager.test.ts +0 -360
  746. package/front_end/models/issues_manager/LowTextContrastIssue.test.ts +0 -58
  747. package/front_end/models/issues_manager/MarkdownIssueDescription.test.ts +0 -92
  748. package/front_end/models/issues_manager/PropertyRuleIssue.test.ts +0 -109
  749. package/front_end/models/issues_manager/RelatedIssue.test.ts +0 -64
  750. package/front_end/models/issues_manager/SRIMessageSignatureIssue.test.ts +0 -68
  751. package/front_end/models/issues_manager/SharedDictionaryIssue.test.ts +0 -68
  752. package/front_end/models/issues_manager/StylesheetLoadingIssue.test.ts +0 -138
  753. package/front_end/models/issues_manager/UnencodedDigestIssue.test.ts +0 -49
  754. package/front_end/models/javascript_metadata/JavaScriptMetadata.test.ts +0 -62
  755. package/front_end/models/logs/NetworkLog.test.ts +0 -376
  756. package/front_end/models/logs/RequestResolver.test.ts +0 -92
  757. package/front_end/models/persistence/AutomaticFileSystemManager.test.ts +0 -208
  758. package/front_end/models/persistence/AutomaticFileSystemWorkspaceBinding.test.ts +0 -227
  759. package/front_end/models/persistence/EditFileSystemView.test.ts +0 -181
  760. package/front_end/models/persistence/NetworkPersistenceManager.test.ts +0 -989
  761. package/front_end/models/persistence/PersistenceAction.test.ts +0 -93
  762. package/front_end/models/persistence/PersistenceImpl.test.ts +0 -229
  763. package/front_end/models/persistence/PlatformFileSystem.test.ts +0 -19
  764. package/front_end/models/persistence/WorkspaceSettingsTab.test.ts +0 -146
  765. package/front_end/models/project_settings/ProjectSettingsModel.test.ts +0 -260
  766. package/front_end/models/source_map_scopes/NamesResolver.test.ts +0 -624
  767. package/front_end/models/source_map_scopes/ScopeChainModel.test.ts +0 -87
  768. package/front_end/models/source_map_scopes/ScopeTreeCache.test.ts +0 -63
  769. package/front_end/models/stack_trace/StackTraceImpl.test.ts +0 -74
  770. package/front_end/models/stack_trace/StackTraceModel.test.ts +0 -296
  771. package/front_end/models/stack_trace/Trie.test.ts +0 -129
  772. package/front_end/models/text_utils/ContentData.test.ts +0 -162
  773. package/front_end/models/text_utils/StaticContentProvider.test.ts +0 -34
  774. package/front_end/models/text_utils/StreamingContentData.test.ts +0 -81
  775. package/front_end/models/text_utils/Text.test.ts +0 -103
  776. package/front_end/models/text_utils/TextCursor.test.ts +0 -48
  777. package/front_end/models/text_utils/TextRange.test.ts +0 -461
  778. package/front_end/models/text_utils/TextUtils.test.ts +0 -730
  779. package/front_end/models/text_utils/WasmDisassembly.test.ts +0 -56
  780. package/front_end/models/trace/ModelImpl.test.ts +0 -161
  781. package/front_end/models/trace/Processor.test.ts +0 -429
  782. package/front_end/models/trace/extras/FilmStrip.test.ts +0 -90
  783. package/front_end/models/trace/extras/MainThreadActivity.test.ts +0 -82
  784. package/front_end/models/trace/extras/ScriptDuplication.test.ts +0 -407
  785. package/front_end/models/trace/extras/StackTraceForEvent.test.ts +0 -330
  786. package/front_end/models/trace/extras/ThirdParties.test.ts +0 -114
  787. package/front_end/models/trace/extras/TraceFilter.test.ts +0 -103
  788. package/front_end/models/trace/extras/TraceTree.test.ts +0 -489
  789. package/front_end/models/trace/handlers/AnimationFramesHandler.test.ts +0 -40
  790. package/front_end/models/trace/handlers/AnimationHandler.test.ts +0 -54
  791. package/front_end/models/trace/handlers/AsyncJSCallsHandler.test.ts +0 -300
  792. package/front_end/models/trace/handlers/AuctionWorkletsHandler.test.ts +0 -167
  793. package/front_end/models/trace/handlers/DOMStatsHandler.test.ts +0 -30
  794. package/front_end/models/trace/handlers/ExtensionTraceDataHandler.test.ts +0 -987
  795. package/front_end/models/trace/handlers/FlowsHandler.test.ts +0 -185
  796. package/front_end/models/trace/handlers/FramesHandler.test.ts +0 -243
  797. package/front_end/models/trace/handlers/GPUHandler.test.ts +0 -26
  798. package/front_end/models/trace/handlers/ImagePaintingHandler.test.ts +0 -87
  799. package/front_end/models/trace/handlers/InitiatorsHandler.test.ts +0 -309
  800. package/front_end/models/trace/handlers/InvalidationsHandler.test.ts +0 -185
  801. package/front_end/models/trace/handlers/LargestImagePaintHandler.test.ts +0 -62
  802. package/front_end/models/trace/handlers/LargestTextPaintHandler.test.ts +0 -27
  803. package/front_end/models/trace/handlers/LayerTreeHandler.test.ts +0 -46
  804. package/front_end/models/trace/handlers/LayoutShiftsHandler.test.ts +0 -252
  805. package/front_end/models/trace/handlers/MemoryHandler.test.ts +0 -29
  806. package/front_end/models/trace/handlers/MetaHandler.test.ts +0 -650
  807. package/front_end/models/trace/handlers/NetworkRequestsHandler.test.ts +0 -514
  808. package/front_end/models/trace/handlers/PageFramesHandler.test.ts +0 -40
  809. package/front_end/models/trace/handlers/PageLoadMetricsHandler.test.ts +0 -274
  810. package/front_end/models/trace/handlers/RendererHandler.test.ts +0 -1007
  811. package/front_end/models/trace/handlers/SamplesHandler.test.ts +0 -355
  812. package/front_end/models/trace/handlers/ScreenshotsHandler.test.ts +0 -114
  813. package/front_end/models/trace/handlers/ScriptsHandler.test.ts +0 -103
  814. package/front_end/models/trace/handlers/SelectorStatsHandler.test.ts +0 -39
  815. package/front_end/models/trace/handlers/Threads.test.ts +0 -59
  816. package/front_end/models/trace/handlers/UserInteractionsHandler.test.ts +0 -439
  817. package/front_end/models/trace/handlers/UserTimingsHandler.test.ts +0 -525
  818. package/front_end/models/trace/handlers/WarningsHandler.test.ts +0 -86
  819. package/front_end/models/trace/handlers/WorkersHandler.test.ts +0 -80
  820. package/front_end/models/trace/handlers/helpers.test.ts +0 -102
  821. package/front_end/models/trace/helpers/SamplesIntegrator.test.ts +0 -372
  822. package/front_end/models/trace/helpers/SyntheticEvents.test.ts +0 -62
  823. package/front_end/models/trace/helpers/Timing.test.ts +0 -371
  824. package/front_end/models/trace/helpers/Trace.test.ts +0 -760
  825. package/front_end/models/trace/helpers/TreeHelpers.test.ts +0 -449
  826. package/front_end/models/trace/insights/CLSCulprits.test.ts +0 -254
  827. package/front_end/models/trace/insights/Cache.test.ts +0 -221
  828. package/front_end/models/trace/insights/Common.test.ts +0 -125
  829. package/front_end/models/trace/insights/DOMSize.test.ts +0 -66
  830. package/front_end/models/trace/insights/DocumentLatency.test.ts +0 -110
  831. package/front_end/models/trace/insights/DuplicatedJavaScript.test.ts +0 -128
  832. package/front_end/models/trace/insights/FontDisplay.test.ts +0 -64
  833. package/front_end/models/trace/insights/ForcedReflow.test.ts +0 -34
  834. package/front_end/models/trace/insights/INPBreakdown.test.ts +0 -32
  835. package/front_end/models/trace/insights/ImageDelivery.test.ts +0 -128
  836. package/front_end/models/trace/insights/LCPBreakdown.test.ts +0 -100
  837. package/front_end/models/trace/insights/LCPDiscovery.test.ts +0 -67
  838. package/front_end/models/trace/insights/LegacyJavaScript.test.ts +0 -81
  839. package/front_end/models/trace/insights/ModernHTTP.test.ts +0 -348
  840. package/front_end/models/trace/insights/NetworkDependencyTree.test.ts +0 -563
  841. package/front_end/models/trace/insights/RenderBlocking.test.ts +0 -133
  842. package/front_end/models/trace/insights/SlowCSSSelector.test.ts +0 -48
  843. package/front_end/models/trace/insights/Statistics.test.ts +0 -145
  844. package/front_end/models/trace/insights/ThirdParties.test.ts +0 -56
  845. package/front_end/models/trace/insights/Viewport.test.ts +0 -52
  846. package/front_end/models/trace/lantern/core/NetworkAnalyzer.test.ts +0 -530
  847. package/front_end/models/trace/lantern/graph/BaseNode.test.ts +0 -391
  848. package/front_end/models/trace/lantern/graph/PageDependencyGraph.test.ts +0 -670
  849. package/front_end/models/trace/lantern/metrics/FirstContentfulPaint.test.ts +0 -65
  850. package/front_end/models/trace/lantern/metrics/Interactive.test.ts +0 -70
  851. package/front_end/models/trace/lantern/metrics/LargestContentfulPaint.test.ts +0 -42
  852. package/front_end/models/trace/lantern/metrics/SpeedIndex.test.ts +0 -87
  853. package/front_end/models/trace/lantern/metrics/TBTUtils.test.ts +0 -138
  854. package/front_end/models/trace/lantern/simulation/ConnectionPool.test.ts +0 -199
  855. package/front_end/models/trace/lantern/simulation/DNSCache.test.ts +0 -76
  856. package/front_end/models/trace/lantern/simulation/Simulator.test.ts +0 -454
  857. package/front_end/models/trace/lantern/simulation/TCPConnection.test.ts +0 -368
  858. package/front_end/models/trace/types/File.test.ts +0 -42
  859. package/front_end/models/trace/types/TraceEvents.test.ts +0 -92
  860. package/front_end/models/workspace/IgnoreListManager.test.ts +0 -616
  861. package/front_end/models/workspace/SearchConfig.test.ts +0 -114
  862. package/front_end/models/workspace/UISourceCode.test.ts +0 -415
  863. package/front_end/models/workspace/WorkspaceImpl.test.ts +0 -187
  864. package/front_end/models/workspace_diff/WorkspaceDiff.test.ts +0 -84
  865. package/front_end/panels/accessibility/ARIAAttributesView.test.ts +0 -101
  866. package/front_end/panels/accessibility/AccessibilitySidebarView.test.ts +0 -67
  867. package/front_end/panels/ai_assistance/AiAssistancePanel.test.ts +0 -1891
  868. package/front_end/panels/ai_assistance/PatchWidget.test.ts +0 -445
  869. package/front_end/panels/ai_assistance/SelectWorkspaceDialog.test.ts +0 -201
  870. package/front_end/panels/ai_assistance/components/ChatView.test.ts +0 -103
  871. package/front_end/panels/ai_assistance/components/ExploreWidget.test.ts +0 -118
  872. package/front_end/panels/ai_assistance/components/MarkdownRendererWithCodeBlock.test.ts +0 -80
  873. package/front_end/panels/ai_assistance/components/UserActionRow.test.ts +0 -123
  874. package/front_end/panels/animation/AnimationTimeline.test.ts +0 -752
  875. package/front_end/panels/application/AppManifestView.test.ts +0 -342
  876. package/front_end/panels/application/ApplicationPanelSidebar.test.ts +0 -484
  877. package/front_end/panels/application/BackgroundServiceView.test.ts +0 -160
  878. package/front_end/panels/application/DOMStorageModel.test.ts +0 -45
  879. package/front_end/panels/application/ExtensionStorageItemsView.test.ts +0 -152
  880. package/front_end/panels/application/ExtensionStorageModel.test.ts +0 -249
  881. package/front_end/panels/application/IndexedDBModel.test.ts +0 -252
  882. package/front_end/panels/application/IndexedDBViews.test.ts +0 -182
  883. package/front_end/panels/application/InterestGroupStorageView.test.ts +0 -155
  884. package/front_end/panels/application/InterestGroupTreeElement.test.ts +0 -37
  885. package/front_end/panels/application/KeyValueStorageItemsView.test.ts +0 -120
  886. package/front_end/panels/application/PreloadingTreeElement.test.ts +0 -30
  887. package/front_end/panels/application/ReportingApiView.test.ts +0 -233
  888. package/front_end/panels/application/ServiceWorkerUpdateCycleView.test.ts +0 -130
  889. package/front_end/panels/application/ServiceWorkersView.test.ts +0 -179
  890. package/front_end/panels/application/SharedStorageEventsView.test.ts +0 -231
  891. package/front_end/panels/application/SharedStorageItemsView.test.ts +0 -913
  892. package/front_end/panels/application/SharedStorageListTreeElement.test.ts +0 -161
  893. package/front_end/panels/application/SharedStorageModel.test.ts +0 -434
  894. package/front_end/panels/application/SharedStorageTreeElement.test.ts +0 -140
  895. package/front_end/panels/application/StorageBucketsTreeElement.test.ts +0 -149
  896. package/front_end/panels/application/StorageView.test.ts +0 -156
  897. package/front_end/panels/application/components/BackForwardCacheView.test.ts +0 -303
  898. package/front_end/panels/application/components/BounceTrackingMitigationsView.test.ts +0 -138
  899. package/front_end/panels/application/components/EndpointsGrid.test.ts +0 -83
  900. package/front_end/panels/application/components/FrameDetailsView.test.ts +0 -263
  901. package/front_end/panels/application/components/InterestGroupAccessGrid.test.ts +0 -70
  902. package/front_end/panels/application/components/OriginTrialTreeView.test.ts +0 -442
  903. package/front_end/panels/application/components/ProtocolHandlersView.test.ts +0 -73
  904. package/front_end/panels/application/components/ReportsGrid.test.ts +0 -131
  905. package/front_end/panels/application/components/ServiceWorkerRouterView.test.ts +0 -57
  906. package/front_end/panels/application/components/SharedStorageAccessGrid.test.ts +0 -84
  907. package/front_end/panels/application/components/SharedStorageMetadataView.test.ts +0 -122
  908. package/front_end/panels/application/components/StackTrace.test.ts +0 -222
  909. package/front_end/panels/application/components/StorageMetadataView.test.ts +0 -208
  910. package/front_end/panels/application/components/TrustTokensView.test.ts +0 -127
  911. package/front_end/panels/application/preloading/PreloadingView.test.ts +0 -1180
  912. package/front_end/panels/application/preloading/components/MismatchedPreloadingGrid.test.ts +0 -194
  913. package/front_end/panels/application/preloading/components/PreloadingDetailsReportView.test.ts +0 -532
  914. package/front_end/panels/application/preloading/components/PreloadingGrid.test.ts +0 -503
  915. package/front_end/panels/application/preloading/components/PreloadingMismatchedHeadersGrid.test.ts +0 -150
  916. package/front_end/panels/application/preloading/components/RuleSetDetailsView.test.ts +0 -185
  917. package/front_end/panels/application/preloading/components/RuleSetGrid.test.ts +0 -190
  918. package/front_end/panels/application/preloading/components/UsedPreloadingView.test.ts +0 -751
  919. package/front_end/panels/autofill/AutofillView.test.ts +0 -224
  920. package/front_end/panels/browser_debugger/CategorizedBreakpointsSidebarPane.test.ts +0 -179
  921. package/front_end/panels/browser_debugger/DOMBreakpointsSidebarPane.test.ts +0 -52
  922. package/front_end/panels/browser_debugger/browser_debugger.test.ts +0 -11
  923. package/front_end/panels/changes/CombinedDiffView.test.ts +0 -154
  924. package/front_end/panels/changes/changes.test.ts +0 -11
  925. package/front_end/panels/common/AiCodeCompletionDisclaimer.test.ts +0 -57
  926. package/front_end/panels/common/AiCodeCompletionSummaryToolbar.test.ts +0 -85
  927. package/front_end/panels/common/AiCodeCompletionTeaser.test.ts +0 -98
  928. package/front_end/panels/console/ConsoleContextSelector.test.ts +0 -96
  929. package/front_end/panels/console/ConsoleFormat.test.ts +0 -462
  930. package/front_end/panels/console/ConsolePrompt.test.ts +0 -188
  931. package/front_end/panels/console/ConsoleSidebar.test.ts +0 -130
  932. package/front_end/panels/console/ConsoleView.test.ts +0 -276
  933. package/front_end/panels/console/ConsoleViewMessage.test.ts +0 -433
  934. package/front_end/panels/console/ConsoleViewport.test.ts +0 -399
  935. package/front_end/panels/console/ErrorStackParser.test.ts +0 -343
  936. package/front_end/panels/console_counters/console_counters.test.ts +0 -11
  937. package/front_end/panels/coverage/CoverageDecorationManager.test.ts +0 -211
  938. package/front_end/panels/coverage/CoverageModel.test.ts +0 -91
  939. package/front_end/panels/coverage/CoverageView.test.ts +0 -202
  940. package/front_end/panels/css_overview/CSSOverviewPanel.test.ts +0 -40
  941. package/front_end/panels/developer_resources/DeveloperResourcesView.test.ts +0 -43
  942. package/front_end/panels/developer_resources/developer_resources.test.ts +0 -11
  943. package/front_end/panels/elements/AccessibilityTreeView.test.ts +0 -50
  944. package/front_end/panels/elements/CSSRuleValidator.test.ts +0 -482
  945. package/front_end/panels/elements/CSSValueTraceView.test.ts +0 -215
  946. package/front_end/panels/elements/ClassesPaneWidget.test.ts +0 -48
  947. package/front_end/panels/elements/ColorSwatchPopoverIcon.test.ts +0 -63
  948. package/front_end/panels/elements/ComputedStyleModel.test.ts +0 -155
  949. package/front_end/panels/elements/ComputedStyleWidget.test.ts +0 -153
  950. package/front_end/panels/elements/DOMLinkifier.test.ts +0 -60
  951. package/front_end/panels/elements/DOMTreeWidget.test.ts +0 -58
  952. package/front_end/panels/elements/ElementStatePaneWidget.test.ts +0 -363
  953. package/front_end/panels/elements/ElementsPanel.test.ts +0 -211
  954. package/front_end/panels/elements/ElementsTreeElement.test.ts +0 -443
  955. package/front_end/panels/elements/ElementsTreeOutline.test.ts +0 -218
  956. package/front_end/panels/elements/EventListenersWidget.test.ts +0 -129
  957. package/front_end/panels/elements/InspectElementModeController.test.ts +0 -163
  958. package/front_end/panels/elements/LayoutPane.test.ts +0 -219
  959. package/front_end/panels/elements/PlatformFontsWidget.test.ts +0 -46
  960. package/front_end/panels/elements/PropertiesWidget.test.ts +0 -76
  961. package/front_end/panels/elements/PropertyRenderer.test.ts +0 -340
  962. package/front_end/panels/elements/StylePropertiesSection.test.ts +0 -324
  963. package/front_end/panels/elements/StylePropertyHighlighter.test.ts +0 -160
  964. package/front_end/panels/elements/StylePropertyTreeElement.test.ts +0 -2250
  965. package/front_end/panels/elements/StylePropertyUtils.test.ts +0 -41
  966. package/front_end/panels/elements/StylesSidebarPane.test.ts +0 -716
  967. package/front_end/panels/elements/TopLayerContainer.test.ts +0 -55
  968. package/front_end/panels/elements/WebCustomData.test.ts +0 -77
  969. package/front_end/panels/elements/components/AccessibilityTreeNode.test.ts +0 -44
  970. package/front_end/panels/elements/components/AdornerManager.test.ts +0 -82
  971. package/front_end/panels/elements/components/CSSHintDetailsView.test.ts +0 -40
  972. package/front_end/panels/elements/components/CSSPropertyDocsView.test.ts +0 -131
  973. package/front_end/panels/elements/components/CSSPropertyIconResolver.test.ts +0 -931
  974. package/front_end/panels/elements/components/CSSQuery.test.ts +0 -58
  975. package/front_end/panels/elements/components/CSSVariableValueView.test.ts +0 -20
  976. package/front_end/panels/elements/components/ComputedStyleProperty.test.ts +0 -38
  977. package/front_end/panels/elements/components/ComputedStyleTrace.test.ts +0 -58
  978. package/front_end/panels/elements/components/ElementsBreadcrumbs.test.ts +0 -435
  979. package/front_end/panels/elements/components/ElementsTreeExpandButton.test.ts +0 -50
  980. package/front_end/panels/elements/components/QueryContainer.test.ts +0 -151
  981. package/front_end/panels/elements/components/StylePropertyEditor.test.ts +0 -188
  982. package/front_end/panels/emulation/AdvancedApp.test.ts +0 -80
  983. package/front_end/panels/emulation/MediaQueryInspector.test.ts +0 -55
  984. package/front_end/panels/event_listeners/EventListenersView.test.ts +0 -50
  985. package/front_end/panels/explain/PromptBuilder.test.ts +0 -587
  986. package/front_end/panels/explain/components/ConsoleInsight.test.ts +0 -926
  987. package/front_end/panels/issues/IssueAggregator.test.ts +0 -427
  988. package/front_end/panels/issues/IssueView.test.ts +0 -75
  989. package/front_end/panels/issues/IssuesPane.test.ts +0 -32
  990. package/front_end/panels/layer_viewer/layer_viewer.test.ts +0 -11
  991. package/front_end/panels/layers/LayersPanel.test.ts +0 -55
  992. package/front_end/panels/lighthouse/LighthouseController.test.ts +0 -36
  993. package/front_end/panels/lighthouse/LighthousePanel.test.ts +0 -89
  994. package/front_end/panels/lighthouse/LighthouseProtocolService.test.ts +0 -70
  995. package/front_end/panels/lighthouse/LighthouseReportRenderer.test.ts +0 -123
  996. package/front_end/panels/linear_memory_inspector/LinearMemoryInspectorController.test.ts +0 -201
  997. package/front_end/panels/linear_memory_inspector/LinearMemoryInspectorPane.test.ts +0 -54
  998. package/front_end/panels/linear_memory_inspector/components/LinearMemoryHighlightChipList.test.ts +0 -124
  999. package/front_end/panels/linear_memory_inspector/components/LinearMemoryInspector.test.ts +0 -421
  1000. package/front_end/panels/linear_memory_inspector/components/LinearMemoryNavigator.test.ts +0 -194
  1001. package/front_end/panels/linear_memory_inspector/components/LinearMemoryValueInterpreter.test.ts +0 -118
  1002. package/front_end/panels/linear_memory_inspector/components/LinearMemoryViewer.test.ts +0 -397
  1003. package/front_end/panels/linear_memory_inspector/components/ValueInterpreterDisplay.test.ts +0 -450
  1004. package/front_end/panels/linear_memory_inspector/components/ValueInterpreterSettings.test.ts +0 -91
  1005. package/front_end/panels/media/MainView.test.ts +0 -127
  1006. package/front_end/panels/media/TickingFlameChartHelpers.test.ts +0 -90
  1007. package/front_end/panels/mobile_throttling/ThrottlingManager.test.ts +0 -119
  1008. package/front_end/panels/mobile_throttling/ThrottlingSettingsTab.test.ts +0 -115
  1009. package/front_end/panels/network/BlockedURLsPane.test.ts +0 -80
  1010. package/front_end/panels/network/NetworkConfigView.test.ts +0 -50
  1011. package/front_end/panels/network/NetworkDataGridNode.test.ts +0 -474
  1012. package/front_end/panels/network/NetworkItemView.test.ts +0 -169
  1013. package/front_end/panels/network/NetworkLogView.test.ts +0 -1101
  1014. package/front_end/panels/network/NetworkOverview.test.ts +0 -60
  1015. package/front_end/panels/network/NetworkPanel.test.ts +0 -103
  1016. package/front_end/panels/network/NetworkSearchScope.test.ts +0 -182
  1017. package/front_end/panels/network/RequestCookiesView.test.ts +0 -49
  1018. package/front_end/panels/network/RequestHTMLView.test.ts +0 -28
  1019. package/front_end/panels/network/RequestPayloadView.test.ts +0 -13
  1020. package/front_end/panels/network/RequestPreviewView.test.ts +0 -105
  1021. package/front_end/panels/network/RequestResponseView.test.ts +0 -130
  1022. package/front_end/panels/network/RequestTimingView.test.ts +0 -172
  1023. package/front_end/panels/network/ResourceDirectSocketChunkView.test.ts +0 -335
  1024. package/front_end/panels/network/components/DirectSocketConnectionView.test.ts +0 -253
  1025. package/front_end/panels/network/components/HeaderSectionRow.test.ts +0 -659
  1026. package/front_end/panels/network/components/RequestHeaderSection.test.ts +0 -101
  1027. package/front_end/panels/network/components/RequestHeadersView.test.ts +0 -537
  1028. package/front_end/panels/network/components/RequestTrustTokensView.test.ts +0 -80
  1029. package/front_end/panels/network/components/ResponseHeaderSection.test.ts +0 -1359
  1030. package/front_end/panels/performance_monitor/PerformanceMonitor.test.ts +0 -152
  1031. package/front_end/panels/profiler/HeapDetachedElementsView.test.ts +0 -34
  1032. package/front_end/panels/profiler/HeapProfileView.test.ts +0 -34
  1033. package/front_end/panels/profiler/HeapSnapshotView.test.ts +0 -35
  1034. package/front_end/panels/protocol_monitor/JSONEditor.test.ts +0 -1321
  1035. package/front_end/panels/protocol_monitor/ProtocolMonitor.test.ts +0 -548
  1036. package/front_end/panels/recorder/RecorderController.test.ts +0 -483
  1037. package/front_end/panels/recorder/components/CreateRecordingView.test.ts +0 -141
  1038. package/front_end/panels/recorder/components/RecordingListView.test.ts +0 -64
  1039. package/front_end/panels/recorder/components/RecordingView.test.ts +0 -186
  1040. package/front_end/panels/recorder/components/ReplaySection.test.ts +0 -113
  1041. package/front_end/panels/recorder/components/SelectButton.test.ts +0 -56
  1042. package/front_end/panels/recorder/components/StepEditor.test.ts +0 -711
  1043. package/front_end/panels/recorder/components/StepView.test.ts +0 -208
  1044. package/front_end/panels/recorder/converters/LighthouseConverter.test.ts +0 -79
  1045. package/front_end/panels/recorder/converters/PuppeteerConverter.test.ts +0 -88
  1046. package/front_end/panels/recorder/converters/PuppeteerReplayConverter.test.ts +0 -59
  1047. package/front_end/panels/recorder/injected/selectors/CSSSelector.test.ts +0 -39
  1048. package/front_end/panels/recorder/injected.test.ts +0 -364
  1049. package/front_end/panels/recorder/models/RecorderSettings.test.ts +0 -65
  1050. package/front_end/panels/recorder/models/RecorderShortcutHelper.test.ts +0 -59
  1051. package/front_end/panels/recorder/models/RecordingPlayer.test.ts +0 -235
  1052. package/front_end/panels/recorder/models/SchemaUtils.test.ts +0 -35
  1053. package/front_end/panels/recorder/models/ScreenshotUtils.test.ts +0 -74
  1054. package/front_end/panels/recorder/models/Section.test.ts +0 -98
  1055. package/front_end/panels/recorder/models/recording-storage.test.ts +0 -66
  1056. package/front_end/panels/recorder/models/screenshot-storage.test.ts +0 -159
  1057. package/front_end/panels/recorder/util/SharedObject.test.ts +0 -88
  1058. package/front_end/panels/screencast/ScreencastApp.test.ts +0 -24
  1059. package/front_end/panels/search/SearchResultsPane.test.ts +0 -228
  1060. package/front_end/panels/search/SearchView.test.ts +0 -197
  1061. package/front_end/panels/security/CookieControlsView.test.ts +0 -65
  1062. package/front_end/panels/security/CookieReportView.test.ts +0 -161
  1063. package/front_end/panels/security/SecurityModel.test.ts +0 -45
  1064. package/front_end/panels/security/SecurityPanel.test.ts +0 -264
  1065. package/front_end/panels/settings/AISettingsTab.test.ts +0 -293
  1066. package/front_end/panels/settings/components/SyncSection.test.ts +0 -110
  1067. package/front_end/panels/settings/emulation/components/UserAgentClientHintsForm.test.ts +0 -146
  1068. package/front_end/panels/settings/emulation/utils/StructuredHeaders.test.ts +0 -462
  1069. package/front_end/panels/settings/emulation/utils/UserAgentMetadata.test.ts +0 -94
  1070. package/front_end/panels/snippets/ScriptSnippetFileSystem.test.ts +0 -29
  1071. package/front_end/panels/sources/AiCodeCompletionPlugin.test.ts +0 -119
  1072. package/front_end/panels/sources/BreakpointEditDialog.test.ts +0 -127
  1073. package/front_end/panels/sources/BreakpointsView.test.ts +0 -1878
  1074. package/front_end/panels/sources/BreakpointsViewUtils.test.ts +0 -209
  1075. package/front_end/panels/sources/CSSPlugin.test.ts +0 -90
  1076. package/front_end/panels/sources/CoveragePlugin.test.ts +0 -82
  1077. package/front_end/panels/sources/DebuggerPausedMessage.test.ts +0 -138
  1078. package/front_end/panels/sources/DebuggerPlugin.test.ts +0 -725
  1079. package/front_end/panels/sources/FilePathScoreFunction.test.ts +0 -171
  1080. package/front_end/panels/sources/FilteredUISourceCodeListProvider.test.ts +0 -150
  1081. package/front_end/panels/sources/NavigatorView.test.ts +0 -277
  1082. package/front_end/panels/sources/OutlineQuickOpen.test.ts +0 -1064
  1083. package/front_end/panels/sources/ResourceOriginPlugin.test.ts +0 -38
  1084. package/front_end/panels/sources/SourcesNavigator.test.ts +0 -615
  1085. package/front_end/panels/sources/SourcesPanel.test.ts +0 -90
  1086. package/front_end/panels/sources/SourcesView.test.ts +0 -242
  1087. package/front_end/panels/sources/TabbedEditorContainer.test.ts +0 -122
  1088. package/front_end/panels/sources/UISourceCodeFrame.test.ts +0 -104
  1089. package/front_end/panels/sources/components/HeadersView.test.ts +0 -573
  1090. package/front_end/panels/timeline/AnnotationHelpers.test.ts +0 -190
  1091. package/front_end/panels/timeline/Breadcrumbs.test.ts +0 -281
  1092. package/front_end/panels/timeline/CountersGraph.test.ts +0 -80
  1093. package/front_end/panels/timeline/EntriesFilter.test.ts +0 -710
  1094. package/front_end/panels/timeline/Initiators.test.ts +0 -176
  1095. package/front_end/panels/timeline/ModificationsManager.test.ts +0 -254
  1096. package/front_end/panels/timeline/RecordingMetadata.test.ts +0 -147
  1097. package/front_end/panels/timeline/SaveFileFormatter.test.ts +0 -77
  1098. package/front_end/panels/timeline/ThirdPartyTreeView.test.ts +0 -84
  1099. package/front_end/panels/timeline/TimelineController.test.ts +0 -98
  1100. package/front_end/panels/timeline/TimelineDetailsView.test.ts +0 -188
  1101. package/front_end/panels/timeline/TimelineFilters.test.ts +0 -72
  1102. package/front_end/panels/timeline/TimelineFlameChartDataProvider.test.ts +0 -377
  1103. package/front_end/panels/timeline/TimelineFlameChartNetworkDataProvider.test.ts +0 -266
  1104. package/front_end/panels/timeline/TimelineFlameChartView.test.ts +0 -1209
  1105. package/front_end/panels/timeline/TimelineHistoryManager.test.ts +0 -160
  1106. package/front_end/panels/timeline/TimelineLoader.test.ts +0 -167
  1107. package/front_end/panels/timeline/TimelineMiniMap.test.ts +0 -135
  1108. package/front_end/panels/timeline/TimelinePanel.test.ts +0 -550
  1109. package/front_end/panels/timeline/TimelineSelection.test.ts +0 -112
  1110. package/front_end/panels/timeline/TimelineTreeView.test.ts +0 -339
  1111. package/front_end/panels/timeline/TimelineUIUtils.test.ts +0 -1793
  1112. package/front_end/panels/timeline/TrackConfigBanner.test.ts +0 -68
  1113. package/front_end/panels/timeline/TrackConfiguration.test.ts +0 -46
  1114. package/front_end/panels/timeline/components/BreadcrumbsUI.test.ts +0 -101
  1115. package/front_end/panels/timeline/components/CPUThrottlingSelector.test.ts +0 -100
  1116. package/front_end/panels/timeline/components/ExportTraceOptions.test.ts +0 -281
  1117. package/front_end/panels/timeline/components/FieldSettingsDialog.test.ts +0 -295
  1118. package/front_end/panels/timeline/components/IgnoreListSetting.test.ts +0 -325
  1119. package/front_end/panels/timeline/components/InteractionBreakdown.test.ts +0 -37
  1120. package/front_end/panels/timeline/components/Invalidations.test.ts +0 -38
  1121. package/front_end/panels/timeline/components/LayoutShiftDetails.test.ts +0 -72
  1122. package/front_end/panels/timeline/components/LiveMetricsView.test.ts +0 -1006
  1123. package/front_end/panels/timeline/components/MetricCard.test.ts +0 -637
  1124. package/front_end/panels/timeline/components/NetworkRequestDetails.test.ts +0 -178
  1125. package/front_end/panels/timeline/components/NetworkThrottlingSelector.test.ts +0 -188
  1126. package/front_end/panels/timeline/components/OriginMap.test.ts +0 -359
  1127. package/front_end/panels/timeline/components/RelatedInsightChips.test.ts +0 -91
  1128. package/front_end/panels/timeline/components/Sidebar.test.ts +0 -185
  1129. package/front_end/panels/timeline/components/SidebarAnnotationsTab.test.ts +0 -261
  1130. package/front_end/panels/timeline/components/SidebarInsightsTab.test.ts +0 -44
  1131. package/front_end/panels/timeline/components/SidebarSingleInsightSet.test.ts +0 -165
  1132. package/front_end/panels/timeline/components/TimelineSummary.test.ts +0 -77
  1133. package/front_end/panels/timeline/components/Utils.test.ts +0 -112
  1134. package/front_end/panels/timeline/components/insights/BaseInsightComponent.test.ts +0 -382
  1135. package/front_end/panels/timeline/components/insights/CLSCulprits.test.ts +0 -44
  1136. package/front_end/panels/timeline/components/insights/INPBreakdown.test.ts +0 -74
  1137. package/front_end/panels/timeline/components/insights/NetworkDependencyTree.test.ts +0 -76
  1138. package/front_end/panels/timeline/components/insights/NodeLink.test.ts +0 -113
  1139. package/front_end/panels/timeline/components/insights/Table.test.ts +0 -60
  1140. package/front_end/panels/timeline/overlays/OverlaysImpl.test.ts +0 -1424
  1141. package/front_end/panels/timeline/overlays/components/TimespanBreakdownOverlay.test.ts +0 -41
  1142. package/front_end/panels/timeline/track_appenders/AnimationsTrackAppender.test.ts +0 -101
  1143. package/front_end/panels/timeline/track_appenders/AppenderUtils.test.ts +0 -197
  1144. package/front_end/panels/timeline/track_appenders/CompatibilityTracksAppender.test.ts +0 -229
  1145. package/front_end/panels/timeline/track_appenders/ExtensionTrackAppender.test.ts +0 -249
  1146. package/front_end/panels/timeline/track_appenders/GPUTrackAppender.test.ts +0 -116
  1147. package/front_end/panels/timeline/track_appenders/InteractionsTrackAppender.test.ts +0 -124
  1148. package/front_end/panels/timeline/track_appenders/LayoutShiftsTrackAppender.test.ts +0 -104
  1149. package/front_end/panels/timeline/track_appenders/NetworkTrackAppender.test.ts +0 -65
  1150. package/front_end/panels/timeline/track_appenders/ThreadAppender.test.ts +0 -595
  1151. package/front_end/panels/timeline/track_appenders/TimingsTrackAppender.test.ts +0 -347
  1152. package/front_end/panels/timeline/utils/AICallTree.test.ts +0 -453
  1153. package/front_end/panels/timeline/utils/EntityMapper.test.ts +0 -123
  1154. package/front_end/panels/timeline/utils/EntryName.test.ts +0 -177
  1155. package/front_end/panels/timeline/utils/EntryNodes.test.ts +0 -137
  1156. package/front_end/panels/timeline/utils/EventsSerializer.test.ts +0 -71
  1157. package/front_end/panels/timeline/utils/FreshRecording.test.ts +0 -23
  1158. package/front_end/panels/timeline/utils/Helpers.test.ts +0 -85
  1159. package/front_end/panels/timeline/utils/IgnoreList.test.ts +0 -192
  1160. package/front_end/panels/timeline/utils/ImageCache.test.ts +0 -107
  1161. package/front_end/panels/timeline/utils/InsightAIContext.test.ts +0 -120
  1162. package/front_end/panels/timeline/utils/SourceMapsResolver.test.ts +0 -334
  1163. package/front_end/panels/timeline/utils/Treemap.test.ts +0 -321
  1164. package/front_end/panels/utils/utils.test.ts +0 -232
  1165. package/front_end/panels/web_audio/WebAudioView.test.ts +0 -247
  1166. package/front_end/panels/web_audio/web_audio.test.ts +0 -11
  1167. package/front_end/panels/webauthn/WebauthnPane.test.ts +0 -377
  1168. package/front_end/panels/whats_new/ReleaseNote.test.ts +0 -92
  1169. package/front_end/panels/whats_new/ReleaseNoteView.test.ts +0 -160
  1170. package/front_end/services/trace_bounds/TraceBounds.test.ts +0 -155
  1171. package/front_end/services/tracing/ExternalRequests.test.ts +0 -39
  1172. package/front_end/services/tracing/ExternalRequests.ts +0 -74
  1173. package/front_end/services/tracing/TracingManager.test.ts +0 -102
  1174. package/front_end/testing/AiAssistanceHelpers.ts +0 -349
  1175. package/front_end/testing/ConsoleHelpers.ts +0 -39
  1176. package/front_end/testing/ContextMenuHelpers.ts +0 -46
  1177. package/front_end/testing/Cookies.ts +0 -72
  1178. package/front_end/testing/DOMHelpers.ts +0 -359
  1179. package/front_end/testing/DataGridHelpers.ts +0 -83
  1180. package/front_end/testing/EnvironmentHelpers.ts +0 -565
  1181. package/front_end/testing/ExpectStubCall.ts +0 -46
  1182. package/front_end/testing/ExtensionHelpers.ts +0 -77
  1183. package/front_end/testing/FileManagerHelpers.ts +0 -22
  1184. package/front_end/testing/InsightHelpers.ts +0 -88
  1185. package/front_end/testing/LanguagePluginHelpers.ts +0 -91
  1186. package/front_end/testing/MockConnection.ts +0 -163
  1187. package/front_end/testing/MockExecutionContext.ts +0 -24
  1188. package/front_end/testing/MockIssuesManager.ts +0 -64
  1189. package/front_end/testing/MockIssuesModel.ts +0 -22
  1190. package/front_end/testing/MockNetworkLog.ts +0 -41
  1191. package/front_end/testing/MockScopeChain.test.ts +0 -25
  1192. package/front_end/testing/MockScopeChain.ts +0 -402
  1193. package/front_end/testing/MockSettingStorage.ts +0 -23
  1194. package/front_end/testing/MutationHelpers.test.ts +0 -271
  1195. package/front_end/testing/MutationHelpers.ts +0 -250
  1196. package/front_end/testing/NetworkHelpers.ts +0 -36
  1197. package/front_end/testing/OverridesHelpers.ts +0 -85
  1198. package/front_end/testing/PersistenceHelpers.ts +0 -64
  1199. package/front_end/testing/PropertyParser.ts +0 -34
  1200. package/front_end/testing/README.md +0 -123
  1201. package/front_end/testing/ResourceTreeHelpers.ts +0 -126
  1202. package/front_end/testing/SnapshotTester.snapshot.txt +0 -9
  1203. package/front_end/testing/SnapshotTester.test.ts +0 -32
  1204. package/front_end/testing/SnapshotTester.ts +0 -150
  1205. package/front_end/testing/SourceMapEncoder.test.ts +0 -169
  1206. package/front_end/testing/SourceMapEncoder.ts +0 -130
  1207. package/front_end/testing/SourceMapHelpers.ts +0 -113
  1208. package/front_end/testing/StackTraceHelpers.ts +0 -47
  1209. package/front_end/testing/StorageItemsViewHelpers.ts +0 -24
  1210. package/front_end/testing/StubIssue.ts +0 -123
  1211. package/front_end/testing/StyleHelpers.ts +0 -160
  1212. package/front_end/testing/TraceHelpers.ts +0 -1003
  1213. package/front_end/testing/TraceLoader.ts +0 -344
  1214. package/front_end/testing/TrackAsyncOperations.ts +0 -276
  1215. package/front_end/testing/UISourceCodeHelpers.ts +0 -157
  1216. package/front_end/testing/UserMetricsHelpers.ts +0 -17
  1217. package/front_end/testing/ViewFunctionHelpers.ts +0 -62
  1218. package/front_end/testing/VisualLoggingHelpers.ts +0 -11
  1219. package/front_end/testing/test_setup.ts +0 -117
  1220. package/front_end/ui/components/adorners/Adorner.test.ts +0 -134
  1221. package/front_end/ui/components/buttons/Button.test.ts +0 -268
  1222. package/front_end/ui/components/cards/Card.test.ts +0 -101
  1223. package/front_end/ui/components/chrome_link/ChromeLink.test.ts +0 -57
  1224. package/front_end/ui/components/code_highlighter/CodeHighlighter.test.ts +0 -318
  1225. package/front_end/ui/components/dialogs/ButtonDialog.test.ts +0 -170
  1226. package/front_end/ui/components/dialogs/Dialog.test.ts +0 -903
  1227. package/front_end/ui/components/dialogs/ShortcutDialog.test.ts +0 -79
  1228. package/front_end/ui/components/diff_view/DiffView.test.ts +0 -94
  1229. package/front_end/ui/components/expandable_list/ExpandableList.test.ts +0 -77
  1230. package/front_end/ui/components/helpers/helpers.test.ts +0 -118
  1231. package/front_end/ui/components/highlighting/HighlightManager.test.ts +0 -89
  1232. package/front_end/ui/components/highlighting/highlighting.css +0 -9
  1233. package/front_end/ui/components/icon_button/FileSourceIcon.test.ts +0 -32
  1234. package/front_end/ui/components/icon_button/Icon.test.ts +0 -126
  1235. package/front_end/ui/components/icon_button/IconButton.test.ts +0 -277
  1236. package/front_end/ui/components/issue_counter/IssueCounter.test.ts +0 -234
  1237. package/front_end/ui/components/issue_counter/IssueLinkIcon.test.ts +0 -187
  1238. package/front_end/ui/components/linkifier/LinkifierImpl.test.ts +0 -84
  1239. package/front_end/ui/components/markdown_view/CodeBlock.test.ts +0 -92
  1240. package/front_end/ui/components/markdown_view/MarkdownImage.test.ts +0 -56
  1241. package/front_end/ui/components/markdown_view/MarkdownLink.test.ts +0 -30
  1242. package/front_end/ui/components/markdown_view/MarkdownView.test.ts +0 -445
  1243. package/front_end/ui/components/menus/SelectMenu.test.ts +0 -106
  1244. package/front_end/ui/components/node_text/NodeText.test.ts +0 -80
  1245. package/front_end/ui/components/panel_feedback/FeedbackButton.test.ts +0 -36
  1246. package/front_end/ui/components/panel_feedback/PanelFeedback.test.ts +0 -47
  1247. package/front_end/ui/components/panel_feedback/PreviewToggle.test.ts +0 -75
  1248. package/front_end/ui/components/render_coordinator/render_coordinator.test.ts +0 -243
  1249. package/front_end/ui/components/report_view/ReportView.test.ts +0 -44
  1250. package/front_end/ui/components/request_link_icon/RequestLinkIcon.test.ts +0 -298
  1251. package/front_end/ui/components/settings/SettingCheckbox.test.ts +0 -205
  1252. package/front_end/ui/components/settings/SettingDeprecationWarning.test.ts +0 -68
  1253. package/front_end/ui/components/snackbars/Snackbar.test.ts +0 -141
  1254. package/front_end/ui/components/survey_link/SurveyLink.test.ts +0 -118
  1255. package/front_end/ui/components/switch/SwitchImpl.test.ts +0 -54
  1256. package/front_end/ui/components/text_editor/AiCodeCompletionTeaserPlaceholder.test.ts +0 -84
  1257. package/front_end/ui/components/text_editor/AutocompleteHistory.test.ts +0 -126
  1258. package/front_end/ui/components/text_editor/ExecutionPositionHighlighter.test.ts +0 -140
  1259. package/front_end/ui/components/text_editor/TextEditor.test.ts +0 -340
  1260. package/front_end/ui/components/text_editor/TextEditorHistory.test.ts +0 -170
  1261. package/front_end/ui/components/text_editor/javascript.test.ts +0 -121
  1262. package/front_end/ui/components/text_prompt/TextPrompt.test.ts +0 -81
  1263. package/front_end/ui/components/tooltips/Tooltip.test.ts +0 -307
  1264. package/front_end/ui/components/tree_outline/TreeOutline.test.ts +0 -1472
  1265. package/front_end/ui/legacy/ARIAUtils.test.ts +0 -140
  1266. package/front_end/ui/legacy/ActionRegistration.test.ts +0 -173
  1267. package/front_end/ui/legacy/Context.test.ts +0 -14
  1268. package/front_end/ui/legacy/ContextMenu.test.ts +0 -261
  1269. package/front_end/ui/legacy/DockController.test.ts +0 -88
  1270. package/front_end/ui/legacy/FilterBar.test.ts +0 -52
  1271. package/front_end/ui/legacy/Fragment.test.ts +0 -60
  1272. package/front_end/ui/legacy/Geometry.test.ts +0 -658
  1273. package/front_end/ui/legacy/Infobar.test.ts +0 -53
  1274. package/front_end/ui/legacy/InspectorView.test.ts +0 -99
  1275. package/front_end/ui/legacy/KeyboardShortcut.test.ts +0 -28
  1276. package/front_end/ui/legacy/ListModel.test.ts +0 -78
  1277. package/front_end/ui/legacy/ListWidget.test.ts +0 -78
  1278. package/front_end/ui/legacy/SettingsUI.test.ts +0 -157
  1279. package/front_end/ui/legacy/ShortcutRegistry.test.ts +0 -35
  1280. package/front_end/ui/legacy/SplitWidget.test.ts +0 -62
  1281. package/front_end/ui/legacy/SuggestBox.test.ts +0 -126
  1282. package/front_end/ui/legacy/Toolbar.test.ts +0 -244
  1283. package/front_end/ui/legacy/Treeoutline.test.ts +0 -252
  1284. package/front_end/ui/legacy/UIUtils.test.ts +0 -255
  1285. package/front_end/ui/legacy/View.test.ts +0 -76
  1286. package/front_end/ui/legacy/ViewManager.test.ts +0 -235
  1287. package/front_end/ui/legacy/ViewRegistration.test.ts +0 -76
  1288. package/front_end/ui/legacy/Widget.test.ts +0 -206
  1289. package/front_end/ui/legacy/XLink.test.ts +0 -68
  1290. package/front_end/ui/legacy/components/color_picker/ColorFormatSpec.test.ts +0 -217
  1291. package/front_end/ui/legacy/components/color_picker/Spectrum.test.ts +0 -101
  1292. package/front_end/ui/legacy/components/data_grid/DataGridElement.test.ts +0 -272
  1293. package/front_end/ui/legacy/components/inline_editor/AnimationTimingModel.test.ts +0 -23
  1294. package/front_end/ui/legacy/components/inline_editor/AnimationTimingUI.test.ts +0 -58
  1295. package/front_end/ui/legacy/components/inline_editor/BezierUI.test.ts +0 -124
  1296. package/front_end/ui/legacy/components/inline_editor/CSSAngle.test.ts +0 -399
  1297. package/front_end/ui/legacy/components/inline_editor/CSSLinearEasingModel.test.ts +0 -64
  1298. package/front_end/ui/legacy/components/inline_editor/CSSShadowEditor.test.ts +0 -36
  1299. package/front_end/ui/legacy/components/inline_editor/ColorMixSwatch.test.ts +0 -40
  1300. package/front_end/ui/legacy/components/inline_editor/ColorSwatch.test.ts +0 -259
  1301. package/front_end/ui/legacy/components/inline_editor/FontEditorUnitConverter.test.ts +0 -47
  1302. package/front_end/ui/legacy/components/inline_editor/FontEditorUtils.test.ts +0 -27
  1303. package/front_end/ui/legacy/components/inline_editor/LinkSwatch.test.ts +0 -86
  1304. package/front_end/ui/legacy/components/object_ui/JavaScriptREPL.test.ts +0 -45
  1305. package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.test.ts +0 -72
  1306. package/front_end/ui/legacy/components/perf_ui/ChartViewport.test.ts +0 -63
  1307. package/front_end/ui/legacy/components/perf_ui/FilmStripView.test.ts +0 -218
  1308. package/front_end/ui/legacy/components/perf_ui/FlameChart.test.ts +0 -1630
  1309. package/front_end/ui/legacy/components/perf_ui/PieChart.test.ts +0 -220
  1310. package/front_end/ui/legacy/components/perf_ui/TimelineGrid.test.ts +0 -152
  1311. package/front_end/ui/legacy/components/perf_ui/TimelineOverviewCalculator.test.ts +0 -70
  1312. package/front_end/ui/legacy/components/quick_open/CommandMenu.test.ts +0 -74
  1313. package/front_end/ui/legacy/components/quick_open/FilteredListWidget.test.ts +0 -111
  1314. package/front_end/ui/legacy/components/source_frame/BinaryResourceViewFactory.test.ts +0 -81
  1315. package/front_end/ui/legacy/components/source_frame/ResourceSourceFrame.test.ts +0 -77
  1316. package/front_end/ui/legacy/components/source_frame/SourceFrame.test.ts +0 -146
  1317. package/front_end/ui/legacy/components/source_frame/StreamingContentHexView.test.ts +0 -67
  1318. package/front_end/ui/legacy/components/utils/JSPresentationUtils.test.ts +0 -52
  1319. package/front_end/ui/legacy/components/utils/Linkifier.test.ts +0 -547
  1320. package/front_end/ui/legacy/theme_support/ThemeSupport.test.ts +0 -129
  1321. package/front_end/ui/lit/i18n-template.test.ts +0 -51
  1322. package/front_end/ui/lit/strip-whitespace.test.ts +0 -110
  1323. package/front_end/ui/visual_logging/Debugging.test.ts +0 -21
  1324. package/front_end/ui/visual_logging/DomState.test.ts +0 -241
  1325. package/front_end/ui/visual_logging/LoggingConfig.test.ts +0 -118
  1326. package/front_end/ui/visual_logging/LoggingDriver.test.ts +0 -1069
  1327. package/front_end/ui/visual_logging/LoggingEvents.test.ts +0 -271
  1328. package/front_end/ui/visual_logging/LoggingState.test.ts +0 -122
  1329. package/front_end/ui/visual_logging/NonDomState.test.ts +0 -44
  1330. package/inspector_overlay/common.test.ts +0 -38
  1331. package/inspector_overlay/css_grid_label_helpers.test.ts +0 -962
  1332. package/inspector_overlay/highlight_common.test.ts +0 -42
  1333. package/inspector_overlay/highlight_flex_common.test.ts +0 -511
  1334. package/inspector_overlay/tool_highlight.test.ts +0 -105
  1335. package/inspector_overlay/tool_source_order.test.ts +0 -130
  1336. package/inspector_overlay/tool_window_controls.test.ts +0 -81
  1337. package/scripts/DIR_METADATA +0 -3
  1338. package/scripts/README.md +0 -26
  1339. package/scripts/__init__.py +0 -0
  1340. package/scripts/add_icon_paths.py +0 -71
  1341. package/scripts/ai_assistance/README.md +0 -60
  1342. package/scripts/ai_assistance/auto-run/auto-run.ts +0 -429
  1343. package/scripts/ai_assistance/auto-run/shared/comment-parsers.test.ts +0 -168
  1344. package/scripts/ai_assistance/auto-run/shared/comment-parsers.ts +0 -97
  1345. package/scripts/ai_assistance/auto-run/shared/puppeteer-helpers.ts +0 -307
  1346. package/scripts/ai_assistance/auto-run/targets/elements-executor.ts +0 -62
  1347. package/scripts/ai_assistance/auto-run/targets/elements-multimodal-executor.ts +0 -62
  1348. package/scripts/ai_assistance/auto-run/targets/factory.ts +0 -33
  1349. package/scripts/ai_assistance/auto-run/targets/interface.ts +0 -29
  1350. package/scripts/ai_assistance/auto-run/targets/patching-executor.ts +0 -69
  1351. package/scripts/ai_assistance/auto-run/targets/performance-insights-executor.ts +0 -99
  1352. package/scripts/ai_assistance/auto-run/targets/performance-main-thread-executor.ts +0 -99
  1353. package/scripts/ai_assistance/auto-run/trace-downloader.ts +0 -91
  1354. package/scripts/ai_assistance/eval/index.html +0 -32
  1355. package/scripts/ai_assistance/eval/index.js +0 -568
  1356. package/scripts/ai_assistance/package.json +0 -8
  1357. package/scripts/ai_assistance/suite/README.md +0 -57
  1358. package/scripts/ai_assistance/suite/helpers/evaluators.ts +0 -183
  1359. package/scripts/ai_assistance/suite/helpers/gemini.ts +0 -122
  1360. package/scripts/ai_assistance/suite/helpers/outputs.ts +0 -112
  1361. package/scripts/ai_assistance/suite/instructions/lcp-breakdown.md +0 -12
  1362. package/scripts/ai_assistance/suite/instructions/load.ts +0 -13
  1363. package/scripts/ai_assistance/suite/instructions/scoring.md +0 -27
  1364. package/scripts/ai_assistance/suite/performance.eval.ts +0 -18
  1365. package/scripts/ai_assistance/suite/to_eval_output.ts +0 -166
  1366. package/scripts/ai_assistance/suite/types.d.ts +0 -40
  1367. package/scripts/ai_assistance/suite/upload_to_gcp.ts +0 -104
  1368. package/scripts/ai_assistance/to_tsv.mjs +0 -39
  1369. package/scripts/ai_assistance/tsconfig.json +0 -14
  1370. package/scripts/ai_assistance/types.d.ts +0 -81
  1371. package/scripts/build/README.md +0 -2
  1372. package/scripts/build/__init__.py +0 -3
  1373. package/scripts/build/assert_grd.py +0 -57
  1374. package/scripts/build/assert_third_party_readmes.py +0 -70
  1375. package/scripts/build/build_inspector_overlay.py +0 -106
  1376. package/scripts/build/code_generator_frontend.py +0 -413
  1377. package/scripts/build/compress_files.js +0 -89
  1378. package/scripts/build/cross_reference_ninja_and_tsc.js +0 -180
  1379. package/scripts/build/devtools_plugin.js +0 -164
  1380. package/scripts/build/efficiently_recompile.py +0 -29
  1381. package/scripts/build/esbuild.js +0 -56
  1382. package/scripts/build/generate_aria.py +0 -36
  1383. package/scripts/build/generate_css_js_files.js +0 -83
  1384. package/scripts/build/generate_deprecations.py +0 -99
  1385. package/scripts/build/generate_devtools_grd.py +0 -123
  1386. package/scripts/build/generate_devtools_json.js +0 -27
  1387. package/scripts/build/generate_html_entrypoint.js +0 -49
  1388. package/scripts/build/generate_supported_css.py +0 -135
  1389. package/scripts/build/ninja/README.md +0 -190
  1390. package/scripts/build/ninja/bundle.gni +0 -85
  1391. package/scripts/build/ninja/copy-file.js +0 -38
  1392. package/scripts/build/ninja/copy-files.js +0 -39
  1393. package/scripts/build/ninja/copy.gni +0 -59
  1394. package/scripts/build/ninja/devtools_entrypoint.gni +0 -221
  1395. package/scripts/build/ninja/devtools_module.gni +0 -33
  1396. package/scripts/build/ninja/devtools_pre_built.gni +0 -55
  1397. package/scripts/build/ninja/generate-declaration.js +0 -18
  1398. package/scripts/build/ninja/generate-tsconfig.js +0 -46
  1399. package/scripts/build/ninja/generate_css.gni +0 -45
  1400. package/scripts/build/ninja/minify-json-files.js +0 -20
  1401. package/scripts/build/ninja/minify_json.gni +0 -32
  1402. package/scripts/build/ninja/node.gni +0 -36
  1403. package/scripts/build/ninja/vars.gni +0 -19
  1404. package/scripts/build/ninja/wasm.gni +0 -25
  1405. package/scripts/build/ninja/write-if-changed.js +0 -27
  1406. package/scripts/build/rollup.config.mjs +0 -31
  1407. package/scripts/build/tests/generate_css_js_files_test.js +0 -40
  1408. package/scripts/build/tests/plugins_test.js +0 -149
  1409. package/scripts/build/typescript/README.md +0 -94
  1410. package/scripts/build/typescript/tests/README.md +0 -10
  1411. package/scripts/build/typescript/tests/fixtures/compilation_failure_front_end/BUILDCONFIG.gn +0 -10
  1412. package/scripts/build/typescript/tests/fixtures/compilation_failure_front_end/build_output.txt.expected +0 -14
  1413. package/scripts/build/typescript/tests/fixtures/compilation_failure_front_end/front_end/module/exporting.ts +0 -1
  1414. package/scripts/build/typescript/tests/fixtures/compilation_failure_front_end/front_end/module/index.ts +0 -3
  1415. package/scripts/build/typescript/tests/fixtures/recompile/BUILDCONFIG.gn +0 -10
  1416. package/scripts/build/typescript/tests/fixtures/recompile/build_output.txt.expected +0 -8
  1417. package/scripts/build/typescript/tests/fixtures/recompile/build_output.txt.expected.regen +0 -4
  1418. package/scripts/build/typescript/tests/fixtures/recompile/front_end/module/exporting.ts +0 -1
  1419. package/scripts/build/typescript/tests/fixtures/recompile/front_end/module/module.ts +0 -5
  1420. package/scripts/build/typescript/tests/fixtures/recompile_dep/BUILDCONFIG.gn +0 -10
  1421. package/scripts/build/typescript/tests/fixtures/recompile_dep/build_output.txt.expected +0 -8
  1422. package/scripts/build/typescript/tests/fixtures/recompile_dep/build_output.txt.expected.regen +0 -6
  1423. package/scripts/build/typescript/tests/fixtures/recompile_dep/expected.tsbuildinfo +0 -2084
  1424. package/scripts/build/typescript/tests/fixtures/recompile_dep/front_end/module/exporting.ts +0 -1
  1425. package/scripts/build/typescript/tests/fixtures/recompile_dep/front_end/module/module.ts +0 -7
  1426. package/scripts/build/typescript/tests/fixtures/simple_dep/BUILDCONFIG.gn +0 -10
  1427. package/scripts/build/typescript/tests/fixtures/simple_dep/build_output.txt.expected +0 -6
  1428. package/scripts/build/typescript/tests/fixtures/simple_dep/build_output.txt.expected.regen +0 -2
  1429. package/scripts/build/typescript/tests/fixtures/simple_dep/front_end/module/exporting.ts +0 -1
  1430. package/scripts/build/typescript/tests/fixtures/simple_dep/front_end/module/index.ts +0 -3
  1431. package/scripts/build/typescript/tests/fixtures/test_dep/BUILDCONFIG.gn +0 -10
  1432. package/scripts/build/typescript/tests/fixtures/test_dep/build_output.txt.expected +0 -8
  1433. package/scripts/build/typescript/tests/fixtures/test_dep/front_end/module/exporting.ts +0 -1
  1434. package/scripts/build/typescript/tests/fixtures/test_dep/front_end/module/module.ts +0 -5
  1435. package/scripts/build/typescript/tests/verify_ts_libary.sh +0 -88
  1436. package/scripts/build/typescript/ts_library.py +0 -336
  1437. package/scripts/build/typescript/typescript.gni +0 -290
  1438. package/scripts/build/wasm-as.py +0 -87
  1439. package/scripts/build/wasm_sourcemap.mjs +0 -22
  1440. package/scripts/check_esbuild_versions.js +0 -51
  1441. package/scripts/check_experiments.js +0 -292
  1442. package/scripts/check_external_links.js +0 -150
  1443. package/scripts/component_server/README.md +0 -43
  1444. package/scripts/component_server/server.js +0 -597
  1445. package/scripts/devtools_build.mjs +0 -396
  1446. package/scripts/devtools_build.test.mjs +0 -243
  1447. package/scripts/devtools_paths.js +0 -193
  1448. package/scripts/devtools_paths.py +0 -127
  1449. package/scripts/eslint_rules/README.md +0 -29
  1450. package/scripts/eslint_rules/lib/canvas-context-tracking.ts +0 -154
  1451. package/scripts/eslint_rules/lib/check-css-import.ts +0 -52
  1452. package/scripts/eslint_rules/lib/check-enumerated-histograms.ts +0 -42
  1453. package/scripts/eslint_rules/lib/check-license-header.ts +0 -222
  1454. package/scripts/eslint_rules/lib/check-test-definitions.ts +0 -91
  1455. package/scripts/eslint_rules/lib/check-was-shown-methods.ts +0 -57
  1456. package/scripts/eslint_rules/lib/enforce-custom-element-definitions-location.ts +0 -95
  1457. package/scripts/eslint_rules/lib/enforce-custom-event-names.ts +0 -174
  1458. package/scripts/eslint_rules/lib/enforce-default-import-name.ts +0 -86
  1459. package/scripts/eslint_rules/lib/enforce-optional-properties-last.ts +0 -87
  1460. package/scripts/eslint_rules/lib/enforce-ui-strings-as-const.ts +0 -69
  1461. package/scripts/eslint_rules/lib/es-modules-import.ts +0 -405
  1462. package/scripts/eslint_rules/lib/html-tagged-template.ts +0 -85
  1463. package/scripts/eslint_rules/lib/inject-checkbox-styles.ts +0 -187
  1464. package/scripts/eslint_rules/lib/inline-type-imports.ts +0 -217
  1465. package/scripts/eslint_rules/lib/jslog-context-list.ts +0 -192
  1466. package/scripts/eslint_rules/lib/l10n-filename-matches.ts +0 -136
  1467. package/scripts/eslint_rules/lib/l10n-i18nString-call-only-with-uistrings.ts +0 -62
  1468. package/scripts/eslint_rules/lib/l10n-no-i18nString-calls-module-instantiation.ts +0 -61
  1469. package/scripts/eslint_rules/lib/l10n-no-locked-or-placeholder-only-phrase.ts +0 -72
  1470. package/scripts/eslint_rules/lib/l10n-no-uistrings-export.ts +0 -89
  1471. package/scripts/eslint_rules/lib/l10n-no-unused-message.ts +0 -159
  1472. package/scripts/eslint_rules/lib/lit-no-attribute-quotes.ts +0 -111
  1473. package/scripts/eslint_rules/lib/lit-template-result-or-nothing.ts +0 -158
  1474. package/scripts/eslint_rules/lib/no-a-tags-in-lit.ts +0 -43
  1475. package/scripts/eslint_rules/lib/no-adopted-style-sheets.ts +0 -37
  1476. package/scripts/eslint_rules/lib/no-assert-deep-strict-equal.ts +0 -61
  1477. package/scripts/eslint_rules/lib/no-assert-equal-boolean-null-undefined.ts +0 -178
  1478. package/scripts/eslint_rules/lib/no-assert-equal.ts +0 -88
  1479. package/scripts/eslint_rules/lib/no-assert-strict-equal-for-arrays-and-objects.ts +0 -86
  1480. package/scripts/eslint_rules/lib/no-bound-component-methods.ts +0 -161
  1481. package/scripts/eslint_rules/lib/no-commented-out-console.ts +0 -49
  1482. package/scripts/eslint_rules/lib/no-commented-out-import.ts +0 -46
  1483. package/scripts/eslint_rules/lib/no-customized-builtin-elements.ts +0 -140
  1484. package/scripts/eslint_rules/lib/no-deprecated-component-usages.ts +0 -46
  1485. package/scripts/eslint_rules/lib/no-document-body-mutation.ts +0 -102
  1486. package/scripts/eslint_rules/lib/no-imperative-dom-api/adorner.ts +0 -48
  1487. package/scripts/eslint_rules/lib/no-imperative-dom-api/aria-utils.ts +0 -109
  1488. package/scripts/eslint_rules/lib/no-imperative-dom-api/ast.ts +0 -86
  1489. package/scripts/eslint_rules/lib/no-imperative-dom-api/button.ts +0 -81
  1490. package/scripts/eslint_rules/lib/no-imperative-dom-api/class-member.ts +0 -54
  1491. package/scripts/eslint_rules/lib/no-imperative-dom-api/data-grid.ts +0 -151
  1492. package/scripts/eslint_rules/lib/no-imperative-dom-api/dom-api-devtools-extensions.ts +0 -32
  1493. package/scripts/eslint_rules/lib/no-imperative-dom-api/dom-api.ts +0 -141
  1494. package/scripts/eslint_rules/lib/no-imperative-dom-api/dom-fragment.ts +0 -307
  1495. package/scripts/eslint_rules/lib/no-imperative-dom-api/split-widget.ts +0 -125
  1496. package/scripts/eslint_rules/lib/no-imperative-dom-api/toolbar.ts +0 -193
  1497. package/scripts/eslint_rules/lib/no-imperative-dom-api/ui-fragment.ts +0 -55
  1498. package/scripts/eslint_rules/lib/no-imperative-dom-api/ui-utils.ts +0 -213
  1499. package/scripts/eslint_rules/lib/no-imperative-dom-api/widget.ts +0 -96
  1500. package/scripts/eslint_rules/lib/no-imperative-dom-api.ts +0 -270
  1501. package/scripts/eslint_rules/lib/no-importing-images-from-src.ts +0 -83
  1502. package/scripts/eslint_rules/lib/no-imports-in-directory.ts +0 -84
  1503. package/scripts/eslint_rules/lib/no-lit-render-outside-of-view.ts +0 -105
  1504. package/scripts/eslint_rules/lib/no-new-lit-element-components.ts +0 -48
  1505. package/scripts/eslint_rules/lib/no-self-closing-custom-element-tagnames.ts +0 -42
  1506. package/scripts/eslint_rules/lib/no-underscored-properties.ts +0 -78
  1507. package/scripts/eslint_rules/lib/prefer-assert-instance-of.ts +0 -80
  1508. package/scripts/eslint_rules/lib/prefer-assert-is-ok.ts +0 -103
  1509. package/scripts/eslint_rules/lib/prefer-assert-length-of.ts +0 -76
  1510. package/scripts/eslint_rules/lib/prefer-assert-strict-equal.ts +0 -92
  1511. package/scripts/eslint_rules/lib/prefer-private-class-members.ts +0 -45
  1512. package/scripts/eslint_rules/lib/prefer-sinon-assert.ts +0 -151
  1513. package/scripts/eslint_rules/lib/prefer-url-string.ts +0 -109
  1514. package/scripts/eslint_rules/lib/set-data-type-reference.ts +0 -69
  1515. package/scripts/eslint_rules/lib/static-custom-event-names.ts +0 -215
  1516. package/scripts/eslint_rules/lib/trace-engine-test-timeouts.ts +0 -125
  1517. package/scripts/eslint_rules/lib/utils/l10n-helper.ts +0 -48
  1518. package/scripts/eslint_rules/lib/utils/lit.ts +0 -73
  1519. package/scripts/eslint_rules/lib/utils/ruleCreator.ts +0 -16
  1520. package/scripts/eslint_rules/lib/utils/treeHelpers.ts +0 -13
  1521. package/scripts/eslint_rules/lib/validate-timing-types.ts +0 -330
  1522. package/scripts/eslint_rules/rules-dir.mjs +0 -78
  1523. package/scripts/eslint_rules/tests/canvas-context-tracking.test.ts +0 -124
  1524. package/scripts/eslint_rules/tests/check-css-import.test.ts +0 -43
  1525. package/scripts/eslint_rules/tests/check-enumerated-histograms.test.ts +0 -31
  1526. package/scripts/eslint_rules/tests/check-license-header.test.ts +0 -293
  1527. package/scripts/eslint_rules/tests/check-test-definitions.test.ts +0 -155
  1528. package/scripts/eslint_rules/tests/check-was-shown-methods.test.ts +0 -103
  1529. package/scripts/eslint_rules/tests/check_css_import_test_file.css +0 -5
  1530. package/scripts/eslint_rules/tests/enforce-custom-element-definitions-location.test.ts +0 -56
  1531. package/scripts/eslint_rules/tests/enforce-custom-event-names.test.ts +0 -124
  1532. package/scripts/eslint_rules/tests/enforce-default-import-name.test.ts +0 -53
  1533. package/scripts/eslint_rules/tests/enforce-optional-properties-last.test.ts +0 -137
  1534. package/scripts/eslint_rules/tests/enforce-ui-strings-as-const.test.ts +0 -35
  1535. package/scripts/eslint_rules/tests/es-modules-import.test.ts +0 -332
  1536. package/scripts/eslint_rules/tests/html-tagged-template.test.ts +0 -103
  1537. package/scripts/eslint_rules/tests/inject-checkbox-styles.test.ts +0 -219
  1538. package/scripts/eslint_rules/tests/inline-type-imports.test.ts +0 -82
  1539. package/scripts/eslint_rules/tests/jslog-context-list.test.ts +0 -218
  1540. package/scripts/eslint_rules/tests/l10n-filename-matches.test.ts +0 -90
  1541. package/scripts/eslint_rules/tests/l10n-i18nString-call-only-with-uistrings.test.ts +0 -44
  1542. package/scripts/eslint_rules/tests/l10n-no-i18nString-calls-module-instantiation.test.ts +0 -77
  1543. package/scripts/eslint_rules/tests/l10n-no-locked-or-placeholder-only-phrase.test.ts +0 -45
  1544. package/scripts/eslint_rules/tests/l10n-no-uistrings-export.test.ts +0 -50
  1545. package/scripts/eslint_rules/tests/l10n-no-unused-message.test.ts +0 -119
  1546. package/scripts/eslint_rules/tests/lit-no-attribute-quotes.test.ts +0 -43
  1547. package/scripts/eslint_rules/tests/lit-template-result-or-nothing.test.ts +0 -142
  1548. package/scripts/eslint_rules/tests/no-a-tags-in-lit.test.ts +0 -67
  1549. package/scripts/eslint_rules/tests/no-adopted-style-sheets.test.ts +0 -52
  1550. package/scripts/eslint_rules/tests/no-assert-deep-strict-equal.test.ts +0 -51
  1551. package/scripts/eslint_rules/tests/no-assert-equal-boolean-null-undefined.test.ts +0 -207
  1552. package/scripts/eslint_rules/tests/no-assert-equal.test.ts +0 -101
  1553. package/scripts/eslint_rules/tests/no-assert-strict-equal-for-arrays-and-objects.test.ts +0 -87
  1554. package/scripts/eslint_rules/tests/no-bound-component-methods.test.ts +0 -105
  1555. package/scripts/eslint_rules/tests/no-commented-out-console.test.ts +0 -35
  1556. package/scripts/eslint_rules/tests/no-commented-out-import.test.ts +0 -45
  1557. package/scripts/eslint_rules/tests/no-customized-builtin-elements.test.ts +0 -150
  1558. package/scripts/eslint_rules/tests/no-deprecated-component-usages.test.ts +0 -46
  1559. package/scripts/eslint_rules/tests/no-document-body-mutation.test.ts +0 -45
  1560. package/scripts/eslint_rules/tests/no-imperative-dom-api.test.ts +0 -1237
  1561. package/scripts/eslint_rules/tests/no-importing-images-from-src.test.ts +0 -40
  1562. package/scripts/eslint_rules/tests/no-imports-in-directory.test.ts +0 -104
  1563. package/scripts/eslint_rules/tests/no-lit-render-outside-of-view.test.ts +0 -130
  1564. package/scripts/eslint_rules/tests/no-new-lit-element-components.test.ts +0 -31
  1565. package/scripts/eslint_rules/tests/no-self-closing-custom-element-tagnames.test.ts +0 -59
  1566. package/scripts/eslint_rules/tests/no-underscored-properties.test.ts +0 -99
  1567. package/scripts/eslint_rules/tests/prefer-assert-instance-of.test.ts +0 -195
  1568. package/scripts/eslint_rules/tests/prefer-assert-is-ok.test.ts +0 -182
  1569. package/scripts/eslint_rules/tests/prefer-assert-length-of.test.ts +0 -143
  1570. package/scripts/eslint_rules/tests/prefer-assert-strict-equal.test.ts +0 -367
  1571. package/scripts/eslint_rules/tests/prefer-private-class-members.test.ts +0 -59
  1572. package/scripts/eslint_rules/tests/prefer-sinon-assert.test.ts +0 -333
  1573. package/scripts/eslint_rules/tests/prefer-url-string.test.ts +0 -87
  1574. package/scripts/eslint_rules/tests/set-data-type-reference.test.ts +0 -60
  1575. package/scripts/eslint_rules/tests/static-custom-event-names.test.ts +0 -179
  1576. package/scripts/eslint_rules/tests/trace-engine-test-timeouts.test.ts +0 -59
  1577. package/scripts/eslint_rules/tests/utils/RuleTester.ts +0 -28
  1578. package/scripts/eslint_rules/tests/utils.test.ts +0 -79
  1579. package/scripts/eslint_rules/tests/validate-timing-types.test.ts +0 -289
  1580. package/scripts/eslint_rules/tsconfig.json +0 -14
  1581. package/scripts/extract_bugs.ts +0 -126
  1582. package/scripts/generate_metric_compare_strings.js +0 -130
  1583. package/scripts/hosted_mode/cert.pem +0 -21
  1584. package/scripts/hosted_mode/key.pem +0 -28
  1585. package/scripts/hosted_mode/server.js +0 -258
  1586. package/scripts/javascript_natives/helpers.js +0 -232
  1587. package/scripts/javascript_natives/index.js +0 -105
  1588. package/scripts/javascript_natives/package.json +0 -9
  1589. package/scripts/javascript_natives/test.d.ts +0 -13
  1590. package/scripts/javascript_natives/tests.js +0 -195
  1591. package/scripts/migration/class-fields/migrate.js +0 -77
  1592. package/scripts/migration/class-fields/migrate.sh +0 -8
  1593. package/scripts/migration/class-fields/package.json +0 -5
  1594. package/scripts/migration/e2e_non_hosted_gemini.mjs +0 -102
  1595. package/scripts/migration/web-tests-esm/rename-legacy-global.mjs +0 -129
  1596. package/scripts/npm_test.js +0 -141
  1597. package/scripts/protocol_typescript/protocol_dts_generator.ts +0 -470
  1598. package/scripts/protocol_typescript/protocol_schema.d.ts +0 -97
  1599. package/scripts/reformat-clang-js-ts.js +0 -71
  1600. package/scripts/run_build.mjs +0 -128
  1601. package/scripts/run_on_target.mjs +0 -88
  1602. package/scripts/run_start.mjs +0 -236
  1603. package/scripts/scaffold/README.md +0 -4
  1604. package/scripts/scaffold/scaffold-widget.js +0 -167
  1605. package/scripts/scaffold/templates/WidgetTemplate.css.txt +0 -9
  1606. package/scripts/scaffold/templates/WidgetTemplate.ts.txt +0 -60
  1607. package/scripts/search-trace-files.js +0 -66
  1608. package/scripts/stylelint_rules/lib/use_theme_colors.mjs +0 -322
  1609. package/scripts/stylelint_rules/tests/use_theme_colors.test.js +0 -515
  1610. package/scripts/tools/update_goldens.py +0 -432
  1611. package/scripts/tsconfig.json +0 -11
  1612. package/scripts/utils.js +0 -160
  1613. package/scripts/whitespaces.txt +0 -12
@@ -1,1891 +0,0 @@
1
- // Copyright 2024 The Chromium Authors. All rights reserved.
2
- // Use of this source code is governed by a BSD-style license that can be
3
- // found in the LICENSE file.
4
-
5
- import * as Common from '../../core/common/common.js';
6
- import * as Host from '../../core/host/host.js';
7
- import * as Platform from '../../core/platform/platform.js';
8
- import * as SDK from '../../core/sdk/sdk.js';
9
- import * as AiAssistanceModel from '../../models/ai_assistance/ai_assistance.js';
10
- import * as Workspace from '../../models/workspace/workspace.js';
11
- import {
12
- cleanup,
13
- createAiAssistancePanel,
14
- createNetworkRequest,
15
- mockAidaClient,
16
- openHistoryContextMenu
17
- } from '../../testing/AiAssistanceHelpers.js';
18
- import {findMenuItemWithLabel} from '../../testing/ContextMenuHelpers.js';
19
- import {
20
- createTarget,
21
- describeWithEnvironment,
22
- registerNoopActions,
23
- updateHostConfig
24
- } from '../../testing/EnvironmentHelpers.js';
25
- import {expectCall} from '../../testing/ExpectStubCall.js';
26
- import {describeWithMockConnection} from '../../testing/MockConnection.js';
27
- import {MockStore} from '../../testing/MockSettingStorage.js';
28
- import {createNetworkPanelForMockConnection} from '../../testing/NetworkHelpers.js';
29
- import {SnapshotTester} from '../../testing/SnapshotTester.js';
30
- import * as Snackbars from '../../ui/components/snackbars/snackbars.js';
31
- import * as UI from '../../ui/legacy/legacy.js';
32
- import * as Network from '../network/network.js';
33
- import type * as TimelineComponents from '../timeline/components/components.js';
34
- import * as Timeline from '../timeline/timeline.js';
35
- import * as TimelineUtils from '../timeline/utils/utils.js';
36
-
37
- import * as AiAssistancePanel from './ai_assistance.js';
38
-
39
- const {urlString} = Platform.DevToolsPath;
40
-
41
- describeWithMockConnection('AI Assistance Panel', () => {
42
- let viewManagerIsViewVisibleStub: sinon.SinonStub<[viewId: string], boolean>;
43
- beforeEach(() => {
44
- viewManagerIsViewVisibleStub = sinon.stub(UI.ViewManager.ViewManager.instance(), 'isViewVisible');
45
- AiAssistanceModel.ConversationHandler.removeInstance();
46
- registerNoopActions([
47
- 'elements.toggle-element-search', 'timeline.record-reload', 'timeline.toggle-recording', 'timeline.show-history',
48
- 'components.collect-garbage'
49
- ]);
50
-
51
- UI.Context.Context.instance().setFlavor(Timeline.TimelinePanel.TimelinePanel, null);
52
- UI.Context.Context.instance().setFlavor(SDK.NetworkRequest.NetworkRequest, null);
53
- UI.Context.Context.instance().setFlavor(SDK.DOMModel.DOMNode, null);
54
- UI.Context.Context.instance().setFlavor(TimelineUtils.AIContext.AgentFocus, null);
55
- UI.Context.Context.instance().setFlavor(Workspace.UISourceCode.UISourceCode, null);
56
-
57
- const mockStore = new MockStore();
58
- const settingsStorage = new Common.Settings.SettingsStorage({}, mockStore);
59
- Common.Settings.Settings.instance({
60
- forceNew: true,
61
- syncedStorage: settingsStorage,
62
- globalStorage: settingsStorage,
63
- localStorage: settingsStorage,
64
- });
65
- });
66
-
67
- afterEach(() => {
68
- cleanup();
69
- viewManagerIsViewVisibleStub.reset();
70
- });
71
-
72
- describe('consent view', () => {
73
- it('should render chat view when no account email', async () => {
74
- const {view} =
75
- await createAiAssistancePanel({aidaAvailability: Host.AidaClient.AidaAccessPreconditions.NO_ACCOUNT_EMAIL});
76
- assert.strictEqual(view.input.state, AiAssistancePanel.State.CHAT_VIEW);
77
- });
78
-
79
- it('should render chat view when sync paused', async () => {
80
- const {view} =
81
- await createAiAssistancePanel({aidaAvailability: Host.AidaClient.AidaAccessPreconditions.SYNC_IS_PAUSED});
82
- assert.strictEqual(view.input.state, AiAssistancePanel.State.CHAT_VIEW);
83
- });
84
-
85
- it('should render chat view when no internet', async () => {
86
- const {view} =
87
- await createAiAssistancePanel({aidaAvailability: Host.AidaClient.AidaAccessPreconditions.NO_INTERNET});
88
- assert.strictEqual(view.input.state, AiAssistancePanel.State.CHAT_VIEW);
89
- });
90
-
91
- it('should render consent view when the consent is not given before', async () => {
92
- const {view} = await createAiAssistancePanel();
93
- assert.strictEqual(view.input.state, AiAssistancePanel.State.CONSENT_VIEW);
94
- });
95
-
96
- it('should switch from consent view to empty state when enabling setting', async () => {
97
- const {view} = await createAiAssistancePanel();
98
- assert.strictEqual(view.input.state, AiAssistancePanel.State.CONSENT_VIEW);
99
- Common.Settings.moduleSetting('ai-assistance-enabled').set(true);
100
- assert.strictEqual((await view.nextInput).state, AiAssistancePanel.State.EXPLORE_VIEW);
101
- });
102
-
103
- it('should render empty state when the consent is given before', async () => {
104
- Common.Settings.moduleSetting('ai-assistance-enabled').set(true);
105
- const {view} = await createAiAssistancePanel();
106
- assert.strictEqual(view.input.state, AiAssistancePanel.State.EXPLORE_VIEW);
107
- });
108
-
109
- it('should render the consent view when the setting is disabled', async () => {
110
- Common.Settings.moduleSetting('ai-assistance-enabled').set(true);
111
- Common.Settings.moduleSetting('ai-assistance-enabled').setDisabled(true);
112
- const {view} = await createAiAssistancePanel();
113
- assert.strictEqual(view.input.state, AiAssistancePanel.State.CONSENT_VIEW);
114
- Common.Settings.moduleSetting('ai-assistance-enabled').setDisabled(false);
115
- });
116
-
117
- it('should render the consent view when blocked by age', async () => {
118
- Common.Settings.moduleSetting('ai-assistance-enabled').set(true);
119
- updateHostConfig({
120
- aidaAvailability: {
121
- blockedByAge: true,
122
- },
123
- devToolsFreestyler: {
124
- enabled: true,
125
- },
126
- });
127
- const {view} = await createAiAssistancePanel();
128
- assert.strictEqual(view.input.state, AiAssistancePanel.State.CONSENT_VIEW);
129
- });
130
-
131
- it('updates when the user logs in', async () => {
132
- Common.Settings.moduleSetting('ai-assistance-enabled').set(true);
133
-
134
- const {view, stubAidaCheckAccessPreconditions} =
135
- await createAiAssistancePanel({aidaAvailability: Host.AidaClient.AidaAccessPreconditions.NO_ACCOUNT_EMAIL});
136
-
137
- assert.strictEqual(view.input.state, AiAssistancePanel.State.CHAT_VIEW);
138
- assert.strictEqual(view.input.aidaAvailability, Host.AidaClient.AidaAccessPreconditions.NO_ACCOUNT_EMAIL);
139
-
140
- stubAidaCheckAccessPreconditions(Host.AidaClient.AidaAccessPreconditions.AVAILABLE);
141
-
142
- Host.AidaClient.HostConfigTracker.instance().dispatchEventToListeners(
143
- Host.AidaClient.Events.AIDA_AVAILABILITY_CHANGED);
144
-
145
- assert.strictEqual((await view.nextInput).state, AiAssistancePanel.State.EXPLORE_VIEW);
146
- assert.strictEqual(view.input.aidaAvailability, Host.AidaClient.AidaAccessPreconditions.AVAILABLE);
147
- });
148
- });
149
-
150
- describe('rating', () => {
151
- it('should allow logging if configured', async () => {
152
- updateHostConfig({
153
- aidaAvailability: {
154
- disallowLogging: false,
155
- },
156
- });
157
- const {aidaClient, view} = await createAiAssistancePanel();
158
-
159
- const aidaClientCall = expectCall(aidaClient.registerClientEvent as sinon.SinonStub);
160
- view.input.onFeedbackSubmit(0, Host.AidaClient.Rating.POSITIVE);
161
-
162
- const [aidaClientEvent] = await aidaClientCall;
163
- assert.isFalse(aidaClientEvent.disable_user_content_logging);
164
- });
165
-
166
- it('should send POSITIVE rating to aida client when the user clicks on positive rating', async () => {
167
- updateHostConfig({
168
- aidaAvailability: {
169
- enabled: true,
170
- disallowLogging: true,
171
- }
172
- });
173
- const RPC_ID = 999;
174
- const {aidaClient, view} = await createAiAssistancePanel();
175
-
176
- const aidaClientCall = expectCall(aidaClient.registerClientEvent as sinon.SinonStub);
177
- view.input.onFeedbackSubmit(RPC_ID, Host.AidaClient.Rating.POSITIVE);
178
- const [aidaClientEvent] = await aidaClientCall;
179
-
180
- assert.deepEqual(aidaClientEvent, {
181
- corresponding_aida_rpc_global_id: RPC_ID,
182
- do_conversation_client_event: {
183
- user_feedback: {
184
- sentiment: 'POSITIVE',
185
- user_input: {
186
- comment: undefined,
187
- }
188
- },
189
- },
190
- disable_user_content_logging: true,
191
- });
192
- });
193
-
194
- it('should send NEGATIVE rating to aida client when the user clicks on negative rating', async () => {
195
- updateHostConfig({
196
- aidaAvailability: {
197
- enabled: true,
198
- disallowLogging: true,
199
- }
200
- });
201
- const RPC_ID = 999;
202
- const {aidaClient, view} = await createAiAssistancePanel();
203
-
204
- const aidaClientCall = expectCall(aidaClient.registerClientEvent as sinon.SinonStub);
205
- view.input.onFeedbackSubmit(RPC_ID, Host.AidaClient.Rating.NEGATIVE);
206
- const [aidaClientEvent] = await aidaClientCall;
207
-
208
- assert.deepEqual(aidaClientEvent, {
209
- corresponding_aida_rpc_global_id: RPC_ID,
210
- do_conversation_client_event: {
211
- user_feedback: {
212
- sentiment: 'NEGATIVE',
213
- user_input: {
214
- comment: undefined,
215
- }
216
- },
217
- },
218
- disable_user_content_logging: true,
219
- });
220
- });
221
-
222
- it('should send feedback text with data', async () => {
223
- updateHostConfig({
224
- aidaAvailability: {
225
- enabled: true,
226
- disallowLogging: true,
227
- }
228
- });
229
- const feedback = 'This helped me a ton.';
230
- const RPC_ID = 999;
231
- const {aidaClient, view} = await createAiAssistancePanel();
232
- const aidaClientCall = expectCall(aidaClient.registerClientEvent as sinon.SinonStub);
233
- view.input.onFeedbackSubmit(RPC_ID, Host.AidaClient.Rating.POSITIVE, feedback);
234
- const [aidaClientEvent] = await aidaClientCall;
235
- assert.deepEqual(aidaClientEvent, {
236
- corresponding_aida_rpc_global_id: RPC_ID,
237
- do_conversation_client_event: {
238
- user_feedback: {
239
- sentiment: 'POSITIVE',
240
- user_input: {
241
- comment: feedback,
242
- }
243
- },
244
- },
245
- disable_user_content_logging: true,
246
- });
247
- });
248
- });
249
-
250
- describe('contexts', () => {
251
- const tests = [
252
- {
253
- flavor: SDK.DOMModel.DOMNode,
254
- createContext: () => {
255
- const node = sinon.createStubInstance(SDK.DOMModel.DOMNode, {
256
- nodeType: Node.ELEMENT_NODE,
257
- });
258
- sinon.stub(AiAssistanceModel.NodeContext.prototype, 'getSuggestions')
259
- .returns(Promise.resolve([{title: 'test suggestion'}]));
260
- return new AiAssistanceModel.NodeContext(node);
261
- },
262
- action: 'freestyler.elements-floating-button',
263
- },
264
- {
265
- flavor: SDK.NetworkRequest.NetworkRequest,
266
- createContext: () => {
267
- return new AiAssistanceModel.RequestContext(sinon.createStubInstance(SDK.NetworkRequest.NetworkRequest));
268
- },
269
- action: 'drjones.network-floating-button'
270
- },
271
- {
272
- flavor: TimelineUtils.AIContext.AgentFocus,
273
- createContext: () => {
274
- return AiAssistanceModel.PerformanceTraceContext.fromCallTree(
275
- sinon.createStubInstance(TimelineUtils.AICallTree.AICallTree));
276
- },
277
- action: 'drjones.performance-panel-context'
278
- },
279
- {
280
- flavor: TimelineUtils.AIContext.AgentFocus,
281
- createContext: () => {
282
- // @ts-expect-error: don't need any data.
283
- const context = AiAssistanceModel.PerformanceTraceContext.fromInsight(null, null, null);
284
- sinon.stub(AiAssistanceModel.PerformanceTraceContext.prototype, 'getSuggestions')
285
- .returns(Promise.resolve([{title: 'test suggestion'}]));
286
- return context;
287
- },
288
- action: 'drjones.performance-insight-context'
289
- },
290
- {
291
- flavor: Workspace.UISourceCode.UISourceCode,
292
- createContext: () => {
293
- return new AiAssistanceModel.FileContext(sinon.createStubInstance(Workspace.UISourceCode.UISourceCode));
294
- },
295
- action: 'drjones.sources-panel-context',
296
- }
297
- ];
298
-
299
- for (const test of tests) {
300
- it(`should use the selected ${test.flavor.name} context after the widget is shown`, async () => {
301
- const {panel, view} = await createAiAssistancePanel();
302
- const context = test.createContext();
303
- const contextItem = context.getItem();
304
- if (!contextItem) {
305
- throw new Error('Context is not available');
306
- }
307
- UI.Context.Context.instance().setFlavor(test.flavor, contextItem);
308
- panel.handleAction(test.action);
309
- expect((await view.nextInput).selectedContext?.getItem()).equals(contextItem);
310
- });
311
-
312
- it(`should update the selected ${test.flavor.name} context whenever flavor changes`, async () => {
313
- const {panel, view} = await createAiAssistancePanel();
314
- panel.handleAction(test.action);
315
- assert.isNull((await view.nextInput).selectedContext);
316
- const context = test.createContext();
317
- const contextItem = context.getItem();
318
- if (!contextItem) {
319
- throw new Error('Context is not available');
320
- }
321
- UI.Context.Context.instance().setFlavor(test.flavor, contextItem);
322
- UI.Context.Context.instance().setFlavor(test.flavor, contextItem);
323
- expect((await view.nextInput).selectedContext?.getItem()).equals(contextItem);
324
- });
325
-
326
- it(`should ignore ${test.flavor.name} flavor change after the panel was hidden`, async () => {
327
- const {view, panel} = await createAiAssistancePanel();
328
- assert.isNull(view.input.selectedContext);
329
- const callCount = view.callCount;
330
- panel.hideWidget();
331
- const context = test.createContext();
332
- const contextItem = context.getItem();
333
- if (!contextItem) {
334
- throw new Error('Context is not available');
335
- }
336
- UI.Context.Context.instance().setFlavor(test.flavor, contextItem);
337
- sinon.assert.callCount(view, callCount);
338
- });
339
- }
340
-
341
- it('should set selected context to null when the change DOMNode flavor is not an ELEMENT_NODE', async () => {
342
- const {panel, view} = await createAiAssistancePanel();
343
- panel.handleAction('freestyler.elements-floating-button');
344
- assert.isNull((await view.nextInput).selectedContext);
345
-
346
- const node = sinon.createStubInstance(SDK.DOMModel.DOMNode, {
347
- nodeType: Node.COMMENT_NODE,
348
- });
349
- UI.Context.Context.instance().setFlavor(SDK.DOMModel.DOMNode, node);
350
- assert.isNull((await view.nextInput).selectedContext);
351
- });
352
-
353
- it('should clear the text input when the context changes to null', async () => {
354
- const chatView = sinon.createStubInstance(AiAssistancePanel.ChatView);
355
- const {panel, view} = await createAiAssistancePanel({chatView});
356
-
357
- // Firstly, start a conversation and set a context
358
- const context = AiAssistanceModel.PerformanceTraceContext.fromCallTree(
359
- sinon.createStubInstance(TimelineUtils.AICallTree.AICallTree));
360
- UI.Context.Context.instance().setFlavor(TimelineUtils.AIContext.AgentFocus, context.getItem());
361
- panel.handleAction('drjones.performance-panel-context');
362
- await view.nextInput;
363
-
364
- // Now clear the context and check we cleared out the text
365
- UI.Context.Context.instance().setFlavor(TimelineUtils.AIContext.AgentFocus, null);
366
- sinon.assert.callCount(chatView.clearTextInput, 1);
367
- });
368
- });
369
-
370
- describe('toggle search element action', () => {
371
- let toggleSearchElementAction: UI.ActionRegistration.Action;
372
- beforeEach(() => {
373
- toggleSearchElementAction =
374
- UI.ActionRegistry.ActionRegistry.instance().getAction('elements.toggle-element-search');
375
- toggleSearchElementAction.setToggled(false);
376
- });
377
-
378
- it('should set inspectElementToggled when the widget is shown', async () => {
379
- const {view} = await createAiAssistancePanel();
380
- toggleSearchElementAction.setToggled(true);
381
- assert.isTrue((await view.nextInput).inspectElementToggled);
382
- });
383
-
384
- it('should update inspectElementToggled when the action is toggled', async () => {
385
- const {view} = await createAiAssistancePanel();
386
- assert.isFalse(view.input.inspectElementToggled);
387
-
388
- toggleSearchElementAction.setToggled(true);
389
- assert.isTrue((await view.nextInput).inspectElementToggled);
390
- });
391
-
392
- it('should not update toggleSearchElementAction when the widget is not shown', async () => {
393
- toggleSearchElementAction.setToggled(false);
394
-
395
- const {view, panel} = await createAiAssistancePanel();
396
- const callCount = view.callCount;
397
- panel.hideWidget();
398
-
399
- toggleSearchElementAction.setToggled(true);
400
-
401
- const uiSourceCode = sinon.createStubInstance(Workspace.UISourceCode.UISourceCode);
402
- UI.Context.Context.instance().setFlavor(Workspace.UISourceCode.UISourceCode, uiSourceCode);
403
-
404
- sinon.assert.callCount(view, callCount);
405
- });
406
- });
407
-
408
- describe('toolbar actions', () => {
409
- it('should show chrome-ai view on settings click', async () => {
410
- const stub = sinon.stub(UI.ViewManager.ViewManager.instance(), 'showView');
411
- const {view} = await createAiAssistancePanel();
412
- view.input.onSettingsClick();
413
- sinon.assert.calledWith(stub, 'chrome-ai');
414
- });
415
-
416
- it('should not show chat, delete history and export conversation actions when ai assistance enabled setting is disabled',
417
- async () => {
418
- Common.Settings.moduleSetting('ai-assistance-enabled').setDisabled(true);
419
-
420
- const {view} = await createAiAssistancePanel();
421
-
422
- assert.isFalse(view.input.showChatActions);
423
- assert.isFalse(view.input.showActiveConversationActions);
424
- });
425
-
426
- it('should not show chat, delete history and export conversation actions when ai assistance setting is marked as false',
427
- async () => {
428
- Common.Settings.moduleSetting('ai-assistance-enabled').set(false);
429
-
430
- const {view} = await createAiAssistancePanel();
431
-
432
- assert.isFalse(view.input.showChatActions);
433
- assert.isFalse(view.input.showActiveConversationActions);
434
- });
435
-
436
- it('should not show chat, delete history and export conversation actions when the user is blocked by age',
437
- async () => {
438
- Common.Settings.moduleSetting('ai-assistance-enabled').set(true);
439
- updateHostConfig({
440
- aidaAvailability: {
441
- blockedByAge: true,
442
- },
443
- });
444
-
445
- const {view} = await createAiAssistancePanel();
446
-
447
- assert.isFalse(view.input.showChatActions);
448
- assert.isFalse(view.input.showActiveConversationActions);
449
- });
450
-
451
- it('should not show chat, delete history and export conversation actions when Aida availability status is SYNC IS PAUSED',
452
- async () => {
453
- Common.Settings.moduleSetting('ai-assistance-enabled').set(true);
454
-
455
- const {view} =
456
- await createAiAssistancePanel({aidaAvailability: Host.AidaClient.AidaAccessPreconditions.SYNC_IS_PAUSED});
457
-
458
- assert.isFalse(view.input.showChatActions);
459
- assert.isFalse(view.input.showActiveConversationActions);
460
- });
461
-
462
- });
463
-
464
- describe('history interactions', () => {
465
- it('should have empty messages after new chat', async () => {
466
- const {panel, view} = await createAiAssistancePanel({aidaClient: mockAidaClient([[{explanation: 'test'}]])});
467
-
468
- panel.handleAction('freestyler.elements-floating-button');
469
- (await view.nextInput).onTextSubmit('test');
470
-
471
- assert.deepEqual((await view.nextInput).messages, [
472
- {
473
- entity: AiAssistancePanel.ChatMessageEntity.USER,
474
- text: 'test',
475
- imageInput: undefined,
476
- },
477
- {
478
- answer: 'test',
479
- entity: AiAssistancePanel.ChatMessageEntity.MODEL,
480
- rpcId: undefined,
481
- suggestions: undefined,
482
- steps: [],
483
- },
484
- ]);
485
-
486
- view.input.onNewChatClick();
487
-
488
- assert.deepEqual((await view.nextInput).messages, []);
489
- });
490
-
491
- it('should select default agent after new chat', async () => {
492
- updateHostConfig({
493
- devToolsFreestyler: {
494
- enabled: true,
495
- },
496
- });
497
- const {panel, view} = await createAiAssistancePanel({aidaClient: mockAidaClient([[{explanation: 'test'}]])});
498
-
499
- panel.handleAction('freestyler.elements-floating-button');
500
- await view.nextInput;
501
-
502
- viewManagerIsViewVisibleStub.callsFake(viewName => viewName === 'elements');
503
-
504
- view.input.onTextSubmit('test');
505
-
506
- assert.deepEqual((await view.nextInput).messages, [
507
- {
508
- entity: AiAssistancePanel.ChatMessageEntity.USER,
509
- text: 'test',
510
- imageInput: undefined,
511
- },
512
- {
513
- answer: 'test',
514
- entity: AiAssistancePanel.ChatMessageEntity.MODEL,
515
- rpcId: undefined,
516
- suggestions: undefined,
517
- steps: [],
518
- },
519
- ]);
520
- view.input.onNewChatClick();
521
-
522
- assert.deepEqual((await view.nextInput).messages, []);
523
- assert.deepEqual(view.input.conversationType, AiAssistanceModel.ConversationType.STYLING);
524
- });
525
-
526
- it('should select the performance insights agent if it is enabled and the user has expanded an insight',
527
- async () => {
528
- updateHostConfig({
529
- devToolsAiAssistancePerformanceAgent: {
530
- enabled: true,
531
- insightsEnabled: true,
532
- },
533
- });
534
- const {panel, view} = await createAiAssistancePanel({aidaClient: mockAidaClient([[{explanation: 'test'}]])});
535
-
536
- panel.handleAction('freestyler.elements-floating-button');
537
-
538
- (await view.nextInput).onTextSubmit('test');
539
- await view.nextInput;
540
-
541
- viewManagerIsViewVisibleStub.callsFake(viewName => viewName === 'timeline');
542
- UI.Context.Context.instance().setFlavor(
543
- Timeline.TimelinePanel.TimelinePanel, sinon.createStubInstance(Timeline.TimelinePanel.TimelinePanel));
544
-
545
- UI.Context.Context.instance().setFlavor(
546
- Timeline.TimelinePanel.SelectedInsight,
547
- new Timeline.TimelinePanel.SelectedInsight({} as unknown as TimelineComponents.Sidebar.ActiveInsight));
548
-
549
- assert.deepEqual(view.input.messages, [
550
- {
551
- entity: AiAssistancePanel.ChatMessageEntity.USER,
552
- text: 'test',
553
- imageInput: undefined,
554
- },
555
- {
556
- answer: 'test',
557
- entity: AiAssistancePanel.ChatMessageEntity.MODEL,
558
- rpcId: undefined,
559
- suggestions: undefined,
560
- steps: [],
561
- },
562
- ]);
563
- view.input.onNewChatClick();
564
-
565
- assert.deepEqual((await view.nextInput).messages, []);
566
- assert.deepEqual(view.input.conversationType, AiAssistanceModel.ConversationType.PERFORMANCE_INSIGHT);
567
- });
568
-
569
- it('should select the Dr Jones performance agent if insights are not enabled', async () => {
570
- updateHostConfig({
571
- devToolsAiAssistancePerformanceAgent: {
572
- enabled: true,
573
- insightsEnabled: false,
574
- },
575
- });
576
- const {panel, view} = await createAiAssistancePanel({aidaClient: mockAidaClient([[{explanation: 'test'}]])});
577
-
578
- panel.handleAction('freestyler.elements-floating-button');
579
- (await view.nextInput).onTextSubmit('test');
580
- await view.nextInput;
581
-
582
- viewManagerIsViewVisibleStub.callsFake(viewName => viewName === 'timeline');
583
- UI.Context.Context.instance().setFlavor(
584
- Timeline.TimelinePanel.TimelinePanel, sinon.createStubInstance(Timeline.TimelinePanel.TimelinePanel));
585
-
586
- assert.deepEqual(view.input.messages, [
587
- {
588
- entity: AiAssistancePanel.ChatMessageEntity.USER,
589
- text: 'test',
590
- imageInput: undefined,
591
- },
592
- {
593
- answer: 'test',
594
- entity: AiAssistancePanel.ChatMessageEntity.MODEL,
595
- rpcId: undefined,
596
- suggestions: undefined,
597
- steps: [],
598
- },
599
- ]);
600
- view.input.onNewChatClick();
601
-
602
- assert.deepEqual((await view.nextInput).messages, []);
603
- assert.deepEqual(view.input.conversationType, AiAssistanceModel.ConversationType.PERFORMANCE_CALL_TREE);
604
- });
605
-
606
- it('should switch agents and restore history', async () => {
607
- updateHostConfig({
608
- devToolsFreestyler: {
609
- enabled: true,
610
- multimodal: true,
611
- },
612
- });
613
- const {panel, view} = await createAiAssistancePanel(
614
- {aidaClient: mockAidaClient([[{explanation: 'test'}], [{explanation: 'test2'}]])});
615
- panel.handleAction('freestyler.elements-floating-button');
616
- const imageInput = {inlineData: {data: 'imageinputbytes', mimeType: 'image/jpeg'}};
617
- (await view.nextInput)
618
- .onTextSubmit('User question to Freestyler?', imageInput, AiAssistanceModel.MultimodalInputType.SCREENSHOT);
619
- assert.deepEqual((await view.nextInput).messages, [
620
- {
621
- entity: AiAssistancePanel.ChatMessageEntity.USER,
622
- text: 'User question to Freestyler?',
623
- imageInput,
624
- },
625
- {
626
- answer: 'test',
627
- entity: AiAssistancePanel.ChatMessageEntity.MODEL,
628
- rpcId: undefined,
629
- suggestions: undefined,
630
- steps: [],
631
- },
632
- ]);
633
-
634
- panel.handleAction('drjones.network-floating-button');
635
- (await view.nextInput).onTextSubmit('User question to DrJones?');
636
- assert.deepEqual((await view.nextInput).messages, [
637
- {
638
- entity: AiAssistancePanel.ChatMessageEntity.USER,
639
- text: 'User question to DrJones?',
640
- imageInput: undefined,
641
- },
642
- {
643
- answer: 'test2',
644
- entity: AiAssistancePanel.ChatMessageEntity.MODEL,
645
- rpcId: undefined,
646
- suggestions: undefined,
647
- steps: [],
648
- },
649
- ]);
650
-
651
- const {contextMenu, id} = openHistoryContextMenu(view.input, 'User question to Freestyler?');
652
- assert.isDefined(id);
653
- contextMenu.invokeHandler(id);
654
- assert.isTrue((await view.nextInput).isReadOnly);
655
- assert.deepEqual(view.input.messages, [
656
- {
657
- entity: AiAssistancePanel.ChatMessageEntity.USER,
658
- text: 'User question to Freestyler?',
659
- imageInput,
660
- },
661
- {
662
- answer: 'test',
663
- entity: AiAssistancePanel.ChatMessageEntity.MODEL,
664
- rpcId: undefined,
665
- suggestions: undefined,
666
- steps: [],
667
- },
668
- ]);
669
- });
670
-
671
- it('runs action-triggered prompts', async () => {
672
- updateHostConfig({
673
- devToolsFreestyler: {
674
- enabled: true,
675
- },
676
- });
677
-
678
- const {panel, view} = await createAiAssistancePanel({
679
- aidaClient: mockAidaClient(
680
- [
681
- [{explanation: 'test'}],
682
- ],
683
- ),
684
- });
685
-
686
- panel.handleAction('freestyler.element-panel-context', {prompt: 'Tell me more'});
687
- assert.deepEqual((await view.nextInput).messages, [
688
- {
689
- entity: AiAssistancePanel.ChatMessageEntity.USER,
690
- text: 'Tell me more',
691
- imageInput: undefined,
692
- },
693
- {
694
- answer: 'test',
695
- entity: AiAssistancePanel.ChatMessageEntity.MODEL,
696
- rpcId: undefined,
697
- suggestions: undefined,
698
- steps: [],
699
- },
700
- ]);
701
- });
702
-
703
- it('interrupts an ongoing conversation with an action-triggered prompt', async () => {
704
- updateHostConfig({
705
- devToolsFreestyler: {
706
- enabled: true,
707
- },
708
- });
709
-
710
- const aidaClient = sinon.createStubInstance(Host.AidaClient.AidaClient);
711
- aidaClient.doConversation.onFirstCall().callsFake(async function*(_request, options) {
712
- yield {
713
- explanation: 'Thinking...',
714
- metadata: {},
715
- completed: false,
716
- };
717
- await new Promise((_resolve, reject) => {
718
- options?.signal?.addEventListener('abort', () => {
719
- reject(new Host.AidaClient.AidaAbortError());
720
- });
721
- });
722
- });
723
-
724
- aidaClient.doConversation.onSecondCall().callsFake(async function*() {
725
- yield {
726
- explanation: 'Interrupted and answered',
727
- metadata: {},
728
- completed: true,
729
- };
730
- });
731
-
732
- const {panel, view} = await createAiAssistancePanel({aidaClient});
733
-
734
- // Start a conversation
735
- panel.handleAction('freestyler.element-panel-context', {prompt: 'first question'});
736
-
737
- // Wait for the thinking part.
738
- let currentView = await view.nextInput;
739
- assert.isTrue(currentView.isLoading);
740
- assert.deepEqual(currentView.messages, [
741
- {
742
- entity: AiAssistancePanel.ChatMessageEntity.USER,
743
- text: 'first question',
744
- imageInput: undefined,
745
- },
746
- {
747
- answer: 'Thinking...',
748
- entity: AiAssistancePanel.ChatMessageEntity.MODEL,
749
- rpcId: undefined,
750
- suggestions: undefined,
751
- steps: [],
752
- },
753
- ]);
754
-
755
- // Now interrupt with another prompt.
756
- panel.handleAction('freestyler.element-panel-context', {prompt: 'interrupting prompt'});
757
-
758
- currentView = await view.nextInput;
759
- assert.deepEqual(currentView.messages, [
760
- {
761
- entity: AiAssistancePanel.ChatMessageEntity.USER,
762
- text: 'first question',
763
- imageInput: undefined,
764
- },
765
- {
766
- answer: 'Thinking...',
767
- entity: AiAssistancePanel.ChatMessageEntity.MODEL,
768
- rpcId: undefined,
769
- suggestions: undefined,
770
- steps: [],
771
- error: AiAssistanceModel.ErrorType.ABORT,
772
- },
773
- {
774
- entity: AiAssistancePanel.ChatMessageEntity.USER,
775
- text: 'interrupting prompt',
776
- imageInput: undefined,
777
- },
778
- {
779
- answer: 'Interrupted and answered',
780
- entity: AiAssistancePanel.ChatMessageEntity.MODEL,
781
- rpcId: undefined,
782
- suggestions: undefined,
783
- steps: [],
784
- },
785
- ]);
786
- });
787
-
788
- it('should not save partial responses to conversation history', async () => {
789
- updateHostConfig({
790
- devToolsFreestyler: {
791
- enabled: true,
792
- },
793
- });
794
- const addHistoryItemStub = sinon.stub(AiAssistanceModel.Conversation.prototype, 'addHistoryItem');
795
- viewManagerIsViewVisibleStub.callsFake(viewName => viewName === 'elements');
796
- const {view} = await createAiAssistancePanel({
797
- aidaClient: mockAidaClient(
798
- [[{explanation: 'partially started'}, {explanation: 'partially started and now it\'s finished'}]])
799
- });
800
- // Trigger running the conversation (observe that there are two answers: one partial, one complete)
801
- view.input.onTextSubmit('User question to Freestyler?');
802
- await view.nextInput;
803
-
804
- sinon.assert.calledWith(
805
- addHistoryItemStub, sinon.match({type: 'answer', text: 'partially started and now it\'s finished'}));
806
- sinon.assert.neverCalledWith(addHistoryItemStub, sinon.match({type: 'answer', text: 'partially started'}));
807
- });
808
-
809
- it('should switch agents and restore history and allow a single delete', async () => {
810
- updateHostConfig({
811
- devToolsFreestyler: {
812
- enabled: true,
813
- },
814
- });
815
- const aiHistoryStorage = AiAssistanceModel.AiHistoryStorage.instance({forceNew: true});
816
- const deleteHistoryEntrySpy = sinon.spy(aiHistoryStorage, 'deleteHistoryEntry');
817
- const {panel, view} = await createAiAssistancePanel(
818
- {
819
- aidaClient: mockAidaClient(
820
- [
821
- [{explanation: 'test'}],
822
- [{explanation: 'test2'}],
823
- ],
824
- ),
825
- },
826
- );
827
- panel.handleAction('freestyler.elements-floating-button');
828
- (await view.nextInput).onTextSubmit('User question to Freestyler?');
829
- await view.nextInput;
830
-
831
- panel.handleAction('drjones.network-floating-button');
832
- (await view.nextInput).onTextSubmit('User question to DrJones?');
833
-
834
- const {contextMenu, id} = openHistoryContextMenu((await view.nextInput), 'User question to Freestyler?');
835
- assert.isDefined(id);
836
- contextMenu.invokeHandler(id);
837
- await view.nextInput;
838
-
839
- view.input.onDeleteClick();
840
-
841
- assert.deepEqual((await view.nextInput).messages, []);
842
- sinon.assert.callCount(deleteHistoryEntrySpy, 1);
843
- assert.isString(deleteHistoryEntrySpy.lastCall.args[0]);
844
-
845
- const menuAfterDelete = openHistoryContextMenu(view.input, 'User question to Freestyler?');
846
- assert.isUndefined(menuAfterDelete.id);
847
- });
848
-
849
- it('should clear the list of previous conversations when all history is deleted', async () => {
850
- const {panel, view} = await createAiAssistancePanel({aidaClient: mockAidaClient([[{explanation: 'test'}]])});
851
- panel.handleAction('freestyler.elements-floating-button');
852
- (await view.nextInput).onTextSubmit('test');
853
- await view.nextInput;
854
-
855
- let {contextMenu} = openHistoryContextMenu(view.input, 'test');
856
- assert.isDefined(findMenuItemWithLabel(contextMenu.defaultSection(), 'test'));
857
- contextMenu.discard();
858
-
859
- await AiAssistanceModel.AiHistoryStorage.instance().deleteAll();
860
-
861
- const newViewInput = await view.nextInput;
862
- ({contextMenu} = openHistoryContextMenu(newViewInput, 'test'));
863
-
864
- const defaultSectionItems = contextMenu.defaultSection().items;
865
- assert.lengthOf(defaultSectionItems, 1, 'Default section should have one item');
866
-
867
- const placeholderItem = defaultSectionItems[0];
868
- assert.strictEqual(placeholderItem.buildDescriptor().label, 'No past conversations');
869
- assert.isFalse(placeholderItem.isEnabled(), 'Placeholder item should be disabled');
870
- });
871
- });
872
-
873
- describe('empty state', () => {
874
- it('should have empty state after clear chat', async () => {
875
- const {panel, view} = await createAiAssistancePanel({
876
- aidaClient: mockAidaClient([[{explanation: 'test'}]]),
877
- });
878
-
879
- panel.handleAction('freestyler.elements-floating-button');
880
- (await view.nextInput).onTextSubmit('test');
881
- assert.deepEqual((await view.nextInput).messages, [
882
- {
883
- entity: AiAssistancePanel.ChatMessageEntity.USER,
884
- text: 'test',
885
- imageInput: undefined,
886
- },
887
- {
888
- answer: 'test',
889
- entity: AiAssistancePanel.ChatMessageEntity.MODEL,
890
- rpcId: undefined,
891
- suggestions: undefined,
892
- steps: [],
893
- },
894
- ]);
895
-
896
- view.input.onDeleteClick();
897
- assert.deepEqual((await view.nextInput).messages, []);
898
- assert.isUndefined(view.input.conversationType);
899
- });
900
-
901
- it('should select default agent based on open panel after clearing the chat', async () => {
902
- updateHostConfig({
903
- devToolsFreestyler: {
904
- enabled: true,
905
- },
906
- });
907
- viewManagerIsViewVisibleStub.callsFake(viewName => viewName === 'elements');
908
- const {panel, view} = await createAiAssistancePanel({aidaClient: mockAidaClient([[{explanation: 'test'}]])});
909
- panel.handleAction('freestyler.elements-floating-button');
910
- (await view.nextInput).onTextSubmit('test');
911
- assert.deepEqual((await view.nextInput).messages, [
912
- {
913
- entity: AiAssistancePanel.ChatMessageEntity.USER,
914
- text: 'test',
915
- imageInput: undefined,
916
- },
917
- {
918
- answer: 'test',
919
- entity: AiAssistancePanel.ChatMessageEntity.MODEL,
920
- rpcId: undefined,
921
- suggestions: undefined,
922
- steps: [],
923
- },
924
- ]);
925
- view.input.onDeleteClick();
926
- assert.deepEqual((await view.nextInput).messages, []);
927
- assert.deepEqual(view.input.conversationType, AiAssistanceModel.ConversationType.STYLING);
928
- });
929
-
930
- it('should have empty state after clear chat history', async () => {
931
- const {panel, view} = await createAiAssistancePanel(
932
- {aidaClient: mockAidaClient([[{explanation: 'test'}], [{explanation: 'test2'}]])});
933
-
934
- panel.handleAction('freestyler.elements-floating-button');
935
- (await view.nextInput).onTextSubmit('User question to Freestyler?');
936
- assert.deepEqual((await view.nextInput).messages, [
937
- {
938
- entity: AiAssistancePanel.ChatMessageEntity.USER,
939
- text: 'User question to Freestyler?',
940
- imageInput: undefined,
941
- },
942
- {
943
- answer: 'test',
944
- entity: AiAssistancePanel.ChatMessageEntity.MODEL,
945
- rpcId: undefined,
946
- suggestions: undefined,
947
- steps: [],
948
- },
949
- ]);
950
-
951
- panel.handleAction('drjones.network-floating-button');
952
- (await view.nextInput).onTextSubmit('User question to DrJones?');
953
- assert.deepEqual((await view.nextInput).messages, [
954
- {
955
- entity: AiAssistancePanel.ChatMessageEntity.USER,
956
- text: 'User question to DrJones?',
957
- imageInput: undefined,
958
- },
959
- {
960
- answer: 'test2',
961
- entity: AiAssistancePanel.ChatMessageEntity.MODEL,
962
- rpcId: undefined,
963
- suggestions: undefined,
964
- steps: [],
965
- },
966
- ]);
967
-
968
- let {contextMenu} = openHistoryContextMenu(view.input, 'User question to Freestyler?');
969
- const clearAll = findMenuItemWithLabel(contextMenu.footerSection(), 'Clear local chats')!;
970
- assert.isDefined(clearAll);
971
- contextMenu.invokeHandler(clearAll.id());
972
- assert.deepEqual((await view.nextInput).messages, []);
973
- assert.isUndefined(view.input.conversationType);
974
- contextMenu.discard();
975
-
976
- contextMenu = openHistoryContextMenu(view.input, 'User question to Freestyler?').contextMenu;
977
- const menuItem = findMenuItemWithLabel(contextMenu.defaultSection(), 'No past conversations');
978
- assert(menuItem);
979
- });
980
- });
981
-
982
- describe('cross-origin', () => {
983
- beforeEach(async () => {
984
- createTarget();
985
- await createNetworkPanelForMockConnection();
986
- });
987
-
988
- afterEach(async () => {
989
- Network.NetworkPanel.NetworkPanel.instance().detach();
990
- });
991
-
992
- it('blocks input on cross origin requests', async () => {
993
- const networkRequest = createNetworkRequest({
994
- url: urlString`https://a.test`,
995
- });
996
- UI.Context.Context.instance().setFlavor(SDK.NetworkRequest.NetworkRequest, networkRequest);
997
-
998
- const {panel, view} = await createAiAssistancePanel({
999
- aidaClient: mockAidaClient([
1000
- [{explanation: 'test'}],
1001
- ])
1002
- });
1003
- panel.handleAction('drjones.network-floating-button');
1004
-
1005
- assert.isFalse((await view.nextInput).blockedByCrossOrigin);
1006
- assert.strictEqual(view.input.selectedContext?.getItem(), networkRequest);
1007
-
1008
- // Send a query for https://a.test.
1009
- panel.handleAction('drjones.network-floating-button');
1010
- view.input.onTextSubmit('test');
1011
- await view.nextInput;
1012
-
1013
- // Change context to https://b.test.
1014
- const networkRequest2 = createNetworkRequest({
1015
- url: urlString`https://b.test`,
1016
- });
1017
- UI.Context.Context.instance().setFlavor(SDK.NetworkRequest.NetworkRequest, networkRequest2);
1018
-
1019
- panel.handleAction('drjones.network-floating-button');
1020
-
1021
- assert.isTrue((await view.nextInput).blockedByCrossOrigin);
1022
- assert.strictEqual(view.input.selectedContext?.getItem(), networkRequest2);
1023
- });
1024
-
1025
- it('should be able to continue same-origin requests', async () => {
1026
- updateHostConfig({
1027
- devToolsFreestyler: {
1028
- enabled: true,
1029
- },
1030
- });
1031
-
1032
- const {panel, view} = await createAiAssistancePanel({
1033
- aidaClient: mockAidaClient([[{explanation: 'test'}], [{explanation: 'test2'}]]),
1034
- });
1035
- viewManagerIsViewVisibleStub.callsFake(viewName => viewName === 'elements');
1036
-
1037
- panel.handleAction('freestyler.elements-floating-button');
1038
- view.input.onTextSubmit('test');
1039
-
1040
- assert.deepEqual((await view.nextInput).messages, [
1041
- {
1042
- entity: AiAssistancePanel.ChatMessageEntity.USER,
1043
- text: 'test',
1044
- imageInput: undefined,
1045
- },
1046
- {
1047
- answer: 'test',
1048
- entity: AiAssistancePanel.ChatMessageEntity.MODEL,
1049
- rpcId: undefined,
1050
- suggestions: undefined,
1051
- steps: [],
1052
- },
1053
- ]);
1054
-
1055
- viewManagerIsViewVisibleStub.callsFake(viewName => viewName === 'elements');
1056
-
1057
- panel.handleAction('freestyler.elements-floating-button');
1058
- view.input.onTextSubmit('test2');
1059
-
1060
- assert.isFalse((await view.nextInput).isReadOnly);
1061
- assert.deepEqual(view.input.messages, [
1062
- {
1063
- entity: AiAssistancePanel.ChatMessageEntity.USER,
1064
- text: 'test',
1065
- imageInput: undefined,
1066
- },
1067
- {
1068
- answer: 'test',
1069
- entity: AiAssistancePanel.ChatMessageEntity.MODEL,
1070
- rpcId: undefined,
1071
- suggestions: undefined,
1072
- steps: [],
1073
- },
1074
- {
1075
- entity: AiAssistancePanel.ChatMessageEntity.USER,
1076
- text: 'test2',
1077
- imageInput: undefined,
1078
- },
1079
- {
1080
- answer: 'test2',
1081
- entity: AiAssistancePanel.ChatMessageEntity.MODEL,
1082
- rpcId: undefined,
1083
- suggestions: undefined,
1084
- steps: [],
1085
- },
1086
- ]);
1087
- });
1088
-
1089
- it('blocks input on cross origin request, when the selected context is changed while the panel was hidden',
1090
- async () => {
1091
- const networkRequest = createNetworkRequest({
1092
- url: urlString`https://a.test`,
1093
- });
1094
- UI.Context.Context.instance().setFlavor(SDK.NetworkRequest.NetworkRequest, networkRequest);
1095
-
1096
- const {panel, view} = await createAiAssistancePanel({
1097
- aidaClient: mockAidaClient([
1098
- [{explanation: 'test'}],
1099
- ])
1100
- });
1101
- panel.handleAction('drjones.network-floating-button');
1102
-
1103
- assert.isFalse((await view.nextInput).blockedByCrossOrigin);
1104
- assert.strictEqual(view.input.selectedContext?.getItem(), networkRequest);
1105
-
1106
- // Send a query for https://a.test.
1107
- panel.handleAction('drjones.network-floating-button');
1108
- view.input.onTextSubmit('test');
1109
- await view.nextInput;
1110
-
1111
- // Hide the panel
1112
- panel.hideWidget();
1113
-
1114
- // Change context to https://b.test.
1115
- const networkRequest2 = createNetworkRequest({
1116
- url: urlString`https://b.test`,
1117
- });
1118
- UI.Context.Context.instance().setFlavor(SDK.NetworkRequest.NetworkRequest, networkRequest2);
1119
-
1120
- // Show the widget again
1121
- panel.showWidget();
1122
-
1123
- assert.isTrue((await view.nextInput).blockedByCrossOrigin);
1124
- assert.strictEqual(view.input.selectedContext?.getItem(), networkRequest2);
1125
- });
1126
-
1127
- it('starts a new chat when a predefined prompt for a cross origin request is sent', async () => {
1128
- const networkRequest = createNetworkRequest({
1129
- url: urlString`https://a.test`,
1130
- });
1131
- UI.Context.Context.instance().setFlavor(SDK.NetworkRequest.NetworkRequest, networkRequest);
1132
-
1133
- const {panel, view} = await createAiAssistancePanel({
1134
- aidaClient: mockAidaClient([
1135
- [{explanation: 'test'}],
1136
- ])
1137
- });
1138
- panel.handleAction('drjones.network-floating-button', {prompt: 'Tell me more'});
1139
- assert.isFalse((await view.nextInput).blockedByCrossOrigin);
1140
-
1141
- // Change context to https://b.test.
1142
- const networkRequest2 = createNetworkRequest({
1143
- url: urlString`https://b.test`,
1144
- });
1145
- UI.Context.Context.instance().setFlavor(SDK.NetworkRequest.NetworkRequest, networkRequest2);
1146
-
1147
- // A predefined prompt from the user on a different origin has been initiated.
1148
- // This should automatically start a new chat, to allow for the prompt to be executed.
1149
- panel.handleAction('drjones.network-floating-button', {prompt: 'Tell me more about another one'});
1150
- const input = await view.nextInput;
1151
- assert.isFalse(input.blockedByCrossOrigin);
1152
- });
1153
- });
1154
-
1155
- describe('copy response', () => {
1156
- it('should copy the response to clipboard when copy button is clicked', async () => {
1157
- const {view} = await createAiAssistancePanel();
1158
- const modelMessage: AiAssistancePanel.ModelChatMessage = {
1159
- entity: AiAssistancePanel.ChatMessageEntity.MODEL,
1160
- steps: [],
1161
- answer: 'test',
1162
- };
1163
-
1164
- const copyTextStub = sinon.stub(Host.InspectorFrontendHost.InspectorFrontendHostInstance, 'copyText');
1165
- const showSnackbarStub = sinon.stub(Snackbars.Snackbar.Snackbar, 'show');
1166
- view.input.onCopyResponseClick(modelMessage);
1167
-
1168
- const expectedMarkdown = AiAssistancePanel.getResponseMarkdown(modelMessage);
1169
- sinon.assert.calledOnceWithExactly(copyTextStub, expectedMarkdown);
1170
- sinon.assert.calledOnce(showSnackbarStub);
1171
- });
1172
- });
1173
-
1174
- describe('auto agent selection for panels', () => {
1175
- const tests: Array<{
1176
- panelName: string,
1177
- expectedConversationType: AiAssistanceModel.ConversationType,
1178
- featureFlagName: string,
1179
- }> =
1180
- [
1181
- {
1182
- panelName: 'elements',
1183
- expectedConversationType: AiAssistanceModel.ConversationType.STYLING,
1184
- featureFlagName: 'devToolsFreestyler',
1185
- },
1186
- {
1187
- panelName: 'network',
1188
- expectedConversationType: AiAssistanceModel.ConversationType.NETWORK,
1189
- featureFlagName: 'devToolsAiAssistanceNetworkAgent',
1190
- },
1191
- {
1192
- panelName: 'sources',
1193
- expectedConversationType: AiAssistanceModel.ConversationType.FILE,
1194
- featureFlagName: 'devToolsAiAssistanceFileAgent',
1195
- },
1196
- {
1197
- panelName: 'timeline',
1198
- expectedConversationType: AiAssistanceModel.ConversationType.PERFORMANCE_CALL_TREE,
1199
- featureFlagName: 'devToolsAiAssistancePerformanceAgent',
1200
- }
1201
- ];
1202
-
1203
- for (const test of tests) {
1204
- it(`should select ${test.expectedConversationType} conversation when the panel ${test.panelName} is opened`,
1205
- async () => {
1206
- updateHostConfig({
1207
- [test.featureFlagName]: {
1208
- enabled: true,
1209
- },
1210
- });
1211
- viewManagerIsViewVisibleStub.callsFake(viewName => viewName === test.panelName);
1212
-
1213
- const {view} = await createAiAssistancePanel({
1214
- aidaClient: mockAidaClient([[{explanation: 'test'}]]),
1215
- });
1216
-
1217
- assert.strictEqual(view.input.conversationType, test.expectedConversationType);
1218
- });
1219
-
1220
- it(`should reset the conversation when ${test.panelName} is closed and no other panels are open`, async () => {
1221
- updateHostConfig({
1222
- [test.featureFlagName]: {
1223
- enabled: true,
1224
- },
1225
- });
1226
-
1227
- viewManagerIsViewVisibleStub.callsFake(viewName => viewName === test.panelName);
1228
-
1229
- const {view} = await createAiAssistancePanel();
1230
-
1231
- assert.strictEqual(view.input.conversationType, test.expectedConversationType);
1232
-
1233
- viewManagerIsViewVisibleStub.returns(false);
1234
- UI.ViewManager.ViewManager.instance().dispatchEventToListeners(UI.ViewManager.Events.VIEW_VISIBILITY_CHANGED, {
1235
- location: 'testLocation',
1236
- revealedViewId: undefined,
1237
- hiddenViewId: test.panelName,
1238
- });
1239
- assert.isUndefined((await view.nextInput).conversationType);
1240
- });
1241
-
1242
- it(`should render no conversation state if the ${test.panelName} panel is changed and the feature is not enabled`,
1243
- async () => {
1244
- updateHostConfig({
1245
- [test.featureFlagName]: {
1246
- enabled: false,
1247
- },
1248
- });
1249
- viewManagerIsViewVisibleStub.callsFake(viewName => viewName === test.panelName);
1250
- const {view} = await createAiAssistancePanel();
1251
-
1252
- assert.isUndefined(view.input.conversationType);
1253
- });
1254
- }
1255
-
1256
- it('should refresh its state when moved', async () => {
1257
- updateHostConfig({
1258
- devToolsFreestyler: {
1259
- enabled: true,
1260
- },
1261
- });
1262
- viewManagerIsViewVisibleStub.callsFake(viewName => viewName === 'elements');
1263
- const {panel, view} = await createAiAssistancePanel();
1264
-
1265
- assert.strictEqual(view.input.conversationType, AiAssistanceModel.ConversationType.STYLING);
1266
-
1267
- // Simulate ViewManager.moveView() that hides panel, updates locations and other panel visibility, then shows moved view
1268
- panel.willHide();
1269
- viewManagerIsViewVisibleStub.callsFake(viewName => viewName === 'console');
1270
- panel.wasShown();
1271
-
1272
- assert.isUndefined((await view.nextInput).conversationType);
1273
- });
1274
-
1275
- describe('Performance Insight agent', () => {
1276
- it('should select the PERFORMANCE_INSIGHT agent when the performance panel is open and insights are enabled and an insight is expanded',
1277
- async () => {
1278
- updateHostConfig({
1279
- devToolsAiAssistancePerformanceAgent: {
1280
- enabled: true,
1281
- insightsEnabled: true,
1282
- },
1283
- });
1284
- viewManagerIsViewVisibleStub.callsFake(viewName => viewName === 'timeline');
1285
- UI.Context.Context.instance().setFlavor(
1286
- Timeline.TimelinePanel.TimelinePanel, sinon.createStubInstance(Timeline.TimelinePanel.TimelinePanel));
1287
- UI.Context.Context.instance().setFlavor(
1288
- Timeline.TimelinePanel.SelectedInsight,
1289
- new Timeline.TimelinePanel.SelectedInsight({} as unknown as TimelineComponents.Sidebar.ActiveInsight));
1290
- const {view} = await createAiAssistancePanel();
1291
-
1292
- assert.strictEqual(view.input.conversationType, AiAssistanceModel.ConversationType.PERFORMANCE_INSIGHT);
1293
- });
1294
-
1295
- it('should select the PERFORMANCE agent when the performance panel is open and insights are enabled but the user has not selected an insight',
1296
- async () => {
1297
- updateHostConfig({
1298
- devToolsAiAssistancePerformanceAgent: {
1299
- enabled: true,
1300
- insightsEnabled: true,
1301
- },
1302
- });
1303
- viewManagerIsViewVisibleStub.callsFake(viewName => viewName === 'timeline');
1304
- UI.Context.Context.instance().setFlavor(
1305
- Timeline.TimelinePanel.TimelinePanel, sinon.createStubInstance(Timeline.TimelinePanel.TimelinePanel));
1306
- UI.Context.Context.instance().setFlavor(Timeline.TimelinePanel.SelectedInsight, null);
1307
-
1308
- const {view} = await createAiAssistancePanel();
1309
- assert.strictEqual(view.input.conversationType, AiAssistanceModel.ConversationType.PERFORMANCE_CALL_TREE);
1310
- });
1311
- });
1312
- });
1313
-
1314
- it('erases previous partial response on blocked error', async () => {
1315
- const {panel, view} = await createAiAssistancePanel({
1316
- aidaClient: mockAidaClient([[{
1317
- explanation: 'This is the first part of the answer.',
1318
- metadata: {attributionMetadata: {attributionAction: Host.AidaClient.RecitationAction.BLOCK, citations: []}}
1319
- }]]),
1320
- });
1321
- panel.handleAction('freestyler.elements-floating-button');
1322
- view.input.onTextSubmit('test');
1323
-
1324
- assert.deepEqual((await view.nextInput).messages, [
1325
- {
1326
- entity: AiAssistancePanel.ChatMessageEntity.USER,
1327
- text: 'test',
1328
- imageInput: undefined,
1329
- },
1330
- {
1331
- answer: undefined,
1332
- entity: AiAssistancePanel.ChatMessageEntity.MODEL,
1333
- rpcId: undefined,
1334
- error: AiAssistanceModel.ErrorType.BLOCK,
1335
- steps: [],
1336
- },
1337
- ]);
1338
- });
1339
-
1340
- describe('chat input', () => {
1341
- describe('disabled state', () => {
1342
- it('should be disabled when ai assistance enabled setting is disabled and show followTheSteps placeholder',
1343
- async () => {
1344
- Common.Settings.moduleSetting('ai-assistance-enabled').setDisabled(true);
1345
-
1346
- const {view} = await createAiAssistancePanel();
1347
-
1348
- assert.isTrue(view.input.isTextInputDisabled);
1349
- assert.strictEqual(view.input.inputPlaceholder, 'Follow the steps above to ask a question');
1350
- assert.strictEqual(
1351
- view.input.disclaimerText, 'This is an experimental AI feature and won\'t always get it right.');
1352
- });
1353
-
1354
- it('should be disabled when ai assistance setting is marked as false and show followTheSteps placeholder',
1355
- async () => {
1356
- Common.Settings.moduleSetting('ai-assistance-enabled').set(false);
1357
-
1358
- const {view} = await createAiAssistancePanel();
1359
-
1360
- assert.isTrue(view.input.isTextInputDisabled);
1361
- assert.strictEqual(view.input.inputPlaceholder, 'Follow the steps above to ask a question');
1362
- assert.strictEqual(
1363
- view.input.disclaimerText, 'This is an experimental AI feature and won\'t always get it right.');
1364
- });
1365
-
1366
- it('should be disabled when the user is blocked by age and show followTheSteps placeholder', async () => {
1367
- Common.Settings.moduleSetting('ai-assistance-enabled').set(true);
1368
- updateHostConfig({
1369
- aidaAvailability: {
1370
- blockedByAge: true,
1371
- },
1372
- });
1373
-
1374
- const {view} = await createAiAssistancePanel();
1375
-
1376
- assert.isTrue(view.input.isTextInputDisabled);
1377
- assert.strictEqual(view.input.inputPlaceholder, 'Follow the steps above to ask a question');
1378
- assert.strictEqual(
1379
- view.input.disclaimerText, 'This is an experimental AI feature and won\'t always get it right.');
1380
- });
1381
-
1382
- it('should be disabled when Aida availability status is not AVAILABLE', async () => {
1383
- Common.Settings.moduleSetting('ai-assistance-enabled').set(true);
1384
- const {view} =
1385
- await createAiAssistancePanel({aidaAvailability: Host.AidaClient.AidaAccessPreconditions.NO_INTERNET});
1386
-
1387
- assert.isTrue(view.input.isTextInputDisabled);
1388
- });
1389
-
1390
- it('should be disabled when the next message is blocked by cross origin and show crossOriginError placeholder',
1391
- async () => {
1392
- Common.Settings.moduleSetting('ai-assistance-enabled').set(true);
1393
- const networkRequest = createNetworkRequest({
1394
- url: urlString`https://a.test`,
1395
- });
1396
- UI.Context.Context.instance().setFlavor(SDK.NetworkRequest.NetworkRequest, networkRequest);
1397
-
1398
- const {panel, view} = await createAiAssistancePanel({
1399
- aidaClient: mockAidaClient([
1400
- [{explanation: 'test'}],
1401
- ]),
1402
- });
1403
- panel.handleAction('drjones.network-floating-button');
1404
-
1405
- assert.isFalse((await view.nextInput).blockedByCrossOrigin);
1406
- assert.strictEqual(view.input.selectedContext?.getItem(), networkRequest);
1407
-
1408
- // Send a query for https://a.test.
1409
- panel.handleAction('drjones.network-floating-button');
1410
- view.input.onTextSubmit('test');
1411
- await view.nextInput;
1412
-
1413
- // Change context to https://b.test.
1414
- const networkRequest2 = createNetworkRequest({
1415
- url: urlString`https://b.test`,
1416
- });
1417
- UI.Context.Context.instance().setFlavor(SDK.NetworkRequest.NetworkRequest, networkRequest2);
1418
-
1419
- panel.handleAction('drjones.network-floating-button');
1420
-
1421
- assert.isTrue((await view.nextInput).blockedByCrossOrigin);
1422
- assert.isTrue(view.input.isTextInputDisabled);
1423
- assert.strictEqual(view.input.inputPlaceholder, 'To talk about data from another origin, start a new chat');
1424
- });
1425
-
1426
- it('should be disabled when there is no selected context and show inputPlaceholderForStylingNoContext',
1427
- async () => {
1428
- updateHostConfig({
1429
- devToolsFreestyler: {
1430
- enabled: true,
1431
- },
1432
- });
1433
- Common.Settings.moduleSetting('ai-assistance-enabled').set(true);
1434
- const {panel, view} =
1435
- await createAiAssistancePanel({aidaAvailability: Host.AidaClient.AidaAccessPreconditions.AVAILABLE});
1436
- panel.handleAction('freestyler.elements-floating-button');
1437
-
1438
- assert.isNull((await view.nextInput).selectedContext);
1439
- assert.isTrue(view.input.isTextInputDisabled);
1440
- assert.strictEqual(view.input.inputPlaceholder, 'Select an element to ask a question');
1441
- });
1442
-
1443
- it('shows the right placeholder for the performance agent when the user has no trace', async () => {
1444
- updateHostConfig({
1445
- devToolsAiAssistancePerformanceAgent: {
1446
- enabled: true,
1447
- },
1448
- });
1449
- viewManagerIsViewVisibleStub.callsFake(viewName => viewName === 'timeline');
1450
- UI.Context.Context.instance().setFlavor(
1451
- Timeline.TimelinePanel.TimelinePanel, sinon.createStubInstance(Timeline.TimelinePanel.TimelinePanel));
1452
- Common.Settings.moduleSetting('ai-assistance-enabled').set(true);
1453
- const {panel, view} =
1454
- await createAiAssistancePanel({aidaAvailability: Host.AidaClient.AidaAccessPreconditions.AVAILABLE});
1455
- panel.handleAction('drjones.performance-panel-context');
1456
-
1457
- assert.isNull((await view.nextInput).selectedContext);
1458
- assert.isTrue(view.input.isTextInputDisabled);
1459
- assert.strictEqual(
1460
- view.input.inputPlaceholder, 'Record a performance trace and select an item to ask a question');
1461
- });
1462
-
1463
- it('shows the right placeholder for the performance agent when the user has a trace but no selected item',
1464
- async () => {
1465
- updateHostConfig({
1466
- devToolsAiAssistancePerformanceAgent: {
1467
- enabled: true,
1468
- },
1469
- });
1470
-
1471
- const timelinePanel = sinon.createStubInstance(Timeline.TimelinePanel.TimelinePanel);
1472
- timelinePanel.hasActiveTrace.callsFake(() => true);
1473
- viewManagerIsViewVisibleStub.callsFake(viewName => viewName === 'timeline');
1474
- UI.Context.Context.instance().setFlavor(Timeline.TimelinePanel.TimelinePanel, timelinePanel);
1475
- Common.Settings.moduleSetting('ai-assistance-enabled').set(true);
1476
- const {panel, view} =
1477
- await createAiAssistancePanel({aidaAvailability: Host.AidaClient.AidaAccessPreconditions.AVAILABLE});
1478
- panel.handleAction('drjones.performance-panel-context');
1479
-
1480
- assert.isNull((await view.nextInput).selectedContext);
1481
- assert.isTrue(view.input.isTextInputDisabled);
1482
- assert.strictEqual(view.input.inputPlaceholder, 'Select an item to ask a question');
1483
- });
1484
-
1485
- it('shows the right placeholder for the performance agent when the user has a trace and a selected item',
1486
- async () => {
1487
- updateHostConfig({
1488
- devToolsAiAssistancePerformanceAgent: {
1489
- enabled: true,
1490
- },
1491
- });
1492
-
1493
- const timelinePanel = sinon.createStubInstance(Timeline.TimelinePanel.TimelinePanel);
1494
- timelinePanel.hasActiveTrace.callsFake(() => true);
1495
- viewManagerIsViewVisibleStub.callsFake(viewName => viewName === 'timeline');
1496
- UI.Context.Context.instance().setFlavor(Timeline.TimelinePanel.TimelinePanel, timelinePanel);
1497
-
1498
- const fakeCallTree = sinon.createStubInstance(TimelineUtils.AICallTree.AICallTree);
1499
- const focus = TimelineUtils.AIContext.AgentFocus.fromCallTree(fakeCallTree);
1500
- UI.Context.Context.instance().setFlavor(TimelineUtils.AIContext.AgentFocus, focus);
1501
-
1502
- Common.Settings.moduleSetting('ai-assistance-enabled').set(true);
1503
- const {panel, view} =
1504
- await createAiAssistancePanel({aidaAvailability: Host.AidaClient.AidaAccessPreconditions.AVAILABLE});
1505
- panel.handleAction('drjones.performance-panel-context');
1506
-
1507
- assert.strictEqual(view.input.inputPlaceholder, 'Ask a question about the selected item and its call tree');
1508
- assert.isFalse(view.input.isTextInputDisabled);
1509
- });
1510
- });
1511
-
1512
- it('should disable the send button when the input is empty', async () => {
1513
- Common.Settings.moduleSetting('ai-assistance-enabled').set(true);
1514
- updateHostConfig({
1515
- devToolsFreestyler: {
1516
- enabled: true,
1517
- },
1518
- });
1519
-
1520
- viewManagerIsViewVisibleStub.callsFake(viewName => viewName === 'elements');
1521
- const {panel, view} =
1522
- await createAiAssistancePanel({aidaAvailability: Host.AidaClient.AidaAccessPreconditions.AVAILABLE});
1523
-
1524
- panel.handleAction('freestyler.elements-floating-button');
1525
- assert.isTrue((await view.nextInput).isTextInputEmpty);
1526
-
1527
- view.input.onTextInputChange('test');
1528
- assert.isFalse((await view.nextInput).isTextInputEmpty);
1529
-
1530
- view.input.onTextInputChange('');
1531
- assert.isTrue((await view.nextInput).isTextInputEmpty);
1532
-
1533
- view.input.onTextInputChange('test');
1534
- assert.isFalse((await view.nextInput).isTextInputEmpty);
1535
-
1536
- view.input.onTextSubmit('test');
1537
- assert.isTrue((await view.nextInput).isTextInputEmpty);
1538
- });
1539
- });
1540
-
1541
- describe('multimodal input', () => {
1542
- let target: SDK.Target.Target;
1543
- beforeEach(() => {
1544
- target = createTarget();
1545
- });
1546
-
1547
- function mockScreenshotModel() {
1548
- const screenCaptureModel = target.model(SDK.ScreenCaptureModel.ScreenCaptureModel);
1549
- assert.exists(screenCaptureModel);
1550
- return {
1551
- captureScreenshotStub:
1552
- sinon.stub(screenCaptureModel, 'captureScreenshot').returns(Promise.resolve('imageInput')),
1553
- };
1554
- }
1555
-
1556
- it('multimodal related functions unavailable when multimodal is disabled', async () => {
1557
- updateHostConfig({
1558
- devToolsFreestyler: {
1559
- enabled: true,
1560
- multimodal: false,
1561
- },
1562
- });
1563
- viewManagerIsViewVisibleStub.callsFake(viewName => viewName === 'elements');
1564
- const {view} = await createAiAssistancePanel();
1565
-
1566
- assert.isFalse(view.input.multimodalInputEnabled);
1567
- assert.isFalse(view.input.uploadImageInputEnabled);
1568
- assert.notExists(view.input.onTakeScreenshot);
1569
- assert.notExists(view.input.onRemoveImageInput);
1570
- assert.notExists(view.input.onLoadImage);
1571
- assert.notExists(view.input.imageInput);
1572
- });
1573
-
1574
- it('upload input function unavailable when multimodalUploadInput is disabled', async () => {
1575
- updateHostConfig({
1576
- devToolsFreestyler: {
1577
- enabled: true,
1578
- multimodal: true,
1579
- multimodalUploadInput: false,
1580
- },
1581
- });
1582
- viewManagerIsViewVisibleStub.callsFake(viewName => viewName === 'elements');
1583
- const {view} = await createAiAssistancePanel();
1584
-
1585
- assert.isTrue(view.input.multimodalInputEnabled);
1586
- assert.isFalse(view.input.uploadImageInputEnabled);
1587
- assert.exists(view.input.onTakeScreenshot);
1588
- assert.exists(view.input.onRemoveImageInput);
1589
- assert.notExists(view.input.onLoadImage);
1590
- });
1591
-
1592
- it('adds screenshot as an image input and then removes it', async () => {
1593
- const {captureScreenshotStub} = mockScreenshotModel();
1594
- updateHostConfig({
1595
- devToolsFreestyler: {
1596
- enabled: true,
1597
- multimodal: true,
1598
- },
1599
- });
1600
- viewManagerIsViewVisibleStub.callsFake(viewName => viewName === 'elements');
1601
- const {view} = await createAiAssistancePanel();
1602
-
1603
- assert.isTrue(view.input.multimodalInputEnabled);
1604
-
1605
- view.input.onTakeScreenshot?.();
1606
-
1607
- assert.deepEqual((await view.nextInput).imageInput, {
1608
- isLoading: false,
1609
- data: 'imageInput',
1610
- mimeType: 'image/jpeg',
1611
- inputType: AiAssistanceModel.MultimodalInputType.SCREENSHOT
1612
- });
1613
- expect(captureScreenshotStub.calledOnce);
1614
-
1615
- view.input.onRemoveImageInput?.();
1616
- assert.notExists((await view.nextInput).imageInput);
1617
- });
1618
-
1619
- it('uploads an image as an input and then removes it', async () => {
1620
- updateHostConfig({
1621
- devToolsFreestyler: {
1622
- enabled: true,
1623
- multimodal: true,
1624
- multimodalUploadInput: true,
1625
- },
1626
- });
1627
- viewManagerIsViewVisibleStub.callsFake(viewName => viewName === 'elements');
1628
- const {view} = await createAiAssistancePanel();
1629
- const blob = new Blob(['imageInput'], {type: 'image/jpeg'});
1630
-
1631
- assert.isTrue(view.input.multimodalInputEnabled);
1632
- assert.isTrue(view.input.uploadImageInputEnabled);
1633
-
1634
- await view.input.onLoadImage?.(new File([blob], 'image.jpeg', {type: 'image/jpeg'}));
1635
-
1636
- assert.deepEqual((await view.nextInput).imageInput, {
1637
- isLoading: false,
1638
- data: btoa('imageInput'),
1639
- mimeType: 'image/jpeg',
1640
- inputType: AiAssistanceModel.MultimodalInputType.UPLOADED_IMAGE
1641
- });
1642
-
1643
- view.input.onRemoveImageInput?.();
1644
- assert.notExists((await view.nextInput).imageInput);
1645
- });
1646
-
1647
- it('sends image as input', async () => {
1648
- updateHostConfig({
1649
- devToolsFreestyler: {
1650
- enabled: true,
1651
- multimodal: true,
1652
- },
1653
- });
1654
- viewManagerIsViewVisibleStub.callsFake(viewName => viewName === 'elements');
1655
- const {view} = await createAiAssistancePanel({aidaClient: mockAidaClient([[{explanation: 'test'}]])});
1656
-
1657
- assert.isTrue(view.input.multimodalInputEnabled);
1658
-
1659
- view.input.onTextSubmit(
1660
- 'test', {inlineData: {data: 'imageInput', mimeType: 'image/jpeg'}},
1661
- AiAssistanceModel.MultimodalInputType.SCREENSHOT);
1662
-
1663
- assert.deepEqual((await view.nextInput).messages, [
1664
- {
1665
- entity: AiAssistancePanel.ChatMessageEntity.USER,
1666
- text: 'test',
1667
- imageInput: {inlineData: {data: 'imageInput', mimeType: 'image/jpeg'}}
1668
- },
1669
- {
1670
- answer: 'test',
1671
- entity: AiAssistancePanel.ChatMessageEntity.MODEL,
1672
- rpcId: undefined,
1673
- suggestions: undefined,
1674
- steps: [],
1675
- },
1676
- ]);
1677
- });
1678
-
1679
- it('image input should be removed when primary target changed', async () => {
1680
- mockScreenshotModel();
1681
- updateHostConfig({
1682
- devToolsFreestyler: {
1683
- enabled: true,
1684
- multimodal: true,
1685
- },
1686
- });
1687
- viewManagerIsViewVisibleStub.callsFake(viewName => viewName === 'elements');
1688
- const {view} = await createAiAssistancePanel();
1689
-
1690
- assert.isUndefined(view.input.imageInput);
1691
- view.input.onTakeScreenshot?.();
1692
- assert.exists((await view.nextInput).imageInput);
1693
-
1694
- const resourceTreeModel = target.model(SDK.ResourceTreeModel.ResourceTreeModel);
1695
- resourceTreeModel?.dispatchEventToListeners(SDK.ResourceTreeModel.Events.PrimaryPageChanged, {
1696
- frame: sinon.createStubInstance(SDK.ResourceTreeModel.ResourceTreeFrame),
1697
- type: SDK.ResourceTreeModel.PrimaryPageChangeType.NAVIGATION
1698
- });
1699
- assert.isUndefined((await view.nextInput).imageInput);
1700
- });
1701
- });
1702
-
1703
- describe('getResponseMarkdown', () => {
1704
- let snapshotTester: SnapshotTester;
1705
- before(async () => {
1706
- snapshotTester = new SnapshotTester(import.meta);
1707
- await snapshotTester.load();
1708
- });
1709
-
1710
- after(async () => {
1711
- await snapshotTester.finish();
1712
- });
1713
-
1714
- it('should generate correct markdown from a message object', function() {
1715
- const message: AiAssistancePanel.ModelChatMessage = {
1716
- entity: AiAssistancePanel.ChatMessageEntity.MODEL,
1717
- steps: [
1718
- {
1719
- isLoading: false,
1720
- contextDetails: [
1721
- {title: 'Detail 1', text: '*Some markdown text'},
1722
- {title: 'Detail 2', text: 'Some text', codeLang: 'js'},
1723
- ],
1724
- },
1725
- {
1726
- isLoading: false,
1727
- title: 'Step Title',
1728
- thought: 'Step Thought',
1729
- code: 'console.log("hello");',
1730
- output: 'hello',
1731
- },
1732
- ],
1733
- answer: 'Final answer.',
1734
- };
1735
-
1736
- const result = AiAssistancePanel.getResponseMarkdown(message);
1737
- snapshotTester.assert(this, result);
1738
- });
1739
- });
1740
-
1741
- describe('a11y announcements', () => {
1742
- let liveAnnouncerStatusStub: sinon.SinonStub;
1743
- beforeEach(() => {
1744
- liveAnnouncerStatusStub = sinon.stub(UI.ARIAUtils.LiveAnnouncer, 'status').returns();
1745
- });
1746
-
1747
- it('should announce the context title from the agent as status', async () => {
1748
- const stubbedResponses: AsyncGenerator<AiAssistanceModel.ResponseData> = (async function*() {
1749
- yield {
1750
- type: AiAssistanceModel.ResponseType.CONTEXT,
1751
- title: 'context-title',
1752
- details: [{title: 'mock', text: 'mock'}]
1753
- };
1754
- })();
1755
- sinon.stub(AiAssistanceModel.StylingAgent.prototype, 'run').returns(stubbedResponses);
1756
- const {panel, view} = await createAiAssistancePanel();
1757
-
1758
- panel.handleAction('freestyler.elements-floating-button');
1759
- (await view.nextInput).onTextSubmit('test');
1760
- await view.nextInput;
1761
-
1762
- assert.isTrue(
1763
- liveAnnouncerStatusStub.calledWith('context-title'),
1764
- 'Expected live announcer status to be called with the context title');
1765
- });
1766
-
1767
- it('should announce answer loading when answer starts streaming as status', async () => {
1768
- const stubbedResponses: AsyncGenerator<AiAssistanceModel.ResponseData> = (async function*() {
1769
- yield {
1770
- type: AiAssistanceModel.ResponseType.ANSWER,
1771
- text: 'streaming ans',
1772
- complete: false,
1773
- };
1774
-
1775
- yield {
1776
- type: AiAssistanceModel.ResponseType.ANSWER,
1777
- text: 'streaming answer is not compl',
1778
- complete: false,
1779
- };
1780
- })();
1781
- sinon.stub(AiAssistanceModel.StylingAgent.prototype, 'run').returns(stubbedResponses);
1782
- const {panel, view} = await createAiAssistancePanel();
1783
-
1784
- panel.handleAction('freestyler.elements-floating-button');
1785
- (await view.nextInput).onTextSubmit('test');
1786
- await view.nextInput;
1787
-
1788
- assert.isTrue(liveAnnouncerStatusStub.calledOnce, 'Expected live announcer status to be called only once');
1789
- assert.isTrue(
1790
- liveAnnouncerStatusStub.calledWith('Answer loading'),
1791
- 'Expected live announcer status to be called with the text "Answer loading"');
1792
- });
1793
-
1794
- it('should announce answer ready when answer completes streaming', async () => {
1795
- const stubbedResponses: AsyncGenerator<AiAssistanceModel.ResponseData> = (async function*() {
1796
- yield {
1797
- type: AiAssistanceModel.ResponseType.ANSWER,
1798
- text: 'streaming answer is not completed before but now it is complete',
1799
- complete: true,
1800
- };
1801
- })();
1802
- sinon.stub(AiAssistanceModel.StylingAgent.prototype, 'run').returns(stubbedResponses);
1803
- const {panel, view} = await createAiAssistancePanel();
1804
-
1805
- panel.handleAction('freestyler.elements-floating-button');
1806
- (await view.nextInput).onTextSubmit('test');
1807
- await view.nextInput;
1808
-
1809
- assert.isTrue(
1810
- liveAnnouncerStatusStub.calledWith('Answer ready'),
1811
- 'Expected live announcer status to be called with the text "Answer loading"');
1812
- });
1813
- });
1814
- });
1815
-
1816
- describeWithEnvironment('AiAssistancePanel.ActionDelegate', () => {
1817
- beforeEach(() => {
1818
- UI.ViewManager.ViewManager.instance({forceNew: true});
1819
- UI.InspectorView.InspectorView.instance({forceNew: true});
1820
- });
1821
-
1822
- it('should set drawer size to 25% of total size if it\'s less than that size', async () => {
1823
- const totalSizeStub = 400;
1824
- sinon.stub(UI.ViewManager.ViewManager.instance(), 'view').returns(sinon.createStubInstance(UI.View.SimpleView));
1825
- sinon.stub(UI.ViewManager.ViewManager.instance(), 'showView');
1826
- sinon.stub(UI.InspectorView.InspectorView.instance(), 'totalSize').returns(totalSizeStub);
1827
- sinon.stub(UI.InspectorView.InspectorView.instance(), 'drawerSize').returns(10);
1828
- const setDrawerSizeCall = expectCall(sinon.stub(UI.InspectorView.InspectorView.instance(), 'setDrawerSize'));
1829
-
1830
- const actionDelegate = new AiAssistancePanel.ActionDelegate();
1831
- actionDelegate.handleAction(UI.Context.Context.instance(), 'freestyler.elements-floating-button');
1832
-
1833
- const [size] = await setDrawerSizeCall;
1834
- assert.strictEqual(size, totalSizeStub / 4);
1835
- });
1836
-
1837
- describe('Export conversation button', () => {
1838
- it('is not visible for empty conversation', async () => {
1839
- const {view} = await createAiAssistancePanel();
1840
- assert.isFalse(view.input.showActiveConversationActions);
1841
- });
1842
-
1843
- it('should show export button if there are history items and disable it when loading', async () => {
1844
- const {promise, resolve} = Promise.withResolvers<void>();
1845
- const stubbedResponses: AsyncGenerator<AiAssistanceModel.ResponseData> = (async function*() {
1846
- yield {
1847
- type: AiAssistanceModel.ResponseType.THOUGHT,
1848
- thought: 'first response answer ',
1849
- };
1850
- await promise;
1851
- yield {
1852
- type: AiAssistanceModel.ResponseType.ANSWER,
1853
- text: 'second response answer',
1854
- complete: true,
1855
- };
1856
- })();
1857
- sinon.stub(AiAssistanceModel.StylingAgent.prototype, 'run').returns(stubbedResponses);
1858
-
1859
- const {panel, view} = await createAiAssistancePanel();
1860
- panel.handleAction('freestyler.elements-floating-button');
1861
-
1862
- assert.isFalse(view.input.showActiveConversationActions, 'should not show export conversation action by default');
1863
- (await view.nextInput).onTextSubmit('test');
1864
- await view.nextInput;
1865
- assert.isTrue(view.input.showActiveConversationActions, 'should show active conversation actions while loading');
1866
- assert.isTrue(view.input.isLoading, 'button should be disabled while loading');
1867
- resolve();
1868
- await view.nextInput;
1869
- assert.isTrue(view.input.showActiveConversationActions, 'should show active conversation actions after loading');
1870
- });
1871
-
1872
- it('should call the save function when export conversation button is clicked', async () => {
1873
- const fileManager = Workspace.FileManager.FileManager.instance();
1874
- const saveSpy = sinon.stub(fileManager, 'save');
1875
- const closeSpy = sinon.stub(fileManager, 'close');
1876
- const {panel, view} = await createAiAssistancePanel({
1877
- aidaClient: mockAidaClient([[{explanation: 'test'}]]),
1878
- });
1879
- panel.handleAction('freestyler.elements-floating-button');
1880
- (await view.nextInput).onTextSubmit('test question');
1881
- await view.nextInput;
1882
- await view.input.onExportConversationClick();
1883
-
1884
- sinon.assert.calledOnce(saveSpy);
1885
- sinon.assert.calledOnce(closeSpy);
1886
-
1887
- const [fileName] = saveSpy.getCall(0).args;
1888
- assert.strictEqual(fileName, 'devtools_test_question.md');
1889
- });
1890
- });
1891
- });