@mcp-b/chrome-devtools-mcp 0.0.0-beta-20260116040639

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 (699) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +896 -0
  3. package/build/src/DevToolsConnectionAdapter.js +69 -0
  4. package/build/src/DevtoolsUtils.js +206 -0
  5. package/build/src/McpContext.js +863 -0
  6. package/build/src/McpResponse.js +403 -0
  7. package/build/src/Mutex.js +37 -0
  8. package/build/src/PageCollector.js +293 -0
  9. package/build/src/WaitForHelper.js +139 -0
  10. package/build/src/browser.js +252 -0
  11. package/build/src/cli.js +232 -0
  12. package/build/src/formatters/consoleFormatter.js +121 -0
  13. package/build/src/formatters/networkFormatter.js +77 -0
  14. package/build/src/formatters/snapshotFormatter.js +73 -0
  15. package/build/src/index.js +21 -0
  16. package/build/src/issue-descriptions.js +39 -0
  17. package/build/src/logger.js +27 -0
  18. package/build/src/main.js +259 -0
  19. package/build/src/polyfill.js +7 -0
  20. package/build/src/polyfillLoader.js +44 -0
  21. package/build/src/prompts/index.js +156 -0
  22. package/build/src/third_party/index.js +16 -0
  23. package/build/src/tools/ToolDefinition.js +20 -0
  24. package/build/src/tools/WebMCPToolHub.js +308 -0
  25. package/build/src/tools/categories.js +24 -0
  26. package/build/src/tools/console.js +85 -0
  27. package/build/src/tools/emulation.js +87 -0
  28. package/build/src/tools/input.js +268 -0
  29. package/build/src/tools/network.js +106 -0
  30. package/build/src/tools/pages.js +244 -0
  31. package/build/src/tools/performance.js +147 -0
  32. package/build/src/tools/screenshot.js +84 -0
  33. package/build/src/tools/script.js +71 -0
  34. package/build/src/tools/snapshot.js +53 -0
  35. package/build/src/tools/tools.js +31 -0
  36. package/build/src/tools/webmcp.js +695 -0
  37. package/build/src/trace-processing/parse.js +84 -0
  38. package/build/src/transports/WebMCPBridgeScript.js +220 -0
  39. package/build/src/transports/WebMCPClientTransport.js +401 -0
  40. package/build/src/transports/bridgeConstants.js +22 -0
  41. package/build/src/transports/index.js +7 -0
  42. package/build/src/utils/keyboard.js +296 -0
  43. package/build/src/utils/pagination.js +49 -0
  44. package/build/src/utils/types.js +6 -0
  45. package/build/vendor/chrome-devtools-frontend/LICENSE +27 -0
  46. package/build/vendor/chrome-devtools-frontend/front_end/core/common/App.js +4 -0
  47. package/build/vendor/chrome-devtools-frontend/front_end/core/common/AppProvider.js +17 -0
  48. package/build/vendor/chrome-devtools-frontend/front_end/core/common/Base64.js +43 -0
  49. package/build/vendor/chrome-devtools-frontend/front_end/core/common/CharacterIdMap.js +27 -0
  50. package/build/vendor/chrome-devtools-frontend/front_end/core/common/Color.js +2033 -0
  51. package/build/vendor/chrome-devtools-frontend/front_end/core/common/ColorConverter.js +332 -0
  52. package/build/vendor/chrome-devtools-frontend/front_end/core/common/ColorUtils.js +221 -0
  53. package/build/vendor/chrome-devtools-frontend/front_end/core/common/Console.js +79 -0
  54. package/build/vendor/chrome-devtools-frontend/front_end/core/common/Debouncer.js +14 -0
  55. package/build/vendor/chrome-devtools-frontend/front_end/core/common/EventTarget.js +14 -0
  56. package/build/vendor/chrome-devtools-frontend/front_end/core/common/Gzip.js +66 -0
  57. package/build/vendor/chrome-devtools-frontend/front_end/core/common/JavaScriptMetaData.js +4 -0
  58. package/build/vendor/chrome-devtools-frontend/front_end/core/common/Lazy.js +29 -0
  59. package/build/vendor/chrome-devtools-frontend/front_end/core/common/MapWithDefault.js +22 -0
  60. package/build/vendor/chrome-devtools-frontend/front_end/core/common/Mutex.js +49 -0
  61. package/build/vendor/chrome-devtools-frontend/front_end/core/common/Object.js +86 -0
  62. package/build/vendor/chrome-devtools-frontend/front_end/core/common/ParsedURL.js +449 -0
  63. package/build/vendor/chrome-devtools-frontend/front_end/core/common/Progress.js +144 -0
  64. package/build/vendor/chrome-devtools-frontend/front_end/core/common/ResolverBase.js +69 -0
  65. package/build/vendor/chrome-devtools-frontend/front_end/core/common/ResourceType.js +495 -0
  66. package/build/vendor/chrome-devtools-frontend/front_end/core/common/ReturnToPanel.js +15 -0
  67. package/build/vendor/chrome-devtools-frontend/front_end/core/common/Revealer.js +164 -0
  68. package/build/vendor/chrome-devtools-frontend/front_end/core/common/Runnable.js +24 -0
  69. package/build/vendor/chrome-devtools-frontend/front_end/core/common/SegmentedRange.js +78 -0
  70. package/build/vendor/chrome-devtools-frontend/front_end/core/common/SettingRegistration.js +164 -0
  71. package/build/vendor/chrome-devtools-frontend/front_end/core/common/Settings.js +1263 -0
  72. package/build/vendor/chrome-devtools-frontend/front_end/core/common/SimpleHistoryManager.js +97 -0
  73. package/build/vendor/chrome-devtools-frontend/front_end/core/common/StringOutputStream.js +14 -0
  74. package/build/vendor/chrome-devtools-frontend/front_end/core/common/TextDictionary.js +40 -0
  75. package/build/vendor/chrome-devtools-frontend/front_end/core/common/Throttler.js +71 -0
  76. package/build/vendor/chrome-devtools-frontend/front_end/core/common/Trie.js +127 -0
  77. package/build/vendor/chrome-devtools-frontend/front_end/core/common/common.js +41 -0
  78. package/build/vendor/chrome-devtools-frontend/front_end/core/host/AidaClient.js +434 -0
  79. package/build/vendor/chrome-devtools-frontend/front_end/core/host/DispatchHttpRequestClient.js +66 -0
  80. package/build/vendor/chrome-devtools-frontend/front_end/core/host/GdpClient.js +202 -0
  81. package/build/vendor/chrome-devtools-frontend/front_end/core/host/InspectorFrontendHost.js +92 -0
  82. package/build/vendor/chrome-devtools-frontend/front_end/core/host/InspectorFrontendHostAPI.js +69 -0
  83. package/build/vendor/chrome-devtools-frontend/front_end/core/host/InspectorFrontendHostStub.js +430 -0
  84. package/build/vendor/chrome-devtools-frontend/front_end/core/host/Platform.js +61 -0
  85. package/build/vendor/chrome-devtools-frontend/front_end/core/host/ResourceLoader.js +220 -0
  86. package/build/vendor/chrome-devtools-frontend/front_end/core/host/UserMetrics.js +968 -0
  87. package/build/vendor/chrome-devtools-frontend/front_end/core/host/host.js +13 -0
  88. package/build/vendor/chrome-devtools-frontend/front_end/core/i18n/ByteUtilities.js +72 -0
  89. package/build/vendor/chrome-devtools-frontend/front_end/core/i18n/DevToolsLocale.js +64 -0
  90. package/build/vendor/chrome-devtools-frontend/front_end/core/i18n/NumberFormatter.js +67 -0
  91. package/build/vendor/chrome-devtools-frontend/front_end/core/i18n/collect-ui-strings.js +73 -0
  92. package/build/vendor/chrome-devtools-frontend/front_end/core/i18n/generate-locales-js.js +51 -0
  93. package/build/vendor/chrome-devtools-frontend/front_end/core/i18n/i18n.js +9 -0
  94. package/build/vendor/chrome-devtools-frontend/front_end/core/i18n/i18nImpl.js +135 -0
  95. package/build/vendor/chrome-devtools-frontend/front_end/core/i18n/i18nTypes.js +4 -0
  96. package/build/vendor/chrome-devtools-frontend/front_end/core/i18n/locales.js +14 -0
  97. package/build/vendor/chrome-devtools-frontend/front_end/core/i18n/time-utilities.js +148 -0
  98. package/build/vendor/chrome-devtools-frontend/front_end/core/platform/ArrayUtilities.js +199 -0
  99. package/build/vendor/chrome-devtools-frontend/front_end/core/platform/Brand.js +4 -0
  100. package/build/vendor/chrome-devtools-frontend/front_end/core/platform/Constructor.js +4 -0
  101. package/build/vendor/chrome-devtools-frontend/front_end/core/platform/DateUtilities.js +13 -0
  102. package/build/vendor/chrome-devtools-frontend/front_end/core/platform/DevToolsPath.js +27 -0
  103. package/build/vendor/chrome-devtools-frontend/front_end/core/platform/HostRuntime.js +19 -0
  104. package/build/vendor/chrome-devtools-frontend/front_end/core/platform/KeyboardUtilities.js +21 -0
  105. package/build/vendor/chrome-devtools-frontend/front_end/core/platform/MapUtilities.js +79 -0
  106. package/build/vendor/chrome-devtools-frontend/front_end/core/platform/MimeType.js +143 -0
  107. package/build/vendor/chrome-devtools-frontend/front_end/core/platform/NumberUtilities.js +72 -0
  108. package/build/vendor/chrome-devtools-frontend/front_end/core/platform/StringUtilities.js +538 -0
  109. package/build/vendor/chrome-devtools-frontend/front_end/core/platform/Timing.js +9 -0
  110. package/build/vendor/chrome-devtools-frontend/front_end/core/platform/TypedArrayUtilities.js +157 -0
  111. package/build/vendor/chrome-devtools-frontend/front_end/core/platform/TypescriptUtilities.js +24 -0
  112. package/build/vendor/chrome-devtools-frontend/front_end/core/platform/UIString.js +4 -0
  113. package/build/vendor/chrome-devtools-frontend/front_end/core/platform/UserVisibleError.js +22 -0
  114. package/build/vendor/chrome-devtools-frontend/front_end/core/platform/api/HostRuntime.js +4 -0
  115. package/build/vendor/chrome-devtools-frontend/front_end/core/platform/api/api.js +5 -0
  116. package/build/vendor/chrome-devtools-frontend/front_end/core/platform/browser/HostRuntime.js +63 -0
  117. package/build/vendor/chrome-devtools-frontend/front_end/core/platform/browser/browser.js +5 -0
  118. package/build/vendor/chrome-devtools-frontend/front_end/core/platform/node/HostRuntime.js +72 -0
  119. package/build/vendor/chrome-devtools-frontend/front_end/core/platform/node/node.js +5 -0
  120. package/build/vendor/chrome-devtools-frontend/front_end/core/platform/platform.js +26 -0
  121. package/build/vendor/chrome-devtools-frontend/front_end/core/protocol_client/CDPConnection.js +17 -0
  122. package/build/vendor/chrome-devtools-frontend/front_end/core/protocol_client/ConnectionTransport.js +12 -0
  123. package/build/vendor/chrome-devtools-frontend/front_end/core/protocol_client/DevToolsCDPConnection.js +138 -0
  124. package/build/vendor/chrome-devtools-frontend/front_end/core/protocol_client/InspectorBackend.js +539 -0
  125. package/build/vendor/chrome-devtools-frontend/front_end/core/protocol_client/protocol_client.js +8 -0
  126. package/build/vendor/chrome-devtools-frontend/front_end/core/root/DevToolsContext.js +54 -0
  127. package/build/vendor/chrome-devtools-frontend/front_end/core/root/Runtime.js +11 -0
  128. package/build/vendor/chrome-devtools-frontend/front_end/core/root/root.js +6 -0
  129. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/AccessibilityModel.js +281 -0
  130. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/AnimationModel.js +845 -0
  131. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/AutofillModel.js +155 -0
  132. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/CPUProfilerModel.js +99 -0
  133. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/CPUThrottlingManager.js +217 -0
  134. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/CSSContainerQuery.js +98 -0
  135. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/CSSFontFace.js +31 -0
  136. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/CSSLayer.js +22 -0
  137. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/CSSMatchedStyles.js +1318 -0
  138. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/CSSMedia.js +100 -0
  139. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/CSSMetadata.js +1532 -0
  140. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/CSSModel.js +908 -0
  141. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/CSSProperty.js +312 -0
  142. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/CSSPropertyParser.js +574 -0
  143. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/CSSPropertyParserMatchers.js +1346 -0
  144. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/CSSQuery.js +53 -0
  145. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/CSSRule.js +403 -0
  146. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/CSSScope.js +22 -0
  147. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/CSSStartingStyle.js +21 -0
  148. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/CSSStyleDeclaration.js +275 -0
  149. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/CSSStyleSheetHeader.js +166 -0
  150. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/CSSSupports.js +24 -0
  151. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/CategorizedBreakpoint.js +29 -0
  152. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/ChildTargetManager.js +236 -0
  153. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/CompilerSourceMappingContentProvider.js +47 -0
  154. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/Connections.js +205 -0
  155. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/ConsoleModel.js +629 -0
  156. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/ConsoleModelTypes.js +14 -0
  157. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/Cookie.js +241 -0
  158. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/CookieModel.js +198 -0
  159. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/CookieParser.js +163 -0
  160. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/DOMDebuggerModel.js +597 -0
  161. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/DOMModel.js +1635 -0
  162. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/DebuggerModel.js +1216 -0
  163. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/EmulationModel.js +527 -0
  164. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/EnhancedTracesParser.js +364 -0
  165. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/EventBreakpointsModel.js +127 -0
  166. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/FrameAssociated.js +4 -0
  167. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/FrameManager.js +199 -0
  168. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/HeapProfilerModel.js +130 -0
  169. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/HttpReasonPhraseStrings.js +75 -0
  170. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/IOModel.js +80 -0
  171. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/IsolateManager.js +208 -0
  172. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/IssuesModel.js +41 -0
  173. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/LayerTreeBase.js +95 -0
  174. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/LogModel.js +34 -0
  175. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/NetworkManager.js +2223 -0
  176. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/NetworkRequest.js +1654 -0
  177. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/OverlayColorGenerator.js +48 -0
  178. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/OverlayModel.js +765 -0
  179. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/OverlayPersistentHighlighter.js +384 -0
  180. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/PageLoad.js +25 -0
  181. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/PageResourceLoader.js +310 -0
  182. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/PaintProfiler.js +67 -0
  183. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/PerformanceMetricsModel.js +62 -0
  184. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/PreloadingModel.js +608 -0
  185. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/RehydratingConnection.js +413 -0
  186. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/RehydratingObject.js +4 -0
  187. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/RemoteObject.js +908 -0
  188. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/Resource.js +163 -0
  189. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/ResourceTreeModel.js +923 -0
  190. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/RuntimeModel.js +535 -0
  191. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/SDKModel.js +45 -0
  192. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/ScopeTreeCache.js +36 -0
  193. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/ScreenCaptureModel.js +176 -0
  194. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/Script.js +420 -0
  195. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/SecurityOriginManager.js +54 -0
  196. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/ServerSentEvents.js +67 -0
  197. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/ServerSentEventsProtocol.js +113 -0
  198. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/ServerTiming.js +216 -0
  199. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/ServiceWorkerCacheModel.js +271 -0
  200. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/ServiceWorkerManager.js +511 -0
  201. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/SourceMap.js +691 -0
  202. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/SourceMapCache.js +57 -0
  203. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/SourceMapFunctionRanges.js +132 -0
  204. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/SourceMapManager.js +201 -0
  205. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/SourceMapScopeChainEntry.js +156 -0
  206. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/SourceMapScopesInfo.js +508 -0
  207. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/StorageBucketsModel.js +143 -0
  208. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/StorageKeyManager.js +53 -0
  209. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/Target.js +257 -0
  210. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/TargetManager.js +395 -0
  211. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/TraceObject.js +55 -0
  212. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/WebAuthnModel.js +66 -0
  213. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/sdk-meta.js +1166 -0
  214. package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/sdk.js +91 -0
  215. package/build/vendor/chrome-devtools-frontend/front_end/foundation/Universe.js +34 -0
  216. package/build/vendor/chrome-devtools-frontend/front_end/foundation/foundation.js +5 -0
  217. package/build/vendor/chrome-devtools-frontend/front_end/generated/ARIAProperties.js +2640 -0
  218. package/build/vendor/chrome-devtools-frontend/front_end/generated/Deprecation.js +384 -0
  219. package/build/vendor/chrome-devtools-frontend/front_end/generated/InspectorBackendCommands.js +1532 -0
  220. package/build/vendor/chrome-devtools-frontend/front_end/generated/SupportedCSSProperties.js +7602 -0
  221. package/build/vendor/chrome-devtools-frontend/front_end/generated/protocol.js +4 -0
  222. package/build/vendor/chrome-devtools-frontend/front_end/models/ai_assistance/data_formatters/NetworkRequestFormatter.js +289 -0
  223. package/build/vendor/chrome-devtools-frontend/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.js +995 -0
  224. package/build/vendor/chrome-devtools-frontend/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.js +664 -0
  225. package/build/vendor/chrome-devtools-frontend/front_end/models/ai_assistance/data_formatters/UnitFormatters.js +139 -0
  226. package/build/vendor/chrome-devtools-frontend/front_end/models/ai_assistance/performance/AICallTree.js +377 -0
  227. package/build/vendor/chrome-devtools-frontend/front_end/models/ai_assistance/performance/AIContext.js +131 -0
  228. package/build/vendor/chrome-devtools-frontend/front_end/models/ai_assistance/performance/AIQueries.js +149 -0
  229. package/build/vendor/chrome-devtools-frontend/front_end/models/bindings/CSSWorkspaceBinding.js +245 -0
  230. package/build/vendor/chrome-devtools-frontend/front_end/models/bindings/CompilerScriptMapping.js +486 -0
  231. package/build/vendor/chrome-devtools-frontend/front_end/models/bindings/ContentProviderBasedProject.js +130 -0
  232. package/build/vendor/chrome-devtools-frontend/front_end/models/bindings/DebuggerLanguagePlugins.js +992 -0
  233. package/build/vendor/chrome-devtools-frontend/front_end/models/bindings/DebuggerWorkspaceBinding.js +592 -0
  234. package/build/vendor/chrome-devtools-frontend/front_end/models/bindings/DefaultScriptMapping.js +112 -0
  235. package/build/vendor/chrome-devtools-frontend/front_end/models/bindings/FileUtils.js +186 -0
  236. package/build/vendor/chrome-devtools-frontend/front_end/models/bindings/LiveLocation.js +60 -0
  237. package/build/vendor/chrome-devtools-frontend/front_end/models/bindings/NetworkProject.js +107 -0
  238. package/build/vendor/chrome-devtools-frontend/front_end/models/bindings/PresentationConsoleMessageHelper.js +244 -0
  239. package/build/vendor/chrome-devtools-frontend/front_end/models/bindings/ResourceMapping.js +564 -0
  240. package/build/vendor/chrome-devtools-frontend/front_end/models/bindings/ResourceScriptMapping.js +437 -0
  241. package/build/vendor/chrome-devtools-frontend/front_end/models/bindings/ResourceUtils.js +87 -0
  242. package/build/vendor/chrome-devtools-frontend/front_end/models/bindings/SASSSourceMapping.js +182 -0
  243. package/build/vendor/chrome-devtools-frontend/front_end/models/bindings/StylesSourceMapping.js +268 -0
  244. package/build/vendor/chrome-devtools-frontend/front_end/models/bindings/TempFile.js +55 -0
  245. package/build/vendor/chrome-devtools-frontend/front_end/models/bindings/bindings.js +20 -0
  246. package/build/vendor/chrome-devtools-frontend/front_end/models/cpu_profile/CPUProfileDataModel.js +516 -0
  247. package/build/vendor/chrome-devtools-frontend/front_end/models/cpu_profile/ProfileTreeModel.js +89 -0
  248. package/build/vendor/chrome-devtools-frontend/front_end/models/cpu_profile/cpu_profile.js +6 -0
  249. package/build/vendor/chrome-devtools-frontend/front_end/models/crux-manager/CrUXManager.js +285 -0
  250. package/build/vendor/chrome-devtools-frontend/front_end/models/crux-manager/crux-manager.js +4 -0
  251. package/build/vendor/chrome-devtools-frontend/front_end/models/emulation/DeviceModeModel.js +775 -0
  252. package/build/vendor/chrome-devtools-frontend/front_end/models/emulation/EmulatedDevices.js +1706 -0
  253. package/build/vendor/chrome-devtools-frontend/front_end/models/emulation/emulation.js +6 -0
  254. package/build/vendor/chrome-devtools-frontend/front_end/models/formatter/FormatterWorkerPool.js +145 -0
  255. package/build/vendor/chrome-devtools-frontend/front_end/models/formatter/ScriptFormatter.js +77 -0
  256. package/build/vendor/chrome-devtools-frontend/front_end/models/formatter/formatter.js +6 -0
  257. package/build/vendor/chrome-devtools-frontend/front_end/models/geometry/GeometryImpl.js +347 -0
  258. package/build/vendor/chrome-devtools-frontend/front_end/models/geometry/geometry.js +4 -0
  259. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/AttributionReportingIssue.js +201 -0
  260. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/BounceTrackingIssue.js +49 -0
  261. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/CheckFormsIssuesTrigger.js +31 -0
  262. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/ClientHintIssue.js +71 -0
  263. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/ContentSecurityPolicyIssue.js +135 -0
  264. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/ContrastCheckTrigger.js +59 -0
  265. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/CookieDeprecationMetadataIssue.js +58 -0
  266. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/CookieIssue.js +514 -0
  267. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/CorsIssue.js +244 -0
  268. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/CrossOriginEmbedderPolicyIssue.js +110 -0
  269. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/DeprecationIssue.js +90 -0
  270. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/ElementAccessibilityIssue.js +95 -0
  271. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/FederatedAuthRequestIssue.js +231 -0
  272. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/FederatedAuthUserInfoRequestIssue.js +141 -0
  273. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/GenericIssue.js +212 -0
  274. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/HeavyAdIssue.js +52 -0
  275. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/Issue.js +152 -0
  276. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/IssueAggregator.js +314 -0
  277. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/IssueResolver.js +40 -0
  278. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/IssuesManager.js +416 -0
  279. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/IssuesManagerEvents.js +4 -0
  280. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/LowTextContrastIssue.js +48 -0
  281. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/MarkdownIssueDescription.js +104 -0
  282. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/MixedContentIssue.js +55 -0
  283. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/PartitioningBlobURLIssue.js +58 -0
  284. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/PropertyRuleIssue.js +58 -0
  285. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/QuirksModeIssue.js +48 -0
  286. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/RelatedIssue.js +70 -0
  287. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/SRIMessageSignatureIssue.js +87 -0
  288. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/SharedArrayBufferIssue.js +49 -0
  289. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/SharedDictionaryIssue.js +292 -0
  290. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/SourceFrameIssuesManager.js +81 -0
  291. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/StylesheetLoadingIssue.js +59 -0
  292. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/UnencodedDigestIssue.js +62 -0
  293. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/CoepCoopSandboxedIframeCannotNavigateToCoopPage.md +4 -0
  294. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/CoepCorpNotSameOrigin.md +8 -0
  295. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/CoepCorpNotSameOriginAfterDefaultedToSameOriginByCoep.md +18 -0
  296. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/CoepCorpNotSameSite.md +7 -0
  297. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/CoepFrameResourceNeedsCoepHeader.md +10 -0
  298. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/CompatibilityModeQuirks.md +5 -0
  299. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/CookieAttributeValueExceedsMaxSize.md +5 -0
  300. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/LowTextContrast.md +5 -0
  301. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteExcludeContextDowngradeRead.md +8 -0
  302. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteExcludeContextDowngradeSet.md +8 -0
  303. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteExcludeNavigationContextDowngrade.md +8 -0
  304. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteInvalidSameParty.md +8 -0
  305. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteNoneInsecureErrorRead.md +8 -0
  306. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteNoneInsecureErrorSet.md +8 -0
  307. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteNoneInsecureWarnRead.md +8 -0
  308. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteNoneInsecureWarnSet.md +8 -0
  309. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteSamePartyCrossPartyContextSet.md +10 -0
  310. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteUnspecifiedLaxAllowUnsafeRead.md +9 -0
  311. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteUnspecifiedLaxAllowUnsafeSet.md +9 -0
  312. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteWarnCrossDowngradeRead.md +8 -0
  313. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteWarnCrossDowngradeSet.md +8 -0
  314. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteWarnStrictLaxDowngradeStrict.md +8 -0
  315. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arInsecureContext.md +7 -0
  316. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arInvalidInfoHeader.md +5 -0
  317. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arInvalidRegisterOsSourceHeader.md +5 -0
  318. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arInvalidRegisterOsTriggerHeader.md +5 -0
  319. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arInvalidRegisterSourceHeader.md +5 -0
  320. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arInvalidRegisterTriggerHeader.md +5 -0
  321. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arNavigationRegistrationUniqueScopeAlreadySet.md +5 -0
  322. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arNavigationRegistrationWithoutTransientUserActivation.md +6 -0
  323. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arNoRegisterOsSourceHeader.md +5 -0
  324. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arNoRegisterOsTriggerHeader.md +5 -0
  325. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arNoRegisterSourceHeader.md +5 -0
  326. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arNoRegisterTriggerHeader.md +5 -0
  327. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arNoWebOrOsSupport.md +4 -0
  328. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arOsSourceIgnored.md +18 -0
  329. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arOsTriggerIgnored.md +19 -0
  330. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arPermissionPolicyDisabled.md +8 -0
  331. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arSourceAndTriggerHeaders.md +9 -0
  332. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arSourceIgnored.md +13 -0
  333. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arTriggerIgnored.md +12 -0
  334. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arUntrustworthyReportingOrigin.md +10 -0
  335. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arWebAndOsHeaders.md +11 -0
  336. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/bounceTrackingMitigations.md +3 -0
  337. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/clientHintMetaTagAllowListInvalidOrigin.md +4 -0
  338. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/clientHintMetaTagModifiedHTML.md +4 -0
  339. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieCrossSiteRedirectDowngrade.md +12 -0
  340. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieExcludeBlockedWithinRelatedWebsiteSet.md +4 -0
  341. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieExcludeDomainNonAscii.md +11 -0
  342. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieExcludePortMismatch.md +8 -0
  343. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieExcludeSchemeMismatch.md +7 -0
  344. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieExcludeThirdPartyPhaseoutRead.md +6 -0
  345. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieExcludeThirdPartyPhaseoutSet.md +6 -0
  346. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieWarnDomainNonAscii.md +11 -0
  347. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieWarnMetadataGrantRead.md +4 -0
  348. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieWarnMetadataGrantSet.md +4 -0
  349. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieWarnThirdPartyPhaseoutRead.md +6 -0
  350. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieWarnThirdPartyPhaseoutSet.md +6 -0
  351. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsAllowCredentialsRequired.md +6 -0
  352. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsDisabledScheme.md +7 -0
  353. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsDisallowedByMode.md +7 -0
  354. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsHeaderDisallowedByPreflightResponse.md +5 -0
  355. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsInsecurePrivateNetwork.md +10 -0
  356. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsInvalidHeaderValues.md +7 -0
  357. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsLocalNetworkAccessPermissionDenied.md +19 -0
  358. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsMethodDisallowedByPreflightResponse.md +5 -0
  359. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsNoCorsRedirectModeNotFollow.md +5 -0
  360. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsOriginMismatch.md +6 -0
  361. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsPreflightAllowPrivateNetworkError.md +10 -0
  362. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsPreflightResponseInvalid.md +5 -0
  363. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsPrivateNetworkPermissionDenied.md +10 -0
  364. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsRedirectContainsCredentials.md +5 -0
  365. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsWildcardOriginNotAllowed.md +8 -0
  366. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cspEvalViolation.md +9 -0
  367. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cspInlineViolation.md +10 -0
  368. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cspTrustedTypesPolicyViolation.md +5 -0
  369. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cspTrustedTypesSinkViolation.md +8 -0
  370. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cspURLViolation.md +10 -0
  371. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/deprecation.md +3 -0
  372. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestAccountsHttpNotFound.md +1 -0
  373. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestAccountsInvalidResponse.md +1 -0
  374. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestAccountsNoResponse.md +1 -0
  375. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestApprovalDeclined.md +1 -0
  376. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestCanceled.md +1 -0
  377. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestClientMetadataHttpNotFound.md +1 -0
  378. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestClientMetadataInvalidResponse.md +1 -0
  379. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestClientMetadataNoResponse.md +1 -0
  380. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestErrorFetchingSignin.md +1 -0
  381. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestErrorIdToken.md +1 -0
  382. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestIdTokenHttpNotFound.md +1 -0
  383. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestIdTokenInvalidRequest.md +1 -0
  384. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestIdTokenInvalidResponse.md +1 -0
  385. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestIdTokenNoResponse.md +1 -0
  386. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestInvalidSigninResponse.md +1 -0
  387. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestManifestHttpNotFound.md +1 -0
  388. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestManifestInvalidResponse.md +1 -0
  389. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestManifestNoResponse.md +1 -0
  390. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestTooManyRequests.md +1 -0
  391. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestInvalidAccountsResponse.md +1 -0
  392. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestInvalidConfigOrWellKnown.md +1 -0
  393. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNoAccountSharingPermission.md +1 -0
  394. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNoApiPermission.md +1 -0
  395. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNoReturningUserFromFetchedAccounts.md +1 -0
  396. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotIframe.md +1 -0
  397. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotPotentiallyTrustworthy.md +1 -0
  398. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotSameOrigin.md +1 -0
  399. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotSignedInWithIdp.md +1 -0
  400. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/fetchingPartitionedBlobURL.md +7 -0
  401. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericFormAriaLabelledByToNonExistingIdError.md +8 -0
  402. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericFormAutocompleteAttributeEmptyError.md +5 -0
  403. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericFormDuplicateIdForInputError.md +5 -0
  404. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericFormEmptyIdAndNameAttributesForInputError.md +5 -0
  405. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericFormInputAssignedAutocompleteValueToIdOrNameAttributeError.md +5 -0
  406. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericFormInputHasWrongButWellIntendedAutocompleteValueError.md +5 -0
  407. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericFormInputWithNoLabelError.md +5 -0
  408. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericFormLabelForMatchesNonExistingIdError.md +5 -0
  409. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericFormLabelForNameError.md +5 -0
  410. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericFormLabelHasNeitherForNorNestedInputError.md +5 -0
  411. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericNavigationEntryMarkedSkippable.md +7 -0
  412. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericResponseWasBlockedByORB.md +4 -0
  413. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/heavyAd.md +10 -0
  414. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/mixedContent.md +5 -0
  415. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/navigatingPartitionedBlobURL.md +5 -0
  416. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/placeholderDescriptionForInvisibleIssues.md +3 -0
  417. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/propertyRuleInvalidNameIssue.md +3 -0
  418. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/propertyRuleIssue.md +7 -0
  419. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/selectElementAccessibilityDisallowedOptGroupChild.md +7 -0
  420. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/selectElementAccessibilityDisallowedSelectChild.md +7 -0
  421. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/selectElementAccessibilityInteractiveContentAttributesSelectDescendant.md +3 -0
  422. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/selectElementAccessibilityInteractiveContentLegendChild.md +3 -0
  423. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/selectElementAccessibilityInteractiveContentOptionChild.md +3 -0
  424. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/selectElementAccessibilityNonPhrasingContentOptionChild.md +3 -0
  425. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedArrayBuffer.md +7 -0
  426. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryUseErrorCrossOriginNoCorsRequest.md +1 -0
  427. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryUseErrorDictionaryLoadFailure.md +3 -0
  428. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryUseErrorMatchingDictionaryNotUsed.md +3 -0
  429. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryUseErrorUnexpectedContentDictionaryHeader.md +1 -0
  430. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorCossOriginNoCorsRequest.md +1 -0
  431. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorDisallowedBySettings.md +1 -0
  432. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorExpiredResponse.md +3 -0
  433. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorFeatureDisabled.md +3 -0
  434. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorInsufficientResources.md +1 -0
  435. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorInvalidMatchField.md +1 -0
  436. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorInvalidStructuredHeader.md +1 -0
  437. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorInvalidTTLField.md +1 -0
  438. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorNavigationRequest.md +3 -0
  439. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorNoMatchField.md +1 -0
  440. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonIntegerTTLField.md +1 -0
  441. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonListMatchDestField.md +1 -0
  442. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonSecureContext.md +3 -0
  443. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonStringIdField.md +1 -0
  444. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonStringInMatchDestList.md +1 -0
  445. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonStringMatchField.md +1 -0
  446. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonTokenTypeField.md +1 -0
  447. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorRequestAborted.md +1 -0
  448. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorShuttingDown.md +1 -0
  449. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorTooLongIdField.md +3 -0
  450. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorUnsupportedType.md +3 -0
  451. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriInvalidSignatureHeader.md +14 -0
  452. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriInvalidSignatureInputHeader.md +15 -0
  453. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriMissingSignatureHeader.md +8 -0
  454. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriMissingSignatureInputHeader.md +7 -0
  455. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureHeaderValueIsIncorrectLength.md +11 -0
  456. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureHeaderValueIsNotByteSequence.md +14 -0
  457. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureHeaderValueIsParameterized.md +15 -0
  458. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidComponentName.md +8 -0
  459. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidComponentType.md +13 -0
  460. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidDerivedComponentParameter.md +4 -0
  461. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidHeaderComponentParameter.md +5 -0
  462. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidParameter.md +11 -0
  463. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderKeyIdLength.md +12 -0
  464. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderMissingLabel.md +6 -0
  465. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderMissingRequiredParameters.md +8 -0
  466. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderValueMissingComponents.md +11 -0
  467. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderValueNotInnerList.md +11 -0
  468. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriValidationFailedIntegrityMismatch.md +10 -0
  469. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriValidationFailedInvalidLength.md +5 -0
  470. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriValidationFailedSignatureExpired.md +6 -0
  471. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriValidationFailedSignatureMismatch.md +11 -0
  472. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/stylesheetLateImport.md +4 -0
  473. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/stylesheetRequestFailed.md +3 -0
  474. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/summaryElementAccessibilityInteractiveContentSummaryDescendant.md +3 -0
  475. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/unencodedDigestIncorrectDigestLength.md +12 -0
  476. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/unencodedDigestIncorrectDigestType.md +17 -0
  477. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/unencodedDigestMalformedDictionary.md +14 -0
  478. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/unencodedDigestUnknownAlgorithm.md +15 -0
  479. package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/issues_manager.js +35 -0
  480. package/build/vendor/chrome-devtools-frontend/front_end/models/logs/LogManager.js +67 -0
  481. package/build/vendor/chrome-devtools-frontend/front_end/models/logs/NetworkLog.js +494 -0
  482. package/build/vendor/chrome-devtools-frontend/front_end/models/logs/RequestResolver.js +49 -0
  483. package/build/vendor/chrome-devtools-frontend/front_end/models/logs/logs-meta.js +73 -0
  484. package/build/vendor/chrome-devtools-frontend/front_end/models/logs/logs.js +7 -0
  485. package/build/vendor/chrome-devtools-frontend/front_end/models/network_time_calculator/Calculator.js +4 -0
  486. package/build/vendor/chrome-devtools-frontend/front_end/models/network_time_calculator/NetworkTimeCalculator.js +256 -0
  487. package/build/vendor/chrome-devtools-frontend/front_end/models/network_time_calculator/RequestTimeRanges.js +122 -0
  488. package/build/vendor/chrome-devtools-frontend/front_end/models/network_time_calculator/network_time_calculator.js +6 -0
  489. package/build/vendor/chrome-devtools-frontend/front_end/models/source_map_scopes/FunctionCodeResolver.js +192 -0
  490. package/build/vendor/chrome-devtools-frontend/front_end/models/source_map_scopes/NamesResolver.js +622 -0
  491. package/build/vendor/chrome-devtools-frontend/front_end/models/source_map_scopes/ScopeChainModel.js +59 -0
  492. package/build/vendor/chrome-devtools-frontend/front_end/models/source_map_scopes/source_map_scopes.js +7 -0
  493. package/build/vendor/chrome-devtools-frontend/front_end/models/stack_trace/StackTrace.js +4 -0
  494. package/build/vendor/chrome-devtools-frontend/front_end/models/stack_trace/StackTraceImpl.js +67 -0
  495. package/build/vendor/chrome-devtools-frontend/front_end/models/stack_trace/StackTraceModel.js +97 -0
  496. package/build/vendor/chrome-devtools-frontend/front_end/models/stack_trace/Trie.js +121 -0
  497. package/build/vendor/chrome-devtools-frontend/front_end/models/stack_trace/stack_trace.js +5 -0
  498. package/build/vendor/chrome-devtools-frontend/front_end/models/stack_trace/stack_trace_impl.js +7 -0
  499. package/build/vendor/chrome-devtools-frontend/front_end/models/text_utils/CodeMirrorUtils.js +32 -0
  500. package/build/vendor/chrome-devtools-frontend/front_end/models/text_utils/ContentData.js +173 -0
  501. package/build/vendor/chrome-devtools-frontend/front_end/models/text_utils/ContentProvider.js +30 -0
  502. package/build/vendor/chrome-devtools-frontend/front_end/models/text_utils/StaticContentProvider.js +32 -0
  503. package/build/vendor/chrome-devtools-frontend/front_end/models/text_utils/StreamingContentData.js +79 -0
  504. package/build/vendor/chrome-devtools-frontend/front_end/models/text_utils/Text.js +69 -0
  505. package/build/vendor/chrome-devtools-frontend/front_end/models/text_utils/TextCursor.js +35 -0
  506. package/build/vendor/chrome-devtools-frontend/front_end/models/text_utils/TextRange.js +231 -0
  507. package/build/vendor/chrome-devtools-frontend/front_end/models/text_utils/TextUtils.js +355 -0
  508. package/build/vendor/chrome-devtools-frontend/front_end/models/text_utils/WasmDisassembly.js +68 -0
  509. package/build/vendor/chrome-devtools-frontend/front_end/models/text_utils/text_utils.js +14 -0
  510. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/EntityMapper.js +122 -0
  511. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/EventsSerializer.js +81 -0
  512. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/LanternComputationData.js +371 -0
  513. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/ModelImpl.js +169 -0
  514. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/Name.js +114 -0
  515. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/Processor.js +555 -0
  516. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/Styles.js +815 -0
  517. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/extras/FilmStrip.js +44 -0
  518. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/extras/MainThreadActivity.js +76 -0
  519. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/extras/ScriptDuplication.js +162 -0
  520. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/extras/StackTraceForEvent.js +191 -0
  521. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/extras/ThirdParties.js +118 -0
  522. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/extras/TraceFilter.js +50 -0
  523. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/extras/TraceTree.js +599 -0
  524. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/extras/extras.js +10 -0
  525. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/handlers/AnimationFramesHandler.js +109 -0
  526. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/handlers/AnimationHandler.js +26 -0
  527. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/handlers/AsyncJSCallsHandler.js +187 -0
  528. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/handlers/AuctionWorkletsHandler.js +162 -0
  529. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/handlers/DOMStatsHandler.js +21 -0
  530. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/handlers/ExtensionTraceDataHandler.js +263 -0
  531. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/handlers/FlowsHandler.js +148 -0
  532. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/handlers/FramesHandler.js +485 -0
  533. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/handlers/GPUHandler.js +35 -0
  534. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/handlers/ImagePaintingHandler.js +147 -0
  535. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/handlers/InitiatorsHandler.js +180 -0
  536. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/handlers/InvalidationsHandler.js +126 -0
  537. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/handlers/LargestImagePaintHandler.js +85 -0
  538. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/handlers/LargestTextPaintHandler.js +27 -0
  539. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/handlers/LayerTreeHandler.js +103 -0
  540. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/handlers/LayoutShiftsHandler.js +449 -0
  541. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/handlers/MemoryHandler.js +21 -0
  542. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/handlers/MetaHandler.js +404 -0
  543. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/handlers/ModelHandlers.js +33 -0
  544. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/handlers/NetworkRequestsHandler.js +566 -0
  545. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/handlers/PageFramesHandler.js +42 -0
  546. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/handlers/PageLoadMetricsHandler.js +349 -0
  547. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/handlers/RendererHandler.js +346 -0
  548. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/handlers/SamplesHandler.js +260 -0
  549. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/handlers/ScreenshotsHandler.js +97 -0
  550. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/handlers/ScriptsHandler.js +276 -0
  551. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/handlers/SelectorStatsHandler.js +71 -0
  552. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/handlers/Threads.js +101 -0
  553. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/handlers/UserInteractionsHandler.js +317 -0
  554. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/handlers/UserTimingsHandler.js +183 -0
  555. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/handlers/WarningsHandler.js +134 -0
  556. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/handlers/WorkersHandler.js +33 -0
  557. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/handlers/handlers.js +7 -0
  558. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/handlers/helpers.js +163 -0
  559. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/handlers/types.js +1 -0
  560. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/helpers/Extensions.js +41 -0
  561. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/helpers/Network.js +102 -0
  562. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/helpers/SamplesIntegrator.js +495 -0
  563. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/helpers/SyntheticEvents.js +74 -0
  564. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/helpers/Timing.js +186 -0
  565. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/helpers/Trace.js +820 -0
  566. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/helpers/TreeHelpers.js +254 -0
  567. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/helpers/helpers.js +10 -0
  568. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/insights/CLSCulprits.js +489 -0
  569. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/insights/Cache.js +209 -0
  570. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/insights/Common.js +340 -0
  571. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/insights/DOMSize.js +181 -0
  572. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/insights/DocumentLatency.js +258 -0
  573. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/insights/DuplicatedJavaScript.js +90 -0
  574. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/insights/FontDisplay.js +82 -0
  575. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/insights/ForcedReflow.js +161 -0
  576. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/insights/INPBreakdown.js +129 -0
  577. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/insights/ImageDelivery.js +263 -0
  578. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/insights/LCPBreakdown.js +199 -0
  579. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/insights/LCPDiscovery.js +183 -0
  580. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/insights/LegacyJavaScript.js +90 -0
  581. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/insights/Models.js +21 -0
  582. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/insights/ModernHTTP.js +200 -0
  583. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/insights/NetworkDependencyTree.js +545 -0
  584. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/insights/RenderBlocking.js +192 -0
  585. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/insights/SlowCSSSelector.js +136 -0
  586. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/insights/Statistics.js +92 -0
  587. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/insights/ThirdParties.js +98 -0
  588. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/insights/Viewport.js +102 -0
  589. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/insights/insights.js +9 -0
  590. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/insights/types.js +18 -0
  591. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/lantern/core/LanternError.js +6 -0
  592. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/lantern/core/NetworkAnalyzer.js +488 -0
  593. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/lantern/core/core.js +5 -0
  594. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/lantern/graph/BaseNode.js +276 -0
  595. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/lantern/graph/CPUNode.js +63 -0
  596. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/lantern/graph/NetworkNode.js +82 -0
  597. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/lantern/graph/PageDependencyGraph.js +551 -0
  598. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/lantern/graph/graph.js +7 -0
  599. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/lantern/lantern.js +9 -0
  600. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/FirstContentfulPaint.js +136 -0
  601. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/Interactive.js +67 -0
  602. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/LargestContentfulPaint.js +68 -0
  603. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/MaxPotentialFID.js +48 -0
  604. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/Metric.js +68 -0
  605. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/SpeedIndex.js +101 -0
  606. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/TBTUtils.js +64 -0
  607. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/TotalBlockingTime.js +78 -0
  608. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/metrics.js +11 -0
  609. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/ConnectionPool.js +115 -0
  610. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/Constants.js +42 -0
  611. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/DNSCache.js +47 -0
  612. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/SimulationTimingMap.js +134 -0
  613. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/Simulator.js +450 -0
  614. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/TCPConnection.js +154 -0
  615. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/simulation.js +9 -0
  616. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/lantern/types/Lantern.js +24 -0
  617. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/lantern/types/types.js +4 -0
  618. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/trace.js +17 -0
  619. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/types/Configuration.js +18 -0
  620. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/types/Extensions.js +37 -0
  621. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/types/File.js +57 -0
  622. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/types/Overlays.js +4 -0
  623. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/types/Timing.js +15 -0
  624. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/types/TraceEvents.js +580 -0
  625. package/build/vendor/chrome-devtools-frontend/front_end/models/trace/types/types.js +9 -0
  626. package/build/vendor/chrome-devtools-frontend/front_end/models/trace_source_maps_resolver/SourceMapsResolver.js +224 -0
  627. package/build/vendor/chrome-devtools-frontend/front_end/models/trace_source_maps_resolver/trace_source_maps_resolver.js +4 -0
  628. package/build/vendor/chrome-devtools-frontend/front_end/models/workspace/FileManager.js +64 -0
  629. package/build/vendor/chrome-devtools-frontend/front_end/models/workspace/IgnoreListManager.js +504 -0
  630. package/build/vendor/chrome-devtools-frontend/front_end/models/workspace/SearchConfig.js +113 -0
  631. package/build/vendor/chrome-devtools-frontend/front_end/models/workspace/UISourceCode.js +601 -0
  632. package/build/vendor/chrome-devtools-frontend/front_end/models/workspace/WorkspaceImpl.js +201 -0
  633. package/build/vendor/chrome-devtools-frontend/front_end/models/workspace/workspace-meta.js +34 -0
  634. package/build/vendor/chrome-devtools-frontend/front_end/models/workspace/workspace.js +9 -0
  635. package/build/vendor/chrome-devtools-frontend/front_end/third_party/codemirror.next/codemirror.next.js +1 -0
  636. package/build/vendor/chrome-devtools-frontend/front_end/third_party/i18n/LICENSE +202 -0
  637. package/build/vendor/chrome-devtools-frontend/front_end/third_party/i18n/i18n-impl.js +46 -0
  638. package/build/vendor/chrome-devtools-frontend/front_end/third_party/i18n/i18n.js +6 -0
  639. package/build/vendor/chrome-devtools-frontend/front_end/third_party/i18n/localized-string-set.js +122 -0
  640. package/build/vendor/chrome-devtools-frontend/front_end/third_party/intl-messageformat/LICENSE +33 -0
  641. package/build/vendor/chrome-devtools-frontend/front_end/third_party/intl-messageformat/intl-messageformat.js +5 -0
  642. package/build/vendor/chrome-devtools-frontend/front_end/third_party/intl-messageformat/package/index.js +13 -0
  643. package/build/vendor/chrome-devtools-frontend/front_end/third_party/intl-messageformat/package/intl-messageformat.esm.js +1725 -0
  644. package/build/vendor/chrome-devtools-frontend/front_end/third_party/intl-messageformat/package/intl-messageformat.iife.js +1840 -0
  645. package/build/vendor/chrome-devtools-frontend/front_end/third_party/intl-messageformat/package/lib/index.js +10 -0
  646. package/build/vendor/chrome-devtools-frontend/front_end/third_party/intl-messageformat/package/lib/src/core.js +233 -0
  647. package/build/vendor/chrome-devtools-frontend/front_end/third_party/intl-messageformat/package/lib/src/error.js +48 -0
  648. package/build/vendor/chrome-devtools-frontend/front_end/third_party/intl-messageformat/package/lib/src/formatters.js +177 -0
  649. package/build/vendor/chrome-devtools-frontend/front_end/third_party/intl-messageformat/package/src/core.js +236 -0
  650. package/build/vendor/chrome-devtools-frontend/front_end/third_party/intl-messageformat/package/src/error.js +51 -0
  651. package/build/vendor/chrome-devtools-frontend/front_end/third_party/intl-messageformat/package/src/formatters.js +182 -0
  652. package/build/vendor/chrome-devtools-frontend/front_end/third_party/legacy-javascript/LICENSE +202 -0
  653. package/build/vendor/chrome-devtools-frontend/front_end/third_party/legacy-javascript/legacy-javascript.js +2 -0
  654. package/build/vendor/chrome-devtools-frontend/front_end/third_party/legacy-javascript/lib/legacy-javascript.js +940 -0
  655. package/build/vendor/chrome-devtools-frontend/front_end/third_party/marked/LICENSE +39 -0
  656. package/build/vendor/chrome-devtools-frontend/front_end/third_party/marked/marked.js +2 -0
  657. package/build/vendor/chrome-devtools-frontend/front_end/third_party/marked/package/bin/main.js +255 -0
  658. package/build/vendor/chrome-devtools-frontend/front_end/third_party/marked/package/bin/marked.js +11 -0
  659. package/build/vendor/chrome-devtools-frontend/front_end/third_party/marked/package/lib/marked.esm.js +2695 -0
  660. package/build/vendor/chrome-devtools-frontend/front_end/third_party/marked/package/lib/marked.js +2233 -0
  661. package/build/vendor/chrome-devtools-frontend/front_end/third_party/marked/package/lib/marked.umd.js +2719 -0
  662. package/build/vendor/chrome-devtools-frontend/front_end/third_party/marked/package/src/Lexer.js +453 -0
  663. package/build/vendor/chrome-devtools-frontend/front_end/third_party/marked/package/src/Parser.js +233 -0
  664. package/build/vendor/chrome-devtools-frontend/front_end/third_party/marked/package/src/Renderer.js +137 -0
  665. package/build/vendor/chrome-devtools-frontend/front_end/third_party/marked/package/src/Slugger.js +46 -0
  666. package/build/vendor/chrome-devtools-frontend/front_end/third_party/marked/package/src/TextRenderer.js +34 -0
  667. package/build/vendor/chrome-devtools-frontend/front_end/third_party/marked/package/src/Tokenizer.js +683 -0
  668. package/build/vendor/chrome-devtools-frontend/front_end/third_party/marked/package/src/defaults.js +27 -0
  669. package/build/vendor/chrome-devtools-frontend/front_end/third_party/marked/package/src/helpers.js +240 -0
  670. package/build/vendor/chrome-devtools-frontend/front_end/third_party/marked/package/src/marked.js +318 -0
  671. package/build/vendor/chrome-devtools-frontend/front_end/third_party/marked/package/src/rules.js +243 -0
  672. package/build/vendor/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/LICENSE +26 -0
  673. package/build/vendor/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/builder/builder.js +196 -0
  674. package/build/vendor/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/builder/safe_builder.js +226 -0
  675. package/build/vendor/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/codec.js +4 -0
  676. package/build/vendor/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/decode/decode.js +394 -0
  677. package/build/vendor/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/encode/encode.js +24 -0
  678. package/build/vendor/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/encode/encoder.js +283 -0
  679. package/build/vendor/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/mod.js +7 -0
  680. package/build/vendor/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/util.js +9 -0
  681. package/build/vendor/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/vlq.js +84 -0
  682. package/build/vendor/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/source-map-scopes-codec.js +4 -0
  683. package/build/vendor/chrome-devtools-frontend/front_end/third_party/third-party-web/LICENSE +20 -0
  684. package/build/vendor/chrome-devtools-frontend/front_end/third_party/third-party-web/lib/nostats-subset.js +146 -0
  685. package/build/vendor/chrome-devtools-frontend/front_end/third_party/third-party-web/package/httparchive-nostats-subset.js +2 -0
  686. package/build/vendor/chrome-devtools-frontend/front_end/third_party/third-party-web/package/httparchive-subset.js +2 -0
  687. package/build/vendor/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/create-entity-finder-api.js +118 -0
  688. package/build/vendor/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/create-entity-finder-api.test.js +40 -0
  689. package/build/vendor/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/entities.test.js +26 -0
  690. package/build/vendor/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/index.js +4 -0
  691. package/build/vendor/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/index.test.js +215 -0
  692. package/build/vendor/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/subsets/httparchive-nostats.js +4 -0
  693. package/build/vendor/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/subsets/httparchive.js +4 -0
  694. package/build/vendor/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/subsets/nostats.js +4 -0
  695. package/build/vendor/chrome-devtools-frontend/front_end/third_party/third-party-web/package/nostats-subset.js +2 -0
  696. package/build/vendor/chrome-devtools-frontend/front_end/third_party/third-party-web/third-party-web.js +2 -0
  697. package/build/vendor/chrome-devtools-frontend/mcp/HostBindings.js +222 -0
  698. package/build/vendor/chrome-devtools-frontend/mcp/mcp.js +35 -0
  699. package/package.json +123 -0
@@ -0,0 +1,863 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import fs from 'node:fs/promises';
7
+ import os from 'node:os';
8
+ import path from 'node:path';
9
+ import { Client } from '@modelcontextprotocol/sdk/client/index.js';
10
+ import { extractUrlLikeFromDevToolsTitle, urlsEqual } from './DevtoolsUtils.js';
11
+ import { ToolListChangedNotificationSchema } from './third_party/index.js';
12
+ import { NetworkCollector, ConsoleCollector } from './PageCollector.js';
13
+ import { WEB_MCP_BRIDGE_SCRIPT } from './transports/WebMCPBridgeScript.js';
14
+ import { WebMCPClientTransport } from './transports/WebMCPClientTransport.js';
15
+ import { Locator } from './third_party/index.js';
16
+ import { listPages } from './tools/pages.js';
17
+ import { takeSnapshot } from './tools/snapshot.js';
18
+ import { CLOSE_PAGE_ERROR } from './tools/ToolDefinition.js';
19
+ import { WaitForHelper } from './WaitForHelper.js';
20
+ /** Default timeout for page operations in milliseconds. */
21
+ const DEFAULT_TIMEOUT = 5_000;
22
+ /** Default timeout for navigation operations in milliseconds. */
23
+ const NAVIGATION_TIMEOUT = 10_000;
24
+ /**
25
+ * Get the timeout multiplier for a given network condition.
26
+ *
27
+ * @param condition - The network condition name (e.g., "Fast 4G", "Slow 3G").
28
+ * @returns Multiplier to apply to timeouts (1 = no slowdown, 10 = max slowdown).
29
+ */
30
+ function getNetworkMultiplierFromString(condition) {
31
+ const puppeteerCondition = condition;
32
+ switch (puppeteerCondition) {
33
+ case 'Fast 4G':
34
+ return 1;
35
+ case 'Slow 4G':
36
+ return 2.5;
37
+ case 'Fast 3G':
38
+ return 5;
39
+ case 'Slow 3G':
40
+ return 10;
41
+ }
42
+ return 1;
43
+ }
44
+ /**
45
+ * Get the file extension for a given MIME type.
46
+ *
47
+ * @param mimeType - The MIME type (e.g., "image/png").
48
+ * @returns The corresponding file extension without the dot.
49
+ * @throws Error if the MIME type is not supported.
50
+ */
51
+ function getExtensionFromMimeType(mimeType) {
52
+ switch (mimeType) {
53
+ case 'image/png':
54
+ return 'png';
55
+ case 'image/jpeg':
56
+ return 'jpeg';
57
+ case 'image/webp':
58
+ return 'webp';
59
+ }
60
+ throw new Error(`No mapping for Mime type ${mimeType}.`);
61
+ }
62
+ /**
63
+ * Central context for MCP operations on a browser instance.
64
+ *
65
+ * Manages page state, accessibility snapshots, network/console collection,
66
+ * WebMCP connections, and tool registration. This class serves as the primary
67
+ * interface between MCP tools and the browser.
68
+ */
69
+ export class McpContext {
70
+ browser;
71
+ logger;
72
+ /** Cached list of available pages (refreshed by createPagesSnapshot). */
73
+ #pages = [];
74
+ /** Mapping of content pages to their associated DevTools inspector pages. */
75
+ #pageToDevToolsPage = new Map();
76
+ /** Currently selected page for tool operations. */
77
+ #selectedPage;
78
+ /**
79
+ * Whether the selected page has been explicitly set for this session.
80
+ * When true, createPagesSnapshot() won't auto-switch to pages[0].
81
+ * This prevents MCP sessions from interfering with each other in shared browsers.
82
+ */
83
+ #pageExplicitlySelected = false;
84
+ /** Most recent accessibility snapshot of the selected page. */
85
+ #textSnapshot = null;
86
+ #networkCollector;
87
+ #consoleCollector;
88
+ #isRunningTrace = false;
89
+ #networkConditionsMap = new WeakMap();
90
+ #cpuThrottlingRateMap = new WeakMap();
91
+ #geolocationMap = new WeakMap();
92
+ #dialog;
93
+ #nextSnapshotId = 1;
94
+ #traceResults = [];
95
+ #locatorClass;
96
+ #options;
97
+ #webMCPConnections = new WeakMap();
98
+ #toolHub;
99
+ /** Tracks pages that have WebMCP auto-detection listeners installed. */
100
+ #pagesWithWebMCPListeners = new WeakSet();
101
+ constructor(browser, logger, options, locatorClass) {
102
+ this.browser = browser;
103
+ this.logger = logger;
104
+ this.#locatorClass = locatorClass;
105
+ this.#options = options;
106
+ this.#networkCollector = new NetworkCollector(this.browser);
107
+ this.#consoleCollector = new ConsoleCollector(this.browser, collect => {
108
+ return {
109
+ console: event => {
110
+ collect(event);
111
+ },
112
+ pageerror: event => {
113
+ if (event instanceof Error) {
114
+ collect(event);
115
+ }
116
+ else {
117
+ const error = new Error(`${event}`);
118
+ error.stack = undefined;
119
+ collect(error);
120
+ }
121
+ },
122
+ issue: event => {
123
+ collect(event);
124
+ },
125
+ };
126
+ });
127
+ }
128
+ async #init() {
129
+ const pages = await this.createPagesSnapshot();
130
+ await this.#networkCollector.init(pages);
131
+ await this.#consoleCollector.init(pages);
132
+ // Auto-inject WebMCP bridge into all pages
133
+ await this.#setupWebMCPAutoInject();
134
+ }
135
+ /**
136
+ * Set up automatic WebMCP bridge injection for all pages.
137
+ * This injects the bridge script into existing pages and configures
138
+ * the browser to inject it into all future pages.
139
+ */
140
+ async #setupWebMCPAutoInject() {
141
+ try {
142
+ // Get browser-level CDP session to inject into all new pages
143
+ const browserTarget = this.browser.target();
144
+ const cdpSession = await browserTarget.createCDPSession();
145
+ // Inject bridge script into all future pages
146
+ await cdpSession.send('Page.addScriptToEvaluateOnNewDocument', {
147
+ source: WEB_MCP_BRIDGE_SCRIPT,
148
+ });
149
+ this.logger('WebMCP bridge auto-inject configured for new pages');
150
+ // Inject into existing pages (they won't have the auto-inject yet)
151
+ for (const page of this.#pages) {
152
+ try {
153
+ // Skip chrome:// and devtools:// pages
154
+ const url = page.url();
155
+ if (url.startsWith('chrome://') ||
156
+ url.startsWith('chrome-extension://') ||
157
+ url.startsWith('devtools://') ||
158
+ url === 'about:blank') {
159
+ continue;
160
+ }
161
+ await page.evaluate(WEB_MCP_BRIDGE_SCRIPT);
162
+ }
163
+ catch {
164
+ // Page might not be ready or accessible, ignore
165
+ }
166
+ }
167
+ this.logger('WebMCP bridge injected into existing pages');
168
+ }
169
+ catch (err) {
170
+ // Non-fatal - auto-inject is a convenience feature
171
+ this.logger('WebMCP auto-inject setup failed:', err);
172
+ }
173
+ }
174
+ dispose() {
175
+ this.#networkCollector.dispose();
176
+ this.#consoleCollector.dispose();
177
+ }
178
+ /**
179
+ * Set the WebMCPToolHub for dynamic tool registration.
180
+ * This enables automatic registration of WebMCP tools as native MCP tools.
181
+ * Also sets up auto-detection for all existing pages.
182
+ */
183
+ setToolHub(hub) {
184
+ this.#toolHub = hub;
185
+ // Trigger auto-detection for all existing pages asynchronously
186
+ this.#setupWebMCPAutoDetectionForAllPages().catch(err => {
187
+ this.logger('Error setting up WebMCP auto-detection:', err);
188
+ });
189
+ }
190
+ /**
191
+ * Get the WebMCPToolHub instance (for testing purposes)
192
+ */
193
+ getToolHub() {
194
+ return this.#toolHub;
195
+ }
196
+ /**
197
+ * Set up automatic WebMCP detection for a page.
198
+ * This installs listeners that detect WebMCP after navigation and sync tools.
199
+ */
200
+ #setupWebMCPAutoDetection(page) {
201
+ // Skip if listeners already installed
202
+ if (this.#pagesWithWebMCPListeners.has(page)) {
203
+ return;
204
+ }
205
+ // Skip chrome:// and devtools:// pages
206
+ const url = page.url();
207
+ if (url.startsWith('chrome://') ||
208
+ url.startsWith('chrome-extension://') ||
209
+ url.startsWith('devtools://')) {
210
+ return;
211
+ }
212
+ this.#pagesWithWebMCPListeners.add(page);
213
+ // Handler for frame navigation - detect WebMCP after main frame navigates
214
+ const onFrameNavigated = async (frame) => {
215
+ // Only handle main frame navigation
216
+ // @ts-expect-error Frame type not exported
217
+ if (frame.parentFrame?.() !== null) {
218
+ return;
219
+ }
220
+ // Skip internal pages
221
+ const newUrl = page.url();
222
+ if (newUrl.startsWith('chrome://') ||
223
+ newUrl.startsWith('chrome-extension://') ||
224
+ newUrl.startsWith('devtools://') ||
225
+ newUrl === 'about:blank') {
226
+ return;
227
+ }
228
+ // Immediately try to connect - no polling needed
229
+ // If no WebMCP, connection will timeout gracefully
230
+ this.#tryConnectWebMCP(page).catch(err => {
231
+ this.logger('WebMCP connection attempt failed (expected if page has no WebMCP):', err);
232
+ });
233
+ };
234
+ page.on('framenavigated', onFrameNavigated);
235
+ // Clean up listener when page closes
236
+ page.once('close', () => {
237
+ page.off('framenavigated', onFrameNavigated);
238
+ this.#pagesWithWebMCPListeners.delete(page);
239
+ });
240
+ this.logger(`WebMCP auto-detection listener installed for page: ${url}`);
241
+ }
242
+ /**
243
+ * Attempt to connect to WebMCP on a page without pre-checking.
244
+ * Uses the extension's approach: just try to connect, handle failure gracefully.
245
+ *
246
+ * This matches the WebMCP extension's behavior:
247
+ * - No pre-flight detection polling
248
+ * - Immediate connection attempt
249
+ * - Graceful handling if no server exists
250
+ * - Notification-based syncing when tools appear later
251
+ *
252
+ * Reference: /WebMCP/apps/extension/entrypoints/content/connection.ts lines 88-118
253
+ */
254
+ async #tryConnectWebMCP(page) {
255
+ // Skip if tool hub is not enabled
256
+ if (!this.#toolHub?.isEnabled()) {
257
+ return;
258
+ }
259
+ try {
260
+ // Immediately try to get/create WebMCP client
261
+ // Transport is configured with requireWebMCP: false and 30s timeout in getWebMCPClient
262
+ const result = await this.getWebMCPClient(page);
263
+ if (result.connected) {
264
+ this.logger(`WebMCP connected for page: ${page.url()}`);
265
+ }
266
+ else {
267
+ // This is normal for pages without WebMCP
268
+ this.logger(`No WebMCP on page: ${page.url()}`);
269
+ }
270
+ }
271
+ catch (err) {
272
+ // Connection timeout or error is expected on pages without WebMCP
273
+ this.logger(`WebMCP connection failed for ${page.url()} (normal if page has no WebMCP):`, err);
274
+ }
275
+ }
276
+ /**
277
+ * Set up WebMCP auto-detection for all current pages.
278
+ * Called during initialization and when tool hub is set.
279
+ */
280
+ async #setupWebMCPAutoDetectionForAllPages() {
281
+ for (const page of this.#pages) {
282
+ this.#setupWebMCPAutoDetection(page);
283
+ // Try to connect immediately (don't await - run in parallel for all pages)
284
+ this.#tryConnectWebMCP(page).catch(err => {
285
+ this.logger('Initial WebMCP connection attempt failed (expected):', err);
286
+ });
287
+ }
288
+ }
289
+ /**
290
+ * Create a new McpContext instance.
291
+ *
292
+ * @param browser - Puppeteer browser instance to operate on.
293
+ * @param logger - Debug logger for internal operations.
294
+ * @param opts - Configuration options.
295
+ * @param locatorClass - Locator class to use (injectable for testing with
296
+ * unbundled Puppeteer to avoid class instance mismatch errors).
297
+ * @returns Initialized McpContext ready for use.
298
+ */
299
+ static async from(browser, logger, opts, locatorClass = Locator) {
300
+ const context = new McpContext(browser, logger, opts, locatorClass);
301
+ await context.#init();
302
+ return context;
303
+ }
304
+ resolveCdpRequestId(cdpRequestId) {
305
+ const selectedPage = this.getSelectedPage();
306
+ if (!cdpRequestId) {
307
+ this.logger('no network request');
308
+ return;
309
+ }
310
+ const request = this.#networkCollector.find(selectedPage, request => {
311
+ // @ts-expect-error id is internal.
312
+ return request.id === cdpRequestId;
313
+ });
314
+ if (!request) {
315
+ this.logger('no network request for ' + cdpRequestId);
316
+ return;
317
+ }
318
+ return this.#networkCollector.getIdForResource(request);
319
+ }
320
+ /**
321
+ * Resolve a CDP backend node ID to a snapshot element UID.
322
+ *
323
+ * @param cdpBackendNodeId - The CDP backend node ID from DevTools.
324
+ * @returns The corresponding snapshot UID, or undefined if not found.
325
+ *
326
+ * @todo Optimize with a backendNodeId index instead of tree traversal.
327
+ */
328
+ resolveCdpElementId(cdpBackendNodeId) {
329
+ if (!cdpBackendNodeId) {
330
+ this.logger('no cdpBackendNodeId');
331
+ return;
332
+ }
333
+ if (this.#textSnapshot === null) {
334
+ this.logger('no text snapshot');
335
+ return;
336
+ }
337
+ const queue = [this.#textSnapshot.root];
338
+ while (queue.length) {
339
+ const current = queue.pop();
340
+ if (current.backendNodeId === cdpBackendNodeId) {
341
+ return current.id;
342
+ }
343
+ for (const child of current.children) {
344
+ queue.push(child);
345
+ }
346
+ }
347
+ return;
348
+ }
349
+ getNetworkRequests(includePreservedRequests) {
350
+ const page = this.getSelectedPage();
351
+ return this.#networkCollector.getData(page, includePreservedRequests);
352
+ }
353
+ getConsoleData(includePreservedMessages) {
354
+ const page = this.getSelectedPage();
355
+ return this.#consoleCollector.getData(page, includePreservedMessages);
356
+ }
357
+ getConsoleMessageStableId(message) {
358
+ return this.#consoleCollector.getIdForResource(message);
359
+ }
360
+ getConsoleMessageById(id) {
361
+ return this.#consoleCollector.getById(this.getSelectedPage(), id);
362
+ }
363
+ async newPage() {
364
+ const page = await this.browser.newPage();
365
+ await this.createPagesSnapshot();
366
+ // Mark as explicitly selected so this session sticks to this page
367
+ this.selectPage(page, true);
368
+ this.#networkCollector.addPage(page);
369
+ this.#consoleCollector.addPage(page);
370
+ // Set up WebMCP auto-detection for the new page
371
+ this.#setupWebMCPAutoDetection(page);
372
+ return page;
373
+ }
374
+ async newWindow() {
375
+ // Use CDP to create a new browser window instead of just a tab
376
+ const browserTarget = this.browser.target();
377
+ const cdpSession = await browserTarget.createCDPSession();
378
+ // Create a new target with newWindow: true
379
+ const { targetId } = await cdpSession.send('Target.createTarget', {
380
+ url: 'about:blank',
381
+ newWindow: true,
382
+ });
383
+ // Wait for the new page to be available
384
+ const target = await this.browser.waitForTarget(target => {
385
+ // @ts-expect-error _targetId is internal but stable
386
+ return target._targetId === targetId;
387
+ }, { timeout: 5000 });
388
+ const page = await target.page();
389
+ if (!page) {
390
+ throw new Error('Failed to get page from new window target');
391
+ }
392
+ // Set window to nearly full screen (large size that fits most displays)
393
+ try {
394
+ // Get window ID for this target
395
+ const { windowId } = await cdpSession.send('Browser.getWindowForTarget', {
396
+ targetId,
397
+ });
398
+ // Set to large dimensions (works well on 1920x1080 and larger displays)
399
+ // This is ~95% of common display sizes without being truly fullscreen
400
+ await cdpSession.send('Browser.setWindowBounds', {
401
+ windowId,
402
+ bounds: {
403
+ left: 20,
404
+ top: 20,
405
+ width: 1800,
406
+ height: 1200,
407
+ windowState: 'normal',
408
+ },
409
+ });
410
+ }
411
+ catch (err) {
412
+ // Non-fatal: window sizing is best-effort
413
+ this.logger('Failed to resize window:', err);
414
+ }
415
+ await cdpSession.detach();
416
+ await this.createPagesSnapshot();
417
+ // Mark as explicitly selected so this session sticks to this window
418
+ this.selectPage(page, true);
419
+ this.#networkCollector.addPage(page);
420
+ this.#consoleCollector.addPage(page);
421
+ // Set up WebMCP auto-detection for the new page
422
+ this.#setupWebMCPAutoDetection(page);
423
+ return page;
424
+ }
425
+ async closePage(pageIdx) {
426
+ if (this.#pages.length === 1) {
427
+ throw new Error(CLOSE_PAGE_ERROR);
428
+ }
429
+ const page = this.getPageByIdx(pageIdx);
430
+ await page.close({ runBeforeUnload: false });
431
+ }
432
+ getNetworkRequestById(reqid) {
433
+ return this.#networkCollector.getById(this.getSelectedPage(), reqid);
434
+ }
435
+ setNetworkConditions(conditions) {
436
+ const page = this.getSelectedPage();
437
+ if (conditions === null) {
438
+ this.#networkConditionsMap.delete(page);
439
+ }
440
+ else {
441
+ this.#networkConditionsMap.set(page, conditions);
442
+ }
443
+ this.#updateSelectedPageTimeouts();
444
+ }
445
+ getNetworkConditions() {
446
+ const page = this.getSelectedPage();
447
+ return this.#networkConditionsMap.get(page) ?? null;
448
+ }
449
+ setCpuThrottlingRate(rate) {
450
+ const page = this.getSelectedPage();
451
+ this.#cpuThrottlingRateMap.set(page, rate);
452
+ this.#updateSelectedPageTimeouts();
453
+ }
454
+ getCpuThrottlingRate() {
455
+ const page = this.getSelectedPage();
456
+ return this.#cpuThrottlingRateMap.get(page) ?? 1;
457
+ }
458
+ setGeolocation(geolocation) {
459
+ const page = this.getSelectedPage();
460
+ if (geolocation === null) {
461
+ this.#geolocationMap.delete(page);
462
+ }
463
+ else {
464
+ this.#geolocationMap.set(page, geolocation);
465
+ }
466
+ }
467
+ getGeolocation() {
468
+ const page = this.getSelectedPage();
469
+ return this.#geolocationMap.get(page) ?? null;
470
+ }
471
+ setIsRunningPerformanceTrace(x) {
472
+ this.#isRunningTrace = x;
473
+ }
474
+ isRunningPerformanceTrace() {
475
+ return this.#isRunningTrace;
476
+ }
477
+ getDialog() {
478
+ return this.#dialog;
479
+ }
480
+ clearDialog() {
481
+ this.#dialog = undefined;
482
+ }
483
+ getSelectedPage() {
484
+ const page = this.#selectedPage;
485
+ if (!page) {
486
+ throw new Error('No page selected');
487
+ }
488
+ if (page.isClosed()) {
489
+ throw new Error(`The selected page has been closed. Call ${listPages.name} to see open pages.`);
490
+ }
491
+ return page;
492
+ }
493
+ getPageByIdx(idx) {
494
+ const pages = this.#pages;
495
+ const page = pages[idx];
496
+ if (!page) {
497
+ throw new Error('No page found');
498
+ }
499
+ return page;
500
+ }
501
+ #dialogHandler = (dialog) => {
502
+ this.#dialog = dialog;
503
+ };
504
+ isPageSelected(page) {
505
+ return this.#selectedPage === page;
506
+ }
507
+ selectPage(newPage, explicit = false) {
508
+ const oldPage = this.#selectedPage;
509
+ if (oldPage) {
510
+ oldPage.off('dialog', this.#dialogHandler);
511
+ }
512
+ this.#selectedPage = newPage;
513
+ if (explicit) {
514
+ // Mark page as explicitly selected to prevent auto-switching
515
+ this.#pageExplicitlySelected = true;
516
+ }
517
+ newPage.on('dialog', this.#dialogHandler);
518
+ this.#updateSelectedPageTimeouts();
519
+ }
520
+ #updateSelectedPageTimeouts() {
521
+ const page = this.getSelectedPage();
522
+ // For waiters 5sec timeout should be sufficient.
523
+ // Increased in case we throttle the CPU
524
+ const cpuMultiplier = this.getCpuThrottlingRate();
525
+ page.setDefaultTimeout(DEFAULT_TIMEOUT * cpuMultiplier);
526
+ // 10sec should be enough for the load event to be emitted during
527
+ // navigations.
528
+ // Increased in case we throttle the network requests
529
+ const networkMultiplier = getNetworkMultiplierFromString(this.getNetworkConditions());
530
+ page.setDefaultNavigationTimeout(NAVIGATION_TIMEOUT * networkMultiplier);
531
+ }
532
+ getNavigationTimeout() {
533
+ const page = this.getSelectedPage();
534
+ return page.getDefaultNavigationTimeout();
535
+ }
536
+ getAXNodeByUid(uid) {
537
+ return this.#textSnapshot?.idToNode.get(uid);
538
+ }
539
+ async getElementByUid(uid) {
540
+ if (!this.#textSnapshot?.idToNode.size) {
541
+ throw new Error(`No snapshot found. Use ${takeSnapshot.name} to capture one.`);
542
+ }
543
+ const [snapshotId] = uid.split('_');
544
+ if (this.#textSnapshot.snapshotId !== snapshotId) {
545
+ throw new Error(`This uid (${uid}) is from an old snapshot. The page has changed since then. ` +
546
+ 'Always call take_snapshot immediately before using UIDs from it. ' +
547
+ 'Workflow: 1) take_snapshot, 2) use the UIDs from that response, 3) repeat for each action.');
548
+ }
549
+ const node = this.#textSnapshot?.idToNode.get(uid);
550
+ if (!node) {
551
+ throw new Error('No such element found in the snapshot');
552
+ }
553
+ const handle = await node.elementHandle();
554
+ if (!handle) {
555
+ throw new Error('No such element found in the snapshot');
556
+ }
557
+ return handle;
558
+ }
559
+ /**
560
+ * Creates a snapshot of the pages.
561
+ */
562
+ async createPagesSnapshot() {
563
+ const allPages = await this.browser.pages(this.#options.experimentalIncludeAllPages);
564
+ this.#pages = allPages.filter(page => {
565
+ // If we allow debugging DevTools windows, return all pages.
566
+ // If we are in regular mode, the user should only see non-DevTools page.
567
+ return (this.#options.experimentalDevToolsDebugging ||
568
+ !page.url().startsWith('devtools://'));
569
+ });
570
+ // Only auto-select pages[0] if:
571
+ // 1. No page has been explicitly selected for this session AND
572
+ // 2. Either there's no selected page OR the selected page is no longer valid
573
+ if (!this.#pageExplicitlySelected &&
574
+ (!this.#selectedPage || this.#pages.indexOf(this.#selectedPage) === -1) &&
575
+ this.#pages[0]) {
576
+ this.selectPage(this.#pages[0]);
577
+ }
578
+ await this.detectOpenDevToolsWindows();
579
+ // Set up WebMCP auto-detection for any new pages
580
+ // (safe to call for existing pages - it checks if listeners are already installed)
581
+ for (const page of this.#pages) {
582
+ this.#setupWebMCPAutoDetection(page);
583
+ }
584
+ return this.#pages;
585
+ }
586
+ /**
587
+ * Detect and map open DevTools windows to their inspected pages.
588
+ *
589
+ * Iterates through all browser pages to find DevTools windows and
590
+ * associates them with the pages they're inspecting.
591
+ *
592
+ * @todo Optimize page lookup with a URL-indexed map instead of nested loops.
593
+ */
594
+ async detectOpenDevToolsWindows() {
595
+ this.logger('Detecting open DevTools windows');
596
+ const pages = await this.browser.pages(this.#options.experimentalIncludeAllPages);
597
+ this.#pageToDevToolsPage = new Map();
598
+ for (const devToolsPage of pages) {
599
+ if (devToolsPage.url().startsWith('devtools://')) {
600
+ try {
601
+ this.logger('Calling getTargetInfo for ' + devToolsPage.url());
602
+ const data = await devToolsPage
603
+ // @ts-expect-error no types for _client().
604
+ ._client()
605
+ .send('Target.getTargetInfo');
606
+ const devtoolsPageTitle = data.targetInfo.title;
607
+ const urlLike = extractUrlLikeFromDevToolsTitle(devtoolsPageTitle);
608
+ if (!urlLike) {
609
+ continue;
610
+ }
611
+ for (const page of this.#pages) {
612
+ if (urlsEqual(page.url(), urlLike)) {
613
+ this.#pageToDevToolsPage.set(page, devToolsPage);
614
+ }
615
+ }
616
+ }
617
+ catch (error) {
618
+ this.logger('Issue occurred while trying to find DevTools', error);
619
+ }
620
+ }
621
+ }
622
+ }
623
+ getPages() {
624
+ return [...this.#pages];
625
+ }
626
+ getDevToolsPage(page) {
627
+ return this.#pageToDevToolsPage.get(page);
628
+ }
629
+ async getDevToolsData() {
630
+ try {
631
+ this.logger('Getting DevTools UI data');
632
+ const selectedPage = this.getSelectedPage();
633
+ const devtoolsPage = this.getDevToolsPage(selectedPage);
634
+ if (!devtoolsPage) {
635
+ this.logger('No DevTools page detected');
636
+ return {};
637
+ }
638
+ const { cdpRequestId, cdpBackendNodeId } = await devtoolsPage.evaluate(async () => {
639
+ // @ts-expect-error no types
640
+ const UI = await import('/bundled/ui/legacy/legacy.js');
641
+ // @ts-expect-error no types
642
+ const SDK = await import('/bundled/core/sdk/sdk.js');
643
+ const request = UI.Context.Context.instance().flavor(SDK.NetworkRequest.NetworkRequest);
644
+ const node = UI.Context.Context.instance().flavor(SDK.DOMModel.DOMNode);
645
+ return {
646
+ cdpRequestId: request?.requestId(),
647
+ cdpBackendNodeId: node?.backendNodeId(),
648
+ };
649
+ });
650
+ return { cdpBackendNodeId, cdpRequestId };
651
+ }
652
+ catch (err) {
653
+ this.logger('error getting devtools data', err);
654
+ }
655
+ return {};
656
+ }
657
+ /**
658
+ * Creates a text snapshot of a page.
659
+ */
660
+ async createTextSnapshot(verbose = false, devtoolsData = undefined) {
661
+ const page = this.getSelectedPage();
662
+ const rootNode = await page.accessibility.snapshot({
663
+ includeIframes: true,
664
+ interestingOnly: !verbose,
665
+ });
666
+ if (!rootNode) {
667
+ return;
668
+ }
669
+ const snapshotId = this.#nextSnapshotId++;
670
+ // Iterate through the whole accessibility node tree and assign node ids that
671
+ // will be used for the tree serialization and mapping ids back to nodes.
672
+ let idCounter = 0;
673
+ const idToNode = new Map();
674
+ const assignIds = (node) => {
675
+ const nodeWithId = {
676
+ ...node,
677
+ id: `${snapshotId}_${idCounter++}`,
678
+ children: node.children
679
+ ? node.children.map(child => assignIds(child))
680
+ : [],
681
+ };
682
+ // The AXNode for an option doesn't contain its `value`.
683
+ // Therefore, set text content of the option as value.
684
+ if (node.role === 'option') {
685
+ const optionText = node.name;
686
+ if (optionText) {
687
+ nodeWithId.value = optionText.toString();
688
+ }
689
+ }
690
+ idToNode.set(nodeWithId.id, nodeWithId);
691
+ return nodeWithId;
692
+ };
693
+ const rootNodeWithId = assignIds(rootNode);
694
+ this.#textSnapshot = {
695
+ root: rootNodeWithId,
696
+ snapshotId: String(snapshotId),
697
+ idToNode,
698
+ hasSelectedElement: false,
699
+ verbose,
700
+ };
701
+ const data = devtoolsData ?? (await this.getDevToolsData());
702
+ if (data?.cdpBackendNodeId) {
703
+ this.#textSnapshot.hasSelectedElement = true;
704
+ this.#textSnapshot.selectedElementUid = this.resolveCdpElementId(data?.cdpBackendNodeId);
705
+ }
706
+ }
707
+ getTextSnapshot() {
708
+ return this.#textSnapshot;
709
+ }
710
+ async saveTemporaryFile(data, mimeType) {
711
+ try {
712
+ const dir = await fs.mkdtemp(path.join(os.tmpdir(), 'chrome-devtools-mcp-'));
713
+ const filename = path.join(dir, `screenshot.${getExtensionFromMimeType(mimeType)}`);
714
+ await fs.writeFile(filename, data);
715
+ return { filename };
716
+ }
717
+ catch (err) {
718
+ this.logger(err);
719
+ throw new Error('Could not save a screenshot to a file', { cause: err });
720
+ }
721
+ }
722
+ async saveFile(data, filename) {
723
+ try {
724
+ const filePath = path.resolve(filename);
725
+ await fs.writeFile(filePath, data);
726
+ return { filename };
727
+ }
728
+ catch (err) {
729
+ this.logger(err);
730
+ throw new Error('Could not save a screenshot to a file', { cause: err });
731
+ }
732
+ }
733
+ storeTraceRecording(result) {
734
+ this.#traceResults.push(result);
735
+ }
736
+ recordedTraces() {
737
+ return this.#traceResults;
738
+ }
739
+ getWaitForHelper(page, cpuMultiplier, networkMultiplier) {
740
+ return new WaitForHelper(page, cpuMultiplier, networkMultiplier);
741
+ }
742
+ waitForEventsAfterAction(action) {
743
+ const page = this.getSelectedPage();
744
+ const cpuMultiplier = this.getCpuThrottlingRate();
745
+ const networkMultiplier = getNetworkMultiplierFromString(this.getNetworkConditions());
746
+ const waitForHelper = this.getWaitForHelper(page, cpuMultiplier, networkMultiplier);
747
+ return waitForHelper.waitForEventsAfterAction(action);
748
+ }
749
+ getNetworkRequestStableId(request) {
750
+ return this.#networkCollector.getIdForResource(request);
751
+ }
752
+ waitForTextOnPage(text, timeout) {
753
+ const page = this.getSelectedPage();
754
+ const frames = page.frames();
755
+ let locator = this.#locatorClass.race(frames.flatMap(frame => [
756
+ frame.locator(`aria/${text}`),
757
+ frame.locator(`text/${text}`),
758
+ ]));
759
+ if (timeout) {
760
+ locator = locator.setTimeout(timeout);
761
+ }
762
+ return locator.wait();
763
+ }
764
+ /**
765
+ * Get a WebMCP client for a page, auto-connecting if needed.
766
+ *
767
+ * This method handles the full lifecycle of WebMCP connections:
768
+ * - Maintains separate connections per page (one-to-many relationship)
769
+ * - Detects stale connections (page reload, navigation)
770
+ * - Cleans up old connections before creating new ones
771
+ * - Auto-connects when WebMCP is available on the page
772
+ *
773
+ * @param page - Optional page to get client for. Defaults to selected page.
774
+ */
775
+ async getWebMCPClient(page) {
776
+ const targetPage = page ?? this.getSelectedPage();
777
+ // Check if we have a valid, active connection for this page
778
+ // We must verify isClosed() to detect page reloads where URL stays the same but frames are invalidated
779
+ const conn = this.#webMCPConnections.get(targetPage);
780
+ if (conn && !conn.transport.isClosed()) {
781
+ return { connected: true, client: conn.client };
782
+ }
783
+ // If we have a stale connection, clean up first
784
+ if (conn) {
785
+ try {
786
+ await conn.client.close();
787
+ }
788
+ catch {
789
+ // Ignore close errors
790
+ }
791
+ this.#webMCPConnections.delete(targetPage);
792
+ }
793
+ // Connect - no pre-checking needed (extension approach)
794
+ try {
795
+ const transport = new WebMCPClientTransport({
796
+ page: targetPage,
797
+ readyTimeout: 30000, // 30s to handle slow React apps (up from 10s)
798
+ requireWebMCP: false, // Don't pre-check, just try to connect
799
+ });
800
+ const client = new Client({ name: 'chrome-devtools-mcp', version: '1.0.0' }, { capabilities: {} });
801
+ // Set up onclose handler to clean up connection state
802
+ // This handles page navigations, reloads, and manual disconnections
803
+ transport.onclose = () => {
804
+ const currentConn = this.#webMCPConnections.get(targetPage);
805
+ if (currentConn?.client === client) {
806
+ this.#webMCPConnections.delete(targetPage);
807
+ }
808
+ // Remove tools for this page when transport closes
809
+ this.#toolHub?.removeToolsForPage(targetPage);
810
+ };
811
+ // Also listen for page close events to trigger cleanup
812
+ // This handles cases where the page is closed without navigation
813
+ const onPageClose = () => {
814
+ const currentConn = this.#webMCPConnections.get(targetPage);
815
+ if (currentConn?.client === client) {
816
+ this.#webMCPConnections.delete(targetPage);
817
+ }
818
+ this.#toolHub?.removeToolsForPage(targetPage);
819
+ // Clean up the listener
820
+ targetPage.off('close', onPageClose);
821
+ };
822
+ targetPage.on('close', onPageClose);
823
+ await client.connect(transport);
824
+ // Store connection for this page
825
+ this.#webMCPConnections.set(targetPage, { client, transport, page: targetPage });
826
+ // Subscribe to tool list changes if tool hub is enabled and server supports it
827
+ const serverCapabilities = client.getServerCapabilities();
828
+ if (serverCapabilities?.tools?.listChanged && this.#toolHub?.isEnabled()) {
829
+ client.setNotificationHandler(ToolListChangedNotificationSchema, async () => {
830
+ this.logger('WebMCP tools changed, re-syncing...');
831
+ await this.#toolHub?.syncToolsForPage(targetPage, client);
832
+ });
833
+ }
834
+ // Initial tool sync if tool hub is enabled
835
+ if (this.#toolHub?.isEnabled()) {
836
+ await this.#toolHub.syncToolsForPage(targetPage, client);
837
+ }
838
+ return { connected: true, client };
839
+ }
840
+ catch (err) {
841
+ return {
842
+ connected: false,
843
+ error: `Failed to connect: ${err instanceof Error ? err.message : String(err)}`,
844
+ };
845
+ }
846
+ }
847
+ /**
848
+ * We need to ignore favicon request as they make our test flaky
849
+ */
850
+ async setUpNetworkCollectorForTesting() {
851
+ this.#networkCollector = new NetworkCollector(this.browser, collect => {
852
+ return {
853
+ request: req => {
854
+ if (req.url().includes('favicon.ico')) {
855
+ return;
856
+ }
857
+ collect(req);
858
+ },
859
+ };
860
+ });
861
+ await this.#networkCollector.init(await this.browser.pages());
862
+ }
863
+ }