chrome-ai-bridge 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/LICENSE +202 -0
- package/README.md +252 -0
- package/build/node_modules/chrome-devtools-frontend/LICENSE +27 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/App.js +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/AppProvider.js +17 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Base64.js +43 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/CharacterIdMap.js +27 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Color.js +2033 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/ColorConverter.js +332 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/ColorUtils.js +221 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Console.js +79 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Debouncer.js +14 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/EventTarget.js +14 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Gzip.js +66 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/JavaScriptMetaData.js +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Lazy.js +29 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/MapWithDefault.js +22 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Mutex.js +49 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Object.js +86 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/ParsedURL.js +449 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Progress.js +144 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/ResolverBase.js +69 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/ResourceType.js +495 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/ReturnToPanel.js +15 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Revealer.js +164 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Runnable.js +24 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/SegmentedRange.js +78 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/SettingRegistration.js +164 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Settings.js +1263 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/SimpleHistoryManager.js +97 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/StringOutputStream.js +14 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/TextDictionary.js +40 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Throttler.js +71 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Trie.js +127 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/common.js +41 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/host/AidaClient.js +434 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/host/DispatchHttpRequestClient.js +66 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/host/GdpClient.js +202 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/host/InspectorFrontendHost.js +92 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/host/InspectorFrontendHostAPI.js +69 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/host/InspectorFrontendHostStub.js +430 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/host/Platform.js +61 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/host/ResourceLoader.js +220 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/host/UserMetrics.js +968 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/host/host.js +13 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/i18n/i18n.js +60 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/ArrayUtilities.js +199 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/Brand.js +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/Constructor.js +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/DateUtilities.js +13 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/DevToolsPath.js +27 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/HostRuntime.js +19 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/KeyboardUtilities.js +21 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/MapUtilities.js +79 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/MimeType.js +143 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/NumberUtilities.js +72 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/StringUtilities.js +538 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/Timing.js +9 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/TypedArrayUtilities.js +157 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/TypescriptUtilities.js +24 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/UIString.js +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/UserVisibleError.js +22 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/api/HostRuntime.js +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/api/api.js +5 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/browser/HostRuntime.js +63 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/browser/browser.js +5 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/node/HostRuntime.js +72 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/node/node.js +5 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/platform.js +26 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/protocol_client/CDPConnection.js +17 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/protocol_client/ConnectionTransport.js +12 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/protocol_client/DevToolsCDPConnection.js +138 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/protocol_client/InspectorBackend.js +539 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/protocol_client/protocol_client.js +8 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/root/DevToolsContext.js +54 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/root/Runtime.js +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/root/root.js +6 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/AccessibilityModel.js +281 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/AnimationModel.js +845 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/AutofillModel.js +155 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CPUProfilerModel.js +99 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CPUThrottlingManager.js +217 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSContainerQuery.js +98 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSFontFace.js +31 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSLayer.js +22 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSMatchedStyles.js +1318 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSMedia.js +100 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSMetadata.js +1532 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSModel.js +908 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSProperty.js +312 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSPropertyParser.js +574 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSPropertyParserMatchers.js +1346 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSQuery.js +53 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSRule.js +403 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSScope.js +22 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSStartingStyle.js +21 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSStyleDeclaration.js +275 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSStyleSheetHeader.js +166 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSSupports.js +24 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CategorizedBreakpoint.js +29 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ChildTargetManager.js +236 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CompilerSourceMappingContentProvider.js +47 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/Connections.js +205 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ConsoleModel.js +629 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ConsoleModelTypes.js +14 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/Cookie.js +241 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CookieModel.js +198 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CookieParser.js +163 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/DOMDebuggerModel.js +597 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/DOMModel.js +1635 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/DebuggerModel.js +1216 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/EmulationModel.js +527 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/EnhancedTracesParser.js +364 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/EventBreakpointsModel.js +127 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/FrameAssociated.js +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/FrameManager.js +199 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/HeapProfilerModel.js +130 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/HttpReasonPhraseStrings.js +75 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/IOModel.js +80 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/IsolateManager.js +208 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/IssuesModel.js +41 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/LayerTreeBase.js +95 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/LogModel.js +34 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/NetworkManager.js +2223 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/NetworkRequest.js +1654 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/OverlayColorGenerator.js +48 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/OverlayModel.js +765 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/OverlayPersistentHighlighter.js +384 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/PageLoad.js +25 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/PageResourceLoader.js +310 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/PaintProfiler.js +67 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/PerformanceMetricsModel.js +62 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/PreloadingModel.js +608 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/RehydratingConnection.js +413 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/RehydratingObject.js +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/RemoteObject.js +908 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/Resource.js +163 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ResourceTreeModel.js +923 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/RuntimeModel.js +535 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SDKModel.js +45 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ScopeTreeCache.js +36 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ScreenCaptureModel.js +176 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/Script.js +420 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SecurityOriginManager.js +54 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ServerSentEvents.js +67 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ServerSentEventsProtocol.js +113 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ServerTiming.js +216 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ServiceWorkerCacheModel.js +271 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ServiceWorkerManager.js +511 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMap.js +691 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMapCache.js +57 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMapFunctionRanges.js +132 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMapManager.js +201 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMapScopeChainEntry.js +156 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMapScopesInfo.js +508 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/StorageBucketsModel.js +143 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/StorageKeyManager.js +53 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/Target.js +257 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/TargetManager.js +395 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/TraceObject.js +55 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/WebAuthnModel.js +66 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/sdk-meta.js +1166 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/sdk.js +91 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/generated/ARIAProperties.js +2640 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/generated/Deprecation.js +384 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/generated/InspectorBackendCommands.js +1532 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/generated/SupportedCSSProperties.js +7602 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/generated/protocol.js +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/data_formatters/NetworkRequestFormatter.js +289 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.js +995 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.js +664 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/data_formatters/UnitFormatters.js +139 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/performance/AICallTree.js +377 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/performance/AIContext.js +131 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/performance/AIQueries.js +149 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/CSSWorkspaceBinding.js +245 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/CompilerScriptMapping.js +486 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/ContentProviderBasedProject.js +130 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/DebuggerLanguagePlugins.js +992 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/DebuggerWorkspaceBinding.js +592 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/DefaultScriptMapping.js +112 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/FileUtils.js +186 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/LiveLocation.js +60 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/NetworkProject.js +107 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/PresentationConsoleMessageHelper.js +244 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/ResourceMapping.js +564 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/ResourceScriptMapping.js +437 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/ResourceUtils.js +87 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/SASSSourceMapping.js +182 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/StylesSourceMapping.js +268 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/TempFile.js +55 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/bindings.js +20 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/cpu_profile/CPUProfileDataModel.js +516 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/cpu_profile/ProfileTreeModel.js +89 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/cpu_profile/cpu_profile.js +6 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/crux-manager/CrUXManager.js +285 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/crux-manager/crux-manager.js +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/emulation/DeviceModeModel.js +775 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/emulation/EmulatedDevices.js +1706 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/emulation/emulation.js +6 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/formatter/FormatterWorkerPool.js +145 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/formatter/ScriptFormatter.js +77 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/formatter/formatter.js +6 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/geometry/GeometryImpl.js +347 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/geometry/geometry.js +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/logs/LogManager.js +67 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/logs/NetworkLog.js +494 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/logs/RequestResolver.js +49 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/logs/logs-meta.js +73 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/logs/logs.js +7 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/network_time_calculator/Calculator.js +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/network_time_calculator/NetworkTimeCalculator.js +256 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/network_time_calculator/RequestTimeRanges.js +122 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/network_time_calculator/network_time_calculator.js +6 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/source_map_scopes/FunctionCodeResolver.js +192 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/source_map_scopes/NamesResolver.js +622 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/source_map_scopes/ScopeChainModel.js +59 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/source_map_scopes/source_map_scopes.js +7 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/stack_trace/StackTrace.js +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/stack_trace/StackTraceImpl.js +67 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/stack_trace/StackTraceModel.js +97 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/stack_trace/Trie.js +121 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/stack_trace/stack_trace.js +5 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/stack_trace/stack_trace_impl.js +7 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/CodeMirrorUtils.js +32 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/ContentData.js +173 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/ContentProvider.js +30 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/StaticContentProvider.js +32 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/StreamingContentData.js +79 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/Text.js +69 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/TextCursor.js +35 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/TextRange.js +231 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/TextUtils.js +355 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/WasmDisassembly.js +68 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/text_utils.js +14 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/EntityMapper.js +122 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/EventsSerializer.js +81 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/LanternComputationData.js +371 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/ModelImpl.js +169 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/Name.js +114 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/Processor.js +555 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/Styles.js +815 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/FilmStrip.js +44 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/MainThreadActivity.js +76 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/ScriptDuplication.js +162 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/StackTraceForEvent.js +191 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/ThirdParties.js +118 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/TraceFilter.js +50 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/TraceTree.js +599 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/extras.js +10 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/AnimationFramesHandler.js +109 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/AnimationHandler.js +26 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/AsyncJSCallsHandler.js +187 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/AuctionWorkletsHandler.js +162 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/DOMStatsHandler.js +21 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/ExtensionTraceDataHandler.js +263 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/FlowsHandler.js +148 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/FramesHandler.js +485 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/GPUHandler.js +35 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/ImagePaintingHandler.js +147 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/InitiatorsHandler.js +180 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/InvalidationsHandler.js +126 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/LargestImagePaintHandler.js +85 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/LargestTextPaintHandler.js +27 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/LayerTreeHandler.js +103 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/LayoutShiftsHandler.js +449 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/MemoryHandler.js +21 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/MetaHandler.js +404 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/ModelHandlers.js +33 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/NetworkRequestsHandler.js +566 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/PageFramesHandler.js +42 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/PageLoadMetricsHandler.js +349 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/RendererHandler.js +346 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/SamplesHandler.js +260 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/ScreenshotsHandler.js +97 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/ScriptsHandler.js +276 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/SelectorStatsHandler.js +71 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/Threads.js +101 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/UserInteractionsHandler.js +317 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/UserTimingsHandler.js +183 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/WarningsHandler.js +134 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/WorkersHandler.js +33 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/handlers.js +7 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/helpers.js +163 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/types.js +1 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/Extensions.js +41 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/Network.js +102 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/SamplesIntegrator.js +495 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/SyntheticEvents.js +74 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/Timing.js +186 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/Trace.js +820 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/TreeHelpers.js +254 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/helpers.js +10 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/CLSCulprits.js +489 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/Cache.js +209 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/Common.js +340 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/DOMSize.js +181 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/DocumentLatency.js +258 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/DuplicatedJavaScript.js +90 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/FontDisplay.js +82 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/ForcedReflow.js +161 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/INPBreakdown.js +129 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/ImageDelivery.js +263 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/LCPBreakdown.js +199 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/LCPDiscovery.js +183 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/LegacyJavaScript.js +90 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/Models.js +21 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/ModernHTTP.js +200 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/NetworkDependencyTree.js +545 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/RenderBlocking.js +192 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/SlowCSSSelector.js +136 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/Statistics.js +92 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/ThirdParties.js +98 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/Viewport.js +102 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/insights.js +9 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/types.js +18 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/core/LanternError.js +6 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/core/NetworkAnalyzer.js +488 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/core/core.js +5 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/graph/BaseNode.js +276 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/graph/CPUNode.js +63 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/graph/NetworkNode.js +82 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/graph/PageDependencyGraph.js +551 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/graph/graph.js +7 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/lantern.js +9 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/FirstContentfulPaint.js +136 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/Interactive.js +67 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/LargestContentfulPaint.js +68 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/MaxPotentialFID.js +48 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/Metric.js +68 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/SpeedIndex.js +101 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/TBTUtils.js +64 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/TotalBlockingTime.js +78 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/metrics.js +11 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/ConnectionPool.js +115 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/Constants.js +42 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/DNSCache.js +47 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/SimulationTimingMap.js +134 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/Simulator.js +450 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/TCPConnection.js +154 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/simulation.js +9 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/types/Lantern.js +24 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/types/types.js +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/trace.js +17 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/Configuration.js +18 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/Extensions.js +37 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/File.js +57 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/Overlays.js +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/Timing.js +15 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/TraceEvents.js +580 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/types.js +9 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace_source_maps_resolver/SourceMapsResolver.js +224 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace_source_maps_resolver/trace_source_maps_resolver.js +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/FileManager.js +64 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/IgnoreListManager.js +504 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/SearchConfig.js +113 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/UISourceCode.js +601 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/WorkspaceImpl.js +201 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/workspace-meta.js +34 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/workspace.js +9 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/codemirror.next/codemirror.next.js +1 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/legacy-javascript/LICENSE +202 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/legacy-javascript/legacy-javascript.js +2 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/legacy-javascript/lib/legacy-javascript.js +940 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/LICENSE +26 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/builder/builder.js +196 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/builder/safe_builder.js +226 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/codec.js +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/decode/decode.js +394 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/encode/encode.js +24 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/encode/encoder.js +283 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/mod.js +7 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/util.js +9 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/vlq.js +84 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/source-map-scopes-codec.js +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/LICENSE +20 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/lib/nostats-subset.js +146 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/httparchive-nostats-subset.js +2 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/httparchive-subset.js +2 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/create-entity-finder-api.js +118 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/create-entity-finder-api.test.js +40 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/entities.test.js +26 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/index.js +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/index.test.js +215 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/subsets/httparchive-nostats.js +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/subsets/httparchive.js +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/subsets/nostats.js +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/nostats-subset.js +2 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/third-party-web.js +2 -0
- package/build/src/McpContext.js +400 -0
- package/build/src/McpResponse.js +237 -0
- package/build/src/Mutex.js +40 -0
- package/build/src/PageCollector.js +68 -0
- package/build/src/WaitForHelper.js +134 -0
- package/build/src/browser-connection-manager.js +373 -0
- package/build/src/browser.js +719 -0
- package/build/src/cli.js +120 -0
- package/build/src/client-detector.js +93 -0
- package/build/src/config.js +38 -0
- package/build/src/formatters/consoleFormatter.js +73 -0
- package/build/src/formatters/extensionsPageFormatter.js +184 -0
- package/build/src/formatters/networkFormatter.js +34 -0
- package/build/src/formatters/snapshotFormatter.js +80 -0
- package/build/src/graceful.js +125 -0
- package/build/src/index.js +13 -0
- package/build/src/logger.js +27 -0
- package/build/src/login-helper.js +431 -0
- package/build/src/main.js +268 -0
- package/build/src/plugin-api.js +189 -0
- package/build/src/profile-migration.js +82 -0
- package/build/src/profile-resolver.js +555 -0
- package/build/src/project-detector.js +71 -0
- package/build/src/project-root-state.js +18 -0
- package/build/src/roots-manager.js +253 -0
- package/build/src/selectors/chatgpt.json +61 -0
- package/build/src/selectors/gemini.json +24 -0
- package/build/src/selectors/loader.js +128 -0
- package/build/src/stable-identity.js +193 -0
- package/build/src/startup-check.js +147 -0
- package/build/src/system-profile.js +181 -0
- package/build/src/tools/ToolDefinition.js +9 -0
- package/build/src/tools/bookmarks.js +170 -0
- package/build/src/tools/categories.js +15 -0
- package/build/src/tools/chatgpt-web.js +507 -0
- package/build/src/tools/console.js +19 -0
- package/build/src/tools/core-tools.js +65 -0
- package/build/src/tools/diagnose-ui.js +328 -0
- package/build/src/tools/emulation.js +67 -0
- package/build/src/tools/extensions.js +185 -0
- package/build/src/tools/gemini-web.js +491 -0
- package/build/src/tools/iframe-popup-tools.js +204 -0
- package/build/src/tools/input.js +185 -0
- package/build/src/tools/network.js +68 -0
- package/build/src/tools/optional-tools.js +69 -0
- package/build/src/tools/pages.js +172 -0
- package/build/src/tools/performance.js +127 -0
- package/build/src/tools/screenshot.js +48 -0
- package/build/src/tools/script.js +39 -0
- package/build/src/tools/snapshot.js +45 -0
- package/build/src/trace-processing/parse.js +93 -0
- package/build/src/utils/pagination.js +49 -0
- package/package.json +90 -0
- package/scripts/cli.mjs +49 -0
|
@@ -0,0 +1,109 @@
|
|
|
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
|
+
import * as Helpers from '../helpers/helpers.js';
|
|
5
|
+
import * as Types from '../types/types.js';
|
|
6
|
+
function threadKey(data) {
|
|
7
|
+
return `${data.pid}-${data.tid}`;
|
|
8
|
+
}
|
|
9
|
+
// Track all the start + end events. We key them by the PID+TID so we don't
|
|
10
|
+
// accidentally pair across different threads.
|
|
11
|
+
let animationFrameStarts = new Map();
|
|
12
|
+
let animationFrameEnds = new Map();
|
|
13
|
+
// Store all the AnimationFrame::Presentation events. Key them by their ID for
|
|
14
|
+
// easy look-up later on when we associate one to the AnimationFrame event.
|
|
15
|
+
let animationFramePresentations = new Map();
|
|
16
|
+
// The final list of animation frames that we return.
|
|
17
|
+
let animationFrames = [];
|
|
18
|
+
let presentationForFrame = new Map();
|
|
19
|
+
export function reset() {
|
|
20
|
+
animationFrameStarts = new Map();
|
|
21
|
+
animationFrameEnds = new Map();
|
|
22
|
+
animationFrames = [];
|
|
23
|
+
presentationForFrame = new Map();
|
|
24
|
+
animationFramePresentations = new Map();
|
|
25
|
+
isEnabled = false;
|
|
26
|
+
}
|
|
27
|
+
let isEnabled = false;
|
|
28
|
+
export function handleUserConfig(config) {
|
|
29
|
+
isEnabled = config.enableAnimationsFrameHandler;
|
|
30
|
+
}
|
|
31
|
+
export function handleEvent(event) {
|
|
32
|
+
if (!isEnabled) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
if (Types.Events.isAnimationFrameAsyncStart(event)) {
|
|
36
|
+
const key = threadKey(event);
|
|
37
|
+
const existing = animationFrameStarts.get(key) ?? [];
|
|
38
|
+
existing.push(event);
|
|
39
|
+
animationFrameStarts.set(key, existing);
|
|
40
|
+
}
|
|
41
|
+
else if (Types.Events.isAnimationFrameAsyncEnd(event)) {
|
|
42
|
+
const key = threadKey(event);
|
|
43
|
+
const existing = animationFrameEnds.get(key) ?? [];
|
|
44
|
+
existing.push(event);
|
|
45
|
+
animationFrameEnds.set(key, existing);
|
|
46
|
+
}
|
|
47
|
+
else if (Types.Events.isAnimationFramePresentation(event) && event.args?.id) {
|
|
48
|
+
animationFramePresentations.set(event.args.id, event);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
export async function finalize() {
|
|
52
|
+
// AnimationFrames are represented with begin & end events on a stack; so we
|
|
53
|
+
// can pair them by walking through the list of start events and pairing with
|
|
54
|
+
// the same index in the list of end events, once both lists are sorted by
|
|
55
|
+
// timestamp.
|
|
56
|
+
// We walk through the set of begin/end events we gathered per pid+tid and
|
|
57
|
+
// pair those up.
|
|
58
|
+
// Unfortunately we cannot use the pairing helpers in Helpers.Trace because
|
|
59
|
+
// only the begin event has an ID; the end event does not. But because we
|
|
60
|
+
// know that AnimationFrames are sequential and do not overlap, we can pair
|
|
61
|
+
// up events easily.
|
|
62
|
+
for (const [key, startEvents] of animationFrameStarts.entries()) {
|
|
63
|
+
const endEvents = animationFrameEnds.get(key);
|
|
64
|
+
if (!endEvents) {
|
|
65
|
+
continue;
|
|
66
|
+
}
|
|
67
|
+
Helpers.Trace.sortTraceEventsInPlace(startEvents);
|
|
68
|
+
Helpers.Trace.sortTraceEventsInPlace(endEvents);
|
|
69
|
+
for (let i = 0; i < startEvents.length; i++) {
|
|
70
|
+
const endEvent = endEvents.at(i);
|
|
71
|
+
if (!endEvent) {
|
|
72
|
+
// Invalid data: break. We can't pair any other events up.
|
|
73
|
+
break;
|
|
74
|
+
}
|
|
75
|
+
const startEvent = startEvents[i];
|
|
76
|
+
const syntheticEvent = Helpers.SyntheticEvents.SyntheticEventsManager
|
|
77
|
+
.registerSyntheticEvent({
|
|
78
|
+
rawSourceEvent: startEvent,
|
|
79
|
+
...startEvent,
|
|
80
|
+
dur: Types.Timing.Micro(endEvent.ts - startEvent.ts),
|
|
81
|
+
args: {
|
|
82
|
+
data: {
|
|
83
|
+
beginEvent: startEvent,
|
|
84
|
+
endEvent,
|
|
85
|
+
},
|
|
86
|
+
},
|
|
87
|
+
});
|
|
88
|
+
animationFrames.push(syntheticEvent);
|
|
89
|
+
// AnimationFrame begin events + AnimationFrame::Presentation events share
|
|
90
|
+
// an args.id, so we can pair them up based on that.
|
|
91
|
+
const id = startEvent.args?.id;
|
|
92
|
+
if (id) {
|
|
93
|
+
const presentationEvent = animationFramePresentations.get(id);
|
|
94
|
+
if (presentationEvent) {
|
|
95
|
+
presentationForFrame.set(syntheticEvent, presentationEvent);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
export function data() {
|
|
102
|
+
return {
|
|
103
|
+
animationFrames,
|
|
104
|
+
presentationForFrame,
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
export function deps() {
|
|
108
|
+
return ['Meta'];
|
|
109
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
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
|
+
import * as Helpers from '../helpers/helpers.js';
|
|
5
|
+
import * as Types from '../types/types.js';
|
|
6
|
+
let animations = [];
|
|
7
|
+
let animationsSyntheticEvents = [];
|
|
8
|
+
export function reset() {
|
|
9
|
+
animations = [];
|
|
10
|
+
animationsSyntheticEvents = [];
|
|
11
|
+
}
|
|
12
|
+
export function handleEvent(event) {
|
|
13
|
+
if (Types.Events.isAnimation(event)) {
|
|
14
|
+
animations.push(event);
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
export async function finalize() {
|
|
19
|
+
const syntheticEvents = Helpers.Trace.createMatchedSortedSyntheticEvents(animations);
|
|
20
|
+
animationsSyntheticEvents.push(...syntheticEvents);
|
|
21
|
+
}
|
|
22
|
+
export function data() {
|
|
23
|
+
return {
|
|
24
|
+
animations: animationsSyntheticEvents,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
@@ -0,0 +1,187 @@
|
|
|
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
|
+
import * as Platform from '../../../core/platform/platform.js';
|
|
5
|
+
import * as Types from '../types/types.js';
|
|
6
|
+
import { data as flowsHandlerData } from './FlowsHandler.js';
|
|
7
|
+
import { data as rendererHandlerData } from './RendererHandler.js';
|
|
8
|
+
let schedulerToRunEntryPoints = new Map();
|
|
9
|
+
let taskScheduleForTaskRunEvent = new Map();
|
|
10
|
+
let asyncCallToScheduler = new Map();
|
|
11
|
+
let runEntryPointToScheduler = new Map();
|
|
12
|
+
export function reset() {
|
|
13
|
+
schedulerToRunEntryPoints = new Map();
|
|
14
|
+
asyncCallToScheduler = new Map();
|
|
15
|
+
taskScheduleForTaskRunEvent = new Map();
|
|
16
|
+
runEntryPointToScheduler = new Map();
|
|
17
|
+
}
|
|
18
|
+
export function handleEvent(_) {
|
|
19
|
+
}
|
|
20
|
+
export async function finalize() {
|
|
21
|
+
const { flows } = flowsHandlerData();
|
|
22
|
+
const { entryToNode } = rendererHandlerData();
|
|
23
|
+
// Process async task flows
|
|
24
|
+
for (const flow of flows) {
|
|
25
|
+
let maybeAsyncTaskScheduled = flow.at(0);
|
|
26
|
+
if (!maybeAsyncTaskScheduled) {
|
|
27
|
+
continue;
|
|
28
|
+
}
|
|
29
|
+
if (Types.Events.isDebuggerAsyncTaskRun(maybeAsyncTaskScheduled)) {
|
|
30
|
+
// Sometimes a AsyncTaskRun event run can incorrectly appear as
|
|
31
|
+
// initiated by another AsyncTaskRun from Perfetto's flows
|
|
32
|
+
// perspective.
|
|
33
|
+
// For example, in this snippet:
|
|
34
|
+
//
|
|
35
|
+
// const myTask = console.createTask('hola'); // creates an AsyncTaskSchedule
|
|
36
|
+
// myTask.run(something); // creates an AsyncTaskRun
|
|
37
|
+
// myTask.run(somethingElse); // creates an AsyncTaskRun
|
|
38
|
+
//
|
|
39
|
+
// or also in this one
|
|
40
|
+
//
|
|
41
|
+
// setInterval(something); // creates multiple connected AsyncTaskRun.
|
|
42
|
+
//
|
|
43
|
+
// Because the flow id is created based on the task's memory address,
|
|
44
|
+
// the three events will end up belonging to the same flow (even if
|
|
45
|
+
// in the frontend we receive it as pairs), and elements in a flow
|
|
46
|
+
// are connected to their immediately consecutive neighbor.
|
|
47
|
+
//
|
|
48
|
+
// To ensure we use the right Schedule event, if the "initiating"
|
|
49
|
+
// portion of the flow is a Run event, we look for any corresponding
|
|
50
|
+
// Schedule event that we might have found before.
|
|
51
|
+
maybeAsyncTaskScheduled = taskScheduleForTaskRunEvent.get(maybeAsyncTaskScheduled);
|
|
52
|
+
}
|
|
53
|
+
if (!maybeAsyncTaskScheduled || !Types.Events.isDebuggerAsyncTaskScheduled(maybeAsyncTaskScheduled)) {
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
const taskName = maybeAsyncTaskScheduled.args.taskName;
|
|
57
|
+
const asyncTaskRun = flow.at(1);
|
|
58
|
+
if (!asyncTaskRun || !Types.Events.isDebuggerAsyncTaskRun(asyncTaskRun)) {
|
|
59
|
+
// Unexpected flow shape, ignore.
|
|
60
|
+
continue;
|
|
61
|
+
}
|
|
62
|
+
// Cache the Schedule event for this Run for future reference.
|
|
63
|
+
taskScheduleForTaskRunEvent.set(asyncTaskRun, maybeAsyncTaskScheduled);
|
|
64
|
+
// Get the JS call scheduled the task.
|
|
65
|
+
const asyncCaller = findNearestJSAncestor(maybeAsyncTaskScheduled, entryToNode);
|
|
66
|
+
// Get the trace entrypoint for the scheduled task (e.g. FunctionCall, etc.).
|
|
67
|
+
const asyncEntryPoint = findFirstJsInvocationForAsyncTaskRun(asyncTaskRun, entryToNode);
|
|
68
|
+
// Store the async relationship between traces to be shown with initiator arrows.
|
|
69
|
+
// Default to the AsyncTask events in case the JS entrypoints aren't found.
|
|
70
|
+
runEntryPointToScheduler.set(asyncEntryPoint || asyncTaskRun, { taskName, scheduler: asyncCaller || maybeAsyncTaskScheduled });
|
|
71
|
+
if (!asyncCaller || !asyncEntryPoint) {
|
|
72
|
+
// Unexpected async call trace data shape, ignore.
|
|
73
|
+
continue;
|
|
74
|
+
}
|
|
75
|
+
// Set scheduler -> scheduled mapping.
|
|
76
|
+
// The scheduled being the JS entrypoint
|
|
77
|
+
const entryPoints = Platform.MapUtilities.getWithDefault(schedulerToRunEntryPoints, asyncCaller, () => []);
|
|
78
|
+
entryPoints.push(asyncEntryPoint);
|
|
79
|
+
// Set scheduled -> scheduler mapping.
|
|
80
|
+
// The scheduled being the JS calls (instead of the entrypoints as
|
|
81
|
+
// above, for usage ergonomics).
|
|
82
|
+
const scheduledProfileCalls = findFirstJSCallsForAsyncTaskRun(asyncTaskRun, entryToNode);
|
|
83
|
+
for (const call of scheduledProfileCalls) {
|
|
84
|
+
asyncCallToScheduler.set(call, { taskName, scheduler: asyncCaller });
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Given a DebuggerAsyncTaskScheduled event, returns its closest
|
|
90
|
+
* ProfileCall or JS invocation ancestor, which represents the JS call
|
|
91
|
+
* that scheduled the async task.
|
|
92
|
+
*/
|
|
93
|
+
function findNearestJSAncestor(asyncTaskScheduled, entryToNode) {
|
|
94
|
+
let node = entryToNode.get(asyncTaskScheduled)?.parent;
|
|
95
|
+
while (node) {
|
|
96
|
+
if (Types.Events.isProfileCall(node.entry) || acceptJSInvocationsPredicate(node.entry)) {
|
|
97
|
+
return node.entry;
|
|
98
|
+
}
|
|
99
|
+
node = node.parent;
|
|
100
|
+
}
|
|
101
|
+
return null;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Entrypoints to JS execution in the timeline. We ignore those starting
|
|
105
|
+
* with 'v8' because they aren't shown in the timeline, and ultimately
|
|
106
|
+
* this function's output results in "initiated" events, so ideally this
|
|
107
|
+
* returns events that end up in the flame chart.
|
|
108
|
+
*/
|
|
109
|
+
function acceptJSInvocationsPredicate(event) {
|
|
110
|
+
const eventIsConsoleRunTask = Types.Events.isConsoleRunTask(event);
|
|
111
|
+
const eventIsV8EntryPoint = event.name.startsWith('v8') || event.name.startsWith('V8');
|
|
112
|
+
return Types.Events.isJSInvocationEvent(event) && (eventIsConsoleRunTask || !eventIsV8EntryPoint);
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Given a DebuggerAsyncTaskRun event, returns its closest JS entry
|
|
116
|
+
* point descendant, which contains the task being scheduled.
|
|
117
|
+
*/
|
|
118
|
+
function findFirstJsInvocationForAsyncTaskRun(asyncTaskRun, entryToNode) {
|
|
119
|
+
// Ignore descendants of other DebuggerAsyncTaskRuns since they
|
|
120
|
+
// are part of another async task and have to be handled separately
|
|
121
|
+
return findFirstDescendantsOfType(asyncTaskRun, entryToNode, acceptJSInvocationsPredicate, Types.Events.isDebuggerAsyncTaskRun)
|
|
122
|
+
.at(0);
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Given an async task run event, returns the top level call frames
|
|
126
|
+
* (profile calls) directly called by the async task. This implies that
|
|
127
|
+
* any profile calls under another async task run event are ignored.
|
|
128
|
+
* These profile calls represent the JS task being scheduled, AKA
|
|
129
|
+
* the other part of the async stack.
|
|
130
|
+
*
|
|
131
|
+
* For example, here the profile calls "js 1", "js 2" and "js 4" would
|
|
132
|
+
* be returned:
|
|
133
|
+
*
|
|
134
|
+
* |------------------Async Task Run------------------|
|
|
135
|
+
* |--FunctionCall--| |--FunctionCall--|
|
|
136
|
+
* |-js 1-||-js 2-| |-js 4-|
|
|
137
|
+
* |-js 3-|
|
|
138
|
+
*
|
|
139
|
+
* But here, only "js 1" and "js 2" would be returned:
|
|
140
|
+
*
|
|
141
|
+
* |------------------Async Task Run------------------|
|
|
142
|
+
* |--FunctionCall--| |------------------------|
|
|
143
|
+
* |-js 1-||-js 2-| |---Async Task Run--|
|
|
144
|
+
* |-js 3-| |--FunctionCall--|
|
|
145
|
+
* |-js 4-|
|
|
146
|
+
*/
|
|
147
|
+
function findFirstJSCallsForAsyncTaskRun(asyncTaskRun, entryToNode) {
|
|
148
|
+
// Ignore descendants of other DebuggerAsyncTaskRuns since they
|
|
149
|
+
// are part of another async task and have to be handled separately
|
|
150
|
+
return findFirstDescendantsOfType(asyncTaskRun, entryToNode, Types.Events.isProfileCall, Types.Events.isDebuggerAsyncTaskRun);
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Given a root event returns all the first descendants that meet a
|
|
154
|
+
* predicate condition (predicateAccept) while ignoring subtrees whose
|
|
155
|
+
* top event meets an ignore condition (predicateIgnore).
|
|
156
|
+
*/
|
|
157
|
+
function findFirstDescendantsOfType(root, entryToNode, predicateAccept, predicateIgnore) {
|
|
158
|
+
const node = entryToNode.get(root);
|
|
159
|
+
if (!node) {
|
|
160
|
+
return [];
|
|
161
|
+
}
|
|
162
|
+
const childrenGroups = [[...node.children]];
|
|
163
|
+
const firstDescendants = [];
|
|
164
|
+
for (let i = 0; i < childrenGroups.length; i++) {
|
|
165
|
+
const siblings = childrenGroups[i];
|
|
166
|
+
for (let j = 0; j < siblings.length; j++) {
|
|
167
|
+
const node = siblings[j];
|
|
168
|
+
if (predicateAccept(node.entry)) {
|
|
169
|
+
firstDescendants.push(node.entry);
|
|
170
|
+
}
|
|
171
|
+
else if (!predicateIgnore(node.entry)) {
|
|
172
|
+
childrenGroups.push([...node.children]);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
return firstDescendants;
|
|
177
|
+
}
|
|
178
|
+
export function data() {
|
|
179
|
+
return {
|
|
180
|
+
schedulerToRunEntryPoints,
|
|
181
|
+
asyncCallToScheduler,
|
|
182
|
+
runEntryPointToScheduler,
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
export function deps() {
|
|
186
|
+
return ['Renderer', 'Flows'];
|
|
187
|
+
}
|
|
@@ -0,0 +1,162 @@
|
|
|
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
|
+
import * as Helpers from '../helpers/helpers.js';
|
|
5
|
+
import * as Types from '../types/types.js';
|
|
6
|
+
/**
|
|
7
|
+
* There are two metadata events that we care about.
|
|
8
|
+
* => AuctionWorkletRunningInProcess tells us which process the Auction Worklet
|
|
9
|
+
* has taken to run in.
|
|
10
|
+
* => AuctionWorkletDoneWithProcess tells us when the worklet is done with that
|
|
11
|
+
* process. This is less useful - but in the future we might want to surface
|
|
12
|
+
* this information so we still parse and return the event.
|
|
13
|
+
*
|
|
14
|
+
* It is important to note that the top level PID on these events is NOT the
|
|
15
|
+
* PID that the worklet is running on; instead we have to look at its
|
|
16
|
+
* args.data.pid property, which is the PID of the process that it is running
|
|
17
|
+
* on.
|
|
18
|
+
*
|
|
19
|
+
* For any given RunningInProcess event, we would typically expect to see a
|
|
20
|
+
* DoneWithProcess event, however this is not guaranteed, especially as users
|
|
21
|
+
* can record any chunk of time in DevTools.
|
|
22
|
+
*
|
|
23
|
+
* Similarly, it is also possible to see a DoneWithProcess event without a
|
|
24
|
+
* RunningInProcess event, if the user started recording after the auction
|
|
25
|
+
* worklets started. Therefore we are happy to create
|
|
26
|
+
* SyntheticAuctionWorklets as long as we see just one of these events.
|
|
27
|
+
*
|
|
28
|
+
* If we do get two events and need to pair them, we can use the
|
|
29
|
+
* args.data.target property, which is a string ID shared by both
|
|
30
|
+
* events.
|
|
31
|
+
*/
|
|
32
|
+
let runningInProcessEvents = new Map();
|
|
33
|
+
let doneWithProcessEvents = new Map();
|
|
34
|
+
// Keyed by the PID defined in `args.data.pid` on AuctionWorklet trace events..
|
|
35
|
+
let createdSyntheticEvents = new Map();
|
|
36
|
+
// Each AuctonWorklet takes over a process and has 2 threads (that we care
|
|
37
|
+
// about and want to show as tracks):
|
|
38
|
+
// 1. A CrUtilityMain thread which is known as the "control process".
|
|
39
|
+
// 2. A AuctionV8HelperThread which is the actual auction worklet and will be
|
|
40
|
+
// either a "Seller" or a "Bidder"
|
|
41
|
+
// To detect these we look for the metadata thread_name events. We key these by
|
|
42
|
+
// PID so that we can easily look them up later without having to loop through.
|
|
43
|
+
let utilityThreads = new Map();
|
|
44
|
+
let v8HelperThreads = new Map();
|
|
45
|
+
export function reset() {
|
|
46
|
+
runningInProcessEvents = new Map();
|
|
47
|
+
doneWithProcessEvents = new Map();
|
|
48
|
+
createdSyntheticEvents = new Map();
|
|
49
|
+
utilityThreads = new Map();
|
|
50
|
+
v8HelperThreads = new Map();
|
|
51
|
+
}
|
|
52
|
+
export function handleEvent(event) {
|
|
53
|
+
if (Types.Events.isAuctionWorkletRunningInProcess(event)) {
|
|
54
|
+
runningInProcessEvents.set(event.args.data.pid, event);
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
if (Types.Events.isAuctionWorkletDoneWithProcess(event)) {
|
|
58
|
+
doneWithProcessEvents.set(event.args.data.pid, event);
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
if (Types.Events.isThreadName(event)) {
|
|
62
|
+
if (event.args.name === 'auction_worklet.CrUtilityMain') {
|
|
63
|
+
utilityThreads.set(event.pid, event);
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
if (event.args.name === 'AuctionV8HelperThread') {
|
|
67
|
+
v8HelperThreads.set(event.pid, event);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
function workletType(input) {
|
|
72
|
+
switch (input) {
|
|
73
|
+
case 'seller':
|
|
74
|
+
return "seller" /* Types.Events.AuctionWorkletType.SELLER */;
|
|
75
|
+
case 'bidder':
|
|
76
|
+
return "bidder" /* Types.Events.AuctionWorkletType.BIDDER */;
|
|
77
|
+
default:
|
|
78
|
+
return "unknown" /* Types.Events.AuctionWorkletType.UNKNOWN */;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* We cannot make the full event without knowing the type of event, but we can
|
|
83
|
+
* create everything other than the `args` field, as those are identical
|
|
84
|
+
* regardless of the type of event.
|
|
85
|
+
*/
|
|
86
|
+
function makeSyntheticEventBase(event) {
|
|
87
|
+
return Helpers.SyntheticEvents.SyntheticEventsManager
|
|
88
|
+
.registerSyntheticEvent({
|
|
89
|
+
rawSourceEvent: event,
|
|
90
|
+
name: 'SyntheticAuctionWorklet',
|
|
91
|
+
s: "t" /* Types.Events.Scope.THREAD */,
|
|
92
|
+
cat: event.cat,
|
|
93
|
+
tid: event.tid,
|
|
94
|
+
ts: event.ts,
|
|
95
|
+
ph: "I" /* Types.Events.Phase.INSTANT */,
|
|
96
|
+
pid: event.args.data.pid,
|
|
97
|
+
host: event.args.data.host,
|
|
98
|
+
target: event.args.data.target,
|
|
99
|
+
type: workletType(event.args.data.type),
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
export async function finalize() {
|
|
103
|
+
// Loop through the utility threads we found to create the worklet events. We
|
|
104
|
+
// expect each worklet to have a utility thread, so we can use them as the
|
|
105
|
+
// root of our list of worklets.
|
|
106
|
+
for (const [pid, utilityThreadNameEvent] of utilityThreads) {
|
|
107
|
+
const v8HelperEvent = v8HelperThreads.get(pid);
|
|
108
|
+
if (!v8HelperEvent) {
|
|
109
|
+
// Bad trace data - AuctionWorklets are expected to always have both threads.
|
|
110
|
+
continue;
|
|
111
|
+
}
|
|
112
|
+
const runningEvent = runningInProcessEvents.get(pid);
|
|
113
|
+
const doneWithEvent = doneWithProcessEvents.get(pid);
|
|
114
|
+
// We can create a worklet from either the runningEvent or doneWithEvent -
|
|
115
|
+
// we do not need both. We cannot express that to TypeScript with an early
|
|
116
|
+
// return here, so instead we set the event initially to null, and then
|
|
117
|
+
// create it from either the running event or the doneWith event. If it is
|
|
118
|
+
// still null after this, that means neither event was found, and we drop
|
|
119
|
+
// the worklet as we do not have enough information to create the synthetic
|
|
120
|
+
// event.
|
|
121
|
+
let syntheticEvent = null;
|
|
122
|
+
if (runningEvent) {
|
|
123
|
+
syntheticEvent = {
|
|
124
|
+
...makeSyntheticEventBase(runningEvent),
|
|
125
|
+
args: {
|
|
126
|
+
data: {
|
|
127
|
+
runningInProcessEvent: runningEvent,
|
|
128
|
+
utilityThread: utilityThreadNameEvent,
|
|
129
|
+
v8HelperThread: v8HelperEvent,
|
|
130
|
+
},
|
|
131
|
+
},
|
|
132
|
+
};
|
|
133
|
+
if (doneWithEvent) {
|
|
134
|
+
syntheticEvent.args.data.doneWithProcessEvent = doneWithEvent;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
else if (doneWithEvent) {
|
|
138
|
+
syntheticEvent = {
|
|
139
|
+
...makeSyntheticEventBase(doneWithEvent),
|
|
140
|
+
args: {
|
|
141
|
+
data: {
|
|
142
|
+
doneWithProcessEvent: doneWithEvent,
|
|
143
|
+
utilityThread: utilityThreadNameEvent,
|
|
144
|
+
v8HelperThread: v8HelperEvent,
|
|
145
|
+
},
|
|
146
|
+
},
|
|
147
|
+
};
|
|
148
|
+
if (runningEvent) {
|
|
149
|
+
syntheticEvent.args.data.runningInProcessEvent = runningEvent;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
if (syntheticEvent === null) {
|
|
153
|
+
continue;
|
|
154
|
+
}
|
|
155
|
+
createdSyntheticEvents.set(pid, syntheticEvent);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
export function data() {
|
|
159
|
+
return {
|
|
160
|
+
worklets: createdSyntheticEvents,
|
|
161
|
+
};
|
|
162
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
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
|
+
import * as Platform from '../../../core/platform/platform.js';
|
|
5
|
+
import * as Types from '../types/types.js';
|
|
6
|
+
let domStatsByFrameId = new Map();
|
|
7
|
+
export function reset() {
|
|
8
|
+
domStatsByFrameId = new Map();
|
|
9
|
+
}
|
|
10
|
+
export function handleEvent(event) {
|
|
11
|
+
if (!Types.Events.isDOMStats(event)) {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
const domStatEvents = Platform.MapUtilities.getWithDefault(domStatsByFrameId, event.args.data.frame, () => []);
|
|
15
|
+
domStatEvents.push(event);
|
|
16
|
+
}
|
|
17
|
+
export async function finalize() {
|
|
18
|
+
}
|
|
19
|
+
export function data() {
|
|
20
|
+
return { domStatsByFrameId };
|
|
21
|
+
}
|