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.
- package/dist/index.d.ts +4 -0
- package/dist/index.js +28854 -0
- package/package.json +11 -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,54 +0,0 @@
|
|
|
1
|
-
// Copyright 2025 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 {DebugId, SourceMapV3} from './SourceMap.js';
|
|
6
|
-
|
|
7
|
-
/** A thin wrapper around the Cache API to store source map JSONs keyed on Debug IDs */
|
|
8
|
-
export class SourceMapCache {
|
|
9
|
-
static readonly #INSTANCE = new SourceMapCache('devtools-source-map-cache');
|
|
10
|
-
|
|
11
|
-
static instance(): SourceMapCache {
|
|
12
|
-
return this.#INSTANCE;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
static createForTest(name: string): SourceMapCache {
|
|
16
|
-
return new SourceMapCache(name);
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
readonly #name: string;
|
|
20
|
-
#cachePromise?: Promise<Cache>;
|
|
21
|
-
|
|
22
|
-
private constructor(name: string) {
|
|
23
|
-
this.#name = name;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
async set(debugId: DebugId, sourceMap: SourceMapV3): Promise<void> {
|
|
27
|
-
const cache = await this.#cache();
|
|
28
|
-
await cache.put(SourceMapCache.#urlForDebugId(debugId), new Response(JSON.stringify(sourceMap)));
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
async get(debugId: DebugId): Promise<SourceMapV3|null> {
|
|
32
|
-
const cache = await this.#cache();
|
|
33
|
-
const response = await cache.match(SourceMapCache.#urlForDebugId(debugId));
|
|
34
|
-
return await response?.json() ?? null;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
async #cache(): Promise<Cache> {
|
|
38
|
-
if (this.#cachePromise) {
|
|
39
|
-
return await this.#cachePromise;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
this.#cachePromise = window.caches.open(this.#name);
|
|
43
|
-
return await this.#cachePromise;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
/** The Cache API only allows URL as keys, so we construct a simple one. Given that we have our own cache, we have no risk of conflicting URLs */
|
|
47
|
-
static #urlForDebugId(debugId: DebugId): string {
|
|
48
|
-
return 'http://debug.id/' + encodeURIComponent(debugId);
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
async disposeForTest(): Promise<void> {
|
|
52
|
-
await window.caches.delete(this.#name);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
@@ -1,156 +0,0 @@
|
|
|
1
|
-
// Copyright 2025 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 ScopesCodec from '../../third_party/source-map-scopes-codec/source-map-scopes-codec.js';
|
|
6
|
-
|
|
7
|
-
import {TokenIterator} from './SourceMap.js';
|
|
8
|
-
|
|
9
|
-
export interface NamedFunctionRange {
|
|
10
|
-
start: ScopesCodec.Position;
|
|
11
|
-
end: ScopesCodec.Position;
|
|
12
|
-
name: string;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Turns a list of {@link NamedFunctionRange}s into a single {@link OriginalScope} tree nested
|
|
17
|
-
* according to the start/end position. Each range is turned into a OriginalScope with the `isStackFrame`
|
|
18
|
-
* bit set to denote it as a function and a generic "Function" label.
|
|
19
|
-
*
|
|
20
|
-
* We nest all these function scopes underneath a single global scope that always starts at (0, 0) and
|
|
21
|
-
* reaches to the largest end position.
|
|
22
|
-
*
|
|
23
|
-
* `ranges` can be unsorted but will be sorted in-place.
|
|
24
|
-
*
|
|
25
|
-
* @throws if the ranges are not nested properly. Concretely: start < end for each range, and no
|
|
26
|
-
* "straddling" (i.e. partially overlapping ranges).
|
|
27
|
-
*/
|
|
28
|
-
export function buildOriginalScopes(ranges: NamedFunctionRange[]): ScopesCodec.OriginalScope {
|
|
29
|
-
validateStartBeforeEnd(ranges);
|
|
30
|
-
|
|
31
|
-
// 1. Sort ranges by ascending start position.
|
|
32
|
-
// If two ranges have the same start position, we sort the one
|
|
33
|
-
// with the higher end position first, because it's the parent.
|
|
34
|
-
ranges.sort((a, b) => comparePositions(a.start, b.start) || comparePositions(b.end, a.end));
|
|
35
|
-
|
|
36
|
-
const root: ScopesCodec.OriginalScope = {
|
|
37
|
-
start: {line: 0, column: 0},
|
|
38
|
-
end: {line: Number.POSITIVE_INFINITY, column: Number.POSITIVE_INFINITY},
|
|
39
|
-
kind: 'Global',
|
|
40
|
-
isStackFrame: false,
|
|
41
|
-
children: [],
|
|
42
|
-
variables: [],
|
|
43
|
-
};
|
|
44
|
-
|
|
45
|
-
// 2. Build the tree from the ranges.
|
|
46
|
-
const stack: ScopesCodec.OriginalScope[] = [root];
|
|
47
|
-
for (const range of ranges) {
|
|
48
|
-
// Pop all scopes that precede the current entry (to find the right parent).
|
|
49
|
-
let stackTop = stack.at(-1) as ScopesCodec.OriginalScope;
|
|
50
|
-
while (true) {
|
|
51
|
-
if (comparePositions(stackTop.end, range.start) <= 0) {
|
|
52
|
-
stack.pop();
|
|
53
|
-
stackTop = stack.at(-1) as ScopesCodec.OriginalScope;
|
|
54
|
-
} else {
|
|
55
|
-
break;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
/*
|
|
60
|
-
* Check for partially overlapping ranges:
|
|
61
|
-
*
|
|
62
|
-
* --- A
|
|
63
|
-
* | --- B
|
|
64
|
-
* --- |
|
|
65
|
-
* ---
|
|
66
|
-
*
|
|
67
|
-
*i.e.: B.start < A.end < B.end
|
|
68
|
-
*/
|
|
69
|
-
if (comparePositions(range.start, stackTop.end) < 0 && comparePositions(stackTop.end, range.end) < 0) {
|
|
70
|
-
throw new Error(`Range ${JSON.stringify(range)} and ${JSON.stringify(stackTop)} partially overlap.`);
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
const scope = createScopeFrom(range);
|
|
74
|
-
stackTop.children.push(scope);
|
|
75
|
-
stack.push(scope);
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
// 3. Update root.end.
|
|
79
|
-
const lastChild = root.children.at(-1);
|
|
80
|
-
if (lastChild) {
|
|
81
|
-
root.end = lastChild.end;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
return root;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
function validateStartBeforeEnd(ranges: NamedFunctionRange[]): void {
|
|
88
|
-
for (const range of ranges) {
|
|
89
|
-
if (comparePositions(range.start, range.end) >= 0) {
|
|
90
|
-
throw new Error(`Invalid range. End before start: ${JSON.stringify(range)}`);
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
function createScopeFrom(range: NamedFunctionRange): ScopesCodec.OriginalScope {
|
|
96
|
-
return {
|
|
97
|
-
...range,
|
|
98
|
-
kind: 'Function',
|
|
99
|
-
isStackFrame: true,
|
|
100
|
-
children: [],
|
|
101
|
-
variables: [],
|
|
102
|
-
};
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
/**
|
|
106
|
-
* Implements decoding of the pasta source map specification.
|
|
107
|
-
*
|
|
108
|
-
* See https://github.com/bloomberg/pasta-sourcemaps/blob/main/spec.md
|
|
109
|
-
*/
|
|
110
|
-
export function decodePastaRanges(encodedRanges: string, names: string[]): NamedFunctionRange[] {
|
|
111
|
-
const result: NamedFunctionRange[] = [];
|
|
112
|
-
|
|
113
|
-
let nameIndex = 0;
|
|
114
|
-
let startLineNumber = 0;
|
|
115
|
-
let startColumnNumber = 0;
|
|
116
|
-
let endLineNumber = 0;
|
|
117
|
-
let endColumnNumber = 0;
|
|
118
|
-
|
|
119
|
-
const tokenIter = new TokenIterator(encodedRanges);
|
|
120
|
-
let atStart = true;
|
|
121
|
-
while (tokenIter.hasNext()) {
|
|
122
|
-
if (atStart) {
|
|
123
|
-
atStart = false;
|
|
124
|
-
} else if (tokenIter.peek() === ',') {
|
|
125
|
-
tokenIter.next();
|
|
126
|
-
} else {
|
|
127
|
-
// Unexpected character. Return what we have up until now.
|
|
128
|
-
break;
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
nameIndex += tokenIter.nextVLQ();
|
|
132
|
-
startLineNumber = endLineNumber + tokenIter.nextVLQ();
|
|
133
|
-
startColumnNumber += tokenIter.nextVLQ();
|
|
134
|
-
endLineNumber = startLineNumber + tokenIter.nextVLQ();
|
|
135
|
-
endColumnNumber += tokenIter.nextVLQ();
|
|
136
|
-
|
|
137
|
-
const name = names[nameIndex];
|
|
138
|
-
if (name === undefined) {
|
|
139
|
-
// If the range doesn't have a valid name, ignore it.
|
|
140
|
-
continue;
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
result.push({
|
|
144
|
-
start: {line: startLineNumber, column: startColumnNumber},
|
|
145
|
-
end: {line: endLineNumber, column: endColumnNumber},
|
|
146
|
-
name,
|
|
147
|
-
});
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
return result;
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
/** @returns 0 if both positions are equal, a negative number if a < b and a positive number if a > b */
|
|
154
|
-
function comparePositions(a: ScopesCodec.Position, b: ScopesCodec.Position): number {
|
|
155
|
-
return a.line - b.line || a.column - b.column;
|
|
156
|
-
}
|
|
@@ -1,239 +0,0 @@
|
|
|
1
|
-
// Copyright 2017 The Chromium Authors
|
|
2
|
-
// Use of this source code is governed by a BSD-style license that can be
|
|
3
|
-
// found in the LICENSE file.
|
|
4
|
-
|
|
5
|
-
import * as Common from '../common/common.js';
|
|
6
|
-
import * as Platform from '../platform/platform.js';
|
|
7
|
-
|
|
8
|
-
import type {FrameAssociated} from './FrameAssociated.js';
|
|
9
|
-
import {PageResourceLoader, type PageResourceLoadInitiator} from './PageResourceLoader.js';
|
|
10
|
-
import {type DebugId, parseSourceMap, SourceMap, type SourceMapV3} from './SourceMap.js';
|
|
11
|
-
import {SourceMapCache} from './SourceMapCache.js';
|
|
12
|
-
import {type Target, Type} from './Target.js';
|
|
13
|
-
|
|
14
|
-
export type SourceMapFactory<T> =
|
|
15
|
-
(compiledURL: Platform.DevToolsPath.UrlString, sourceMappingURL: Platform.DevToolsPath.UrlString,
|
|
16
|
-
payload: SourceMapV3, client: T) => SourceMap;
|
|
17
|
-
|
|
18
|
-
export class SourceMapManager<T extends FrameAssociated> extends Common.ObjectWrapper.ObjectWrapper<EventTypes<T>> {
|
|
19
|
-
readonly #target: Target;
|
|
20
|
-
readonly #factory: SourceMapFactory<T>;
|
|
21
|
-
#isEnabled = true;
|
|
22
|
-
readonly #clientData = new Map<T, ClientData>();
|
|
23
|
-
readonly #sourceMaps = new Map<SourceMap, T>();
|
|
24
|
-
#attachingClient: T|null = null;
|
|
25
|
-
|
|
26
|
-
constructor(target: Target, factory?: SourceMapFactory<T>) {
|
|
27
|
-
super();
|
|
28
|
-
|
|
29
|
-
this.#target = target;
|
|
30
|
-
this.#factory =
|
|
31
|
-
factory ?? ((compiledURL, sourceMappingURL, payload) => new SourceMap(compiledURL, sourceMappingURL, payload));
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
setEnabled(isEnabled: boolean): void {
|
|
35
|
-
if (isEnabled === this.#isEnabled) {
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
// We need this copy, because `this.#clientData` is getting modified
|
|
40
|
-
// in the loop body and trying to iterate over it at the same time
|
|
41
|
-
// leads to an infinite loop.
|
|
42
|
-
const clientData = [...this.#clientData.entries()];
|
|
43
|
-
for (const [client] of clientData) {
|
|
44
|
-
this.detachSourceMap(client);
|
|
45
|
-
}
|
|
46
|
-
this.#isEnabled = isEnabled;
|
|
47
|
-
for (const [client, {relativeSourceURL, relativeSourceMapURL}] of clientData) {
|
|
48
|
-
this.attachSourceMap(client, relativeSourceURL, relativeSourceMapURL);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
private static getBaseUrl(target: Target|null): Platform.DevToolsPath.UrlString {
|
|
53
|
-
while (target && target.type() !== Type.FRAME) {
|
|
54
|
-
target = target.parentTarget();
|
|
55
|
-
}
|
|
56
|
-
return target?.inspectedURL() ?? Platform.DevToolsPath.EmptyUrlString;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
static resolveRelativeSourceURL(target: Target|null, url: Platform.DevToolsPath.UrlString):
|
|
60
|
-
Platform.DevToolsPath.UrlString {
|
|
61
|
-
url = Common.ParsedURL.ParsedURL.completeURL(SourceMapManager.getBaseUrl(target), url) ?? url;
|
|
62
|
-
return url;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
sourceMapForClient(client: T): SourceMap|undefined {
|
|
66
|
-
return this.#clientData.get(client)?.sourceMap;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
// This method actively awaits the source map, if still loading.
|
|
70
|
-
sourceMapForClientPromise(client: T): Promise<SourceMap|undefined> {
|
|
71
|
-
const clientData = this.#clientData.get(client);
|
|
72
|
-
if (!clientData) {
|
|
73
|
-
return Promise.resolve(undefined);
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
return clientData.sourceMapPromise;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
clientForSourceMap(sourceMap: SourceMap): T|undefined {
|
|
80
|
-
return this.#sourceMaps.get(sourceMap);
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
// TODO(bmeurer): We are lying about the type of |relativeSourceURL| here.
|
|
84
|
-
attachSourceMap(
|
|
85
|
-
client: T, relativeSourceURL: Platform.DevToolsPath.UrlString, relativeSourceMapURL: string|undefined): void {
|
|
86
|
-
if (this.#clientData.has(client)) {
|
|
87
|
-
throw new Error('SourceMap is already attached or being attached to client');
|
|
88
|
-
}
|
|
89
|
-
if (!relativeSourceMapURL) {
|
|
90
|
-
return;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
let clientData: ClientData|null = {
|
|
94
|
-
relativeSourceURL,
|
|
95
|
-
relativeSourceMapURL,
|
|
96
|
-
sourceMap: undefined,
|
|
97
|
-
sourceMapPromise: Promise.resolve(undefined),
|
|
98
|
-
};
|
|
99
|
-
if (this.#isEnabled) {
|
|
100
|
-
// The `// #sourceURL=foo` can be a random string, but is generally an absolute path.
|
|
101
|
-
// Complete it to inspected page url for relative links.
|
|
102
|
-
const sourceURL = SourceMapManager.resolveRelativeSourceURL(this.#target, relativeSourceURL);
|
|
103
|
-
const sourceMapURL = Common.ParsedURL.ParsedURL.completeURL(sourceURL, relativeSourceMapURL);
|
|
104
|
-
if (sourceMapURL) {
|
|
105
|
-
if (this.#attachingClient) {
|
|
106
|
-
// This should not happen
|
|
107
|
-
console.error('Attaching source map may cancel previously attaching source map');
|
|
108
|
-
}
|
|
109
|
-
this.#attachingClient = client;
|
|
110
|
-
this.dispatchEventToListeners(Events.SourceMapWillAttach, {client});
|
|
111
|
-
|
|
112
|
-
if (this.#attachingClient === client) {
|
|
113
|
-
this.#attachingClient = null;
|
|
114
|
-
const initiator = client.createPageResourceLoadInitiator();
|
|
115
|
-
clientData.sourceMapPromise =
|
|
116
|
-
loadSourceMap(sourceMapURL, client.debugId(), initiator)
|
|
117
|
-
.then(
|
|
118
|
-
payload => {
|
|
119
|
-
const sourceMap = this.#factory(sourceURL, sourceMapURL, payload, client);
|
|
120
|
-
if (this.#clientData.get(client) === clientData) {
|
|
121
|
-
clientData.sourceMap = sourceMap;
|
|
122
|
-
this.#sourceMaps.set(sourceMap, client);
|
|
123
|
-
this.dispatchEventToListeners(Events.SourceMapAttached, {client, sourceMap});
|
|
124
|
-
}
|
|
125
|
-
return sourceMap;
|
|
126
|
-
},
|
|
127
|
-
() => {
|
|
128
|
-
if (this.#clientData.get(client) === clientData) {
|
|
129
|
-
this.dispatchEventToListeners(Events.SourceMapFailedToAttach, {client});
|
|
130
|
-
}
|
|
131
|
-
return undefined;
|
|
132
|
-
});
|
|
133
|
-
} else {
|
|
134
|
-
// Assume cancelAttachSourceMap was called.
|
|
135
|
-
if (this.#attachingClient) {
|
|
136
|
-
// This should not happen
|
|
137
|
-
console.error('Cancelling source map attach because another source map is attaching');
|
|
138
|
-
}
|
|
139
|
-
clientData = null;
|
|
140
|
-
this.dispatchEventToListeners(Events.SourceMapFailedToAttach, {client});
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
if (clientData) {
|
|
145
|
-
this.#clientData.set(client, clientData);
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
cancelAttachSourceMap(client: T): void {
|
|
150
|
-
if (client === this.#attachingClient) {
|
|
151
|
-
this.#attachingClient = null;
|
|
152
|
-
// This should not happen.
|
|
153
|
-
} else if (this.#attachingClient) {
|
|
154
|
-
console.error('cancel attach source map requested but a different source map was being attached');
|
|
155
|
-
} else {
|
|
156
|
-
console.error('cancel attach source map requested but no source map was being attached');
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
detachSourceMap(client: T): void {
|
|
161
|
-
const clientData = this.#clientData.get(client);
|
|
162
|
-
if (!clientData) {
|
|
163
|
-
return;
|
|
164
|
-
}
|
|
165
|
-
this.#clientData.delete(client);
|
|
166
|
-
if (!this.#isEnabled) {
|
|
167
|
-
return;
|
|
168
|
-
}
|
|
169
|
-
const {sourceMap} = clientData;
|
|
170
|
-
if (sourceMap) {
|
|
171
|
-
this.#sourceMaps.delete(sourceMap);
|
|
172
|
-
this.dispatchEventToListeners(Events.SourceMapDetached, {client, sourceMap});
|
|
173
|
-
} else {
|
|
174
|
-
this.dispatchEventToListeners(Events.SourceMapFailedToAttach, {client});
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
waitForSourceMapsProcessedForTest(): Promise<unknown> {
|
|
179
|
-
return Promise.all(this.#sourceMaps.keys().map(sourceMap => sourceMap.scopesFallbackPromiseForTest));
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
export async function loadSourceMap(
|
|
184
|
-
url: Platform.DevToolsPath.UrlString, debugId: DebugId|null,
|
|
185
|
-
initiator: PageResourceLoadInitiator): Promise<SourceMapV3> {
|
|
186
|
-
try {
|
|
187
|
-
if (debugId) {
|
|
188
|
-
const cachedSourceMap = await SourceMapCache.instance().get(debugId);
|
|
189
|
-
if (cachedSourceMap) {
|
|
190
|
-
return cachedSourceMap;
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
const {content} = await PageResourceLoader.instance().loadResource(url, initiator);
|
|
195
|
-
const sourceMap = parseSourceMap(content);
|
|
196
|
-
if ('debugId' in sourceMap && sourceMap.debugId) {
|
|
197
|
-
// In case something goes wrong with updating the cache, we still want to use the source map.
|
|
198
|
-
await SourceMapCache.instance().set(sourceMap.debugId as DebugId, sourceMap).catch();
|
|
199
|
-
}
|
|
200
|
-
return sourceMap;
|
|
201
|
-
} catch (cause) {
|
|
202
|
-
throw new Error(`Could not load content for ${url}: ${cause.message}`, {cause});
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
export async function tryLoadSourceMap(
|
|
207
|
-
url: Platform.DevToolsPath.UrlString, initiator: PageResourceLoadInitiator): Promise<SourceMapV3|null> {
|
|
208
|
-
try {
|
|
209
|
-
return await loadSourceMap(url, null, initiator);
|
|
210
|
-
} catch (cause) {
|
|
211
|
-
console.error(cause);
|
|
212
|
-
return null;
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
interface ClientData {
|
|
217
|
-
relativeSourceURL: Platform.DevToolsPath.UrlString;
|
|
218
|
-
// Stores the raw sourceMappingURL as provided by V8. These are not guaranteed to
|
|
219
|
-
// be valid URLs and will be checked and resolved once `attachSourceMap` is called.
|
|
220
|
-
relativeSourceMapURL: string;
|
|
221
|
-
sourceMap: SourceMap|undefined;
|
|
222
|
-
sourceMapPromise: Promise<SourceMap|undefined>;
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
export enum Events {
|
|
226
|
-
/* eslint-disable @typescript-eslint/naming-convention -- Used by web_tests. */
|
|
227
|
-
SourceMapWillAttach = 'SourceMapWillAttach',
|
|
228
|
-
SourceMapFailedToAttach = 'SourceMapFailedToAttach',
|
|
229
|
-
SourceMapAttached = 'SourceMapAttached',
|
|
230
|
-
SourceMapDetached = 'SourceMapDetached',
|
|
231
|
-
/* eslint-enable @typescript-eslint/naming-convention */
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
export interface EventTypes<T extends FrameAssociated> {
|
|
235
|
-
[Events.SourceMapWillAttach]: {client: T};
|
|
236
|
-
[Events.SourceMapFailedToAttach]: {client: T};
|
|
237
|
-
[Events.SourceMapAttached]: {client: T, sourceMap: SourceMap};
|
|
238
|
-
[Events.SourceMapDetached]: {client: T, sourceMap: SourceMap};
|
|
239
|
-
}
|
|
@@ -1,189 +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 * as Protocol from '../../generated/protocol.js';
|
|
6
|
-
import type * as ScopesCodec from '../../third_party/source-map-scopes-codec/source-map-scopes-codec.js';
|
|
7
|
-
import * as i18n from '../i18n/i18n.js';
|
|
8
|
-
|
|
9
|
-
import type {CallFrame, LocationRange, ScopeChainEntry} from './DebuggerModel.js';
|
|
10
|
-
import {type GetPropertiesResult, type RemoteObject, RemoteObjectImpl, RemoteObjectProperty} from './RemoteObject.js';
|
|
11
|
-
import {contains} from './SourceMapScopesInfo.js';
|
|
12
|
-
|
|
13
|
-
const UIStrings = {
|
|
14
|
-
/**
|
|
15
|
-
* @description Title of a section in the debugger showing local JavaScript variables.
|
|
16
|
-
*/
|
|
17
|
-
local: 'Local',
|
|
18
|
-
/**
|
|
19
|
-
* @description Text that refers to closure as a programming term
|
|
20
|
-
*/
|
|
21
|
-
closure: 'Closure',
|
|
22
|
-
/**
|
|
23
|
-
* @description Noun that represents a section or block of code in the Debugger Model. Shown in the Sources tab, while paused on a breakpoint.
|
|
24
|
-
*/
|
|
25
|
-
block: 'Block',
|
|
26
|
-
/**
|
|
27
|
-
* @description Title of a section in the debugger showing JavaScript variables from the global scope.
|
|
28
|
-
*/
|
|
29
|
-
global: 'Global',
|
|
30
|
-
/**
|
|
31
|
-
* @description Text in Scope Chain Sidebar Pane of the Sources panel
|
|
32
|
-
*/
|
|
33
|
-
returnValue: 'Return value',
|
|
34
|
-
} as const;
|
|
35
|
-
const str_ = i18n.i18n.registerUIStrings('core/sdk/SourceMapScopeChainEntry.ts', UIStrings);
|
|
36
|
-
const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
|
|
37
|
-
|
|
38
|
-
export class SourceMapScopeChainEntry implements ScopeChainEntry {
|
|
39
|
-
readonly #callFrame: CallFrame;
|
|
40
|
-
readonly #scope: ScopesCodec.OriginalScope;
|
|
41
|
-
readonly #range?: ScopesCodec.GeneratedRange;
|
|
42
|
-
readonly #isInnerMostFunction: boolean;
|
|
43
|
-
readonly #returnValue?: RemoteObject;
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* @param isInnerMostFunction If `scope` is the innermost 'function' scope. Only used for labeling as we name the
|
|
47
|
-
* scope of the paused function 'Local', while other outer 'function' scopes are named 'Closure'.
|
|
48
|
-
*/
|
|
49
|
-
constructor(
|
|
50
|
-
callFrame: CallFrame, scope: ScopesCodec.OriginalScope, range: ScopesCodec.GeneratedRange|undefined,
|
|
51
|
-
isInnerMostFunction: boolean, returnValue: RemoteObject|undefined) {
|
|
52
|
-
this.#callFrame = callFrame;
|
|
53
|
-
this.#scope = scope;
|
|
54
|
-
this.#range = range;
|
|
55
|
-
this.#isInnerMostFunction = isInnerMostFunction;
|
|
56
|
-
this.#returnValue = returnValue;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
extraProperties(): RemoteObjectProperty[] {
|
|
60
|
-
if (this.#returnValue) {
|
|
61
|
-
return [new RemoteObjectProperty(
|
|
62
|
-
i18nString(UIStrings.returnValue), this.#returnValue, undefined, undefined, undefined, undefined, undefined,
|
|
63
|
-
/* synthetic */ true)];
|
|
64
|
-
}
|
|
65
|
-
return [];
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
callFrame(): CallFrame {
|
|
69
|
-
return this.#callFrame;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
type(): string {
|
|
73
|
-
switch (this.#scope.kind) {
|
|
74
|
-
case 'global':
|
|
75
|
-
return Protocol.Debugger.ScopeType.Global;
|
|
76
|
-
case 'function':
|
|
77
|
-
return this.#isInnerMostFunction ? Protocol.Debugger.ScopeType.Local : Protocol.Debugger.ScopeType.Closure;
|
|
78
|
-
case 'block':
|
|
79
|
-
return Protocol.Debugger.ScopeType.Block;
|
|
80
|
-
}
|
|
81
|
-
return this.#scope.kind ?? '';
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
typeName(): string {
|
|
85
|
-
switch (this.#scope.kind) {
|
|
86
|
-
case 'global':
|
|
87
|
-
return i18nString(UIStrings.global);
|
|
88
|
-
case 'function':
|
|
89
|
-
return this.#isInnerMostFunction ? i18nString(UIStrings.local) : i18nString(UIStrings.closure);
|
|
90
|
-
case 'block':
|
|
91
|
-
return i18nString(UIStrings.block);
|
|
92
|
-
}
|
|
93
|
-
return this.#scope.kind ?? '';
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
name(): string|undefined {
|
|
97
|
-
return this.#scope.name;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
range(): LocationRange|null {
|
|
101
|
-
return null;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
object(): RemoteObject {
|
|
105
|
-
return new SourceMapScopeRemoteObject(this.#callFrame, this.#scope, this.#range);
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
description(): string {
|
|
109
|
-
return '';
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
icon(): string|undefined {
|
|
113
|
-
return undefined;
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
class SourceMapScopeRemoteObject extends RemoteObjectImpl {
|
|
118
|
-
readonly #callFrame: CallFrame;
|
|
119
|
-
readonly #scope: ScopesCodec.OriginalScope;
|
|
120
|
-
readonly #range?: ScopesCodec.GeneratedRange;
|
|
121
|
-
|
|
122
|
-
constructor(callFrame: CallFrame, scope: ScopesCodec.OriginalScope, range: ScopesCodec.GeneratedRange|undefined) {
|
|
123
|
-
super(
|
|
124
|
-
callFrame.debuggerModel.runtimeModel(), /* objectId */ undefined, 'object', /* sub type */ undefined,
|
|
125
|
-
/* value */ null);
|
|
126
|
-
this.#callFrame = callFrame;
|
|
127
|
-
this.#scope = scope;
|
|
128
|
-
this.#range = range;
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
override async doGetProperties(_ownProperties: boolean, accessorPropertiesOnly: boolean, generatePreview: boolean):
|
|
132
|
-
Promise<GetPropertiesResult> {
|
|
133
|
-
if (accessorPropertiesOnly) {
|
|
134
|
-
return {properties: [], internalProperties: []};
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
const properties: RemoteObjectProperty[] = [];
|
|
138
|
-
for (const [index, variable] of this.#scope.variables.entries()) {
|
|
139
|
-
const expression = this.#findExpression(index);
|
|
140
|
-
if (expression === null) {
|
|
141
|
-
properties.push(SourceMapScopeRemoteObject.#unavailableProperty(variable));
|
|
142
|
-
continue;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
// TODO(crbug.com/40277685): Once we can evaluate expressions in scopes other than the innermost one,
|
|
146
|
-
// we need to find the find the CDP scope that matches `this.#range` and evaluate in that.
|
|
147
|
-
const result = await this.#callFrame.evaluate({expression, generatePreview});
|
|
148
|
-
if ('error' in result || result.exceptionDetails) {
|
|
149
|
-
// TODO(crbug.com/40277685): Make these errors user-visible to aid tooling developers.
|
|
150
|
-
// E.g. show the error on hover or expose it in the developer resources panel.
|
|
151
|
-
properties.push(SourceMapScopeRemoteObject.#unavailableProperty(variable));
|
|
152
|
-
} else {
|
|
153
|
-
properties.push(new RemoteObjectProperty(
|
|
154
|
-
variable, result.object, /* enumerable */ false, /* writable */ false, /* isOwn */ true,
|
|
155
|
-
/* wasThrown */ false));
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
return {properties, internalProperties: []};
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
/** @returns null if the variable is unavailable at the current paused location */
|
|
163
|
-
#findExpression(index: number): string|null {
|
|
164
|
-
if (!this.#range) {
|
|
165
|
-
return null;
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
const expressionOrSubRanges = this.#range.values[index];
|
|
169
|
-
if (typeof expressionOrSubRanges === 'string') {
|
|
170
|
-
return expressionOrSubRanges;
|
|
171
|
-
}
|
|
172
|
-
if (expressionOrSubRanges === null) {
|
|
173
|
-
return null;
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
const pausedPosition = this.#callFrame.location();
|
|
177
|
-
for (const range of expressionOrSubRanges) {
|
|
178
|
-
if (contains({start: range.from, end: range.to}, pausedPosition.lineNumber, pausedPosition.columnNumber)) {
|
|
179
|
-
return range.value ?? null;
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
return null;
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
static #unavailableProperty(name: string): RemoteObjectProperty {
|
|
186
|
-
return new RemoteObjectProperty(
|
|
187
|
-
name, null, /* enumerable */ false, /* writeable */ false, /* isOwn */ true, /* wasThrown */ false);
|
|
188
|
-
}
|
|
189
|
-
}
|