devtools-tracing 1.1.1 → 1.2.1

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 (527) hide show
  1. package/dist/index.d.ts +4 -0
  2. package/dist/index.js +28854 -0
  3. package/package.json +11 -8
  4. package/generate.ts +0 -649
  5. package/index.ts +0 -17
  6. package/lib/extension-api/ExtensionAPI.d.ts +0 -357
  7. package/lib/front_end/core/common/App.ts +0 -7
  8. package/lib/front_end/core/common/AppProvider.ts +0 -32
  9. package/lib/front_end/core/common/Base64.ts +0 -47
  10. package/lib/front_end/core/common/CharacterIdMap.ts +0 -30
  11. package/lib/front_end/core/common/Color.ts +0 -2506
  12. package/lib/front_end/core/common/ColorConverter.ts +0 -402
  13. package/lib/front_end/core/common/ColorUtils.ts +0 -252
  14. package/lib/front_end/core/common/Console.ts +0 -114
  15. package/lib/front_end/core/common/Debouncer.ts +0 -15
  16. package/lib/front_end/core/common/EventTarget.ts +0 -52
  17. package/lib/front_end/core/common/Gzip.ts +0 -74
  18. package/lib/front_end/core/common/JavaScriptMetaData.ts +0 -29
  19. package/lib/front_end/core/common/Lazy.ts +0 -31
  20. package/lib/front_end/core/common/Linkifier.ts +0 -55
  21. package/lib/front_end/core/common/MapWithDefault.ts +0 -26
  22. package/lib/front_end/core/common/Mutex.ts +0 -55
  23. package/lib/front_end/core/common/Object.ts +0 -145
  24. package/lib/front_end/core/common/ParsedURL.ts +0 -554
  25. package/lib/front_end/core/common/Progress.ts +0 -180
  26. package/lib/front_end/core/common/QueryParamHandler.ts +0 -7
  27. package/lib/front_end/core/common/ResolverBase.ts +0 -85
  28. package/lib/front_end/core/common/ResourceType.ts +0 -588
  29. package/lib/front_end/core/common/ReturnToPanel.ts +0 -17
  30. package/lib/front_end/core/common/Revealer.ts +0 -192
  31. package/lib/front_end/core/common/Runnable.ts +0 -41
  32. package/lib/front_end/core/common/SegmentedRange.ts +0 -87
  33. package/lib/front_end/core/common/SettingRegistration.ts +0 -339
  34. package/lib/front_end/core/common/Settings.ts +0 -1497
  35. package/lib/front_end/core/common/SimpleHistoryManager.ts +0 -124
  36. package/lib/front_end/core/common/StringOutputStream.ts +0 -26
  37. package/lib/front_end/core/common/TextDictionary.ts +0 -48
  38. package/lib/front_end/core/common/Throttler.ts +0 -99
  39. package/lib/front_end/core/common/Trie.ts +0 -152
  40. package/lib/front_end/core/common/Worker.ts +0 -60
  41. package/lib/front_end/core/common/common.ts +0 -81
  42. package/lib/front_end/core/host/AidaClient.ts +0 -733
  43. package/lib/front_end/core/host/GdpClient.ts +0 -316
  44. package/lib/front_end/core/host/InspectorFrontendHost.ts +0 -648
  45. package/lib/front_end/core/host/InspectorFrontendHostAPI.ts +0 -551
  46. package/lib/front_end/core/host/Platform.ts +0 -76
  47. package/lib/front_end/core/host/ResourceLoader.ts +0 -282
  48. package/lib/front_end/core/host/UserMetrics.ts +0 -1230
  49. package/lib/front_end/core/host/host.ts +0 -23
  50. package/lib/front_end/core/i18n/ByteUtilities.ts +0 -82
  51. package/lib/front_end/core/i18n/DevToolsLocale.ts +0 -87
  52. package/lib/front_end/core/i18n/NumberFormatter.ts +0 -82
  53. package/lib/front_end/core/i18n/i18n.ts +0 -17
  54. package/lib/front_end/core/i18n/i18nImpl.ts +0 -204
  55. package/lib/front_end/core/i18n/i18nTypes.ts +0 -10
  56. package/lib/front_end/core/i18n/locales.js +0 -14
  57. package/lib/front_end/core/i18n/time-utilities.ts +0 -174
  58. package/lib/front_end/core/platform/ArrayUtilities.ts +0 -271
  59. package/lib/front_end/core/platform/Brand.ts +0 -23
  60. package/lib/front_end/core/platform/Constructor.ts +0 -10
  61. package/lib/front_end/core/platform/DOMUtilities.ts +0 -138
  62. package/lib/front_end/core/platform/DateUtilities.ts +0 -15
  63. package/lib/front_end/core/platform/DevToolsPath.ts +0 -53
  64. package/lib/front_end/core/platform/KeyboardUtilities.ts +0 -38
  65. package/lib/front_end/core/platform/MapUtilities.ts +0 -95
  66. package/lib/front_end/core/platform/MimeType.ts +0 -175
  67. package/lib/front_end/core/platform/NumberUtilities.ts +0 -80
  68. package/lib/front_end/core/platform/StringUtilities.ts +0 -588
  69. package/lib/front_end/core/platform/Timing.ts +0 -17
  70. package/lib/front_end/core/platform/TypedArrayUtilities.ts +0 -189
  71. package/lib/front_end/core/platform/TypescriptUtilities.ts +0 -86
  72. package/lib/front_end/core/platform/UIString.ts +0 -39
  73. package/lib/front_end/core/platform/UserVisibleError.ts +0 -28
  74. package/lib/front_end/core/platform/platform.ts +0 -45
  75. package/lib/front_end/core/protocol_client/ConnectionTransport.ts +0 -26
  76. package/lib/front_end/core/protocol_client/InspectorBackend.ts +0 -1050
  77. package/lib/front_end/core/protocol_client/NodeURL.ts +0 -42
  78. package/lib/front_end/core/protocol_client/protocol_client.ts +0 -13
  79. package/lib/front_end/core/root/Runtime.ts +0 -609
  80. package/lib/front_end/core/root/root.ts +0 -6
  81. package/lib/front_end/core/sdk/AccessibilityModel.ts +0 -353
  82. package/lib/front_end/core/sdk/AnimationModel.ts +0 -1041
  83. package/lib/front_end/core/sdk/AutofillModel.ts +0 -184
  84. package/lib/front_end/core/sdk/CPUProfilerModel.ts +0 -148
  85. package/lib/front_end/core/sdk/CPUThrottlingManager.ts +0 -282
  86. package/lib/front_end/core/sdk/CSSContainerQuery.ts +0 -139
  87. package/lib/front_end/core/sdk/CSSFontFace.ts +0 -40
  88. package/lib/front_end/core/sdk/CSSLayer.ts +0 -30
  89. package/lib/front_end/core/sdk/CSSMatchedStyles.ts +0 -1646
  90. package/lib/front_end/core/sdk/CSSMedia.ts +0 -121
  91. package/lib/front_end/core/sdk/CSSMetadata.ts +0 -1647
  92. package/lib/front_end/core/sdk/CSSModel.ts +0 -1128
  93. package/lib/front_end/core/sdk/CSSProperty.ts +0 -384
  94. package/lib/front_end/core/sdk/CSSPropertyParser.ts +0 -681
  95. package/lib/front_end/core/sdk/CSSPropertyParserMatchers.ts +0 -1395
  96. package/lib/front_end/core/sdk/CSSQuery.ts +0 -72
  97. package/lib/front_end/core/sdk/CSSRule.ts +0 -465
  98. package/lib/front_end/core/sdk/CSSScope.ts +0 -30
  99. package/lib/front_end/core/sdk/CSSStartingStyle.ts +0 -29
  100. package/lib/front_end/core/sdk/CSSStyleDeclaration.ts +0 -313
  101. package/lib/front_end/core/sdk/CSSStyleSheetHeader.ts +0 -196
  102. package/lib/front_end/core/sdk/CSSSupports.ts +0 -33
  103. package/lib/front_end/core/sdk/CategorizedBreakpoint.ts +0 -64
  104. package/lib/front_end/core/sdk/ChildTargetManager.ts +0 -314
  105. package/lib/front_end/core/sdk/CompilerSourceMappingContentProvider.ts +0 -62
  106. package/lib/front_end/core/sdk/Connections.ts +0 -293
  107. package/lib/front_end/core/sdk/ConsoleModel.ts +0 -808
  108. package/lib/front_end/core/sdk/ConsoleModelTypes.ts +0 -15
  109. package/lib/front_end/core/sdk/Cookie.ts +0 -319
  110. package/lib/front_end/core/sdk/CookieModel.ts +0 -239
  111. package/lib/front_end/core/sdk/CookieParser.ts +0 -185
  112. package/lib/front_end/core/sdk/DOMDebuggerModel.ts +0 -787
  113. package/lib/front_end/core/sdk/DOMModel.ts +0 -1961
  114. package/lib/front_end/core/sdk/DebuggerModel.ts +0 -1605
  115. package/lib/front_end/core/sdk/EmulationModel.ts +0 -648
  116. package/lib/front_end/core/sdk/EnhancedTracesParser.ts +0 -515
  117. package/lib/front_end/core/sdk/EventBreakpointsModel.ts +0 -183
  118. package/lib/front_end/core/sdk/FrameAssociated.ts +0 -11
  119. package/lib/front_end/core/sdk/FrameManager.ts +0 -259
  120. package/lib/front_end/core/sdk/HeapProfilerModel.ts +0 -225
  121. package/lib/front_end/core/sdk/HttpReasonPhraseStrings.ts +0 -77
  122. package/lib/front_end/core/sdk/IOModel.ts +0 -91
  123. package/lib/front_end/core/sdk/IsolateManager.ts +0 -257
  124. package/lib/front_end/core/sdk/IssuesModel.ts +0 -70
  125. package/lib/front_end/core/sdk/LayerTreeBase.ts +0 -169
  126. package/lib/front_end/core/sdk/LogModel.ts +0 -56
  127. package/lib/front_end/core/sdk/NetworkManager.ts +0 -2823
  128. package/lib/front_end/core/sdk/NetworkRequest.ts +0 -2253
  129. package/lib/front_end/core/sdk/OverlayColorGenerator.ts +0 -52
  130. package/lib/front_end/core/sdk/OverlayModel.ts +0 -1011
  131. package/lib/front_end/core/sdk/OverlayPersistentHighlighter.ts +0 -522
  132. package/lib/front_end/core/sdk/PageLoad.ts +0 -35
  133. package/lib/front_end/core/sdk/PageResourceLoader.ts +0 -435
  134. package/lib/front_end/core/sdk/PaintProfiler.ts +0 -110
  135. package/lib/front_end/core/sdk/PerformanceMetricsModel.ts +0 -84
  136. package/lib/front_end/core/sdk/PreloadingModel.ts +0 -863
  137. package/lib/front_end/core/sdk/RehydratingConnection.ts +0 -386
  138. package/lib/front_end/core/sdk/RehydratingObject.ts +0 -66
  139. package/lib/front_end/core/sdk/RemoteObject.ts +0 -1160
  140. package/lib/front_end/core/sdk/Resource.ts +0 -232
  141. package/lib/front_end/core/sdk/ResourceTreeModel.ts +0 -1160
  142. package/lib/front_end/core/sdk/RuntimeModel.ts +0 -732
  143. package/lib/front_end/core/sdk/SDKModel.ts +0 -65
  144. package/lib/front_end/core/sdk/ScopeTreeCache.ts +0 -45
  145. package/lib/front_end/core/sdk/ScreenCaptureModel.ts +0 -255
  146. package/lib/front_end/core/sdk/Script.ts +0 -534
  147. package/lib/front_end/core/sdk/SecurityOriginManager.ts +0 -76
  148. package/lib/front_end/core/sdk/ServerSentEvents.ts +0 -80
  149. package/lib/front_end/core/sdk/ServerSentEventsProtocol.ts +0 -122
  150. package/lib/front_end/core/sdk/ServerTiming.ts +0 -260
  151. package/lib/front_end/core/sdk/ServiceWorkerCacheModel.ts +0 -377
  152. package/lib/front_end/core/sdk/ServiceWorkerManager.ts +0 -605
  153. package/lib/front_end/core/sdk/SourceMap.ts +0 -867
  154. package/lib/front_end/core/sdk/SourceMapCache.ts +0 -54
  155. package/lib/front_end/core/sdk/SourceMapFunctionRanges.ts +0 -156
  156. package/lib/front_end/core/sdk/SourceMapManager.ts +0 -239
  157. package/lib/front_end/core/sdk/SourceMapScopeChainEntry.ts +0 -189
  158. package/lib/front_end/core/sdk/SourceMapScopesInfo.ts +0 -508
  159. package/lib/front_end/core/sdk/StorageBucketsModel.ts +0 -204
  160. package/lib/front_end/core/sdk/StorageKeyManager.ts +0 -98
  161. package/lib/front_end/core/sdk/Target.ts +0 -332
  162. package/lib/front_end/core/sdk/TargetManager.ts +0 -453
  163. package/lib/front_end/core/sdk/TraceObject.ts +0 -61
  164. package/lib/front_end/core/sdk/WebAuthnModel.ts +0 -104
  165. package/lib/front_end/core/sdk/sdk.ts +0 -174
  166. package/lib/front_end/entrypoints/formatter_worker/FormatterActions.ts +0 -59
  167. package/lib/front_end/generated/InspectorBackendCommands.js +0 -1617
  168. package/lib/front_end/generated/SupportedCSSProperties.js +0 -7512
  169. package/lib/front_end/generated/protocol-proxy-api.d.ts +0 -5022
  170. package/lib/front_end/generated/protocol.ts +0 -22014
  171. package/lib/front_end/models/bindings/CSSWorkspaceBinding.ts +0 -318
  172. package/lib/front_end/models/bindings/CompilerScriptMapping.ts +0 -536
  173. package/lib/front_end/models/bindings/ContentProviderBasedProject.ts +0 -187
  174. package/lib/front_end/models/bindings/DebuggerLanguagePlugins.ts +0 -1197
  175. package/lib/front_end/models/bindings/DebuggerWorkspaceBinding.ts +0 -733
  176. package/lib/front_end/models/bindings/DefaultScriptMapping.ts +0 -141
  177. package/lib/front_end/models/bindings/FileUtils.ts +0 -228
  178. package/lib/front_end/models/bindings/LiveLocation.ts +0 -81
  179. package/lib/front_end/models/bindings/NetworkProject.ts +0 -157
  180. package/lib/front_end/models/bindings/PresentationConsoleMessageHelper.ts +0 -312
  181. package/lib/front_end/models/bindings/ResourceMapping.ts +0 -539
  182. package/lib/front_end/models/bindings/ResourceScriptMapping.ts +0 -491
  183. package/lib/front_end/models/bindings/ResourceUtils.ts +0 -103
  184. package/lib/front_end/models/bindings/SASSSourceMapping.ts +0 -222
  185. package/lib/front_end/models/bindings/StylesSourceMapping.ts +0 -316
  186. package/lib/front_end/models/bindings/TempFile.ts +0 -67
  187. package/lib/front_end/models/bindings/bindings.ts +0 -39
  188. package/lib/front_end/models/cpu_profile/CPUProfileDataModel.ts +0 -571
  189. package/lib/front_end/models/cpu_profile/ProfileTreeModel.ts +0 -103
  190. package/lib/front_end/models/cpu_profile/cpu_profile.ts +0 -11
  191. package/lib/front_end/models/formatter/FormatterWorkerPool.ts +0 -219
  192. package/lib/front_end/models/formatter/ScriptFormatter.ts +0 -112
  193. package/lib/front_end/models/formatter/formatter.ts +0 -8
  194. package/lib/front_end/models/source_map_scopes/NamesResolver.ts +0 -765
  195. package/lib/front_end/models/source_map_scopes/ScopeChainModel.ts +0 -84
  196. package/lib/front_end/models/source_map_scopes/source_map_scopes.ts +0 -11
  197. package/lib/front_end/models/stack_trace/StackTrace.ts +0 -53
  198. package/lib/front_end/models/stack_trace/StackTraceImpl.ts +0 -85
  199. package/lib/front_end/models/stack_trace/StackTraceModel.ts +0 -128
  200. package/lib/front_end/models/stack_trace/Trie.ts +0 -163
  201. package/lib/front_end/models/stack_trace/stack_trace.ts +0 -9
  202. package/lib/front_end/models/stack_trace/stack_trace_impl.ts +0 -13
  203. package/lib/front_end/models/text_utils/CodeMirrorUtils.ts +0 -37
  204. package/lib/front_end/models/text_utils/ContentData.ts +0 -199
  205. package/lib/front_end/models/text_utils/ContentProvider.ts +0 -68
  206. package/lib/front_end/models/text_utils/StaticContentProvider.ts +0 -49
  207. package/lib/front_end/models/text_utils/StreamingContentData.ts +0 -108
  208. package/lib/front_end/models/text_utils/Text.ts +0 -90
  209. package/lib/front_end/models/text_utils/TextCursor.ts +0 -44
  210. package/lib/front_end/models/text_utils/TextRange.ts +0 -266
  211. package/lib/front_end/models/text_utils/TextUtils.ts +0 -401
  212. package/lib/front_end/models/text_utils/WasmDisassembly.ts +0 -87
  213. package/lib/front_end/models/text_utils/text_utils.ts +0 -27
  214. package/lib/front_end/models/trace/EntityMapper.ts +0 -141
  215. package/lib/front_end/models/trace/EventsSerializer.ts +0 -101
  216. package/lib/front_end/models/trace/LanternComputationData.ts +0 -438
  217. package/lib/front_end/models/trace/ModelImpl.ts +0 -236
  218. package/lib/front_end/models/trace/Name.ts +0 -136
  219. package/lib/front_end/models/trace/Processor.ts +0 -652
  220. package/lib/front_end/models/trace/Styles.ts +0 -1138
  221. package/lib/front_end/models/trace/extras/FilmStrip.ts +0 -78
  222. package/lib/front_end/models/trace/extras/MainThreadActivity.ts +0 -86
  223. package/lib/front_end/models/trace/extras/ScriptDuplication.ts +0 -236
  224. package/lib/front_end/models/trace/extras/StackTraceForEvent.ts +0 -203
  225. package/lib/front_end/models/trace/extras/ThirdParties.ts +0 -164
  226. package/lib/front_end/models/trace/extras/TraceFilter.ts +0 -62
  227. package/lib/front_end/models/trace/extras/TraceTree.ts +0 -701
  228. package/lib/front_end/models/trace/extras/extras.ts +0 -11
  229. package/lib/front_end/models/trace/handlers/AnimationFramesHandler.ts +0 -128
  230. package/lib/front_end/models/trace/handlers/AnimationHandler.ts +0 -36
  231. package/lib/front_end/models/trace/handlers/AsyncJSCallsHandler.ts +0 -239
  232. package/lib/front_end/models/trace/handlers/AuctionWorkletsHandler.ts +0 -183
  233. package/lib/front_end/models/trace/handlers/DOMStatsHandler.ts +0 -31
  234. package/lib/front_end/models/trace/handlers/ExtensionTraceDataHandler.ts +0 -306
  235. package/lib/front_end/models/trace/handlers/FlowsHandler.ts +0 -175
  236. package/lib/front_end/models/trace/handlers/FramesHandler.ts +0 -571
  237. package/lib/front_end/models/trace/handlers/GPUHandler.ts +0 -50
  238. package/lib/front_end/models/trace/handlers/ImagePaintingHandler.ts +0 -183
  239. package/lib/front_end/models/trace/handlers/InitiatorsHandler.ts +0 -193
  240. package/lib/front_end/models/trace/handlers/InvalidationsHandler.ts +0 -168
  241. package/lib/front_end/models/trace/handlers/LargestImagePaintHandler.ts +0 -109
  242. package/lib/front_end/models/trace/handlers/LargestTextPaintHandler.ts +0 -35
  243. package/lib/front_end/models/trace/handlers/LayerTreeHandler.ts +0 -123
  244. package/lib/front_end/models/trace/handlers/LayoutShiftsHandler.ts +0 -573
  245. package/lib/front_end/models/trace/handlers/MemoryHandler.ts +0 -31
  246. package/lib/front_end/models/trace/handlers/MetaHandler.ts +0 -525
  247. package/lib/front_end/models/trace/handlers/ModelHandlers.ts +0 -34
  248. package/lib/front_end/models/trace/handlers/NetworkRequestsHandler.ts +0 -672
  249. package/lib/front_end/models/trace/handlers/PageFramesHandler.ts +0 -52
  250. package/lib/front_end/models/trace/handlers/PageLoadMetricsHandler.ts +0 -460
  251. package/lib/front_end/models/trace/handlers/RendererHandler.ts +0 -428
  252. package/lib/front_end/models/trace/handlers/SamplesHandler.ts +0 -271
  253. package/lib/front_end/models/trace/handlers/ScreenshotsHandler.ts +0 -122
  254. package/lib/front_end/models/trace/handlers/ScriptsHandler.ts +0 -336
  255. package/lib/front_end/models/trace/handlers/SelectorStatsHandler.ts +0 -110
  256. package/lib/front_end/models/trace/handlers/Threads.ts +0 -139
  257. package/lib/front_end/models/trace/handlers/UserInteractionsHandler.ts +0 -400
  258. package/lib/front_end/models/trace/handlers/UserTimingsHandler.ts +0 -233
  259. package/lib/front_end/models/trace/handlers/WarningsHandler.ts +0 -162
  260. package/lib/front_end/models/trace/handlers/WorkersHandler.ts +0 -45
  261. package/lib/front_end/models/trace/handlers/handlers.ts +0 -8
  262. package/lib/front_end/models/trace/handlers/helpers.ts +0 -196
  263. package/lib/front_end/models/trace/handlers/types.ts +0 -75
  264. package/lib/front_end/models/trace/helpers/Extensions.ts +0 -54
  265. package/lib/front_end/models/trace/helpers/Network.ts +0 -129
  266. package/lib/front_end/models/trace/helpers/SamplesIntegrator.ts +0 -544
  267. package/lib/front_end/models/trace/helpers/SyntheticEvents.ts +0 -87
  268. package/lib/front_end/models/trace/helpers/Timing.ts +0 -248
  269. package/lib/front_end/models/trace/helpers/Trace.ts +0 -928
  270. package/lib/front_end/models/trace/helpers/TreeHelpers.ts +0 -320
  271. package/lib/front_end/models/trace/helpers/helpers.ts +0 -11
  272. package/lib/front_end/models/trace/insights/CLSCulprits.ts +0 -668
  273. package/lib/front_end/models/trace/insights/Cache.ts +0 -269
  274. package/lib/front_end/models/trace/insights/Common.ts +0 -453
  275. package/lib/front_end/models/trace/insights/DOMSize.ts +0 -223
  276. package/lib/front_end/models/trace/insights/DocumentLatency.ts +0 -319
  277. package/lib/front_end/models/trace/insights/DuplicatedJavaScript.ts +0 -126
  278. package/lib/front_end/models/trace/insights/FontDisplay.ts +0 -119
  279. package/lib/front_end/models/trace/insights/ForcedReflow.ts +0 -220
  280. package/lib/front_end/models/trace/insights/INPBreakdown.ts +0 -171
  281. package/lib/front_end/models/trace/insights/ImageDelivery.ts +0 -348
  282. package/lib/front_end/models/trace/insights/LCPBreakdown.ts +0 -268
  283. package/lib/front_end/models/trace/insights/LCPDiscovery.ts +0 -237
  284. package/lib/front_end/models/trace/insights/LegacyJavaScript.ts +0 -138
  285. package/lib/front_end/models/trace/insights/Models.ts +0 -22
  286. package/lib/front_end/models/trace/insights/ModernHTTP.ts +0 -257
  287. package/lib/front_end/models/trace/insights/NetworkDependencyTree.ts +0 -726
  288. package/lib/front_end/models/trace/insights/RenderBlocking.ts +0 -257
  289. package/lib/front_end/models/trace/insights/SlowCSSSelector.ts +0 -175
  290. package/lib/front_end/models/trace/insights/Statistics.ts +0 -101
  291. package/lib/front_end/models/trace/insights/ThirdParties.ts +0 -130
  292. package/lib/front_end/models/trace/insights/Viewport.ts +0 -138
  293. package/lib/front_end/models/trace/insights/insights.ts +0 -10
  294. package/lib/front_end/models/trace/insights/types.ts +0 -157
  295. package/lib/front_end/models/trace/lantern/core/LanternError.ts +0 -7
  296. package/lib/front_end/models/trace/lantern/core/NetworkAnalyzer.ts +0 -619
  297. package/lib/front_end/models/trace/lantern/core/core.ts +0 -6
  298. package/lib/front_end/models/trace/lantern/graph/BaseNode.ts +0 -345
  299. package/lib/front_end/models/trace/lantern/graph/CPUNode.ts +0 -80
  300. package/lib/front_end/models/trace/lantern/graph/NetworkNode.ts +0 -101
  301. package/lib/front_end/models/trace/lantern/graph/PageDependencyGraph.ts +0 -636
  302. package/lib/front_end/models/trace/lantern/graph/graph.ts +0 -8
  303. package/lib/front_end/models/trace/lantern/lantern.ts +0 -17
  304. package/lib/front_end/models/trace/lantern/metrics/FirstContentfulPaint.ts +0 -187
  305. package/lib/front_end/models/trace/lantern/metrics/Interactive.ts +0 -88
  306. package/lib/front_end/models/trace/lantern/metrics/LargestContentfulPaint.ts +0 -92
  307. package/lib/front_end/models/trace/lantern/metrics/MaxPotentialFID.ts +0 -72
  308. package/lib/front_end/models/trace/lantern/metrics/Metric.ts +0 -126
  309. package/lib/front_end/models/trace/lantern/metrics/SpeedIndex.ts +0 -126
  310. package/lib/front_end/models/trace/lantern/metrics/TBTUtils.ts +0 -82
  311. package/lib/front_end/models/trace/lantern/metrics/TotalBlockingTime.ts +0 -112
  312. package/lib/front_end/models/trace/lantern/metrics/metrics.ts +0 -12
  313. package/lib/front_end/models/trace/lantern/simulation/ConnectionPool.ts +0 -150
  314. package/lib/front_end/models/trace/lantern/simulation/Constants.ts +0 -46
  315. package/lib/front_end/models/trace/lantern/simulation/DNSCache.ts +0 -61
  316. package/lib/front_end/models/trace/lantern/simulation/SimulationTimingMap.ts +0 -196
  317. package/lib/front_end/models/trace/lantern/simulation/Simulator.ts +0 -556
  318. package/lib/front_end/models/trace/lantern/simulation/TCPConnection.ts +0 -192
  319. package/lib/front_end/models/trace/lantern/simulation/simulation.ts +0 -10
  320. package/lib/front_end/models/trace/lantern/types/Lantern.ts +0 -220
  321. package/lib/front_end/models/trace/lantern/types/types.ts +0 -5
  322. package/lib/front_end/models/trace/trace.ts +0 -33
  323. package/lib/front_end/models/trace/types/Configuration.ts +0 -110
  324. package/lib/front_end/models/trace/types/Extensions.ts +0 -136
  325. package/lib/front_end/models/trace/types/File.ts +0 -281
  326. package/lib/front_end/models/trace/types/Overlays.ts +0 -138
  327. package/lib/front_end/models/trace/types/Timing.ts +0 -30
  328. package/lib/front_end/models/trace/types/TraceEvents.ts +0 -3277
  329. package/lib/front_end/models/trace/types/types.ts +0 -10
  330. package/lib/front_end/models/trace_source_maps_resolver/SourceMapsResolver.ts +0 -240
  331. package/lib/front_end/models/trace_source_maps_resolver/trace_source_maps_resolver.ts +0 -5
  332. package/lib/front_end/models/workspace/FileManager.ts +0 -97
  333. package/lib/front_end/models/workspace/IgnoreListManager.ts +0 -628
  334. package/lib/front_end/models/workspace/SearchConfig.ts +0 -149
  335. package/lib/front_end/models/workspace/UISourceCode.ts +0 -698
  336. package/lib/front_end/models/workspace/WorkspaceImpl.ts +0 -339
  337. package/lib/front_end/models/workspace/workspace.ts +0 -17
  338. package/lib/front_end/panels/timeline/TimelineUIUtils.ts +0 -1029
  339. package/lib/front_end/panels/timeline/extensions/ExtensionUI.ts +0 -49
  340. package/lib/front_end/panels/timeline/extensions/extensions.ts +0 -9
  341. package/lib/front_end/third_party/codemirror.next/LICENSE +0 -21
  342. package/lib/front_end/third_party/codemirror.next/README.chromium +0 -30
  343. package/lib/front_end/third_party/codemirror.next/bundle-tsconfig.json +0 -24
  344. package/lib/front_end/third_party/codemirror.next/bundle.ts +0 -135
  345. package/lib/front_end/third_party/codemirror.next/chunk/angular.js +0 -2
  346. package/lib/front_end/third_party/codemirror.next/chunk/angular.js.map +0 -1
  347. package/lib/front_end/third_party/codemirror.next/chunk/codemirror.js +0 -2
  348. package/lib/front_end/third_party/codemirror.next/chunk/codemirror.js.map +0 -1
  349. package/lib/front_end/third_party/codemirror.next/chunk/cpp.js +0 -2
  350. package/lib/front_end/third_party/codemirror.next/chunk/cpp.js.map +0 -1
  351. package/lib/front_end/third_party/codemirror.next/chunk/css.js +0 -2
  352. package/lib/front_end/third_party/codemirror.next/chunk/html.js +0 -4
  353. package/lib/front_end/third_party/codemirror.next/chunk/java.js +0 -2
  354. package/lib/front_end/third_party/codemirror.next/chunk/java.js.map +0 -1
  355. package/lib/front_end/third_party/codemirror.next/chunk/javascript.js +0 -2
  356. package/lib/front_end/third_party/codemirror.next/chunk/legacy.js +0 -2
  357. package/lib/front_end/third_party/codemirror.next/chunk/legacy.js.map +0 -1
  358. package/lib/front_end/third_party/codemirror.next/chunk/less.js +0 -2
  359. package/lib/front_end/third_party/codemirror.next/chunk/less.js.map +0 -1
  360. package/lib/front_end/third_party/codemirror.next/chunk/markdown.js +0 -2
  361. package/lib/front_end/third_party/codemirror.next/chunk/markdown.js.map +0 -1
  362. package/lib/front_end/third_party/codemirror.next/chunk/php.js +0 -2
  363. package/lib/front_end/third_party/codemirror.next/chunk/php.js.map +0 -1
  364. package/lib/front_end/third_party/codemirror.next/chunk/python.js +0 -2
  365. package/lib/front_end/third_party/codemirror.next/chunk/python.js.map +0 -1
  366. package/lib/front_end/third_party/codemirror.next/chunk/sass.js +0 -2
  367. package/lib/front_end/third_party/codemirror.next/chunk/sass.js.map +0 -1
  368. package/lib/front_end/third_party/codemirror.next/chunk/svelte.js +0 -2
  369. package/lib/front_end/third_party/codemirror.next/chunk/svelte.js.map +0 -1
  370. package/lib/front_end/third_party/codemirror.next/chunk/vue.js +0 -2
  371. package/lib/front_end/third_party/codemirror.next/chunk/vue.js.map +0 -1
  372. package/lib/front_end/third_party/codemirror.next/chunk/wast.js +0 -2
  373. package/lib/front_end/third_party/codemirror.next/chunk/wast.js.map +0 -1
  374. package/lib/front_end/third_party/codemirror.next/chunk/xml.js +0 -2
  375. package/lib/front_end/third_party/codemirror.next/chunk/xml.js.map +0 -1
  376. package/lib/front_end/third_party/codemirror.next/codemirror.next.d.ts +0 -8057
  377. package/lib/front_end/third_party/codemirror.next/codemirror.next.js +0 -2
  378. package/lib/front_end/third_party/codemirror.next/codemirror.next.js.map +0 -1
  379. package/lib/front_end/third_party/codemirror.next/package.json +0 -43
  380. package/lib/front_end/third_party/codemirror.next/rebuild.sh +0 -6
  381. package/lib/front_end/third_party/codemirror.next/rollup.config.mjs +0 -49
  382. package/lib/front_end/third_party/i18n/LICENSE +0 -202
  383. package/lib/front_end/third_party/i18n/README.chromium +0 -15
  384. package/lib/front_end/third_party/i18n/i18n-impl.ts +0 -61
  385. package/lib/front_end/third_party/i18n/i18n.ts +0 -11
  386. package/lib/front_end/third_party/i18n/localized-string-set.ts +0 -129
  387. package/lib/front_end/third_party/intl-messageformat/LICENSE +0 -33
  388. package/lib/front_end/third_party/intl-messageformat/README.chromium +0 -24
  389. package/lib/front_end/third_party/intl-messageformat/intl-messageformat-tsconfig.json +0 -16
  390. package/lib/front_end/third_party/intl-messageformat/intl-messageformat.ts +0 -6
  391. package/lib/front_end/third_party/intl-messageformat/package/LICENSE.md +0 -33
  392. package/lib/front_end/third_party/intl-messageformat/package/README.md +0 -3
  393. package/lib/front_end/third_party/intl-messageformat/package/index.d.ts +0 -6
  394. package/lib/front_end/third_party/intl-messageformat/package/index.d.ts.map +0 -1
  395. package/lib/front_end/third_party/intl-messageformat/package/index.js +0 -13
  396. package/lib/front_end/third_party/intl-messageformat/package/intl-messageformat.esm.d.ts +0 -5
  397. package/lib/front_end/third_party/intl-messageformat/package/intl-messageformat.esm.js +0 -1710
  398. package/lib/front_end/third_party/intl-messageformat/package/intl-messageformat.iife.js +0 -1815
  399. package/lib/front_end/third_party/intl-messageformat/package/lib/index.d.ts +0 -6
  400. package/lib/front_end/third_party/intl-messageformat/package/lib/index.d.ts.map +0 -1
  401. package/lib/front_end/third_party/intl-messageformat/package/lib/index.js +0 -10
  402. package/lib/front_end/third_party/intl-messageformat/package/lib/src/core.d.ts +0 -34
  403. package/lib/front_end/third_party/intl-messageformat/package/lib/src/core.d.ts.map +0 -1
  404. package/lib/front_end/third_party/intl-messageformat/package/lib/src/core.js +0 -229
  405. package/lib/front_end/third_party/intl-messageformat/package/lib/src/error.d.ts +0 -28
  406. package/lib/front_end/third_party/intl-messageformat/package/lib/src/error.d.ts.map +0 -1
  407. package/lib/front_end/third_party/intl-messageformat/package/lib/src/error.js +0 -48
  408. package/lib/front_end/third_party/intl-messageformat/package/lib/src/formatters.d.ts +0 -34
  409. package/lib/front_end/third_party/intl-messageformat/package/lib/src/formatters.d.ts.map +0 -1
  410. package/lib/front_end/third_party/intl-messageformat/package/lib/src/formatters.js +0 -179
  411. package/lib/front_end/third_party/intl-messageformat/package/package.json +0 -42
  412. package/lib/front_end/third_party/intl-messageformat/package/src/core.d.ts +0 -34
  413. package/lib/front_end/third_party/intl-messageformat/package/src/core.d.ts.map +0 -1
  414. package/lib/front_end/third_party/intl-messageformat/package/src/core.js +0 -230
  415. package/lib/front_end/third_party/intl-messageformat/package/src/error.d.ts +0 -28
  416. package/lib/front_end/third_party/intl-messageformat/package/src/error.d.ts.map +0 -1
  417. package/lib/front_end/third_party/intl-messageformat/package/src/error.js +0 -51
  418. package/lib/front_end/third_party/intl-messageformat/package/src/formatters.d.ts +0 -34
  419. package/lib/front_end/third_party/intl-messageformat/package/src/formatters.d.ts.map +0 -1
  420. package/lib/front_end/third_party/intl-messageformat/package/src/formatters.js +0 -182
  421. package/lib/front_end/third_party/intl-messageformat/package/src/icu-messageformat-parser/error.d.ts +0 -79
  422. package/lib/front_end/third_party/intl-messageformat/package/src/icu-messageformat-parser/index.d.ts +0 -15
  423. package/lib/front_end/third_party/intl-messageformat/package/src/icu-messageformat-parser/parser.d.ts +0 -153
  424. package/lib/front_end/third_party/intl-messageformat/package/src/icu-messageformat-parser/types.d.ts +0 -139
  425. package/lib/front_end/third_party/legacy-javascript/LICENSE +0 -202
  426. package/lib/front_end/third_party/legacy-javascript/README.chromium +0 -13
  427. package/lib/front_end/third_party/legacy-javascript/legacy-javascript-tsconfig.json +0 -8
  428. package/lib/front_end/third_party/legacy-javascript/legacy-javascript.ts +0 -3
  429. package/lib/front_end/third_party/legacy-javascript/lib/legacy-javascript.d.ts +0 -18
  430. package/lib/front_end/third_party/legacy-javascript/lib/legacy-javascript.js +0 -943
  431. package/lib/front_end/third_party/legacy-javascript/package.json +0 -8
  432. package/lib/front_end/third_party/legacy-javascript/rebuild.sh +0 -9
  433. package/lib/front_end/third_party/source-map-scopes-codec/LICENSE +0 -26
  434. package/lib/front_end/third_party/source-map-scopes-codec/README.chromium +0 -31
  435. package/lib/front_end/third_party/source-map-scopes-codec/package/CONTRIBUTING.md +0 -33
  436. package/lib/front_end/third_party/source-map-scopes-codec/package/LICENSE +0 -26
  437. package/lib/front_end/third_party/source-map-scopes-codec/package/README.md +0 -64
  438. package/lib/front_end/third_party/source-map-scopes-codec/package/_dist/src/builder/builder.d.ts +0 -62
  439. package/lib/front_end/third_party/source-map-scopes-codec/package/_dist/src/builder/builder.d.ts.map +0 -1
  440. package/lib/front_end/third_party/source-map-scopes-codec/package/_dist/src/builder/safe_builder.d.ts +0 -37
  441. package/lib/front_end/third_party/source-map-scopes-codec/package/_dist/src/builder/safe_builder.d.ts.map +0 -1
  442. package/lib/front_end/third_party/source-map-scopes-codec/package/_dist/src/decode/decode.d.ts +0 -29
  443. package/lib/front_end/third_party/source-map-scopes-codec/package/_dist/src/decode/decode.d.ts.map +0 -1
  444. package/lib/front_end/third_party/source-map-scopes-codec/package/_dist/src/encode/encode.d.ts +0 -8
  445. package/lib/front_end/third_party/source-map-scopes-codec/package/_dist/src/encode/encode.d.ts.map +0 -1
  446. package/lib/front_end/third_party/source-map-scopes-codec/package/_dist/src/mod.d.ts +0 -6
  447. package/lib/front_end/third_party/source-map-scopes-codec/package/_dist/src/mod.d.ts.map +0 -1
  448. package/lib/front_end/third_party/source-map-scopes-codec/package/deno.json +0 -21
  449. package/lib/front_end/third_party/source-map-scopes-codec/package/package.json +0 -14
  450. package/lib/front_end/third_party/source-map-scopes-codec/package/src/builder/builder.js +0 -196
  451. package/lib/front_end/third_party/source-map-scopes-codec/package/src/builder/builder.js.map +0 -1
  452. package/lib/front_end/third_party/source-map-scopes-codec/package/src/builder/builder.ts +0 -262
  453. package/lib/front_end/third_party/source-map-scopes-codec/package/src/builder/safe_builder.js +0 -235
  454. package/lib/front_end/third_party/source-map-scopes-codec/package/src/builder/safe_builder.js.map +0 -1
  455. package/lib/front_end/third_party/source-map-scopes-codec/package/src/builder/safe_builder.ts +0 -359
  456. package/lib/front_end/third_party/source-map-scopes-codec/package/src/codec.js +0 -39
  457. package/lib/front_end/third_party/source-map-scopes-codec/package/src/codec.js.map +0 -1
  458. package/lib/front_end/third_party/source-map-scopes-codec/package/src/codec.ts +0 -53
  459. package/lib/front_end/third_party/source-map-scopes-codec/package/src/decode/decode.js +0 -438
  460. package/lib/front_end/third_party/source-map-scopes-codec/package/src/decode/decode.js.map +0 -1
  461. package/lib/front_end/third_party/source-map-scopes-codec/package/src/decode/decode.ts +0 -539
  462. package/lib/front_end/third_party/source-map-scopes-codec/package/src/encode/encode.js +0 -23
  463. package/lib/front_end/third_party/source-map-scopes-codec/package/src/encode/encode.js.map +0 -1
  464. package/lib/front_end/third_party/source-map-scopes-codec/package/src/encode/encode.ts +0 -35
  465. package/lib/front_end/third_party/source-map-scopes-codec/package/src/encode/encoder.js +0 -257
  466. package/lib/front_end/third_party/source-map-scopes-codec/package/src/encode/encoder.js.map +0 -1
  467. package/lib/front_end/third_party/source-map-scopes-codec/package/src/encode/encoder.ts +0 -348
  468. package/lib/front_end/third_party/source-map-scopes-codec/package/src/mod.js +0 -8
  469. package/lib/front_end/third_party/source-map-scopes-codec/package/src/mod.js.map +0 -1
  470. package/lib/front_end/third_party/source-map-scopes-codec/package/src/mod.ts +0 -20
  471. package/lib/front_end/third_party/source-map-scopes-codec/package/src/scopes-tsconfig.json +0 -8
  472. package/lib/front_end/third_party/source-map-scopes-codec/package/src/scopes.d.ts +0 -184
  473. package/lib/front_end/third_party/source-map-scopes-codec/package/src/util.js +0 -9
  474. package/lib/front_end/third_party/source-map-scopes-codec/package/src/util.js.map +0 -1
  475. package/lib/front_end/third_party/source-map-scopes-codec/package/src/util.ts +0 -12
  476. package/lib/front_end/third_party/source-map-scopes-codec/package/src/vlq.js +0 -82
  477. package/lib/front_end/third_party/source-map-scopes-codec/package/src/vlq.js.map +0 -1
  478. package/lib/front_end/third_party/source-map-scopes-codec/package/src/vlq.ts +0 -99
  479. package/lib/front_end/third_party/source-map-scopes-codec/source-map-scopes-codec.ts +0 -5
  480. package/lib/front_end/third_party/third-party-web/LICENSE +0 -20
  481. package/lib/front_end/third_party/third-party-web/README.chromium +0 -13
  482. package/lib/front_end/third_party/third-party-web/lib/nostats-subset.d.ts +0 -2
  483. package/lib/front_end/third_party/third-party-web/lib/nostats-subset.js +0 -149
  484. package/lib/front_end/third_party/third-party-web/package/LICENSE +0 -20
  485. package/lib/front_end/third_party/third-party-web/package/README.md +0 -929
  486. package/lib/front_end/third_party/third-party-web/package/dist/entities-httparchive-nostats.json +0 -1
  487. package/lib/front_end/third_party/third-party-web/package/dist/entities-httparchive.json +0 -1
  488. package/lib/front_end/third_party/third-party-web/package/dist/entities-nostats.json +0 -1
  489. package/lib/front_end/third_party/third-party-web/package/dist/entities.json +0 -1
  490. package/lib/front_end/third_party/third-party-web/package/facades.md +0 -46
  491. package/lib/front_end/third_party/third-party-web/package/httparchive-nostats-subset.d.ts +0 -1
  492. package/lib/front_end/third_party/third-party-web/package/httparchive-nostats-subset.js +0 -1
  493. package/lib/front_end/third_party/third-party-web/package/httparchive-subset.d.ts +0 -1
  494. package/lib/front_end/third_party/third-party-web/package/httparchive-subset.js +0 -1
  495. package/lib/front_end/third_party/third-party-web/package/lib/__snapshots__/index.test.js.snap +0 -1006
  496. package/lib/front_end/third_party/third-party-web/package/lib/create-entity-finder-api.js +0 -139
  497. package/lib/front_end/third_party/third-party-web/package/lib/create-entity-finder-api.test.js +0 -44
  498. package/lib/front_end/third_party/third-party-web/package/lib/entities.test.js +0 -27
  499. package/lib/front_end/third_party/third-party-web/package/lib/index.d.ts +0 -34
  500. package/lib/front_end/third_party/third-party-web/package/lib/index.js +0 -3
  501. package/lib/front_end/third_party/third-party-web/package/lib/index.test.js +0 -246
  502. package/lib/front_end/third_party/third-party-web/package/lib/markdown/faqs.partial.md +0 -36
  503. package/lib/front_end/third_party/third-party-web/package/lib/markdown/goals.partial.md +0 -9
  504. package/lib/front_end/third_party/third-party-web/package/lib/markdown/methodology.partial.md +0 -5
  505. package/lib/front_end/third_party/third-party-web/package/lib/markdown/template.md +0 -151
  506. package/lib/front_end/third_party/third-party-web/package/lib/markdown/updates/2019-02-01.md +0 -1
  507. package/lib/front_end/third_party/third-party-web/package/lib/markdown/updates/2019-03-01.md +0 -1
  508. package/lib/front_end/third_party/third-party-web/package/lib/markdown/updates/2019-05-06.md +0 -1
  509. package/lib/front_end/third_party/third-party-web/package/lib/markdown/updates/2019-05-13.md +0 -14
  510. package/lib/front_end/third_party/third-party-web/package/lib/markdown/updates/2021-01-01.md +0 -1
  511. package/lib/front_end/third_party/third-party-web/package/lib/markdown/updates/2024-07-01.md +0 -3
  512. package/lib/front_end/third_party/third-party-web/package/lib/subsets/httparchive-nostats.d.ts +0 -1
  513. package/lib/front_end/third_party/third-party-web/package/lib/subsets/httparchive-nostats.js +0 -3
  514. package/lib/front_end/third_party/third-party-web/package/lib/subsets/httparchive.d.ts +0 -1
  515. package/lib/front_end/third_party/third-party-web/package/lib/subsets/httparchive.js +0 -3
  516. package/lib/front_end/third_party/third-party-web/package/lib/subsets/nostats.d.ts +0 -1
  517. package/lib/front_end/third_party/third-party-web/package/lib/subsets/nostats.js +0 -3
  518. package/lib/front_end/third_party/third-party-web/package/nostats-subset.d.ts +0 -1
  519. package/lib/front_end/third_party/third-party-web/package/nostats-subset.js +0 -1
  520. package/lib/front_end/third_party/third-party-web/package/package.json +0 -46
  521. package/lib/front_end/third_party/third-party-web/package.json +0 -8
  522. package/lib/front_end/third_party/third-party-web/rebuild.sh +0 -13
  523. package/lib/front_end/third_party/third-party-web/third-party-web-tsconfig.json +0 -8
  524. package/lib/front_end/third_party/third-party-web/third-party-web.ts +0 -3
  525. package/lib/front_end/ui/legacy/theme_support/ThemeSupport.ts +0 -222
  526. package/lib/front_end/ui/legacy/theme_support/theme_support.ts +0 -5
  527. package/patches/chrome-devtools-frontend+1.0.1533544.patch +0 -1716
@@ -1,428 +0,0 @@
1
- // Copyright 2022 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 * as Platform from '../../../core/platform/platform.js';
6
- import * as Helpers from '../helpers/helpers.js';
7
- import * as Types from '../types/types.js';
8
-
9
- import {data as auctionWorkletsData} from './AuctionWorkletsHandler.js';
10
- import * as HandlerHelpers from './helpers.js';
11
- import {data as metaHandlerData, type FrameProcessData} from './MetaHandler.js';
12
- import {data as networkRequestHandlerData} from './NetworkRequestsHandler.js';
13
- import {data as samplesHandlerData} from './SamplesHandler.js';
14
- import type {HandlerName} from './types.js';
15
-
16
- /**
17
- * This handler builds the hierarchy of trace events and profile calls
18
- * on each thread on each process.
19
- *
20
- * Throughout the code, trace events and profile calls are referred to
21
- * as "entries", but note they are different types of data. Trace events
22
- * come directly from the backend and it's the type the engine commonly
23
- * refers to. Profile calls on the other hand are built in the frontend,
24
- * and, for compatibility purposes, typed as an extension to the trace
25
- * event type.
26
- */
27
-
28
- let processes = new Map<Types.Events.ProcessID, RendererProcess>();
29
-
30
- let entityMappings: HandlerHelpers.EntityMappings = {
31
- eventsByEntity: new Map<HandlerHelpers.Entity, Types.Events.Event[]>(),
32
- entityByEvent: new Map<Types.Events.Event, HandlerHelpers.Entity>(),
33
- createdEntityCache: new Map<string, HandlerHelpers.Entity>(),
34
- entityByUrlCache: new Map<string, HandlerHelpers.Entity>(),
35
- };
36
-
37
- // We track the compositor tile worker thread name events so that at the end we
38
- // can return these keyed by the process ID. These are used in the frontend to
39
- // show the user the rasterization thread(s) on the main frame as tracks.
40
- let compositorTileWorkers = Array<{
41
- pid: Types.Events.ProcessID,
42
- tid: Types.Events.ThreadID,
43
- }>();
44
- let entryToNode = new Map<Types.Events.Event, Helpers.TreeHelpers.TraceEntryNode>();
45
-
46
- let completeEventStack: (Types.Events.SyntheticComplete)[] = [];
47
-
48
- let config: Types.Configuration.Configuration = Types.Configuration.defaults();
49
-
50
- const makeRendererProcess = (): RendererProcess => ({
51
- url: null,
52
- isOnMainFrame: false,
53
- threads: new Map(),
54
- });
55
-
56
- const makeRendererThread = (): RendererThread => ({
57
- name: null,
58
- entries: [],
59
- profileCalls: [],
60
- layoutEvents: [],
61
- recalcStyleEvents: [],
62
- });
63
-
64
- const getOrCreateRendererProcess =
65
- (processes: Map<Types.Events.ProcessID, RendererProcess>, pid: Types.Events.ProcessID): RendererProcess => {
66
- return Platform.MapUtilities.getWithDefault(processes, pid, makeRendererProcess);
67
- };
68
-
69
- const getOrCreateRendererThread = (process: RendererProcess, tid: Types.Events.ThreadID): RendererThread => {
70
- return Platform.MapUtilities.getWithDefault(process.threads, tid, makeRendererThread);
71
- };
72
-
73
- export function handleUserConfig(userConfig: Types.Configuration.Configuration): void {
74
- config = userConfig;
75
- }
76
-
77
- export function reset(): void {
78
- processes = new Map();
79
- entryToNode = new Map();
80
- entityMappings = {
81
- eventsByEntity: new Map<HandlerHelpers.Entity, Types.Events.Event[]>(),
82
- entityByEvent: new Map<Types.Events.Event, HandlerHelpers.Entity>(),
83
- createdEntityCache: new Map<string, HandlerHelpers.Entity>(),
84
- entityByUrlCache: new Map<string, HandlerHelpers.Entity>(),
85
- };
86
- completeEventStack = [];
87
- compositorTileWorkers = [];
88
- }
89
-
90
- export function handleEvent(event: Types.Events.Event): void {
91
- if (Types.Events.isThreadName(event) && event.args.name?.startsWith('CompositorTileWorker')) {
92
- compositorTileWorkers.push({
93
- pid: event.pid,
94
- tid: event.tid,
95
- });
96
- }
97
-
98
- if (Types.Events.isBegin(event) || Types.Events.isEnd(event)) {
99
- const process = getOrCreateRendererProcess(processes, event.pid);
100
- const thread = getOrCreateRendererThread(process, event.tid);
101
- const completeEvent = makeCompleteEvent(event);
102
- if (!completeEvent) {
103
- return;
104
- }
105
- thread.entries.push(completeEvent);
106
- return;
107
- }
108
-
109
- if (Types.Events.isInstant(event) || Types.Events.isComplete(event)) {
110
- const process = getOrCreateRendererProcess(processes, event.pid);
111
- const thread = getOrCreateRendererThread(process, event.tid);
112
- thread.entries.push(event);
113
- }
114
-
115
- if (Types.Events.isLayout(event)) {
116
- const process = getOrCreateRendererProcess(processes, event.pid);
117
- const thread = getOrCreateRendererThread(process, event.tid);
118
- thread.layoutEvents.push(event);
119
- }
120
-
121
- if (Types.Events.isRecalcStyle(event)) {
122
- const process = getOrCreateRendererProcess(processes, event.pid);
123
- const thread = getOrCreateRendererThread(process, event.tid);
124
- thread.recalcStyleEvents.push(event);
125
- }
126
- }
127
-
128
- export async function finalize(): Promise<void> {
129
- const {mainFrameId, rendererProcessesByFrame, threadsInProcess} = metaHandlerData();
130
- entityMappings = networkRequestHandlerData().entityMappings;
131
-
132
- assignMeta(processes, mainFrameId, rendererProcessesByFrame, threadsInProcess);
133
- sanitizeProcesses(processes);
134
- buildHierarchy(processes);
135
- sanitizeThreads(processes);
136
- }
137
-
138
- export function data(): RendererHandlerData {
139
- return {
140
- processes,
141
- compositorTileWorkers: gatherCompositorThreads(),
142
- entryToNode,
143
- entityMappings: {
144
- entityByEvent: entityMappings.entityByEvent,
145
- eventsByEntity: entityMappings.eventsByEntity,
146
- createdEntityCache: entityMappings.createdEntityCache,
147
- entityByUrlCache: entityMappings.entityByUrlCache,
148
- },
149
- };
150
- }
151
-
152
- function gatherCompositorThreads(): Map<Types.Events.ProcessID, Types.Events.ThreadID[]> {
153
- const threadsByProcess = new Map<Types.Events.ProcessID, Types.Events.ThreadID[]>();
154
- for (const worker of compositorTileWorkers) {
155
- const byProcess = threadsByProcess.get(worker.pid) || [];
156
- byProcess.push(worker.tid);
157
- threadsByProcess.set(worker.pid, byProcess);
158
- }
159
- return threadsByProcess;
160
- }
161
-
162
- /**
163
- * Steps through all the renderer processes we've located so far in the meta
164
- * handler, obtaining their URL, checking whether they are the main frame, and
165
- * collecting each one of their threads' name. This meta handler's data is
166
- * assigned to the renderer handler's data.
167
- */
168
- export function assignMeta(
169
- processes: Map<Types.Events.ProcessID, RendererProcess>, mainFrameId: string,
170
- rendererProcessesByFrame: FrameProcessData,
171
- threadsInProcess: Map<Types.Events.ProcessID, Map<Types.Events.ThreadID, Types.Events.ThreadName>>): void {
172
- assignOrigin(processes, rendererProcessesByFrame);
173
- assignIsMainFrame(processes, mainFrameId, rendererProcessesByFrame);
174
- assignThreadName(processes, threadsInProcess);
175
- }
176
-
177
- /**
178
- * Assigns origins to all threads in all processes.
179
- * @see assignMeta
180
- */
181
- export function assignOrigin(
182
- processes: Map<Types.Events.ProcessID, RendererProcess>, rendererProcessesByFrame: FrameProcessData): void {
183
- for (const renderProcessesByPid of rendererProcessesByFrame.values()) {
184
- for (const [pid, processWindows] of renderProcessesByPid) {
185
- for (const processInfo of processWindows.flat()) {
186
- const process = getOrCreateRendererProcess(processes, pid);
187
- // Sometimes a single process is responsible with rendering multiple
188
- // frames at the same time. For example, see https://crbug.com/1334563.
189
- // When this happens, we'd still like to assign a single url per process
190
- // so: 1) use the first frame rendered by this process as the url source
191
- // and 2) if the last url is "about:blank", use the next frame's url,
192
- // data from about:blank is irrelevant.
193
- if (process.url === null || process.url === 'about:blank') {
194
- // If we are here, it's because we care about this process and the URL. But before we store
195
- // it, we check if it is a valid URL by trying to create a URL object. If it isn't, we won't
196
- // set it, and this process will be filtered out later.
197
- try {
198
- new URL(processInfo.frame.url);
199
- process.url = processInfo.frame.url;
200
- } catch {
201
- process.url = null;
202
- }
203
- }
204
- }
205
- }
206
- }
207
- }
208
-
209
- /**
210
- * Assigns whether or not a thread is the main frame to all threads in all processes.
211
- * @see assignMeta
212
- */
213
- export function assignIsMainFrame(
214
- processes: Map<Types.Events.ProcessID, RendererProcess>, mainFrameId: string,
215
- rendererProcessesByFrame: FrameProcessData): void {
216
- for (const [frameId, renderProcessesByPid] of rendererProcessesByFrame) {
217
- for (const [pid] of renderProcessesByPid) {
218
- const process = getOrCreateRendererProcess(processes, pid);
219
- // We have this go in one direction; once a renderer has been flagged as
220
- // being on the main frame, we don't unset it to false if were to show up
221
- // in a subframe. Equally, if we already saw this renderer in a subframe,
222
- // but it becomes the main frame, the flag would get updated.
223
- if (frameId === mainFrameId) {
224
- process.isOnMainFrame = true;
225
- }
226
- }
227
- }
228
- }
229
-
230
- /**
231
- * Assigns the thread name to all threads in all processes.
232
- * @see assignMeta
233
- */
234
- export function assignThreadName(
235
- processes: Map<Types.Events.ProcessID, RendererProcess>,
236
- threadsInProcess: Map<Types.Events.ProcessID, Map<Types.Events.ThreadID, Types.Events.ThreadName>>): void {
237
- for (const [pid, process] of processes) {
238
- for (const [tid, threadInfo] of threadsInProcess.get(pid) ?? []) {
239
- const thread = getOrCreateRendererThread(process, tid);
240
- thread.name = threadInfo?.args.name ?? `${tid}`;
241
- }
242
- }
243
- }
244
-
245
- /**
246
- * Removes unneeded trace data opportunistically stored while handling events.
247
- * This currently does the following:
248
- * - Deletes processes with an unknown origin.
249
- */
250
- export function sanitizeProcesses(processes: Map<Types.Events.ProcessID, RendererProcess>): void {
251
- const auctionWorklets = auctionWorkletsData().worklets;
252
- const metaData = metaHandlerData();
253
- if (metaData.traceIsGeneric) {
254
- return;
255
- }
256
- for (const [pid, process] of processes) {
257
- // If the process had no url, or if it had a malformed url that could not be
258
- // parsed for some reason, or if it's an "about:" origin, delete it.
259
- // This is done because we don't really care about processes for which we
260
- // can't provide actionable insights to the user (e.g. about:blank pages).
261
- //
262
- // There is one exception; AuctionWorklet processes get parsed in a
263
- // separate handler, so at this point we check to see if the process has
264
- // been found by the AuctionWorkletsHandler, and if so we update the URL.
265
- // This ensures that we keep this process around and do not drop it due to
266
- // the lack of a URL.
267
- if (process.url === null) {
268
- const maybeWorklet = auctionWorklets.get(pid);
269
- if (maybeWorklet) {
270
- process.url = maybeWorklet.host;
271
- } else {
272
- processes.delete(pid);
273
- }
274
- continue;
275
- }
276
- }
277
- }
278
-
279
- /**
280
- * Removes unneeded trace data opportunistically stored while handling events.
281
- * This currently does the following:
282
- * - Deletes threads with no roots.
283
- */
284
- export function sanitizeThreads(processes: Map<Types.Events.ProcessID, RendererProcess>): void {
285
- for (const [, process] of processes) {
286
- for (const [tid, thread] of process.threads) {
287
- // If the thread has no roots, delete it. Otherwise, there's going to
288
- // be space taken, even though nothing is rendered in the track manager.
289
- if (!thread.tree?.roots.size) {
290
- process.threads.delete(tid);
291
- }
292
- }
293
- }
294
- }
295
-
296
- /**
297
- * Creates a hierarchical structure from the trace events. Each thread in each
298
- * process will contribute to their own individual hierarchy.
299
- *
300
- * The trace data comes in as a contiguous array of events, against which we
301
- * make a couple of assumptions:
302
- *
303
- * 1. Events are temporally-ordered in terms of start time (though they're
304
- * not necessarily ordered as such in the data stream).
305
- * 2. If event B's start and end times are within event A's time boundaries
306
- * we assume that A is the parent of B.
307
- *
308
- * Therefore we expect to reformulate something like:
309
- *
310
- * [ Task A ][ Task B ][ Task C ][ Task D ][ Task E ]
311
- *
312
- * Into something hierarchically-arranged like below:
313
- *
314
- * |------------- Task A -------------||-- Task E --|
315
- * |-- Task B --||-- Task D --|
316
- * |- Task C -|
317
- */
318
- export function buildHierarchy(
319
- processes: Map<Types.Events.ProcessID, RendererProcess>,
320
- options?: {filter: {has: (name: Types.Events.Name) => boolean}}): void {
321
- const samplesData = samplesHandlerData();
322
- for (const [pid, process] of processes) {
323
- for (const [tid, thread] of process.threads) {
324
- if (!thread.entries.length) {
325
- thread.tree = Helpers.TreeHelpers.makeEmptyTraceEntryTree();
326
- continue;
327
- }
328
- // Step 1. Massage the data.
329
- Helpers.Trace.sortTraceEventsInPlace(thread.entries);
330
- // Step 2. Inject profile calls from samples
331
- const samplesDataForThread = samplesData.profilesInProcess.get(pid)?.get(tid);
332
- if (samplesDataForThread) {
333
- const cpuProfile = samplesDataForThread.parsedProfile;
334
- const samplesIntegrator = cpuProfile &&
335
- new Helpers.SamplesIntegrator.SamplesIntegrator(
336
- cpuProfile, samplesDataForThread.profileId, pid, tid, config);
337
- const profileCalls = samplesIntegrator?.buildProfileCalls(thread.entries);
338
- if (samplesIntegrator && profileCalls) {
339
- thread.entries = Helpers.Trace.mergeEventsInOrder(thread.entries, profileCalls);
340
- thread.profileCalls = profileCalls;
341
-
342
- // We'll also inject the instant JSSample events (in debug mode only)
343
- const jsSamples = samplesIntegrator.jsSampleEvents;
344
- if (jsSamples.length) {
345
- thread.entries = Helpers.Trace.mergeEventsInOrder(thread.entries, jsSamples);
346
- }
347
- }
348
- }
349
- // Step 3. Build the tree.
350
- const treeData = Helpers.TreeHelpers.treify(thread.entries, options);
351
- thread.tree = treeData.tree;
352
- // Update the entryToNode map with the entries from this thread
353
- for (const [entry, node] of treeData.entryToNode) {
354
- entryToNode.set(entry, node);
355
- // Entity mapping is unrelated to the tree, but calling here as we need to call on every node anyway.
356
- HandlerHelpers.addEventToEntityMapping(entry, entityMappings);
357
- }
358
- }
359
- }
360
- }
361
-
362
- export function makeCompleteEvent(event: Types.Events.Begin|Types.Events.End): Types.Events.SyntheticComplete|null {
363
- if (Types.Events.isEnd(event)) {
364
- // Quietly ignore unbalanced close events, they're legit (we could
365
- // have missed start one).
366
- const beginEvent = completeEventStack.pop();
367
- if (!beginEvent) {
368
- return null;
369
- }
370
- if (beginEvent.name !== event.name || beginEvent.cat !== event.cat) {
371
- console.error(
372
- 'Begin/End events mismatch at ' + beginEvent.ts + ' (' + beginEvent.name + ') vs. ' + event.ts + ' (' +
373
- event.name + ')');
374
- return null;
375
- }
376
- // Update the begin event's duration using the timestamp of the end
377
- // event.
378
- beginEvent.dur = Types.Timing.Micro(event.ts - beginEvent.ts);
379
- return null;
380
- }
381
-
382
- // Create a synthetic event using the begin event, when we find the
383
- // matching end event later we will update its duration.
384
- const syntheticComplete: Types.Events.SyntheticComplete = {
385
- ...event,
386
- ph: Types.Events.Phase.COMPLETE,
387
- dur: Types.Timing.Micro(0),
388
- };
389
-
390
- completeEventStack.push(syntheticComplete);
391
- return syntheticComplete;
392
- }
393
-
394
- export function deps(): HandlerName[] {
395
- return ['Meta', 'Samples', 'AuctionWorklets', 'NetworkRequests'];
396
- }
397
-
398
- export interface RendererHandlerData {
399
- processes: Map<Types.Events.ProcessID, RendererProcess>;
400
- /**
401
- * A map of all compositor workers (which we show in the UI as Rasterizers)
402
- * by the process ID.
403
- */
404
- compositorTileWorkers: Map<Types.Events.ProcessID, Types.Events.ThreadID[]>;
405
- entryToNode: Map<Types.Events.Event, Helpers.TreeHelpers.TraceEntryNode>;
406
- entityMappings: HandlerHelpers.EntityMappings;
407
- }
408
-
409
- export interface RendererProcess {
410
- // In an ideal world this would be modelled as a URL, but URLs cannot be sent
411
- // between the main thread and workers, so we have to store it as a string.
412
- url: string|null;
413
- isOnMainFrame: boolean;
414
- threads: Map<Types.Events.ThreadID, RendererThread>;
415
- }
416
-
417
- export interface RendererThread {
418
- name: string|null;
419
- /**
420
- * Contains trace events and synthetic profile calls made from
421
- * samples.
422
- */
423
- entries: Types.Events.Event[];
424
- profileCalls: Types.Events.SyntheticProfileCall[];
425
- layoutEvents: Types.Events.Layout[];
426
- recalcStyleEvents: Types.Events.RecalcStyle[];
427
- tree?: Helpers.TreeHelpers.TraceEntryTree;
428
- }
@@ -1,271 +0,0 @@
1
- // Copyright 2022 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 * as Platform from '../../../core/platform/platform.js';
6
- import type * as Protocol from '../../../generated/protocol.js';
7
- import * as CPUProfile from '../../cpu_profile/cpu_profile.js';
8
- import * as Helpers from '../helpers/helpers.js';
9
- import * as Types from '../types/types.js';
10
-
11
- let profilesInProcess = new Map<Types.Events.ProcessID, Map<Types.Events.ThreadID, ProfileData>>();
12
- let entryToNode = new Map<Types.Events.Event, Helpers.TreeHelpers.TraceEntryNode>();
13
-
14
- // The profile head, containing its metadata like its start
15
- // time, comes in a "Profile" event. The sample data comes in
16
- // "ProfileChunk" events. We match these ProfileChunks with their head
17
- // using process and profile ids. However, in order to integrate sample
18
- // data with trace data, we need the thread id that owns each profile.
19
- // This thread id is extracted from the head event.
20
- // For this reason, we have a preprocessed data structure, where events
21
- // are matched by profile id, which we then finish processing to export
22
- // events matched by thread id.
23
- let preprocessedData = new Map<Types.Events.ProcessID, Map<Types.Events.ProfileID, PreprocessedData>>();
24
-
25
- function parseCPUProfileData(parseOptions: Types.Configuration.ParseOptions): void {
26
- for (const [processId, profiles] of preprocessedData) {
27
- for (const [profileId, preProcessedData] of profiles) {
28
- const threadId = preProcessedData.threadId;
29
- if (!preProcessedData.rawProfile.nodes.length || threadId === undefined) {
30
- continue;
31
- }
32
- const indexStack: number[] = [];
33
-
34
- const profileModel = new CPUProfile.CPUProfileDataModel.CPUProfileDataModel(preProcessedData.rawProfile);
35
- const profileTree = Helpers.TreeHelpers.makeEmptyTraceEntryTree();
36
- profileTree.maxDepth = profileModel.maxDepth;
37
-
38
- const finalizedData: ProfileData = {
39
- rawProfile: preProcessedData.rawProfile,
40
- parsedProfile: profileModel,
41
- profileCalls: [],
42
- profileTree,
43
- profileId,
44
- };
45
- const dataByThread = Platform.MapUtilities.getWithDefault(profilesInProcess, processId, () => new Map());
46
- dataByThread.set(threadId, finalizedData);
47
-
48
- // Only need to build pure JS ProfileCalls if we're parsing a CPU Profile, otherwise SamplesIntegrator does the work.
49
- if (parseOptions.isCPUProfile) {
50
- buildProfileCallsForCPUProfile();
51
- }
52
-
53
- function buildProfileCallsForCPUProfile(): void {
54
- profileModel.forEachFrame(openFrameCallback, closeFrameCallback);
55
-
56
- function openFrameCallback(
57
- depth: number, node: CPUProfile.ProfileTreeModel.ProfileNode, sampleIndex: number,
58
- timeStampMilliseconds: number): void {
59
- if (threadId === undefined) {
60
- return;
61
- }
62
- const ts = Helpers.Timing.milliToMicro(Types.Timing.Milli(timeStampMilliseconds));
63
- const nodeId = node.id as Helpers.TreeHelpers.TraceEntryNodeId;
64
-
65
- const profileCall = Helpers.Trace.makeProfileCall(node, profileId, sampleIndex, ts, processId, threadId);
66
- finalizedData.profileCalls.push(profileCall);
67
- indexStack.push(finalizedData.profileCalls.length - 1);
68
- const traceEntryNode = Helpers.TreeHelpers.makeEmptyTraceEntryNode(profileCall, nodeId);
69
- entryToNode.set(profileCall, traceEntryNode);
70
- traceEntryNode.depth = depth;
71
- if (indexStack.length === 1) {
72
- // First call in the stack is a root call.
73
- finalizedData.profileTree?.roots.add(traceEntryNode);
74
- }
75
- }
76
- function closeFrameCallback(
77
- _depth: number, _node: CPUProfile.ProfileTreeModel.ProfileNode, _sampleIndex: number,
78
- _timeStampMillis: number, durMs: number, selfTimeMs: number): void {
79
- const profileCallIndex = indexStack.pop();
80
- const profileCall = profileCallIndex !== undefined && finalizedData.profileCalls[profileCallIndex];
81
- if (!profileCall) {
82
- return;
83
- }
84
- const {callFrame, ts, pid, tid} = profileCall;
85
- const traceEntryNode = entryToNode.get(profileCall);
86
- if (callFrame === undefined || ts === undefined || pid === undefined || profileId === undefined ||
87
- tid === undefined || traceEntryNode === undefined) {
88
- return;
89
- }
90
- const dur = Helpers.Timing.milliToMicro(Types.Timing.Milli(durMs));
91
- const selfTime = Helpers.Timing.milliToMicro(Types.Timing.Milli(selfTimeMs));
92
- profileCall.dur = dur;
93
- traceEntryNode.selfTime = selfTime;
94
-
95
- const parentIndex = indexStack.at(-1);
96
- const parent = parentIndex !== undefined && finalizedData.profileCalls.at(parentIndex);
97
- const parentNode = parent && entryToNode.get(parent);
98
- if (!parentNode) {
99
- return;
100
- }
101
- traceEntryNode.parent = parentNode;
102
- parentNode.children.push(traceEntryNode);
103
- }
104
- }
105
- }
106
- }
107
- }
108
-
109
- export function reset(): void {
110
- preprocessedData = new Map();
111
- profilesInProcess = new Map();
112
- entryToNode = new Map();
113
- }
114
-
115
- export function handleEvent(event: Types.Events.Event): void {
116
- /**
117
- * A fake trace event created to support CDP.Profiler.Profiles in the
118
- * trace engine.
119
- */
120
- if (Types.Events.isSyntheticCpuProfile(event)) {
121
- // At the moment we are attaching to a single node target so we
122
- // should only get a single CPU profile. The values of the process
123
- // id and thread id are not really important, so we use the data
124
- // in the fake event. Should multi-thread CPU profiling be supported
125
- // we could use these fields in the event to pass thread info.
126
- const profileData = getOrCreatePreProcessedData(event.pid, event.id);
127
- profileData.rawProfile = event.args.data.cpuProfile;
128
- profileData.threadId = event.tid;
129
- return;
130
- }
131
-
132
- if (Types.Events.isProfile(event)) {
133
- // Do not use event.args.data.startTime as it is in CLOCK_MONOTONIC domain,
134
- // but use profileEvent.ts which has been translated to Perfetto's clock
135
- // domain. Also convert from ms to us.
136
- // Note: events are collected on a different thread than what's sampled.
137
- // The correct process and thread ids are specified by the profile.
138
- const profileData = getOrCreatePreProcessedData(event.pid, event.id);
139
- profileData.rawProfile.startTime = event.ts;
140
- profileData.threadId = event.tid;
141
- return;
142
- }
143
- if (Types.Events.isProfileChunk(event)) {
144
- const profileData = getOrCreatePreProcessedData(event.pid, event.id);
145
- const cdpProfile = profileData.rawProfile;
146
- const nodesAndSamples: Types.Events.PartialProfile = event.args?.data?.cpuProfile || {samples: []};
147
- const samples = nodesAndSamples?.samples || [];
148
- const traceIds = event.args?.data?.cpuProfile?.trace_ids;
149
- for (const n of nodesAndSamples?.nodes || []) {
150
- const lineNumber = typeof n.callFrame.lineNumber === 'undefined' ? -1 : n.callFrame.lineNumber;
151
- const columnNumber = typeof n.callFrame.columnNumber === 'undefined' ? -1 : n.callFrame.columnNumber;
152
-
153
- const scriptId = String(n.callFrame.scriptId) as Protocol.Runtime.ScriptId;
154
- const url = n.callFrame.url || '';
155
- const node = {
156
- ...n,
157
- callFrame: {
158
- ...n.callFrame,
159
- url,
160
- lineNumber,
161
- columnNumber,
162
- scriptId,
163
- },
164
- };
165
- cdpProfile.nodes.push(node);
166
- }
167
-
168
- const timeDeltas = event.args.data?.timeDeltas || [];
169
- const lines = event.args.data?.lines || Array(samples.length).fill(0);
170
- cdpProfile.samples?.push(...samples);
171
- cdpProfile.timeDeltas?.push(...timeDeltas);
172
- cdpProfile.lines?.push(...lines);
173
-
174
- if (traceIds) {
175
- cdpProfile.traceIds ??= {};
176
- for (const key in traceIds) {
177
- cdpProfile.traceIds[key] = traceIds[key];
178
- }
179
- }
180
-
181
- if (cdpProfile.samples && cdpProfile.timeDeltas && cdpProfile.samples.length !== cdpProfile.timeDeltas.length) {
182
- console.error('Failed to parse CPU profile.');
183
- return;
184
- }
185
- if (!cdpProfile.endTime && cdpProfile.timeDeltas) {
186
- const timeDeltas: number[] = cdpProfile.timeDeltas;
187
- cdpProfile.endTime = timeDeltas.reduce((x, y) => x + y, cdpProfile.startTime);
188
- }
189
- return;
190
- }
191
- }
192
-
193
- export async function finalize(parseOptions: Types.Configuration.ParseOptions = {}): Promise<void> {
194
- parseCPUProfileData(parseOptions);
195
- }
196
-
197
- export function data(): SamplesHandlerData {
198
- return {
199
- profilesInProcess,
200
- entryToNode,
201
- };
202
- }
203
-
204
- function getOrCreatePreProcessedData(
205
- processId: Types.Events.ProcessID, profileId: Types.Events.ProfileID): PreprocessedData {
206
- const profileById = Platform.MapUtilities.getWithDefault(preprocessedData, processId, () => new Map());
207
- return Platform.MapUtilities.getWithDefault<Types.Events.ProfileID, PreprocessedData>(
208
- profileById, profileId, () => ({
209
- rawProfile: {
210
- startTime: 0,
211
- endTime: 0,
212
- nodes: [],
213
- samples: [],
214
- timeDeltas: [],
215
- lines: [],
216
- },
217
- profileId,
218
- }));
219
- }
220
-
221
- export interface SamplesHandlerData {
222
- profilesInProcess: typeof profilesInProcess;
223
- entryToNode: typeof entryToNode;
224
- }
225
-
226
- export interface ProfileData {
227
- profileId: Types.Events.ProfileID;
228
- rawProfile: CPUProfile.CPUProfileDataModel.ExtendedProfile;
229
- parsedProfile: CPUProfile.CPUProfileDataModel.CPUProfileDataModel;
230
- /**
231
- * Contains the calls built from the CPU profile samples.
232
- * Note: This doesn't contain real trace events coming from the
233
- * browser, only calls synthetically typed as trace events for
234
- * compatibility, as such it only makes sense to use them in pure CPU
235
- * profiles.
236
- *
237
- * If you need the profile calls from a CPU profile obtained from a
238
- * web trace, use the data exported by the RendererHandler instead.
239
- */
240
- profileCalls: Types.Events.SyntheticProfileCall[];
241
- /**
242
- * Contains the call tree built from the CPU profile samples.
243
- * Similar to the profileCalls field, this tree does not contain nor
244
- * take into account trace events, as such it only makes sense to use
245
- * them in pure CPU profiles.
246
- */
247
- profileTree?: Helpers.TreeHelpers.TraceEntryTree;
248
- }
249
-
250
- interface PreprocessedData {
251
- rawProfile: CPUProfile.CPUProfileDataModel.ExtendedProfile;
252
- profileId: Types.Events.ProfileID;
253
- threadId?: Types.Events.ThreadID;
254
- }
255
-
256
- /**
257
- * Returns the name of a function for a given synthetic profile call.
258
- * We first look to find the ProfileNode representing this call, and use its
259
- * function name. This is preferred (and should always exist) because if we
260
- * resolve sourcemaps, we will update this name. If that name is not present,
261
- * we fall back to the function name that was in the callframe that we got
262
- * when parsing the profile's trace data.
263
- */
264
- export function getProfileCallFunctionName(data: SamplesHandlerData, entry: Types.Events.SyntheticProfileCall): string {
265
- const profile = data.profilesInProcess.get(entry.pid)?.get(entry.tid);
266
- const node = profile?.parsedProfile.nodeById(entry.nodeId);
267
- if (node?.functionName) {
268
- return node.functionName;
269
- }
270
- return entry.callFrame.functionName;
271
- }