@mcp-b/chrome-devtools-mcp 1.1.0 → 1.1.2
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/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/ByteUtilities.js +72 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/i18n/DevToolsLocale.js +64 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/i18n/NumberFormatter.js +67 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/i18n/collect-ui-strings.js +73 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/i18n/generate-locales-js.js +51 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/i18n/i18n.js +9 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/i18n/i18nImpl.js +135 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/i18n/i18nTypes.js +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/i18n/locales.js +14 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/i18n/time-utilities.js +148 -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 +11 -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/foundation/Universe.js +34 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/foundation/foundation.js +5 -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/issues_manager/AttributionReportingIssue.js +201 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/BounceTrackingIssue.js +49 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/CheckFormsIssuesTrigger.js +31 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/ClientHintIssue.js +71 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/ContentSecurityPolicyIssue.js +135 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/ContrastCheckTrigger.js +59 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/CookieDeprecationMetadataIssue.js +58 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/CookieIssue.js +514 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/CorsIssue.js +244 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/CrossOriginEmbedderPolicyIssue.js +110 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/DeprecationIssue.js +90 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/ElementAccessibilityIssue.js +95 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/FederatedAuthRequestIssue.js +231 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/FederatedAuthUserInfoRequestIssue.js +141 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/GenericIssue.js +212 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/HeavyAdIssue.js +52 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/Issue.js +152 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/IssueAggregator.js +314 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/IssueResolver.js +40 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/IssuesManager.js +416 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/IssuesManagerEvents.js +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/LowTextContrastIssue.js +48 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/MarkdownIssueDescription.js +104 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/MixedContentIssue.js +55 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/PartitioningBlobURLIssue.js +58 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/PropertyRuleIssue.js +58 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/QuirksModeIssue.js +48 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/RelatedIssue.js +70 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/SRIMessageSignatureIssue.js +87 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/SharedArrayBufferIssue.js +49 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/SharedDictionaryIssue.js +292 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/SourceFrameIssuesManager.js +81 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/StylesheetLoadingIssue.js +59 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/UnencodedDigestIssue.js +62 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/CoepCoopSandboxedIframeCannotNavigateToCoopPage.md +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/CoepCorpNotSameOrigin.md +8 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/CoepCorpNotSameOriginAfterDefaultedToSameOriginByCoep.md +18 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/CoepCorpNotSameSite.md +7 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/CoepFrameResourceNeedsCoepHeader.md +10 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/CompatibilityModeQuirks.md +5 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/CookieAttributeValueExceedsMaxSize.md +5 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/LowTextContrast.md +5 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteExcludeContextDowngradeRead.md +8 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteExcludeContextDowngradeSet.md +8 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteExcludeNavigationContextDowngrade.md +8 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteInvalidSameParty.md +8 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteNoneInsecureErrorRead.md +8 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteNoneInsecureErrorSet.md +8 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteNoneInsecureWarnRead.md +8 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteNoneInsecureWarnSet.md +8 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteSamePartyCrossPartyContextSet.md +10 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteUnspecifiedLaxAllowUnsafeRead.md +9 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteUnspecifiedLaxAllowUnsafeSet.md +9 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteWarnCrossDowngradeRead.md +8 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteWarnCrossDowngradeSet.md +8 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteWarnStrictLaxDowngradeStrict.md +8 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arInsecureContext.md +7 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arInvalidInfoHeader.md +5 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arInvalidRegisterOsSourceHeader.md +5 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arInvalidRegisterOsTriggerHeader.md +5 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arInvalidRegisterSourceHeader.md +5 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arInvalidRegisterTriggerHeader.md +5 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arNavigationRegistrationUniqueScopeAlreadySet.md +5 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arNavigationRegistrationWithoutTransientUserActivation.md +6 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arNoRegisterOsSourceHeader.md +5 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arNoRegisterOsTriggerHeader.md +5 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arNoRegisterSourceHeader.md +5 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arNoRegisterTriggerHeader.md +5 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arNoWebOrOsSupport.md +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arOsSourceIgnored.md +18 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arOsTriggerIgnored.md +19 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arPermissionPolicyDisabled.md +8 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arSourceAndTriggerHeaders.md +9 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arSourceIgnored.md +13 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arTriggerIgnored.md +12 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arUntrustworthyReportingOrigin.md +10 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arWebAndOsHeaders.md +11 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/bounceTrackingMitigations.md +3 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/clientHintMetaTagAllowListInvalidOrigin.md +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/clientHintMetaTagModifiedHTML.md +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieCrossSiteRedirectDowngrade.md +12 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieExcludeBlockedWithinRelatedWebsiteSet.md +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieExcludeDomainNonAscii.md +11 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieExcludePortMismatch.md +8 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieExcludeSchemeMismatch.md +7 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieExcludeThirdPartyPhaseoutRead.md +6 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieExcludeThirdPartyPhaseoutSet.md +6 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieWarnDomainNonAscii.md +11 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieWarnMetadataGrantRead.md +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieWarnMetadataGrantSet.md +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieWarnThirdPartyPhaseoutRead.md +6 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieWarnThirdPartyPhaseoutSet.md +6 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsAllowCredentialsRequired.md +6 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsDisabledScheme.md +7 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsDisallowedByMode.md +7 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsHeaderDisallowedByPreflightResponse.md +5 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsInsecurePrivateNetwork.md +10 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsInvalidHeaderValues.md +7 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsLocalNetworkAccessPermissionDenied.md +19 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsMethodDisallowedByPreflightResponse.md +5 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsNoCorsRedirectModeNotFollow.md +5 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsOriginMismatch.md +6 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsPreflightAllowPrivateNetworkError.md +10 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsPreflightResponseInvalid.md +5 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsPrivateNetworkPermissionDenied.md +10 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsRedirectContainsCredentials.md +5 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsWildcardOriginNotAllowed.md +8 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cspEvalViolation.md +9 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cspInlineViolation.md +10 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cspTrustedTypesPolicyViolation.md +5 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cspTrustedTypesSinkViolation.md +8 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cspURLViolation.md +10 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/deprecation.md +3 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestAccountsHttpNotFound.md +1 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestAccountsInvalidResponse.md +1 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestAccountsNoResponse.md +1 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestApprovalDeclined.md +1 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestCanceled.md +1 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestClientMetadataHttpNotFound.md +1 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestClientMetadataInvalidResponse.md +1 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestClientMetadataNoResponse.md +1 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestErrorFetchingSignin.md +1 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestErrorIdToken.md +1 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestIdTokenHttpNotFound.md +1 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestIdTokenInvalidRequest.md +1 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestIdTokenInvalidResponse.md +1 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestIdTokenNoResponse.md +1 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestInvalidSigninResponse.md +1 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestManifestHttpNotFound.md +1 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestManifestInvalidResponse.md +1 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestManifestNoResponse.md +1 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestTooManyRequests.md +1 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestInvalidAccountsResponse.md +1 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestInvalidConfigOrWellKnown.md +1 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNoAccountSharingPermission.md +1 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNoApiPermission.md +1 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNoReturningUserFromFetchedAccounts.md +1 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotIframe.md +1 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotPotentiallyTrustworthy.md +1 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotSameOrigin.md +1 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotSignedInWithIdp.md +1 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/fetchingPartitionedBlobURL.md +7 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericFormAriaLabelledByToNonExistingIdError.md +8 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericFormAutocompleteAttributeEmptyError.md +5 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericFormDuplicateIdForInputError.md +5 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericFormEmptyIdAndNameAttributesForInputError.md +5 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericFormInputAssignedAutocompleteValueToIdOrNameAttributeError.md +5 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericFormInputHasWrongButWellIntendedAutocompleteValueError.md +5 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericFormInputWithNoLabelError.md +5 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericFormLabelForMatchesNonExistingIdError.md +5 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericFormLabelForNameError.md +5 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericFormLabelHasNeitherForNorNestedInputError.md +5 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericNavigationEntryMarkedSkippable.md +7 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericResponseWasBlockedByORB.md +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/heavyAd.md +10 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/mixedContent.md +5 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/navigatingPartitionedBlobURL.md +5 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/placeholderDescriptionForInvisibleIssues.md +3 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/propertyRuleInvalidNameIssue.md +3 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/propertyRuleIssue.md +7 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/selectElementAccessibilityDisallowedOptGroupChild.md +7 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/selectElementAccessibilityDisallowedSelectChild.md +7 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/selectElementAccessibilityInteractiveContentAttributesSelectDescendant.md +3 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/selectElementAccessibilityInteractiveContentLegendChild.md +3 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/selectElementAccessibilityInteractiveContentOptionChild.md +3 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/selectElementAccessibilityNonPhrasingContentOptionChild.md +3 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedArrayBuffer.md +7 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryUseErrorCrossOriginNoCorsRequest.md +1 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryUseErrorDictionaryLoadFailure.md +3 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryUseErrorMatchingDictionaryNotUsed.md +3 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryUseErrorUnexpectedContentDictionaryHeader.md +1 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorCossOriginNoCorsRequest.md +1 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorDisallowedBySettings.md +1 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorExpiredResponse.md +3 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorFeatureDisabled.md +3 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorInsufficientResources.md +1 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorInvalidMatchField.md +1 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorInvalidStructuredHeader.md +1 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorInvalidTTLField.md +1 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorNavigationRequest.md +3 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorNoMatchField.md +1 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonIntegerTTLField.md +1 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonListMatchDestField.md +1 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonSecureContext.md +3 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonStringIdField.md +1 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonStringInMatchDestList.md +1 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonStringMatchField.md +1 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonTokenTypeField.md +1 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorRequestAborted.md +1 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorShuttingDown.md +1 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorTooLongIdField.md +3 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorUnsupportedType.md +3 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriInvalidSignatureHeader.md +14 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriInvalidSignatureInputHeader.md +15 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriMissingSignatureHeader.md +8 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriMissingSignatureInputHeader.md +7 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureHeaderValueIsIncorrectLength.md +11 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureHeaderValueIsNotByteSequence.md +14 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureHeaderValueIsParameterized.md +15 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidComponentName.md +8 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidComponentType.md +13 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidDerivedComponentParameter.md +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidHeaderComponentParameter.md +5 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidParameter.md +11 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderKeyIdLength.md +12 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderMissingLabel.md +6 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderMissingRequiredParameters.md +8 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderValueMissingComponents.md +11 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderValueNotInnerList.md +11 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriValidationFailedIntegrityMismatch.md +10 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriValidationFailedInvalidLength.md +5 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriValidationFailedSignatureExpired.md +6 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriValidationFailedSignatureMismatch.md +11 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/stylesheetLateImport.md +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/stylesheetRequestFailed.md +3 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/summaryElementAccessibilityInteractiveContentSummaryDescendant.md +3 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/unencodedDigestIncorrectDigestLength.md +12 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/unencodedDigestIncorrectDigestType.md +17 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/unencodedDigestMalformedDictionary.md +14 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/unencodedDigestUnknownAlgorithm.md +15 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/issues_manager.js +35 -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/i18n/LICENSE +202 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/i18n/i18n-impl.js +46 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/i18n/i18n.js +6 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/i18n/localized-string-set.js +122 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/intl-messageformat/LICENSE +33 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/intl-messageformat/intl-messageformat.js +5 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/intl-messageformat/package/index.js +13 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/intl-messageformat/package/intl-messageformat.esm.js +1725 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/intl-messageformat/package/intl-messageformat.iife.js +1840 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/intl-messageformat/package/lib/index.js +10 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/intl-messageformat/package/lib/src/core.js +233 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/intl-messageformat/package/lib/src/error.js +48 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/intl-messageformat/package/lib/src/formatters.js +177 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/intl-messageformat/package/src/core.js +236 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/intl-messageformat/package/src/error.js +51 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/intl-messageformat/package/src/formatters.js +182 -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/marked/LICENSE +39 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/marked.js +2 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/bin/main.js +255 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/bin/marked.js +11 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/lib/marked.esm.js +2695 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/lib/marked.js +2233 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/lib/marked.umd.js +2719 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/src/Lexer.js +453 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/src/Parser.js +233 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/src/Renderer.js +137 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/src/Slugger.js +46 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/src/TextRenderer.js +34 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/src/Tokenizer.js +683 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/src/defaults.js +27 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/src/helpers.js +240 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/src/marked.js +318 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/src/rules.js +243 -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/node_modules/chrome-devtools-frontend/mcp/HostBindings.js +222 -0
- package/build/node_modules/chrome-devtools-frontend/mcp/mcp.js +35 -0
- package/build/src/index.js +0 -0
- package/package.json +30 -20
|
@@ -0,0 +1,349 @@
|
|
|
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
|
+
* This handler stores page load metrics, including web vitals,
|
|
6
|
+
* and exports them in the shape of a map with the following shape:
|
|
7
|
+
* Map(FrameId -> Map(navigationID -> metrics) )
|
|
8
|
+
*
|
|
9
|
+
* It also exports all markers in a trace in an array.
|
|
10
|
+
*
|
|
11
|
+
* Some metrics are taken directly from a page load events (AKA markers) like DCL.
|
|
12
|
+
* Others require processing multiple events to be determined, like CLS and TBT.
|
|
13
|
+
*/
|
|
14
|
+
import * as Platform from '../../../core/platform/platform.js';
|
|
15
|
+
import * as Helpers from '../helpers/helpers.js';
|
|
16
|
+
import * as Types from '../types/types.js';
|
|
17
|
+
import { data as metaHandlerData } from './MetaHandler.js';
|
|
18
|
+
/**
|
|
19
|
+
* This represents the metric scores for all navigations, for all frames in a trace.
|
|
20
|
+
* Given a frame id, the map points to another map from navigation id to metric scores.
|
|
21
|
+
* The metric scores include the event related to the metric as well as the data regarding
|
|
22
|
+
* the score itself.
|
|
23
|
+
*/
|
|
24
|
+
let metricScoresByFrameId = new Map();
|
|
25
|
+
/**
|
|
26
|
+
* Page load events with no associated duration that happened in the
|
|
27
|
+
* main frame.
|
|
28
|
+
*/
|
|
29
|
+
let allMarkerEvents = [];
|
|
30
|
+
export function reset() {
|
|
31
|
+
metricScoresByFrameId = new Map();
|
|
32
|
+
pageLoadEventsArray = [];
|
|
33
|
+
allMarkerEvents = [];
|
|
34
|
+
selectedLCPCandidateEvents = new Set();
|
|
35
|
+
}
|
|
36
|
+
let pageLoadEventsArray = [];
|
|
37
|
+
// Once we've found the LCP events in the trace we want to fetch their DOM Node
|
|
38
|
+
// from the backend. We could do this by parsing through our Map of frame =>
|
|
39
|
+
// navigation => metric, but it's easier to keep a set of LCP events. As we
|
|
40
|
+
// parse the trace, any time we store an LCP candidate as the potential LCP
|
|
41
|
+
// event, we store the event here. If we later find a new candidate in the
|
|
42
|
+
// trace, we store that and delete the prior event. When we've parsed the
|
|
43
|
+
// entire trace this set will contain all the LCP events that were used - e.g.
|
|
44
|
+
// the candidates that were the actual LCP events.
|
|
45
|
+
let selectedLCPCandidateEvents = new Set();
|
|
46
|
+
export function handleEvent(event) {
|
|
47
|
+
if (!Types.Events.eventIsPageLoadEvent(event)) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
pageLoadEventsArray.push(event);
|
|
51
|
+
}
|
|
52
|
+
function storePageLoadMetricAgainstNavigationId(navigation, event) {
|
|
53
|
+
const navigationId = navigation.args.data?.navigationId;
|
|
54
|
+
if (!navigationId) {
|
|
55
|
+
throw new Error('Navigation event unexpectedly had no navigation ID.');
|
|
56
|
+
}
|
|
57
|
+
const frameId = getFrameIdForPageLoadEvent(event);
|
|
58
|
+
const { rendererProcessesByFrame } = metaHandlerData();
|
|
59
|
+
// If either of these pieces of data do not exist, the most likely
|
|
60
|
+
// explanation is that the page load metric we found is for a frame/process
|
|
61
|
+
// combo that the MetaHandler discarded. This typically happens if we get a
|
|
62
|
+
// navigation event with an empty URL. Therefore, we will silently return and
|
|
63
|
+
// drop this metric. If we didn't care about the navigation, we certainly do
|
|
64
|
+
// not need to care about metrics for that navigation.
|
|
65
|
+
const rendererProcessesInFrame = rendererProcessesByFrame.get(frameId);
|
|
66
|
+
if (!rendererProcessesInFrame) {
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
const processData = rendererProcessesInFrame.get(event.pid);
|
|
70
|
+
if (!processData) {
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
if (Types.Events.isNavigationStart(event)) {
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
if (Types.Events.isFirstContentfulPaint(event)) {
|
|
77
|
+
const fcpTime = Types.Timing.Micro(event.ts - navigation.ts);
|
|
78
|
+
const classification = scoreClassificationForFirstContentfulPaint(fcpTime);
|
|
79
|
+
const metricScore = { event, metricName: "FCP" /* MetricName.FCP */, classification, navigation, timing: fcpTime };
|
|
80
|
+
storeMetricScore(frameId, navigationId, metricScore);
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
if (Types.Events.isFirstPaint(event)) {
|
|
84
|
+
const paintTime = Types.Timing.Micro(event.ts - navigation.ts);
|
|
85
|
+
const classification = "unclassified" /* ScoreClassification.UNCLASSIFIED */;
|
|
86
|
+
const metricScore = { event, metricName: "FP" /* MetricName.FP */, classification, navigation, timing: paintTime };
|
|
87
|
+
storeMetricScore(frameId, navigationId, metricScore);
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
if (Types.Events.isMarkDOMContent(event)) {
|
|
91
|
+
const dclTime = Types.Timing.Micro(event.ts - navigation.ts);
|
|
92
|
+
const metricScore = {
|
|
93
|
+
event,
|
|
94
|
+
metricName: "DCL" /* MetricName.DCL */,
|
|
95
|
+
classification: scoreClassificationForDOMContentLoaded(dclTime),
|
|
96
|
+
navigation,
|
|
97
|
+
timing: dclTime,
|
|
98
|
+
};
|
|
99
|
+
storeMetricScore(frameId, navigationId, metricScore);
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
if (Types.Events.isInteractiveTime(event)) {
|
|
103
|
+
const ttiValue = Types.Timing.Micro(event.ts - navigation.ts);
|
|
104
|
+
const tti = {
|
|
105
|
+
event,
|
|
106
|
+
metricName: "TTI" /* MetricName.TTI */,
|
|
107
|
+
classification: scoreClassificationForTimeToInteractive(ttiValue),
|
|
108
|
+
navigation,
|
|
109
|
+
timing: ttiValue,
|
|
110
|
+
};
|
|
111
|
+
storeMetricScore(frameId, navigationId, tti);
|
|
112
|
+
const tbtValue = Helpers.Timing.milliToMicro(Types.Timing.Milli(event.args.args.total_blocking_time_ms));
|
|
113
|
+
const tbt = {
|
|
114
|
+
event,
|
|
115
|
+
metricName: "TBT" /* MetricName.TBT */,
|
|
116
|
+
classification: scoreClassificationForTotalBlockingTime(tbtValue),
|
|
117
|
+
navigation,
|
|
118
|
+
timing: tbtValue,
|
|
119
|
+
};
|
|
120
|
+
storeMetricScore(frameId, navigationId, tbt);
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
if (Types.Events.isMarkLoad(event)) {
|
|
124
|
+
const loadTime = Types.Timing.Micro(event.ts - navigation.ts);
|
|
125
|
+
const metricScore = {
|
|
126
|
+
event,
|
|
127
|
+
metricName: "L" /* MetricName.L */,
|
|
128
|
+
classification: "unclassified" /* ScoreClassification.UNCLASSIFIED */,
|
|
129
|
+
navigation,
|
|
130
|
+
timing: loadTime,
|
|
131
|
+
};
|
|
132
|
+
storeMetricScore(frameId, navigationId, metricScore);
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
if (Types.Events.isLargestContentfulPaintCandidate(event)) {
|
|
136
|
+
const candidateIndex = event.args.data?.candidateIndex;
|
|
137
|
+
if (!candidateIndex) {
|
|
138
|
+
throw new Error('Largest Contentful Paint unexpectedly had no candidateIndex.');
|
|
139
|
+
}
|
|
140
|
+
const lcpTime = Types.Timing.Micro(event.ts - navigation.ts);
|
|
141
|
+
const lcp = {
|
|
142
|
+
event,
|
|
143
|
+
metricName: "LCP" /* MetricName.LCP */,
|
|
144
|
+
classification: scoreClassificationForLargestContentfulPaint(lcpTime),
|
|
145
|
+
navigation,
|
|
146
|
+
timing: lcpTime,
|
|
147
|
+
};
|
|
148
|
+
const metricsByNavigation = Platform.MapUtilities.getWithDefault(metricScoresByFrameId, frameId, () => new Map());
|
|
149
|
+
const metrics = Platform.MapUtilities.getWithDefault(metricsByNavigation, navigationId, () => new Map());
|
|
150
|
+
const lastLCPCandidate = metrics.get("LCP" /* MetricName.LCP */);
|
|
151
|
+
if (lastLCPCandidate === undefined) {
|
|
152
|
+
selectedLCPCandidateEvents.add(lcp.event);
|
|
153
|
+
storeMetricScore(frameId, navigationId, lcp);
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
const lastLCPCandidateEvent = lastLCPCandidate.event;
|
|
157
|
+
if (!Types.Events.isLargestContentfulPaintCandidate(lastLCPCandidateEvent)) {
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
const lastCandidateIndex = lastLCPCandidateEvent.args.data?.candidateIndex;
|
|
161
|
+
if (!lastCandidateIndex) {
|
|
162
|
+
// lastCandidateIndex cannot be undefined because we don't store candidates with
|
|
163
|
+
// with an undefined candidateIndex value. This check is only to make TypeScript
|
|
164
|
+
// treat the field as not undefined below.
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
if (lastCandidateIndex < candidateIndex) {
|
|
168
|
+
selectedLCPCandidateEvents.delete(lastLCPCandidateEvent);
|
|
169
|
+
selectedLCPCandidateEvents.add(lcp.event);
|
|
170
|
+
storeMetricScore(frameId, navigationId, lcp);
|
|
171
|
+
}
|
|
172
|
+
return;
|
|
173
|
+
}
|
|
174
|
+
if (Types.Events.isLayoutShift(event)) {
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
return Platform.assertNever(event, `Unexpected event type: ${event}`);
|
|
178
|
+
}
|
|
179
|
+
function storeMetricScore(frameId, navigationId, metricScore) {
|
|
180
|
+
const metricsByNavigation = Platform.MapUtilities.getWithDefault(metricScoresByFrameId, frameId, () => new Map());
|
|
181
|
+
const metrics = Platform.MapUtilities.getWithDefault(metricsByNavigation, navigationId, () => new Map());
|
|
182
|
+
// If an entry with that metric name is present, delete it so that the new entry that
|
|
183
|
+
// will replace it is added at the end of the map. This way we guarantee the map entries
|
|
184
|
+
// are ordered in ASC manner by timestamp.
|
|
185
|
+
metrics.delete(metricScore.metricName);
|
|
186
|
+
metrics.set(metricScore.metricName, metricScore);
|
|
187
|
+
}
|
|
188
|
+
export function getFrameIdForPageLoadEvent(event) {
|
|
189
|
+
if (Types.Events.isFirstContentfulPaint(event) || Types.Events.isInteractiveTime(event) ||
|
|
190
|
+
Types.Events.isLargestContentfulPaintCandidate(event) || Types.Events.isNavigationStart(event) ||
|
|
191
|
+
Types.Events.isLayoutShift(event) || Types.Events.isFirstPaint(event)) {
|
|
192
|
+
return event.args.frame;
|
|
193
|
+
}
|
|
194
|
+
if (Types.Events.isMarkDOMContent(event) || Types.Events.isMarkLoad(event)) {
|
|
195
|
+
const frameId = event.args.data?.frame;
|
|
196
|
+
if (!frameId) {
|
|
197
|
+
throw new Error('MarkDOMContent unexpectedly had no frame ID.');
|
|
198
|
+
}
|
|
199
|
+
return frameId;
|
|
200
|
+
}
|
|
201
|
+
Platform.assertNever(event, `Unexpected event type: ${event}`);
|
|
202
|
+
}
|
|
203
|
+
function getNavigationForPageLoadEvent(event) {
|
|
204
|
+
if (Types.Events.isFirstContentfulPaint(event) || Types.Events.isLargestContentfulPaintCandidate(event) ||
|
|
205
|
+
Types.Events.isFirstPaint(event)) {
|
|
206
|
+
const navigationId = event.args.data?.navigationId;
|
|
207
|
+
if (!navigationId) {
|
|
208
|
+
throw new Error('Trace event unexpectedly had no navigation ID.');
|
|
209
|
+
}
|
|
210
|
+
const { navigationsByNavigationId } = metaHandlerData();
|
|
211
|
+
const navigation = navigationsByNavigationId.get(navigationId);
|
|
212
|
+
if (!navigation) {
|
|
213
|
+
// This event's navigation has been filtered out by the meta handler as a noise event.
|
|
214
|
+
return null;
|
|
215
|
+
}
|
|
216
|
+
return navigation;
|
|
217
|
+
}
|
|
218
|
+
if (Types.Events.isMarkDOMContent(event) || Types.Events.isInteractiveTime(event) ||
|
|
219
|
+
Types.Events.isLayoutShift(event) || Types.Events.isMarkLoad(event)) {
|
|
220
|
+
const frameId = getFrameIdForPageLoadEvent(event);
|
|
221
|
+
const { navigationsByFrameId } = metaHandlerData();
|
|
222
|
+
return Helpers.Trace.getNavigationForTraceEvent(event, frameId, navigationsByFrameId);
|
|
223
|
+
}
|
|
224
|
+
if (Types.Events.isNavigationStart(event)) {
|
|
225
|
+
// We don't want to compute metrics of the navigation relative to itself, so we'll avoid avoid all that.
|
|
226
|
+
return null;
|
|
227
|
+
}
|
|
228
|
+
return Platform.assertNever(event, `Unexpected event type: ${event}`);
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Classifications sourced from
|
|
232
|
+
* https://web.dev/fcp/
|
|
233
|
+
*/
|
|
234
|
+
export function scoreClassificationForFirstContentfulPaint(fcpScoreInMicroseconds) {
|
|
235
|
+
const FCP_GOOD_TIMING = Helpers.Timing.secondsToMicro(Types.Timing.Seconds(1.8));
|
|
236
|
+
const FCP_MEDIUM_TIMING = Helpers.Timing.secondsToMicro(Types.Timing.Seconds(3.0));
|
|
237
|
+
let scoreClassification = "bad" /* ScoreClassification.BAD */;
|
|
238
|
+
if (fcpScoreInMicroseconds <= FCP_MEDIUM_TIMING) {
|
|
239
|
+
scoreClassification = "ok" /* ScoreClassification.OK */;
|
|
240
|
+
}
|
|
241
|
+
if (fcpScoreInMicroseconds <= FCP_GOOD_TIMING) {
|
|
242
|
+
scoreClassification = "good" /* ScoreClassification.GOOD */;
|
|
243
|
+
}
|
|
244
|
+
return scoreClassification;
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Classifications sourced from
|
|
248
|
+
* https://web.dev/interactive/#how-lighthouse-determines-your-tti-score
|
|
249
|
+
*/
|
|
250
|
+
export function scoreClassificationForTimeToInteractive(ttiTimeInMicroseconds) {
|
|
251
|
+
const TTI_GOOD_TIMING = Helpers.Timing.secondsToMicro(Types.Timing.Seconds(3.8));
|
|
252
|
+
const TTI_MEDIUM_TIMING = Helpers.Timing.secondsToMicro(Types.Timing.Seconds(7.3));
|
|
253
|
+
let scoreClassification = "bad" /* ScoreClassification.BAD */;
|
|
254
|
+
if (ttiTimeInMicroseconds <= TTI_MEDIUM_TIMING) {
|
|
255
|
+
scoreClassification = "ok" /* ScoreClassification.OK */;
|
|
256
|
+
}
|
|
257
|
+
if (ttiTimeInMicroseconds <= TTI_GOOD_TIMING) {
|
|
258
|
+
scoreClassification = "good" /* ScoreClassification.GOOD */;
|
|
259
|
+
}
|
|
260
|
+
return scoreClassification;
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Classifications sourced from
|
|
264
|
+
* https://web.dev/lcp/#what-is-lcp
|
|
265
|
+
*/
|
|
266
|
+
export function scoreClassificationForLargestContentfulPaint(lcpTimeInMicroseconds) {
|
|
267
|
+
const LCP_GOOD_TIMING = Helpers.Timing.secondsToMicro(Types.Timing.Seconds(2.5));
|
|
268
|
+
const LCP_MEDIUM_TIMING = Helpers.Timing.secondsToMicro(Types.Timing.Seconds(4));
|
|
269
|
+
let scoreClassification = "bad" /* ScoreClassification.BAD */;
|
|
270
|
+
if (lcpTimeInMicroseconds <= LCP_MEDIUM_TIMING) {
|
|
271
|
+
scoreClassification = "ok" /* ScoreClassification.OK */;
|
|
272
|
+
}
|
|
273
|
+
if (lcpTimeInMicroseconds <= LCP_GOOD_TIMING) {
|
|
274
|
+
scoreClassification = "good" /* ScoreClassification.GOOD */;
|
|
275
|
+
}
|
|
276
|
+
return scoreClassification;
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* DCL does not have a classification.
|
|
280
|
+
*/
|
|
281
|
+
export function scoreClassificationForDOMContentLoaded(_dclTimeInMicroseconds) {
|
|
282
|
+
return "unclassified" /* ScoreClassification.UNCLASSIFIED */;
|
|
283
|
+
}
|
|
284
|
+
/**
|
|
285
|
+
* Classifications sourced from
|
|
286
|
+
* https://web.dev/lighthouse-total-blocking-#time/
|
|
287
|
+
*/
|
|
288
|
+
export function scoreClassificationForTotalBlockingTime(tbtTimeInMicroseconds) {
|
|
289
|
+
const TBT_GOOD_TIMING = Helpers.Timing.milliToMicro(Types.Timing.Milli(200));
|
|
290
|
+
const TBT_MEDIUM_TIMING = Helpers.Timing.milliToMicro(Types.Timing.Milli(600));
|
|
291
|
+
let scoreClassification = "bad" /* ScoreClassification.BAD */;
|
|
292
|
+
if (tbtTimeInMicroseconds <= TBT_MEDIUM_TIMING) {
|
|
293
|
+
scoreClassification = "ok" /* ScoreClassification.OK */;
|
|
294
|
+
}
|
|
295
|
+
if (tbtTimeInMicroseconds <= TBT_GOOD_TIMING) {
|
|
296
|
+
scoreClassification = "good" /* ScoreClassification.GOOD */;
|
|
297
|
+
}
|
|
298
|
+
return scoreClassification;
|
|
299
|
+
}
|
|
300
|
+
/**
|
|
301
|
+
* Gets all the Largest Contentful Paint scores of all the frames in the
|
|
302
|
+
* trace.
|
|
303
|
+
*/
|
|
304
|
+
function gatherFinalLCPEvents() {
|
|
305
|
+
const allFinalLCPEvents = [];
|
|
306
|
+
const dataForAllFrames = [...metricScoresByFrameId.values()];
|
|
307
|
+
const dataForAllNavigations = dataForAllFrames.flatMap(frameData => [...frameData.values()]);
|
|
308
|
+
for (let i = 0; i < dataForAllNavigations.length; i++) {
|
|
309
|
+
const navigationData = dataForAllNavigations[i];
|
|
310
|
+
const lcpInNavigation = navigationData.get("LCP" /* MetricName.LCP */);
|
|
311
|
+
if (!lcpInNavigation?.event) {
|
|
312
|
+
continue;
|
|
313
|
+
}
|
|
314
|
+
allFinalLCPEvents.push(lcpInNavigation.event);
|
|
315
|
+
}
|
|
316
|
+
return allFinalLCPEvents;
|
|
317
|
+
}
|
|
318
|
+
export async function finalize() {
|
|
319
|
+
pageLoadEventsArray.sort((a, b) => a.ts - b.ts);
|
|
320
|
+
for (const pageLoadEvent of pageLoadEventsArray) {
|
|
321
|
+
const navigation = getNavigationForPageLoadEvent(pageLoadEvent);
|
|
322
|
+
if (navigation) {
|
|
323
|
+
// Event's navigation was not filtered out as noise.
|
|
324
|
+
storePageLoadMetricAgainstNavigationId(navigation, pageLoadEvent);
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
// NOTE: if you are looking for the TBT calculation, it has temporarily been
|
|
328
|
+
// removed. See crbug.com/1424335 for details.
|
|
329
|
+
const allFinalLCPEvents = gatherFinalLCPEvents();
|
|
330
|
+
const mainFrame = metaHandlerData().mainFrameId;
|
|
331
|
+
// Filter out LCP candidates to use only definitive LCP values
|
|
332
|
+
const allEventsButLCP = pageLoadEventsArray.filter(event => !Types.Events.isLargestContentfulPaintCandidate(event));
|
|
333
|
+
const markerEvents = [...allFinalLCPEvents, ...allEventsButLCP].filter(Types.Events.isMarkerEvent);
|
|
334
|
+
// Filter by main frame and sort.
|
|
335
|
+
allMarkerEvents =
|
|
336
|
+
markerEvents.filter(event => getFrameIdForPageLoadEvent(event) === mainFrame).sort((a, b) => a.ts - b.ts);
|
|
337
|
+
}
|
|
338
|
+
export function data() {
|
|
339
|
+
return {
|
|
340
|
+
metricScoresByFrameId,
|
|
341
|
+
allMarkerEvents,
|
|
342
|
+
};
|
|
343
|
+
}
|
|
344
|
+
export function deps() {
|
|
345
|
+
return ['Meta'];
|
|
346
|
+
}
|
|
347
|
+
export function metricIsLCP(metric) {
|
|
348
|
+
return metric.metricName === "LCP" /* MetricName.LCP */;
|
|
349
|
+
}
|
|
@@ -0,0 +1,346 @@
|
|
|
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 Platform from '../../../core/platform/platform.js';
|
|
5
|
+
import * as Helpers from '../helpers/helpers.js';
|
|
6
|
+
import * as Types from '../types/types.js';
|
|
7
|
+
import { data as auctionWorkletsData } from './AuctionWorkletsHandler.js';
|
|
8
|
+
import * as HandlerHelpers from './helpers.js';
|
|
9
|
+
import { data as metaHandlerData } from './MetaHandler.js';
|
|
10
|
+
import { data as networkRequestHandlerData } from './NetworkRequestsHandler.js';
|
|
11
|
+
import { data as samplesHandlerData } from './SamplesHandler.js';
|
|
12
|
+
/**
|
|
13
|
+
* This handler builds the hierarchy of trace events and profile calls
|
|
14
|
+
* on each thread on each process.
|
|
15
|
+
*
|
|
16
|
+
* Throughout the code, trace events and profile calls are referred to
|
|
17
|
+
* as "entries", but note they are different types of data. Trace events
|
|
18
|
+
* come directly from the backend and it's the type the engine commonly
|
|
19
|
+
* refers to. Profile calls on the other hand are built in the frontend,
|
|
20
|
+
* and, for compatibility purposes, typed as an extension to the trace
|
|
21
|
+
* event type.
|
|
22
|
+
*/
|
|
23
|
+
let processes = new Map();
|
|
24
|
+
let entityMappings = {
|
|
25
|
+
eventsByEntity: new Map(),
|
|
26
|
+
entityByEvent: new Map(),
|
|
27
|
+
createdEntityCache: new Map(),
|
|
28
|
+
entityByUrlCache: new Map(),
|
|
29
|
+
};
|
|
30
|
+
// We track the compositor tile worker thread name events so that at the end we
|
|
31
|
+
// can return these keyed by the process ID. These are used in the frontend to
|
|
32
|
+
// show the user the rasterization thread(s) on the main frame as tracks.
|
|
33
|
+
let compositorTileWorkers = Array();
|
|
34
|
+
let entryToNode = new Map();
|
|
35
|
+
let completeEventStack = [];
|
|
36
|
+
let config = Types.Configuration.defaults();
|
|
37
|
+
const makeRendererProcess = () => ({
|
|
38
|
+
url: null,
|
|
39
|
+
isOnMainFrame: false,
|
|
40
|
+
threads: new Map(),
|
|
41
|
+
});
|
|
42
|
+
const makeRendererThread = () => ({
|
|
43
|
+
name: null,
|
|
44
|
+
entries: [],
|
|
45
|
+
profileCalls: [],
|
|
46
|
+
layoutEvents: [],
|
|
47
|
+
recalcStyleEvents: [],
|
|
48
|
+
});
|
|
49
|
+
const getOrCreateRendererProcess = (processes, pid) => {
|
|
50
|
+
return Platform.MapUtilities.getWithDefault(processes, pid, makeRendererProcess);
|
|
51
|
+
};
|
|
52
|
+
const getOrCreateRendererThread = (process, tid) => {
|
|
53
|
+
return Platform.MapUtilities.getWithDefault(process.threads, tid, makeRendererThread);
|
|
54
|
+
};
|
|
55
|
+
export function handleUserConfig(userConfig) {
|
|
56
|
+
config = userConfig;
|
|
57
|
+
}
|
|
58
|
+
export function reset() {
|
|
59
|
+
processes = new Map();
|
|
60
|
+
entryToNode = new Map();
|
|
61
|
+
entityMappings = {
|
|
62
|
+
eventsByEntity: new Map(),
|
|
63
|
+
entityByEvent: new Map(),
|
|
64
|
+
createdEntityCache: new Map(),
|
|
65
|
+
entityByUrlCache: new Map(),
|
|
66
|
+
};
|
|
67
|
+
completeEventStack = [];
|
|
68
|
+
compositorTileWorkers = [];
|
|
69
|
+
}
|
|
70
|
+
export function handleEvent(event) {
|
|
71
|
+
if (Types.Events.isThreadName(event) && event.args.name?.startsWith('CompositorTileWorker')) {
|
|
72
|
+
compositorTileWorkers.push({
|
|
73
|
+
pid: event.pid,
|
|
74
|
+
tid: event.tid,
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
if (Types.Events.isBegin(event) || Types.Events.isEnd(event)) {
|
|
78
|
+
const process = getOrCreateRendererProcess(processes, event.pid);
|
|
79
|
+
const thread = getOrCreateRendererThread(process, event.tid);
|
|
80
|
+
const completeEvent = makeCompleteEvent(event);
|
|
81
|
+
if (!completeEvent) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
thread.entries.push(completeEvent);
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
if (Types.Events.isInstant(event) || Types.Events.isComplete(event)) {
|
|
88
|
+
const process = getOrCreateRendererProcess(processes, event.pid);
|
|
89
|
+
const thread = getOrCreateRendererThread(process, event.tid);
|
|
90
|
+
thread.entries.push(event);
|
|
91
|
+
}
|
|
92
|
+
if (Types.Events.isLayout(event)) {
|
|
93
|
+
const process = getOrCreateRendererProcess(processes, event.pid);
|
|
94
|
+
const thread = getOrCreateRendererThread(process, event.tid);
|
|
95
|
+
thread.layoutEvents.push(event);
|
|
96
|
+
}
|
|
97
|
+
if (Types.Events.isRecalcStyle(event)) {
|
|
98
|
+
const process = getOrCreateRendererProcess(processes, event.pid);
|
|
99
|
+
const thread = getOrCreateRendererThread(process, event.tid);
|
|
100
|
+
thread.recalcStyleEvents.push(event);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
export async function finalize() {
|
|
104
|
+
const { mainFrameId, rendererProcessesByFrame, threadsInProcess } = metaHandlerData();
|
|
105
|
+
entityMappings = networkRequestHandlerData().entityMappings;
|
|
106
|
+
assignMeta(processes, mainFrameId, rendererProcessesByFrame, threadsInProcess);
|
|
107
|
+
sanitizeProcesses(processes);
|
|
108
|
+
buildHierarchy(processes);
|
|
109
|
+
sanitizeThreads(processes);
|
|
110
|
+
}
|
|
111
|
+
export function data() {
|
|
112
|
+
return {
|
|
113
|
+
processes,
|
|
114
|
+
compositorTileWorkers: gatherCompositorThreads(),
|
|
115
|
+
entryToNode,
|
|
116
|
+
entityMappings: {
|
|
117
|
+
entityByEvent: entityMappings.entityByEvent,
|
|
118
|
+
eventsByEntity: entityMappings.eventsByEntity,
|
|
119
|
+
createdEntityCache: entityMappings.createdEntityCache,
|
|
120
|
+
entityByUrlCache: entityMappings.entityByUrlCache,
|
|
121
|
+
},
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
function gatherCompositorThreads() {
|
|
125
|
+
const threadsByProcess = new Map();
|
|
126
|
+
for (const worker of compositorTileWorkers) {
|
|
127
|
+
const byProcess = threadsByProcess.get(worker.pid) || [];
|
|
128
|
+
byProcess.push(worker.tid);
|
|
129
|
+
threadsByProcess.set(worker.pid, byProcess);
|
|
130
|
+
}
|
|
131
|
+
return threadsByProcess;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Steps through all the renderer processes we've located so far in the meta
|
|
135
|
+
* handler, obtaining their URL, checking whether they are the main frame, and
|
|
136
|
+
* collecting each one of their threads' name. This meta handler's data is
|
|
137
|
+
* assigned to the renderer handler's data.
|
|
138
|
+
*/
|
|
139
|
+
export function assignMeta(processes, mainFrameId, rendererProcessesByFrame, threadsInProcess) {
|
|
140
|
+
assignOrigin(processes, rendererProcessesByFrame);
|
|
141
|
+
assignIsMainFrame(processes, mainFrameId, rendererProcessesByFrame);
|
|
142
|
+
assignThreadName(processes, threadsInProcess);
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Assigns origins to all threads in all processes.
|
|
146
|
+
* @see assignMeta
|
|
147
|
+
*/
|
|
148
|
+
export function assignOrigin(processes, rendererProcessesByFrame) {
|
|
149
|
+
for (const renderProcessesByPid of rendererProcessesByFrame.values()) {
|
|
150
|
+
for (const [pid, processWindows] of renderProcessesByPid) {
|
|
151
|
+
for (const processInfo of processWindows.flat()) {
|
|
152
|
+
const process = getOrCreateRendererProcess(processes, pid);
|
|
153
|
+
// Sometimes a single process is responsible with rendering multiple
|
|
154
|
+
// frames at the same time. For example, see https://crbug.com/1334563.
|
|
155
|
+
// When this happens, we'd still like to assign a single url per process
|
|
156
|
+
// so: 1) use the first frame rendered by this process as the url source
|
|
157
|
+
// and 2) if the last url is "about:blank", use the next frame's url,
|
|
158
|
+
// data from about:blank is irrelevant.
|
|
159
|
+
if (process.url === null || process.url === 'about:blank') {
|
|
160
|
+
// If we are here, it's because we care about this process and the URL. But before we store
|
|
161
|
+
// it, we check if it is a valid URL by trying to create a URL object. If it isn't, we won't
|
|
162
|
+
// set it, and this process will be filtered out later.
|
|
163
|
+
try {
|
|
164
|
+
new URL(processInfo.frame.url);
|
|
165
|
+
process.url = processInfo.frame.url;
|
|
166
|
+
}
|
|
167
|
+
catch {
|
|
168
|
+
process.url = null;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Assigns whether or not a thread is the main frame to all threads in all processes.
|
|
177
|
+
* @see assignMeta
|
|
178
|
+
*/
|
|
179
|
+
export function assignIsMainFrame(processes, mainFrameId, rendererProcessesByFrame) {
|
|
180
|
+
for (const [frameId, renderProcessesByPid] of rendererProcessesByFrame) {
|
|
181
|
+
for (const [pid] of renderProcessesByPid) {
|
|
182
|
+
const process = getOrCreateRendererProcess(processes, pid);
|
|
183
|
+
// We have this go in one direction; once a renderer has been flagged as
|
|
184
|
+
// being on the main frame, we don't unset it to false if were to show up
|
|
185
|
+
// in a subframe. Equally, if we already saw this renderer in a subframe,
|
|
186
|
+
// but it becomes the main frame, the flag would get updated.
|
|
187
|
+
if (frameId === mainFrameId) {
|
|
188
|
+
process.isOnMainFrame = true;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Assigns the thread name to all threads in all processes.
|
|
195
|
+
* @see assignMeta
|
|
196
|
+
*/
|
|
197
|
+
export function assignThreadName(processes, threadsInProcess) {
|
|
198
|
+
for (const [pid, process] of processes) {
|
|
199
|
+
for (const [tid, threadInfo] of threadsInProcess.get(pid) ?? []) {
|
|
200
|
+
const thread = getOrCreateRendererThread(process, tid);
|
|
201
|
+
thread.name = threadInfo?.args.name ?? `${tid}`;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Removes unneeded trace data opportunistically stored while handling events.
|
|
207
|
+
* This currently does the following:
|
|
208
|
+
* - Deletes processes with an unknown origin.
|
|
209
|
+
*/
|
|
210
|
+
export function sanitizeProcesses(processes) {
|
|
211
|
+
const auctionWorklets = auctionWorkletsData().worklets;
|
|
212
|
+
const metaData = metaHandlerData();
|
|
213
|
+
if (metaData.traceIsGeneric) {
|
|
214
|
+
return;
|
|
215
|
+
}
|
|
216
|
+
for (const [pid, process] of processes) {
|
|
217
|
+
// If the process had no url, or if it had a malformed url that could not be
|
|
218
|
+
// parsed for some reason, or if it's an "about:" origin, delete it.
|
|
219
|
+
// This is done because we don't really care about processes for which we
|
|
220
|
+
// can't provide actionable insights to the user (e.g. about:blank pages).
|
|
221
|
+
//
|
|
222
|
+
// There is one exception; AuctionWorklet processes get parsed in a
|
|
223
|
+
// separate handler, so at this point we check to see if the process has
|
|
224
|
+
// been found by the AuctionWorkletsHandler, and if so we update the URL.
|
|
225
|
+
// This ensures that we keep this process around and do not drop it due to
|
|
226
|
+
// the lack of a URL.
|
|
227
|
+
if (process.url === null) {
|
|
228
|
+
const maybeWorklet = auctionWorklets.get(pid);
|
|
229
|
+
if (maybeWorklet) {
|
|
230
|
+
process.url = maybeWorklet.host;
|
|
231
|
+
}
|
|
232
|
+
else {
|
|
233
|
+
processes.delete(pid);
|
|
234
|
+
}
|
|
235
|
+
continue;
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Removes unneeded trace data opportunistically stored while handling events.
|
|
241
|
+
* This currently does the following:
|
|
242
|
+
* - Deletes threads with no roots.
|
|
243
|
+
*/
|
|
244
|
+
export function sanitizeThreads(processes) {
|
|
245
|
+
for (const [, process] of processes) {
|
|
246
|
+
for (const [tid, thread] of process.threads) {
|
|
247
|
+
// If the thread has no roots, delete it. Otherwise, there's going to
|
|
248
|
+
// be space taken, even though nothing is rendered in the track manager.
|
|
249
|
+
if (!thread.tree?.roots.size) {
|
|
250
|
+
process.threads.delete(tid);
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Creates a hierarchical structure from the trace events. Each thread in each
|
|
257
|
+
* process will contribute to their own individual hierarchy.
|
|
258
|
+
*
|
|
259
|
+
* The trace data comes in as a contiguous array of events, against which we
|
|
260
|
+
* make a couple of assumptions:
|
|
261
|
+
*
|
|
262
|
+
* 1. Events are temporally-ordered in terms of start time (though they're
|
|
263
|
+
* not necessarily ordered as such in the data stream).
|
|
264
|
+
* 2. If event B's start and end times are within event A's time boundaries
|
|
265
|
+
* we assume that A is the parent of B.
|
|
266
|
+
*
|
|
267
|
+
* Therefore we expect to reformulate something like:
|
|
268
|
+
*
|
|
269
|
+
* [ Task A ][ Task B ][ Task C ][ Task D ][ Task E ]
|
|
270
|
+
*
|
|
271
|
+
* Into something hierarchically-arranged like below:
|
|
272
|
+
*
|
|
273
|
+
* |------------- Task A -------------||-- Task E --|
|
|
274
|
+
* |-- Task B --||-- Task D --|
|
|
275
|
+
* |- Task C -|
|
|
276
|
+
*/
|
|
277
|
+
export function buildHierarchy(processes, options) {
|
|
278
|
+
const samplesData = samplesHandlerData();
|
|
279
|
+
for (const [pid, process] of processes) {
|
|
280
|
+
for (const [tid, thread] of process.threads) {
|
|
281
|
+
if (!thread.entries.length) {
|
|
282
|
+
thread.tree = Helpers.TreeHelpers.makeEmptyTraceEntryTree();
|
|
283
|
+
continue;
|
|
284
|
+
}
|
|
285
|
+
// Step 1. Massage the data.
|
|
286
|
+
Helpers.Trace.sortTraceEventsInPlace(thread.entries);
|
|
287
|
+
// Step 2. Inject profile calls from samples
|
|
288
|
+
const samplesDataForThread = samplesData.profilesInProcess.get(pid)?.get(tid);
|
|
289
|
+
if (samplesDataForThread) {
|
|
290
|
+
const cpuProfile = samplesDataForThread.parsedProfile;
|
|
291
|
+
const samplesIntegrator = cpuProfile &&
|
|
292
|
+
new Helpers.SamplesIntegrator.SamplesIntegrator(cpuProfile, samplesDataForThread.profileId, pid, tid, config);
|
|
293
|
+
const profileCalls = samplesIntegrator?.buildProfileCalls(thread.entries);
|
|
294
|
+
if (samplesIntegrator && profileCalls) {
|
|
295
|
+
thread.entries = Helpers.Trace.mergeEventsInOrder(thread.entries, profileCalls);
|
|
296
|
+
thread.profileCalls = profileCalls;
|
|
297
|
+
// We'll also inject the instant JSSample events (in debug mode only)
|
|
298
|
+
const jsSamples = samplesIntegrator.jsSampleEvents;
|
|
299
|
+
if (jsSamples.length) {
|
|
300
|
+
thread.entries = Helpers.Trace.mergeEventsInOrder(thread.entries, jsSamples);
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
// Step 3. Build the tree.
|
|
305
|
+
const treeData = Helpers.TreeHelpers.treify(thread.entries, options);
|
|
306
|
+
thread.tree = treeData.tree;
|
|
307
|
+
// Update the entryToNode map with the entries from this thread
|
|
308
|
+
for (const [entry, node] of treeData.entryToNode) {
|
|
309
|
+
entryToNode.set(entry, node);
|
|
310
|
+
// Entity mapping is unrelated to the tree, but calling here as we need to call on every node anyway.
|
|
311
|
+
HandlerHelpers.addEventToEntityMapping(entry, entityMappings);
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
export function makeCompleteEvent(event) {
|
|
317
|
+
if (Types.Events.isEnd(event)) {
|
|
318
|
+
// Quietly ignore unbalanced close events, they're legit (we could
|
|
319
|
+
// have missed start one).
|
|
320
|
+
const beginEvent = completeEventStack.pop();
|
|
321
|
+
if (!beginEvent) {
|
|
322
|
+
return null;
|
|
323
|
+
}
|
|
324
|
+
if (beginEvent.name !== event.name || beginEvent.cat !== event.cat) {
|
|
325
|
+
console.error('Begin/End events mismatch at ' + beginEvent.ts + ' (' + beginEvent.name + ') vs. ' + event.ts + ' (' +
|
|
326
|
+
event.name + ')');
|
|
327
|
+
return null;
|
|
328
|
+
}
|
|
329
|
+
// Update the begin event's duration using the timestamp of the end
|
|
330
|
+
// event.
|
|
331
|
+
beginEvent.dur = Types.Timing.Micro(event.ts - beginEvent.ts);
|
|
332
|
+
return null;
|
|
333
|
+
}
|
|
334
|
+
// Create a synthetic event using the begin event, when we find the
|
|
335
|
+
// matching end event later we will update its duration.
|
|
336
|
+
const syntheticComplete = {
|
|
337
|
+
...event,
|
|
338
|
+
ph: "X" /* Types.Events.Phase.COMPLETE */,
|
|
339
|
+
dur: Types.Timing.Micro(0),
|
|
340
|
+
};
|
|
341
|
+
completeEventStack.push(syntheticComplete);
|
|
342
|
+
return syntheticComplete;
|
|
343
|
+
}
|
|
344
|
+
export function deps() {
|
|
345
|
+
return ['Meta', 'Samples', 'AuctionWorklets', 'NetworkRequests'];
|
|
346
|
+
}
|