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,320 @@
|
|
|
1
|
+
// Copyright 2023 The Chromium Authors
|
|
2
|
+
// Use of this source code is governed by a BSD-style license that can be
|
|
3
|
+
// found in the LICENSE file.
|
|
4
|
+
|
|
5
|
+
import type * as Platform from '../../../core/platform/platform.js';
|
|
6
|
+
import * as Types from '../types/types.js';
|
|
7
|
+
|
|
8
|
+
import {eventIsInBounds} from './Timing.js';
|
|
9
|
+
|
|
10
|
+
let nodeIdCount = 0;
|
|
11
|
+
export const makeTraceEntryNodeId = (): TraceEntryNodeId => (++nodeIdCount) as TraceEntryNodeId;
|
|
12
|
+
|
|
13
|
+
export const makeEmptyTraceEntryTree = (): TraceEntryTree => ({
|
|
14
|
+
roots: new Set(),
|
|
15
|
+
maxDepth: 0,
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
export const makeEmptyTraceEntryNode = (entry: Types.Events.Event, id: TraceEntryNodeId): TraceEntryNode => ({
|
|
19
|
+
entry,
|
|
20
|
+
id,
|
|
21
|
+
parent: null,
|
|
22
|
+
children: [],
|
|
23
|
+
depth: 0,
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
export interface TraceEntryTree {
|
|
27
|
+
roots: Set<TraceEntryNode>;
|
|
28
|
+
maxDepth: number;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/** Node in the graph that defines all parent/child relationships. */
|
|
32
|
+
export interface TraceEntryNode {
|
|
33
|
+
entry: Types.Events.Event;
|
|
34
|
+
depth: number;
|
|
35
|
+
selfTime?: Types.Timing.Micro;
|
|
36
|
+
id: TraceEntryNodeId;
|
|
37
|
+
parent: TraceEntryNode|null;
|
|
38
|
+
children: TraceEntryNode[];
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export type TraceEntryNodeId = Platform.Brand.Brand<number, 'traceEntryNodeIdTag'>;
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Builds a hierarchy of the entries (trace events and profile calls) in
|
|
45
|
+
* a particular thread of a particular process, assuming that they're
|
|
46
|
+
* sorted, by iterating through all of the events in order.
|
|
47
|
+
*
|
|
48
|
+
* The approach is analogous to how a parser would be implemented. A
|
|
49
|
+
* stack maintains local context. A scanner peeks and pops from the data
|
|
50
|
+
* stream. Various "tokens" (events) are treated as "whitespace"
|
|
51
|
+
* (ignored).
|
|
52
|
+
*
|
|
53
|
+
* The tree starts out empty and is populated as the hierarchy is built.
|
|
54
|
+
* The nodes are also assumed to be created empty, with no known parent
|
|
55
|
+
* or children.
|
|
56
|
+
*
|
|
57
|
+
* Complexity: O(n), where n = number of events
|
|
58
|
+
*/
|
|
59
|
+
export function treify(entries: readonly Types.Events.Event[], options?: {
|
|
60
|
+
filter: {has: (name: Types.Events.Name) => boolean},
|
|
61
|
+
}): {tree: TraceEntryTree, entryToNode: Map<Types.Events.Event, TraceEntryNode>} {
|
|
62
|
+
// As we construct the tree, store a map of each entry to its node. This
|
|
63
|
+
// means if you are iterating over a list of RendererEntry events you can
|
|
64
|
+
// easily look up that node in the tree.
|
|
65
|
+
const entryToNode = new Map<Types.Events.Event, TraceEntryNode>();
|
|
66
|
+
|
|
67
|
+
const stack = [];
|
|
68
|
+
// Reset the node id counter for every new renderer.
|
|
69
|
+
nodeIdCount = -1;
|
|
70
|
+
const tree = makeEmptyTraceEntryTree();
|
|
71
|
+
|
|
72
|
+
for (let i = 0; i < entries.length; i++) {
|
|
73
|
+
const event = entries[i];
|
|
74
|
+
// If the current event should not be part of the tree, then simply proceed
|
|
75
|
+
// with the next event.
|
|
76
|
+
if (options && !options.filter.has(event.name as Types.Events.Name)) {
|
|
77
|
+
continue;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
const duration = event.dur || 0;
|
|
81
|
+
const nodeId = makeTraceEntryNodeId();
|
|
82
|
+
const node = makeEmptyTraceEntryNode(event, nodeId);
|
|
83
|
+
|
|
84
|
+
// If the parent stack is empty, then the current event is a root. Create a
|
|
85
|
+
// node for it, mark it as a root, then proceed with the next event.
|
|
86
|
+
if (stack.length === 0) {
|
|
87
|
+
tree.roots.add(node);
|
|
88
|
+
node.selfTime = Types.Timing.Micro(duration);
|
|
89
|
+
stack.push(node);
|
|
90
|
+
tree.maxDepth = Math.max(tree.maxDepth, stack.length);
|
|
91
|
+
entryToNode.set(event, node);
|
|
92
|
+
continue;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
const parentNode = stack.at(-1);
|
|
96
|
+
if (parentNode === undefined) {
|
|
97
|
+
throw new Error('Impossible: no parent node found in the stack');
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
const parentEvent = parentNode.entry;
|
|
101
|
+
|
|
102
|
+
const begin = event.ts;
|
|
103
|
+
const parentBegin = parentEvent.ts;
|
|
104
|
+
const parentDuration = parentEvent.dur || 0;
|
|
105
|
+
const end = begin + duration;
|
|
106
|
+
const parentEnd = parentBegin + parentDuration;
|
|
107
|
+
// Check the relationship between the parent event at the top of the stack,
|
|
108
|
+
// and the current event being processed. There are only 4 distinct
|
|
109
|
+
// possibilities, only 2 of them actually valid, given the assumed sorting:
|
|
110
|
+
// 1. Current event starts before the parent event, ends whenever. (invalid)
|
|
111
|
+
// 2. Current event starts after the parent event, ends whenever. (valid)
|
|
112
|
+
// 3. Current event starts during the parent event, ends after. (invalid)
|
|
113
|
+
// 4. Current event starts and ends during the parent event. (valid)
|
|
114
|
+
|
|
115
|
+
// 1. If the current event starts before the parent event, then the data is
|
|
116
|
+
// not sorted properly, messed up some way, or this logic is incomplete.
|
|
117
|
+
const startsBeforeParent = begin < parentBegin;
|
|
118
|
+
if (startsBeforeParent) {
|
|
119
|
+
throw new Error('Impossible: current event starts before the parent event');
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
// 2. If the current event starts after the parent event, then it's a new
|
|
123
|
+
// parent. Pop, then handle current event again.
|
|
124
|
+
const startsAfterParent = begin >= parentEnd;
|
|
125
|
+
if (startsAfterParent) {
|
|
126
|
+
stack.pop();
|
|
127
|
+
i--;
|
|
128
|
+
// The last created node has been discarded, so discard this id.
|
|
129
|
+
nodeIdCount--;
|
|
130
|
+
continue;
|
|
131
|
+
}
|
|
132
|
+
// 3. If the current event starts during the parent event, but ends
|
|
133
|
+
// after it, then the data is messed up some way, for example a
|
|
134
|
+
// profile call was sampled too late after its start, ignore the
|
|
135
|
+
// problematic event.
|
|
136
|
+
const endsAfterParent = end > parentEnd;
|
|
137
|
+
if (endsAfterParent) {
|
|
138
|
+
continue;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
// 4. The only remaining case is the common case, where the current event is
|
|
142
|
+
// contained within the parent event. Create a node for the current
|
|
143
|
+
// event, establish the parent/child relationship, then proceed with the
|
|
144
|
+
// next event.
|
|
145
|
+
node.depth = stack.length;
|
|
146
|
+
node.parent = parentNode;
|
|
147
|
+
parentNode.children.push(node);
|
|
148
|
+
node.selfTime = Types.Timing.Micro(duration);
|
|
149
|
+
if (parentNode.selfTime !== undefined) {
|
|
150
|
+
parentNode.selfTime = Types.Timing.Micro(parentNode.selfTime - (event.dur || 0));
|
|
151
|
+
}
|
|
152
|
+
stack.push(node);
|
|
153
|
+
tree.maxDepth = Math.max(tree.maxDepth, stack.length);
|
|
154
|
+
entryToNode.set(event, node);
|
|
155
|
+
}
|
|
156
|
+
return {tree, entryToNode};
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
* Iterates events in a tree hierarchically, from top to bottom,
|
|
161
|
+
* calling back on every event's start and end in the order
|
|
162
|
+
* as it traverses down and then up the tree.
|
|
163
|
+
*
|
|
164
|
+
* For example, given this tree, the following callbacks
|
|
165
|
+
* are expected to be made in the following order
|
|
166
|
+
* |---------------A---------------|
|
|
167
|
+
* |------B------||-------D------|
|
|
168
|
+
* |---C---|
|
|
169
|
+
*
|
|
170
|
+
* 1. Start A
|
|
171
|
+
* 3. Start B
|
|
172
|
+
* 4. Start C
|
|
173
|
+
* 5. End C
|
|
174
|
+
* 6. End B
|
|
175
|
+
* 7. Start D
|
|
176
|
+
* 8. End D
|
|
177
|
+
* 9. End A
|
|
178
|
+
*
|
|
179
|
+
*/
|
|
180
|
+
export function walkTreeFromEntry(
|
|
181
|
+
entryToNode: Map<Types.Events.Event, TraceEntryNode>,
|
|
182
|
+
rootEntry: Types.Events.Event,
|
|
183
|
+
onEntryStart: (entry: Types.Events.Event) => void,
|
|
184
|
+
onEntryEnd: (entry: Types.Events.Event) => void,
|
|
185
|
+
): void {
|
|
186
|
+
const startNode = entryToNode.get(rootEntry);
|
|
187
|
+
if (!startNode) {
|
|
188
|
+
return;
|
|
189
|
+
}
|
|
190
|
+
walkTreeByNode(entryToNode, startNode, onEntryStart, onEntryEnd);
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
/**
|
|
194
|
+
* Given a Helpers.TreeHelpers.RendererTree, this will iterates events in hierarchically, visiting
|
|
195
|
+
* each root node and working from top to bottom, calling back on every event's
|
|
196
|
+
* start and end in the order as it traverses down and then up the tree.
|
|
197
|
+
*
|
|
198
|
+
* For example, given this tree, the following callbacks
|
|
199
|
+
* are expected to be made in the following order
|
|
200
|
+
* |------------- Task A -------------||-- Task E --|
|
|
201
|
+
* |-- Task B --||-- Task D --|
|
|
202
|
+
* |- Task C -|
|
|
203
|
+
*
|
|
204
|
+
* 1. Start A
|
|
205
|
+
* 3. Start B
|
|
206
|
+
* 4. Start C
|
|
207
|
+
* 5. End C
|
|
208
|
+
* 6. End B
|
|
209
|
+
* 7. Start D
|
|
210
|
+
* 8. End D
|
|
211
|
+
* 9. End A
|
|
212
|
+
* 10. Start E
|
|
213
|
+
* 11. End E
|
|
214
|
+
*
|
|
215
|
+
*/
|
|
216
|
+
|
|
217
|
+
export function walkEntireTree(
|
|
218
|
+
entryToNode: Map<Types.Events.Event, TraceEntryNode>,
|
|
219
|
+
tree: TraceEntryTree,
|
|
220
|
+
onEntryStart: (entry: Types.Events.Event) => void,
|
|
221
|
+
onEntryEnd: (entry: Types.Events.Event) => void,
|
|
222
|
+
traceWindowToInclude?: Types.Timing.TraceWindowMicro,
|
|
223
|
+
minDuration?: Types.Timing.Micro,
|
|
224
|
+
): void {
|
|
225
|
+
for (const rootNode of tree.roots) {
|
|
226
|
+
walkTreeByNode(entryToNode, rootNode, onEntryStart, onEntryEnd, traceWindowToInclude, minDuration);
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
function walkTreeByNode(
|
|
231
|
+
entryToNode: Map<Types.Events.Event, TraceEntryNode>,
|
|
232
|
+
rootNode: TraceEntryNode,
|
|
233
|
+
onEntryStart: (entry: Types.Events.Event) => void,
|
|
234
|
+
onEntryEnd: (entry: Types.Events.Event) => void,
|
|
235
|
+
traceWindowToInclude?: Types.Timing.TraceWindowMicro,
|
|
236
|
+
minDuration?: Types.Timing.Micro,
|
|
237
|
+
): void {
|
|
238
|
+
if (traceWindowToInclude && !treeNodeIsInWindow(rootNode, traceWindowToInclude)) {
|
|
239
|
+
// If this node is not within the provided window, we can skip it. We also
|
|
240
|
+
// can skip all its children too, as we know they won't be in the window if
|
|
241
|
+
// their parent is not.
|
|
242
|
+
return;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
if (typeof minDuration !== 'undefined') {
|
|
246
|
+
const duration = Types.Timing.Micro(
|
|
247
|
+
rootNode.entry.ts + Types.Timing.Micro(rootNode.entry.dur ?? 0),
|
|
248
|
+
);
|
|
249
|
+
if (duration < minDuration) {
|
|
250
|
+
return;
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
onEntryStart(rootNode.entry);
|
|
255
|
+
for (const child of rootNode.children) {
|
|
256
|
+
walkTreeByNode(entryToNode, child, onEntryStart, onEntryEnd, traceWindowToInclude, minDuration);
|
|
257
|
+
}
|
|
258
|
+
onEntryEnd(rootNode.entry);
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
/**
|
|
262
|
+
* Returns true if the provided node is partially or fully within the trace
|
|
263
|
+
* window. The entire node does not have to fit inside the window, but it does
|
|
264
|
+
* have to partially intersect it.
|
|
265
|
+
*/
|
|
266
|
+
function treeNodeIsInWindow(node: TraceEntryNode, traceWindow: Types.Timing.TraceWindowMicro): boolean {
|
|
267
|
+
return eventIsInBounds(node.entry, traceWindow);
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
/**
|
|
271
|
+
* Determines if the given events, which are assumed to be ordered can
|
|
272
|
+
* be organized into tree structures.
|
|
273
|
+
* This condition is met if there is *not* a pair of async events
|
|
274
|
+
* e1 and e2 where:
|
|
275
|
+
*
|
|
276
|
+
* e1.startTime < e2.startTime && e1.endTime > e2.startTime && e1.endTime < e2.endTime.
|
|
277
|
+
* or, graphically:
|
|
278
|
+
* |------- e1 ------|
|
|
279
|
+
* |------- e2 --------|
|
|
280
|
+
*
|
|
281
|
+
* Because a parent-child relationship cannot be made from the example
|
|
282
|
+
* above, a tree cannot be made from the set of events.
|
|
283
|
+
*
|
|
284
|
+
* Sync events from the same thread are tree-able by definition.
|
|
285
|
+
*
|
|
286
|
+
* Note that this will also return true if multiple trees can be
|
|
287
|
+
* built, for example if none of the events overlap with each other.
|
|
288
|
+
*/
|
|
289
|
+
export function canBuildTreesFromEvents(events: readonly Types.Events.Event[]): boolean {
|
|
290
|
+
const stack: Types.Events.Event[] = [];
|
|
291
|
+
for (const event of events) {
|
|
292
|
+
const startTime = event.ts;
|
|
293
|
+
const endTime = event.ts + (event.dur ?? 0);
|
|
294
|
+
let parent = stack.at(-1);
|
|
295
|
+
if (parent === undefined) {
|
|
296
|
+
stack.push(event);
|
|
297
|
+
continue;
|
|
298
|
+
}
|
|
299
|
+
let parentEndTime = parent.ts + (parent.dur ?? 0);
|
|
300
|
+
// Discard events that are not parents for this event. The parent
|
|
301
|
+
// is one whose end time is after this event start time.
|
|
302
|
+
while (stack.length && startTime >= parentEndTime) {
|
|
303
|
+
stack.pop();
|
|
304
|
+
parent = stack.at(-1);
|
|
305
|
+
|
|
306
|
+
if (parent === undefined) {
|
|
307
|
+
break;
|
|
308
|
+
}
|
|
309
|
+
parentEndTime = parent.ts + (parent.dur ?? 0);
|
|
310
|
+
}
|
|
311
|
+
if (stack.length && endTime > parentEndTime) {
|
|
312
|
+
// If such an event exists but its end time is before this
|
|
313
|
+
// event's end time, then a tree cannot be made using this
|
|
314
|
+
// events.
|
|
315
|
+
return false;
|
|
316
|
+
}
|
|
317
|
+
stack.push(event);
|
|
318
|
+
}
|
|
319
|
+
return true;
|
|
320
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// Copyright 2022 The Chromium Authors
|
|
2
|
+
// Use of this source code is governed by a BSD-style license that can be
|
|
3
|
+
// found in the LICENSE file.
|
|
4
|
+
|
|
5
|
+
export * as Extensions from './Extensions.js';
|
|
6
|
+
export * as Network from './Network.js';
|
|
7
|
+
export * as SamplesIntegrator from './SamplesIntegrator.js';
|
|
8
|
+
export * as SyntheticEvents from './SyntheticEvents.js';
|
|
9
|
+
export * as Timing from './Timing.js';
|
|
10
|
+
export * as Trace from './Trace.js';
|
|
11
|
+
export * as TreeHelpers from './TreeHelpers.js';
|