devtools-tracing 1.1.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/settings.local.json +14 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +28854 -0
- package/package.json +10 -8
- package/generate.ts +0 -649
- package/index.ts +0 -17
- package/lib/extension-api/ExtensionAPI.d.ts +0 -357
- package/lib/front_end/core/common/App.ts +0 -7
- package/lib/front_end/core/common/AppProvider.ts +0 -32
- package/lib/front_end/core/common/Base64.ts +0 -47
- package/lib/front_end/core/common/CharacterIdMap.ts +0 -30
- package/lib/front_end/core/common/Color.ts +0 -2506
- package/lib/front_end/core/common/ColorConverter.ts +0 -402
- package/lib/front_end/core/common/ColorUtils.ts +0 -252
- package/lib/front_end/core/common/Console.ts +0 -114
- package/lib/front_end/core/common/Debouncer.ts +0 -15
- package/lib/front_end/core/common/EventTarget.ts +0 -52
- package/lib/front_end/core/common/Gzip.ts +0 -74
- package/lib/front_end/core/common/JavaScriptMetaData.ts +0 -29
- package/lib/front_end/core/common/Lazy.ts +0 -31
- package/lib/front_end/core/common/Linkifier.ts +0 -55
- package/lib/front_end/core/common/MapWithDefault.ts +0 -26
- package/lib/front_end/core/common/Mutex.ts +0 -55
- package/lib/front_end/core/common/Object.ts +0 -145
- package/lib/front_end/core/common/ParsedURL.ts +0 -554
- package/lib/front_end/core/common/Progress.ts +0 -180
- package/lib/front_end/core/common/QueryParamHandler.ts +0 -7
- package/lib/front_end/core/common/ResolverBase.ts +0 -85
- package/lib/front_end/core/common/ResourceType.ts +0 -588
- package/lib/front_end/core/common/ReturnToPanel.ts +0 -17
- package/lib/front_end/core/common/Revealer.ts +0 -192
- package/lib/front_end/core/common/Runnable.ts +0 -41
- package/lib/front_end/core/common/SegmentedRange.ts +0 -87
- package/lib/front_end/core/common/SettingRegistration.ts +0 -339
- package/lib/front_end/core/common/Settings.ts +0 -1497
- package/lib/front_end/core/common/SimpleHistoryManager.ts +0 -124
- package/lib/front_end/core/common/StringOutputStream.ts +0 -26
- package/lib/front_end/core/common/TextDictionary.ts +0 -48
- package/lib/front_end/core/common/Throttler.ts +0 -99
- package/lib/front_end/core/common/Trie.ts +0 -152
- package/lib/front_end/core/common/Worker.ts +0 -60
- package/lib/front_end/core/common/common.ts +0 -81
- package/lib/front_end/core/host/AidaClient.ts +0 -733
- package/lib/front_end/core/host/GdpClient.ts +0 -316
- package/lib/front_end/core/host/InspectorFrontendHost.ts +0 -648
- package/lib/front_end/core/host/InspectorFrontendHostAPI.ts +0 -551
- package/lib/front_end/core/host/Platform.ts +0 -76
- package/lib/front_end/core/host/ResourceLoader.ts +0 -282
- package/lib/front_end/core/host/UserMetrics.ts +0 -1230
- package/lib/front_end/core/host/host.ts +0 -23
- package/lib/front_end/core/i18n/ByteUtilities.ts +0 -82
- package/lib/front_end/core/i18n/DevToolsLocale.ts +0 -87
- package/lib/front_end/core/i18n/NumberFormatter.ts +0 -82
- package/lib/front_end/core/i18n/i18n.ts +0 -17
- package/lib/front_end/core/i18n/i18nImpl.ts +0 -204
- package/lib/front_end/core/i18n/i18nTypes.ts +0 -10
- package/lib/front_end/core/i18n/locales.js +0 -14
- package/lib/front_end/core/i18n/time-utilities.ts +0 -174
- package/lib/front_end/core/platform/ArrayUtilities.ts +0 -271
- package/lib/front_end/core/platform/Brand.ts +0 -23
- package/lib/front_end/core/platform/Constructor.ts +0 -10
- package/lib/front_end/core/platform/DOMUtilities.ts +0 -138
- package/lib/front_end/core/platform/DateUtilities.ts +0 -15
- package/lib/front_end/core/platform/DevToolsPath.ts +0 -53
- package/lib/front_end/core/platform/KeyboardUtilities.ts +0 -38
- package/lib/front_end/core/platform/MapUtilities.ts +0 -95
- package/lib/front_end/core/platform/MimeType.ts +0 -175
- package/lib/front_end/core/platform/NumberUtilities.ts +0 -80
- package/lib/front_end/core/platform/StringUtilities.ts +0 -588
- package/lib/front_end/core/platform/Timing.ts +0 -17
- package/lib/front_end/core/platform/TypedArrayUtilities.ts +0 -189
- package/lib/front_end/core/platform/TypescriptUtilities.ts +0 -86
- package/lib/front_end/core/platform/UIString.ts +0 -39
- package/lib/front_end/core/platform/UserVisibleError.ts +0 -28
- package/lib/front_end/core/platform/platform.ts +0 -45
- package/lib/front_end/core/protocol_client/ConnectionTransport.ts +0 -26
- package/lib/front_end/core/protocol_client/InspectorBackend.ts +0 -1050
- package/lib/front_end/core/protocol_client/NodeURL.ts +0 -42
- package/lib/front_end/core/protocol_client/protocol_client.ts +0 -13
- package/lib/front_end/core/root/Runtime.ts +0 -609
- package/lib/front_end/core/root/root.ts +0 -6
- package/lib/front_end/core/sdk/AccessibilityModel.ts +0 -353
- package/lib/front_end/core/sdk/AnimationModel.ts +0 -1041
- package/lib/front_end/core/sdk/AutofillModel.ts +0 -184
- package/lib/front_end/core/sdk/CPUProfilerModel.ts +0 -148
- package/lib/front_end/core/sdk/CPUThrottlingManager.ts +0 -282
- package/lib/front_end/core/sdk/CSSContainerQuery.ts +0 -139
- package/lib/front_end/core/sdk/CSSFontFace.ts +0 -40
- package/lib/front_end/core/sdk/CSSLayer.ts +0 -30
- package/lib/front_end/core/sdk/CSSMatchedStyles.ts +0 -1646
- package/lib/front_end/core/sdk/CSSMedia.ts +0 -121
- package/lib/front_end/core/sdk/CSSMetadata.ts +0 -1647
- package/lib/front_end/core/sdk/CSSModel.ts +0 -1128
- package/lib/front_end/core/sdk/CSSProperty.ts +0 -384
- package/lib/front_end/core/sdk/CSSPropertyParser.ts +0 -681
- package/lib/front_end/core/sdk/CSSPropertyParserMatchers.ts +0 -1395
- package/lib/front_end/core/sdk/CSSQuery.ts +0 -72
- package/lib/front_end/core/sdk/CSSRule.ts +0 -465
- package/lib/front_end/core/sdk/CSSScope.ts +0 -30
- package/lib/front_end/core/sdk/CSSStartingStyle.ts +0 -29
- package/lib/front_end/core/sdk/CSSStyleDeclaration.ts +0 -313
- package/lib/front_end/core/sdk/CSSStyleSheetHeader.ts +0 -196
- package/lib/front_end/core/sdk/CSSSupports.ts +0 -33
- package/lib/front_end/core/sdk/CategorizedBreakpoint.ts +0 -64
- package/lib/front_end/core/sdk/ChildTargetManager.ts +0 -314
- package/lib/front_end/core/sdk/CompilerSourceMappingContentProvider.ts +0 -62
- package/lib/front_end/core/sdk/Connections.ts +0 -293
- package/lib/front_end/core/sdk/ConsoleModel.ts +0 -808
- package/lib/front_end/core/sdk/ConsoleModelTypes.ts +0 -15
- package/lib/front_end/core/sdk/Cookie.ts +0 -319
- package/lib/front_end/core/sdk/CookieModel.ts +0 -239
- package/lib/front_end/core/sdk/CookieParser.ts +0 -185
- package/lib/front_end/core/sdk/DOMDebuggerModel.ts +0 -787
- package/lib/front_end/core/sdk/DOMModel.ts +0 -1961
- package/lib/front_end/core/sdk/DebuggerModel.ts +0 -1605
- package/lib/front_end/core/sdk/EmulationModel.ts +0 -648
- package/lib/front_end/core/sdk/EnhancedTracesParser.ts +0 -515
- package/lib/front_end/core/sdk/EventBreakpointsModel.ts +0 -183
- package/lib/front_end/core/sdk/FrameAssociated.ts +0 -11
- package/lib/front_end/core/sdk/FrameManager.ts +0 -259
- package/lib/front_end/core/sdk/HeapProfilerModel.ts +0 -225
- package/lib/front_end/core/sdk/HttpReasonPhraseStrings.ts +0 -77
- package/lib/front_end/core/sdk/IOModel.ts +0 -91
- package/lib/front_end/core/sdk/IsolateManager.ts +0 -257
- package/lib/front_end/core/sdk/IssuesModel.ts +0 -70
- package/lib/front_end/core/sdk/LayerTreeBase.ts +0 -169
- package/lib/front_end/core/sdk/LogModel.ts +0 -56
- package/lib/front_end/core/sdk/NetworkManager.ts +0 -2823
- package/lib/front_end/core/sdk/NetworkRequest.ts +0 -2253
- package/lib/front_end/core/sdk/OverlayColorGenerator.ts +0 -52
- package/lib/front_end/core/sdk/OverlayModel.ts +0 -1011
- package/lib/front_end/core/sdk/OverlayPersistentHighlighter.ts +0 -522
- package/lib/front_end/core/sdk/PageLoad.ts +0 -35
- package/lib/front_end/core/sdk/PageResourceLoader.ts +0 -435
- package/lib/front_end/core/sdk/PaintProfiler.ts +0 -110
- package/lib/front_end/core/sdk/PerformanceMetricsModel.ts +0 -84
- package/lib/front_end/core/sdk/PreloadingModel.ts +0 -863
- package/lib/front_end/core/sdk/RehydratingConnection.ts +0 -386
- package/lib/front_end/core/sdk/RehydratingObject.ts +0 -66
- package/lib/front_end/core/sdk/RemoteObject.ts +0 -1160
- package/lib/front_end/core/sdk/Resource.ts +0 -232
- package/lib/front_end/core/sdk/ResourceTreeModel.ts +0 -1160
- package/lib/front_end/core/sdk/RuntimeModel.ts +0 -732
- package/lib/front_end/core/sdk/SDKModel.ts +0 -65
- package/lib/front_end/core/sdk/ScopeTreeCache.ts +0 -45
- package/lib/front_end/core/sdk/ScreenCaptureModel.ts +0 -255
- package/lib/front_end/core/sdk/Script.ts +0 -534
- package/lib/front_end/core/sdk/SecurityOriginManager.ts +0 -76
- package/lib/front_end/core/sdk/ServerSentEvents.ts +0 -80
- package/lib/front_end/core/sdk/ServerSentEventsProtocol.ts +0 -122
- package/lib/front_end/core/sdk/ServerTiming.ts +0 -260
- package/lib/front_end/core/sdk/ServiceWorkerCacheModel.ts +0 -377
- package/lib/front_end/core/sdk/ServiceWorkerManager.ts +0 -605
- package/lib/front_end/core/sdk/SourceMap.ts +0 -867
- package/lib/front_end/core/sdk/SourceMapCache.ts +0 -54
- package/lib/front_end/core/sdk/SourceMapFunctionRanges.ts +0 -156
- package/lib/front_end/core/sdk/SourceMapManager.ts +0 -239
- package/lib/front_end/core/sdk/SourceMapScopeChainEntry.ts +0 -189
- package/lib/front_end/core/sdk/SourceMapScopesInfo.ts +0 -508
- package/lib/front_end/core/sdk/StorageBucketsModel.ts +0 -204
- package/lib/front_end/core/sdk/StorageKeyManager.ts +0 -98
- package/lib/front_end/core/sdk/Target.ts +0 -332
- package/lib/front_end/core/sdk/TargetManager.ts +0 -453
- package/lib/front_end/core/sdk/TraceObject.ts +0 -61
- package/lib/front_end/core/sdk/WebAuthnModel.ts +0 -104
- package/lib/front_end/core/sdk/sdk.ts +0 -174
- package/lib/front_end/entrypoints/formatter_worker/FormatterActions.ts +0 -59
- package/lib/front_end/generated/InspectorBackendCommands.js +0 -1617
- package/lib/front_end/generated/SupportedCSSProperties.js +0 -7512
- package/lib/front_end/generated/protocol-proxy-api.d.ts +0 -5022
- package/lib/front_end/generated/protocol.ts +0 -22014
- package/lib/front_end/models/bindings/CSSWorkspaceBinding.ts +0 -318
- package/lib/front_end/models/bindings/CompilerScriptMapping.ts +0 -536
- package/lib/front_end/models/bindings/ContentProviderBasedProject.ts +0 -187
- package/lib/front_end/models/bindings/DebuggerLanguagePlugins.ts +0 -1197
- package/lib/front_end/models/bindings/DebuggerWorkspaceBinding.ts +0 -733
- package/lib/front_end/models/bindings/DefaultScriptMapping.ts +0 -141
- package/lib/front_end/models/bindings/FileUtils.ts +0 -228
- package/lib/front_end/models/bindings/LiveLocation.ts +0 -81
- package/lib/front_end/models/bindings/NetworkProject.ts +0 -157
- package/lib/front_end/models/bindings/PresentationConsoleMessageHelper.ts +0 -312
- package/lib/front_end/models/bindings/ResourceMapping.ts +0 -539
- package/lib/front_end/models/bindings/ResourceScriptMapping.ts +0 -491
- package/lib/front_end/models/bindings/ResourceUtils.ts +0 -103
- package/lib/front_end/models/bindings/SASSSourceMapping.ts +0 -222
- package/lib/front_end/models/bindings/StylesSourceMapping.ts +0 -316
- package/lib/front_end/models/bindings/TempFile.ts +0 -67
- package/lib/front_end/models/bindings/bindings.ts +0 -39
- package/lib/front_end/models/cpu_profile/CPUProfileDataModel.ts +0 -571
- package/lib/front_end/models/cpu_profile/ProfileTreeModel.ts +0 -103
- package/lib/front_end/models/cpu_profile/cpu_profile.ts +0 -11
- package/lib/front_end/models/formatter/FormatterWorkerPool.ts +0 -219
- package/lib/front_end/models/formatter/ScriptFormatter.ts +0 -112
- package/lib/front_end/models/formatter/formatter.ts +0 -8
- package/lib/front_end/models/source_map_scopes/NamesResolver.ts +0 -765
- package/lib/front_end/models/source_map_scopes/ScopeChainModel.ts +0 -84
- package/lib/front_end/models/source_map_scopes/source_map_scopes.ts +0 -11
- package/lib/front_end/models/stack_trace/StackTrace.ts +0 -53
- package/lib/front_end/models/stack_trace/StackTraceImpl.ts +0 -85
- package/lib/front_end/models/stack_trace/StackTraceModel.ts +0 -128
- package/lib/front_end/models/stack_trace/Trie.ts +0 -163
- package/lib/front_end/models/stack_trace/stack_trace.ts +0 -9
- package/lib/front_end/models/stack_trace/stack_trace_impl.ts +0 -13
- package/lib/front_end/models/text_utils/CodeMirrorUtils.ts +0 -37
- package/lib/front_end/models/text_utils/ContentData.ts +0 -199
- package/lib/front_end/models/text_utils/ContentProvider.ts +0 -68
- package/lib/front_end/models/text_utils/StaticContentProvider.ts +0 -49
- package/lib/front_end/models/text_utils/StreamingContentData.ts +0 -108
- package/lib/front_end/models/text_utils/Text.ts +0 -90
- package/lib/front_end/models/text_utils/TextCursor.ts +0 -44
- package/lib/front_end/models/text_utils/TextRange.ts +0 -266
- package/lib/front_end/models/text_utils/TextUtils.ts +0 -401
- package/lib/front_end/models/text_utils/WasmDisassembly.ts +0 -87
- package/lib/front_end/models/text_utils/text_utils.ts +0 -27
- package/lib/front_end/models/trace/EntityMapper.ts +0 -141
- package/lib/front_end/models/trace/EventsSerializer.ts +0 -101
- package/lib/front_end/models/trace/LanternComputationData.ts +0 -438
- package/lib/front_end/models/trace/ModelImpl.ts +0 -236
- package/lib/front_end/models/trace/Name.ts +0 -136
- package/lib/front_end/models/trace/Processor.ts +0 -652
- package/lib/front_end/models/trace/Styles.ts +0 -1138
- package/lib/front_end/models/trace/extras/FilmStrip.ts +0 -78
- package/lib/front_end/models/trace/extras/MainThreadActivity.ts +0 -86
- package/lib/front_end/models/trace/extras/ScriptDuplication.ts +0 -236
- package/lib/front_end/models/trace/extras/StackTraceForEvent.ts +0 -203
- package/lib/front_end/models/trace/extras/ThirdParties.ts +0 -164
- package/lib/front_end/models/trace/extras/TraceFilter.ts +0 -62
- package/lib/front_end/models/trace/extras/TraceTree.ts +0 -701
- package/lib/front_end/models/trace/extras/extras.ts +0 -11
- package/lib/front_end/models/trace/handlers/AnimationFramesHandler.ts +0 -128
- package/lib/front_end/models/trace/handlers/AnimationHandler.ts +0 -36
- package/lib/front_end/models/trace/handlers/AsyncJSCallsHandler.ts +0 -239
- package/lib/front_end/models/trace/handlers/AuctionWorkletsHandler.ts +0 -183
- package/lib/front_end/models/trace/handlers/DOMStatsHandler.ts +0 -31
- package/lib/front_end/models/trace/handlers/ExtensionTraceDataHandler.ts +0 -306
- package/lib/front_end/models/trace/handlers/FlowsHandler.ts +0 -175
- package/lib/front_end/models/trace/handlers/FramesHandler.ts +0 -571
- package/lib/front_end/models/trace/handlers/GPUHandler.ts +0 -50
- package/lib/front_end/models/trace/handlers/ImagePaintingHandler.ts +0 -183
- package/lib/front_end/models/trace/handlers/InitiatorsHandler.ts +0 -193
- package/lib/front_end/models/trace/handlers/InvalidationsHandler.ts +0 -168
- package/lib/front_end/models/trace/handlers/LargestImagePaintHandler.ts +0 -109
- package/lib/front_end/models/trace/handlers/LargestTextPaintHandler.ts +0 -35
- package/lib/front_end/models/trace/handlers/LayerTreeHandler.ts +0 -123
- package/lib/front_end/models/trace/handlers/LayoutShiftsHandler.ts +0 -573
- package/lib/front_end/models/trace/handlers/MemoryHandler.ts +0 -31
- package/lib/front_end/models/trace/handlers/MetaHandler.ts +0 -525
- package/lib/front_end/models/trace/handlers/ModelHandlers.ts +0 -34
- package/lib/front_end/models/trace/handlers/NetworkRequestsHandler.ts +0 -672
- package/lib/front_end/models/trace/handlers/PageFramesHandler.ts +0 -52
- package/lib/front_end/models/trace/handlers/PageLoadMetricsHandler.ts +0 -460
- package/lib/front_end/models/trace/handlers/RendererHandler.ts +0 -428
- package/lib/front_end/models/trace/handlers/SamplesHandler.ts +0 -271
- package/lib/front_end/models/trace/handlers/ScreenshotsHandler.ts +0 -122
- package/lib/front_end/models/trace/handlers/ScriptsHandler.ts +0 -336
- package/lib/front_end/models/trace/handlers/SelectorStatsHandler.ts +0 -110
- package/lib/front_end/models/trace/handlers/Threads.ts +0 -139
- package/lib/front_end/models/trace/handlers/UserInteractionsHandler.ts +0 -400
- package/lib/front_end/models/trace/handlers/UserTimingsHandler.ts +0 -233
- package/lib/front_end/models/trace/handlers/WarningsHandler.ts +0 -162
- package/lib/front_end/models/trace/handlers/WorkersHandler.ts +0 -45
- package/lib/front_end/models/trace/handlers/handlers.ts +0 -8
- package/lib/front_end/models/trace/handlers/helpers.ts +0 -196
- package/lib/front_end/models/trace/handlers/types.ts +0 -75
- package/lib/front_end/models/trace/helpers/Extensions.ts +0 -54
- package/lib/front_end/models/trace/helpers/Network.ts +0 -129
- package/lib/front_end/models/trace/helpers/SamplesIntegrator.ts +0 -544
- package/lib/front_end/models/trace/helpers/SyntheticEvents.ts +0 -87
- package/lib/front_end/models/trace/helpers/Timing.ts +0 -248
- package/lib/front_end/models/trace/helpers/Trace.ts +0 -928
- package/lib/front_end/models/trace/helpers/TreeHelpers.ts +0 -320
- package/lib/front_end/models/trace/helpers/helpers.ts +0 -11
- package/lib/front_end/models/trace/insights/CLSCulprits.ts +0 -668
- package/lib/front_end/models/trace/insights/Cache.ts +0 -269
- package/lib/front_end/models/trace/insights/Common.ts +0 -453
- package/lib/front_end/models/trace/insights/DOMSize.ts +0 -223
- package/lib/front_end/models/trace/insights/DocumentLatency.ts +0 -319
- package/lib/front_end/models/trace/insights/DuplicatedJavaScript.ts +0 -126
- package/lib/front_end/models/trace/insights/FontDisplay.ts +0 -119
- package/lib/front_end/models/trace/insights/ForcedReflow.ts +0 -220
- package/lib/front_end/models/trace/insights/INPBreakdown.ts +0 -171
- package/lib/front_end/models/trace/insights/ImageDelivery.ts +0 -348
- package/lib/front_end/models/trace/insights/LCPBreakdown.ts +0 -268
- package/lib/front_end/models/trace/insights/LCPDiscovery.ts +0 -237
- package/lib/front_end/models/trace/insights/LegacyJavaScript.ts +0 -138
- package/lib/front_end/models/trace/insights/Models.ts +0 -22
- package/lib/front_end/models/trace/insights/ModernHTTP.ts +0 -257
- package/lib/front_end/models/trace/insights/NetworkDependencyTree.ts +0 -726
- package/lib/front_end/models/trace/insights/RenderBlocking.ts +0 -257
- package/lib/front_end/models/trace/insights/SlowCSSSelector.ts +0 -175
- package/lib/front_end/models/trace/insights/Statistics.ts +0 -101
- package/lib/front_end/models/trace/insights/ThirdParties.ts +0 -130
- package/lib/front_end/models/trace/insights/Viewport.ts +0 -138
- package/lib/front_end/models/trace/insights/insights.ts +0 -10
- package/lib/front_end/models/trace/insights/types.ts +0 -157
- package/lib/front_end/models/trace/lantern/core/LanternError.ts +0 -7
- package/lib/front_end/models/trace/lantern/core/NetworkAnalyzer.ts +0 -619
- package/lib/front_end/models/trace/lantern/core/core.ts +0 -6
- package/lib/front_end/models/trace/lantern/graph/BaseNode.ts +0 -345
- package/lib/front_end/models/trace/lantern/graph/CPUNode.ts +0 -80
- package/lib/front_end/models/trace/lantern/graph/NetworkNode.ts +0 -101
- package/lib/front_end/models/trace/lantern/graph/PageDependencyGraph.ts +0 -636
- package/lib/front_end/models/trace/lantern/graph/graph.ts +0 -8
- package/lib/front_end/models/trace/lantern/lantern.ts +0 -17
- package/lib/front_end/models/trace/lantern/metrics/FirstContentfulPaint.ts +0 -187
- package/lib/front_end/models/trace/lantern/metrics/Interactive.ts +0 -88
- package/lib/front_end/models/trace/lantern/metrics/LargestContentfulPaint.ts +0 -92
- package/lib/front_end/models/trace/lantern/metrics/MaxPotentialFID.ts +0 -72
- package/lib/front_end/models/trace/lantern/metrics/Metric.ts +0 -126
- package/lib/front_end/models/trace/lantern/metrics/SpeedIndex.ts +0 -126
- package/lib/front_end/models/trace/lantern/metrics/TBTUtils.ts +0 -82
- package/lib/front_end/models/trace/lantern/metrics/TotalBlockingTime.ts +0 -112
- package/lib/front_end/models/trace/lantern/metrics/metrics.ts +0 -12
- package/lib/front_end/models/trace/lantern/simulation/ConnectionPool.ts +0 -150
- package/lib/front_end/models/trace/lantern/simulation/Constants.ts +0 -46
- package/lib/front_end/models/trace/lantern/simulation/DNSCache.ts +0 -61
- package/lib/front_end/models/trace/lantern/simulation/SimulationTimingMap.ts +0 -196
- package/lib/front_end/models/trace/lantern/simulation/Simulator.ts +0 -556
- package/lib/front_end/models/trace/lantern/simulation/TCPConnection.ts +0 -192
- package/lib/front_end/models/trace/lantern/simulation/simulation.ts +0 -10
- package/lib/front_end/models/trace/lantern/types/Lantern.ts +0 -220
- package/lib/front_end/models/trace/lantern/types/types.ts +0 -5
- package/lib/front_end/models/trace/trace.ts +0 -33
- package/lib/front_end/models/trace/types/Configuration.ts +0 -110
- package/lib/front_end/models/trace/types/Extensions.ts +0 -136
- package/lib/front_end/models/trace/types/File.ts +0 -281
- package/lib/front_end/models/trace/types/Overlays.ts +0 -138
- package/lib/front_end/models/trace/types/Timing.ts +0 -30
- package/lib/front_end/models/trace/types/TraceEvents.ts +0 -3277
- package/lib/front_end/models/trace/types/types.ts +0 -10
- package/lib/front_end/models/trace_source_maps_resolver/SourceMapsResolver.ts +0 -240
- package/lib/front_end/models/trace_source_maps_resolver/trace_source_maps_resolver.ts +0 -5
- package/lib/front_end/models/workspace/FileManager.ts +0 -97
- package/lib/front_end/models/workspace/IgnoreListManager.ts +0 -628
- package/lib/front_end/models/workspace/SearchConfig.ts +0 -149
- package/lib/front_end/models/workspace/UISourceCode.ts +0 -698
- package/lib/front_end/models/workspace/WorkspaceImpl.ts +0 -339
- package/lib/front_end/models/workspace/workspace.ts +0 -17
- package/lib/front_end/panels/timeline/TimelineUIUtils.ts +0 -1029
- package/lib/front_end/panels/timeline/extensions/ExtensionUI.ts +0 -49
- package/lib/front_end/panels/timeline/extensions/extensions.ts +0 -9
- package/lib/front_end/third_party/codemirror.next/LICENSE +0 -21
- package/lib/front_end/third_party/codemirror.next/README.chromium +0 -30
- package/lib/front_end/third_party/codemirror.next/bundle-tsconfig.json +0 -24
- package/lib/front_end/third_party/codemirror.next/bundle.ts +0 -135
- package/lib/front_end/third_party/codemirror.next/chunk/angular.js +0 -2
- package/lib/front_end/third_party/codemirror.next/chunk/angular.js.map +0 -1
- package/lib/front_end/third_party/codemirror.next/chunk/codemirror.js +0 -2
- package/lib/front_end/third_party/codemirror.next/chunk/codemirror.js.map +0 -1
- package/lib/front_end/third_party/codemirror.next/chunk/cpp.js +0 -2
- package/lib/front_end/third_party/codemirror.next/chunk/cpp.js.map +0 -1
- package/lib/front_end/third_party/codemirror.next/chunk/css.js +0 -2
- package/lib/front_end/third_party/codemirror.next/chunk/html.js +0 -4
- package/lib/front_end/third_party/codemirror.next/chunk/java.js +0 -2
- package/lib/front_end/third_party/codemirror.next/chunk/java.js.map +0 -1
- package/lib/front_end/third_party/codemirror.next/chunk/javascript.js +0 -2
- package/lib/front_end/third_party/codemirror.next/chunk/legacy.js +0 -2
- package/lib/front_end/third_party/codemirror.next/chunk/legacy.js.map +0 -1
- package/lib/front_end/third_party/codemirror.next/chunk/less.js +0 -2
- package/lib/front_end/third_party/codemirror.next/chunk/less.js.map +0 -1
- package/lib/front_end/third_party/codemirror.next/chunk/markdown.js +0 -2
- package/lib/front_end/third_party/codemirror.next/chunk/markdown.js.map +0 -1
- package/lib/front_end/third_party/codemirror.next/chunk/php.js +0 -2
- package/lib/front_end/third_party/codemirror.next/chunk/php.js.map +0 -1
- package/lib/front_end/third_party/codemirror.next/chunk/python.js +0 -2
- package/lib/front_end/third_party/codemirror.next/chunk/python.js.map +0 -1
- package/lib/front_end/third_party/codemirror.next/chunk/sass.js +0 -2
- package/lib/front_end/third_party/codemirror.next/chunk/sass.js.map +0 -1
- package/lib/front_end/third_party/codemirror.next/chunk/svelte.js +0 -2
- package/lib/front_end/third_party/codemirror.next/chunk/svelte.js.map +0 -1
- package/lib/front_end/third_party/codemirror.next/chunk/vue.js +0 -2
- package/lib/front_end/third_party/codemirror.next/chunk/vue.js.map +0 -1
- package/lib/front_end/third_party/codemirror.next/chunk/wast.js +0 -2
- package/lib/front_end/third_party/codemirror.next/chunk/wast.js.map +0 -1
- package/lib/front_end/third_party/codemirror.next/chunk/xml.js +0 -2
- package/lib/front_end/third_party/codemirror.next/chunk/xml.js.map +0 -1
- package/lib/front_end/third_party/codemirror.next/codemirror.next.d.ts +0 -8057
- package/lib/front_end/third_party/codemirror.next/codemirror.next.js +0 -2
- package/lib/front_end/third_party/codemirror.next/codemirror.next.js.map +0 -1
- package/lib/front_end/third_party/codemirror.next/package.json +0 -43
- package/lib/front_end/third_party/codemirror.next/rebuild.sh +0 -6
- package/lib/front_end/third_party/codemirror.next/rollup.config.mjs +0 -49
- package/lib/front_end/third_party/i18n/LICENSE +0 -202
- package/lib/front_end/third_party/i18n/README.chromium +0 -15
- package/lib/front_end/third_party/i18n/i18n-impl.ts +0 -61
- package/lib/front_end/third_party/i18n/i18n.ts +0 -11
- package/lib/front_end/third_party/i18n/localized-string-set.ts +0 -129
- package/lib/front_end/third_party/intl-messageformat/LICENSE +0 -33
- package/lib/front_end/third_party/intl-messageformat/README.chromium +0 -24
- package/lib/front_end/third_party/intl-messageformat/intl-messageformat-tsconfig.json +0 -16
- package/lib/front_end/third_party/intl-messageformat/intl-messageformat.ts +0 -6
- package/lib/front_end/third_party/intl-messageformat/package/LICENSE.md +0 -33
- package/lib/front_end/third_party/intl-messageformat/package/README.md +0 -3
- package/lib/front_end/third_party/intl-messageformat/package/index.d.ts +0 -6
- package/lib/front_end/third_party/intl-messageformat/package/index.d.ts.map +0 -1
- package/lib/front_end/third_party/intl-messageformat/package/index.js +0 -13
- package/lib/front_end/third_party/intl-messageformat/package/intl-messageformat.esm.d.ts +0 -5
- package/lib/front_end/third_party/intl-messageformat/package/intl-messageformat.esm.js +0 -1710
- package/lib/front_end/third_party/intl-messageformat/package/intl-messageformat.iife.js +0 -1815
- package/lib/front_end/third_party/intl-messageformat/package/lib/index.d.ts +0 -6
- package/lib/front_end/third_party/intl-messageformat/package/lib/index.d.ts.map +0 -1
- package/lib/front_end/third_party/intl-messageformat/package/lib/index.js +0 -10
- package/lib/front_end/third_party/intl-messageformat/package/lib/src/core.d.ts +0 -34
- package/lib/front_end/third_party/intl-messageformat/package/lib/src/core.d.ts.map +0 -1
- package/lib/front_end/third_party/intl-messageformat/package/lib/src/core.js +0 -229
- package/lib/front_end/third_party/intl-messageformat/package/lib/src/error.d.ts +0 -28
- package/lib/front_end/third_party/intl-messageformat/package/lib/src/error.d.ts.map +0 -1
- package/lib/front_end/third_party/intl-messageformat/package/lib/src/error.js +0 -48
- package/lib/front_end/third_party/intl-messageformat/package/lib/src/formatters.d.ts +0 -34
- package/lib/front_end/third_party/intl-messageformat/package/lib/src/formatters.d.ts.map +0 -1
- package/lib/front_end/third_party/intl-messageformat/package/lib/src/formatters.js +0 -179
- package/lib/front_end/third_party/intl-messageformat/package/package.json +0 -42
- package/lib/front_end/third_party/intl-messageformat/package/src/core.d.ts +0 -34
- package/lib/front_end/third_party/intl-messageformat/package/src/core.d.ts.map +0 -1
- package/lib/front_end/third_party/intl-messageformat/package/src/core.js +0 -230
- package/lib/front_end/third_party/intl-messageformat/package/src/error.d.ts +0 -28
- package/lib/front_end/third_party/intl-messageformat/package/src/error.d.ts.map +0 -1
- package/lib/front_end/third_party/intl-messageformat/package/src/error.js +0 -51
- package/lib/front_end/third_party/intl-messageformat/package/src/formatters.d.ts +0 -34
- package/lib/front_end/third_party/intl-messageformat/package/src/formatters.d.ts.map +0 -1
- package/lib/front_end/third_party/intl-messageformat/package/src/formatters.js +0 -182
- package/lib/front_end/third_party/intl-messageformat/package/src/icu-messageformat-parser/error.d.ts +0 -79
- package/lib/front_end/third_party/intl-messageformat/package/src/icu-messageformat-parser/index.d.ts +0 -15
- package/lib/front_end/third_party/intl-messageformat/package/src/icu-messageformat-parser/parser.d.ts +0 -153
- package/lib/front_end/third_party/intl-messageformat/package/src/icu-messageformat-parser/types.d.ts +0 -139
- package/lib/front_end/third_party/legacy-javascript/LICENSE +0 -202
- package/lib/front_end/third_party/legacy-javascript/README.chromium +0 -13
- package/lib/front_end/third_party/legacy-javascript/legacy-javascript-tsconfig.json +0 -8
- package/lib/front_end/third_party/legacy-javascript/legacy-javascript.ts +0 -3
- package/lib/front_end/third_party/legacy-javascript/lib/legacy-javascript.d.ts +0 -18
- package/lib/front_end/third_party/legacy-javascript/lib/legacy-javascript.js +0 -943
- package/lib/front_end/third_party/legacy-javascript/package.json +0 -8
- package/lib/front_end/third_party/legacy-javascript/rebuild.sh +0 -9
- package/lib/front_end/third_party/source-map-scopes-codec/LICENSE +0 -26
- package/lib/front_end/third_party/source-map-scopes-codec/README.chromium +0 -31
- package/lib/front_end/third_party/source-map-scopes-codec/package/CONTRIBUTING.md +0 -33
- package/lib/front_end/third_party/source-map-scopes-codec/package/LICENSE +0 -26
- package/lib/front_end/third_party/source-map-scopes-codec/package/README.md +0 -64
- package/lib/front_end/third_party/source-map-scopes-codec/package/_dist/src/builder/builder.d.ts +0 -62
- package/lib/front_end/third_party/source-map-scopes-codec/package/_dist/src/builder/builder.d.ts.map +0 -1
- package/lib/front_end/third_party/source-map-scopes-codec/package/_dist/src/builder/safe_builder.d.ts +0 -37
- package/lib/front_end/third_party/source-map-scopes-codec/package/_dist/src/builder/safe_builder.d.ts.map +0 -1
- package/lib/front_end/third_party/source-map-scopes-codec/package/_dist/src/decode/decode.d.ts +0 -29
- package/lib/front_end/third_party/source-map-scopes-codec/package/_dist/src/decode/decode.d.ts.map +0 -1
- package/lib/front_end/third_party/source-map-scopes-codec/package/_dist/src/encode/encode.d.ts +0 -8
- package/lib/front_end/third_party/source-map-scopes-codec/package/_dist/src/encode/encode.d.ts.map +0 -1
- package/lib/front_end/third_party/source-map-scopes-codec/package/_dist/src/mod.d.ts +0 -6
- package/lib/front_end/third_party/source-map-scopes-codec/package/_dist/src/mod.d.ts.map +0 -1
- package/lib/front_end/third_party/source-map-scopes-codec/package/deno.json +0 -21
- package/lib/front_end/third_party/source-map-scopes-codec/package/package.json +0 -14
- package/lib/front_end/third_party/source-map-scopes-codec/package/src/builder/builder.js +0 -196
- package/lib/front_end/third_party/source-map-scopes-codec/package/src/builder/builder.js.map +0 -1
- package/lib/front_end/third_party/source-map-scopes-codec/package/src/builder/builder.ts +0 -262
- package/lib/front_end/third_party/source-map-scopes-codec/package/src/builder/safe_builder.js +0 -235
- package/lib/front_end/third_party/source-map-scopes-codec/package/src/builder/safe_builder.js.map +0 -1
- package/lib/front_end/third_party/source-map-scopes-codec/package/src/builder/safe_builder.ts +0 -359
- package/lib/front_end/third_party/source-map-scopes-codec/package/src/codec.js +0 -39
- package/lib/front_end/third_party/source-map-scopes-codec/package/src/codec.js.map +0 -1
- package/lib/front_end/third_party/source-map-scopes-codec/package/src/codec.ts +0 -53
- package/lib/front_end/third_party/source-map-scopes-codec/package/src/decode/decode.js +0 -438
- package/lib/front_end/third_party/source-map-scopes-codec/package/src/decode/decode.js.map +0 -1
- package/lib/front_end/third_party/source-map-scopes-codec/package/src/decode/decode.ts +0 -539
- package/lib/front_end/third_party/source-map-scopes-codec/package/src/encode/encode.js +0 -23
- package/lib/front_end/third_party/source-map-scopes-codec/package/src/encode/encode.js.map +0 -1
- package/lib/front_end/third_party/source-map-scopes-codec/package/src/encode/encode.ts +0 -35
- package/lib/front_end/third_party/source-map-scopes-codec/package/src/encode/encoder.js +0 -257
- package/lib/front_end/third_party/source-map-scopes-codec/package/src/encode/encoder.js.map +0 -1
- package/lib/front_end/third_party/source-map-scopes-codec/package/src/encode/encoder.ts +0 -348
- package/lib/front_end/third_party/source-map-scopes-codec/package/src/mod.js +0 -8
- package/lib/front_end/third_party/source-map-scopes-codec/package/src/mod.js.map +0 -1
- package/lib/front_end/third_party/source-map-scopes-codec/package/src/mod.ts +0 -20
- package/lib/front_end/third_party/source-map-scopes-codec/package/src/scopes-tsconfig.json +0 -8
- package/lib/front_end/third_party/source-map-scopes-codec/package/src/scopes.d.ts +0 -184
- package/lib/front_end/third_party/source-map-scopes-codec/package/src/util.js +0 -9
- package/lib/front_end/third_party/source-map-scopes-codec/package/src/util.js.map +0 -1
- package/lib/front_end/third_party/source-map-scopes-codec/package/src/util.ts +0 -12
- package/lib/front_end/third_party/source-map-scopes-codec/package/src/vlq.js +0 -82
- package/lib/front_end/third_party/source-map-scopes-codec/package/src/vlq.js.map +0 -1
- package/lib/front_end/third_party/source-map-scopes-codec/package/src/vlq.ts +0 -99
- package/lib/front_end/third_party/source-map-scopes-codec/source-map-scopes-codec.ts +0 -5
- package/lib/front_end/third_party/third-party-web/LICENSE +0 -20
- package/lib/front_end/third_party/third-party-web/README.chromium +0 -13
- package/lib/front_end/third_party/third-party-web/lib/nostats-subset.d.ts +0 -2
- package/lib/front_end/third_party/third-party-web/lib/nostats-subset.js +0 -149
- package/lib/front_end/third_party/third-party-web/package/LICENSE +0 -20
- package/lib/front_end/third_party/third-party-web/package/README.md +0 -929
- package/lib/front_end/third_party/third-party-web/package/dist/entities-httparchive-nostats.json +0 -1
- package/lib/front_end/third_party/third-party-web/package/dist/entities-httparchive.json +0 -1
- package/lib/front_end/third_party/third-party-web/package/dist/entities-nostats.json +0 -1
- package/lib/front_end/third_party/third-party-web/package/dist/entities.json +0 -1
- package/lib/front_end/third_party/third-party-web/package/facades.md +0 -46
- package/lib/front_end/third_party/third-party-web/package/httparchive-nostats-subset.d.ts +0 -1
- package/lib/front_end/third_party/third-party-web/package/httparchive-nostats-subset.js +0 -1
- package/lib/front_end/third_party/third-party-web/package/httparchive-subset.d.ts +0 -1
- package/lib/front_end/third_party/third-party-web/package/httparchive-subset.js +0 -1
- package/lib/front_end/third_party/third-party-web/package/lib/__snapshots__/index.test.js.snap +0 -1006
- package/lib/front_end/third_party/third-party-web/package/lib/create-entity-finder-api.js +0 -139
- package/lib/front_end/third_party/third-party-web/package/lib/create-entity-finder-api.test.js +0 -44
- package/lib/front_end/third_party/third-party-web/package/lib/entities.test.js +0 -27
- package/lib/front_end/third_party/third-party-web/package/lib/index.d.ts +0 -34
- package/lib/front_end/third_party/third-party-web/package/lib/index.js +0 -3
- package/lib/front_end/third_party/third-party-web/package/lib/index.test.js +0 -246
- package/lib/front_end/third_party/third-party-web/package/lib/markdown/faqs.partial.md +0 -36
- package/lib/front_end/third_party/third-party-web/package/lib/markdown/goals.partial.md +0 -9
- package/lib/front_end/third_party/third-party-web/package/lib/markdown/methodology.partial.md +0 -5
- package/lib/front_end/third_party/third-party-web/package/lib/markdown/template.md +0 -151
- package/lib/front_end/third_party/third-party-web/package/lib/markdown/updates/2019-02-01.md +0 -1
- package/lib/front_end/third_party/third-party-web/package/lib/markdown/updates/2019-03-01.md +0 -1
- package/lib/front_end/third_party/third-party-web/package/lib/markdown/updates/2019-05-06.md +0 -1
- package/lib/front_end/third_party/third-party-web/package/lib/markdown/updates/2019-05-13.md +0 -14
- package/lib/front_end/third_party/third-party-web/package/lib/markdown/updates/2021-01-01.md +0 -1
- package/lib/front_end/third_party/third-party-web/package/lib/markdown/updates/2024-07-01.md +0 -3
- package/lib/front_end/third_party/third-party-web/package/lib/subsets/httparchive-nostats.d.ts +0 -1
- package/lib/front_end/third_party/third-party-web/package/lib/subsets/httparchive-nostats.js +0 -3
- package/lib/front_end/third_party/third-party-web/package/lib/subsets/httparchive.d.ts +0 -1
- package/lib/front_end/third_party/third-party-web/package/lib/subsets/httparchive.js +0 -3
- package/lib/front_end/third_party/third-party-web/package/lib/subsets/nostats.d.ts +0 -1
- package/lib/front_end/third_party/third-party-web/package/lib/subsets/nostats.js +0 -3
- package/lib/front_end/third_party/third-party-web/package/nostats-subset.d.ts +0 -1
- package/lib/front_end/third_party/third-party-web/package/nostats-subset.js +0 -1
- package/lib/front_end/third_party/third-party-web/package/package.json +0 -46
- package/lib/front_end/third_party/third-party-web/package.json +0 -8
- package/lib/front_end/third_party/third-party-web/rebuild.sh +0 -13
- package/lib/front_end/third_party/third-party-web/third-party-web-tsconfig.json +0 -8
- package/lib/front_end/third_party/third-party-web/third-party-web.ts +0 -3
- package/lib/front_end/ui/legacy/theme_support/ThemeSupport.ts +0 -222
- package/lib/front_end/ui/legacy/theme_support/theme_support.ts +0 -5
- package/patches/chrome-devtools-frontend+1.0.1533544.patch +0 -1716
|
@@ -1,233 +0,0 @@
|
|
|
1
|
-
// Copyright 2022 The Chromium Authors
|
|
2
|
-
// Use of this source code is governed by a BSD-style license that can be
|
|
3
|
-
// found in the LICENSE file.
|
|
4
|
-
|
|
5
|
-
import * as Helpers from '../helpers/helpers.js';
|
|
6
|
-
import * as Types from '../types/types.js';
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* IMPORTANT!
|
|
10
|
-
* See UserTimings.md in this directory for some handy documentation on
|
|
11
|
-
* UserTimings and the trace events we parse currently.
|
|
12
|
-
**/
|
|
13
|
-
let syntheticEvents: Array<Types.Events.SyntheticEventPair<Types.Events.PairableAsync>> = [];
|
|
14
|
-
|
|
15
|
-
// There are two events dispatched for performance.measure calls: one to
|
|
16
|
-
// represent the measured timing in the tracing clock (which we type as
|
|
17
|
-
// PerformanceMeasure) and another one for the call itself (which we
|
|
18
|
-
// type as UserTimingMeasure). The two events corresponding to the same
|
|
19
|
-
// call are linked together by a common trace_id. The reason two events
|
|
20
|
-
// are dispatched is because the first was originally added with the
|
|
21
|
-
// implementation of the performance.measure API and it uses an
|
|
22
|
-
// overridden timestamp and duration. To prevent breaking potential deps
|
|
23
|
-
// created since then, a second event was added instead of changing the
|
|
24
|
-
// params of the first.
|
|
25
|
-
let measureTraceByTraceId = new Map<number, Types.Events.UserTimingMeasure>();
|
|
26
|
-
let performanceMeasureEvents: Types.Events.PerformanceMeasure[] = [];
|
|
27
|
-
let performanceMarkEvents: Types.Events.PerformanceMark[] = [];
|
|
28
|
-
|
|
29
|
-
let consoleTimings: Array<Types.Events.ConsoleTimeBegin|Types.Events.ConsoleTimeEnd> = [];
|
|
30
|
-
|
|
31
|
-
let timestampEvents: Types.Events.ConsoleTimeStamp[] = [];
|
|
32
|
-
|
|
33
|
-
export interface UserTimingsData {
|
|
34
|
-
/**
|
|
35
|
-
* Events triggered with the performance.measure() API.
|
|
36
|
-
* https://developer.mozilla.org/en-US/docs/Web/API/Performance/measure
|
|
37
|
-
*/
|
|
38
|
-
performanceMeasures: readonly Types.Events.SyntheticUserTimingPair[];
|
|
39
|
-
/**
|
|
40
|
-
* Events triggered with the performance.mark() API.
|
|
41
|
-
* https://developer.mozilla.org/en-US/docs/Web/API/Performance/mark
|
|
42
|
-
*/
|
|
43
|
-
performanceMarks: readonly Types.Events.PerformanceMark[];
|
|
44
|
-
/**
|
|
45
|
-
* Events triggered with the console.time(), console.timeEnd() and
|
|
46
|
-
* console.timeLog() API.
|
|
47
|
-
* https://developer.mozilla.org/en-US/docs/Web/API/console/time
|
|
48
|
-
*/
|
|
49
|
-
consoleTimings: readonly Types.Events.SyntheticConsoleTimingPair[];
|
|
50
|
-
/**
|
|
51
|
-
* Events triggered with the console.timeStamp() API
|
|
52
|
-
* https://developer.mozilla.org/en-US/docs/Web/API/console/timeStamp
|
|
53
|
-
*/
|
|
54
|
-
timestampEvents: readonly Types.Events.ConsoleTimeStamp[];
|
|
55
|
-
/**
|
|
56
|
-
* Events triggered to trace the call to performance.measure itself,
|
|
57
|
-
* cached by trace_id.
|
|
58
|
-
*/
|
|
59
|
-
measureTraceByTraceId: Map<number, Types.Events.UserTimingMeasure>;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
export function reset(): void {
|
|
63
|
-
syntheticEvents = [];
|
|
64
|
-
performanceMeasureEvents = [];
|
|
65
|
-
performanceMarkEvents = [];
|
|
66
|
-
consoleTimings = [];
|
|
67
|
-
timestampEvents = [];
|
|
68
|
-
measureTraceByTraceId = new Map();
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
const resourceTimingNames = [
|
|
72
|
-
'workerStart',
|
|
73
|
-
'redirectStart',
|
|
74
|
-
'redirectEnd',
|
|
75
|
-
'fetchStart',
|
|
76
|
-
'domainLookupStart',
|
|
77
|
-
'domainLookupEnd',
|
|
78
|
-
'connectStart',
|
|
79
|
-
'connectEnd',
|
|
80
|
-
'secureConnectionStart',
|
|
81
|
-
'requestStart',
|
|
82
|
-
'responseStart',
|
|
83
|
-
'responseEnd',
|
|
84
|
-
];
|
|
85
|
-
const navTimingNames = [
|
|
86
|
-
'navigationStart',
|
|
87
|
-
'unloadEventStart',
|
|
88
|
-
'unloadEventEnd',
|
|
89
|
-
'redirectStart',
|
|
90
|
-
'redirectEnd',
|
|
91
|
-
'fetchStart',
|
|
92
|
-
'commitNavigationEnd',
|
|
93
|
-
'domainLookupStart',
|
|
94
|
-
'domainLookupEnd',
|
|
95
|
-
'connectStart',
|
|
96
|
-
'connectEnd',
|
|
97
|
-
'secureConnectionStart',
|
|
98
|
-
'requestStart',
|
|
99
|
-
'responseStart',
|
|
100
|
-
'responseEnd',
|
|
101
|
-
'domLoading',
|
|
102
|
-
'domInteractive',
|
|
103
|
-
'domContentLoadedEventStart',
|
|
104
|
-
'domContentLoadedEventEnd',
|
|
105
|
-
'domComplete',
|
|
106
|
-
'loadEventStart',
|
|
107
|
-
'loadEventEnd',
|
|
108
|
-
];
|
|
109
|
-
// These are events dispatched under the blink.user_timing category
|
|
110
|
-
// but that the user didn't add. Filter them out so that they do not
|
|
111
|
-
// Appear in the timings track (they still appear in the main thread
|
|
112
|
-
// flame chart).
|
|
113
|
-
const ignoredNames = [...resourceTimingNames, ...navTimingNames];
|
|
114
|
-
|
|
115
|
-
function getEventTimings(event: Types.Events.SyntheticEventPair|Types.Events.ConsoleTimeStamp):
|
|
116
|
-
{start: Types.Timing.Micro, end: Types.Timing.Micro} {
|
|
117
|
-
if ('dur' in event) {
|
|
118
|
-
// It's a SyntheticEventPair.
|
|
119
|
-
return {start: event.ts, end: Types.Timing.Micro(event.ts + (event.dur ?? 0))};
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
if (Types.Events.isConsoleTimeStamp(event)) {
|
|
123
|
-
const {start, end} = event.args.data || {};
|
|
124
|
-
if (typeof start === 'number' && typeof end === 'number') {
|
|
125
|
-
return {start: Types.Timing.Micro(start), end: Types.Timing.Micro(end)};
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
// A ConsoleTimeStamp without start/end is just a point in time, so dur is 0.
|
|
130
|
-
return {start: event.ts, end: event.ts};
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
function getEventTrack(event: Types.Events.SyntheticEventPair|Types.Events.ConsoleTimeStamp): string|undefined {
|
|
134
|
-
if (event.cat === 'blink.user_timing') {
|
|
135
|
-
// This is a SyntheticUserTimingPair
|
|
136
|
-
const detailString =
|
|
137
|
-
((event as Types.Events.SyntheticUserTimingPair).args.data.beginEvent.args as {detail?: string})?.detail;
|
|
138
|
-
if (detailString) {
|
|
139
|
-
const details = Helpers.Trace.parseDevtoolsDetails(detailString, 'devtools');
|
|
140
|
-
if (details && 'track' in details) {
|
|
141
|
-
return details.track;
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
} else if (Types.Events.isConsoleTimeStamp(event)) {
|
|
145
|
-
const track = event.args.data?.track;
|
|
146
|
-
return typeof track === 'string' ? track : undefined;
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
// SyntheticConsoleTimingPair does not have track info.
|
|
150
|
-
return undefined;
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
/**
|
|
154
|
-
* Similar to the default {@link Helpers.Trace.eventTimeComparator}
|
|
155
|
-
* but with a twist:
|
|
156
|
-
* In case of equal start and end times, put the second event (within a
|
|
157
|
-
* track) first.
|
|
158
|
-
*
|
|
159
|
-
* Explanation:
|
|
160
|
-
* User timing entries come as trace events dispatched when
|
|
161
|
-
* performance.measure/mark is called. The trace events buffered in
|
|
162
|
-
* devtools frontend are sorted by the start time. If their start time
|
|
163
|
-
* is the same, then the event for the first call will appear first.
|
|
164
|
-
*
|
|
165
|
-
* When entries are meant to be stacked, the corresponding
|
|
166
|
-
* performance.measure calls usually are done in bottom-up direction:
|
|
167
|
-
* calls for children first and for parent later (because the call
|
|
168
|
-
* is usually done when the measured task is over). This means that
|
|
169
|
-
* when two user timing events have the same start and end time, usually
|
|
170
|
-
* the second event is the parent of the first. Hence the switch.
|
|
171
|
-
*
|
|
172
|
-
*/
|
|
173
|
-
export function userTimingComparator<T extends Types.Events.SyntheticEventPair|Types.Events.ConsoleTimeStamp>(
|
|
174
|
-
a: T, b: T, originalArray: readonly T[]): number {
|
|
175
|
-
const {start: aStart, end: aEnd} = getEventTimings(a);
|
|
176
|
-
const {start: bStart, end: bEnd} = getEventTimings(b);
|
|
177
|
-
const timeDifference = Helpers.Trace.compareBeginAndEnd(aStart, bStart, aEnd, bEnd);
|
|
178
|
-
if (timeDifference) {
|
|
179
|
-
return timeDifference;
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
// Never re-order entries across different tracks.
|
|
183
|
-
const aTrack = getEventTrack(a);
|
|
184
|
-
const bTrack = getEventTrack(b);
|
|
185
|
-
if (aTrack !== bTrack) {
|
|
186
|
-
return 0; // Preserve current positions.
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
// Prefer the event located in a further position in the original array.
|
|
190
|
-
const aIndex = originalArray.indexOf(a);
|
|
191
|
-
const bIndex = originalArray.indexOf(b);
|
|
192
|
-
return bIndex - aIndex;
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
export function handleEvent(event: Types.Events.Event): void {
|
|
196
|
-
if (ignoredNames.includes(event.name)) {
|
|
197
|
-
return;
|
|
198
|
-
}
|
|
199
|
-
if (Types.Events.isUserTimingMeasure(event)) {
|
|
200
|
-
measureTraceByTraceId.set(event.args.traceId, event);
|
|
201
|
-
}
|
|
202
|
-
if (Types.Events.isPerformanceMeasure(event)) {
|
|
203
|
-
performanceMeasureEvents.push(event);
|
|
204
|
-
return;
|
|
205
|
-
}
|
|
206
|
-
if (Types.Events.isPerformanceMark(event)) {
|
|
207
|
-
performanceMarkEvents.push(event);
|
|
208
|
-
}
|
|
209
|
-
if (Types.Events.isConsoleTime(event)) {
|
|
210
|
-
consoleTimings.push(event);
|
|
211
|
-
}
|
|
212
|
-
if (Types.Events.isConsoleTimeStamp(event)) {
|
|
213
|
-
timestampEvents.push(event);
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
export async function finalize(): Promise<void> {
|
|
218
|
-
const asyncEvents = [...performanceMeasureEvents, ...consoleTimings];
|
|
219
|
-
syntheticEvents = Helpers.Trace.createMatchedSortedSyntheticEvents(asyncEvents);
|
|
220
|
-
syntheticEvents = syntheticEvents.sort((a, b) => userTimingComparator(a, b, [...syntheticEvents]));
|
|
221
|
-
timestampEvents = timestampEvents.sort((a, b) => userTimingComparator(a, b, [...timestampEvents]));
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
export function data(): UserTimingsData {
|
|
225
|
-
return {
|
|
226
|
-
consoleTimings: syntheticEvents.filter(e => e.cat === 'blink.console') as Types.Events.SyntheticConsoleTimingPair[],
|
|
227
|
-
performanceMeasures: syntheticEvents.filter(e => e.cat === 'blink.user_timing') as
|
|
228
|
-
Types.Events.SyntheticUserTimingPair[],
|
|
229
|
-
performanceMarks: performanceMarkEvents,
|
|
230
|
-
timestampEvents,
|
|
231
|
-
measureTraceByTraceId,
|
|
232
|
-
};
|
|
233
|
-
}
|
|
@@ -1,162 +0,0 @@
|
|
|
1
|
-
// Copyright 2023 The Chromium Authors
|
|
2
|
-
// Use of this source code is governed by a BSD-style license that can be
|
|
3
|
-
// found in the LICENSE file.
|
|
4
|
-
|
|
5
|
-
import * as Platform from '../../../core/platform/platform.js';
|
|
6
|
-
import * as Helpers from '../helpers/helpers.js';
|
|
7
|
-
import * as Types from '../types/types.js';
|
|
8
|
-
|
|
9
|
-
import type {HandlerName} from './types.js';
|
|
10
|
-
import {data as userInteractionsHandlerData} from './UserInteractionsHandler.js';
|
|
11
|
-
import {data as workersData} from './WorkersHandler.js';
|
|
12
|
-
|
|
13
|
-
export interface WarningsData {
|
|
14
|
-
// Tracks warnings keyed by the event.
|
|
15
|
-
perEvent: Map<Types.Events.Event, Warning[]>;
|
|
16
|
-
// The same data in reverse: for each type of warning, track the events.
|
|
17
|
-
// Useful if we need to enumerate events by type of issue
|
|
18
|
-
perWarning: Map<Warning, Types.Events.Event[]>;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
export type Warning = 'LONG_TASK'|'IDLE_CALLBACK_OVER_TIME'|'FORCED_REFLOW'|'LONG_INTERACTION';
|
|
22
|
-
|
|
23
|
-
let warningsPerEvent: WarningsData['perEvent'] = new Map();
|
|
24
|
-
let eventsPerWarning: WarningsData['perWarning'] = new Map();
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Tracks the stack formed by nested trace events up to a given point
|
|
28
|
-
*/
|
|
29
|
-
let allEventsStack: Types.Events.Event[] = [];
|
|
30
|
-
/**
|
|
31
|
-
* Tracks the stack formed by JS invocation trace events up to a given point.
|
|
32
|
-
* F.e. FunctionCall, EvaluateScript, V8Execute.
|
|
33
|
-
* Not to be confused with ProfileCalls.
|
|
34
|
-
*/
|
|
35
|
-
let jsInvokeStack: Types.Events.Event[] = [];
|
|
36
|
-
/**
|
|
37
|
-
* Tracks reflow events in a task.
|
|
38
|
-
*/
|
|
39
|
-
let taskReflowEvents: Types.Events.Event[] = [];
|
|
40
|
-
/**
|
|
41
|
-
* Tracks events containing long running tasks. These are compared later against the worker thread pool to filter out long tasks from worker threads.
|
|
42
|
-
*/
|
|
43
|
-
let longTaskEvents: Types.Events.Event[] = [];
|
|
44
|
-
|
|
45
|
-
export const FORCED_REFLOW_THRESHOLD = Helpers.Timing.milliToMicro(Types.Timing.Milli(30));
|
|
46
|
-
|
|
47
|
-
export const LONG_MAIN_THREAD_TASK_THRESHOLD = Helpers.Timing.milliToMicro(Types.Timing.Milli(50));
|
|
48
|
-
|
|
49
|
-
export function reset(): void {
|
|
50
|
-
warningsPerEvent = new Map();
|
|
51
|
-
eventsPerWarning = new Map();
|
|
52
|
-
allEventsStack = [];
|
|
53
|
-
jsInvokeStack = [];
|
|
54
|
-
taskReflowEvents = [];
|
|
55
|
-
longTaskEvents = [];
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
function storeWarning(event: Types.Events.Event, warning: Warning): void {
|
|
59
|
-
const existingWarnings = Platform.MapUtilities.getWithDefault(warningsPerEvent, event, () => []);
|
|
60
|
-
existingWarnings.push(warning);
|
|
61
|
-
warningsPerEvent.set(event, existingWarnings);
|
|
62
|
-
|
|
63
|
-
const existingEvents = Platform.MapUtilities.getWithDefault(eventsPerWarning, warning, () => []);
|
|
64
|
-
existingEvents.push(event);
|
|
65
|
-
eventsPerWarning.set(warning, existingEvents);
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
export function handleEvent(event: Types.Events.Event): void {
|
|
69
|
-
processForcedReflowWarning(event);
|
|
70
|
-
if (event.name === Types.Events.Name.RUN_TASK) {
|
|
71
|
-
const {duration} = Helpers.Timing.eventTimingsMicroSeconds(event);
|
|
72
|
-
if (duration > LONG_MAIN_THREAD_TASK_THRESHOLD) {
|
|
73
|
-
longTaskEvents.push(event);
|
|
74
|
-
}
|
|
75
|
-
return;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
if (Types.Events.isFireIdleCallback(event)) {
|
|
79
|
-
const {duration} = Helpers.Timing.eventTimingsMilliSeconds(event);
|
|
80
|
-
if (duration > event.args.data.allottedMilliseconds) {
|
|
81
|
-
storeWarning(event, 'IDLE_CALLBACK_OVER_TIME');
|
|
82
|
-
}
|
|
83
|
-
return;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
/**
|
|
88
|
-
* Reflows* are added a warning to if:
|
|
89
|
-
* 1. They are forced/sync, meaning they are invoked by JS and finish
|
|
90
|
-
* during the Script execution.
|
|
91
|
-
* 2. Their duration exceeds a threshold.
|
|
92
|
-
* - *Reflow: The style recalculation and layout steps in a render task.
|
|
93
|
-
*/
|
|
94
|
-
function processForcedReflowWarning(event: Types.Events.Event): void {
|
|
95
|
-
// Update the event and the JS invocation stacks.
|
|
96
|
-
accomodateEventInStack(event, allEventsStack);
|
|
97
|
-
accomodateEventInStack(event, jsInvokeStack, /* pushEventToStack */ Types.Events.isJSInvocationEvent(event));
|
|
98
|
-
if (jsInvokeStack.length) {
|
|
99
|
-
// Current event falls inside a JS call.
|
|
100
|
-
if (event.name === Types.Events.Name.LAYOUT || event.name === Types.Events.Name.RECALC_STYLE) {
|
|
101
|
-
// A forced reflow happened. However we need to check if
|
|
102
|
-
// the threshold is surpassed to add a warning. Accumulate the
|
|
103
|
-
// event to check for this after the current Task is over.
|
|
104
|
-
taskReflowEvents.push(event);
|
|
105
|
-
return;
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
if (allEventsStack.length === 1) {
|
|
109
|
-
// We hit a new task. Check if the forced reflows in the previous
|
|
110
|
-
// task exceeded the threshold and add a warning if so.
|
|
111
|
-
const totalTime = taskReflowEvents.reduce((time, event) => time + (event.dur || 0), 0);
|
|
112
|
-
if (totalTime >= FORCED_REFLOW_THRESHOLD) {
|
|
113
|
-
taskReflowEvents.forEach(reflowEvent => storeWarning(reflowEvent, 'FORCED_REFLOW'));
|
|
114
|
-
}
|
|
115
|
-
taskReflowEvents.length = 0;
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
/**
|
|
120
|
-
* Updates a given trace event stack given a new event.
|
|
121
|
-
*/
|
|
122
|
-
function accomodateEventInStack(event: Types.Events.Event, stack: Types.Events.Event[], pushEventToStack = true): void {
|
|
123
|
-
let nextItem = stack.at(-1);
|
|
124
|
-
while (nextItem && event.ts > nextItem.ts + (nextItem.dur || 0)) {
|
|
125
|
-
stack.pop();
|
|
126
|
-
nextItem = stack.at(-1);
|
|
127
|
-
}
|
|
128
|
-
if (!pushEventToStack) {
|
|
129
|
-
return;
|
|
130
|
-
}
|
|
131
|
-
stack.push(event);
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
export function deps(): HandlerName[] {
|
|
135
|
-
return ['UserInteractions', 'Workers'];
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
export async function finalize(): Promise<void> {
|
|
139
|
-
// These events do exist on the UserInteractionsHandler, but we also put
|
|
140
|
-
// them into the WarningsHandler so that the warnings handler can be the
|
|
141
|
-
// source of truth and the way to look up all warnings for a given event.
|
|
142
|
-
// Otherwise, we would have to look up warnings across multiple handlers for
|
|
143
|
-
// a given event, which will start to get messy very quickly.
|
|
144
|
-
const longInteractions = userInteractionsHandlerData().interactionsOverThreshold;
|
|
145
|
-
for (const interaction of longInteractions) {
|
|
146
|
-
storeWarning(interaction, 'LONG_INTERACTION');
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
for (const event of longTaskEvents) {
|
|
150
|
-
if (!(event.tid, workersData().workerIdByThread.has(event.tid))) {
|
|
151
|
-
storeWarning(event, 'LONG_TASK');
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
longTaskEvents.length = 0;
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
export function data(): WarningsData {
|
|
158
|
-
return {
|
|
159
|
-
perEvent: warningsPerEvent,
|
|
160
|
-
perWarning: eventsPerWarning,
|
|
161
|
-
};
|
|
162
|
-
}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
// Copyright 2023 The Chromium Authors
|
|
2
|
-
// Use of this source code is governed by a BSD-style license that can be
|
|
3
|
-
// found in the LICENSE file.
|
|
4
|
-
|
|
5
|
-
import * as Types from '../types/types.js';
|
|
6
|
-
|
|
7
|
-
export interface WorkersData {
|
|
8
|
-
workerSessionIdEvents: readonly Types.Events.TracingSessionIdForWorker[];
|
|
9
|
-
workerIdByThread: Map<Types.Events.ThreadID, Types.Events.WorkerId>;
|
|
10
|
-
workerURLById: Map<Types.Events.WorkerId, string>;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
let sessionIdEvents: Types.Events.TracingSessionIdForWorker[] = [];
|
|
14
|
-
let workerIdByThread = new Map<Types.Events.ThreadID, Types.Events.WorkerId>();
|
|
15
|
-
let workerURLById = new Map<Types.Events.WorkerId, string>();
|
|
16
|
-
|
|
17
|
-
export function reset(): void {
|
|
18
|
-
sessionIdEvents = [];
|
|
19
|
-
workerIdByThread = new Map();
|
|
20
|
-
workerURLById = new Map();
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export function handleEvent(event: Types.Events.Event): void {
|
|
24
|
-
if (Types.Events.isTracingSessionIdForWorker(event)) {
|
|
25
|
-
sessionIdEvents.push(event);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
export async function finalize(): Promise<void> {
|
|
30
|
-
for (const sessionIdEvent of sessionIdEvents) {
|
|
31
|
-
if (!sessionIdEvent.args.data) {
|
|
32
|
-
continue;
|
|
33
|
-
}
|
|
34
|
-
workerIdByThread.set(sessionIdEvent.args.data.workerThreadId, sessionIdEvent.args.data.workerId);
|
|
35
|
-
workerURLById.set(sessionIdEvent.args.data.workerId, sessionIdEvent.args.data.url);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
export function data(): WorkersData {
|
|
40
|
-
return {
|
|
41
|
-
workerSessionIdEvents: sessionIdEvents,
|
|
42
|
-
workerIdByThread,
|
|
43
|
-
workerURLById,
|
|
44
|
-
};
|
|
45
|
-
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
// Copyright 2022 The Chromium Authors
|
|
2
|
-
// Use of this source code is governed by a BSD-style license that can be
|
|
3
|
-
// found in the LICENSE file.
|
|
4
|
-
|
|
5
|
-
export * as Helpers from './helpers.js';
|
|
6
|
-
export * as ModelHandlers from './ModelHandlers.js';
|
|
7
|
-
export * as Threads from './Threads.js';
|
|
8
|
-
export * as Types from './types.js';
|
|
@@ -1,196 +0,0 @@
|
|
|
1
|
-
// Copyright 2024 The Chromium Authors
|
|
2
|
-
// Use of this source code is governed by a BSD-style license that can be
|
|
3
|
-
// found in the LICENSE file.
|
|
4
|
-
|
|
5
|
-
import type * as Platform from '../../../core/platform/platform.js';
|
|
6
|
-
import * as Types from '../types/types.js';
|
|
7
|
-
|
|
8
|
-
import type {TraceEventsForNetworkRequest} from './NetworkRequestsHandler.js';
|
|
9
|
-
import type {HandlerData} from './types.js';
|
|
10
|
-
|
|
11
|
-
export type Entity = {
|
|
12
|
-
name?: string,
|
|
13
|
-
isUnrecognized?: boolean,
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
export interface EntityMappings {
|
|
17
|
-
createdEntityCache: Map<string, Entity>;
|
|
18
|
-
entityByEvent: Map<Types.Events.Event, Entity>;
|
|
19
|
-
eventsByEntity: Map<Entity, Types.Events.Event[]>;
|
|
20
|
-
entityByUrlCache: Map<string, Entity>;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export function getEntityForEvent(event: Types.Events.Event, entityMappings: EntityMappings): Entity|undefined {
|
|
24
|
-
const url = getNonResolvedURL(event);
|
|
25
|
-
if (!url) {
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
return getEntityForUrl(url, entityMappings);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
export function getEntityForUrl(url: string, entityMappings: EntityMappings): Entity|undefined {
|
|
32
|
-
const cachedByUrl = entityMappings.entityByUrlCache.get(url);
|
|
33
|
-
if (cachedByUrl) {
|
|
34
|
-
return cachedByUrl;
|
|
35
|
-
}
|
|
36
|
-
const entity = makeUpEntity(entityMappings.createdEntityCache, url);
|
|
37
|
-
if (entity) {
|
|
38
|
-
entityMappings.entityByUrlCache.set(url, entity);
|
|
39
|
-
}
|
|
40
|
-
return entity;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
export function getNonResolvedURL(
|
|
44
|
-
entry: Types.Events.Event, handlerData?: HandlerData): Platform.DevToolsPath.UrlString|null {
|
|
45
|
-
if (Types.Events.isProfileCall(entry)) {
|
|
46
|
-
return entry.callFrame.url as Platform.DevToolsPath.UrlString;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
if (Types.Events.isSyntheticNetworkRequest(entry)) {
|
|
50
|
-
return entry.args.data.url as Platform.DevToolsPath.UrlString;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
if (Types.Events.isParseAuthorStyleSheetEvent(entry) && entry.args) {
|
|
54
|
-
return entry.args.data.stylesheetUrl as Platform.DevToolsPath.UrlString;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
if (entry.args?.data?.stackTrace && entry.args.data.stackTrace.length > 0) {
|
|
58
|
-
return entry.args.data.stackTrace[0].url as Platform.DevToolsPath.UrlString;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
// ParseHTML events store the URL under beginData, not data.
|
|
62
|
-
if (Types.Events.isParseHTML(entry)) {
|
|
63
|
-
return entry.args.beginData.url as Platform.DevToolsPath.UrlString;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
if (handlerData) {
|
|
67
|
-
// DecodeImage events use the URL from the relevant PaintImage event.
|
|
68
|
-
if (Types.Events.isDecodeImage(entry)) {
|
|
69
|
-
const paintEvent = handlerData.ImagePainting.paintImageForEvent.get(entry);
|
|
70
|
-
return paintEvent ? getNonResolvedURL(paintEvent, handlerData) : null;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
// DrawLazyPixelRef events use the URL from the relevant PaintImage event.
|
|
74
|
-
if (Types.Events.isDrawLazyPixelRef(entry) && entry.args?.LazyPixelRef) {
|
|
75
|
-
const paintEvent = handlerData.ImagePainting.paintImageByDrawLazyPixelRef.get(entry.args.LazyPixelRef);
|
|
76
|
-
return paintEvent ? getNonResolvedURL(paintEvent, handlerData) : null;
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
// For all other events, try to see if the URL is provided, else return null.
|
|
81
|
-
if (entry.args?.data?.url) {
|
|
82
|
-
return entry.args.data.url as Platform.DevToolsPath.UrlString;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
// Many events don't have a url, but are associated with a request. Use the
|
|
86
|
-
// request's url.
|
|
87
|
-
const requestId = (entry.args?.data as {requestId?: string})?.requestId;
|
|
88
|
-
if (handlerData && requestId) {
|
|
89
|
-
const url = handlerData.NetworkRequests.byId.get(requestId)?.args.data.url;
|
|
90
|
-
if (url) {
|
|
91
|
-
return url as Platform.DevToolsPath.UrlString;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
return null;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
export function makeUpEntity(entityCache: Map<string, Entity>, url: string): Entity|undefined {
|
|
99
|
-
if (url.startsWith('chrome-extension:')) {
|
|
100
|
-
return makeUpChromeExtensionEntity(entityCache, url);
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
// Make up an entity only for valid http/https URLs.
|
|
104
|
-
if (!url.startsWith('http')) {
|
|
105
|
-
return;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
const rootDomain = URL.parse(url)?.hostname || url
|
|
109
|
-
|
|
110
|
-
const unrecognizedEntity = {
|
|
111
|
-
name: rootDomain,
|
|
112
|
-
company: rootDomain,
|
|
113
|
-
category: '',
|
|
114
|
-
categories: [],
|
|
115
|
-
domains: [rootDomain],
|
|
116
|
-
averageExecutionTime: 0,
|
|
117
|
-
totalExecutionTime: 0,
|
|
118
|
-
totalOccurrences: 0,
|
|
119
|
-
isUnrecognized: true,
|
|
120
|
-
};
|
|
121
|
-
entityCache.set(rootDomain, unrecognizedEntity);
|
|
122
|
-
return unrecognizedEntity;
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
function getChromeExtensionOrigin(url: URL): string {
|
|
126
|
-
return url.protocol + '//' + url.host;
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
function makeUpChromeExtensionEntity(entityCache: Map<string, Entity>, url: string, extensionName?: string): Entity {
|
|
130
|
-
const parsedUrl = new URL(url);
|
|
131
|
-
const origin = getChromeExtensionOrigin(parsedUrl);
|
|
132
|
-
const host = new URL(origin).host;
|
|
133
|
-
const name = extensionName || host;
|
|
134
|
-
|
|
135
|
-
const cachedEntity = entityCache.get(origin);
|
|
136
|
-
if (cachedEntity) {
|
|
137
|
-
return cachedEntity;
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
const chromeExtensionEntity = {
|
|
141
|
-
name,
|
|
142
|
-
company: name,
|
|
143
|
-
category: 'Chrome Extension',
|
|
144
|
-
homepage: 'https://chromewebstore.google.com/detail/' + host,
|
|
145
|
-
categories: [],
|
|
146
|
-
domains: [origin],
|
|
147
|
-
averageExecutionTime: 0,
|
|
148
|
-
totalExecutionTime: 0,
|
|
149
|
-
totalOccurrences: 0,
|
|
150
|
-
};
|
|
151
|
-
|
|
152
|
-
entityCache.set(origin, chromeExtensionEntity);
|
|
153
|
-
return chromeExtensionEntity;
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
export function addEventToEntityMapping(event: Types.Events.Event, entityMappings: EntityMappings): void {
|
|
157
|
-
// As we share the entityMappings between Network and Renderer... We can have ResourceSendRequest events passed in here
|
|
158
|
-
// that were already mapped in Network. So, to avoid mapping twice, we always check that we didn't yet.
|
|
159
|
-
if (entityMappings.entityByEvent.has(event)) {
|
|
160
|
-
return;
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
const entity = getEntityForEvent(event, entityMappings);
|
|
164
|
-
if (!entity) {
|
|
165
|
-
return;
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
const mappedEvents = entityMappings.eventsByEntity.get(entity);
|
|
169
|
-
if (mappedEvents) {
|
|
170
|
-
mappedEvents.push(event);
|
|
171
|
-
} else {
|
|
172
|
-
entityMappings.eventsByEntity.set(entity, [event]);
|
|
173
|
-
}
|
|
174
|
-
entityMappings.entityByEvent.set(event, entity);
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
/** A slight upgrade of addEventToEntityMapping to handle the sub-events of a network request. **/
|
|
178
|
-
export function addNetworkRequestToEntityMapping(
|
|
179
|
-
networkRequest: Types.Events.SyntheticNetworkRequest, entityMappings: EntityMappings,
|
|
180
|
-
requestTraceEvents: TraceEventsForNetworkRequest): void {
|
|
181
|
-
const entity = getEntityForEvent(networkRequest, entityMappings);
|
|
182
|
-
if (!entity) {
|
|
183
|
-
return;
|
|
184
|
-
}
|
|
185
|
-
// In addition to mapping the network request, we'll also assign this entity to its "child" instant events like receiveData, willSendRequest, finishLoading, etc,
|
|
186
|
-
const eventsToMap = [networkRequest, ...Object.values(requestTraceEvents).flat()];
|
|
187
|
-
const mappedEvents = entityMappings.eventsByEntity.get(entity);
|
|
188
|
-
if (mappedEvents) {
|
|
189
|
-
mappedEvents.push(...eventsToMap);
|
|
190
|
-
} else {
|
|
191
|
-
entityMappings.eventsByEntity.set(entity, eventsToMap);
|
|
192
|
-
}
|
|
193
|
-
for (const evt of eventsToMap) {
|
|
194
|
-
entityMappings.entityByEvent.set(evt, entity);
|
|
195
|
-
}
|
|
196
|
-
}
|