devtools-tracing 1.1.0 → 1.2.0

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 (528) hide show
  1. package/.claude/settings.local.json +14 -0
  2. package/dist/index.d.ts +4 -0
  3. package/dist/index.js +28854 -0
  4. package/package.json +10 -8
  5. package/generate.ts +0 -649
  6. package/index.ts +0 -17
  7. package/lib/extension-api/ExtensionAPI.d.ts +0 -357
  8. package/lib/front_end/core/common/App.ts +0 -7
  9. package/lib/front_end/core/common/AppProvider.ts +0 -32
  10. package/lib/front_end/core/common/Base64.ts +0 -47
  11. package/lib/front_end/core/common/CharacterIdMap.ts +0 -30
  12. package/lib/front_end/core/common/Color.ts +0 -2506
  13. package/lib/front_end/core/common/ColorConverter.ts +0 -402
  14. package/lib/front_end/core/common/ColorUtils.ts +0 -252
  15. package/lib/front_end/core/common/Console.ts +0 -114
  16. package/lib/front_end/core/common/Debouncer.ts +0 -15
  17. package/lib/front_end/core/common/EventTarget.ts +0 -52
  18. package/lib/front_end/core/common/Gzip.ts +0 -74
  19. package/lib/front_end/core/common/JavaScriptMetaData.ts +0 -29
  20. package/lib/front_end/core/common/Lazy.ts +0 -31
  21. package/lib/front_end/core/common/Linkifier.ts +0 -55
  22. package/lib/front_end/core/common/MapWithDefault.ts +0 -26
  23. package/lib/front_end/core/common/Mutex.ts +0 -55
  24. package/lib/front_end/core/common/Object.ts +0 -145
  25. package/lib/front_end/core/common/ParsedURL.ts +0 -554
  26. package/lib/front_end/core/common/Progress.ts +0 -180
  27. package/lib/front_end/core/common/QueryParamHandler.ts +0 -7
  28. package/lib/front_end/core/common/ResolverBase.ts +0 -85
  29. package/lib/front_end/core/common/ResourceType.ts +0 -588
  30. package/lib/front_end/core/common/ReturnToPanel.ts +0 -17
  31. package/lib/front_end/core/common/Revealer.ts +0 -192
  32. package/lib/front_end/core/common/Runnable.ts +0 -41
  33. package/lib/front_end/core/common/SegmentedRange.ts +0 -87
  34. package/lib/front_end/core/common/SettingRegistration.ts +0 -339
  35. package/lib/front_end/core/common/Settings.ts +0 -1497
  36. package/lib/front_end/core/common/SimpleHistoryManager.ts +0 -124
  37. package/lib/front_end/core/common/StringOutputStream.ts +0 -26
  38. package/lib/front_end/core/common/TextDictionary.ts +0 -48
  39. package/lib/front_end/core/common/Throttler.ts +0 -99
  40. package/lib/front_end/core/common/Trie.ts +0 -152
  41. package/lib/front_end/core/common/Worker.ts +0 -60
  42. package/lib/front_end/core/common/common.ts +0 -81
  43. package/lib/front_end/core/host/AidaClient.ts +0 -733
  44. package/lib/front_end/core/host/GdpClient.ts +0 -316
  45. package/lib/front_end/core/host/InspectorFrontendHost.ts +0 -648
  46. package/lib/front_end/core/host/InspectorFrontendHostAPI.ts +0 -551
  47. package/lib/front_end/core/host/Platform.ts +0 -76
  48. package/lib/front_end/core/host/ResourceLoader.ts +0 -282
  49. package/lib/front_end/core/host/UserMetrics.ts +0 -1230
  50. package/lib/front_end/core/host/host.ts +0 -23
  51. package/lib/front_end/core/i18n/ByteUtilities.ts +0 -82
  52. package/lib/front_end/core/i18n/DevToolsLocale.ts +0 -87
  53. package/lib/front_end/core/i18n/NumberFormatter.ts +0 -82
  54. package/lib/front_end/core/i18n/i18n.ts +0 -17
  55. package/lib/front_end/core/i18n/i18nImpl.ts +0 -204
  56. package/lib/front_end/core/i18n/i18nTypes.ts +0 -10
  57. package/lib/front_end/core/i18n/locales.js +0 -14
  58. package/lib/front_end/core/i18n/time-utilities.ts +0 -174
  59. package/lib/front_end/core/platform/ArrayUtilities.ts +0 -271
  60. package/lib/front_end/core/platform/Brand.ts +0 -23
  61. package/lib/front_end/core/platform/Constructor.ts +0 -10
  62. package/lib/front_end/core/platform/DOMUtilities.ts +0 -138
  63. package/lib/front_end/core/platform/DateUtilities.ts +0 -15
  64. package/lib/front_end/core/platform/DevToolsPath.ts +0 -53
  65. package/lib/front_end/core/platform/KeyboardUtilities.ts +0 -38
  66. package/lib/front_end/core/platform/MapUtilities.ts +0 -95
  67. package/lib/front_end/core/platform/MimeType.ts +0 -175
  68. package/lib/front_end/core/platform/NumberUtilities.ts +0 -80
  69. package/lib/front_end/core/platform/StringUtilities.ts +0 -588
  70. package/lib/front_end/core/platform/Timing.ts +0 -17
  71. package/lib/front_end/core/platform/TypedArrayUtilities.ts +0 -189
  72. package/lib/front_end/core/platform/TypescriptUtilities.ts +0 -86
  73. package/lib/front_end/core/platform/UIString.ts +0 -39
  74. package/lib/front_end/core/platform/UserVisibleError.ts +0 -28
  75. package/lib/front_end/core/platform/platform.ts +0 -45
  76. package/lib/front_end/core/protocol_client/ConnectionTransport.ts +0 -26
  77. package/lib/front_end/core/protocol_client/InspectorBackend.ts +0 -1050
  78. package/lib/front_end/core/protocol_client/NodeURL.ts +0 -42
  79. package/lib/front_end/core/protocol_client/protocol_client.ts +0 -13
  80. package/lib/front_end/core/root/Runtime.ts +0 -609
  81. package/lib/front_end/core/root/root.ts +0 -6
  82. package/lib/front_end/core/sdk/AccessibilityModel.ts +0 -353
  83. package/lib/front_end/core/sdk/AnimationModel.ts +0 -1041
  84. package/lib/front_end/core/sdk/AutofillModel.ts +0 -184
  85. package/lib/front_end/core/sdk/CPUProfilerModel.ts +0 -148
  86. package/lib/front_end/core/sdk/CPUThrottlingManager.ts +0 -282
  87. package/lib/front_end/core/sdk/CSSContainerQuery.ts +0 -139
  88. package/lib/front_end/core/sdk/CSSFontFace.ts +0 -40
  89. package/lib/front_end/core/sdk/CSSLayer.ts +0 -30
  90. package/lib/front_end/core/sdk/CSSMatchedStyles.ts +0 -1646
  91. package/lib/front_end/core/sdk/CSSMedia.ts +0 -121
  92. package/lib/front_end/core/sdk/CSSMetadata.ts +0 -1647
  93. package/lib/front_end/core/sdk/CSSModel.ts +0 -1128
  94. package/lib/front_end/core/sdk/CSSProperty.ts +0 -384
  95. package/lib/front_end/core/sdk/CSSPropertyParser.ts +0 -681
  96. package/lib/front_end/core/sdk/CSSPropertyParserMatchers.ts +0 -1395
  97. package/lib/front_end/core/sdk/CSSQuery.ts +0 -72
  98. package/lib/front_end/core/sdk/CSSRule.ts +0 -465
  99. package/lib/front_end/core/sdk/CSSScope.ts +0 -30
  100. package/lib/front_end/core/sdk/CSSStartingStyle.ts +0 -29
  101. package/lib/front_end/core/sdk/CSSStyleDeclaration.ts +0 -313
  102. package/lib/front_end/core/sdk/CSSStyleSheetHeader.ts +0 -196
  103. package/lib/front_end/core/sdk/CSSSupports.ts +0 -33
  104. package/lib/front_end/core/sdk/CategorizedBreakpoint.ts +0 -64
  105. package/lib/front_end/core/sdk/ChildTargetManager.ts +0 -314
  106. package/lib/front_end/core/sdk/CompilerSourceMappingContentProvider.ts +0 -62
  107. package/lib/front_end/core/sdk/Connections.ts +0 -293
  108. package/lib/front_end/core/sdk/ConsoleModel.ts +0 -808
  109. package/lib/front_end/core/sdk/ConsoleModelTypes.ts +0 -15
  110. package/lib/front_end/core/sdk/Cookie.ts +0 -319
  111. package/lib/front_end/core/sdk/CookieModel.ts +0 -239
  112. package/lib/front_end/core/sdk/CookieParser.ts +0 -185
  113. package/lib/front_end/core/sdk/DOMDebuggerModel.ts +0 -787
  114. package/lib/front_end/core/sdk/DOMModel.ts +0 -1961
  115. package/lib/front_end/core/sdk/DebuggerModel.ts +0 -1605
  116. package/lib/front_end/core/sdk/EmulationModel.ts +0 -648
  117. package/lib/front_end/core/sdk/EnhancedTracesParser.ts +0 -515
  118. package/lib/front_end/core/sdk/EventBreakpointsModel.ts +0 -183
  119. package/lib/front_end/core/sdk/FrameAssociated.ts +0 -11
  120. package/lib/front_end/core/sdk/FrameManager.ts +0 -259
  121. package/lib/front_end/core/sdk/HeapProfilerModel.ts +0 -225
  122. package/lib/front_end/core/sdk/HttpReasonPhraseStrings.ts +0 -77
  123. package/lib/front_end/core/sdk/IOModel.ts +0 -91
  124. package/lib/front_end/core/sdk/IsolateManager.ts +0 -257
  125. package/lib/front_end/core/sdk/IssuesModel.ts +0 -70
  126. package/lib/front_end/core/sdk/LayerTreeBase.ts +0 -169
  127. package/lib/front_end/core/sdk/LogModel.ts +0 -56
  128. package/lib/front_end/core/sdk/NetworkManager.ts +0 -2823
  129. package/lib/front_end/core/sdk/NetworkRequest.ts +0 -2253
  130. package/lib/front_end/core/sdk/OverlayColorGenerator.ts +0 -52
  131. package/lib/front_end/core/sdk/OverlayModel.ts +0 -1011
  132. package/lib/front_end/core/sdk/OverlayPersistentHighlighter.ts +0 -522
  133. package/lib/front_end/core/sdk/PageLoad.ts +0 -35
  134. package/lib/front_end/core/sdk/PageResourceLoader.ts +0 -435
  135. package/lib/front_end/core/sdk/PaintProfiler.ts +0 -110
  136. package/lib/front_end/core/sdk/PerformanceMetricsModel.ts +0 -84
  137. package/lib/front_end/core/sdk/PreloadingModel.ts +0 -863
  138. package/lib/front_end/core/sdk/RehydratingConnection.ts +0 -386
  139. package/lib/front_end/core/sdk/RehydratingObject.ts +0 -66
  140. package/lib/front_end/core/sdk/RemoteObject.ts +0 -1160
  141. package/lib/front_end/core/sdk/Resource.ts +0 -232
  142. package/lib/front_end/core/sdk/ResourceTreeModel.ts +0 -1160
  143. package/lib/front_end/core/sdk/RuntimeModel.ts +0 -732
  144. package/lib/front_end/core/sdk/SDKModel.ts +0 -65
  145. package/lib/front_end/core/sdk/ScopeTreeCache.ts +0 -45
  146. package/lib/front_end/core/sdk/ScreenCaptureModel.ts +0 -255
  147. package/lib/front_end/core/sdk/Script.ts +0 -534
  148. package/lib/front_end/core/sdk/SecurityOriginManager.ts +0 -76
  149. package/lib/front_end/core/sdk/ServerSentEvents.ts +0 -80
  150. package/lib/front_end/core/sdk/ServerSentEventsProtocol.ts +0 -122
  151. package/lib/front_end/core/sdk/ServerTiming.ts +0 -260
  152. package/lib/front_end/core/sdk/ServiceWorkerCacheModel.ts +0 -377
  153. package/lib/front_end/core/sdk/ServiceWorkerManager.ts +0 -605
  154. package/lib/front_end/core/sdk/SourceMap.ts +0 -867
  155. package/lib/front_end/core/sdk/SourceMapCache.ts +0 -54
  156. package/lib/front_end/core/sdk/SourceMapFunctionRanges.ts +0 -156
  157. package/lib/front_end/core/sdk/SourceMapManager.ts +0 -239
  158. package/lib/front_end/core/sdk/SourceMapScopeChainEntry.ts +0 -189
  159. package/lib/front_end/core/sdk/SourceMapScopesInfo.ts +0 -508
  160. package/lib/front_end/core/sdk/StorageBucketsModel.ts +0 -204
  161. package/lib/front_end/core/sdk/StorageKeyManager.ts +0 -98
  162. package/lib/front_end/core/sdk/Target.ts +0 -332
  163. package/lib/front_end/core/sdk/TargetManager.ts +0 -453
  164. package/lib/front_end/core/sdk/TraceObject.ts +0 -61
  165. package/lib/front_end/core/sdk/WebAuthnModel.ts +0 -104
  166. package/lib/front_end/core/sdk/sdk.ts +0 -174
  167. package/lib/front_end/entrypoints/formatter_worker/FormatterActions.ts +0 -59
  168. package/lib/front_end/generated/InspectorBackendCommands.js +0 -1617
  169. package/lib/front_end/generated/SupportedCSSProperties.js +0 -7512
  170. package/lib/front_end/generated/protocol-proxy-api.d.ts +0 -5022
  171. package/lib/front_end/generated/protocol.ts +0 -22014
  172. package/lib/front_end/models/bindings/CSSWorkspaceBinding.ts +0 -318
  173. package/lib/front_end/models/bindings/CompilerScriptMapping.ts +0 -536
  174. package/lib/front_end/models/bindings/ContentProviderBasedProject.ts +0 -187
  175. package/lib/front_end/models/bindings/DebuggerLanguagePlugins.ts +0 -1197
  176. package/lib/front_end/models/bindings/DebuggerWorkspaceBinding.ts +0 -733
  177. package/lib/front_end/models/bindings/DefaultScriptMapping.ts +0 -141
  178. package/lib/front_end/models/bindings/FileUtils.ts +0 -228
  179. package/lib/front_end/models/bindings/LiveLocation.ts +0 -81
  180. package/lib/front_end/models/bindings/NetworkProject.ts +0 -157
  181. package/lib/front_end/models/bindings/PresentationConsoleMessageHelper.ts +0 -312
  182. package/lib/front_end/models/bindings/ResourceMapping.ts +0 -539
  183. package/lib/front_end/models/bindings/ResourceScriptMapping.ts +0 -491
  184. package/lib/front_end/models/bindings/ResourceUtils.ts +0 -103
  185. package/lib/front_end/models/bindings/SASSSourceMapping.ts +0 -222
  186. package/lib/front_end/models/bindings/StylesSourceMapping.ts +0 -316
  187. package/lib/front_end/models/bindings/TempFile.ts +0 -67
  188. package/lib/front_end/models/bindings/bindings.ts +0 -39
  189. package/lib/front_end/models/cpu_profile/CPUProfileDataModel.ts +0 -571
  190. package/lib/front_end/models/cpu_profile/ProfileTreeModel.ts +0 -103
  191. package/lib/front_end/models/cpu_profile/cpu_profile.ts +0 -11
  192. package/lib/front_end/models/formatter/FormatterWorkerPool.ts +0 -219
  193. package/lib/front_end/models/formatter/ScriptFormatter.ts +0 -112
  194. package/lib/front_end/models/formatter/formatter.ts +0 -8
  195. package/lib/front_end/models/source_map_scopes/NamesResolver.ts +0 -765
  196. package/lib/front_end/models/source_map_scopes/ScopeChainModel.ts +0 -84
  197. package/lib/front_end/models/source_map_scopes/source_map_scopes.ts +0 -11
  198. package/lib/front_end/models/stack_trace/StackTrace.ts +0 -53
  199. package/lib/front_end/models/stack_trace/StackTraceImpl.ts +0 -85
  200. package/lib/front_end/models/stack_trace/StackTraceModel.ts +0 -128
  201. package/lib/front_end/models/stack_trace/Trie.ts +0 -163
  202. package/lib/front_end/models/stack_trace/stack_trace.ts +0 -9
  203. package/lib/front_end/models/stack_trace/stack_trace_impl.ts +0 -13
  204. package/lib/front_end/models/text_utils/CodeMirrorUtils.ts +0 -37
  205. package/lib/front_end/models/text_utils/ContentData.ts +0 -199
  206. package/lib/front_end/models/text_utils/ContentProvider.ts +0 -68
  207. package/lib/front_end/models/text_utils/StaticContentProvider.ts +0 -49
  208. package/lib/front_end/models/text_utils/StreamingContentData.ts +0 -108
  209. package/lib/front_end/models/text_utils/Text.ts +0 -90
  210. package/lib/front_end/models/text_utils/TextCursor.ts +0 -44
  211. package/lib/front_end/models/text_utils/TextRange.ts +0 -266
  212. package/lib/front_end/models/text_utils/TextUtils.ts +0 -401
  213. package/lib/front_end/models/text_utils/WasmDisassembly.ts +0 -87
  214. package/lib/front_end/models/text_utils/text_utils.ts +0 -27
  215. package/lib/front_end/models/trace/EntityMapper.ts +0 -141
  216. package/lib/front_end/models/trace/EventsSerializer.ts +0 -101
  217. package/lib/front_end/models/trace/LanternComputationData.ts +0 -438
  218. package/lib/front_end/models/trace/ModelImpl.ts +0 -236
  219. package/lib/front_end/models/trace/Name.ts +0 -136
  220. package/lib/front_end/models/trace/Processor.ts +0 -652
  221. package/lib/front_end/models/trace/Styles.ts +0 -1138
  222. package/lib/front_end/models/trace/extras/FilmStrip.ts +0 -78
  223. package/lib/front_end/models/trace/extras/MainThreadActivity.ts +0 -86
  224. package/lib/front_end/models/trace/extras/ScriptDuplication.ts +0 -236
  225. package/lib/front_end/models/trace/extras/StackTraceForEvent.ts +0 -203
  226. package/lib/front_end/models/trace/extras/ThirdParties.ts +0 -164
  227. package/lib/front_end/models/trace/extras/TraceFilter.ts +0 -62
  228. package/lib/front_end/models/trace/extras/TraceTree.ts +0 -701
  229. package/lib/front_end/models/trace/extras/extras.ts +0 -11
  230. package/lib/front_end/models/trace/handlers/AnimationFramesHandler.ts +0 -128
  231. package/lib/front_end/models/trace/handlers/AnimationHandler.ts +0 -36
  232. package/lib/front_end/models/trace/handlers/AsyncJSCallsHandler.ts +0 -239
  233. package/lib/front_end/models/trace/handlers/AuctionWorkletsHandler.ts +0 -183
  234. package/lib/front_end/models/trace/handlers/DOMStatsHandler.ts +0 -31
  235. package/lib/front_end/models/trace/handlers/ExtensionTraceDataHandler.ts +0 -306
  236. package/lib/front_end/models/trace/handlers/FlowsHandler.ts +0 -175
  237. package/lib/front_end/models/trace/handlers/FramesHandler.ts +0 -571
  238. package/lib/front_end/models/trace/handlers/GPUHandler.ts +0 -50
  239. package/lib/front_end/models/trace/handlers/ImagePaintingHandler.ts +0 -183
  240. package/lib/front_end/models/trace/handlers/InitiatorsHandler.ts +0 -193
  241. package/lib/front_end/models/trace/handlers/InvalidationsHandler.ts +0 -168
  242. package/lib/front_end/models/trace/handlers/LargestImagePaintHandler.ts +0 -109
  243. package/lib/front_end/models/trace/handlers/LargestTextPaintHandler.ts +0 -35
  244. package/lib/front_end/models/trace/handlers/LayerTreeHandler.ts +0 -123
  245. package/lib/front_end/models/trace/handlers/LayoutShiftsHandler.ts +0 -573
  246. package/lib/front_end/models/trace/handlers/MemoryHandler.ts +0 -31
  247. package/lib/front_end/models/trace/handlers/MetaHandler.ts +0 -525
  248. package/lib/front_end/models/trace/handlers/ModelHandlers.ts +0 -34
  249. package/lib/front_end/models/trace/handlers/NetworkRequestsHandler.ts +0 -672
  250. package/lib/front_end/models/trace/handlers/PageFramesHandler.ts +0 -52
  251. package/lib/front_end/models/trace/handlers/PageLoadMetricsHandler.ts +0 -460
  252. package/lib/front_end/models/trace/handlers/RendererHandler.ts +0 -428
  253. package/lib/front_end/models/trace/handlers/SamplesHandler.ts +0 -271
  254. package/lib/front_end/models/trace/handlers/ScreenshotsHandler.ts +0 -122
  255. package/lib/front_end/models/trace/handlers/ScriptsHandler.ts +0 -336
  256. package/lib/front_end/models/trace/handlers/SelectorStatsHandler.ts +0 -110
  257. package/lib/front_end/models/trace/handlers/Threads.ts +0 -139
  258. package/lib/front_end/models/trace/handlers/UserInteractionsHandler.ts +0 -400
  259. package/lib/front_end/models/trace/handlers/UserTimingsHandler.ts +0 -233
  260. package/lib/front_end/models/trace/handlers/WarningsHandler.ts +0 -162
  261. package/lib/front_end/models/trace/handlers/WorkersHandler.ts +0 -45
  262. package/lib/front_end/models/trace/handlers/handlers.ts +0 -8
  263. package/lib/front_end/models/trace/handlers/helpers.ts +0 -196
  264. package/lib/front_end/models/trace/handlers/types.ts +0 -75
  265. package/lib/front_end/models/trace/helpers/Extensions.ts +0 -54
  266. package/lib/front_end/models/trace/helpers/Network.ts +0 -129
  267. package/lib/front_end/models/trace/helpers/SamplesIntegrator.ts +0 -544
  268. package/lib/front_end/models/trace/helpers/SyntheticEvents.ts +0 -87
  269. package/lib/front_end/models/trace/helpers/Timing.ts +0 -248
  270. package/lib/front_end/models/trace/helpers/Trace.ts +0 -928
  271. package/lib/front_end/models/trace/helpers/TreeHelpers.ts +0 -320
  272. package/lib/front_end/models/trace/helpers/helpers.ts +0 -11
  273. package/lib/front_end/models/trace/insights/CLSCulprits.ts +0 -668
  274. package/lib/front_end/models/trace/insights/Cache.ts +0 -269
  275. package/lib/front_end/models/trace/insights/Common.ts +0 -453
  276. package/lib/front_end/models/trace/insights/DOMSize.ts +0 -223
  277. package/lib/front_end/models/trace/insights/DocumentLatency.ts +0 -319
  278. package/lib/front_end/models/trace/insights/DuplicatedJavaScript.ts +0 -126
  279. package/lib/front_end/models/trace/insights/FontDisplay.ts +0 -119
  280. package/lib/front_end/models/trace/insights/ForcedReflow.ts +0 -220
  281. package/lib/front_end/models/trace/insights/INPBreakdown.ts +0 -171
  282. package/lib/front_end/models/trace/insights/ImageDelivery.ts +0 -348
  283. package/lib/front_end/models/trace/insights/LCPBreakdown.ts +0 -268
  284. package/lib/front_end/models/trace/insights/LCPDiscovery.ts +0 -237
  285. package/lib/front_end/models/trace/insights/LegacyJavaScript.ts +0 -138
  286. package/lib/front_end/models/trace/insights/Models.ts +0 -22
  287. package/lib/front_end/models/trace/insights/ModernHTTP.ts +0 -257
  288. package/lib/front_end/models/trace/insights/NetworkDependencyTree.ts +0 -726
  289. package/lib/front_end/models/trace/insights/RenderBlocking.ts +0 -257
  290. package/lib/front_end/models/trace/insights/SlowCSSSelector.ts +0 -175
  291. package/lib/front_end/models/trace/insights/Statistics.ts +0 -101
  292. package/lib/front_end/models/trace/insights/ThirdParties.ts +0 -130
  293. package/lib/front_end/models/trace/insights/Viewport.ts +0 -138
  294. package/lib/front_end/models/trace/insights/insights.ts +0 -10
  295. package/lib/front_end/models/trace/insights/types.ts +0 -157
  296. package/lib/front_end/models/trace/lantern/core/LanternError.ts +0 -7
  297. package/lib/front_end/models/trace/lantern/core/NetworkAnalyzer.ts +0 -619
  298. package/lib/front_end/models/trace/lantern/core/core.ts +0 -6
  299. package/lib/front_end/models/trace/lantern/graph/BaseNode.ts +0 -345
  300. package/lib/front_end/models/trace/lantern/graph/CPUNode.ts +0 -80
  301. package/lib/front_end/models/trace/lantern/graph/NetworkNode.ts +0 -101
  302. package/lib/front_end/models/trace/lantern/graph/PageDependencyGraph.ts +0 -636
  303. package/lib/front_end/models/trace/lantern/graph/graph.ts +0 -8
  304. package/lib/front_end/models/trace/lantern/lantern.ts +0 -17
  305. package/lib/front_end/models/trace/lantern/metrics/FirstContentfulPaint.ts +0 -187
  306. package/lib/front_end/models/trace/lantern/metrics/Interactive.ts +0 -88
  307. package/lib/front_end/models/trace/lantern/metrics/LargestContentfulPaint.ts +0 -92
  308. package/lib/front_end/models/trace/lantern/metrics/MaxPotentialFID.ts +0 -72
  309. package/lib/front_end/models/trace/lantern/metrics/Metric.ts +0 -126
  310. package/lib/front_end/models/trace/lantern/metrics/SpeedIndex.ts +0 -126
  311. package/lib/front_end/models/trace/lantern/metrics/TBTUtils.ts +0 -82
  312. package/lib/front_end/models/trace/lantern/metrics/TotalBlockingTime.ts +0 -112
  313. package/lib/front_end/models/trace/lantern/metrics/metrics.ts +0 -12
  314. package/lib/front_end/models/trace/lantern/simulation/ConnectionPool.ts +0 -150
  315. package/lib/front_end/models/trace/lantern/simulation/Constants.ts +0 -46
  316. package/lib/front_end/models/trace/lantern/simulation/DNSCache.ts +0 -61
  317. package/lib/front_end/models/trace/lantern/simulation/SimulationTimingMap.ts +0 -196
  318. package/lib/front_end/models/trace/lantern/simulation/Simulator.ts +0 -556
  319. package/lib/front_end/models/trace/lantern/simulation/TCPConnection.ts +0 -192
  320. package/lib/front_end/models/trace/lantern/simulation/simulation.ts +0 -10
  321. package/lib/front_end/models/trace/lantern/types/Lantern.ts +0 -220
  322. package/lib/front_end/models/trace/lantern/types/types.ts +0 -5
  323. package/lib/front_end/models/trace/trace.ts +0 -33
  324. package/lib/front_end/models/trace/types/Configuration.ts +0 -110
  325. package/lib/front_end/models/trace/types/Extensions.ts +0 -136
  326. package/lib/front_end/models/trace/types/File.ts +0 -281
  327. package/lib/front_end/models/trace/types/Overlays.ts +0 -138
  328. package/lib/front_end/models/trace/types/Timing.ts +0 -30
  329. package/lib/front_end/models/trace/types/TraceEvents.ts +0 -3277
  330. package/lib/front_end/models/trace/types/types.ts +0 -10
  331. package/lib/front_end/models/trace_source_maps_resolver/SourceMapsResolver.ts +0 -240
  332. package/lib/front_end/models/trace_source_maps_resolver/trace_source_maps_resolver.ts +0 -5
  333. package/lib/front_end/models/workspace/FileManager.ts +0 -97
  334. package/lib/front_end/models/workspace/IgnoreListManager.ts +0 -628
  335. package/lib/front_end/models/workspace/SearchConfig.ts +0 -149
  336. package/lib/front_end/models/workspace/UISourceCode.ts +0 -698
  337. package/lib/front_end/models/workspace/WorkspaceImpl.ts +0 -339
  338. package/lib/front_end/models/workspace/workspace.ts +0 -17
  339. package/lib/front_end/panels/timeline/TimelineUIUtils.ts +0 -1029
  340. package/lib/front_end/panels/timeline/extensions/ExtensionUI.ts +0 -49
  341. package/lib/front_end/panels/timeline/extensions/extensions.ts +0 -9
  342. package/lib/front_end/third_party/codemirror.next/LICENSE +0 -21
  343. package/lib/front_end/third_party/codemirror.next/README.chromium +0 -30
  344. package/lib/front_end/third_party/codemirror.next/bundle-tsconfig.json +0 -24
  345. package/lib/front_end/third_party/codemirror.next/bundle.ts +0 -135
  346. package/lib/front_end/third_party/codemirror.next/chunk/angular.js +0 -2
  347. package/lib/front_end/third_party/codemirror.next/chunk/angular.js.map +0 -1
  348. package/lib/front_end/third_party/codemirror.next/chunk/codemirror.js +0 -2
  349. package/lib/front_end/third_party/codemirror.next/chunk/codemirror.js.map +0 -1
  350. package/lib/front_end/third_party/codemirror.next/chunk/cpp.js +0 -2
  351. package/lib/front_end/third_party/codemirror.next/chunk/cpp.js.map +0 -1
  352. package/lib/front_end/third_party/codemirror.next/chunk/css.js +0 -2
  353. package/lib/front_end/third_party/codemirror.next/chunk/html.js +0 -4
  354. package/lib/front_end/third_party/codemirror.next/chunk/java.js +0 -2
  355. package/lib/front_end/third_party/codemirror.next/chunk/java.js.map +0 -1
  356. package/lib/front_end/third_party/codemirror.next/chunk/javascript.js +0 -2
  357. package/lib/front_end/third_party/codemirror.next/chunk/legacy.js +0 -2
  358. package/lib/front_end/third_party/codemirror.next/chunk/legacy.js.map +0 -1
  359. package/lib/front_end/third_party/codemirror.next/chunk/less.js +0 -2
  360. package/lib/front_end/third_party/codemirror.next/chunk/less.js.map +0 -1
  361. package/lib/front_end/third_party/codemirror.next/chunk/markdown.js +0 -2
  362. package/lib/front_end/third_party/codemirror.next/chunk/markdown.js.map +0 -1
  363. package/lib/front_end/third_party/codemirror.next/chunk/php.js +0 -2
  364. package/lib/front_end/third_party/codemirror.next/chunk/php.js.map +0 -1
  365. package/lib/front_end/third_party/codemirror.next/chunk/python.js +0 -2
  366. package/lib/front_end/third_party/codemirror.next/chunk/python.js.map +0 -1
  367. package/lib/front_end/third_party/codemirror.next/chunk/sass.js +0 -2
  368. package/lib/front_end/third_party/codemirror.next/chunk/sass.js.map +0 -1
  369. package/lib/front_end/third_party/codemirror.next/chunk/svelte.js +0 -2
  370. package/lib/front_end/third_party/codemirror.next/chunk/svelte.js.map +0 -1
  371. package/lib/front_end/third_party/codemirror.next/chunk/vue.js +0 -2
  372. package/lib/front_end/third_party/codemirror.next/chunk/vue.js.map +0 -1
  373. package/lib/front_end/third_party/codemirror.next/chunk/wast.js +0 -2
  374. package/lib/front_end/third_party/codemirror.next/chunk/wast.js.map +0 -1
  375. package/lib/front_end/third_party/codemirror.next/chunk/xml.js +0 -2
  376. package/lib/front_end/third_party/codemirror.next/chunk/xml.js.map +0 -1
  377. package/lib/front_end/third_party/codemirror.next/codemirror.next.d.ts +0 -8057
  378. package/lib/front_end/third_party/codemirror.next/codemirror.next.js +0 -2
  379. package/lib/front_end/third_party/codemirror.next/codemirror.next.js.map +0 -1
  380. package/lib/front_end/third_party/codemirror.next/package.json +0 -43
  381. package/lib/front_end/third_party/codemirror.next/rebuild.sh +0 -6
  382. package/lib/front_end/third_party/codemirror.next/rollup.config.mjs +0 -49
  383. package/lib/front_end/third_party/i18n/LICENSE +0 -202
  384. package/lib/front_end/third_party/i18n/README.chromium +0 -15
  385. package/lib/front_end/third_party/i18n/i18n-impl.ts +0 -61
  386. package/lib/front_end/third_party/i18n/i18n.ts +0 -11
  387. package/lib/front_end/third_party/i18n/localized-string-set.ts +0 -129
  388. package/lib/front_end/third_party/intl-messageformat/LICENSE +0 -33
  389. package/lib/front_end/third_party/intl-messageformat/README.chromium +0 -24
  390. package/lib/front_end/third_party/intl-messageformat/intl-messageformat-tsconfig.json +0 -16
  391. package/lib/front_end/third_party/intl-messageformat/intl-messageformat.ts +0 -6
  392. package/lib/front_end/third_party/intl-messageformat/package/LICENSE.md +0 -33
  393. package/lib/front_end/third_party/intl-messageformat/package/README.md +0 -3
  394. package/lib/front_end/third_party/intl-messageformat/package/index.d.ts +0 -6
  395. package/lib/front_end/third_party/intl-messageformat/package/index.d.ts.map +0 -1
  396. package/lib/front_end/third_party/intl-messageformat/package/index.js +0 -13
  397. package/lib/front_end/third_party/intl-messageformat/package/intl-messageformat.esm.d.ts +0 -5
  398. package/lib/front_end/third_party/intl-messageformat/package/intl-messageformat.esm.js +0 -1710
  399. package/lib/front_end/third_party/intl-messageformat/package/intl-messageformat.iife.js +0 -1815
  400. package/lib/front_end/third_party/intl-messageformat/package/lib/index.d.ts +0 -6
  401. package/lib/front_end/third_party/intl-messageformat/package/lib/index.d.ts.map +0 -1
  402. package/lib/front_end/third_party/intl-messageformat/package/lib/index.js +0 -10
  403. package/lib/front_end/third_party/intl-messageformat/package/lib/src/core.d.ts +0 -34
  404. package/lib/front_end/third_party/intl-messageformat/package/lib/src/core.d.ts.map +0 -1
  405. package/lib/front_end/third_party/intl-messageformat/package/lib/src/core.js +0 -229
  406. package/lib/front_end/third_party/intl-messageformat/package/lib/src/error.d.ts +0 -28
  407. package/lib/front_end/third_party/intl-messageformat/package/lib/src/error.d.ts.map +0 -1
  408. package/lib/front_end/third_party/intl-messageformat/package/lib/src/error.js +0 -48
  409. package/lib/front_end/third_party/intl-messageformat/package/lib/src/formatters.d.ts +0 -34
  410. package/lib/front_end/third_party/intl-messageformat/package/lib/src/formatters.d.ts.map +0 -1
  411. package/lib/front_end/third_party/intl-messageformat/package/lib/src/formatters.js +0 -179
  412. package/lib/front_end/third_party/intl-messageformat/package/package.json +0 -42
  413. package/lib/front_end/third_party/intl-messageformat/package/src/core.d.ts +0 -34
  414. package/lib/front_end/third_party/intl-messageformat/package/src/core.d.ts.map +0 -1
  415. package/lib/front_end/third_party/intl-messageformat/package/src/core.js +0 -230
  416. package/lib/front_end/third_party/intl-messageformat/package/src/error.d.ts +0 -28
  417. package/lib/front_end/third_party/intl-messageformat/package/src/error.d.ts.map +0 -1
  418. package/lib/front_end/third_party/intl-messageformat/package/src/error.js +0 -51
  419. package/lib/front_end/third_party/intl-messageformat/package/src/formatters.d.ts +0 -34
  420. package/lib/front_end/third_party/intl-messageformat/package/src/formatters.d.ts.map +0 -1
  421. package/lib/front_end/third_party/intl-messageformat/package/src/formatters.js +0 -182
  422. package/lib/front_end/third_party/intl-messageformat/package/src/icu-messageformat-parser/error.d.ts +0 -79
  423. package/lib/front_end/third_party/intl-messageformat/package/src/icu-messageformat-parser/index.d.ts +0 -15
  424. package/lib/front_end/third_party/intl-messageformat/package/src/icu-messageformat-parser/parser.d.ts +0 -153
  425. package/lib/front_end/third_party/intl-messageformat/package/src/icu-messageformat-parser/types.d.ts +0 -139
  426. package/lib/front_end/third_party/legacy-javascript/LICENSE +0 -202
  427. package/lib/front_end/third_party/legacy-javascript/README.chromium +0 -13
  428. package/lib/front_end/third_party/legacy-javascript/legacy-javascript-tsconfig.json +0 -8
  429. package/lib/front_end/third_party/legacy-javascript/legacy-javascript.ts +0 -3
  430. package/lib/front_end/third_party/legacy-javascript/lib/legacy-javascript.d.ts +0 -18
  431. package/lib/front_end/third_party/legacy-javascript/lib/legacy-javascript.js +0 -943
  432. package/lib/front_end/third_party/legacy-javascript/package.json +0 -8
  433. package/lib/front_end/third_party/legacy-javascript/rebuild.sh +0 -9
  434. package/lib/front_end/third_party/source-map-scopes-codec/LICENSE +0 -26
  435. package/lib/front_end/third_party/source-map-scopes-codec/README.chromium +0 -31
  436. package/lib/front_end/third_party/source-map-scopes-codec/package/CONTRIBUTING.md +0 -33
  437. package/lib/front_end/third_party/source-map-scopes-codec/package/LICENSE +0 -26
  438. package/lib/front_end/third_party/source-map-scopes-codec/package/README.md +0 -64
  439. package/lib/front_end/third_party/source-map-scopes-codec/package/_dist/src/builder/builder.d.ts +0 -62
  440. package/lib/front_end/third_party/source-map-scopes-codec/package/_dist/src/builder/builder.d.ts.map +0 -1
  441. package/lib/front_end/third_party/source-map-scopes-codec/package/_dist/src/builder/safe_builder.d.ts +0 -37
  442. package/lib/front_end/third_party/source-map-scopes-codec/package/_dist/src/builder/safe_builder.d.ts.map +0 -1
  443. package/lib/front_end/third_party/source-map-scopes-codec/package/_dist/src/decode/decode.d.ts +0 -29
  444. package/lib/front_end/third_party/source-map-scopes-codec/package/_dist/src/decode/decode.d.ts.map +0 -1
  445. package/lib/front_end/third_party/source-map-scopes-codec/package/_dist/src/encode/encode.d.ts +0 -8
  446. package/lib/front_end/third_party/source-map-scopes-codec/package/_dist/src/encode/encode.d.ts.map +0 -1
  447. package/lib/front_end/third_party/source-map-scopes-codec/package/_dist/src/mod.d.ts +0 -6
  448. package/lib/front_end/third_party/source-map-scopes-codec/package/_dist/src/mod.d.ts.map +0 -1
  449. package/lib/front_end/third_party/source-map-scopes-codec/package/deno.json +0 -21
  450. package/lib/front_end/third_party/source-map-scopes-codec/package/package.json +0 -14
  451. package/lib/front_end/third_party/source-map-scopes-codec/package/src/builder/builder.js +0 -196
  452. package/lib/front_end/third_party/source-map-scopes-codec/package/src/builder/builder.js.map +0 -1
  453. package/lib/front_end/third_party/source-map-scopes-codec/package/src/builder/builder.ts +0 -262
  454. package/lib/front_end/third_party/source-map-scopes-codec/package/src/builder/safe_builder.js +0 -235
  455. package/lib/front_end/third_party/source-map-scopes-codec/package/src/builder/safe_builder.js.map +0 -1
  456. package/lib/front_end/third_party/source-map-scopes-codec/package/src/builder/safe_builder.ts +0 -359
  457. package/lib/front_end/third_party/source-map-scopes-codec/package/src/codec.js +0 -39
  458. package/lib/front_end/third_party/source-map-scopes-codec/package/src/codec.js.map +0 -1
  459. package/lib/front_end/third_party/source-map-scopes-codec/package/src/codec.ts +0 -53
  460. package/lib/front_end/third_party/source-map-scopes-codec/package/src/decode/decode.js +0 -438
  461. package/lib/front_end/third_party/source-map-scopes-codec/package/src/decode/decode.js.map +0 -1
  462. package/lib/front_end/third_party/source-map-scopes-codec/package/src/decode/decode.ts +0 -539
  463. package/lib/front_end/third_party/source-map-scopes-codec/package/src/encode/encode.js +0 -23
  464. package/lib/front_end/third_party/source-map-scopes-codec/package/src/encode/encode.js.map +0 -1
  465. package/lib/front_end/third_party/source-map-scopes-codec/package/src/encode/encode.ts +0 -35
  466. package/lib/front_end/third_party/source-map-scopes-codec/package/src/encode/encoder.js +0 -257
  467. package/lib/front_end/third_party/source-map-scopes-codec/package/src/encode/encoder.js.map +0 -1
  468. package/lib/front_end/third_party/source-map-scopes-codec/package/src/encode/encoder.ts +0 -348
  469. package/lib/front_end/third_party/source-map-scopes-codec/package/src/mod.js +0 -8
  470. package/lib/front_end/third_party/source-map-scopes-codec/package/src/mod.js.map +0 -1
  471. package/lib/front_end/third_party/source-map-scopes-codec/package/src/mod.ts +0 -20
  472. package/lib/front_end/third_party/source-map-scopes-codec/package/src/scopes-tsconfig.json +0 -8
  473. package/lib/front_end/third_party/source-map-scopes-codec/package/src/scopes.d.ts +0 -184
  474. package/lib/front_end/third_party/source-map-scopes-codec/package/src/util.js +0 -9
  475. package/lib/front_end/third_party/source-map-scopes-codec/package/src/util.js.map +0 -1
  476. package/lib/front_end/third_party/source-map-scopes-codec/package/src/util.ts +0 -12
  477. package/lib/front_end/third_party/source-map-scopes-codec/package/src/vlq.js +0 -82
  478. package/lib/front_end/third_party/source-map-scopes-codec/package/src/vlq.js.map +0 -1
  479. package/lib/front_end/third_party/source-map-scopes-codec/package/src/vlq.ts +0 -99
  480. package/lib/front_end/third_party/source-map-scopes-codec/source-map-scopes-codec.ts +0 -5
  481. package/lib/front_end/third_party/third-party-web/LICENSE +0 -20
  482. package/lib/front_end/third_party/third-party-web/README.chromium +0 -13
  483. package/lib/front_end/third_party/third-party-web/lib/nostats-subset.d.ts +0 -2
  484. package/lib/front_end/third_party/third-party-web/lib/nostats-subset.js +0 -149
  485. package/lib/front_end/third_party/third-party-web/package/LICENSE +0 -20
  486. package/lib/front_end/third_party/third-party-web/package/README.md +0 -929
  487. package/lib/front_end/third_party/third-party-web/package/dist/entities-httparchive-nostats.json +0 -1
  488. package/lib/front_end/third_party/third-party-web/package/dist/entities-httparchive.json +0 -1
  489. package/lib/front_end/third_party/third-party-web/package/dist/entities-nostats.json +0 -1
  490. package/lib/front_end/third_party/third-party-web/package/dist/entities.json +0 -1
  491. package/lib/front_end/third_party/third-party-web/package/facades.md +0 -46
  492. package/lib/front_end/third_party/third-party-web/package/httparchive-nostats-subset.d.ts +0 -1
  493. package/lib/front_end/third_party/third-party-web/package/httparchive-nostats-subset.js +0 -1
  494. package/lib/front_end/third_party/third-party-web/package/httparchive-subset.d.ts +0 -1
  495. package/lib/front_end/third_party/third-party-web/package/httparchive-subset.js +0 -1
  496. package/lib/front_end/third_party/third-party-web/package/lib/__snapshots__/index.test.js.snap +0 -1006
  497. package/lib/front_end/third_party/third-party-web/package/lib/create-entity-finder-api.js +0 -139
  498. package/lib/front_end/third_party/third-party-web/package/lib/create-entity-finder-api.test.js +0 -44
  499. package/lib/front_end/third_party/third-party-web/package/lib/entities.test.js +0 -27
  500. package/lib/front_end/third_party/third-party-web/package/lib/index.d.ts +0 -34
  501. package/lib/front_end/third_party/third-party-web/package/lib/index.js +0 -3
  502. package/lib/front_end/third_party/third-party-web/package/lib/index.test.js +0 -246
  503. package/lib/front_end/third_party/third-party-web/package/lib/markdown/faqs.partial.md +0 -36
  504. package/lib/front_end/third_party/third-party-web/package/lib/markdown/goals.partial.md +0 -9
  505. package/lib/front_end/third_party/third-party-web/package/lib/markdown/methodology.partial.md +0 -5
  506. package/lib/front_end/third_party/third-party-web/package/lib/markdown/template.md +0 -151
  507. package/lib/front_end/third_party/third-party-web/package/lib/markdown/updates/2019-02-01.md +0 -1
  508. package/lib/front_end/third_party/third-party-web/package/lib/markdown/updates/2019-03-01.md +0 -1
  509. package/lib/front_end/third_party/third-party-web/package/lib/markdown/updates/2019-05-06.md +0 -1
  510. package/lib/front_end/third_party/third-party-web/package/lib/markdown/updates/2019-05-13.md +0 -14
  511. package/lib/front_end/third_party/third-party-web/package/lib/markdown/updates/2021-01-01.md +0 -1
  512. package/lib/front_end/third_party/third-party-web/package/lib/markdown/updates/2024-07-01.md +0 -3
  513. package/lib/front_end/third_party/third-party-web/package/lib/subsets/httparchive-nostats.d.ts +0 -1
  514. package/lib/front_end/third_party/third-party-web/package/lib/subsets/httparchive-nostats.js +0 -3
  515. package/lib/front_end/third_party/third-party-web/package/lib/subsets/httparchive.d.ts +0 -1
  516. package/lib/front_end/third_party/third-party-web/package/lib/subsets/httparchive.js +0 -3
  517. package/lib/front_end/third_party/third-party-web/package/lib/subsets/nostats.d.ts +0 -1
  518. package/lib/front_end/third_party/third-party-web/package/lib/subsets/nostats.js +0 -3
  519. package/lib/front_end/third_party/third-party-web/package/nostats-subset.d.ts +0 -1
  520. package/lib/front_end/third_party/third-party-web/package/nostats-subset.js +0 -1
  521. package/lib/front_end/third_party/third-party-web/package/package.json +0 -46
  522. package/lib/front_end/third_party/third-party-web/package.json +0 -8
  523. package/lib/front_end/third_party/third-party-web/rebuild.sh +0 -13
  524. package/lib/front_end/third_party/third-party-web/third-party-web-tsconfig.json +0 -8
  525. package/lib/front_end/third_party/third-party-web/third-party-web.ts +0 -3
  526. package/lib/front_end/ui/legacy/theme_support/ThemeSupport.ts +0 -222
  527. package/lib/front_end/ui/legacy/theme_support/theme_support.ts +0 -5
  528. package/patches/chrome-devtools-frontend+1.0.1533544.patch +0 -1716
@@ -1,787 +0,0 @@
1
- // Copyright 2017 The Chromium Authors
2
- // Use of this source code is governed by a BSD-style license that can be
3
- // found in the LICENSE file.
4
-
5
- import type * as ProtocolProxyApi from '../../generated/protocol-proxy-api.js';
6
- import * as Protocol from '../../generated/protocol.js';
7
- import * as Common from '../common/common.js';
8
- import * as Platform from '../platform/platform.js';
9
-
10
- import {CategorizedBreakpoint, Category} from './CategorizedBreakpoint.js';
11
- import type {EventListenerPausedDetailsAuxData, Location} from './DebuggerModel.js';
12
- import {DOMModel, type DOMNode, Events as DOMModelEvents} from './DOMModel.js';
13
- import {RemoteObject} from './RemoteObject.js';
14
- import {RuntimeModel} from './RuntimeModel.js';
15
- import {SDKModel} from './SDKModel.js';
16
- import {Capability, type Target} from './Target.js';
17
- import {type SDKModelObserver, TargetManager} from './TargetManager.js';
18
-
19
- export class DOMDebuggerModel extends SDKModel<EventTypes> {
20
- readonly agent: ProtocolProxyApi.DOMDebuggerApi;
21
- readonly #runtimeModel: RuntimeModel;
22
- #domModel: DOMModel;
23
- #domBreakpoints: DOMBreakpoint[];
24
- readonly #domBreakpointsSetting: Common.Settings.Setting<Array<{
25
- url: Platform.DevToolsPath.UrlString,
26
- path: string,
27
- type: Protocol.DOMDebugger.DOMBreakpointType,
28
- enabled: boolean,
29
- }>>;
30
- suspended = false;
31
-
32
- constructor(target: Target) {
33
- super(target);
34
- this.agent = target.domdebuggerAgent();
35
- this.#runtimeModel = (target.model(RuntimeModel) as RuntimeModel);
36
- this.#domModel = (target.model(DOMModel) as DOMModel);
37
- this.#domModel.addEventListener(DOMModelEvents.DocumentUpdated, this.documentUpdated, this);
38
- this.#domModel.addEventListener(DOMModelEvents.NodeRemoved, this.nodeRemoved, this);
39
-
40
- this.#domBreakpoints = [];
41
- this.#domBreakpointsSetting = Common.Settings.Settings.instance().createLocalSetting('dom-breakpoints', []);
42
- if (this.#domModel.existingDocument()) {
43
- void this.documentUpdated();
44
- }
45
- }
46
-
47
- runtimeModel(): RuntimeModel {
48
- return this.#runtimeModel;
49
- }
50
-
51
- override async suspendModel(): Promise<void> {
52
- this.suspended = true;
53
- }
54
-
55
- override async resumeModel(): Promise<void> {
56
- this.suspended = false;
57
- }
58
-
59
- async eventListeners(remoteObject: RemoteObject): Promise<EventListener[]> {
60
- console.assert(remoteObject.runtimeModel() === this.#runtimeModel);
61
- if (!remoteObject.objectId) {
62
- return [];
63
- }
64
-
65
- const listeners = await this.agent.invoke_getEventListeners({objectId: remoteObject.objectId});
66
- const eventListeners = [];
67
- for (const payload of listeners.listeners || []) {
68
- const location = this.#runtimeModel.debuggerModel().createRawLocationByScriptId(
69
- payload.scriptId, payload.lineNumber, payload.columnNumber);
70
- if (!location) {
71
- continue;
72
- }
73
- eventListeners.push(new EventListener(
74
- this, remoteObject, payload.type, payload.useCapture, payload.passive, payload.once,
75
- payload.handler ? this.#runtimeModel.createRemoteObject(payload.handler) : null,
76
- payload.originalHandler ? this.#runtimeModel.createRemoteObject(payload.originalHandler) : null, location,
77
- null));
78
- }
79
- return eventListeners;
80
- }
81
-
82
- retrieveDOMBreakpoints(): void {
83
- void this.#domModel.requestDocument();
84
- }
85
-
86
- domBreakpoints(): DOMBreakpoint[] {
87
- return this.#domBreakpoints.slice();
88
- }
89
-
90
- hasDOMBreakpoint(node: DOMNode, type: Protocol.DOMDebugger.DOMBreakpointType): boolean {
91
- return this.#domBreakpoints.some(breakpoint => (breakpoint.node === node && breakpoint.type === type));
92
- }
93
-
94
- setDOMBreakpoint(node: DOMNode, type: Protocol.DOMDebugger.DOMBreakpointType): DOMBreakpoint {
95
- for (const breakpoint of this.#domBreakpoints) {
96
- if (breakpoint.node === node && breakpoint.type === type) {
97
- this.toggleDOMBreakpoint(breakpoint, true);
98
- return breakpoint;
99
- }
100
- }
101
- const breakpoint = new DOMBreakpoint(this, node, type, true);
102
- this.#domBreakpoints.push(breakpoint);
103
- this.enableDOMBreakpoint(breakpoint);
104
- this.saveDOMBreakpoints();
105
- this.dispatchEventToListeners(Events.DOM_BREAKPOINT_ADDED, breakpoint);
106
- return breakpoint;
107
- }
108
-
109
- removeDOMBreakpoint(node: DOMNode, type: Protocol.DOMDebugger.DOMBreakpointType): void {
110
- this.removeDOMBreakpoints(breakpoint => breakpoint.node === node && breakpoint.type === type);
111
- }
112
-
113
- removeAllDOMBreakpoints(): void {
114
- this.removeDOMBreakpoints(_breakpoint => true);
115
- }
116
-
117
- toggleDOMBreakpoint(breakpoint: DOMBreakpoint, enabled: boolean): void {
118
- if (enabled === breakpoint.enabled) {
119
- return;
120
- }
121
- breakpoint.enabled = enabled;
122
- if (enabled) {
123
- this.enableDOMBreakpoint(breakpoint);
124
- } else {
125
- this.disableDOMBreakpoint(breakpoint);
126
- }
127
- this.saveDOMBreakpoints();
128
- this.dispatchEventToListeners(Events.DOM_BREAKPOINT_TOGGLED, breakpoint);
129
- }
130
-
131
- private enableDOMBreakpoint(breakpoint: DOMBreakpoint): void {
132
- if (breakpoint.node.id) {
133
- void this.agent.invoke_setDOMBreakpoint({nodeId: breakpoint.node.id, type: breakpoint.type});
134
- breakpoint.node.setMarker(Marker, true);
135
- }
136
- }
137
-
138
- private disableDOMBreakpoint(breakpoint: DOMBreakpoint): void {
139
- if (breakpoint.node.id) {
140
- void this.agent.invoke_removeDOMBreakpoint({nodeId: breakpoint.node.id, type: breakpoint.type});
141
- breakpoint.node.setMarker(Marker, this.nodeHasBreakpoints(breakpoint.node) ? true : null);
142
- }
143
- }
144
-
145
- private nodeHasBreakpoints(node: DOMNode): boolean {
146
- for (const breakpoint of this.#domBreakpoints) {
147
- if (breakpoint.node === node && breakpoint.enabled) {
148
- return true;
149
- }
150
- }
151
- return false;
152
- }
153
-
154
- resolveDOMBreakpointData(auxData: {
155
- type: Protocol.DOMDebugger.DOMBreakpointType,
156
- nodeId: Protocol.DOM.NodeId,
157
- targetNodeId: Protocol.DOM.NodeId,
158
- insertion: boolean,
159
- }): {
160
- type: Protocol.DOMDebugger.DOMBreakpointType,
161
- node: DOMNode,
162
- targetNode: DOMNode|null,
163
- insertion: boolean,
164
- }|null {
165
- const type = auxData['type'];
166
- const node = this.#domModel.nodeForId(auxData['nodeId']);
167
- if (!type || !node) {
168
- return null;
169
- }
170
- let targetNode: (DOMNode|null)|null = null;
171
- let insertion = false;
172
- if (type === Protocol.DOMDebugger.DOMBreakpointType.SubtreeModified) {
173
- insertion = auxData['insertion'] || false;
174
- targetNode = this.#domModel.nodeForId(auxData['targetNodeId']);
175
- }
176
- return {type, node, targetNode, insertion};
177
- }
178
-
179
- private currentURL(): Platform.DevToolsPath.UrlString {
180
- const domDocument = this.#domModel.existingDocument();
181
- return domDocument ? domDocument.documentURL : Platform.DevToolsPath.EmptyUrlString;
182
- }
183
-
184
- private async documentUpdated(): Promise<void> {
185
- if (this.suspended) {
186
- return;
187
- }
188
- const removed = this.#domBreakpoints;
189
- this.#domBreakpoints = [];
190
- this.dispatchEventToListeners(Events.DOM_BREAKPOINTS_REMOVED, removed);
191
-
192
- // this.currentURL() is empty when the page is reloaded because the
193
- // new document has not been requested yet and the old one has been
194
- // removed. Therefore, we need to request the document and wait for it.
195
- // Note that requestDocument() caches the document so that it is requested
196
- // only once.
197
- const document = await this.#domModel.requestDocument();
198
- const currentURL = document ? document.documentURL : Platform.DevToolsPath.EmptyUrlString;
199
- for (const breakpoint of this.#domBreakpointsSetting.get()) {
200
- if (breakpoint.url === currentURL) {
201
- void this.#domModel.pushNodeByPathToFrontend(breakpoint.path).then(appendBreakpoint.bind(this, breakpoint));
202
- }
203
- }
204
-
205
- function appendBreakpoint(
206
- this: DOMDebuggerModel, breakpoint: {
207
- type: Protocol.DOMDebugger.DOMBreakpointType,
208
- enabled: boolean,
209
- },
210
- nodeId: Protocol.DOM.NodeId|null): void {
211
- const node = nodeId ? this.#domModel.nodeForId(nodeId) : null;
212
- if (!node) {
213
- return;
214
- }
215
-
216
- // Before creating a new DOMBreakpoint, we need to ensure there's no
217
- // existing breakpoint with the same node and breakpoint type, else we would create
218
- // multiple DOMBreakpoints of the same type and for the same node.
219
- for (const existingBreakpoint of this.#domBreakpoints) {
220
- if (existingBreakpoint.node === node && existingBreakpoint.type === breakpoint.type) {
221
- return;
222
- }
223
- }
224
-
225
- const domBreakpoint = new DOMBreakpoint(this, node, breakpoint.type, breakpoint.enabled);
226
- this.#domBreakpoints.push(domBreakpoint);
227
- if (breakpoint.enabled) {
228
- this.enableDOMBreakpoint(domBreakpoint);
229
- }
230
- this.dispatchEventToListeners(Events.DOM_BREAKPOINT_ADDED, domBreakpoint);
231
- }
232
- }
233
-
234
- private removeDOMBreakpoints(filter: (arg0: DOMBreakpoint) => boolean): void {
235
- const removed = [];
236
- const left = [];
237
- for (const breakpoint of this.#domBreakpoints) {
238
- if (filter(breakpoint)) {
239
- removed.push(breakpoint);
240
- if (breakpoint.enabled) {
241
- breakpoint.enabled = false;
242
- this.disableDOMBreakpoint(breakpoint);
243
- }
244
- } else {
245
- left.push(breakpoint);
246
- }
247
- }
248
-
249
- if (!removed.length) {
250
- return;
251
- }
252
- this.#domBreakpoints = left;
253
- this.saveDOMBreakpoints();
254
- this.dispatchEventToListeners(Events.DOM_BREAKPOINTS_REMOVED, removed);
255
- }
256
-
257
- private nodeRemoved(event: Common.EventTarget.EventTargetEvent<{node: DOMNode, parent: DOMNode}>): void {
258
- if (this.suspended) {
259
- return;
260
- }
261
- const {node} = event.data;
262
- const children = node.children() || [];
263
- this.removeDOMBreakpoints(breakpoint => breakpoint.node === node || children.indexOf(breakpoint.node) !== -1);
264
- }
265
-
266
- private saveDOMBreakpoints(): void {
267
- const currentURL = this.currentURL();
268
- const breakpoints = this.#domBreakpointsSetting.get().filter((breakpoint: {
269
- url: Platform.DevToolsPath.UrlString,
270
- }) => breakpoint.url !== currentURL);
271
- for (const breakpoint of this.#domBreakpoints) {
272
- breakpoints.push(
273
- {url: currentURL, path: breakpoint.node.path(), type: breakpoint.type, enabled: breakpoint.enabled});
274
- }
275
- this.#domBreakpointsSetting.set(breakpoints);
276
- }
277
- }
278
-
279
- export const enum Events {
280
- DOM_BREAKPOINT_ADDED = 'DOMBreakpointAdded',
281
- DOM_BREAKPOINT_TOGGLED = 'DOMBreakpointToggled',
282
- DOM_BREAKPOINTS_REMOVED = 'DOMBreakpointsRemoved',
283
- }
284
-
285
- export interface EventTypes {
286
- [Events.DOM_BREAKPOINT_ADDED]: DOMBreakpoint;
287
- [Events.DOM_BREAKPOINT_TOGGLED]: DOMBreakpoint;
288
- [Events.DOM_BREAKPOINTS_REMOVED]: DOMBreakpoint[];
289
- }
290
-
291
- const Marker = 'breakpoint-marker';
292
-
293
- export class DOMBreakpoint {
294
- domDebuggerModel: DOMDebuggerModel;
295
- node: DOMNode;
296
- type: Protocol.DOMDebugger.DOMBreakpointType;
297
- enabled: boolean;
298
-
299
- constructor(
300
- domDebuggerModel: DOMDebuggerModel, node: DOMNode, type: Protocol.DOMDebugger.DOMBreakpointType,
301
- enabled: boolean) {
302
- this.domDebuggerModel = domDebuggerModel;
303
- this.node = node;
304
- this.type = type;
305
- this.enabled = enabled;
306
- }
307
- }
308
-
309
- export class EventListener {
310
- readonly #domDebuggerModel: DOMDebuggerModel;
311
- readonly #eventTarget: RemoteObject;
312
- readonly #type: string;
313
- readonly #useCapture: boolean;
314
- readonly #passive: boolean;
315
- readonly #once: boolean;
316
- readonly #handler: RemoteObject|null;
317
- readonly #originalHandler: RemoteObject|null;
318
- readonly #location: Location;
319
- readonly #sourceURL: Platform.DevToolsPath.UrlString;
320
- readonly #customRemoveFunction: RemoteObject|null;
321
- #origin: string;
322
-
323
- constructor(
324
- domDebuggerModel: DOMDebuggerModel, eventTarget: RemoteObject, type: string, useCapture: boolean,
325
- passive: boolean, once: boolean, handler: RemoteObject|null, originalHandler: RemoteObject|null,
326
- location: Location, customRemoveFunction: RemoteObject|null, origin?: string) {
327
- this.#domDebuggerModel = domDebuggerModel;
328
- this.#eventTarget = eventTarget;
329
- this.#type = type;
330
- this.#useCapture = useCapture;
331
- this.#passive = passive;
332
- this.#once = once;
333
- this.#handler = handler;
334
- this.#originalHandler = originalHandler || handler;
335
- this.#location = location;
336
- const script = location.script();
337
- this.#sourceURL = script ? script.contentURL() : Platform.DevToolsPath.EmptyUrlString;
338
- this.#customRemoveFunction = customRemoveFunction;
339
- this.#origin = origin || EventListener.Origin.RAW;
340
- }
341
-
342
- domDebuggerModel(): DOMDebuggerModel {
343
- return this.#domDebuggerModel;
344
- }
345
-
346
- type(): string {
347
- return this.#type;
348
- }
349
-
350
- useCapture(): boolean {
351
- return this.#useCapture;
352
- }
353
-
354
- passive(): boolean {
355
- return this.#passive;
356
- }
357
-
358
- once(): boolean {
359
- return this.#once;
360
- }
361
-
362
- handler(): RemoteObject|null {
363
- return this.#handler;
364
- }
365
-
366
- location(): Location {
367
- return this.#location;
368
- }
369
-
370
- sourceURL(): Platform.DevToolsPath.UrlString {
371
- return this.#sourceURL;
372
- }
373
-
374
- originalHandler(): RemoteObject|null {
375
- return this.#originalHandler;
376
- }
377
-
378
- canRemove(): boolean {
379
- return Boolean(this.#customRemoveFunction) || this.#origin !== EventListener.Origin.FRAMEWORK_USER;
380
- }
381
-
382
- remove(): Promise<void> {
383
- if (!this.canRemove()) {
384
- return Promise.resolve(undefined);
385
- }
386
-
387
- if (this.#origin !== EventListener.Origin.FRAMEWORK_USER) {
388
- function removeListener(
389
- this: {
390
- removeEventListener: (arg0: string, arg1: () => void, arg2: boolean) => void,
391
- },
392
- type: string, listener: () => void, useCapture: boolean): void {
393
- this.removeEventListener(type, listener, useCapture);
394
- // @ts-expect-error:
395
- if (this['on' + type]) {
396
- // @ts-expect-error:
397
- this['on' + type] = undefined;
398
- }
399
- }
400
-
401
- return this.#eventTarget
402
- .callFunction(
403
- removeListener,
404
- [
405
- RemoteObject.toCallArgument(this.#type),
406
- RemoteObject.toCallArgument(this.#originalHandler),
407
- RemoteObject.toCallArgument(this.#useCapture),
408
- ])
409
- .then(() => undefined);
410
- }
411
-
412
- if (this.#customRemoveFunction) {
413
- function callCustomRemove(
414
- this: (arg0: string, arg1: () => void, arg2: boolean, arg3: boolean) => void, type: string,
415
- listener: () => void, useCapture: boolean, passive: boolean): void {
416
- this.call(null, type, listener, useCapture, passive);
417
- }
418
-
419
- return this.#customRemoveFunction
420
- .callFunction(
421
- callCustomRemove,
422
- [
423
- RemoteObject.toCallArgument(this.#type),
424
- RemoteObject.toCallArgument(this.#originalHandler),
425
- RemoteObject.toCallArgument(this.#useCapture),
426
- RemoteObject.toCallArgument(this.#passive),
427
- ])
428
- .then(() => undefined);
429
- }
430
- return Promise.resolve(undefined);
431
- }
432
-
433
- canTogglePassive(): boolean {
434
- return this.#origin !== EventListener.Origin.FRAMEWORK_USER;
435
- }
436
-
437
- togglePassive(): Promise<undefined> {
438
- return this.#eventTarget
439
- .callFunction(
440
- callTogglePassive,
441
- [
442
- RemoteObject.toCallArgument(this.#type),
443
- RemoteObject.toCallArgument(this.#originalHandler),
444
- RemoteObject.toCallArgument(this.#useCapture),
445
- RemoteObject.toCallArgument(this.#passive),
446
- ])
447
- .then(() => undefined);
448
-
449
- function callTogglePassive(
450
- this: {
451
- addEventListener: (arg0: string, arg1: () => void, arg2: {
452
- capture: boolean,
453
- passive: boolean,
454
- }) => void,
455
- removeEventListener: (arg0: string, arg1: () => void, arg2: {
456
- capture: boolean,
457
- }) => void,
458
- },
459
- type: string, listener: () => void, useCapture: boolean, passive: boolean): void {
460
- this.removeEventListener(type, listener, {capture: useCapture});
461
- this.addEventListener(type, listener, {capture: useCapture, passive: !passive});
462
- }
463
- }
464
-
465
- origin(): string {
466
- return this.#origin;
467
- }
468
-
469
- markAsFramework(): void {
470
- this.#origin = EventListener.Origin.FRAMEWORK;
471
- }
472
-
473
- isScrollBlockingType(): boolean {
474
- return this.#type === 'touchstart' || this.#type === 'touchmove' || this.#type === 'mousewheel' ||
475
- this.#type === 'wheel';
476
- }
477
- }
478
-
479
- export namespace EventListener {
480
- export const enum Origin {
481
- RAW = 'Raw',
482
- FRAMEWORK = 'Framework',
483
- FRAMEWORK_USER = 'FrameworkUser',
484
- }
485
- }
486
-
487
- export class CSPViolationBreakpoint extends CategorizedBreakpoint {
488
- readonly #type: Protocol.DOMDebugger.CSPViolationType;
489
- constructor(category: Category, type: Protocol.DOMDebugger.CSPViolationType) {
490
- super(category, type);
491
- this.#type = type;
492
- }
493
-
494
- type(): Protocol.DOMDebugger.CSPViolationType {
495
- return this.#type;
496
- }
497
- }
498
-
499
- export class DOMEventListenerBreakpoint extends CategorizedBreakpoint {
500
- readonly eventTargetNames: string[];
501
- constructor(eventName: string, eventTargetNames: string[], category: Category) {
502
- super(category, eventName);
503
- this.eventTargetNames = eventTargetNames;
504
- }
505
-
506
- override setEnabled(enabled: boolean): void {
507
- if (this.enabled() === enabled) {
508
- return;
509
- }
510
- super.setEnabled(enabled);
511
- for (const model of TargetManager.instance().models(DOMDebuggerModel)) {
512
- this.updateOnModel(model);
513
- }
514
- }
515
-
516
- updateOnModel(model: DOMDebuggerModel): void {
517
- for (const eventTargetName of this.eventTargetNames) {
518
- if (this.enabled()) {
519
- void model.agent.invoke_setEventListenerBreakpoint({eventName: this.name, targetName: eventTargetName});
520
- } else {
521
- void model.agent.invoke_removeEventListenerBreakpoint({eventName: this.name, targetName: eventTargetName});
522
- }
523
- }
524
- }
525
-
526
- static readonly listener = 'listener:';
527
- }
528
-
529
- let domDebuggerManagerInstance: DOMDebuggerManager;
530
-
531
- export class DOMDebuggerManager implements SDKModelObserver<DOMDebuggerModel> {
532
- readonly #xhrBreakpointsSetting: Common.Settings.Setting<Array<{url: string, enabled: boolean}>>;
533
- readonly #xhrBreakpoints = new Map<string, boolean>();
534
-
535
- readonly #cspViolationsToBreakOn: CSPViolationBreakpoint[] = [];
536
- readonly #eventListenerBreakpoints: DOMEventListenerBreakpoint[] = [];
537
-
538
- constructor() {
539
- this.#xhrBreakpointsSetting = Common.Settings.Settings.instance().createLocalSetting('xhr-breakpoints', []);
540
- for (const breakpoint of this.#xhrBreakpointsSetting.get()) {
541
- this.#xhrBreakpoints.set(breakpoint.url, breakpoint.enabled);
542
- }
543
-
544
- this.#cspViolationsToBreakOn.push(new CSPViolationBreakpoint(
545
- Category.TRUSTED_TYPE_VIOLATION, Protocol.DOMDebugger.CSPViolationType.TrustedtypeSinkViolation));
546
- this.#cspViolationsToBreakOn.push(new CSPViolationBreakpoint(
547
- Category.TRUSTED_TYPE_VIOLATION, Protocol.DOMDebugger.CSPViolationType.TrustedtypePolicyViolation));
548
-
549
- this.createEventListenerBreakpoints(
550
- Category.MEDIA,
551
- [
552
- 'play', 'pause', 'playing', 'canplay', 'canplaythrough', 'seeking',
553
- 'seeked', 'timeupdate', 'ended', 'ratechange', 'durationchange', 'volumechange',
554
- 'loadstart', 'progress', 'suspend', 'abort', 'error', 'emptied',
555
- 'stalled', 'loadedmetadata', 'loadeddata', 'waiting',
556
- ],
557
- ['audio', 'video']);
558
- this.createEventListenerBreakpoints(
559
- Category.PICTURE_IN_PICTURE, ['enterpictureinpicture', 'leavepictureinpicture'], ['video']);
560
- this.createEventListenerBreakpoints(Category.PICTURE_IN_PICTURE, ['resize'], ['PictureInPictureWindow']);
561
- this.createEventListenerBreakpoints(Category.PICTURE_IN_PICTURE, ['enter'], ['documentPictureInPicture']);
562
- this.createEventListenerBreakpoints(
563
- Category.CLIPBOARD, ['copy', 'cut', 'paste', 'beforecopy', 'beforecut', 'beforepaste'], ['*']);
564
- this.createEventListenerBreakpoints(
565
- Category.CONTROL,
566
- [
567
- 'resize',
568
- 'scroll',
569
- 'scrollend',
570
- 'scrollsnapchange',
571
- 'scrollsnapchanging',
572
- 'zoom',
573
- 'focus',
574
- 'blur',
575
- 'select',
576
- 'change',
577
- 'submit',
578
- 'reset',
579
- ],
580
- ['*']);
581
- this.createEventListenerBreakpoints(Category.DEVICE, ['deviceorientation', 'devicemotion'], ['*']);
582
- this.createEventListenerBreakpoints(
583
- Category.DOM_MUTATION,
584
- [
585
- 'DOMActivate',
586
- 'DOMFocusIn',
587
- 'DOMFocusOut',
588
- 'DOMAttrModified',
589
- 'DOMCharacterDataModified',
590
- 'DOMNodeInserted',
591
- 'DOMNodeInsertedIntoDocument',
592
- 'DOMNodeRemoved',
593
- 'DOMNodeRemovedFromDocument',
594
- 'DOMSubtreeModified',
595
- 'DOMContentLoaded',
596
- ],
597
- ['*']);
598
- this.createEventListenerBreakpoints(
599
- Category.DRAG_DROP, ['drag', 'dragstart', 'dragend', 'dragenter', 'dragover', 'dragleave', 'drop'], ['*']);
600
-
601
- this.createEventListenerBreakpoints(Category.KEYBOARD, ['keydown', 'keyup', 'keypress', 'input'], ['*']);
602
- this.createEventListenerBreakpoints(
603
- Category.LOAD,
604
- [
605
- 'load',
606
- 'beforeunload',
607
- 'unload',
608
- 'abort',
609
- 'error',
610
- 'hashchange',
611
- 'popstate',
612
- 'navigate',
613
- 'navigatesuccess',
614
- 'navigateerror',
615
- 'currentchange',
616
- 'navigateto',
617
- 'navigatefrom',
618
- 'finish',
619
- 'dispose',
620
- ],
621
- ['*']);
622
- this.createEventListenerBreakpoints(
623
- Category.MOUSE,
624
- [
625
- 'auxclick',
626
- 'click',
627
- 'dblclick',
628
- 'mousedown',
629
- 'mouseup',
630
- 'mouseover',
631
- 'mousemove',
632
- 'mouseout',
633
- 'mouseenter',
634
- 'mouseleave',
635
- 'mousewheel',
636
- 'wheel',
637
- 'contextmenu',
638
- ],
639
- ['*']);
640
- this.createEventListenerBreakpoints(
641
- Category.POINTER,
642
- [
643
- 'pointerover',
644
- 'pointerout',
645
- 'pointerenter',
646
- 'pointerleave',
647
- 'pointerdown',
648
- 'pointerup',
649
- 'pointermove',
650
- 'pointercancel',
651
- 'gotpointercapture',
652
- 'lostpointercapture',
653
- 'pointerrawupdate',
654
- ],
655
- ['*']);
656
- this.createEventListenerBreakpoints(Category.TOUCH, ['touchstart', 'touchmove', 'touchend', 'touchcancel'], ['*']);
657
- this.createEventListenerBreakpoints(Category.WORKER, ['message', 'messageerror'], ['*']);
658
- this.createEventListenerBreakpoints(
659
- Category.XHR, ['readystatechange', 'load', 'loadstart', 'loadend', 'abort', 'error', 'progress', 'timeout'],
660
- ['xmlhttprequest', 'xmlhttprequestupload']);
661
-
662
- TargetManager.instance().observeModels(DOMDebuggerModel, this);
663
- }
664
-
665
- static instance(opts: {
666
- forceNew: boolean|null,
667
- } = {forceNew: null}): DOMDebuggerManager {
668
- const {forceNew} = opts;
669
- if (!domDebuggerManagerInstance || forceNew) {
670
- domDebuggerManagerInstance = new DOMDebuggerManager();
671
- }
672
-
673
- return domDebuggerManagerInstance;
674
- }
675
-
676
- cspViolationBreakpoints(): CSPViolationBreakpoint[] {
677
- return this.#cspViolationsToBreakOn.slice();
678
- }
679
-
680
- private createEventListenerBreakpoints(category: Category, eventNames: string[], eventTargetNames: string[]): void {
681
- for (const eventName of eventNames) {
682
- this.#eventListenerBreakpoints.push(new DOMEventListenerBreakpoint(eventName, eventTargetNames, category));
683
- }
684
- }
685
-
686
- resolveEventListenerBreakpoint({eventName, targetName}: EventListenerPausedDetailsAuxData): DOMEventListenerBreakpoint
687
- |null {
688
- const listenerPrefix = 'listener:';
689
- if (eventName.startsWith(listenerPrefix)) {
690
- eventName = eventName.substring(listenerPrefix.length);
691
- } else {
692
- return null;
693
- }
694
- targetName = (targetName || '*').toLowerCase();
695
- let result: DOMEventListenerBreakpoint|null = null;
696
- for (const breakpoint of this.#eventListenerBreakpoints) {
697
- if (eventName && breakpoint.name === eventName && breakpoint.eventTargetNames.indexOf(targetName) !== -1) {
698
- result = breakpoint;
699
- }
700
- if (!result && eventName && breakpoint.name === eventName && breakpoint.eventTargetNames.indexOf('*') !== -1) {
701
- result = breakpoint;
702
- }
703
- }
704
- return result;
705
- }
706
-
707
- eventListenerBreakpoints(): DOMEventListenerBreakpoint[] {
708
- return this.#eventListenerBreakpoints.slice();
709
- }
710
-
711
- updateCSPViolationBreakpoints(): void {
712
- const violationTypes = this.#cspViolationsToBreakOn.filter(v => v.enabled()).map(v => v.type());
713
- for (const model of TargetManager.instance().models(DOMDebuggerModel)) {
714
- this.updateCSPViolationBreakpointsForModel(model, violationTypes);
715
- }
716
- }
717
-
718
- private updateCSPViolationBreakpointsForModel(
719
- model: DOMDebuggerModel, violationTypes: Protocol.DOMDebugger.CSPViolationType[]): void {
720
- void model.agent.invoke_setBreakOnCSPViolation({violationTypes});
721
- }
722
-
723
- xhrBreakpoints(): Map<string, boolean> {
724
- return this.#xhrBreakpoints;
725
- }
726
-
727
- private saveXHRBreakpoints(): void {
728
- const breakpoints = [];
729
- for (const url of this.#xhrBreakpoints.keys()) {
730
- breakpoints.push({url, enabled: this.#xhrBreakpoints.get(url) || false});
731
- }
732
- this.#xhrBreakpointsSetting.set(breakpoints);
733
- }
734
-
735
- addXHRBreakpoint(url: string, enabled: boolean): void {
736
- this.#xhrBreakpoints.set(url, enabled);
737
- if (enabled) {
738
- for (const model of TargetManager.instance().models(DOMDebuggerModel)) {
739
- void model.agent.invoke_setXHRBreakpoint({url});
740
- }
741
- }
742
- this.saveXHRBreakpoints();
743
- }
744
-
745
- removeXHRBreakpoint(url: string): void {
746
- const enabled = this.#xhrBreakpoints.get(url);
747
- this.#xhrBreakpoints.delete(url);
748
- if (enabled) {
749
- for (const model of TargetManager.instance().models(DOMDebuggerModel)) {
750
- void model.agent.invoke_removeXHRBreakpoint({url});
751
- }
752
- }
753
- this.saveXHRBreakpoints();
754
- }
755
-
756
- toggleXHRBreakpoint(url: string, enabled: boolean): void {
757
- this.#xhrBreakpoints.set(url, enabled);
758
- for (const model of TargetManager.instance().models(DOMDebuggerModel)) {
759
- if (enabled) {
760
- void model.agent.invoke_setXHRBreakpoint({url});
761
- } else {
762
- void model.agent.invoke_removeXHRBreakpoint({url});
763
- }
764
- }
765
- this.saveXHRBreakpoints();
766
- }
767
-
768
- modelAdded(domDebuggerModel: DOMDebuggerModel): void {
769
- for (const url of this.#xhrBreakpoints.keys()) {
770
- if (this.#xhrBreakpoints.get(url)) {
771
- void domDebuggerModel.agent.invoke_setXHRBreakpoint({url});
772
- }
773
- }
774
- for (const breakpoint of this.#eventListenerBreakpoints) {
775
- if (breakpoint.enabled()) {
776
- breakpoint.updateOnModel(domDebuggerModel);
777
- }
778
- }
779
- const violationTypes = this.#cspViolationsToBreakOn.filter(v => v.enabled()).map(v => v.type());
780
- this.updateCSPViolationBreakpointsForModel(domDebuggerModel, violationTypes);
781
- }
782
-
783
- modelRemoved(_domDebuggerModel: DOMDebuggerModel): void {
784
- }
785
- }
786
-
787
- SDKModel.register(DOMDebuggerModel, {capabilities: Capability.DOM, autostart: false});