chrome-devtools-mcp 0.10.1 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +77 -9
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Debouncer.js +2 -2
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Gzip.js +1 -1
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Revealer.js +5 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Settings.js +106 -98
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Throttler.js +2 -2
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/common.js +1 -4
- package/build/node_modules/chrome-devtools-frontend/front_end/core/host/AidaClient.js +3 -3
- package/build/node_modules/chrome-devtools-frontend/front_end/core/host/DispatchHttpRequestClient.js +15 -3
- package/build/node_modules/chrome-devtools-frontend/front_end/core/host/GdpClient.js +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/host/InspectorFrontendHost.js +31 -452
- 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/ResourceLoader.js +10 -22
- package/build/node_modules/chrome-devtools-frontend/front_end/core/host/UserMetrics.js +5 -5
- 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 -60
- 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/{common/QueryParamHandler.js → i18n/i18nTypes.js} +1 -1
- 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/HostRuntime.js +19 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/StringUtilities.js +1 -1
- 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/{common/Worker.js → platform/browser/HostRuntime.js} +18 -7
- 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 +2 -2
- 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 +19 -150
- package/build/node_modules/chrome-devtools-frontend/front_end/core/protocol_client/protocol_client.js +2 -2
- 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 +7 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/root/root.js +2 -1
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/AnimationModel.js +1 -1
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CPUThrottlingManager.js +0 -3
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSMatchedStyles.js +8 -9
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSMetadata.js +17 -5
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSModel.js +4 -4
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSProperty.js +1 -1
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSPropertyParserMatchers.js +10 -10
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSRule.js +14 -4
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ChildTargetManager.js +1 -2
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ConsoleModel.js +1 -1
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/Cookie.js +1 -1
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/DOMModel.js +5 -2
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/DebuggerModel.js +2 -17
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/IOModel.js +1 -4
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/NetworkManager.js +64 -43
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/NetworkRequest.js +3 -8
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/PageResourceLoader.js +43 -33
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/PreloadingModel.js +1 -1
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/RemoteObject.js +4 -1
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ResourceTreeModel.js +1 -1
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/Script.js +26 -1
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ServerSentEventsProtocol.js +3 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMap.js +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMapCache.js +16 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMapManager.js +11 -5
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMapScopesInfo.js +129 -20
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/Target.js +5 -16
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/TargetManager.js +38 -8
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/sdk-meta.js +72 -30
- 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/Deprecation.js +56 -18
- package/build/node_modules/chrome-devtools-frontend/front_end/generated/InspectorBackendCommands.js +50 -44
- package/build/node_modules/chrome-devtools-frontend/front_end/generated/SupportedCSSProperties.js +117 -84
- package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.js +107 -57
- package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/performance/AICallTree.js +9 -3
- package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/performance/AIQueries.js +46 -2
- package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/CSSWorkspaceBinding.js +10 -8
- package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/CompilerScriptMapping.js +37 -1
- package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/DebuggerWorkspaceBinding.js +32 -14
- package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/ResourceMapping.js +105 -14
- package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/ResourceScriptMapping.js +38 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/SASSSourceMapping.js +5 -4
- package/build/node_modules/chrome-devtools-frontend/front_end/models/cpu_profile/CPUProfileDataModel.js +9 -7
- package/build/node_modules/chrome-devtools-frontend/front_end/models/crux-manager/CrUXManager.js +5 -3
- package/build/node_modules/chrome-devtools-frontend/front_end/models/formatter/FormatterWorkerPool.js +2 -2
- 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/source_map_scopes/FunctionCodeResolver.js +192 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/source_map_scopes/source_map_scopes.js +2 -1
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/Processor.js +4 -4
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/Styles.js +1 -1
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/SamplesHandler.js +59 -6
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/ScriptsHandler.js +24 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/Trace.js +10 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/TraceEvents.js +1 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace_source_maps_resolver/SourceMapsResolver.js +23 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/IgnoreListManager.js +41 -48
- package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/UISourceCode.js +38 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/WorkspaceImpl.js +5 -8
- 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/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/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/mcp/HostBindings.js +222 -0
- package/build/node_modules/chrome-devtools-frontend/mcp/mcp.js +21 -0
- package/build/src/DevToolsConnectionAdapter.js +56 -20
- package/build/src/DevtoolsUtils.js +162 -0
- package/build/src/McpContext.js +42 -13
- package/build/src/McpResponse.js +34 -6
- package/build/src/PageCollector.js +131 -23
- package/build/src/browser.js +4 -0
- package/build/src/cli.js +11 -3
- package/build/src/formatters/consoleFormatter.js +84 -3
- package/build/src/formatters/snapshotFormatter.js +18 -4
- package/build/src/issue-descriptions.js +39 -0
- package/build/src/main.js +21 -45
- package/build/src/third_party/THIRD_PARTY_NOTICES +1974 -28
- package/build/src/third_party/index.js +58935 -19367
- package/build/src/tools/console.js +1 -0
- package/build/src/tools/emulation.js +29 -6
- package/build/src/tools/screenshot.js +4 -2
- package/build/src/tools/snapshot.js +1 -1
- package/build/src/tools/tools.js +29 -0
- package/build/src/utils/keyboard.js +5 -0
- package/package.json +7 -7
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Linkifier.js +0 -34
- package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/DOMUtilities.js +0 -122
- package/build/node_modules/chrome-devtools-frontend/front_end/core/protocol_client/NodeURL.js +0 -31
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
// Copyright 2025 The Chromium Authors
|
|
2
|
+
// Use of this source code is governed by a BSD-style license that can be
|
|
3
|
+
// found in the LICENSE file.
|
|
4
|
+
import * as SDK from '../../core/sdk/sdk.js';
|
|
5
|
+
import * as Bindings from '../bindings/bindings.js';
|
|
6
|
+
import * as Formatter from '../formatter/formatter.js';
|
|
7
|
+
import * as TextUtils from '../text_utils/text_utils.js';
|
|
8
|
+
import * as Workspace from '../workspace/workspace.js';
|
|
9
|
+
const inputCache = new WeakMap();
|
|
10
|
+
async function prepareInput(uiSourceCode, content) {
|
|
11
|
+
const formattedContent = await format(uiSourceCode, content);
|
|
12
|
+
const text = new TextUtils.Text.Text(formattedContent ? formattedContent.formattedContent : content);
|
|
13
|
+
let performanceData = uiSourceCode.getDecorationData("performance" /* Workspace.UISourceCode.DecoratorType.PERFORMANCE */);
|
|
14
|
+
// Map profile data to the formatted view of the text.
|
|
15
|
+
if (formattedContent && performanceData) {
|
|
16
|
+
performanceData = Workspace.UISourceCode.createMappedProfileData(performanceData, (line, column) => {
|
|
17
|
+
return formattedContent.formattedMapping.originalToFormatted(line, column);
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
return { text, formattedContent, performanceData };
|
|
21
|
+
}
|
|
22
|
+
/** Formatting and parsing line endings for Text is expensive, so cache it. */
|
|
23
|
+
async function prepareInputAndCache(uiSourceCode, content) {
|
|
24
|
+
let cachedPromise = inputCache.get(uiSourceCode);
|
|
25
|
+
if (cachedPromise) {
|
|
26
|
+
return await cachedPromise;
|
|
27
|
+
}
|
|
28
|
+
cachedPromise = prepareInput(uiSourceCode, content);
|
|
29
|
+
inputCache.set(uiSourceCode, cachedPromise);
|
|
30
|
+
return await cachedPromise;
|
|
31
|
+
}
|
|
32
|
+
function extractPerformanceDataByLine(textRange, performanceData) {
|
|
33
|
+
const { startLine, startColumn, endLine, endColumn } = textRange;
|
|
34
|
+
const byLine = new Array(endLine - startLine + 1).fill(0);
|
|
35
|
+
for (let line = startLine; line <= endLine; line++) {
|
|
36
|
+
const lineData = performanceData.get(line + 1);
|
|
37
|
+
if (!lineData) {
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
40
|
+
// Fast-path for when the entire line's data is relevant.
|
|
41
|
+
if (line !== startLine && line !== endLine) {
|
|
42
|
+
byLine[line - startLine] = lineData.values().reduce((acc, cur) => acc + cur);
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
const column0 = line === startLine ? startColumn + 1 : 0;
|
|
46
|
+
const column1 = line === endLine ? endColumn + 1 : Number.POSITIVE_INFINITY;
|
|
47
|
+
let totalData = 0;
|
|
48
|
+
for (const [column, data] of lineData) {
|
|
49
|
+
if (column >= column0 && column <= column1) {
|
|
50
|
+
totalData += data;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
byLine[line - startLine] = totalData;
|
|
54
|
+
}
|
|
55
|
+
return byLine.map(data => Math.round(data * 10) / 10);
|
|
56
|
+
}
|
|
57
|
+
function createFunctionCode(inputData, functionBounds, options) {
|
|
58
|
+
let { startLine, startColumn, endLine, endColumn } = functionBounds.range;
|
|
59
|
+
if (inputData.formattedContent) {
|
|
60
|
+
const startMapped = inputData.formattedContent.formattedMapping.originalToFormatted(startLine, startColumn);
|
|
61
|
+
startLine = startMapped[0];
|
|
62
|
+
startColumn = startMapped[1];
|
|
63
|
+
const endMapped = inputData.formattedContent.formattedMapping.originalToFormatted(endLine, endColumn);
|
|
64
|
+
endLine = endMapped[0];
|
|
65
|
+
endColumn = endMapped[1];
|
|
66
|
+
}
|
|
67
|
+
const text = inputData.text;
|
|
68
|
+
const content = text.value();
|
|
69
|
+
// Define two ranges - the first is just the function bounds, the second includes
|
|
70
|
+
// that plus some surrounding context as dictated by the options.
|
|
71
|
+
const range = new TextUtils.TextRange.TextRange(startLine, startColumn, endLine, endColumn);
|
|
72
|
+
const functionStartOffset = text.offsetFromPosition(startLine, startColumn);
|
|
73
|
+
const functionEndOffset = text.offsetFromPosition(endLine, endColumn);
|
|
74
|
+
let contextStartOffset = 0;
|
|
75
|
+
if (options?.contextLength !== undefined) {
|
|
76
|
+
const contextLength = options.contextLength;
|
|
77
|
+
contextStartOffset = Math.max(contextStartOffset, functionStartOffset - contextLength);
|
|
78
|
+
}
|
|
79
|
+
if (options?.contextLineLength !== undefined) {
|
|
80
|
+
const contextLineLength = options.contextLineLength;
|
|
81
|
+
const position = text.offsetFromPosition(Math.max(startLine - contextLineLength, 0), 0);
|
|
82
|
+
contextStartOffset = Math.max(contextStartOffset, position);
|
|
83
|
+
}
|
|
84
|
+
let contextEndOffset = content.length;
|
|
85
|
+
if (options?.contextLength !== undefined) {
|
|
86
|
+
const contextLength = options.contextLength;
|
|
87
|
+
contextEndOffset = Math.min(contextEndOffset, functionEndOffset + contextLength);
|
|
88
|
+
}
|
|
89
|
+
if (options?.contextLineLength !== undefined) {
|
|
90
|
+
const contextLineLength = options.contextLineLength;
|
|
91
|
+
const position = text.offsetFromPosition(Math.min(endLine + contextLineLength, text.lineCount() - 1), Number.POSITIVE_INFINITY);
|
|
92
|
+
contextEndOffset = Math.min(contextEndOffset, position);
|
|
93
|
+
}
|
|
94
|
+
const contextStart = text.positionFromOffset(contextStartOffset);
|
|
95
|
+
const contextEnd = text.positionFromOffset(contextEndOffset);
|
|
96
|
+
const rangeWithContext = new TextUtils.TextRange.TextRange(contextStart.lineNumber, contextStart.columnNumber, contextEnd.lineNumber, contextEnd.columnNumber);
|
|
97
|
+
// Grab substrings for the function range, and for the context range.
|
|
98
|
+
const code = content.substring(functionStartOffset, functionEndOffset);
|
|
99
|
+
const before = content.substring(contextStartOffset, functionStartOffset);
|
|
100
|
+
const after = content.substring(functionEndOffset, contextEndOffset);
|
|
101
|
+
let codeWithContext;
|
|
102
|
+
if (options?.appendProfileData && inputData.performanceData) {
|
|
103
|
+
const performanceDataByLine = extractPerformanceDataByLine(range, inputData.performanceData);
|
|
104
|
+
const lines = performanceDataByLine.map((data, i) => {
|
|
105
|
+
let line = text.lineAt(startLine + i);
|
|
106
|
+
const isLastLine = i === performanceDataByLine.length - 1;
|
|
107
|
+
if (i === 0) {
|
|
108
|
+
if (isLastLine) {
|
|
109
|
+
line = line.substring(startColumn, endColumn);
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
line = line.substring(startColumn);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
else if (isLastLine) {
|
|
116
|
+
line = line.substring(0, endColumn);
|
|
117
|
+
}
|
|
118
|
+
if (isLastLine) {
|
|
119
|
+
// Don't ever annotate the last line - it could make the rest of the code on
|
|
120
|
+
// that line get commented out.
|
|
121
|
+
data = 0;
|
|
122
|
+
}
|
|
123
|
+
return data ? `${line} // ${data} ms` : line;
|
|
124
|
+
});
|
|
125
|
+
const annotatedCode = lines.join('\n');
|
|
126
|
+
codeWithContext = before + `<FUNCTION_START>${annotatedCode}<FUNCTION_END>` + after;
|
|
127
|
+
}
|
|
128
|
+
else {
|
|
129
|
+
codeWithContext = before + `<FUNCTION_START>${code}<FUNCTION_END>` + after;
|
|
130
|
+
}
|
|
131
|
+
return {
|
|
132
|
+
functionBounds,
|
|
133
|
+
text,
|
|
134
|
+
code,
|
|
135
|
+
range,
|
|
136
|
+
codeWithContext,
|
|
137
|
+
rangeWithContext,
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* The input location may be a source mapped location or a raw location.
|
|
142
|
+
*/
|
|
143
|
+
export async function getFunctionCodeFromLocation(target, url, line, column, options) {
|
|
144
|
+
const debuggerModel = target.model(SDK.DebuggerModel.DebuggerModel);
|
|
145
|
+
if (!debuggerModel) {
|
|
146
|
+
throw new Error('missing debugger model');
|
|
147
|
+
}
|
|
148
|
+
let uiSourceCode;
|
|
149
|
+
const debuggerWorkspaceBinding = Bindings.DebuggerWorkspaceBinding.DebuggerWorkspaceBinding.instance();
|
|
150
|
+
const projects = debuggerWorkspaceBinding.workspace.projectsForType(Workspace.Workspace.projectTypes.Network);
|
|
151
|
+
for (const project of projects) {
|
|
152
|
+
uiSourceCode = project.uiSourceCodeForURL(url);
|
|
153
|
+
if (uiSourceCode) {
|
|
154
|
+
break;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
if (!uiSourceCode) {
|
|
158
|
+
return null;
|
|
159
|
+
}
|
|
160
|
+
const rawLocations = await debuggerWorkspaceBinding.uiLocationToRawLocations(uiSourceCode, line, column);
|
|
161
|
+
const rawLocation = rawLocations.at(-1);
|
|
162
|
+
if (!rawLocation) {
|
|
163
|
+
return null;
|
|
164
|
+
}
|
|
165
|
+
return await getFunctionCodeFromRawLocation(rawLocation, options);
|
|
166
|
+
}
|
|
167
|
+
async function format(uiSourceCode, content) {
|
|
168
|
+
const contentType = uiSourceCode.contentType();
|
|
169
|
+
const shouldFormat = !contentType.isFromSourceMap() && (contentType.isDocument() || contentType.isScript()) &&
|
|
170
|
+
TextUtils.TextUtils.isMinified(content);
|
|
171
|
+
if (!shouldFormat) {
|
|
172
|
+
return null;
|
|
173
|
+
}
|
|
174
|
+
return await Formatter.ScriptFormatter.formatScriptContent(contentType.canonicalMimeType(), content, '\t');
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Returns a {@link FunctionCode} for the given raw location.
|
|
178
|
+
*/
|
|
179
|
+
export async function getFunctionCodeFromRawLocation(rawLocation, options) {
|
|
180
|
+
const debuggerWorkspaceBinding = Bindings.DebuggerWorkspaceBinding.DebuggerWorkspaceBinding.instance();
|
|
181
|
+
const functionBounds = await debuggerWorkspaceBinding.functionBoundsAtRawLocation(rawLocation);
|
|
182
|
+
if (!functionBounds) {
|
|
183
|
+
return null;
|
|
184
|
+
}
|
|
185
|
+
await functionBounds.uiSourceCode.requestContentData();
|
|
186
|
+
const content = functionBounds.uiSourceCode.content();
|
|
187
|
+
if (!content) {
|
|
188
|
+
return null;
|
|
189
|
+
}
|
|
190
|
+
const inputData = await prepareInputAndCache(functionBounds.uiSourceCode, content);
|
|
191
|
+
return createFunctionCode(inputData, functionBounds, options);
|
|
192
|
+
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// Copyright 2022 The Chromium Authors
|
|
2
2
|
// Use of this source code is governed by a BSD-style license that can be
|
|
3
3
|
// found in the LICENSE file.
|
|
4
|
+
import * as FunctionCodeResolver from './FunctionCodeResolver.js';
|
|
4
5
|
import * as NamesResolver from './NamesResolver.js';
|
|
5
6
|
import * as ScopeChainModel from './ScopeChainModel.js';
|
|
6
|
-
export { NamesResolver, ScopeChainModel, };
|
|
7
|
+
export { FunctionCodeResolver, NamesResolver, ScopeChainModel, };
|
|
@@ -351,9 +351,12 @@ export class TraceProcessor extends EventTarget {
|
|
|
351
351
|
}
|
|
352
352
|
#computeInsightSet(data, context) {
|
|
353
353
|
const logger = context.options.logger;
|
|
354
|
+
if (!this.#insights) {
|
|
355
|
+
this.#insights = new Map();
|
|
356
|
+
}
|
|
354
357
|
let id, urlString, navigation;
|
|
355
358
|
if (context.navigation) {
|
|
356
|
-
id =
|
|
359
|
+
id = `NAVIGATION_${this.#insights.size}`;
|
|
357
360
|
urlString = data.Meta.finalDisplayUrlByNavigationId.get(context.navigationId) ?? data.Meta.mainFrameURL;
|
|
358
361
|
navigation = context.navigation;
|
|
359
362
|
}
|
|
@@ -421,9 +424,6 @@ export class TraceProcessor extends EventTarget {
|
|
|
421
424
|
bounds: context.bounds,
|
|
422
425
|
model: insightSetModel,
|
|
423
426
|
};
|
|
424
|
-
if (!this.#insights) {
|
|
425
|
-
this.#insights = new Map();
|
|
426
|
-
}
|
|
427
427
|
this.#insights.set(insightSet.id, insightSet);
|
|
428
428
|
this.sortInsightSet(insightSet, context.options.metadata ?? null);
|
|
429
429
|
}
|
|
@@ -428,7 +428,7 @@ const UIStrings = {
|
|
|
428
428
|
/**
|
|
429
429
|
* @description Event category in the Performance panel for time spent to perform Garbage Collection for C++: https://chromium.googlesource.com/v8/v8/+/main/include/cppgc/README.md
|
|
430
430
|
*/
|
|
431
|
-
cppGc: '
|
|
431
|
+
cppGc: 'C++ GC',
|
|
432
432
|
/**
|
|
433
433
|
* @description Event category in the Performance panel for time spent to perform encryption
|
|
434
434
|
*/
|
|
@@ -17,23 +17,66 @@ let entryToNode = new Map();
|
|
|
17
17
|
// are matched by profile id, which we then finish processing to export
|
|
18
18
|
// events matched by thread id.
|
|
19
19
|
let preprocessedData = new Map();
|
|
20
|
+
/**
|
|
21
|
+
* Profile source selection priority when multiple profiles exist for the same thread.
|
|
22
|
+
*
|
|
23
|
+
* Profile sources and their typical scenarios:
|
|
24
|
+
* - 'Internal': Browser-initiated profiling performance panel traces.
|
|
25
|
+
* This is the profiling mechanism when users click "Record" in the Devtools UI.
|
|
26
|
+
* - 'Inspector': User-initiated via console.profile()/profileEnd() calls.
|
|
27
|
+
* Represents explicit developer intent to profile specific code.
|
|
28
|
+
* - 'SelfProfiling': Page-initiated via JS Self-Profiling API.
|
|
29
|
+
* Lower signal vs the two above; treated as fallback.
|
|
30
|
+
*
|
|
31
|
+
* Selection strategy:
|
|
32
|
+
* - CPU Profile mode: Prefer 'Inspector' (explicit user request).
|
|
33
|
+
* - Performance trace: Prefer 'Internal' (integrated timeline context), then 'Inspector'.
|
|
34
|
+
* - Sources not in the priority list (including 'SelfProfiling') act as fallbacks.
|
|
35
|
+
* When no priority source matches, the first candidate profile is selected.
|
|
36
|
+
*/
|
|
37
|
+
const PROFILE_SOURCES_BY_PRIORITY = {
|
|
38
|
+
cpuProfile: ['Inspector'],
|
|
39
|
+
performanceTrace: ['Internal', 'Inspector'],
|
|
40
|
+
};
|
|
20
41
|
function parseCPUProfileData(parseOptions) {
|
|
42
|
+
const priorityList = parseOptions.isCPUProfile ? PROFILE_SOURCES_BY_PRIORITY.cpuProfile : PROFILE_SOURCES_BY_PRIORITY.performanceTrace;
|
|
21
43
|
for (const [processId, profiles] of preprocessedData) {
|
|
44
|
+
const profilesByThread = new Map();
|
|
22
45
|
for (const [profileId, preProcessedData] of profiles) {
|
|
23
46
|
const threadId = preProcessedData.threadId;
|
|
24
|
-
if (
|
|
47
|
+
if (threadId === undefined) {
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
const listForThread = Platform.MapUtilities.getWithDefault(profilesByThread, threadId, () => []);
|
|
51
|
+
listForThread.push({ id: profileId, data: preProcessedData });
|
|
52
|
+
}
|
|
53
|
+
for (const [threadId, candidates] of profilesByThread) {
|
|
54
|
+
if (!candidates.length) {
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
let chosen = candidates[0];
|
|
58
|
+
for (const source of priorityList) {
|
|
59
|
+
const match = candidates.find(p => p.data.source === source);
|
|
60
|
+
if (match) {
|
|
61
|
+
chosen = match;
|
|
62
|
+
break;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
const chosenData = chosen.data;
|
|
66
|
+
if (!chosenData.rawProfile.nodes.length) {
|
|
25
67
|
continue;
|
|
26
68
|
}
|
|
27
69
|
const indexStack = [];
|
|
28
|
-
const profileModel = new CPUProfile.CPUProfileDataModel.CPUProfileDataModel(
|
|
70
|
+
const profileModel = new CPUProfile.CPUProfileDataModel.CPUProfileDataModel(chosenData.rawProfile);
|
|
29
71
|
const profileTree = Helpers.TreeHelpers.makeEmptyTraceEntryTree();
|
|
30
72
|
profileTree.maxDepth = profileModel.maxDepth;
|
|
73
|
+
const selectedProfileId = chosen.id;
|
|
31
74
|
const finalizedData = {
|
|
32
|
-
rawProfile:
|
|
75
|
+
rawProfile: chosenData.rawProfile,
|
|
33
76
|
parsedProfile: profileModel,
|
|
34
77
|
profileCalls: [],
|
|
35
78
|
profileTree,
|
|
36
|
-
profileId,
|
|
79
|
+
profileId: selectedProfileId,
|
|
37
80
|
};
|
|
38
81
|
const dataByThread = Platform.MapUtilities.getWithDefault(profilesInProcess, processId, () => new Map());
|
|
39
82
|
dataByThread.set(threadId, finalizedData);
|
|
@@ -49,7 +92,7 @@ function parseCPUProfileData(parseOptions) {
|
|
|
49
92
|
}
|
|
50
93
|
const ts = Helpers.Timing.milliToMicro(Types.Timing.Milli(timeStampMilliseconds));
|
|
51
94
|
const nodeId = node.id;
|
|
52
|
-
const profileCall = Helpers.Trace.makeProfileCall(node,
|
|
95
|
+
const profileCall = Helpers.Trace.makeProfileCall(node, selectedProfileId, sampleIndex, ts, processId, threadId);
|
|
53
96
|
finalizedData.profileCalls.push(profileCall);
|
|
54
97
|
indexStack.push(finalizedData.profileCalls.length - 1);
|
|
55
98
|
const traceEntryNode = Helpers.TreeHelpers.makeEmptyTraceEntryNode(profileCall, nodeId);
|
|
@@ -68,7 +111,7 @@ function parseCPUProfileData(parseOptions) {
|
|
|
68
111
|
}
|
|
69
112
|
const { callFrame, ts, pid, tid } = profileCall;
|
|
70
113
|
const traceEntryNode = entryToNode.get(profileCall);
|
|
71
|
-
if (callFrame === undefined || ts === undefined || pid === undefined ||
|
|
114
|
+
if (callFrame === undefined || ts === undefined || pid === undefined || selectedProfileId === undefined ||
|
|
72
115
|
tid === undefined || traceEntryNode === undefined) {
|
|
73
116
|
return;
|
|
74
117
|
}
|
|
@@ -119,6 +162,7 @@ export function handleEvent(event) {
|
|
|
119
162
|
const profileData = getOrCreatePreProcessedData(event.pid, event.id);
|
|
120
163
|
profileData.rawProfile.startTime = event.ts;
|
|
121
164
|
profileData.threadId = event.tid;
|
|
165
|
+
assignProfileSourceIfKnown(profileData, event.args?.data?.source);
|
|
122
166
|
return;
|
|
123
167
|
}
|
|
124
168
|
if (Types.Events.isProfileChunk(event)) {
|
|
@@ -146,9 +190,11 @@ export function handleEvent(event) {
|
|
|
146
190
|
}
|
|
147
191
|
const timeDeltas = event.args.data?.timeDeltas || [];
|
|
148
192
|
const lines = event.args.data?.lines || Array(samples.length).fill(0);
|
|
193
|
+
const columns = event.args.data?.columns || Array(samples.length).fill(0);
|
|
149
194
|
cdpProfile.samples?.push(...samples);
|
|
150
195
|
cdpProfile.timeDeltas?.push(...timeDeltas);
|
|
151
196
|
cdpProfile.lines?.push(...lines);
|
|
197
|
+
cdpProfile.columns?.push(...columns);
|
|
152
198
|
if (traceIds) {
|
|
153
199
|
cdpProfile.traceIds ??= {};
|
|
154
200
|
for (const key in traceIds) {
|
|
@@ -163,12 +209,18 @@ export function handleEvent(event) {
|
|
|
163
209
|
const timeDeltas = cdpProfile.timeDeltas;
|
|
164
210
|
cdpProfile.endTime = timeDeltas.reduce((x, y) => x + y, cdpProfile.startTime);
|
|
165
211
|
}
|
|
212
|
+
assignProfileSourceIfKnown(profileData, event.args?.data?.source);
|
|
166
213
|
return;
|
|
167
214
|
}
|
|
168
215
|
}
|
|
169
216
|
export async function finalize(parseOptions = {}) {
|
|
170
217
|
parseCPUProfileData(parseOptions);
|
|
171
218
|
}
|
|
219
|
+
function assignProfileSourceIfKnown(profileData, source) {
|
|
220
|
+
if (Types.Events.VALID_PROFILE_SOURCES.includes(source)) {
|
|
221
|
+
profileData.source = source;
|
|
222
|
+
}
|
|
223
|
+
}
|
|
172
224
|
export function data() {
|
|
173
225
|
return {
|
|
174
226
|
profilesInProcess,
|
|
@@ -185,6 +237,7 @@ function getOrCreatePreProcessedData(processId, profileId) {
|
|
|
185
237
|
samples: [],
|
|
186
238
|
timeDeltas: [],
|
|
187
239
|
lines: [],
|
|
240
|
+
columns: [],
|
|
188
241
|
},
|
|
189
242
|
profileId,
|
|
190
243
|
}));
|
|
@@ -7,11 +7,13 @@ import * as Types from '../types/types.js';
|
|
|
7
7
|
import { data as metaHandlerData } from './MetaHandler.js';
|
|
8
8
|
import { data as networkRequestsHandlerData } from './NetworkRequestsHandler.js';
|
|
9
9
|
let scriptById = new Map();
|
|
10
|
+
let frameIdByIsolate = new Map();
|
|
10
11
|
export function deps() {
|
|
11
12
|
return ['Meta', 'NetworkRequests'];
|
|
12
13
|
}
|
|
13
14
|
export function reset() {
|
|
14
15
|
scriptById = new Map();
|
|
16
|
+
frameIdByIsolate = new Map();
|
|
15
17
|
}
|
|
16
18
|
export function handleEvent(event) {
|
|
17
19
|
const getOrMakeScript = (isolate, scriptIdAsNumber) => {
|
|
@@ -29,6 +31,9 @@ export function handleEvent(event) {
|
|
|
29
31
|
if (Types.Events.isRundownScript(event)) {
|
|
30
32
|
const { isolate, scriptId, url, sourceUrl, sourceMapUrl, sourceMapUrlElided } = event.args.data;
|
|
31
33
|
const script = getOrMakeScript(isolate, scriptId);
|
|
34
|
+
if (!script.frame) {
|
|
35
|
+
script.frame = frameIdByIsolate.get(String(isolate)) ?? '';
|
|
36
|
+
}
|
|
32
37
|
script.url = url;
|
|
33
38
|
script.ts = event.ts;
|
|
34
39
|
if (sourceUrl) {
|
|
@@ -59,6 +64,25 @@ export function handleEvent(event) {
|
|
|
59
64
|
script.content = (script.content ?? '') + sourceText;
|
|
60
65
|
return;
|
|
61
66
|
}
|
|
67
|
+
// Setup frameIdByIsolate, which is used only in the case that we are missing
|
|
68
|
+
// rundown events for a script. We won't get a frame association from the rundown
|
|
69
|
+
// events if the recording started only after the script was first compiled. In
|
|
70
|
+
// that scenario, derive the frame via the isolate / FunctionCall events.
|
|
71
|
+
// TODO: ideally, we put the frame on ScriptCatchup event. So much easier. This approach has some
|
|
72
|
+
// issues.
|
|
73
|
+
if (Types.Events.isFunctionCall(event) && event.args.data?.isolate && event.args.data.frame) {
|
|
74
|
+
const { isolate, frame } = event.args.data;
|
|
75
|
+
const existingValue = frameIdByIsolate.get(isolate);
|
|
76
|
+
if (existingValue !== frame) {
|
|
77
|
+
frameIdByIsolate.set(isolate, frame);
|
|
78
|
+
// Update the scripts we discovered but without knowing their frame.
|
|
79
|
+
for (const script of scriptById.values()) {
|
|
80
|
+
if (!script.frame && script.isolate === isolate) {
|
|
81
|
+
script.frame = frame;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
62
86
|
}
|
|
63
87
|
function findFrame(meta, frameId) {
|
|
64
88
|
for (const frames of meta.frameByProcessId?.values()) {
|
|
@@ -502,6 +502,16 @@ export function getStackTraceTopCallFrameInEventPayload(event) {
|
|
|
502
502
|
}
|
|
503
503
|
}
|
|
504
504
|
}
|
|
505
|
+
export function rawCallFrameForEntry(entry) {
|
|
506
|
+
if (Types.Events.isProfileCall(entry)) {
|
|
507
|
+
return entry.callFrame;
|
|
508
|
+
}
|
|
509
|
+
const topCallFrame = getStackTraceTopCallFrameInEventPayload(entry);
|
|
510
|
+
if (topCallFrame) {
|
|
511
|
+
return topCallFrame;
|
|
512
|
+
}
|
|
513
|
+
return null;
|
|
514
|
+
}
|
|
505
515
|
/**
|
|
506
516
|
* Given a 1-based call frame creates a 0-based one.
|
|
507
517
|
*/
|
package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/TraceEvents.js
CHANGED
|
@@ -19,6 +19,7 @@ export function objectIsCallFrame(object) {
|
|
|
19
19
|
('lineNumber' in object && typeof object.lineNumber === 'number') &&
|
|
20
20
|
('url' in object && typeof object.url === 'string');
|
|
21
21
|
}
|
|
22
|
+
export const VALID_PROFILE_SOURCES = ['Inspector', 'SelfProfiling', 'Internal'];
|
|
22
23
|
export function isRunTask(event) {
|
|
23
24
|
return event.name === "RunTask" /* Name.RUN_TASK */ && event.ph === "X" /* Phase.COMPLETE */;
|
|
24
25
|
}
|
|
@@ -81,6 +81,29 @@ export class SourceMapsResolver extends EventTarget {
|
|
|
81
81
|
}
|
|
82
82
|
return null;
|
|
83
83
|
}
|
|
84
|
+
static codeLocationForEntry(parsedTrace, entry) {
|
|
85
|
+
const uiLocation = _a.resolvedCodeLocationForEntry(entry)?.devtoolsLocation;
|
|
86
|
+
if (uiLocation) {
|
|
87
|
+
return { url: uiLocation.uiSourceCode.url(), line: uiLocation.lineNumber, column: uiLocation.columnNumber };
|
|
88
|
+
}
|
|
89
|
+
// If no source mapping was found for an entry's URL, then default
|
|
90
|
+
// to the frame contained in the event itself, if any.
|
|
91
|
+
const rawCallFrame = Trace.Helpers.Trace.rawCallFrameForEntry(entry);
|
|
92
|
+
if (rawCallFrame) {
|
|
93
|
+
const line = rawCallFrame.lineNumber >= 0 ? rawCallFrame.lineNumber : undefined;
|
|
94
|
+
const column = rawCallFrame.columnNumber >= 0 ? rawCallFrame.columnNumber : undefined;
|
|
95
|
+
return { url: rawCallFrame.url, line, column };
|
|
96
|
+
}
|
|
97
|
+
// Lastly, look for just a url.
|
|
98
|
+
let url = Trace.Handlers.Helpers.getNonResolvedURL(entry, parsedTrace.data);
|
|
99
|
+
if (url) {
|
|
100
|
+
url = Workspace.Workspace.WorkspaceImpl.instance().uiSourceCodeForURL(url)?.url() ?? url;
|
|
101
|
+
}
|
|
102
|
+
if (url) {
|
|
103
|
+
return { url };
|
|
104
|
+
}
|
|
105
|
+
return null;
|
|
106
|
+
}
|
|
84
107
|
static storeResolvedCodeDataForCallFrame(callFrame, resolvedCodeLocationData) {
|
|
85
108
|
const keyForCallFrame = this.keyForCodeLocation(callFrame);
|
|
86
109
|
resolvedCodeLocationDataNames.set(keyForCallFrame, resolvedCodeLocationData);
|
package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/IgnoreListManager.js
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
import * as Common from '../../core/common/common.js';
|
|
5
5
|
import * as i18n from '../../core/i18n/i18n.js';
|
|
6
6
|
import * as Platform from '../../core/platform/platform.js';
|
|
7
|
+
import * as Root from '../../core/root/root.js';
|
|
7
8
|
import * as SDK from '../../core/sdk/sdk.js';
|
|
8
9
|
import { projectTypes } from './WorkspaceImpl.js';
|
|
9
10
|
const UIStrings = {
|
|
@@ -34,45 +35,38 @@ const UIStrings = {
|
|
|
34
35
|
};
|
|
35
36
|
const str_ = i18n.i18n.registerUIStrings('models/workspace/IgnoreListManager.ts', UIStrings);
|
|
36
37
|
const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
|
|
37
|
-
let ignoreListManagerInstance;
|
|
38
38
|
export class IgnoreListManager extends Common.ObjectWrapper.ObjectWrapper {
|
|
39
|
-
#
|
|
40
|
-
#
|
|
41
|
-
#
|
|
42
|
-
|
|
39
|
+
#settings;
|
|
40
|
+
#targetManager;
|
|
41
|
+
#listeners = new Set();
|
|
42
|
+
#isIgnoreListedURLCache = new Map();
|
|
43
|
+
#contentScriptExecutionContexts = new Set();
|
|
44
|
+
constructor(settings, targetManager) {
|
|
43
45
|
super();
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
46
|
+
this.#settings = settings;
|
|
47
|
+
this.#targetManager = targetManager;
|
|
48
|
+
this.#targetManager.addModelListener(SDK.DebuggerModel.DebuggerModel, SDK.DebuggerModel.Events.GlobalObjectCleared, this.clearCacheIfNeeded.bind(this), this);
|
|
49
|
+
this.#targetManager.addModelListener(SDK.RuntimeModel.RuntimeModel, SDK.RuntimeModel.Events.ExecutionContextCreated, this.onExecutionContextCreated, this, { scoped: true });
|
|
50
|
+
this.#targetManager.addModelListener(SDK.RuntimeModel.RuntimeModel, SDK.RuntimeModel.Events.ExecutionContextDestroyed, this.onExecutionContextDestroyed, this, { scoped: true });
|
|
51
|
+
this.#settings.moduleSetting('skip-stack-frames-pattern').addChangeListener(this.patternChanged.bind(this));
|
|
52
|
+
this.#settings.moduleSetting('skip-content-scripts').addChangeListener(this.patternChanged.bind(this));
|
|
53
|
+
this.#settings.moduleSetting('automatically-ignore-list-known-third-party-scripts')
|
|
49
54
|
.addChangeListener(this.patternChanged.bind(this));
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
Common.Settings.Settings.instance()
|
|
54
|
-
.moduleSetting('automatically-ignore-list-known-third-party-scripts')
|
|
55
|
-
.addChangeListener(this.patternChanged.bind(this));
|
|
56
|
-
Common.Settings.Settings.instance()
|
|
57
|
-
.moduleSetting('enable-ignore-listing')
|
|
58
|
-
.addChangeListener(this.patternChanged.bind(this));
|
|
59
|
-
Common.Settings.Settings.instance()
|
|
60
|
-
.moduleSetting('skip-anonymous-scripts')
|
|
61
|
-
.addChangeListener(this.patternChanged.bind(this));
|
|
62
|
-
this.#listeners = new Set();
|
|
63
|
-
this.#isIgnoreListedURLCache = new Map();
|
|
64
|
-
this.#contentScriptExecutionContexts = new Set();
|
|
65
|
-
SDK.TargetManager.TargetManager.instance().observeModels(SDK.DebuggerModel.DebuggerModel, this);
|
|
55
|
+
this.#settings.moduleSetting('enable-ignore-listing').addChangeListener(this.patternChanged.bind(this));
|
|
56
|
+
this.#settings.moduleSetting('skip-anonymous-scripts').addChangeListener(this.patternChanged.bind(this));
|
|
57
|
+
this.#targetManager.observeModels(SDK.DebuggerModel.DebuggerModel, this);
|
|
66
58
|
}
|
|
67
|
-
static instance(opts = {
|
|
59
|
+
static instance(opts = {
|
|
60
|
+
forceNew: null,
|
|
61
|
+
}) {
|
|
68
62
|
const { forceNew } = opts;
|
|
69
|
-
if (
|
|
70
|
-
|
|
63
|
+
if (forceNew) {
|
|
64
|
+
Root.DevToolsContext.globalInstance().set(IgnoreListManager, new IgnoreListManager(opts.settings ?? Common.Settings.Settings.instance(), opts.targetManager ?? SDK.TargetManager.TargetManager.instance()));
|
|
71
65
|
}
|
|
72
|
-
return
|
|
66
|
+
return Root.DevToolsContext.globalInstance().get(IgnoreListManager);
|
|
73
67
|
}
|
|
74
68
|
static removeInstance() {
|
|
75
|
-
|
|
69
|
+
Root.DevToolsContext.globalInstance().delete(IgnoreListManager);
|
|
76
70
|
}
|
|
77
71
|
addChangeListener(listener) {
|
|
78
72
|
this.#listeners.add(listener);
|
|
@@ -99,7 +93,7 @@ export class IgnoreListManager extends Common.ObjectWrapper.ObjectWrapper {
|
|
|
99
93
|
if (this.isContentScript(event.data)) {
|
|
100
94
|
this.#contentScriptExecutionContexts.add(event.data.uniqueId);
|
|
101
95
|
if (this.skipContentScripts) {
|
|
102
|
-
for (const debuggerModel of
|
|
96
|
+
for (const debuggerModel of this.#targetManager.models(SDK.DebuggerModel.DebuggerModel)) {
|
|
103
97
|
void this.updateIgnoredExecutionContexts(debuggerModel);
|
|
104
98
|
}
|
|
105
99
|
}
|
|
@@ -109,7 +103,7 @@ export class IgnoreListManager extends Common.ObjectWrapper.ObjectWrapper {
|
|
|
109
103
|
if (this.isContentScript(event.data)) {
|
|
110
104
|
this.#contentScriptExecutionContexts.delete(event.data.uniqueId);
|
|
111
105
|
if (this.skipContentScripts) {
|
|
112
|
-
for (const debuggerModel of
|
|
106
|
+
for (const debuggerModel of this.#targetManager.models(SDK.DebuggerModel.DebuggerModel)) {
|
|
113
107
|
void this.updateIgnoredExecutionContexts(debuggerModel);
|
|
114
108
|
}
|
|
115
109
|
}
|
|
@@ -121,7 +115,7 @@ export class IgnoreListManager extends Common.ObjectWrapper.ObjectWrapper {
|
|
|
121
115
|
}
|
|
122
116
|
}
|
|
123
117
|
getSkipStackFramesPatternSetting() {
|
|
124
|
-
return
|
|
118
|
+
return this.#settings.moduleSetting('skip-stack-frames-pattern');
|
|
125
119
|
}
|
|
126
120
|
setIgnoreListPatterns(debuggerModel) {
|
|
127
121
|
const regexPatterns = this.enableIgnoreListing ? this.getSkipStackFramesPatternSetting().getAsArray() : [];
|
|
@@ -201,7 +195,7 @@ export class IgnoreListManager extends Common.ObjectWrapper.ObjectWrapper {
|
|
|
201
195
|
}
|
|
202
196
|
async updateScriptRanges(script, sourceMap) {
|
|
203
197
|
let hasIgnoreListedMappings = false;
|
|
204
|
-
if (!
|
|
198
|
+
if (!this.isUserIgnoreListedURL(script.sourceURL, { isContentScript: script.isContentScript() })) {
|
|
205
199
|
hasIgnoreListedMappings =
|
|
206
200
|
sourceMap?.sourceURLs().some(url => this.isUserIgnoreListedURL(url, { isKnownThirdParty: sourceMap.hasIgnoreListHint(url) })) ??
|
|
207
201
|
false;
|
|
@@ -253,48 +247,47 @@ export class IgnoreListManager extends Common.ObjectWrapper.ObjectWrapper {
|
|
|
253
247
|
this.unIgnoreListURL(this.uiSourceCodeURL(uiSourceCode), this.getGeneralRulesForUISourceCode(uiSourceCode));
|
|
254
248
|
}
|
|
255
249
|
get enableIgnoreListing() {
|
|
256
|
-
return
|
|
250
|
+
return this.#settings.moduleSetting('enable-ignore-listing').get();
|
|
257
251
|
}
|
|
258
252
|
set enableIgnoreListing(value) {
|
|
259
|
-
|
|
253
|
+
this.#settings.moduleSetting('enable-ignore-listing').set(value);
|
|
260
254
|
}
|
|
261
255
|
get skipContentScripts() {
|
|
262
|
-
return this.enableIgnoreListing &&
|
|
256
|
+
return this.enableIgnoreListing && this.#settings.moduleSetting('skip-content-scripts').get();
|
|
263
257
|
}
|
|
264
258
|
get skipAnonymousScripts() {
|
|
265
|
-
return this.enableIgnoreListing &&
|
|
266
|
-
Common.Settings.Settings.instance().moduleSetting('skip-anonymous-scripts').get();
|
|
259
|
+
return this.enableIgnoreListing && this.#settings.moduleSetting('skip-anonymous-scripts').get();
|
|
267
260
|
}
|
|
268
261
|
get automaticallyIgnoreListKnownThirdPartyScripts() {
|
|
269
262
|
return this.enableIgnoreListing &&
|
|
270
|
-
|
|
263
|
+
this.#settings.moduleSetting('automatically-ignore-list-known-third-party-scripts').get();
|
|
271
264
|
}
|
|
272
265
|
ignoreListContentScripts() {
|
|
273
266
|
if (!this.enableIgnoreListing) {
|
|
274
267
|
this.enableIgnoreListing = true;
|
|
275
268
|
}
|
|
276
|
-
|
|
269
|
+
this.#settings.moduleSetting('skip-content-scripts').set(true);
|
|
277
270
|
}
|
|
278
271
|
unIgnoreListContentScripts() {
|
|
279
|
-
|
|
272
|
+
this.#settings.moduleSetting('skip-content-scripts').set(false);
|
|
280
273
|
}
|
|
281
274
|
ignoreListAnonymousScripts() {
|
|
282
275
|
if (!this.enableIgnoreListing) {
|
|
283
276
|
this.enableIgnoreListing = true;
|
|
284
277
|
}
|
|
285
|
-
|
|
278
|
+
this.#settings.moduleSetting('skip-anonymous-scripts').set(true);
|
|
286
279
|
}
|
|
287
280
|
unIgnoreListAnonymousScripts() {
|
|
288
|
-
|
|
281
|
+
this.#settings.moduleSetting('skip-anonymous-scripts').set(false);
|
|
289
282
|
}
|
|
290
283
|
ignoreListThirdParty() {
|
|
291
284
|
if (!this.enableIgnoreListing) {
|
|
292
285
|
this.enableIgnoreListing = true;
|
|
293
286
|
}
|
|
294
|
-
|
|
287
|
+
this.#settings.moduleSetting('automatically-ignore-list-known-third-party-scripts').set(true);
|
|
295
288
|
}
|
|
296
289
|
unIgnoreListThirdParty() {
|
|
297
|
-
|
|
290
|
+
this.#settings.moduleSetting('automatically-ignore-list-known-third-party-scripts').set(false);
|
|
298
291
|
}
|
|
299
292
|
ignoreListURL(url) {
|
|
300
293
|
const regexValue = this.urlToRegExpString(url);
|
|
@@ -372,7 +365,7 @@ export class IgnoreListManager extends Common.ObjectWrapper.ObjectWrapper {
|
|
|
372
365
|
async patternChanged() {
|
|
373
366
|
this.#isIgnoreListedURLCache.clear();
|
|
374
367
|
const promises = [];
|
|
375
|
-
for (const debuggerModel of
|
|
368
|
+
for (const debuggerModel of this.#targetManager.models(SDK.DebuggerModel.DebuggerModel)) {
|
|
376
369
|
promises.push(this.setIgnoreListPatterns(debuggerModel));
|
|
377
370
|
const sourceMapManager = debuggerModel.sourceMapManager();
|
|
378
371
|
for (const script of debuggerModel.scripts()) {
|