devtools-tracing 1.0.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/generate.ts +643 -0
- package/index.ts +16 -0
- package/lib/front_end/core/common/App.ts +7 -0
- package/lib/front_end/core/common/AppProvider.ts +32 -0
- package/lib/front_end/core/common/Base64.ts +47 -0
- package/lib/front_end/core/common/CharacterIdMap.ts +30 -0
- package/lib/front_end/core/common/Color.ts +2506 -0
- package/lib/front_end/core/common/ColorConverter.ts +402 -0
- package/lib/front_end/core/common/ColorUtils.ts +252 -0
- package/lib/front_end/core/common/Console.ts +114 -0
- package/lib/front_end/core/common/Debouncer.ts +15 -0
- package/lib/front_end/core/common/EventTarget.ts +52 -0
- package/lib/front_end/core/common/Gzip.ts +74 -0
- package/lib/front_end/core/common/JavaScriptMetaData.ts +29 -0
- package/lib/front_end/core/common/Lazy.ts +31 -0
- package/lib/front_end/core/common/Linkifier.ts +55 -0
- package/lib/front_end/core/common/MapWithDefault.ts +26 -0
- package/lib/front_end/core/common/Mutex.ts +55 -0
- package/lib/front_end/core/common/Object.ts +145 -0
- package/lib/front_end/core/common/ParsedURL.ts +554 -0
- package/lib/front_end/core/common/Progress.ts +180 -0
- package/lib/front_end/core/common/QueryParamHandler.ts +7 -0
- package/lib/front_end/core/common/ResolverBase.ts +85 -0
- package/lib/front_end/core/common/ResourceType.ts +588 -0
- package/lib/front_end/core/common/ReturnToPanel.ts +17 -0
- package/lib/front_end/core/common/Revealer.ts +192 -0
- package/lib/front_end/core/common/Runnable.ts +41 -0
- package/lib/front_end/core/common/SegmentedRange.ts +87 -0
- package/lib/front_end/core/common/SettingRegistration.ts +339 -0
- package/lib/front_end/core/common/Settings.ts +1497 -0
- package/lib/front_end/core/common/SimpleHistoryManager.ts +124 -0
- package/lib/front_end/core/common/StringOutputStream.ts +26 -0
- package/lib/front_end/core/common/TextDictionary.ts +48 -0
- package/lib/front_end/core/common/Throttler.ts +99 -0
- package/lib/front_end/core/common/Trie.ts +152 -0
- package/lib/front_end/core/common/Worker.ts +60 -0
- package/lib/front_end/core/common/common.ts +81 -0
- package/lib/front_end/core/host/AidaClient.ts +733 -0
- package/lib/front_end/core/host/GdpClient.ts +316 -0
- package/lib/front_end/core/host/InspectorFrontendHost.ts +648 -0
- package/lib/front_end/core/host/InspectorFrontendHostAPI.ts +551 -0
- package/lib/front_end/core/host/Platform.ts +76 -0
- package/lib/front_end/core/host/ResourceLoader.ts +282 -0
- package/lib/front_end/core/host/UserMetrics.ts +1230 -0
- package/lib/front_end/core/host/host.ts +23 -0
- package/lib/front_end/core/i18n/ByteUtilities.ts +82 -0
- package/lib/front_end/core/i18n/DevToolsLocale.ts +87 -0
- package/lib/front_end/core/i18n/NumberFormatter.ts +82 -0
- package/lib/front_end/core/i18n/i18n.ts +17 -0
- package/lib/front_end/core/i18n/i18nImpl.ts +204 -0
- package/lib/front_end/core/i18n/i18nTypes.ts +10 -0
- package/lib/front_end/core/i18n/locales.js +14 -0
- package/lib/front_end/core/i18n/time-utilities.ts +174 -0
- package/lib/front_end/core/platform/ArrayUtilities.ts +271 -0
- package/lib/front_end/core/platform/Brand.ts +23 -0
- package/lib/front_end/core/platform/Constructor.ts +10 -0
- package/lib/front_end/core/platform/DOMUtilities.ts +138 -0
- package/lib/front_end/core/platform/DateUtilities.ts +15 -0
- package/lib/front_end/core/platform/DevToolsPath.ts +53 -0
- package/lib/front_end/core/platform/KeyboardUtilities.ts +38 -0
- package/lib/front_end/core/platform/MapUtilities.ts +95 -0
- package/lib/front_end/core/platform/MimeType.ts +175 -0
- package/lib/front_end/core/platform/NumberUtilities.ts +80 -0
- package/lib/front_end/core/platform/StringUtilities.ts +588 -0
- package/lib/front_end/core/platform/Timing.ts +17 -0
- package/lib/front_end/core/platform/TypedArrayUtilities.ts +189 -0
- package/lib/front_end/core/platform/TypescriptUtilities.ts +86 -0
- package/lib/front_end/core/platform/UIString.ts +39 -0
- package/lib/front_end/core/platform/UserVisibleError.ts +28 -0
- package/lib/front_end/core/platform/platform.ts +45 -0
- package/lib/front_end/core/protocol_client/ConnectionTransport.ts +26 -0
- package/lib/front_end/core/protocol_client/InspectorBackend.ts +1050 -0
- package/lib/front_end/core/protocol_client/NodeURL.ts +42 -0
- package/lib/front_end/core/protocol_client/protocol_client.ts +13 -0
- package/lib/front_end/core/root/Runtime.ts +609 -0
- package/lib/front_end/core/root/root.ts +6 -0
- package/lib/front_end/core/sdk/AccessibilityModel.ts +353 -0
- package/lib/front_end/core/sdk/AnimationModel.ts +1041 -0
- package/lib/front_end/core/sdk/AutofillModel.ts +184 -0
- package/lib/front_end/core/sdk/CPUProfilerModel.ts +148 -0
- package/lib/front_end/core/sdk/CPUThrottlingManager.ts +282 -0
- package/lib/front_end/core/sdk/CSSContainerQuery.ts +139 -0
- package/lib/front_end/core/sdk/CSSFontFace.ts +40 -0
- package/lib/front_end/core/sdk/CSSLayer.ts +30 -0
- package/lib/front_end/core/sdk/CSSMatchedStyles.ts +1646 -0
- package/lib/front_end/core/sdk/CSSMedia.ts +121 -0
- package/lib/front_end/core/sdk/CSSMetadata.ts +1647 -0
- package/lib/front_end/core/sdk/CSSModel.ts +1128 -0
- package/lib/front_end/core/sdk/CSSProperty.ts +384 -0
- package/lib/front_end/core/sdk/CSSPropertyParser.ts +681 -0
- package/lib/front_end/core/sdk/CSSPropertyParserMatchers.ts +1395 -0
- package/lib/front_end/core/sdk/CSSQuery.ts +72 -0
- package/lib/front_end/core/sdk/CSSRule.ts +465 -0
- package/lib/front_end/core/sdk/CSSScope.ts +30 -0
- package/lib/front_end/core/sdk/CSSStartingStyle.ts +29 -0
- package/lib/front_end/core/sdk/CSSStyleDeclaration.ts +313 -0
- package/lib/front_end/core/sdk/CSSStyleSheetHeader.ts +196 -0
- package/lib/front_end/core/sdk/CSSSupports.ts +33 -0
- package/lib/front_end/core/sdk/CategorizedBreakpoint.ts +64 -0
- package/lib/front_end/core/sdk/ChildTargetManager.ts +314 -0
- package/lib/front_end/core/sdk/CompilerSourceMappingContentProvider.ts +62 -0
- package/lib/front_end/core/sdk/Connections.ts +293 -0
- package/lib/front_end/core/sdk/ConsoleModel.ts +808 -0
- package/lib/front_end/core/sdk/ConsoleModelTypes.ts +15 -0
- package/lib/front_end/core/sdk/Cookie.ts +319 -0
- package/lib/front_end/core/sdk/CookieModel.ts +239 -0
- package/lib/front_end/core/sdk/CookieParser.ts +185 -0
- package/lib/front_end/core/sdk/DOMDebuggerModel.ts +787 -0
- package/lib/front_end/core/sdk/DOMModel.ts +1961 -0
- package/lib/front_end/core/sdk/DebuggerModel.ts +1605 -0
- package/lib/front_end/core/sdk/EmulationModel.ts +648 -0
- package/lib/front_end/core/sdk/EnhancedTracesParser.ts +515 -0
- package/lib/front_end/core/sdk/EventBreakpointsModel.ts +183 -0
- package/lib/front_end/core/sdk/FrameAssociated.ts +11 -0
- package/lib/front_end/core/sdk/FrameManager.ts +259 -0
- package/lib/front_end/core/sdk/HeapProfilerModel.ts +225 -0
- package/lib/front_end/core/sdk/HttpReasonPhraseStrings.ts +77 -0
- package/lib/front_end/core/sdk/IOModel.ts +91 -0
- package/lib/front_end/core/sdk/IsolateManager.ts +257 -0
- package/lib/front_end/core/sdk/IssuesModel.ts +70 -0
- package/lib/front_end/core/sdk/LayerTreeBase.ts +169 -0
- package/lib/front_end/core/sdk/LogModel.ts +56 -0
- package/lib/front_end/core/sdk/NetworkManager.ts +2823 -0
- package/lib/front_end/core/sdk/NetworkRequest.ts +2253 -0
- package/lib/front_end/core/sdk/OverlayColorGenerator.ts +52 -0
- package/lib/front_end/core/sdk/OverlayModel.ts +1011 -0
- package/lib/front_end/core/sdk/OverlayPersistentHighlighter.ts +522 -0
- package/lib/front_end/core/sdk/PageLoad.ts +35 -0
- package/lib/front_end/core/sdk/PageResourceLoader.ts +435 -0
- package/lib/front_end/core/sdk/PaintProfiler.ts +110 -0
- package/lib/front_end/core/sdk/PerformanceMetricsModel.ts +84 -0
- package/lib/front_end/core/sdk/PreloadingModel.ts +863 -0
- package/lib/front_end/core/sdk/RehydratingConnection.ts +386 -0
- package/lib/front_end/core/sdk/RehydratingObject.ts +66 -0
- package/lib/front_end/core/sdk/RemoteObject.ts +1160 -0
- package/lib/front_end/core/sdk/Resource.ts +232 -0
- package/lib/front_end/core/sdk/ResourceTreeModel.ts +1160 -0
- package/lib/front_end/core/sdk/RuntimeModel.ts +732 -0
- package/lib/front_end/core/sdk/SDKModel.ts +65 -0
- package/lib/front_end/core/sdk/ScopeTreeCache.ts +45 -0
- package/lib/front_end/core/sdk/ScreenCaptureModel.ts +255 -0
- package/lib/front_end/core/sdk/Script.ts +534 -0
- package/lib/front_end/core/sdk/SecurityOriginManager.ts +76 -0
- package/lib/front_end/core/sdk/ServerSentEvents.ts +80 -0
- package/lib/front_end/core/sdk/ServerSentEventsProtocol.ts +122 -0
- package/lib/front_end/core/sdk/ServerTiming.ts +260 -0
- package/lib/front_end/core/sdk/ServiceWorkerCacheModel.ts +377 -0
- package/lib/front_end/core/sdk/ServiceWorkerManager.ts +605 -0
- package/lib/front_end/core/sdk/SourceMap.ts +867 -0
- package/lib/front_end/core/sdk/SourceMapCache.ts +54 -0
- package/lib/front_end/core/sdk/SourceMapFunctionRanges.ts +156 -0
- package/lib/front_end/core/sdk/SourceMapManager.ts +239 -0
- package/lib/front_end/core/sdk/SourceMapScopeChainEntry.ts +189 -0
- package/lib/front_end/core/sdk/SourceMapScopesInfo.ts +508 -0
- package/lib/front_end/core/sdk/StorageBucketsModel.ts +204 -0
- package/lib/front_end/core/sdk/StorageKeyManager.ts +98 -0
- package/lib/front_end/core/sdk/Target.ts +332 -0
- package/lib/front_end/core/sdk/TargetManager.ts +453 -0
- package/lib/front_end/core/sdk/TraceObject.ts +61 -0
- package/lib/front_end/core/sdk/WebAuthnModel.ts +104 -0
- package/lib/front_end/core/sdk/sdk.ts +174 -0
- package/lib/front_end/entrypoints/formatter_worker/FormatterActions.ts +59 -0
- package/lib/front_end/generated/InspectorBackendCommands.js +1617 -0
- package/lib/front_end/generated/SupportedCSSProperties.js +7512 -0
- package/lib/front_end/generated/protocol-proxy-api.d.ts +5022 -0
- package/lib/front_end/generated/protocol.ts +22014 -0
- package/lib/front_end/models/cpu_profile/CPUProfileDataModel.ts +571 -0
- package/lib/front_end/models/cpu_profile/ProfileTreeModel.ts +103 -0
- package/lib/front_end/models/cpu_profile/cpu_profile.ts +11 -0
- package/lib/front_end/models/formatter/FormatterWorkerPool.ts +219 -0
- package/lib/front_end/models/formatter/ScriptFormatter.ts +112 -0
- package/lib/front_end/models/formatter/formatter.ts +8 -0
- package/lib/front_end/models/text_utils/CodeMirrorUtils.ts +37 -0
- package/lib/front_end/models/text_utils/ContentData.ts +199 -0
- package/lib/front_end/models/text_utils/ContentProvider.ts +68 -0
- package/lib/front_end/models/text_utils/StaticContentProvider.ts +49 -0
- package/lib/front_end/models/text_utils/StreamingContentData.ts +108 -0
- package/lib/front_end/models/text_utils/Text.ts +90 -0
- package/lib/front_end/models/text_utils/TextCursor.ts +44 -0
- package/lib/front_end/models/text_utils/TextRange.ts +266 -0
- package/lib/front_end/models/text_utils/TextUtils.ts +401 -0
- package/lib/front_end/models/text_utils/WasmDisassembly.ts +87 -0
- package/lib/front_end/models/text_utils/text_utils.ts +27 -0
- package/lib/front_end/models/trace/EntityMapper.ts +141 -0
- package/lib/front_end/models/trace/EventsSerializer.ts +101 -0
- package/lib/front_end/models/trace/LanternComputationData.ts +438 -0
- package/lib/front_end/models/trace/ModelImpl.ts +236 -0
- package/lib/front_end/models/trace/Name.ts +136 -0
- package/lib/front_end/models/trace/Processor.ts +652 -0
- package/lib/front_end/models/trace/Styles.ts +1138 -0
- package/lib/front_end/models/trace/extras/FilmStrip.ts +78 -0
- package/lib/front_end/models/trace/extras/MainThreadActivity.ts +86 -0
- package/lib/front_end/models/trace/extras/ScriptDuplication.ts +236 -0
- package/lib/front_end/models/trace/extras/StackTraceForEvent.ts +203 -0
- package/lib/front_end/models/trace/extras/ThirdParties.ts +164 -0
- package/lib/front_end/models/trace/extras/TraceFilter.ts +62 -0
- package/lib/front_end/models/trace/extras/TraceTree.ts +701 -0
- package/lib/front_end/models/trace/extras/extras.ts +11 -0
- package/lib/front_end/models/trace/handlers/AnimationFramesHandler.ts +128 -0
- package/lib/front_end/models/trace/handlers/AnimationHandler.ts +36 -0
- package/lib/front_end/models/trace/handlers/AsyncJSCallsHandler.ts +239 -0
- package/lib/front_end/models/trace/handlers/AuctionWorkletsHandler.ts +183 -0
- package/lib/front_end/models/trace/handlers/DOMStatsHandler.ts +31 -0
- package/lib/front_end/models/trace/handlers/ExtensionTraceDataHandler.ts +306 -0
- package/lib/front_end/models/trace/handlers/FlowsHandler.ts +175 -0
- package/lib/front_end/models/trace/handlers/FramesHandler.ts +571 -0
- package/lib/front_end/models/trace/handlers/GPUHandler.ts +50 -0
- package/lib/front_end/models/trace/handlers/ImagePaintingHandler.ts +183 -0
- package/lib/front_end/models/trace/handlers/InitiatorsHandler.ts +193 -0
- package/lib/front_end/models/trace/handlers/InvalidationsHandler.ts +168 -0
- package/lib/front_end/models/trace/handlers/LargestImagePaintHandler.ts +109 -0
- package/lib/front_end/models/trace/handlers/LargestTextPaintHandler.ts +35 -0
- package/lib/front_end/models/trace/handlers/LayerTreeHandler.ts +123 -0
- package/lib/front_end/models/trace/handlers/LayoutShiftsHandler.ts +573 -0
- package/lib/front_end/models/trace/handlers/MemoryHandler.ts +31 -0
- package/lib/front_end/models/trace/handlers/MetaHandler.ts +525 -0
- package/lib/front_end/models/trace/handlers/ModelHandlers.ts +34 -0
- package/lib/front_end/models/trace/handlers/NetworkRequestsHandler.ts +672 -0
- package/lib/front_end/models/trace/handlers/PageFramesHandler.ts +52 -0
- package/lib/front_end/models/trace/handlers/PageLoadMetricsHandler.ts +460 -0
- package/lib/front_end/models/trace/handlers/RendererHandler.ts +428 -0
- package/lib/front_end/models/trace/handlers/SamplesHandler.ts +271 -0
- package/lib/front_end/models/trace/handlers/ScreenshotsHandler.ts +122 -0
- package/lib/front_end/models/trace/handlers/ScriptsHandler.ts +336 -0
- package/lib/front_end/models/trace/handlers/SelectorStatsHandler.ts +110 -0
- package/lib/front_end/models/trace/handlers/Threads.ts +139 -0
- package/lib/front_end/models/trace/handlers/UserInteractionsHandler.ts +400 -0
- package/lib/front_end/models/trace/handlers/UserTimingsHandler.ts +233 -0
- package/lib/front_end/models/trace/handlers/WarningsHandler.ts +162 -0
- package/lib/front_end/models/trace/handlers/WorkersHandler.ts +45 -0
- package/lib/front_end/models/trace/handlers/handlers.ts +8 -0
- package/lib/front_end/models/trace/handlers/helpers.ts +196 -0
- package/lib/front_end/models/trace/handlers/types.ts +75 -0
- package/lib/front_end/models/trace/helpers/Extensions.ts +54 -0
- package/lib/front_end/models/trace/helpers/Network.ts +129 -0
- package/lib/front_end/models/trace/helpers/SamplesIntegrator.ts +544 -0
- package/lib/front_end/models/trace/helpers/SyntheticEvents.ts +87 -0
- package/lib/front_end/models/trace/helpers/Timing.ts +248 -0
- package/lib/front_end/models/trace/helpers/Trace.ts +928 -0
- package/lib/front_end/models/trace/helpers/TreeHelpers.ts +320 -0
- package/lib/front_end/models/trace/helpers/helpers.ts +11 -0
- package/lib/front_end/models/trace/insights/CLSCulprits.ts +668 -0
- package/lib/front_end/models/trace/insights/Cache.ts +269 -0
- package/lib/front_end/models/trace/insights/Common.ts +453 -0
- package/lib/front_end/models/trace/insights/DOMSize.ts +223 -0
- package/lib/front_end/models/trace/insights/DocumentLatency.ts +319 -0
- package/lib/front_end/models/trace/insights/DuplicatedJavaScript.ts +126 -0
- package/lib/front_end/models/trace/insights/FontDisplay.ts +119 -0
- package/lib/front_end/models/trace/insights/ForcedReflow.ts +220 -0
- package/lib/front_end/models/trace/insights/INPBreakdown.ts +171 -0
- package/lib/front_end/models/trace/insights/ImageDelivery.ts +348 -0
- package/lib/front_end/models/trace/insights/LCPBreakdown.ts +268 -0
- package/lib/front_end/models/trace/insights/LCPDiscovery.ts +237 -0
- package/lib/front_end/models/trace/insights/LegacyJavaScript.ts +138 -0
- package/lib/front_end/models/trace/insights/Models.ts +22 -0
- package/lib/front_end/models/trace/insights/ModernHTTP.ts +257 -0
- package/lib/front_end/models/trace/insights/NetworkDependencyTree.ts +726 -0
- package/lib/front_end/models/trace/insights/RenderBlocking.ts +257 -0
- package/lib/front_end/models/trace/insights/SlowCSSSelector.ts +175 -0
- package/lib/front_end/models/trace/insights/Statistics.ts +101 -0
- package/lib/front_end/models/trace/insights/ThirdParties.ts +130 -0
- package/lib/front_end/models/trace/insights/Viewport.ts +138 -0
- package/lib/front_end/models/trace/insights/insights.ts +10 -0
- package/lib/front_end/models/trace/insights/types.ts +157 -0
- package/lib/front_end/models/trace/lantern/core/LanternError.ts +7 -0
- package/lib/front_end/models/trace/lantern/core/NetworkAnalyzer.ts +619 -0
- package/lib/front_end/models/trace/lantern/core/core.ts +6 -0
- package/lib/front_end/models/trace/lantern/graph/BaseNode.ts +345 -0
- package/lib/front_end/models/trace/lantern/graph/CPUNode.ts +80 -0
- package/lib/front_end/models/trace/lantern/graph/NetworkNode.ts +101 -0
- package/lib/front_end/models/trace/lantern/graph/PageDependencyGraph.ts +636 -0
- package/lib/front_end/models/trace/lantern/graph/graph.ts +8 -0
- package/lib/front_end/models/trace/lantern/lantern.ts +17 -0
- package/lib/front_end/models/trace/lantern/metrics/FirstContentfulPaint.ts +187 -0
- package/lib/front_end/models/trace/lantern/metrics/Interactive.ts +88 -0
- package/lib/front_end/models/trace/lantern/metrics/LargestContentfulPaint.ts +92 -0
- package/lib/front_end/models/trace/lantern/metrics/MaxPotentialFID.ts +72 -0
- package/lib/front_end/models/trace/lantern/metrics/Metric.ts +126 -0
- package/lib/front_end/models/trace/lantern/metrics/SpeedIndex.ts +126 -0
- package/lib/front_end/models/trace/lantern/metrics/TBTUtils.ts +82 -0
- package/lib/front_end/models/trace/lantern/metrics/TotalBlockingTime.ts +112 -0
- package/lib/front_end/models/trace/lantern/metrics/metrics.ts +12 -0
- package/lib/front_end/models/trace/lantern/simulation/ConnectionPool.ts +150 -0
- package/lib/front_end/models/trace/lantern/simulation/Constants.ts +46 -0
- package/lib/front_end/models/trace/lantern/simulation/DNSCache.ts +61 -0
- package/lib/front_end/models/trace/lantern/simulation/SimulationTimingMap.ts +196 -0
- package/lib/front_end/models/trace/lantern/simulation/Simulator.ts +556 -0
- package/lib/front_end/models/trace/lantern/simulation/TCPConnection.ts +192 -0
- package/lib/front_end/models/trace/lantern/simulation/simulation.ts +10 -0
- package/lib/front_end/models/trace/lantern/types/Lantern.ts +220 -0
- package/lib/front_end/models/trace/lantern/types/types.ts +5 -0
- package/lib/front_end/models/trace/trace.ts +33 -0
- package/lib/front_end/models/trace/types/Configuration.ts +110 -0
- package/lib/front_end/models/trace/types/Extensions.ts +136 -0
- package/lib/front_end/models/trace/types/File.ts +281 -0
- package/lib/front_end/models/trace/types/Overlays.ts +138 -0
- package/lib/front_end/models/trace/types/Timing.ts +30 -0
- package/lib/front_end/models/trace/types/TraceEvents.ts +3277 -0
- package/lib/front_end/models/trace/types/types.ts +10 -0
- package/lib/front_end/third_party/i18n/LICENSE +202 -0
- package/lib/front_end/third_party/i18n/README.chromium +15 -0
- package/lib/front_end/third_party/i18n/i18n-impl.ts +61 -0
- package/lib/front_end/third_party/i18n/i18n.ts +11 -0
- package/lib/front_end/third_party/i18n/localized-string-set.ts +129 -0
- package/lib/front_end/third_party/intl-messageformat/LICENSE +33 -0
- package/lib/front_end/third_party/intl-messageformat/README.chromium +24 -0
- package/lib/front_end/third_party/intl-messageformat/intl-messageformat-tsconfig.json +16 -0
- package/lib/front_end/third_party/intl-messageformat/intl-messageformat.ts +6 -0
- package/lib/front_end/third_party/intl-messageformat/package/LICENSE.md +33 -0
- package/lib/front_end/third_party/intl-messageformat/package/README.md +3 -0
- package/lib/front_end/third_party/intl-messageformat/package/index.d.ts +6 -0
- package/lib/front_end/third_party/intl-messageformat/package/index.d.ts.map +1 -0
- package/lib/front_end/third_party/intl-messageformat/package/index.js +13 -0
- package/lib/front_end/third_party/intl-messageformat/package/intl-messageformat.esm.d.ts +5 -0
- package/lib/front_end/third_party/intl-messageformat/package/intl-messageformat.esm.js +1710 -0
- package/lib/front_end/third_party/intl-messageformat/package/intl-messageformat.iife.js +1815 -0
- package/lib/front_end/third_party/intl-messageformat/package/lib/index.d.ts +6 -0
- package/lib/front_end/third_party/intl-messageformat/package/lib/index.d.ts.map +1 -0
- package/lib/front_end/third_party/intl-messageformat/package/lib/index.js +10 -0
- package/lib/front_end/third_party/intl-messageformat/package/lib/src/core.d.ts +34 -0
- package/lib/front_end/third_party/intl-messageformat/package/lib/src/core.d.ts.map +1 -0
- package/lib/front_end/third_party/intl-messageformat/package/lib/src/core.js +229 -0
- package/lib/front_end/third_party/intl-messageformat/package/lib/src/error.d.ts +28 -0
- package/lib/front_end/third_party/intl-messageformat/package/lib/src/error.d.ts.map +1 -0
- package/lib/front_end/third_party/intl-messageformat/package/lib/src/error.js +48 -0
- package/lib/front_end/third_party/intl-messageformat/package/lib/src/formatters.d.ts +34 -0
- package/lib/front_end/third_party/intl-messageformat/package/lib/src/formatters.d.ts.map +1 -0
- package/lib/front_end/third_party/intl-messageformat/package/lib/src/formatters.js +179 -0
- package/lib/front_end/third_party/intl-messageformat/package/package.json +42 -0
- package/lib/front_end/third_party/intl-messageformat/package/src/core.d.ts +34 -0
- package/lib/front_end/third_party/intl-messageformat/package/src/core.d.ts.map +1 -0
- package/lib/front_end/third_party/intl-messageformat/package/src/core.js +230 -0
- package/lib/front_end/third_party/intl-messageformat/package/src/error.d.ts +28 -0
- package/lib/front_end/third_party/intl-messageformat/package/src/error.d.ts.map +1 -0
- package/lib/front_end/third_party/intl-messageformat/package/src/error.js +51 -0
- package/lib/front_end/third_party/intl-messageformat/package/src/formatters.d.ts +34 -0
- package/lib/front_end/third_party/intl-messageformat/package/src/formatters.d.ts.map +1 -0
- package/lib/front_end/third_party/intl-messageformat/package/src/formatters.js +182 -0
- package/lib/front_end/third_party/intl-messageformat/package/src/icu-messageformat-parser/error.d.ts +79 -0
- package/lib/front_end/third_party/intl-messageformat/package/src/icu-messageformat-parser/index.d.ts +15 -0
- package/lib/front_end/third_party/intl-messageformat/package/src/icu-messageformat-parser/parser.d.ts +153 -0
- package/lib/front_end/third_party/intl-messageformat/package/src/icu-messageformat-parser/types.d.ts +139 -0
- package/lib/front_end/third_party/legacy-javascript/LICENSE +202 -0
- package/lib/front_end/third_party/legacy-javascript/README.chromium +13 -0
- package/lib/front_end/third_party/legacy-javascript/legacy-javascript-tsconfig.json +8 -0
- package/lib/front_end/third_party/legacy-javascript/legacy-javascript.ts +3 -0
- package/lib/front_end/third_party/legacy-javascript/lib/legacy-javascript.d.ts +18 -0
- package/lib/front_end/third_party/legacy-javascript/lib/legacy-javascript.js +943 -0
- package/lib/front_end/third_party/legacy-javascript/package.json +8 -0
- package/lib/front_end/third_party/legacy-javascript/rebuild.sh +9 -0
- package/lib/front_end/third_party/third-party-web/LICENSE +20 -0
- package/lib/front_end/third_party/third-party-web/README.chromium +13 -0
- package/lib/front_end/third_party/third-party-web/lib/nostats-subset.d.ts +2 -0
- package/lib/front_end/third_party/third-party-web/lib/nostats-subset.js +149 -0
- package/lib/front_end/third_party/third-party-web/package/LICENSE +20 -0
- package/lib/front_end/third_party/third-party-web/package/README.md +929 -0
- package/lib/front_end/third_party/third-party-web/package/dist/entities-httparchive-nostats.json +1 -0
- package/lib/front_end/third_party/third-party-web/package/dist/entities-httparchive.json +1 -0
- package/lib/front_end/third_party/third-party-web/package/dist/entities-nostats.json +1 -0
- package/lib/front_end/third_party/third-party-web/package/dist/entities.json +1 -0
- package/lib/front_end/third_party/third-party-web/package/facades.md +46 -0
- package/lib/front_end/third_party/third-party-web/package/httparchive-nostats-subset.d.ts +1 -0
- package/lib/front_end/third_party/third-party-web/package/httparchive-nostats-subset.js +1 -0
- package/lib/front_end/third_party/third-party-web/package/httparchive-subset.d.ts +1 -0
- package/lib/front_end/third_party/third-party-web/package/httparchive-subset.js +1 -0
- package/lib/front_end/third_party/third-party-web/package/lib/__snapshots__/index.test.js.snap +1006 -0
- package/lib/front_end/third_party/third-party-web/package/lib/create-entity-finder-api.js +139 -0
- package/lib/front_end/third_party/third-party-web/package/lib/create-entity-finder-api.test.js +44 -0
- package/lib/front_end/third_party/third-party-web/package/lib/entities.test.js +27 -0
- package/lib/front_end/third_party/third-party-web/package/lib/index.d.ts +34 -0
- package/lib/front_end/third_party/third-party-web/package/lib/index.js +3 -0
- package/lib/front_end/third_party/third-party-web/package/lib/index.test.js +246 -0
- package/lib/front_end/third_party/third-party-web/package/lib/markdown/faqs.partial.md +36 -0
- package/lib/front_end/third_party/third-party-web/package/lib/markdown/goals.partial.md +9 -0
- package/lib/front_end/third_party/third-party-web/package/lib/markdown/methodology.partial.md +5 -0
- package/lib/front_end/third_party/third-party-web/package/lib/markdown/template.md +151 -0
- package/lib/front_end/third_party/third-party-web/package/lib/markdown/updates/2019-02-01.md +1 -0
- package/lib/front_end/third_party/third-party-web/package/lib/markdown/updates/2019-03-01.md +1 -0
- package/lib/front_end/third_party/third-party-web/package/lib/markdown/updates/2019-05-06.md +1 -0
- package/lib/front_end/third_party/third-party-web/package/lib/markdown/updates/2019-05-13.md +14 -0
- package/lib/front_end/third_party/third-party-web/package/lib/markdown/updates/2021-01-01.md +1 -0
- package/lib/front_end/third_party/third-party-web/package/lib/markdown/updates/2024-07-01.md +3 -0
- package/lib/front_end/third_party/third-party-web/package/lib/subsets/httparchive-nostats.d.ts +1 -0
- package/lib/front_end/third_party/third-party-web/package/lib/subsets/httparchive-nostats.js +3 -0
- package/lib/front_end/third_party/third-party-web/package/lib/subsets/httparchive.d.ts +1 -0
- package/lib/front_end/third_party/third-party-web/package/lib/subsets/httparchive.js +3 -0
- package/lib/front_end/third_party/third-party-web/package/lib/subsets/nostats.d.ts +1 -0
- package/lib/front_end/third_party/third-party-web/package/lib/subsets/nostats.js +3 -0
- package/lib/front_end/third_party/third-party-web/package/nostats-subset.d.ts +1 -0
- package/lib/front_end/third_party/third-party-web/package/nostats-subset.js +1 -0
- package/lib/front_end/third_party/third-party-web/package/package.json +46 -0
- package/lib/front_end/third_party/third-party-web/package.json +8 -0
- package/lib/front_end/third_party/third-party-web/rebuild.sh +13 -0
- package/lib/front_end/third_party/third-party-web/third-party-web-tsconfig.json +8 -0
- package/lib/front_end/third_party/third-party-web/third-party-web.ts +3 -0
- package/package.json +24 -0
- package/patches/chrome-devtools-frontend+1.0.1533544.patch +187 -0
|
@@ -0,0 +1,386 @@
|
|
|
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
|
+
/**
|
|
6
|
+
* This file is the implementation of a protocol `Connection` object
|
|
7
|
+
* which is central to the rehydrated devtools feature. The premise of
|
|
8
|
+
* this feature is that the enhanced traces will contain enough
|
|
9
|
+
* information to power this class with all metadata needed. This class
|
|
10
|
+
* then interacts with rehydrated devtools in a way that produces the
|
|
11
|
+
* equivalent result as live debugging session.
|
|
12
|
+
*
|
|
13
|
+
* It's much more of a state machine than the other Connection
|
|
14
|
+
* implementations, which simply interact with a network protocol in
|
|
15
|
+
* one way or another.
|
|
16
|
+
*
|
|
17
|
+
* Note on the methodology to derive runtime/debugger domain behavior below:
|
|
18
|
+
* We can use protocol monitor in the devtools to look at how dt-fe
|
|
19
|
+
* communicates with the backend, and it's also how majority of the behavior
|
|
20
|
+
* in the rehydrated sesion was derived at the first place. In the event of
|
|
21
|
+
* adding more support and capability to rehydrated session, developers will
|
|
22
|
+
* want to look at protocol monitor to imitate the behavior in a real session
|
|
23
|
+
*
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
import type * as Protocol from '../../generated/protocol.js';
|
|
27
|
+
import * as Common from '../common/common.js';
|
|
28
|
+
import * as i18n from '../i18n/i18n.js';
|
|
29
|
+
import type * as Platform from '../platform/platform.js';
|
|
30
|
+
import type * as ProtocolClient from '../protocol_client/protocol_client.js';
|
|
31
|
+
import * as Root from '../root/root.js';
|
|
32
|
+
|
|
33
|
+
import * as EnhancedTraces from './EnhancedTracesParser.js';
|
|
34
|
+
import type {
|
|
35
|
+
ProtocolMessage, RehydratingExecutionContext, RehydratingScript, RehydratingTarget, ServerMessage} from
|
|
36
|
+
'./RehydratingObject.js';
|
|
37
|
+
import {TraceObject} from './TraceObject.js';
|
|
38
|
+
|
|
39
|
+
const UIStrings = {
|
|
40
|
+
/**
|
|
41
|
+
* @description Text that appears when no source text is available for the given script
|
|
42
|
+
*/
|
|
43
|
+
noSourceText: 'No source text available',
|
|
44
|
+
/**
|
|
45
|
+
* @description Text to indicate rehydrating connection cannot find host window
|
|
46
|
+
*/
|
|
47
|
+
noHostWindow: 'Can not find host window',
|
|
48
|
+
/**
|
|
49
|
+
* @description Text to indicate that there is an error loading the log
|
|
50
|
+
*/
|
|
51
|
+
errorLoadingLog: 'Error loading log',
|
|
52
|
+
} as const;
|
|
53
|
+
const str_ = i18n.i18n.registerUIStrings('core/sdk/RehydratingConnection.ts', UIStrings);
|
|
54
|
+
const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
|
|
55
|
+
|
|
56
|
+
export interface RehydratingConnectionInterface {
|
|
57
|
+
postToFrontend: (arg: ServerMessage) => void;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export const enum RehydratingConnectionState {
|
|
61
|
+
UNINITIALIZED = 1,
|
|
62
|
+
INITIALIZED = 2,
|
|
63
|
+
REHYDRATED = 3,
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
export class RehydratingConnection implements ProtocolClient.ConnectionTransport.ConnectionTransport {
|
|
67
|
+
rehydratingConnectionState: RehydratingConnectionState = RehydratingConnectionState.UNINITIALIZED;
|
|
68
|
+
onDisconnect: ((arg0: string) => void)|null = null;
|
|
69
|
+
onMessage: ((arg0: Object) => void)|null = null;
|
|
70
|
+
trace: TraceObject|null = null;
|
|
71
|
+
sessions = new Map<number, RehydratingSessionBase>();
|
|
72
|
+
#onConnectionLost: (message: Platform.UIString.LocalizedString) => void;
|
|
73
|
+
#rehydratingWindow = window;
|
|
74
|
+
#onReceiveHostWindowPayloadBound = this.onReceiveHostWindowPayload.bind(this);
|
|
75
|
+
|
|
76
|
+
constructor(onConnectionLost: (message: Platform.UIString.LocalizedString) => void) {
|
|
77
|
+
this.#onConnectionLost = onConnectionLost;
|
|
78
|
+
if (!this.#maybeHandleLoadingFromUrl()) {
|
|
79
|
+
this.#setupMessagePassing();
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/** Returns true if found a trace URL. */
|
|
84
|
+
#maybeHandleLoadingFromUrl(): boolean {
|
|
85
|
+
let traceUrl = Root.Runtime.Runtime.queryParam('traceURL');
|
|
86
|
+
|
|
87
|
+
if (!traceUrl) {
|
|
88
|
+
// For compatibility, handle the older loadTimelineFromURL.
|
|
89
|
+
const timelineUrl = Root.Runtime.Runtime.queryParam('loadTimelineFromURL');
|
|
90
|
+
if (timelineUrl) {
|
|
91
|
+
// It was double-URI encoded for some reason.
|
|
92
|
+
traceUrl = decodeURIComponent(timelineUrl);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
if (traceUrl) {
|
|
97
|
+
void fetch(traceUrl).then(r => r.arrayBuffer()).then(b => Common.Gzip.arrayBufferToString(b)).then(traceJson => {
|
|
98
|
+
const trace = new TraceObject(JSON.parse(traceJson));
|
|
99
|
+
void this.startHydration(trace);
|
|
100
|
+
});
|
|
101
|
+
return true;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
return false;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
#setupMessagePassing(): void {
|
|
108
|
+
this.#rehydratingWindow.addEventListener('message', this.#onReceiveHostWindowPayloadBound);
|
|
109
|
+
if (this.#rehydratingWindow.opener) {
|
|
110
|
+
this.#rehydratingWindow.opener.postMessage({type: 'REHYDRATING_WINDOW_READY'});
|
|
111
|
+
} else if (this.#rehydratingWindow !== window.top) {
|
|
112
|
+
this.#rehydratingWindow.parent.postMessage({type: 'REHYDRATING_IFRAME_READY'});
|
|
113
|
+
} else {
|
|
114
|
+
this.#onConnectionLost(i18nString(UIStrings.noHostWindow));
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* This is a callback for rehydrated session to receive payload from host window. Payload includes but not limited to
|
|
120
|
+
* the trace event and all necessary data to power a rehydrated session.
|
|
121
|
+
*/
|
|
122
|
+
onReceiveHostWindowPayload(event: MessageEvent): void {
|
|
123
|
+
if (event.data.type === 'REHYDRATING_TRACE_FILE') {
|
|
124
|
+
const traceJson = event.data.traceJson as string;
|
|
125
|
+
let trace;
|
|
126
|
+
try {
|
|
127
|
+
trace = new TraceObject(JSON.parse(traceJson));
|
|
128
|
+
} catch {
|
|
129
|
+
this.#onConnectionLost(i18nString(UIStrings.errorLoadingLog));
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
void this.startHydration(trace);
|
|
133
|
+
}
|
|
134
|
+
this.#rehydratingWindow.removeEventListener('message', this.#onReceiveHostWindowPayloadBound);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
async startHydration(trace: TraceObject): Promise<boolean> {
|
|
138
|
+
// OnMessage should've been set before hydration, and the connection should
|
|
139
|
+
// be initialized and not hydrated already.
|
|
140
|
+
if (!this.onMessage || this.rehydratingConnectionState !== RehydratingConnectionState.INITIALIZED) {
|
|
141
|
+
return false;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
if (!('traceEvents' in trace)) {
|
|
145
|
+
console.error('RehydratingConnection failed to initialize due to missing trace events in payload');
|
|
146
|
+
return false;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
this.trace = trace;
|
|
150
|
+
const enhancedTracesParser = new EnhancedTraces.EnhancedTracesParser(trace);
|
|
151
|
+
const hydratingData = enhancedTracesParser.data();
|
|
152
|
+
|
|
153
|
+
let sessionId = 0;
|
|
154
|
+
// Set up default rehydrating session.
|
|
155
|
+
this.sessions.set(sessionId, new RehydratingSessionBase(this));
|
|
156
|
+
for (const hydratingDataPerTarget of hydratingData) {
|
|
157
|
+
const target = hydratingDataPerTarget.target;
|
|
158
|
+
const executionContexts = hydratingDataPerTarget.executionContexts;
|
|
159
|
+
const scripts = hydratingDataPerTarget.scripts;
|
|
160
|
+
this.postToFrontend({
|
|
161
|
+
method: 'Target.targetCreated',
|
|
162
|
+
params: {
|
|
163
|
+
targetInfo: {
|
|
164
|
+
targetId: target.targetId,
|
|
165
|
+
type: target.type,
|
|
166
|
+
title: target.url,
|
|
167
|
+
url: target.url,
|
|
168
|
+
attached: false,
|
|
169
|
+
canAccessOpener: false,
|
|
170
|
+
},
|
|
171
|
+
},
|
|
172
|
+
});
|
|
173
|
+
|
|
174
|
+
sessionId += 1;
|
|
175
|
+
const session = new RehydratingSession(sessionId, target, executionContexts, scripts, this);
|
|
176
|
+
this.sessions.set(sessionId, session);
|
|
177
|
+
session.declareSessionAttachedToTarget();
|
|
178
|
+
}
|
|
179
|
+
await this.#onRehydrated();
|
|
180
|
+
return true;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
async #onRehydrated(): Promise<void> {
|
|
184
|
+
if (!this.trace) {
|
|
185
|
+
return;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
this.rehydratingConnectionState = RehydratingConnectionState.REHYDRATED;
|
|
189
|
+
// Use revealer to load trace into performance panel
|
|
190
|
+
await Common.Revealer.reveal(this.trace);
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
setOnMessage(onMessage: (arg0: Object|string) => void): void {
|
|
194
|
+
this.onMessage = onMessage;
|
|
195
|
+
this.rehydratingConnectionState = RehydratingConnectionState.INITIALIZED;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
setOnDisconnect(onDisconnect: (arg0: string) => void): void {
|
|
199
|
+
this.onDisconnect = onDisconnect;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
// The function "sendRawMessage" is typically devtools front-end
|
|
203
|
+
// sending message to the backend via CDP. In this case, given that Rehydrating
|
|
204
|
+
// connection is an emulation of devtool back-end, sendRawMessage here
|
|
205
|
+
// is in fact rehydrating connection directly handling and acting on the
|
|
206
|
+
// receieved message.
|
|
207
|
+
sendRawMessage(message: string|object): void {
|
|
208
|
+
if (typeof message === 'string') {
|
|
209
|
+
message = JSON.parse(message);
|
|
210
|
+
}
|
|
211
|
+
const data = message as ProtocolMessage;
|
|
212
|
+
if (typeof data.sessionId !== 'undefined') {
|
|
213
|
+
const session = this.sessions.get(data.sessionId);
|
|
214
|
+
if (session) {
|
|
215
|
+
session.handleFrontendMessageAsFakeCDPAgent(data);
|
|
216
|
+
} else {
|
|
217
|
+
console.error('Invalid SessionId: ' + data.sessionId);
|
|
218
|
+
}
|
|
219
|
+
} else {
|
|
220
|
+
this.sessions.get(0)?.handleFrontendMessageAsFakeCDPAgent(data);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
// Posting rehydrating connection's message/response
|
|
225
|
+
// to devtools frontend through debugger protocol.
|
|
226
|
+
postToFrontend(arg: ServerMessage): void {
|
|
227
|
+
if (this.onMessage) {
|
|
228
|
+
this.onMessage(arg);
|
|
229
|
+
} else {
|
|
230
|
+
// onMessage should be set before the connection is rehydrated
|
|
231
|
+
console.error('onMessage was not initialized');
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
disconnect(): Promise<void> {
|
|
236
|
+
return Promise.reject();
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
/** Default rehydrating session with default responses. **/
|
|
241
|
+
class RehydratingSessionBase {
|
|
242
|
+
connection: RehydratingConnectionInterface|null = null;
|
|
243
|
+
|
|
244
|
+
constructor(connection: RehydratingConnectionInterface) {
|
|
245
|
+
this.connection = connection;
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
sendMessageToFrontend(payload: ServerMessage): void {
|
|
249
|
+
// The frontend doesn't expect CDP responses within the same synchronous event loop, so it breaks unexpectedly.
|
|
250
|
+
// Any async boundary will do, so we use setTimeout.
|
|
251
|
+
setTimeout(() => {
|
|
252
|
+
this.connection?.postToFrontend(payload);
|
|
253
|
+
});
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
handleFrontendMessageAsFakeCDPAgent(data: ProtocolMessage): void {
|
|
257
|
+
// Send default response in default session.
|
|
258
|
+
this.sendMessageToFrontend({
|
|
259
|
+
id: data.id,
|
|
260
|
+
result: {},
|
|
261
|
+
});
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
export class RehydratingSession extends RehydratingSessionBase {
|
|
266
|
+
sessionId: number;
|
|
267
|
+
target: RehydratingTarget;
|
|
268
|
+
executionContexts: RehydratingExecutionContext[] = [];
|
|
269
|
+
scripts: RehydratingScript[] = [];
|
|
270
|
+
|
|
271
|
+
constructor(
|
|
272
|
+
sessionId: number, target: RehydratingTarget, executionContexts: RehydratingExecutionContext[],
|
|
273
|
+
scripts: RehydratingScript[], connection: RehydratingConnectionInterface) {
|
|
274
|
+
super(connection);
|
|
275
|
+
this.sessionId = sessionId;
|
|
276
|
+
this.target = target;
|
|
277
|
+
this.executionContexts = executionContexts;
|
|
278
|
+
this.scripts = scripts;
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
override sendMessageToFrontend(payload: ServerMessage, attachSessionId = true): void {
|
|
282
|
+
// Attach the session's Id to the message.
|
|
283
|
+
if (this.sessionId !== 0 && attachSessionId) {
|
|
284
|
+
payload.sessionId = this.sessionId;
|
|
285
|
+
}
|
|
286
|
+
super.sendMessageToFrontend(payload);
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
override handleFrontendMessageAsFakeCDPAgent(data: ProtocolMessage): void {
|
|
290
|
+
switch (data.method) {
|
|
291
|
+
case 'Runtime.enable':
|
|
292
|
+
this.handleRuntimeEnabled(data.id);
|
|
293
|
+
break;
|
|
294
|
+
case 'Debugger.enable':
|
|
295
|
+
this.handleDebuggerEnable(data.id);
|
|
296
|
+
break;
|
|
297
|
+
case 'Debugger.getScriptSource':
|
|
298
|
+
if (data.params) {
|
|
299
|
+
const params = data.params as Protocol.Debugger.GetScriptSourceRequest;
|
|
300
|
+
this.handleDebuggerGetScriptSource(data.id, params.scriptId);
|
|
301
|
+
}
|
|
302
|
+
break;
|
|
303
|
+
default:
|
|
304
|
+
this.sendMessageToFrontend({
|
|
305
|
+
id: data.id,
|
|
306
|
+
result: {},
|
|
307
|
+
});
|
|
308
|
+
break;
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
declareSessionAttachedToTarget(): void {
|
|
313
|
+
this.sendMessageToFrontend(
|
|
314
|
+
{
|
|
315
|
+
method: 'Target.attachedToTarget',
|
|
316
|
+
params: {
|
|
317
|
+
sessionId: this.sessionId,
|
|
318
|
+
waitingForDebugger: false,
|
|
319
|
+
targetInfo: {
|
|
320
|
+
targetId: this.target.targetId,
|
|
321
|
+
type: this.target.type,
|
|
322
|
+
title: this.target.url,
|
|
323
|
+
url: this.target.url,
|
|
324
|
+
attached: true,
|
|
325
|
+
canAccessOpener: false,
|
|
326
|
+
},
|
|
327
|
+
},
|
|
328
|
+
},
|
|
329
|
+
/* attachSessionId */ false);
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
// Runtime.Enable indicates that Runtime domain is flushing the event to communicate
|
|
333
|
+
// the current state with the backend. In rehydrating connection, we made up the artificial
|
|
334
|
+
// execution context to support the rehydrated session.
|
|
335
|
+
private handleRuntimeEnabled(id: number): void {
|
|
336
|
+
for (const executionContext of this.executionContexts) {
|
|
337
|
+
executionContext.name = executionContext.origin;
|
|
338
|
+
this.sendMessageToFrontend({
|
|
339
|
+
method: 'Runtime.executionContextCreated',
|
|
340
|
+
params: {
|
|
341
|
+
context: executionContext,
|
|
342
|
+
},
|
|
343
|
+
});
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
this.sendMessageToFrontend({
|
|
347
|
+
id,
|
|
348
|
+
result: {},
|
|
349
|
+
});
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
private handleDebuggerGetScriptSource(id: number, scriptId: Protocol.Runtime.ScriptId): void {
|
|
353
|
+
const script = this.scripts.find(script => script.scriptId === scriptId);
|
|
354
|
+
if (!script) {
|
|
355
|
+
console.error('No script for id: ' + scriptId);
|
|
356
|
+
return;
|
|
357
|
+
}
|
|
358
|
+
this.sendMessageToFrontend({
|
|
359
|
+
id,
|
|
360
|
+
result: {
|
|
361
|
+
scriptSource: typeof script.sourceText === 'undefined' ? i18nString(UIStrings.noSourceText) : script.sourceText,
|
|
362
|
+
},
|
|
363
|
+
});
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
// Debugger.Enable indicates that Debugger domain is flushing the event to communicate
|
|
367
|
+
// the current state with the backend. In rehydrating connection, we made up the artificial
|
|
368
|
+
// script parsed event to communicate the current script state and respond with a mock
|
|
369
|
+
// debugger id.
|
|
370
|
+
private handleDebuggerEnable(id: number): void {
|
|
371
|
+
for (const script of this.scripts) {
|
|
372
|
+
this.sendMessageToFrontend({
|
|
373
|
+
method: 'Debugger.scriptParsed',
|
|
374
|
+
params: script,
|
|
375
|
+
});
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
const mockDebuggerId = '7777777777777777777.8888888888888888888';
|
|
379
|
+
this.sendMessageToFrontend({
|
|
380
|
+
id,
|
|
381
|
+
result: {
|
|
382
|
+
debuggerId: mockDebuggerId,
|
|
383
|
+
},
|
|
384
|
+
});
|
|
385
|
+
}
|
|
386
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
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 Protocol from '../../generated/protocol.js';
|
|
6
|
+
|
|
7
|
+
/** This object is emitted to ScriptParsed and also used in the RehydratingConnection **/
|
|
8
|
+
export interface RehydratingScript extends Protocol.Debugger.ScriptParsedEvent {
|
|
9
|
+
sourceText?: string;
|
|
10
|
+
executionContextAuxData?: RehydratingExecutionContextAuxData;
|
|
11
|
+
isolate: string;
|
|
12
|
+
/** The manually provided string via the `//# sourceURL` directive. Meanwhile the `url` is the script's `src` */
|
|
13
|
+
sourceURL?: string;
|
|
14
|
+
pid: number;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export interface RehydratingExecutionContextAuxData {
|
|
18
|
+
frameId?: Protocol.Page.FrameId;
|
|
19
|
+
isDefault?: boolean;
|
|
20
|
+
type?: string;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export interface RehydratingExecutionContext extends Protocol.Runtime.ExecutionContextDescription {
|
|
24
|
+
/** AKA V8ContextToken. https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/inspector/inspector_trace_events.cc;l=1229;drc=3c88f61e18b043e70c225d8d57c77832a85e7f58 */
|
|
25
|
+
v8Context?: string;
|
|
26
|
+
auxData?: RehydratingExecutionContextAuxData;
|
|
27
|
+
isolate: string;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export interface RehydratingTarget {
|
|
31
|
+
targetId: Protocol.Target.TargetID;
|
|
32
|
+
type: string;
|
|
33
|
+
url: string;
|
|
34
|
+
pid?: number;
|
|
35
|
+
isolate?: string;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export interface HydratingDataPerTarget {
|
|
39
|
+
target: RehydratingTarget;
|
|
40
|
+
executionContexts: RehydratingExecutionContext[];
|
|
41
|
+
scripts: RehydratingScript[];
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export interface ProtocolMessage {
|
|
45
|
+
id: number;
|
|
46
|
+
method: string;
|
|
47
|
+
sessionId?: number;
|
|
48
|
+
params?: object;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export interface ProtocolEvent {
|
|
52
|
+
method: string;
|
|
53
|
+
params: object;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export interface ProtocolResponse {
|
|
57
|
+
id: number;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export type ServerMessage = (ProtocolEvent|ProtocolMessage|ProtocolResponse)&Record<string, unknown>;
|
|
61
|
+
|
|
62
|
+
export interface Session {
|
|
63
|
+
target: RehydratingTarget;
|
|
64
|
+
executionContexts: RehydratingExecutionContext[];
|
|
65
|
+
scripts: RehydratingScript[];
|
|
66
|
+
}
|