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,1716 +0,0 @@
1
- diff --git a/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/helpers.ts b/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/helpers.ts
2
- index 62c5773..ff07f89 100644
3
- --- a/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/helpers.ts
4
- +++ b/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/helpers.ts
5
- @@ -3,13 +3,13 @@
6
- // found in the LICENSE file.
7
-
8
- import type * as Platform from '../../../core/platform/platform.js';
9
- -import * as ThirdPartyWeb from '../../../third_party/third-party-web/third-party-web.js';
10
- import * as Types from '../types/types.js';
11
-
12
- import type {TraceEventsForNetworkRequest} from './NetworkRequestsHandler.js';
13
- import type {HandlerData} from './types.js';
14
-
15
- -export type Entity = typeof ThirdPartyWeb.ThirdPartyWeb.entities[number]&{
16
- +export type Entity = {
17
- + name?: string,
18
- isUnrecognized?: boolean,
19
- };
20
-
21
- @@ -33,7 +33,7 @@ export function getEntityForUrl(url: string, entityMappings: EntityMappings): En
22
- if (cachedByUrl) {
23
- return cachedByUrl;
24
- }
25
- - const entity = ThirdPartyWeb.ThirdPartyWeb.getEntity(url) ?? makeUpEntity(entityMappings.createdEntityCache, url);
26
- + const entity = makeUpEntity(entityMappings.createdEntityCache, url);
27
- if (entity) {
28
- entityMappings.entityByUrlCache.set(url, entity);
29
- }
30
- @@ -105,17 +105,7 @@ export function makeUpEntity(entityCache: Map<string, Entity>, url: string): Ent
31
- return;
32
- }
33
-
34
- - // NOTE: Lighthouse uses a tld database to determine the root domain, but here
35
- - // we are using third party web's database. Doesn't really work for the case of classifying
36
- - // domains 3pweb doesn't know about, so it will just give us a guess.
37
- - const rootDomain = ThirdPartyWeb.ThirdPartyWeb.getRootDomain(url);
38
- - if (!rootDomain) {
39
- - return;
40
- - }
41
- -
42
- - if (entityCache.has(rootDomain)) {
43
- - return entityCache.get(rootDomain);
44
- - }
45
- + const rootDomain = URL.parse(url)?.hostname || url
46
-
47
- const unrecognizedEntity = {
48
- name: rootDomain,
49
- diff --git a/node_modules/chrome-devtools-frontend/front_end/panels/timeline/TimelineUIUtils.ts b/node_modules/chrome-devtools-frontend/front_end/panels/timeline/TimelineUIUtils.ts
50
- index 4fe7b92..9e9664b 100644
51
- --- a/node_modules/chrome-devtools-frontend/front_end/panels/timeline/TimelineUIUtils.ts
52
- +++ b/node_modules/chrome-devtools-frontend/front_end/panels/timeline/TimelineUIUtils.ts
53
- @@ -38,32 +38,12 @@ import * as Common from '../../core/common/common.js';
54
- import * as i18n from '../../core/i18n/i18n.js';
55
- import * as Platform from '../../core/platform/platform.js';
56
- import * as Root from '../../core/root/root.js';
57
- -import * as SDK from '../../core/sdk/sdk.js';
58
- import type * as Protocol from '../../generated/protocol.js';
59
- -import * as TextUtils from '../../models/text_utils/text_utils.js';
60
- import * as Trace from '../../models/trace/trace.js';
61
- import * as SourceMapsResolver from '../../models/trace_source_maps_resolver/trace_source_maps_resolver.js';
62
- -import * as TraceBounds from '../../services/trace_bounds/trace_bounds.js';
63
- -import * as Tracing from '../../services/tracing/tracing.js';
64
- -import * as CodeHighlighter from '../../ui/components/code_highlighter/code_highlighter.js';
65
- -// eslint-disable-next-line @devtools/es-modules-import
66
- -import codeHighlighterStyles from '../../ui/components/code_highlighter/codeHighlighter.css.js';
67
- -import * as PerfUI from '../../ui/legacy/components/perf_ui/perf_ui.js';
68
- -// eslint-disable-next-line @devtools/es-modules-import
69
- -import imagePreviewStyles from '../../ui/legacy/components/utils/imagePreview.css.js';
70
- -import * as LegacyComponents from '../../ui/legacy/components/utils/utils.js';
71
- -import * as UI from '../../ui/legacy/legacy.js';
72
- import * as ThemeSupport from '../../ui/legacy/theme_support/theme_support.js';
73
-
74
- -import {getDurationString} from './AppenderUtils.js';
75
- -import * as TimelineComponents from './components/components.js';
76
- import * as Extensions from './extensions/extensions.js';
77
- -import {ModificationsManager} from './ModificationsManager.js';
78
- -import {targetForEvent} from './TargetForEvent.js';
79
- -import * as ThirdPartyTreeView from './ThirdPartyTreeView.js';
80
- -import {TimelinePanel} from './TimelinePanel.js';
81
- -import {selectionFromEvent} from './TimelineSelection.js';
82
- -import * as Utils from './utils/utils.js';
83
-
84
- const UIStrings = {
85
- /**
86
- @@ -487,17 +467,6 @@ let eventDispatchDesciptors: EventDispatchTypeDescriptor[];
87
-
88
- let colorGenerator: Common.Color.Generator;
89
-
90
- -interface LinkifyLocationOptions {
91
- - scriptId: Protocol.Runtime.ScriptId|null;
92
- - url: string;
93
- - lineNumber: number;
94
- - target: SDK.Target.Target|null;
95
- - linkifier: LegacyComponents.Linkifier.Linkifier;
96
- - isFreshOrEnhanced?: boolean;
97
- - columnNumber?: number;
98
- - omitOrigin?: boolean;
99
- -}
100
- -
101
- type TimeRangeCategoryStats = Record<string, number>;
102
-
103
- const {SamplesIntegrator} = Trace.Helpers.SamplesIntegrator;
104
- @@ -517,9 +486,6 @@ export class TimelineUIUtils {
105
- static frameDisplayName(frame: Protocol.Runtime.CallFrame): string {
106
- const maybeResolvedData = SourceMapsResolver.SourceMapsResolver.resolvedCodeLocationForCallFrame(frame);
107
- const functionName = maybeResolvedData?.name || frame.functionName;
108
- - if (!SamplesIntegrator.isNativeRuntimeFrame(frame)) {
109
- - return UI.UIUtils.beautifyFunctionName(functionName);
110
- - }
111
- const nativeGroup = SamplesIntegrator.nativeGroup(functionName);
112
- switch (nativeGroup) {
113
- case SamplesIntegrator.NativeGroups.COMPILE:
114
- @@ -654,894 +620,6 @@ export class TimelineUIUtils {
115
- return frame.scriptId !== '0' && !(frame.url?.startsWith('native '));
116
- }
117
-
118
- - static async buildDetailsNodeForTraceEvent(
119
- - event: Trace.Types.Events.Event, target: SDK.Target.Target|null, linkifier: LegacyComponents.Linkifier.Linkifier,
120
- - isFreshOrEnhanced = false, parsedTrace: Trace.TraceModel.ParsedTrace): Promise<Node|null> {
121
- - let details: HTMLElement|HTMLSpanElement|(Element | null)|Text|null = null;
122
- - let detailsText;
123
- - // TODO(40287735): update this code with type-safe data checks.
124
- - // eslint-disable-next-line @typescript-eslint/no-explicit-any
125
- - const unsafeEventArgs = event.args as Record<string, any>;
126
- - // TODO(40287735): update this code with type-safe data checks.
127
- - // eslint-disable-next-line @typescript-eslint/no-explicit-any
128
- - const unsafeEventData = event.args?.data as Record<string, any>;
129
- -
130
- - switch (event.name) {
131
- - case Trace.Types.Events.Name.PAINT_IMAGE:
132
- - case Trace.Types.Events.Name.DECODE_IMAGE:
133
- - case Trace.Types.Events.Name.DECODE_LAZY_PIXEL_REF:
134
- - case Trace.Types.Events.Name.XHR_READY_STATE_CHANGED:
135
- - case Trace.Types.Events.Name.XHR_LOAD:
136
- - case Trace.Types.Events.Name.RESOURCE_WILL_SEND_REQUEST:
137
- - case Trace.Types.Events.Name.RESOURCE_SEND_REQUEST:
138
- - case Trace.Types.Events.Name.RESOURCE_RECEIVE_DATA:
139
- - case Trace.Types.Events.Name.RESOURCE_RECEIVE_RESPONSE:
140
- - case Trace.Types.Events.Name.RESOURCE_FINISH: {
141
- - const url = Trace.Handlers.Helpers.getNonResolvedURL(event, parsedTrace.data);
142
- - if (url) {
143
- - const options = {
144
- - tabStop: true,
145
- - showColumnNumber: false,
146
- - inlineFrameIndex: 0,
147
- - };
148
- - details = LegacyComponents.Linkifier.Linkifier.linkifyURL(url, options);
149
- - }
150
- - break;
151
- - }
152
- -
153
- - case Trace.Types.Events.Name.FUNCTION_CALL: {
154
- - details = document.createElement('span');
155
- -
156
- - // FunctionCall events have an args.data that could be a CallFrame, if all the details are present, so we check for that.
157
- - const callFrame = Trace.Helpers.Trace.getZeroIndexedStackTraceInEventPayload(event)?.at(0);
158
- - if (Trace.Types.Events.isFunctionCall(event) && callFrame) {
159
- - UI.UIUtils.createTextChild(
160
- - details,
161
- - TimelineUIUtils.frameDisplayName(
162
- - {...callFrame, scriptId: String(callFrame.scriptId) as Protocol.Runtime.ScriptId}));
163
- - }
164
- - const location = this.linkifyLocation({
165
- - scriptId: unsafeEventData['scriptId'],
166
- - url: unsafeEventData['url'],
167
- - lineNumber: callFrame?.lineNumber || 0,
168
- - columnNumber: callFrame?.columnNumber,
169
- - target,
170
- - isFreshOrEnhanced,
171
- - linkifier,
172
- - omitOrigin: true,
173
- - });
174
- - if (location) {
175
- - UI.UIUtils.createTextChild(details, ' @ ');
176
- - details.appendChild(location);
177
- - }
178
- - break;
179
- - }
180
- -
181
- - case Trace.Types.Events.Name.COMPILE_MODULE:
182
- - case Trace.Types.Events.Name.CACHE_MODULE: {
183
- - details = this.linkifyLocation({
184
- - scriptId: null,
185
- - url: unsafeEventArgs['fileName'],
186
- - lineNumber: 0,
187
- - columnNumber: 0,
188
- - target,
189
- - isFreshOrEnhanced,
190
- - linkifier,
191
- - });
192
- - break;
193
- - }
194
- -
195
- - case Trace.Types.Events.Name.COMPILE_SCRIPT:
196
- - case Trace.Types.Events.Name.CACHE_SCRIPT:
197
- - case Trace.Types.Events.Name.EVALUATE_SCRIPT: {
198
- - const url = unsafeEventData['url'];
199
- - if (url) {
200
- - const {lineNumber} = Trace.Helpers.Trace.getZeroIndexedLineAndColumnForEvent(event);
201
- - details = this.linkifyLocation({
202
- - scriptId: null,
203
- - url,
204
- - lineNumber: lineNumber || 0,
205
- - columnNumber: 0,
206
- - target,
207
- - isFreshOrEnhanced,
208
- - linkifier,
209
- - omitOrigin: true,
210
- - });
211
- - }
212
- - break;
213
- - }
214
- -
215
- - case Trace.Types.Events.Name.BACKGROUND_DESERIALIZE:
216
- - case Trace.Types.Events.Name.STREAMING_COMPILE_SCRIPT: {
217
- - const url = unsafeEventData['url'];
218
- - if (url) {
219
- - details = this.linkifyLocation({
220
- - scriptId: null,
221
- - url,
222
- - lineNumber: 0,
223
- - columnNumber: 0,
224
- - target,
225
- - isFreshOrEnhanced,
226
- - linkifier,
227
- - omitOrigin: true,
228
- - });
229
- - }
230
- - break;
231
- - }
232
- -
233
- - default: {
234
- - /**
235
- - * Some events have a stack trace which is extracted by default at @see TimelineUIUtils.generateCauses
236
- - * thus, we prevent extracting the stack trace again here.
237
- - */
238
- - if (Trace.Helpers.Trace.eventHasCategory(event, Trace.Types.Events.Categories.Console) ||
239
- - Trace.Types.Events.isUserTiming(event) || Trace.Types.Extensions.isSyntheticExtensionEntry(event) ||
240
- - Trace.Types.Events.isProfileCall(event)) {
241
- - detailsText = null;
242
- - } else {
243
- - details = this.linkifyTopCallFrame(event, target, linkifier, isFreshOrEnhanced) ?? null;
244
- - }
245
- - break;
246
- - }
247
- - }
248
- -
249
- - if (!details && detailsText) {
250
- - details = document.createTextNode(detailsText);
251
- - }
252
- - return details;
253
- - }
254
- -
255
- - static linkifyLocation(linkifyOptions: LinkifyLocationOptions): Element|null {
256
- - const {scriptId, url, lineNumber, columnNumber, isFreshOrEnhanced, linkifier, target, omitOrigin} = linkifyOptions;
257
- - const options = {
258
- - lineNumber,
259
- - columnNumber,
260
- - showColumnNumber: true,
261
- - inlineFrameIndex: 0,
262
- - className: 'timeline-details',
263
- - tabStop: true,
264
- - omitOrigin,
265
- - };
266
- - if (isFreshOrEnhanced) {
267
- - return linkifier.linkifyScriptLocation(
268
- - target, scriptId, url as Platform.DevToolsPath.UrlString, lineNumber, options);
269
- - }
270
- - return LegacyComponents.Linkifier.Linkifier.linkifyURL(url as Platform.DevToolsPath.UrlString, options);
271
- - }
272
- -
273
- - static linkifyTopCallFrame(
274
- - event: Trace.Types.Events.Event, target: SDK.Target.Target|null, linkifier: LegacyComponents.Linkifier.Linkifier,
275
- - isFreshOrEnhanced = false): Element|null {
276
- - let frame = Trace.Helpers.Trace.getZeroIndexedStackTraceInEventPayload(event)?.[0];
277
- - if (Trace.Types.Events.isProfileCall(event)) {
278
- - frame = event.callFrame;
279
- - }
280
- - if (!frame) {
281
- - return null;
282
- - }
283
- - const options = {
284
- - className: 'timeline-details',
285
- - tabStop: true,
286
- - inlineFrameIndex: 0,
287
- - showColumnNumber: true,
288
- - columnNumber: frame.columnNumber,
289
- - lineNumber: frame.lineNumber,
290
- - };
291
- - if (isFreshOrEnhanced) {
292
- - return linkifier.maybeLinkifyConsoleCallFrame(target, frame, {showColumnNumber: true, inlineFrameIndex: 0});
293
- - }
294
- - return LegacyComponents.Linkifier.Linkifier.linkifyURL(frame.url as Platform.DevToolsPath.UrlString, options);
295
- - }
296
- -
297
- - static buildDetailsNodeForMarkerEvents(event: Trace.Types.Events.MarkerEvent): HTMLElement {
298
- - let link = 'https://web.dev/user-centric-performance-metrics/';
299
- - let name = 'page performance metrics';
300
- - switch (event.name) {
301
- - case Trace.Types.Events.Name.MARK_LCP_CANDIDATE:
302
- - link = 'https://web.dev/lcp/';
303
- - name = 'largest contentful paint';
304
- - break;
305
- - case Trace.Types.Events.Name.MARK_FCP:
306
- - link = 'https://web.dev/first-contentful-paint/';
307
- - name = 'first contentful paint';
308
- - break;
309
- - default:
310
- - break;
311
- - }
312
- -
313
- - const html = UI.Fragment.html`<div>${
314
- - UI.XLink.XLink.create(
315
- - link, i18nString(UIStrings.learnMore), undefined, undefined, 'learn-more')} about ${name}.</div>`;
316
- - return html as HTMLElement;
317
- - }
318
- -
319
- - static buildConsumeCacheDetails(
320
- - eventData: {
321
- - consumedCacheSize?: number,
322
- - cacheRejected?: boolean,
323
- - cacheKind?: string,
324
- - },
325
- - contentHelper: TimelineDetailsContentHelper): void {
326
- - if (typeof eventData.consumedCacheSize === 'number') {
327
- - contentHelper.appendTextRow(
328
- - i18nString(UIStrings.compilationCacheStatus), i18nString(UIStrings.scriptLoadedFromCache));
329
- - contentHelper.appendTextRow(
330
- - i18nString(UIStrings.compilationCacheSize), i18n.ByteUtilities.bytesToString(eventData.consumedCacheSize));
331
- - const cacheKind = eventData.cacheKind;
332
- - if (cacheKind) {
333
- - contentHelper.appendTextRow(i18nString(UIStrings.compilationCacheKind), cacheKind);
334
- - }
335
- - } else if ('cacheRejected' in eventData && eventData['cacheRejected']) {
336
- - // Version mismatch or similar.
337
- - contentHelper.appendTextRow(
338
- - i18nString(UIStrings.compilationCacheStatus), i18nString(UIStrings.failedToLoadScriptFromCache));
339
- - } else {
340
- - contentHelper.appendTextRow(
341
- - i18nString(UIStrings.compilationCacheStatus), i18nString(UIStrings.scriptNotEligibleToBeLoadedFromCache));
342
- - }
343
- - }
344
- -
345
- - static maybeCreateLinkElement(url: string): Element|null {
346
- - const parsedURL = new Common.ParsedURL.ParsedURL(url);
347
- - if (!parsedURL.scheme) {
348
- - return null;
349
- - }
350
- -
351
- - const splitResult = Common.ParsedURL.ParsedURL.splitLineAndColumn(url);
352
- - if (!splitResult) {
353
- - return null;
354
- - }
355
- - const {url: rawURL, lineNumber, columnNumber} = splitResult;
356
- -
357
- - const options = {
358
- - lineNumber,
359
- - columnNumber,
360
- - showColumnNumber: true,
361
- - omitOrigin: true,
362
- - };
363
- -
364
- - return LegacyComponents.Linkifier.Linkifier.linkifyURL(rawURL as Platform.DevToolsPath.UrlString, options);
365
- - }
366
- -
367
- - /**
368
- - * Takes an input string and parses it to look for links. It does this by
369
- - * looking for URLs in the input string. The returned fragment will contain
370
- - * the same string but with any links wrapped in clickable links. The text
371
- - * of the link is the URL, so the visible string to the user is unchanged.
372
- - */
373
- - static parseStringForLinks(rawString: string): DocumentFragment {
374
- - const results = TextUtils.TextUtils.Utils.splitStringByRegexes(rawString, [URL_REGEX]);
375
- - const nodes = results.map(result => {
376
- - if (result.regexIndex === -1) {
377
- - return result.value;
378
- - }
379
- - return TimelineUIUtils.maybeCreateLinkElement(result.value) ?? result.value;
380
- - });
381
- -
382
- - const frag = document.createDocumentFragment();
383
- - frag.append(...nodes);
384
- - return frag;
385
- - }
386
- -
387
- - static async buildTraceEventDetails(
388
- - parsedTrace: Trace.TraceModel.ParsedTrace,
389
- - event: Trace.Types.Events.Event,
390
- - linkifier: LegacyComponents.Linkifier.Linkifier,
391
- - canShowPieChart: boolean,
392
- - entityMapper: Trace.EntityMapper.EntityMapper|null,
393
- - ): Promise<DocumentFragment> {
394
- - const maybeTarget = targetForEvent(parsedTrace, event);
395
- - const {duration} = Trace.Helpers.Timing.eventTimingsMicroSeconds(event);
396
- - const selfTime = getEventSelfTime(event, parsedTrace);
397
- - const relatedNodesMap = await Utils.EntryNodes.relatedDOMNodesForEvent(
398
- - parsedTrace,
399
- - event,
400
- - );
401
- - let entityAppended = false;
402
- -
403
- - if (maybeTarget) {
404
- - // @ts-expect-error TODO(crbug.com/1011811): Remove symbol usage.
405
- - if (typeof event[previewElementSymbol] === 'undefined') {
406
- - let previewElement: (Element|null)|null = null;
407
- - const url = Trace.Handlers.Helpers.getNonResolvedURL(event, parsedTrace.data);
408
- - if (url) {
409
- - previewElement = await LegacyComponents.ImagePreview.ImagePreview.build(url, false, {
410
- - imageAltText: LegacyComponents.ImagePreview.ImagePreview.defaultAltTextForImageURL(url),
411
- - precomputedFeatures: undefined,
412
- - align: LegacyComponents.ImagePreview.Align.START,
413
- - });
414
- - } else if (Trace.Types.Events.isPaint(event)) {
415
- - previewElement = await TimelineUIUtils.buildPicturePreviewContent(parsedTrace, event, maybeTarget);
416
- - }
417
- - // @ts-expect-error TODO(crbug.com/1011811): Remove symbol usage.
418
- - event[previewElementSymbol] = previewElement;
419
- - }
420
- - }
421
- -
422
- - // This message may vary per event.name;
423
- - let relatedNodeLabel;
424
- -
425
- - const contentHelper = new TimelineDetailsContentHelper(targetForEvent(parsedTrace, event), linkifier);
426
- -
427
- - const defaultColorForEvent = this.eventColor(event);
428
- - const isMarker = parsedTrace && isMarkerEvent(parsedTrace, event);
429
- - const color = isMarker ? TimelineUIUtils.markerStyleForEvent(event).color : defaultColorForEvent;
430
- -
431
- - contentHelper.addSection(TimelineUIUtils.eventTitle(event), color, event);
432
- -
433
- - // TODO: as part of the removal of the old engine, produce a typesafe way
434
- - // to look up args and data for events.
435
- - // eslint-disable-next-line @typescript-eslint/no-explicit-any
436
- - const unsafeEventArgs = event.args as Record<string, any>;
437
- - // eslint-disable-next-line @typescript-eslint/no-explicit-any
438
- - const unsafeEventData = event.args?.data as Record<string, any>;
439
- - const initiator = parsedTrace.data.Initiators.eventToInitiator.get(event) ?? null;
440
- - const initiatorFor = parsedTrace.data.Initiators.initiatorToEvents.get(event) ?? null;
441
- -
442
- - let url: Platform.DevToolsPath.UrlString|null = null;
443
- -
444
- - if (parsedTrace) {
445
- - const warnings = TimelineComponents.DetailsView.buildWarningElementsForEvent(event, parsedTrace);
446
- - for (const warning of warnings) {
447
- - contentHelper.appendElementRow(i18nString(UIStrings.warning), warning, true);
448
- - }
449
- - }
450
- -
451
- - // Add timestamp to user timings, including custom extensibility markers
452
- - if (Trace.Helpers.Trace.eventHasCategory(event, Trace.Types.Events.Categories.UserTiming) ||
453
- - Trace.Types.Extensions.isSyntheticExtensionEntry(event)) {
454
- - const adjustedEventTimeStamp = timeStampForEventAdjustedForClosestNavigationIfPossible(
455
- - event,
456
- - parsedTrace,
457
- - );
458
- - contentHelper.appendTextRow(
459
- - i18nString(UIStrings.timestamp), i18n.TimeUtilities.preciseMillisToString(adjustedEventTimeStamp, 1));
460
- - }
461
- -
462
- - // Only show total time and self time for events with non-zero durations.
463
- - if (duration !== 0 && !Number.isNaN(duration)) {
464
- - const timeStr = getDurationString(duration, selfTime);
465
- - contentHelper.appendTextRow(i18nString(UIStrings.duration), timeStr);
466
- - }
467
- -
468
- - if (Trace.Types.Events.isPerformanceMark(event) && event.args.data?.detail) {
469
- - const detailContainer = TimelineUIUtils.renderObjectJson(JSON.parse(event.args.data?.detail));
470
- - contentHelper.appendElementRow(i18nString(UIStrings.details), detailContainer);
471
- - }
472
- - if (Trace.Types.Events.isSyntheticUserTiming(event) && event.args?.data?.beginEvent.args.detail) {
473
- - const detailContainer = TimelineUIUtils.renderObjectJson(JSON.parse(event.args?.data?.beginEvent.args.detail));
474
- - contentHelper.appendElementRow(i18nString(UIStrings.details), detailContainer);
475
- - }
476
- -
477
- - if (parsedTrace.data.Meta.traceIsGeneric) {
478
- - TimelineUIUtils.renderEventJson(event, contentHelper);
479
- - return contentHelper.fragment;
480
- - }
481
- -
482
- - if (Trace.Types.Events.isV8Compile(event)) {
483
- - url = event.args.data?.url as Platform.DevToolsPath.UrlString;
484
- - if (url) {
485
- - const {lineNumber, columnNumber} = Trace.Helpers.Trace.getZeroIndexedLineAndColumnForEvent(event);
486
- - contentHelper.appendLocationRow(
487
- - i18nString(UIStrings.script), url, lineNumber || 0, columnNumber, undefined, true);
488
- - const originWithEntity = this.getOriginWithEntity(entityMapper, parsedTrace, event);
489
- - if (originWithEntity) {
490
- - contentHelper.appendElementRow(i18nString(UIStrings.origin), originWithEntity);
491
- - }
492
- - entityAppended = true;
493
- - }
494
- - const isEager = Boolean(event.args.data?.eager);
495
- - if (isEager) {
496
- - contentHelper.appendTextRow(i18nString(UIStrings.eagerCompile), true);
497
- - }
498
- -
499
- - const isStreamed = Boolean(event.args.data?.streamed);
500
- - contentHelper.appendTextRow(
501
- - i18nString(UIStrings.streamed),
502
- - isStreamed + (isStreamed ? '' : `: ${event.args.data?.notStreamedReason || ''}`));
503
- - if (event.args.data) {
504
- - TimelineUIUtils.buildConsumeCacheDetails(event.args.data, contentHelper);
505
- - }
506
- - }
507
- -
508
- - if (Trace.Types.Extensions.isSyntheticExtensionEntry(event)) {
509
- - // isSyntheticExtensionEntries can be any of: perf.measure, perf.mark or console.timeStamp.
510
- - const userDetail = structuredClone(event.userDetail) as Record<string, Trace.Types.Extensions.JsonValue>;
511
- - if (userDetail && Object.keys(userDetail).length) {
512
- - // E.g. console.timeStamp(name, start, end, track, trackGroup, color,
513
- - // {url: 'foo-extension://node/1', description: 'Node'});
514
- - const hasExclusiveLink = typeof userDetail === 'object' && typeof userDetail.url === 'string' &&
515
- - typeof userDetail.description === 'string';
516
- - if (hasExclusiveLink && Boolean(Root.Runtime.hostConfig.devToolsDeepLinksViaExtensibilityApi?.enabled)) {
517
- - const linkElement = this.maybeCreateLinkElement(String(userDetail.url));
518
- - if (linkElement) {
519
- - contentHelper.appendElementRow(String(userDetail.description), linkElement);
520
- - // Now remove so we don't render them in renderObjectJson.
521
- - delete userDetail.url;
522
- - delete userDetail.description;
523
- - }
524
- - }
525
- - if (Object.keys(userDetail).length) {
526
- - // E.g., performance.measure(name, {detail: {important: 42, devtools: {}}})
527
- - const detailContainer = TimelineUIUtils.renderObjectJson(userDetail);
528
- - contentHelper.appendElementRow(i18nString(UIStrings.details), detailContainer);
529
- - }
530
- - }
531
- -
532
- - // E.g. performance.measure(name, {detail: {devtools: {properties: ['Key', 'Value']}}})
533
- - if (event.devtoolsObj.properties) {
534
- - for (const [key, value] of event.devtoolsObj.properties || []) {
535
- - const renderedValue = typeof value === 'string' ? TimelineUIUtils.parseStringForLinks(value) :
536
- - TimelineUIUtils.renderObjectJson(value);
537
- - contentHelper.appendElementRow(key, renderedValue);
538
- - }
539
- - }
540
- - }
541
- -
542
- - const isFreshOrEnhanced =
543
- - Boolean(parsedTrace && Tracing.FreshRecording.Tracker.instance().recordingIsFreshOrEnhanced(parsedTrace));
544
- -
545
- - switch (event.name) {
546
- - case Trace.Types.Events.Name.GC:
547
- - case Trace.Types.Events.Name.MAJOR_GC:
548
- - case Trace.Types.Events.Name.MINOR_GC: {
549
- - const delta = unsafeEventArgs['usedHeapSizeBefore'] - unsafeEventArgs['usedHeapSizeAfter'];
550
- - contentHelper.appendTextRow(i18nString(UIStrings.collected), i18n.ByteUtilities.bytesToString(delta));
551
- - break;
552
- - }
553
- -
554
- - case Trace.Types.Events.Name.PROFILE_CALL: {
555
- - const profileCall = event as Trace.Types.Events.SyntheticProfileCall;
556
- - const resolvedURL = SourceMapsResolver.SourceMapsResolver.resolvedURLForEntry(parsedTrace, profileCall);
557
- - if (!resolvedURL) {
558
- - break;
559
- - }
560
- - const callFrame = profileCall.callFrame;
561
- - // Render the URL with its location content.
562
- - contentHelper.appendLocationRow(
563
- - i18nString(UIStrings.source), resolvedURL, callFrame.lineNumber || 0, callFrame.columnNumber, undefined,
564
- - true);
565
- - const originWithEntity = this.getOriginWithEntity(entityMapper, parsedTrace, profileCall);
566
- - if (originWithEntity) {
567
- - contentHelper.appendElementRow(i18nString(UIStrings.origin), originWithEntity);
568
- - }
569
- - entityAppended = true;
570
- - break;
571
- - }
572
- - case Trace.Types.Events.Name.FUNCTION_CALL: {
573
- - const detailsNode = await TimelineUIUtils.buildDetailsNodeForTraceEvent(
574
- - event, targetForEvent(parsedTrace, event), linkifier, isFreshOrEnhanced, parsedTrace);
575
- - if (detailsNode) {
576
- - contentHelper.appendElementRow(i18nString(UIStrings.function), detailsNode);
577
- - const originWithEntity = this.getOriginWithEntity(entityMapper, parsedTrace, event);
578
- - if (originWithEntity) {
579
- - contentHelper.appendElementRow(i18nString(UIStrings.origin), originWithEntity);
580
- - }
581
- - entityAppended = true;
582
- - }
583
- - break;
584
- - }
585
- -
586
- - case Trace.Types.Events.Name.TIMER_FIRE:
587
- - case Trace.Types.Events.Name.TIMER_INSTALL:
588
- - case Trace.Types.Events.Name.TIMER_REMOVE: {
589
- - contentHelper.appendTextRow(i18nString(UIStrings.timerId), unsafeEventData.timerId);
590
- -
591
- - if (event.name === Trace.Types.Events.Name.TIMER_INSTALL) {
592
- - contentHelper.appendTextRow(
593
- - i18nString(UIStrings.timeout), i18n.TimeUtilities.millisToString(unsafeEventData['timeout']));
594
- - contentHelper.appendTextRow(i18nString(UIStrings.repeats), !unsafeEventData['singleShot']);
595
- - }
596
- - break;
597
- - }
598
- -
599
- - case Trace.Types.Events.Name.SCHEDULE_POST_TASK_CALLBACK:
600
- - case Trace.Types.Events.Name.RUN_POST_TASK_CALLBACK: {
601
- - contentHelper.appendTextRow(
602
- - i18nString(UIStrings.delay), i18n.TimeUtilities.millisToString(unsafeEventData['delay']));
603
- - contentHelper.appendTextRow(i18nString(UIStrings.priority), unsafeEventData['priority']);
604
- - break;
605
- - }
606
- -
607
- - case Trace.Types.Events.Name.FIRE_ANIMATION_FRAME: {
608
- - contentHelper.appendTextRow(i18nString(UIStrings.callbackId), unsafeEventData['id']);
609
- - break;
610
- - }
611
- -
612
- - case Trace.Types.Events.Name.COMPILE_MODULE: {
613
- - contentHelper.appendLocationRow(i18nString(UIStrings.module), unsafeEventArgs['fileName'], 0);
614
- - break;
615
- - }
616
- - case Trace.Types.Events.Name.COMPILE_SCRIPT: {
617
- - // This case is handled above
618
- - break;
619
- - }
620
- -
621
- - case Trace.Types.Events.Name.CACHE_MODULE: {
622
- - url = unsafeEventData && unsafeEventData['url'] as Platform.DevToolsPath.UrlString;
623
- - contentHelper.appendTextRow(
624
- - i18nString(UIStrings.compilationCacheSize),
625
- - i18n.ByteUtilities.bytesToString(unsafeEventData['producedCacheSize']));
626
- - break;
627
- - }
628
- -
629
- - case Trace.Types.Events.Name.CACHE_SCRIPT: {
630
- - url = unsafeEventData && unsafeEventData['url'] as Platform.DevToolsPath.UrlString;
631
- - if (url) {
632
- - const {lineNumber, columnNumber} = Trace.Helpers.Trace.getZeroIndexedLineAndColumnForEvent(event);
633
- - contentHelper.appendLocationRow(
634
- - i18nString(UIStrings.script), url, lineNumber || 0, columnNumber, undefined, true);
635
- - const originWithEntity = this.getOriginWithEntity(entityMapper, parsedTrace, event);
636
- - if (originWithEntity) {
637
- - contentHelper.appendElementRow(i18nString(UIStrings.origin), originWithEntity);
638
- - }
639
- - entityAppended = true;
640
- - }
641
- - contentHelper.appendTextRow(
642
- - i18nString(UIStrings.compilationCacheSize),
643
- - i18n.ByteUtilities.bytesToString(unsafeEventData['producedCacheSize']));
644
- - break;
645
- - }
646
- -
647
- - case Trace.Types.Events.Name.EVALUATE_SCRIPT: {
648
- - url = unsafeEventData && unsafeEventData['url'] as Platform.DevToolsPath.UrlString;
649
- - if (url) {
650
- - const {lineNumber, columnNumber} = Trace.Helpers.Trace.getZeroIndexedLineAndColumnForEvent(event);
651
- - contentHelper.appendLocationRow(
652
- - i18nString(UIStrings.script), url, lineNumber || 0, columnNumber, undefined, true);
653
- - const originWithEntity = this.getOriginWithEntity(entityMapper, parsedTrace, event);
654
- - if (originWithEntity) {
655
- - contentHelper.appendElementRow(i18nString(UIStrings.origin), originWithEntity);
656
- - }
657
- - entityAppended = true;
658
- - }
659
- - break;
660
- - }
661
- -
662
- - case Trace.Types.Events.Name.WASM_STREAM_FROM_RESPONSE_CALLBACK:
663
- - case Trace.Types.Events.Name.WASM_COMPILED_MODULE:
664
- - case Trace.Types.Events.Name.WASM_CACHED_MODULE:
665
- - case Trace.Types.Events.Name.WASM_MODULE_CACHE_HIT:
666
- - case Trace.Types.Events.Name.WASM_MODULE_CACHE_INVALID: {
667
- - if (unsafeEventData) {
668
- - url = unsafeEventArgs['url'] as Platform.DevToolsPath.UrlString;
669
- - if (url) {
670
- - contentHelper.appendTextRow(i18nString(UIStrings.url), url);
671
- - }
672
- - const producedCachedSize = unsafeEventArgs['producedCachedSize'];
673
- - if (producedCachedSize) {
674
- - contentHelper.appendTextRow(i18nString(UIStrings.producedCacheSize), producedCachedSize);
675
- - }
676
- - const consumedCachedSize = unsafeEventArgs['consumedCachedSize'];
677
- - if (consumedCachedSize) {
678
- - contentHelper.appendTextRow(i18nString(UIStrings.consumedCacheSize), consumedCachedSize);
679
- - }
680
- - }
681
- - break;
682
- - }
683
- -
684
- - case Trace.Types.Events.Name.PAINT:
685
- - case Trace.Types.Events.Name.PAINT_SETUP:
686
- - case Trace.Types.Events.Name.RASTERIZE:
687
- - case Trace.Types.Events.Name.SCROLL_LAYER: {
688
- - relatedNodeLabel = i18nString(UIStrings.layerRoot);
689
- - break;
690
- - }
691
- -
692
- - case Trace.Types.Events.Name.PAINT_IMAGE:
693
- - case Trace.Types.Events.Name.DECODE_LAZY_PIXEL_REF:
694
- - case Trace.Types.Events.Name.DECODE_IMAGE:
695
- - case Trace.Types.Events.Name.DRAW_LAZY_PIXEL_REF: {
696
- - relatedNodeLabel = i18nString(UIStrings.ownerElement);
697
- - url = Trace.Handlers.Helpers.getNonResolvedURL(event, parsedTrace.data);
698
- - if (url) {
699
- - const options = {
700
- - tabStop: true,
701
- - showColumnNumber: false,
702
- - inlineFrameIndex: 0,
703
- - };
704
- - contentHelper.appendElementRow(
705
- - i18nString(UIStrings.imageUrl), LegacyComponents.Linkifier.Linkifier.linkifyURL(url, options));
706
- - }
707
- - break;
708
- - }
709
- -
710
- - case Trace.Types.Events.Name.PARSE_AUTHOR_STYLE_SHEET: {
711
- - url = unsafeEventData['styleSheetUrl'] as Platform.DevToolsPath.UrlString;
712
- - if (url) {
713
- - const options = {
714
- - tabStop: true,
715
- - showColumnNumber: false,
716
- - inlineFrameIndex: 0,
717
- - };
718
- - contentHelper.appendElementRow(
719
- - i18nString(UIStrings.stylesheetUrl), LegacyComponents.Linkifier.Linkifier.linkifyURL(url, options));
720
- - }
721
- - break;
722
- - }
723
- -
724
- - case Trace.Types.Events.Name.RECALC_STYLE: {
725
- - contentHelper.appendTextRow(i18nString(UIStrings.elementsAffected), unsafeEventArgs['elementCount']);
726
- -
727
- - const selectorStatsSetting =
728
- - Common.Settings.Settings.instance().createSetting('timeline-capture-selector-stats', false);
729
- - if (!selectorStatsSetting.get()) {
730
- - const note = document.createElement('span');
731
- - note.textContent = i18nString(UIStrings.sSelectorStatsInfo, {PH1: selectorStatsSetting.title()});
732
- - contentHelper.appendElementRow(i18nString(UIStrings.selectorStatsTitle), note);
733
- - }
734
- -
735
- - break;
736
- - }
737
- -
738
- - case Trace.Types.Events.Name.LAYOUT: {
739
- - const beginData = unsafeEventArgs['beginData'];
740
- - contentHelper.appendTextRow(
741
- - i18nString(UIStrings.nodesThatNeedLayout),
742
- - i18nString(UIStrings.sOfS, {PH1: beginData['dirtyObjects'], PH2: beginData['totalObjects']}));
743
- - relatedNodeLabel = i18nString(UIStrings.layoutRoot);
744
- - break;
745
- - }
746
- -
747
- - case Trace.Types.Events.Name.CONSOLE_TIME: {
748
- - contentHelper.appendTextRow(i18nString(UIStrings.message), event.name);
749
- - break;
750
- - }
751
- -
752
- - case Trace.Types.Events.Name.WEB_SOCKET_CREATE:
753
- - case Trace.Types.Events.Name.WEB_SOCKET_SEND_HANDSHAKE_REQUEST:
754
- - case Trace.Types.Events.Name.WEB_SOCKET_RECEIVE_HANDSHAKE_REQUEST:
755
- - case Trace.Types.Events.Name.WEB_SOCKET_SEND:
756
- - case Trace.Types.Events.Name.WEB_SOCKET_RECEIVE:
757
- - case Trace.Types.Events.Name.WEB_SOCKET_DESTROY: {
758
- - if (Trace.Types.Events.isWebSocketTraceEvent(event)) {
759
- - const rows = TimelineComponents.DetailsView.buildRowsForWebSocketEvent(event, parsedTrace);
760
- - for (const {key, value} of rows) {
761
- - contentHelper.appendTextRow(key, value);
762
- - }
763
- - }
764
- - break;
765
- - }
766
- -
767
- - case Trace.Types.Events.Name.EMBEDDER_CALLBACK: {
768
- - contentHelper.appendTextRow(i18nString(UIStrings.callbackFunction), unsafeEventData['callbackName']);
769
- - break;
770
- - }
771
- -
772
- - case Trace.Types.Events.Name.ANIMATION: {
773
- - if (!Trace.Types.Events.isSyntheticAnimation(event)) {
774
- - break;
775
- - }
776
- - const {displayName, nodeName} = event.args.data.beginEvent.args.data;
777
- - displayName && contentHelper.appendTextRow(i18nString(UIStrings.animating), displayName);
778
- - // If relatedNodes is empty (maybe saved trace), then print the text description of the DOM node.
779
- - if (!relatedNodesMap?.size && nodeName) {
780
- - contentHelper.appendTextRow(i18nString(UIStrings.relatedNode), nodeName);
781
- - }
782
- -
783
- - const CLSInsight = Trace.Insights.Models.CLSCulprits;
784
- - const failures = CLSInsight.getNonCompositedFailure(event);
785
- - if (!failures.length) {
786
- - break;
787
- - }
788
- -
789
- - const failureReasons = new Set(failures.map(f => f.failureReasons).flat().filter(Boolean));
790
- - const unsupportedProperties =
791
- - new Set(failures.map(f => f.unsupportedProperties).flat().filter(Boolean)) as Set<string>;
792
- -
793
- - // The failureReasons can be empty when Blink added a new failure reason that is
794
- - // not supported by DevTools yet
795
- - if (failureReasons.size === 0) {
796
- - contentHelper.appendElementRow(
797
- - i18nString(UIStrings.compositingFailed), i18nString(UIStrings.compositingFailedUnknownReason), true);
798
- - } else {
799
- - for (const reason of failureReasons) {
800
- - let str;
801
- - switch (reason) {
802
- - case CLSInsight.AnimationFailureReasons.ACCELERATED_ANIMATIONS_DISABLED:
803
- - str = i18nString(UIStrings.compositingFailedAcceleratedAnimationsDisabled);
804
- - break;
805
- - case CLSInsight.AnimationFailureReasons.EFFECT_SUPPRESSED_BY_DEVTOOLS:
806
- - str = i18nString(UIStrings.compositingFailedEffectSuppressedByDevtools);
807
- - break;
808
- - case CLSInsight.AnimationFailureReasons.INVALID_ANIMATION_OR_EFFECT:
809
- - str = i18nString(UIStrings.compositingFailedInvalidAnimationOrEffect);
810
- - break;
811
- - case CLSInsight.AnimationFailureReasons.EFFECT_HAS_UNSUPPORTED_TIMING_PARAMS:
812
- - str = i18nString(UIStrings.compositingFailedEffectHasUnsupportedTimingParams);
813
- - break;
814
- - case CLSInsight.AnimationFailureReasons.EFFECT_HAS_NON_REPLACE_COMPOSITE_MODE:
815
- - str = i18nString(UIStrings.compositingFailedEffectHasNonReplaceCompositeMode);
816
- - break;
817
- - case CLSInsight.AnimationFailureReasons.TARGET_HAS_INVALID_COMPOSITING_STATE:
818
- - str = i18nString(UIStrings.compositingFailedTargetHasInvalidCompositingState);
819
- - break;
820
- - case CLSInsight.AnimationFailureReasons.TARGET_HAS_INCOMPATIBLE_ANIMATIONS:
821
- - str = i18nString(UIStrings.compositingFailedTargetHasIncompatibleAnimations);
822
- - break;
823
- - case CLSInsight.AnimationFailureReasons.TARGET_HAS_CSS_OFFSET:
824
- - str = i18nString(UIStrings.compositingFailedTargetHasCSSOffset);
825
- - break;
826
- - case CLSInsight.AnimationFailureReasons.ANIMATION_AFFECTS_NON_CSS_PROPERTIES:
827
- - str = i18nString(UIStrings.compositingFailedAnimationAffectsNonCSSProperties);
828
- - break;
829
- - case CLSInsight.AnimationFailureReasons.TRANSFORM_RELATED_PROPERTY_CANNOT_BE_ACCELERATED_ON_TARGET:
830
- - str = i18nString(UIStrings.compositingFailedTransformRelatedPropertyCannotBeAcceleratedOnTarget);
831
- - break;
832
- - case CLSInsight.AnimationFailureReasons.TRANSFROM_BOX_SIZE_DEPENDENT:
833
- - str = i18nString(UIStrings.compositingFailedTransformDependsBoxSize);
834
- - break;
835
- - case CLSInsight.AnimationFailureReasons.FILTER_RELATED_PROPERTY_MAY_MOVE_PIXELS:
836
- - str = i18nString(UIStrings.compositingFailedFilterRelatedPropertyMayMovePixels);
837
- - break;
838
- - case CLSInsight.AnimationFailureReasons.UNSUPPORTED_CSS_PROPERTY:
839
- - str = i18nString(UIStrings.compositingFailedUnsupportedCSSProperty, {
840
- - propertyCount: unsupportedProperties.size,
841
- - properties: new Intl.ListFormat(undefined, {style: 'short', type: 'conjunction'})
842
- - .format(unsupportedProperties),
843
- - });
844
- - break;
845
- - case CLSInsight.AnimationFailureReasons.MIXED_KEYFRAME_VALUE_TYPES:
846
- - str = i18nString(UIStrings.compositingFailedMixedKeyframeValueTypes);
847
- - break;
848
- - case CLSInsight.AnimationFailureReasons.TIMELINE_SOURCE_HAS_INVALID_COMPOSITING_STATE:
849
- - str = i18nString(UIStrings.compositingFailedTimelineSourceHasInvalidCompositingState);
850
- - break;
851
- - case CLSInsight.AnimationFailureReasons.ANIMATION_HAS_NO_VISIBLE_CHANGE:
852
- - str = i18nString(UIStrings.compositingFailedAnimationHasNoVisibleChange);
853
- - break;
854
- - case CLSInsight.AnimationFailureReasons.AFFECTS_IMPORTANT_PROPERTY:
855
- - str = i18nString(UIStrings.compositingFailedAffectsImportantProperty);
856
- - break;
857
- - case CLSInsight.AnimationFailureReasons.SVG_TARGET_HAS_INDEPENDENT_TRANSFORM_PROPERTY:
858
- - str = i18nString(UIStrings.compositingFailedSVGTargetHasIndependentTransformProperty);
859
- - break;
860
- - default:
861
- - // We should never actually end up here, as adding a new AnimationFailureReason
862
- - // should also require adding a UIString that describes it
863
- - str = i18nString(UIStrings.compositingFailedUnknownReason);
864
- - break;
865
- - }
866
- - str && contentHelper.appendElementRow(i18nString(UIStrings.compositingFailed), str, true);
867
- - }
868
- - }
869
- -
870
- - break;
871
- - }
872
- -
873
- - case Trace.Types.Events.Name.PARSE_HTML: {
874
- - const beginData = unsafeEventArgs['beginData'];
875
- - const startLine = beginData['startLine'] - 1;
876
- - const endLine = unsafeEventArgs['endData'] ? unsafeEventArgs['endData']['endLine'] - 1 : undefined;
877
- - url = beginData['url'];
878
- - if (url) {
879
- - contentHelper.appendLocationRange(i18nString(UIStrings.range), url, startLine, endLine);
880
- - }
881
- - break;
882
- - }
883
- -
884
- - // @ts-expect-error Fall-through intended.
885
- - case Trace.Types.Events.Name.FIRE_IDLE_CALLBACK: {
886
- - contentHelper.appendTextRow(
887
- - i18nString(UIStrings.allottedTime),
888
- - i18n.TimeUtilities.millisToString(unsafeEventData['allottedMilliseconds']));
889
- - contentHelper.appendTextRow(i18nString(UIStrings.invokedByTimeout), unsafeEventData['timedOut']);
890
- - }
891
- -
892
- - case Trace.Types.Events.Name.REQUEST_IDLE_CALLBACK:
893
- - case Trace.Types.Events.Name.CANCEL_IDLE_CALLBACK: {
894
- - contentHelper.appendTextRow(i18nString(UIStrings.callbackId), unsafeEventData['id']);
895
- -
896
- - if (Trace.Types.Events.isRequestIdleCallback(event)) {
897
- - contentHelper.appendTextRow(
898
- - i18nString(UIStrings.requestIdleCallbackTimeout),
899
- - i18n.TimeUtilities.preciseMillisToString(event.args.data.timeout));
900
- - }
901
- - break;
902
- - }
903
- -
904
- - case Trace.Types.Events.Name.EVENT_DISPATCH: {
905
- - contentHelper.appendTextRow(i18nString(UIStrings.type), unsafeEventData['type']);
906
- - break;
907
- - }
908
- -
909
- - // @ts-expect-error Fall-through intended.
910
- - case Trace.Types.Events.Name.MARK_LCP_CANDIDATE: {
911
- - contentHelper.appendTextRow(i18nString(UIStrings.type), String(unsafeEventData['type']));
912
- - contentHelper.appendTextRow(i18nString(UIStrings.size), String(unsafeEventData['size']));
913
- - }
914
- -
915
- - case Trace.Types.Events.Name.MARK_FIRST_PAINT:
916
- - case Trace.Types.Events.Name.MARK_FCP:
917
- - case Trace.Types.Events.Name.MARK_LOAD:
918
- - case Trace.Types.Events.Name.MARK_DOM_CONTENT: {
919
- - const adjustedEventTimeStamp = timeStampForEventAdjustedForClosestNavigationIfPossible(
920
- - event,
921
- - parsedTrace,
922
- - );
923
- -
924
- - contentHelper.appendTextRow(
925
- - i18nString(UIStrings.timestamp), i18n.TimeUtilities.preciseMillisToString(adjustedEventTimeStamp, 1));
926
- -
927
- - if (Trace.Types.Events.isMarkerEvent(event)) {
928
- - contentHelper.appendElementRow(
929
- - i18nString(UIStrings.details), TimelineUIUtils.buildDetailsNodeForMarkerEvents(event));
930
- - }
931
- -
932
- - break;
933
- - }
934
- -
935
- - case Trace.Types.Events.Name.EVENT_TIMING: {
936
- - const detailsNode = await TimelineUIUtils.buildDetailsNodeForTraceEvent(
937
- - event, targetForEvent(parsedTrace, event), linkifier, isFreshOrEnhanced, parsedTrace);
938
- - if (detailsNode) {
939
- - contentHelper.appendElementRow(i18nString(UIStrings.details), detailsNode);
940
- - }
941
- - if (Trace.Types.Events.isSyntheticInteraction(event)) {
942
- - const inputDelay = i18n.TimeUtilities.formatMicroSecondsAsMillisFixed(event.inputDelay);
943
- - const mainThreadTime = i18n.TimeUtilities.formatMicroSecondsAsMillisFixed(event.mainThreadHandling);
944
- - const presentationDelay = i18n.TimeUtilities.formatMicroSecondsAsMillisFixed(event.presentationDelay);
945
- - contentHelper.appendTextRow(i18nString(UIStrings.interactionID), event.interactionId);
946
- - contentHelper.appendTextRow(i18nString(UIStrings.inputDelay), inputDelay);
947
- - contentHelper.appendTextRow(i18nString(UIStrings.processingDuration), mainThreadTime);
948
- - contentHelper.appendTextRow(i18nString(UIStrings.presentationDelay), presentationDelay);
949
- - }
950
- - break;
951
- - }
952
- -
953
- - default: {
954
- - const detailsNode = await TimelineUIUtils.buildDetailsNodeForTraceEvent(
955
- - event, targetForEvent(parsedTrace, event), linkifier, isFreshOrEnhanced, parsedTrace);
956
- - if (detailsNode) {
957
- - contentHelper.appendElementRow(i18nString(UIStrings.details), detailsNode);
958
- - }
959
- - break;
960
- - }
961
- - }
962
- - const relatedNodes = relatedNodesMap?.values() || [];
963
- - for (const relatedNode of relatedNodes) {
964
- - if (relatedNode) {
965
- - const nodeSpan = await Common.Linkifier.Linkifier.linkify(relatedNode);
966
- - contentHelper.appendElementRow(relatedNodeLabel || i18nString(UIStrings.relatedNode), nodeSpan);
967
- - }
968
- - }
969
- -
970
- - // @ts-expect-error TODO(crbug.com/1011811): Remove symbol usage.
971
- - if (event[previewElementSymbol]) {
972
- - contentHelper.addSection(i18nString(UIStrings.preview));
973
- - // @ts-expect-error TODO(crbug.com/1011811): Remove symbol usage.
974
- - contentHelper.appendElementRow('', event[previewElementSymbol]);
975
- - }
976
- -
977
- - if (!entityAppended) {
978
- - const originWithEntity = this.getOriginWithEntity(entityMapper, parsedTrace, event);
979
- - if (originWithEntity) {
980
- - contentHelper.appendElementRow(i18nString(UIStrings.origin), originWithEntity);
981
- - }
982
- - }
983
- -
984
- - const hasStackTrace = Boolean(Trace.Helpers.Trace.getStackTraceTopCallFrameInEventPayload(event));
985
- - if (Trace.Types.Events.isUserTiming(event) || Trace.Types.Extensions.isSyntheticExtensionEntry(event) ||
986
- - Trace.Types.Events.isProfileCall(event) || initiator || initiatorFor || hasStackTrace ||
987
- - parsedTrace?.data.Invalidations.invalidationsForEvent.get(event)) {
988
- - await TimelineUIUtils.generateCauses(event, contentHelper, parsedTrace);
989
- - }
990
- -
991
- - if (Root.Runtime.experiments.isEnabled(Root.Runtime.ExperimentName.TIMELINE_DEBUG_MODE)) {
992
- - TimelineUIUtils.renderEventJson(event, contentHelper);
993
- - }
994
- -
995
- - const stats: TimeRangeCategoryStats = {};
996
- - const showPieChart = canShowPieChart && TimelineUIUtils.aggregatedStatsForTraceEvent(stats, parsedTrace, event);
997
- - if (showPieChart) {
998
- - contentHelper.addSection(i18nString(UIStrings.aggregatedTime));
999
- - const pieChart = TimelineUIUtils.generatePieChart(stats, TimelineUIUtils.eventStyle(event).category, selfTime);
1000
- - contentHelper.appendElementRow('', pieChart);
1001
- - }
1002
- -
1003
- - return contentHelper.fragment;
1004
- - }
1005
- -
1006
- static statsForTimeRange(
1007
- events: Trace.Types.Events.Event[], startTime: Trace.Types.Timing.Milli,
1008
- endTime: Trace.Types.Timing.Milli): TimeRangeCategoryStats {
1009
- @@ -1660,264 +738,6 @@ export class TimelineUIUtils {
1010
- }
1011
- }
1012
-
1013
- - private static renderEventJson(event: Trace.Types.Events.Event, contentHelper: TimelineDetailsContentHelper): void {
1014
- - contentHelper.addSection(i18nString(UIStrings.traceEvent));
1015
- -
1016
- - const eventWithArgsFirst = {
1017
- - ...{args: event.args},
1018
- - ...event,
1019
- - };
1020
- - const highlightContainer = TimelineUIUtils.renderObjectJson(eventWithArgsFirst);
1021
- - contentHelper.appendElementRow('', highlightContainer);
1022
- - }
1023
- -
1024
- - private static renderObjectJson(obj: Object|Trace.Types.Extensions.JsonValue): HTMLDivElement {
1025
- - const indentLength = Common.Settings.Settings.instance().moduleSetting('text-editor-indent').get().length;
1026
- - // Elide if the data is huge. Then remove the initial new-line for a denser UI
1027
- - const eventStr = JSON.stringify(obj, null, indentLength).slice(0, 10_000).replace(/{\n /, '{ ');
1028
- -
1029
- - // Use CodeHighlighter for syntax highlighting.
1030
- - const highlightContainer = document.createElement('div');
1031
- - const shadowRoot = UI.UIUtils.createShadowRootWithCoreStyles(highlightContainer, {cssFile: codeHighlighterStyles});
1032
- - const elem = shadowRoot.createChild('div');
1033
- - elem.classList.add('monospace', 'source-code');
1034
- - elem.textContent = eventStr;
1035
- - // Highlighting is done async (shrug), but we'll return the container immediately.
1036
- - void CodeHighlighter.CodeHighlighter.highlightNode(elem, 'text/javascript').then(() => {
1037
- - /**
1038
- - * Linkify any URLs within the text nodes.
1039
- - * Use a TreeWalker to find all our text nodes
1040
- - **/
1041
- - function* iterateTreeWalker(walker: TreeWalker): IterableIterator<Node> {
1042
- - while (walker.nextNode()) {
1043
- - yield walker.currentNode;
1044
- - }
1045
- - }
1046
- - const walker = document.createTreeWalker(elem, NodeFilter.SHOW_TEXT);
1047
- - // Gather all the nodes first, then we'll potentially replace them.
1048
- - for (const node of Array.from(iterateTreeWalker(walker))) {
1049
- - const frag = TimelineUIUtils.parseStringForLinks(node.textContent || '');
1050
- - node.parentNode?.replaceChild(frag, node);
1051
- - }
1052
- - });
1053
- -
1054
- - return highlightContainer;
1055
- - }
1056
- -
1057
- - static stackTraceFromCallFrames(callFrames: Protocol.Runtime.CallFrame[]|Trace.Types.Events.CallFrame[]):
1058
- - Protocol.Runtime.StackTrace {
1059
- - return {callFrames} as Protocol.Runtime.StackTrace;
1060
- - }
1061
- -
1062
- - static async generateCauses(
1063
- - event: Trace.Types.Events.Event, contentHelper: TimelineDetailsContentHelper,
1064
- - parsedTrace: Trace.TraceModel.ParsedTrace): Promise<void> {
1065
- - const {startTime} = Trace.Helpers.Timing.eventTimingsMilliSeconds(event);
1066
- - let initiatorStackLabel = i18nString(UIStrings.initiatorStackTrace);
1067
- - let stackLabel = i18nString(UIStrings.functionStack);
1068
- - const stackTraceForEvent = Trace.Extras.StackTraceForEvent.get(event, parsedTrace.data);
1069
- - if (stackTraceForEvent?.callFrames.length || stackTraceForEvent?.description || stackTraceForEvent?.parent) {
1070
- - contentHelper.addSection(i18nString(UIStrings.functionStack));
1071
- - contentHelper.createChildStackTraceElement(stackTraceForEvent);
1072
- - // TODO(andoli): also build stack trace component for other events
1073
- - // that have a stack trace using the StackTraceForEvent helper.
1074
- - } else {
1075
- - const stackTrace = Trace.Helpers.Trace.getZeroIndexedStackTraceInEventPayload(event);
1076
- - if (stackTrace?.length) {
1077
- - contentHelper.addSection(stackLabel);
1078
- - contentHelper.createChildStackTraceElement(TimelineUIUtils.stackTraceFromCallFrames(stackTrace));
1079
- - }
1080
- - }
1081
- - switch (event.name) {
1082
- - case Trace.Types.Events.Name.TIMER_FIRE:
1083
- - initiatorStackLabel = i18nString(UIStrings.timerInstalled);
1084
- - break;
1085
- - case Trace.Types.Events.Name.FIRE_ANIMATION_FRAME:
1086
- - initiatorStackLabel = i18nString(UIStrings.animationFrameRequested);
1087
- - break;
1088
- - case Trace.Types.Events.Name.FIRE_IDLE_CALLBACK:
1089
- - initiatorStackLabel = i18nString(UIStrings.idleCallbackRequested);
1090
- - break;
1091
- - case Trace.Types.Events.Name.RECALC_STYLE:
1092
- - initiatorStackLabel = i18nString(UIStrings.firstInvalidated);
1093
- - stackLabel = i18nString(UIStrings.recalculationForced);
1094
- - break;
1095
- - case Trace.Types.Events.Name.LAYOUT:
1096
- - initiatorStackLabel = i18nString(UIStrings.firstLayoutInvalidation);
1097
- - stackLabel = i18nString(UIStrings.layoutForced);
1098
- - break;
1099
- - }
1100
- -
1101
- - const initiator = parsedTrace.data.Initiators.eventToInitiator.get(event);
1102
- - const initiatorFor = parsedTrace.data.Initiators.initiatorToEvents.get(event);
1103
- - const invalidations = parsedTrace.data.Invalidations.invalidationsForEvent.get(event);
1104
- -
1105
- - if (initiator) {
1106
- - // If we have an initiator for the event, we can show its stack trace, a link to reveal the initiator,
1107
- - // and the time since the initiator (Pending For).
1108
- - const stackTrace = Trace.Helpers.Trace.getZeroIndexedStackTraceInEventPayload(initiator);
1109
- - if (stackTrace) {
1110
- - contentHelper.addSection(initiatorStackLabel);
1111
- - contentHelper.createChildStackTraceElement(TimelineUIUtils.stackTraceFromCallFrames(stackTrace.map(frame => {
1112
- - return {
1113
- - ...frame,
1114
- - scriptId: String(frame.scriptId) as Protocol.Runtime.ScriptId,
1115
- - };
1116
- - })));
1117
- - }
1118
- -
1119
- - const link = this.createEntryLink(initiator);
1120
- - contentHelper.appendElementRow(i18nString(UIStrings.initiatedBy), link);
1121
- -
1122
- - const {startTime: initiatorStartTime} = Trace.Helpers.Timing.eventTimingsMilliSeconds(initiator);
1123
- - const delay = startTime - initiatorStartTime;
1124
- - contentHelper.appendTextRow(i18nString(UIStrings.pendingFor), i18n.TimeUtilities.preciseMillisToString(delay, 1));
1125
- - }
1126
- -
1127
- - if (initiatorFor) {
1128
- - // If the event is an initiator for some entries, add links to reveal them.
1129
- - const links = document.createElement('div');
1130
- - initiatorFor.map((initiator, i) => {
1131
- - links.appendChild(this.createEntryLink(initiator));
1132
- - // Add space between each link if it's not last
1133
- - if (i < initiatorFor.length - 1) {
1134
- - links.append(' ');
1135
- - }
1136
- - });
1137
- - contentHelper.appendElementRow(UIStrings.initiatorFor, links);
1138
- - }
1139
- -
1140
- - if (invalidations?.length) {
1141
- - const totalInvalidations = parsedTrace.data.Invalidations.invalidationCountForEvent.get(event) ??
1142
- - 0; // Won't be 0, but saves us dealing with undefined.
1143
- - contentHelper.addSection(i18nString(UIStrings.invalidations, {PH1: totalInvalidations}));
1144
- - await TimelineUIUtils.generateInvalidationsList(invalidations, contentHelper);
1145
- - }
1146
- - }
1147
- -
1148
- - private static createEntryLink(entry: Trace.Types.Events.Event): HTMLElement {
1149
- - const link = document.createElement('span');
1150
- -
1151
- - const traceBoundsState = TraceBounds.TraceBounds.BoundsManager.instance().state();
1152
- -
1153
- - if (!traceBoundsState) {
1154
- - console.error('Tried to link to an entry without any traceBoundsState. This should never happen.');
1155
- - return link;
1156
- - }
1157
- -
1158
- - // Check is the entry is outside of the current breadcrumb. If it is, don't create a link to navigate to it because there is no way to navigate outside breadcrumb without removing it. Instead, just display the name and "outside breadcrumb" text
1159
- - // Consider entry outside breadcrumb only if it is fully outside. If a part of it is visible, we can still select it.
1160
- - const isEntryOutsideBreadcrumb = traceBoundsState.micro.minimapTraceBounds.min > entry.ts + (entry.dur || 0) ||
1161
- - traceBoundsState.micro.minimapTraceBounds.max < entry.ts;
1162
- -
1163
- - // Check if it is in the hidden array
1164
- - const isEntryHidden = ModificationsManager.activeManager()?.getEntriesFilter().entryIsInvisible(entry);
1165
- -
1166
- - if (!isEntryOutsideBreadcrumb) {
1167
- - link.classList.add('timeline-link');
1168
- - UI.ARIAUtils.markAsLink(link);
1169
- - link.tabIndex = 0;
1170
- - link.addEventListener('click', () => {
1171
- - TimelinePanel.instance().select(selectionFromEvent(entry));
1172
- - });
1173
- -
1174
- - link.addEventListener('keydown', event => {
1175
- - if (event.key === Platform.KeyboardUtilities.ENTER_KEY) {
1176
- - TimelinePanel.instance().select(selectionFromEvent(entry));
1177
- - event.consume(true);
1178
- - }
1179
- - });
1180
- - }
1181
- -
1182
- - if (isEntryHidden) {
1183
- - link.textContent = this.eventTitle(entry) + ' ' + i18nString(UIStrings.entryIsHidden);
1184
- - } else if (isEntryOutsideBreadcrumb) {
1185
- - link.textContent = this.eventTitle(entry) + ' ' + i18nString(UIStrings.outsideBreadcrumbRange);
1186
- - } else {
1187
- - link.textContent = this.eventTitle(entry);
1188
- - }
1189
- -
1190
- - return link;
1191
- - }
1192
- -
1193
- - private static async generateInvalidationsList(
1194
- - invalidations: Trace.Types.Events.InvalidationTrackingEvent[],
1195
- - contentHelper: TimelineDetailsContentHelper): Promise<void> {
1196
- - const {groupedByReason, backendNodeIds} = TimelineComponents.DetailsView.generateInvalidationsList(invalidations);
1197
- -
1198
- - let relatedNodesMap: Map<number, SDK.DOMModel.DOMNode|null>|null = null;
1199
- - const target = SDK.TargetManager.TargetManager.instance().primaryPageTarget();
1200
- - const domModel = target?.model(SDK.DOMModel.DOMModel);
1201
- - if (domModel) {
1202
- - relatedNodesMap = await domModel.pushNodesByBackendIdsToFrontend(backendNodeIds);
1203
- - }
1204
- -
1205
- - Object.keys(groupedByReason).forEach(reason => {
1206
- - TimelineUIUtils.generateInvalidationsForReason(reason, groupedByReason[reason], relatedNodesMap, contentHelper);
1207
- - });
1208
- - }
1209
- -
1210
- - private static generateInvalidationsForReason(
1211
- - reason: string, invalidations: Trace.Types.Events.InvalidationTrackingEvent[],
1212
- - relatedNodesMap: Map<number, SDK.DOMModel.DOMNode|null>|null, contentHelper: TimelineDetailsContentHelper): void {
1213
- - function createLinkForInvalidationNode(invalidation: Trace.Types.Events.InvalidationTrackingEvent):
1214
- - HTMLSpanElement {
1215
- - const node = (invalidation.args.data.nodeId && relatedNodesMap) ?
1216
- - relatedNodesMap.get(invalidation.args.data.nodeId) :
1217
- - null;
1218
- - if (node) {
1219
- - const nodeSpan = document.createElement('span');
1220
- - void Common.Linkifier.Linkifier.linkify(node).then(link => nodeSpan.appendChild(link));
1221
- - return nodeSpan;
1222
- - }
1223
- - if (invalidation.args.data.nodeName) {
1224
- - const nodeSpan = document.createElement('span');
1225
- - nodeSpan.textContent = invalidation.args.data.nodeName;
1226
- - return nodeSpan;
1227
- - }
1228
- - const nodeSpan = document.createElement('span');
1229
- - UI.UIUtils.createTextChild(nodeSpan, i18nString(UIStrings.UnknownNode));
1230
- - return nodeSpan;
1231
- - }
1232
- -
1233
- - const generatedItems = new Set<string>();
1234
- -
1235
- - for (const invalidation of invalidations) {
1236
- - const stackTrace = Trace.Helpers.Trace.getZeroIndexedStackTraceInEventPayload(invalidation);
1237
- - let scriptLink: HTMLElement|null = null;
1238
- - const callFrame = stackTrace?.at(0);
1239
- - if (callFrame) {
1240
- - scriptLink = contentHelper.linkifier()?.maybeLinkifyScriptLocation(
1241
- - SDK.TargetManager.TargetManager.instance().rootTarget(),
1242
- - callFrame.scriptId as Protocol.Runtime.ScriptId,
1243
- - callFrame.url as Platform.DevToolsPath.UrlString,
1244
- - callFrame.lineNumber,
1245
- - ) ||
1246
- - null;
1247
- - }
1248
- -
1249
- - const niceNodeLink = createLinkForInvalidationNode(invalidation);
1250
- -
1251
- - const text = scriptLink ?
1252
- - i18n.i18n.getFormatLocalizedString(
1253
- - str_, UIStrings.invalidationWithCallFrame, {PH1: niceNodeLink, PH2: scriptLink}) as HTMLElement :
1254
- - niceNodeLink;
1255
- -
1256
- - // Sometimes we can get different Invalidation events which cause
1257
- - // the same text for the same element for the same reason to be
1258
- - // generated. Rather than show the user duplicates, if we have
1259
- - // generated text that looks identical to this before, we will
1260
- - // bail.
1261
- - const generatedText: string = (typeof text === 'string' ? text : text.innerText);
1262
- - if (generatedItems.has(generatedText)) {
1263
- - continue;
1264
- - }
1265
- -
1266
- - generatedItems.add(generatedText);
1267
- - contentHelper.appendElementRow(reason, text);
1268
- - }
1269
- - }
1270
- -
1271
- /** Populates the passed object then returns true/false if it makes sense to show the pie chart */
1272
- private static aggregatedStatsForTraceEvent(
1273
- total: TimeRangeCategoryStats, parsedTrace: Trace.TraceModel.ParsedTrace,
1274
- @@ -1970,67 +790,12 @@ export class TimelineUIUtils {
1275
- return true;
1276
- }
1277
-
1278
- - static async buildPicturePreviewContent(
1279
- - parsedTrace: Trace.TraceModel.ParsedTrace, event: Trace.Types.Events.Paint,
1280
- - target: SDK.Target.Target): Promise<Element|null> {
1281
- - const snapshotEvent = parsedTrace.data.LayerTree.paintsToSnapshots.get(event);
1282
- - if (!snapshotEvent) {
1283
- - return null;
1284
- - }
1285
- -
1286
- - const paintProfilerModel = target.model(SDK.PaintProfiler.PaintProfilerModel);
1287
- - if (!paintProfilerModel) {
1288
- - return null;
1289
- - }
1290
- - const snapshot = await paintProfilerModel.loadSnapshot(snapshotEvent.args.snapshot.skp64);
1291
- - if (!snapshot) {
1292
- - return null;
1293
- - }
1294
- -
1295
- - const snapshotWithRect = {
1296
- - snapshot,
1297
- - rect: snapshotEvent.args.snapshot.params?.layer_rect,
1298
- - };
1299
- -
1300
- - if (!snapshotWithRect) {
1301
- - return null;
1302
- - }
1303
- - const imageURLPromise = snapshotWithRect.snapshot.replay();
1304
- - snapshotWithRect.snapshot.release();
1305
- - const imageURL = await imageURLPromise as Platform.DevToolsPath.UrlString;
1306
- - if (!imageURL) {
1307
- - return null;
1308
- - }
1309
- - const stylesContainer = document.createElement('div');
1310
- - const shadowRoot = stylesContainer.attachShadow({mode: 'open'});
1311
- - shadowRoot.createChild('style').textContent = imagePreviewStyles;
1312
- - const container = shadowRoot.createChild('div');
1313
- - container.classList.add('image-preview-container', 'vbox', 'link');
1314
- - const img = container.createChild('img');
1315
- - img.src = imageURL;
1316
- - img.alt = LegacyComponents.ImagePreview.ImagePreview.defaultAltTextForImageURL(imageURL);
1317
- - const paintProfilerButton = container.createChild('a');
1318
- - paintProfilerButton.textContent = i18nString(UIStrings.paintProfiler);
1319
- - UI.ARIAUtils.markAsLink(container);
1320
- - container.tabIndex = 0;
1321
- - container.addEventListener('click', () => TimelinePanel.instance().select(selectionFromEvent(event)), false);
1322
- - container.addEventListener('keydown', keyEvent => {
1323
- - if (keyEvent.key === Platform.KeyboardUtilities.ENTER_KEY) {
1324
- - TimelinePanel.instance().select(selectionFromEvent(event));
1325
- - keyEvent.consume(true);
1326
- - }
1327
- - });
1328
- - return stylesContainer;
1329
- - }
1330
- -
1331
- static createEventDivider(event: Trace.Types.Events.Event, zeroTime: number): HTMLDivElement {
1332
- const eventDivider = document.createElement('div');
1333
- eventDivider.classList.add('resources-event-divider');
1334
- const {startTime: eventStartTime} = Trace.Helpers.Timing.eventTimingsMilliSeconds(event);
1335
-
1336
- const startTime = i18n.TimeUtilities.millisToString(eventStartTime - zeroTime);
1337
- - UI.Tooltip.Tooltip.install(
1338
- - eventDivider, i18nString(UIStrings.sAtS, {PH1: TimelineUIUtils.eventTitle(event), PH2: startTime}));
1339
- const style = TimelineUIUtils.markerStyleForEvent(event);
1340
- if (style.tall) {
1341
- eventDivider.style.backgroundColor = style.color;
1342
- @@ -2048,157 +813,6 @@ export class TimelineUIUtils {
1343
- return Trace.Styles.getCategoryStyles();
1344
- }
1345
-
1346
- - static generatePieChart(
1347
- - aggregatedStats: TimeRangeCategoryStats, selfCategory?: Trace.Styles.TimelineCategory,
1348
- - selfTime?: Trace.Types.Timing.Micro): Element {
1349
- - let total = 0;
1350
- - for (const categoryName in aggregatedStats) {
1351
- - total += aggregatedStats[categoryName];
1352
- - }
1353
- -
1354
- - const element = document.createElement('div');
1355
- - element.classList.add('timeline-details-view-pie-chart-wrapper');
1356
- - element.classList.add('hbox');
1357
- -
1358
- - const pieChart = new PerfUI.PieChart.PieChart();
1359
- - const slices: Array<{
1360
- - value: number,
1361
- - color: string,
1362
- - title: string,
1363
- - }> = [];
1364
- -
1365
- - function appendLegendRow(title: string, value: number, color: string): void {
1366
- - if (!value) {
1367
- - return;
1368
- - }
1369
- - slices.push({value, color, title});
1370
- - }
1371
- -
1372
- - // In case of self time, first add self, then children of the same category.
1373
- - if (selfCategory) {
1374
- - const selfTimeMilli = Trace.Helpers.Timing.microToMilli(selfTime || 0 as Trace.Types.Timing.Micro);
1375
- - if (selfTime) {
1376
- - appendLegendRow(
1377
- - i18nString(UIStrings.sSelf, {PH1: selfCategory.title}),
1378
- - selfTimeMilli,
1379
- - selfCategory.getCSSValue(),
1380
- - );
1381
- - }
1382
- - // Children of the same category.
1383
- - const categoryTime = aggregatedStats[selfCategory.name];
1384
- - const value = categoryTime - (selfTimeMilli || 0);
1385
- - if (value > 0) {
1386
- - appendLegendRow(
1387
- - i18nString(UIStrings.sChildren, {PH1: selfCategory.title}),
1388
- - value,
1389
- - selfCategory.getCSSValue(),
1390
- - );
1391
- - }
1392
- - }
1393
- -
1394
- - // Add other categories.
1395
- - for (const categoryName in Trace.Styles.getCategoryStyles()) {
1396
- - const category = Trace.Styles.getCategoryStyles()[categoryName as keyof Trace.Styles.CategoryPalette];
1397
- - if (categoryName === selfCategory?.name) {
1398
- - // Do not add an entry for this event's self category because 2
1399
- - // entries for it where added just before this for loop (for
1400
- - // self and children times).
1401
- - continue;
1402
- - }
1403
- - appendLegendRow(category.title, aggregatedStats[category.name], category.getCSSValue());
1404
- - }
1405
- -
1406
- - pieChart.data = {
1407
- - chartName: i18nString(UIStrings.timeSpentInRendering),
1408
- - size: 110,
1409
- - formatter: (value: number) => i18n.TimeUtilities.preciseMillisToString(value),
1410
- - showLegend: true,
1411
- - total,
1412
- - slices,
1413
- - };
1414
- - const pieChartContainer = element.createChild('div', 'vbox');
1415
- - pieChartContainer.appendChild(pieChart);
1416
- -
1417
- - return element;
1418
- - }
1419
- - // Generates a Summary component given a aggregated stats for categories.
1420
- - static generateSummaryDetails(
1421
- - aggregatedStats: Record<string, number>, rangeStart: number, rangeEnd: number,
1422
- - selectedEvents: Trace.Types.Events.Event[],
1423
- - thirdPartyTree: ThirdPartyTreeView.ThirdPartyTreeViewWidget): Element {
1424
- - const element = document.createElement('div');
1425
- - element.classList.add('timeline-details-range-summary', 'hbox');
1426
- -
1427
- - // First, the category bar chart.
1428
- - let total = 0;
1429
- - let categories: TimelineComponents.TimelineSummary.CategoryData[] = [];
1430
- - // Calculate total of all categories.
1431
- - for (const categoryName in aggregatedStats) {
1432
- - total += aggregatedStats[categoryName];
1433
- - }
1434
- -
1435
- - // Get stats values from categories.
1436
- - for (const categoryName in Trace.Styles.getCategoryStyles()) {
1437
- - const category = Trace.Styles.getCategoryStyles()[categoryName as keyof Trace.Styles.CategoryPalette];
1438
- - if (category.name === Trace.Styles.EventCategory.IDLE) {
1439
- - continue;
1440
- - }
1441
- - const value = aggregatedStats[category.name];
1442
- - if (!value) {
1443
- - continue;
1444
- - }
1445
- - const title = category.title;
1446
- - const color = category.getCSSValue();
1447
- - categories.push({value, color, title});
1448
- - }
1449
- -
1450
- - // Keeps the most useful categories on top.
1451
- - categories = categories.sort((a, b) => b.value - a.value);
1452
- - const start = Trace.Types.Timing.Milli(rangeStart);
1453
- - const end = Trace.Types.Timing.Milli(rangeEnd);
1454
- - const categorySummaryTable = new TimelineComponents.TimelineSummary.CategorySummary();
1455
- - categorySummaryTable.data = {
1456
- - rangeStart: start,
1457
- - rangeEnd: end,
1458
- - total,
1459
- - categories,
1460
- - selectedEvents,
1461
- - };
1462
- - element.append(categorySummaryTable);
1463
- - // Add the 3p datagrid
1464
- - const treeView = new ThirdPartyTreeView.ThirdPartyTreeElement();
1465
- - treeView.treeView = thirdPartyTree;
1466
- - UI.ARIAUtils.setLabel(treeView, i18nString(UIStrings.thirdPartyTable));
1467
- - element.append(treeView);
1468
- -
1469
- - return element;
1470
- - }
1471
- -
1472
- - static generateDetailsContentForFrame(
1473
- - frame: Trace.Types.Events.LegacyTimelineFrame, filmStrip: Trace.Extras.FilmStrip.Data|null,
1474
- - filmStripFrame: Trace.Extras.FilmStrip.Frame|null): DocumentFragment {
1475
- - const contentHelper = new TimelineDetailsContentHelper(null, null);
1476
- - contentHelper.addSection(i18nString(UIStrings.frame));
1477
- -
1478
- - const duration = TimelineUIUtils.frameDuration(frame);
1479
- - contentHelper.appendElementRow(i18nString(UIStrings.duration), duration);
1480
- - if (filmStrip && filmStripFrame) {
1481
- - const filmStripPreview = document.createElement('div');
1482
- - filmStripPreview.classList.add('timeline-filmstrip-preview');
1483
- - // TODO(paulirish): Adopt Util.ImageCache
1484
- - const uri = Trace.Handlers.ModelHandlers.Screenshots.screenshotImageDataUri(filmStripFrame.screenshotEvent);
1485
- - void UI.UIUtils.loadImage(uri).then(image => image && filmStripPreview.appendChild(image));
1486
- - contentHelper.appendElementRow('', filmStripPreview);
1487
- - filmStripPreview.addEventListener('click', frameClicked.bind(null, filmStrip, filmStripFrame), false);
1488
- - }
1489
- -
1490
- - function frameClicked(filmStrip: Trace.Extras.FilmStrip.Data, filmStripFrame: Trace.Extras.FilmStrip.Frame): void {
1491
- - PerfUI.FilmStripView.Dialog.fromFilmStrip(filmStrip, filmStripFrame.index);
1492
- - }
1493
- -
1494
- - return contentHelper.fragment;
1495
- - }
1496
- -
1497
- static frameDuration(frame: Trace.Types.Events.LegacyTimelineFrame): Element {
1498
- const offsetMilli = Trace.Helpers.Timing.microToMilli(frame.startTimeOffset);
1499
- const durationMilli = Trace.Helpers.Timing.microToMilli(Trace.Types.Timing.Micro(frame.endTime - frame.startTime));
1500
- @@ -2318,27 +932,6 @@ export class TimelineUIUtils {
1501
- return Common.ParsedURL.schemeIs(url, 'about:') ? `"${Platform.StringUtilities.trimMiddle(frame.name, trimAt)}"` :
1502
- frame.url.slice(0, trimAt);
1503
- }
1504
- -
1505
- - static getOriginWithEntity(
1506
- - entityMapper: Trace.EntityMapper.EntityMapper|null, parsedTrace: Trace.TraceModel.ParsedTrace,
1507
- - event: Trace.Types.Events.Event): string|null {
1508
- - const resolvedURL = SourceMapsResolver.SourceMapsResolver.resolvedURLForEntry(parsedTrace, event);
1509
- - if (!resolvedURL) {
1510
- - return null;
1511
- - }
1512
- - const parsedUrl = URL.parse(resolvedURL);
1513
- - if (!parsedUrl) {
1514
- - return null;
1515
- - }
1516
- -
1517
- - const entity = entityMapper?.entityForEvent(event) ?? null;
1518
- - if (!entity) {
1519
- - return null;
1520
- - }
1521
- -
1522
- - const originWithEntity = Utils.Helpers.formatOriginWithEntity(parsedUrl, entity, true);
1523
- - return originWithEntity;
1524
- - }
1525
- }
1526
-
1527
- export const aggregatedStatsKey = Symbol('aggregatedStats');
1528
- @@ -2357,147 +950,6 @@ export class EventDispatchTypeDescriptor {
1529
- }
1530
- }
1531
-
1532
- -export class TimelineDetailsContentHelper {
1533
- - fragment: DocumentFragment;
1534
- - #linkifier: LegacyComponents.Linkifier.Linkifier|null;
1535
- - private target: SDK.Target.Target|null;
1536
- - element: HTMLDivElement;
1537
- - private tableElement: HTMLElement;
1538
- -
1539
- - constructor(target: SDK.Target.Target|null, linkifier: LegacyComponents.Linkifier.Linkifier|null) {
1540
- - this.fragment = document.createDocumentFragment();
1541
- -
1542
- - this.#linkifier = linkifier;
1543
- - this.target = target;
1544
- -
1545
- - this.element = document.createElement('div');
1546
- - this.element.classList.add('timeline-details-view-block');
1547
- - this.tableElement = this.element.createChild('div', 'vbox timeline-details-chip-body');
1548
- - this.fragment.appendChild(this.element);
1549
- - }
1550
- -
1551
- - addSection(title: string, swatchColor?: string, event?: Trace.Types.Events.Event): void {
1552
- - if (!this.tableElement.hasChildNodes()) {
1553
- - this.element.removeChildren();
1554
- - } else {
1555
- - this.element = document.createElement('div');
1556
- - this.element.classList.add('timeline-details-view-block');
1557
- - this.fragment.appendChild(this.element);
1558
- - }
1559
- -
1560
- - if (title) {
1561
- - const titleElement = this.element.createChild('div', 'timeline-details-chip-title');
1562
- - if (swatchColor) {
1563
- - titleElement.createChild('div').style.backgroundColor = swatchColor;
1564
- - }
1565
- -
1566
- - const textChild = titleElement.createChild('span');
1567
- - textChild.textContent = title;
1568
- -
1569
- - if (event) {
1570
- - textChild.classList.add('timeline-details-chip-title-reveal-entry');
1571
- - textChild.addEventListener('click', function() {
1572
- - TimelinePanel.instance().zoomEvent(event);
1573
- - });
1574
- - }
1575
- - }
1576
- -
1577
- - this.tableElement = this.element.createChild('div', 'vbox timeline-details-chip-body');
1578
- - this.fragment.appendChild(this.element);
1579
- - }
1580
- -
1581
- - linkifier(): LegacyComponents.Linkifier.Linkifier|null {
1582
- - return this.#linkifier;
1583
- - }
1584
- -
1585
- - appendTextRow(title: string, value: string|number|boolean): void {
1586
- - const rowElement = this.tableElement.createChild('div', 'timeline-details-view-row');
1587
- - rowElement.createChild('div', 'timeline-details-view-row-title').textContent = title;
1588
- - rowElement.createChild('div', 'timeline-details-view-row-value').textContent = value.toString();
1589
- - }
1590
- -
1591
- - appendElementRow(title: string, content: string|Node, isWarning?: boolean, isStacked?: boolean): void {
1592
- - const rowElement = this.tableElement.createChild('div', 'timeline-details-view-row');
1593
- - rowElement.setAttribute('data-row-title', title);
1594
- - if (isWarning) {
1595
- - rowElement.classList.add('timeline-details-warning');
1596
- - }
1597
- - if (isStacked) {
1598
- - rowElement.classList.add('timeline-details-stack-values');
1599
- - }
1600
- - const titleElement = rowElement.createChild('div', 'timeline-details-view-row-title');
1601
- - titleElement.textContent = title;
1602
- - const valueElement = rowElement.createChild('div', 'timeline-details-view-row-value');
1603
- - if (content instanceof Node) {
1604
- - valueElement.appendChild(content);
1605
- - } else {
1606
- - UI.UIUtils.createTextChild(valueElement, content || '');
1607
- - }
1608
- - }
1609
- -
1610
- - appendLocationRow(
1611
- - title: string, url: string, startLine: number, startColumn?: number, text?: string, omitOrigin?: boolean): void {
1612
- - if (!this.#linkifier) {
1613
- - return;
1614
- - }
1615
- -
1616
- - const options = {
1617
- - tabStop: true,
1618
- - columnNumber: startColumn,
1619
- - showColumnNumber: true,
1620
- - inlineFrameIndex: 0,
1621
- - text,
1622
- - omitOrigin,
1623
- - };
1624
- - const link = this.#linkifier.maybeLinkifyScriptLocation(
1625
- - this.target, null, url as Platform.DevToolsPath.UrlString, startLine, options);
1626
- - if (!link) {
1627
- - return;
1628
- - }
1629
- - this.appendElementRow(title, link);
1630
- - }
1631
- -
1632
- - appendLocationRange(title: string, url: Platform.DevToolsPath.UrlString, startLine: number, endLine?: number): void {
1633
- - if (!this.#linkifier || !this.target) {
1634
- - return;
1635
- - }
1636
- - const locationContent = document.createElement('span');
1637
- - const link = this.#linkifier.maybeLinkifyScriptLocation(
1638
- - this.target, null, url, startLine, {tabStop: true, inlineFrameIndex: 0});
1639
- - if (!link) {
1640
- - return;
1641
- - }
1642
- - locationContent.appendChild(link);
1643
- - UI.UIUtils.createTextChild(
1644
- - locationContent, Platform.StringUtilities.sprintf(' [%s…%s]', startLine + 1, (endLine || 0) + 1 || ''));
1645
- - this.appendElementRow(title, locationContent);
1646
- - }
1647
- -
1648
- - createChildStackTraceElement(stackTrace: Protocol.Runtime.StackTrace): void {
1649
- - if (!this.#linkifier) {
1650
- - return;
1651
- - }
1652
- - const resolvedStackTrace: Protocol.Runtime.StackTrace = structuredClone(stackTrace);
1653
- - let currentResolvedStackTrace: Protocol.Runtime.StackTrace|undefined = resolvedStackTrace;
1654
- - while (currentResolvedStackTrace) {
1655
- - currentResolvedStackTrace.callFrames = currentResolvedStackTrace.callFrames.map(
1656
- - callFrame => ({
1657
- - ...callFrame,
1658
- - functionName: SourceMapsResolver.SourceMapsResolver.resolvedCodeLocationForCallFrame(callFrame)?.name ||
1659
- - callFrame.functionName,
1660
- - }));
1661
- - currentResolvedStackTrace = currentResolvedStackTrace.parent;
1662
- - }
1663
- - const stackTraceElement =
1664
- - this.tableElement.createChild('div', 'timeline-details-view-row timeline-details-stack-values');
1665
- - const callFrameContents = new LegacyComponents.JSPresentationUtils.StackTracePreviewContent(
1666
- - undefined, this.target ?? undefined, this.#linkifier,
1667
- - {stackTrace: resolvedStackTrace, tabStops: true, showColumnNumber: true});
1668
- - callFrameContents.markAsRoot();
1669
- - callFrameContents.show(stackTraceElement);
1670
- - }
1671
- -}
1672
- -
1673
- export const categoryBreakdownCacheSymbol = Symbol('categoryBreakdownCache');
1674
- export interface TimelineMarkerStyle {
1675
- title: string;
1676
- diff --git a/node_modules/chrome-devtools-frontend/front_end/ui/legacy/components/utils/Linkifier.ts b/node_modules/chrome-devtools-frontend/front_end/ui/legacy/components/utils/Linkifier.ts
1677
- index 7d19eae..e073846 100644
1678
- --- a/node_modules/chrome-devtools-frontend/front_end/ui/legacy/components/utils/Linkifier.ts
1679
- +++ b/node_modules/chrome-devtools-frontend/front_end/ui/legacy/components/utils/Linkifier.ts
1680
- @@ -16,7 +16,6 @@ import * as TextUtils from '../../../../models/text_utils/text_utils.js';
1681
- import type * as Trace from '../../../../models/trace/trace.js';
1682
- import * as Workspace from '../../../../models/workspace/workspace.js';
1683
- import type * as IconButton from '../../../components/icon_button/icon_button.js';
1684
- -import * as VisualLogging from '../../../visual_logging/visual_logging.js';
1685
- import * as UI from '../../legacy.js';
1686
-
1687
- const UIStrings = {
1688
- @@ -601,7 +600,6 @@ export class Linkifier extends Common.ObjectWrapper.ObjectWrapper<EventTypes> im
1689
- // @ts-expect-error
1690
- link.href = href;
1691
- }
1692
- - link.setAttribute('jslog', `${VisualLogging.link(jslogContext).track({click: true})}`);
1693
-
1694
- if (text instanceof HTMLElement) {
1695
- link.appendChild(text);
1696
- diff --git a/node_modules/chrome-devtools-frontend/front_end/ui/legacy/components/utils/utils.ts b/node_modules/chrome-devtools-frontend/front_end/ui/legacy/components/utils/utils.ts
1697
- index 2f98cde..cb95b85 100644
1698
- --- a/node_modules/chrome-devtools-frontend/front_end/ui/legacy/components/utils/utils.ts
1699
- +++ b/node_modules/chrome-devtools-frontend/front_end/ui/legacy/components/utils/utils.ts
1700
- @@ -2,16 +2,8 @@
1701
- // Use of this source code is governed by a BSD-style license that can be
1702
- // found in the LICENSE file.
1703
-
1704
- -import * as ImagePreview from './ImagePreview.js';
1705
- -import * as JSPresentationUtils from './JSPresentationUtils.js';
1706
- import * as Linkifier from './Linkifier.js';
1707
- -import * as Reload from './Reload.js';
1708
- -import * as TargetDetachedDialog from './TargetDetachedDialog.js';
1709
-
1710
- export {
1711
- - ImagePreview,
1712
- - JSPresentationUtils,
1713
- Linkifier,
1714
- - Reload,
1715
- - TargetDetachedDialog,
1716
- };