chrome-devtools-mcp 0.10.1 → 0.10.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/README.md +10 -0
- 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 -2
- package/build/node_modules/chrome-devtools-frontend/front_end/core/host/AidaClient.js +2 -2
- 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 +10 -13
- package/build/node_modules/chrome-devtools-frontend/front_end/core/host/UserMetrics.js +3 -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 -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/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 +50 -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/CPUThrottlingManager.js +0 -3
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSMatchedStyles.js +6 -7
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSModel.js +1 -1
- 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/DebuggerModel.js +1 -16
- 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 +18 -9
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/NetworkRequest.js +0 -8
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/RemoteObject.js +3 -0
- 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/Target.js +1 -3
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/TargetManager.js +4 -5
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/sdk-meta.js +0 -30
- package/build/node_modules/chrome-devtools-frontend/front_end/foundation/Universe.js +30 -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 +8 -14
- package/build/node_modules/chrome-devtools-frontend/front_end/generated/InspectorBackendCommands.js +9 -6
- package/build/node_modules/chrome-devtools-frontend/front_end/generated/SupportedCSSProperties.js +62 -8
- package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.js +86 -51
- 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 +6 -5
- package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/CompilerScriptMapping.js +3 -1
- package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/DebuggerWorkspaceBinding.js +17 -14
- package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/ResourceMapping.js +46 -14
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/AttributionReportingIssue.js +202 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/BounceTrackingIssue.js +57 -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 +76 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/ContentSecurityPolicyIssue.js +140 -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 +64 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/CookieIssue.js +513 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/CorsIssue.js +251 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/CrossOriginEmbedderPolicyIssue.js +112 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/DeprecationIssue.js +95 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/ElementAccessibilityIssue.js +100 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/FederatedAuthRequestIssue.js +236 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/FederatedAuthUserInfoRequestIssue.js +146 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/GenericIssue.js +197 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/HeavyAdIssue.js +57 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/Issue.js +147 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/IssueAggregator.js +309 -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 +53 -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 +59 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/PartitioningBlobURLIssue.js +63 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/PropertyRuleIssue.js +63 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/QuirksModeIssue.js +53 -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 +91 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/SharedArrayBufferIssue.js +54 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/SharedDictionaryIssue.js +297 -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 +63 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/UnencodedDigestIssue.js +67 -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/genericFormAriaLabelledByToNonExistingId.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/genericFormLabelHasNeitherForNorNestedInput.md +5 -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/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 +56 -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/types/TraceEvents.js +1 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/IgnoreListManager.js +40 -47
- 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/mcp.js +7 -0
- package/build/src/DevToolsConnectionAdapter.js +1 -2
- package/build/src/DevtoolsUtils.js +20 -0
- package/build/src/McpContext.js +9 -2
- package/build/src/McpResponse.js +38 -2
- package/build/src/PageCollector.js +131 -16
- package/build/src/features.js +14 -0
- package/build/src/formatters/consoleFormatter.js +3 -0
- package/build/src/issue-descriptions.js +35 -0
- package/build/src/main.js +6 -1
- package/build/src/third_party/THIRD_PARTY_NOTICES +3 -3
- package/build/src/third_party/index.js +726 -675
- package/build/src/tools/console.js +5 -0
- package/package.json +6 -6
- package/build/node_modules/chrome-devtools-frontend/front_end/core/protocol_client/NodeURL.js +0 -31
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
// Copyright 2020 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 I18n from '../../third_party/i18n/i18n.js';
|
|
5
|
+
import * as Root from '../root/root.js';
|
|
6
|
+
import { DevToolsLocale } from './DevToolsLocale.js';
|
|
7
|
+
import { BUNDLED_LOCALES as BUNDLED_LOCALES_GENERATED, DEFAULT_LOCALE, LOCAL_FETCH_PATTERN, LOCALES, REMOTE_FETCH_PATTERN, } from './locales.js';
|
|
8
|
+
const i18nInstance = new I18n.I18n.I18n(LOCALES, DEFAULT_LOCALE);
|
|
9
|
+
// All the locales that are part of the DevTools bundle and should not be fetched
|
|
10
|
+
// remotely.
|
|
11
|
+
const BUNDLED_LOCALES = new Set([...BUNDLED_LOCALES_GENERATED]);
|
|
12
|
+
/**
|
|
13
|
+
* Look up the best available locale for the requested language through these fall backs:
|
|
14
|
+
* - exact match
|
|
15
|
+
* - progressively shorter prefixes (`de-CH-1996` -> `de-CH` -> `de`)
|
|
16
|
+
* - the default locale ('en-US') if no match is found
|
|
17
|
+
*
|
|
18
|
+
* If `locale` isn't provided, the default is used.
|
|
19
|
+
*/
|
|
20
|
+
export function lookupClosestSupportedDevToolsLocale(locale) {
|
|
21
|
+
return i18nInstance.lookupClosestSupportedLocale(locale);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Returns a list of all supported DevTools locales, including pseudo locales.
|
|
25
|
+
*/
|
|
26
|
+
export function getAllSupportedDevToolsLocales() {
|
|
27
|
+
return [...i18nInstance.supportedLocales];
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Returns the Url from which a locale can be fetched. This depends on the
|
|
31
|
+
* specific locale, as some are bundled with DevTools while others
|
|
32
|
+
* have to be fetched remotely.
|
|
33
|
+
*/
|
|
34
|
+
function getLocaleFetchUrl(locale, location) {
|
|
35
|
+
const remoteBase = Root.Runtime.getRemoteBase(location);
|
|
36
|
+
if (remoteBase?.version && !BUNDLED_LOCALES.has(locale)) {
|
|
37
|
+
return REMOTE_FETCH_PATTERN.replace('@HOST@', 'devtools://devtools')
|
|
38
|
+
.replace('@VERSION@', remoteBase.version)
|
|
39
|
+
.replace('@LOCALE@', locale);
|
|
40
|
+
}
|
|
41
|
+
const path = LOCAL_FETCH_PATTERN.replace('@LOCALE@', locale);
|
|
42
|
+
return new URL(path, import.meta.url).toString();
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Fetches the locale data of the specified locale.
|
|
46
|
+
* Callers have to ensure that `locale` is an officially supported locale.
|
|
47
|
+
* Depending whether a locale is present in `bundledLocales`, the data will be
|
|
48
|
+
* fetched locally or remotely.
|
|
49
|
+
*/
|
|
50
|
+
export async function fetchAndRegisterLocaleData(locale, location = self.location.toString()) {
|
|
51
|
+
const localeDataTextPromise = fetch(getLocaleFetchUrl(locale, location)).then(result => result.json());
|
|
52
|
+
const timeoutPromise = new Promise((_, reject) => window.setTimeout(() => reject(new Error('timed out fetching locale')), 5000));
|
|
53
|
+
const localeData = await Promise.race([timeoutPromise, localeDataTextPromise]);
|
|
54
|
+
i18nInstance.registerLocaleData(locale, localeData);
|
|
55
|
+
}
|
|
56
|
+
export function hasLocaleDataForTest(locale) {
|
|
57
|
+
return i18nInstance.hasLocaleDataForTest(locale);
|
|
58
|
+
}
|
|
59
|
+
export function resetLocaleDataForTest() {
|
|
60
|
+
i18nInstance.resetLocaleDataForTest();
|
|
61
|
+
}
|
|
62
|
+
export function registerLocaleDataForTest(locale, messages) {
|
|
63
|
+
i18nInstance.registerLocaleData(locale, messages);
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Returns an anonymous function that wraps a call to retrieve a localized string.
|
|
67
|
+
* This is introduced so that localized strings can be declared in environments where
|
|
68
|
+
* the i18n system has not been configured and so, cannot be directly invoked. Instead,
|
|
69
|
+
* strings are lazily localized when they are used. This is used for instance in the
|
|
70
|
+
* meta files used to register module extensions.
|
|
71
|
+
*/
|
|
72
|
+
export function getLazilyComputedLocalizedString(registeredStrings, id, values = {}) {
|
|
73
|
+
return () => getLocalizedString(registeredStrings, id, values);
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Retrieve the localized string.
|
|
77
|
+
*/
|
|
78
|
+
export function getLocalizedString(registeredStrings, id, values = {}) {
|
|
79
|
+
return registeredStrings.getLocalizedStringSetFor(DevToolsLocale.instance().locale).getLocalizedString(id, values);
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Register a file's UIStrings with i18n, return function to generate the string ids.
|
|
83
|
+
*/
|
|
84
|
+
export function registerUIStrings(path, stringStructure) {
|
|
85
|
+
return i18nInstance.registerFileStrings(path, stringStructure);
|
|
86
|
+
}
|
|
87
|
+
export function serializeUIString(string, values = {}) {
|
|
88
|
+
const serializedMessage = { string, values };
|
|
89
|
+
return JSON.stringify(serializedMessage);
|
|
90
|
+
}
|
|
91
|
+
export function deserializeUIString(serializedMessage) {
|
|
92
|
+
if (!serializedMessage) {
|
|
93
|
+
return { string: '', values: {} };
|
|
94
|
+
}
|
|
95
|
+
return JSON.parse(serializedMessage);
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Use this function in places where a `LocalizedString` is expected but the
|
|
99
|
+
* term/phrase you want to use does not require translation.
|
|
100
|
+
*/
|
|
101
|
+
export function lockedString(str) {
|
|
102
|
+
return str;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Same as `lockedString` but for places where `i18nLazyString` would be used otherwise.
|
|
106
|
+
*/
|
|
107
|
+
export function lockedLazyString(str) {
|
|
108
|
+
return () => str;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Returns a string of the form:
|
|
112
|
+
* "German (Austria) - Deutsch (Österreich)"
|
|
113
|
+
* where the former locale representation is written in the currently enabled DevTools
|
|
114
|
+
* locale and the latter locale representation is written in the locale of `localeString`.
|
|
115
|
+
*
|
|
116
|
+
* Should the two locales match (i.e. have the same language) then the latter locale
|
|
117
|
+
* representation is written in English.
|
|
118
|
+
*/
|
|
119
|
+
export function getLocalizedLanguageRegion(localeString, devtoolsLocale) {
|
|
120
|
+
const locale = new Intl.Locale(localeString);
|
|
121
|
+
const { language, baseName } = locale;
|
|
122
|
+
const devtoolsLoc = new Intl.Locale(devtoolsLocale.locale);
|
|
123
|
+
const targetLanguage = language === devtoolsLoc.language ? 'en' : baseName;
|
|
124
|
+
const languageInCurrentLocale = new Intl.DisplayNames([devtoolsLocale.locale], { type: 'language' }).of(language);
|
|
125
|
+
const languageInTargetLocale = new Intl.DisplayNames([targetLanguage], { type: 'language' }).of(language);
|
|
126
|
+
let wrappedRegionInCurrentLocale = '';
|
|
127
|
+
let wrappedRegionInTargetLocale = '';
|
|
128
|
+
if (locale.region) {
|
|
129
|
+
const regionInCurrentLocale = new Intl.DisplayNames([devtoolsLocale.locale], { type: 'region', style: 'short' }).of(locale.region);
|
|
130
|
+
const regionInTargetLocale = new Intl.DisplayNames([targetLanguage], { type: 'region', style: 'short' }).of(locale.region);
|
|
131
|
+
wrappedRegionInCurrentLocale = ` (${regionInCurrentLocale})`;
|
|
132
|
+
wrappedRegionInTargetLocale = ` (${regionInTargetLocale})`;
|
|
133
|
+
}
|
|
134
|
+
return `${languageInCurrentLocale}${wrappedRegionInCurrentLocale} - ${languageInTargetLocale}${wrappedRegionInTargetLocale}`;
|
|
135
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
|
|
2
|
+
export const LOCALES = [
|
|
3
|
+
'en-US',
|
|
4
|
+
];
|
|
5
|
+
|
|
6
|
+
export const BUNDLED_LOCALES = [
|
|
7
|
+
'en-US',
|
|
8
|
+
];
|
|
9
|
+
|
|
10
|
+
export const DEFAULT_LOCALE = 'en-US';
|
|
11
|
+
|
|
12
|
+
export const REMOTE_FETCH_PATTERN = '@HOST@/remote/serve_file/@VERSION@/core/i18n/locales/@LOCALE@.json';
|
|
13
|
+
|
|
14
|
+
export const LOCAL_FETCH_PATTERN = './locales/@LOCALE@.json';
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
// Copyright 2021 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
|
+
* @file Uses Intl.NumberFormat.
|
|
6
|
+
* @see go/cpq:i18n-units-design
|
|
7
|
+
*/
|
|
8
|
+
import * as Platform from '../platform/platform.js';
|
|
9
|
+
import { defineFormatter } from './NumberFormatter.js';
|
|
10
|
+
const narrowMillisecondsInteger = defineFormatter({
|
|
11
|
+
style: 'unit',
|
|
12
|
+
unit: 'millisecond',
|
|
13
|
+
unitDisplay: 'narrow',
|
|
14
|
+
minimumFractionDigits: 0,
|
|
15
|
+
maximumFractionDigits: 0,
|
|
16
|
+
});
|
|
17
|
+
const longMilliseconds = defineFormatter({
|
|
18
|
+
style: 'unit',
|
|
19
|
+
unit: 'millisecond',
|
|
20
|
+
unitDisplay: 'long',
|
|
21
|
+
minimumFractionDigits: 0,
|
|
22
|
+
maximumFractionDigits: 0,
|
|
23
|
+
});
|
|
24
|
+
const narrowMicrosecondsInteger = defineFormatter({
|
|
25
|
+
style: 'unit',
|
|
26
|
+
unit: 'microsecond',
|
|
27
|
+
unitDisplay: 'narrow',
|
|
28
|
+
minimumFractionDigits: 0,
|
|
29
|
+
maximumFractionDigits: 0,
|
|
30
|
+
});
|
|
31
|
+
const narrowMillisecondsDecimal = defineFormatter({
|
|
32
|
+
style: 'unit',
|
|
33
|
+
unit: 'millisecond',
|
|
34
|
+
unitDisplay: 'narrow',
|
|
35
|
+
minimumFractionDigits: 2,
|
|
36
|
+
maximumFractionDigits: 2,
|
|
37
|
+
});
|
|
38
|
+
const narrowSecondsDecimal = defineFormatter({
|
|
39
|
+
style: 'unit',
|
|
40
|
+
unit: 'second',
|
|
41
|
+
unitDisplay: 'narrow',
|
|
42
|
+
minimumFractionDigits: 2,
|
|
43
|
+
maximumFractionDigits: 2,
|
|
44
|
+
});
|
|
45
|
+
const shortMinutesDecimal = defineFormatter({
|
|
46
|
+
style: 'unit',
|
|
47
|
+
unit: 'minute',
|
|
48
|
+
unitDisplay: 'short',
|
|
49
|
+
minimumFractionDigits: 0,
|
|
50
|
+
maximumFractionDigits: 1,
|
|
51
|
+
});
|
|
52
|
+
const shortHoursDecimal = defineFormatter({
|
|
53
|
+
style: 'unit',
|
|
54
|
+
unit: 'hour',
|
|
55
|
+
unitDisplay: 'short',
|
|
56
|
+
minimumFractionDigits: 0,
|
|
57
|
+
maximumFractionDigits: 1,
|
|
58
|
+
});
|
|
59
|
+
const longDaysDecimal = defineFormatter({
|
|
60
|
+
style: 'unit',
|
|
61
|
+
unit: 'day',
|
|
62
|
+
unitDisplay: 'long',
|
|
63
|
+
minimumFractionDigits: 0,
|
|
64
|
+
maximumFractionDigits: 1,
|
|
65
|
+
});
|
|
66
|
+
export function formatMicroSecondsTime(time) {
|
|
67
|
+
return millisToString(Platform.Timing.microSecondsToMilliSeconds(time), true);
|
|
68
|
+
}
|
|
69
|
+
export function formatMicroSecondsAsSeconds(time) {
|
|
70
|
+
const milliseconds = Platform.Timing.microSecondsToMilliSeconds(time);
|
|
71
|
+
const seconds = Platform.Timing.milliSecondsToSeconds(milliseconds);
|
|
72
|
+
return narrowSecondsDecimal.format(seconds);
|
|
73
|
+
}
|
|
74
|
+
export function formatMicroSecondsAsMillisFixed(time) {
|
|
75
|
+
const milliseconds = Platform.Timing.microSecondsToMilliSeconds(time);
|
|
76
|
+
return narrowMillisecondsInteger.format(milliseconds);
|
|
77
|
+
}
|
|
78
|
+
export function formatMicroSecondsAsMillisFixedExpanded(time) {
|
|
79
|
+
const milliseconds = Platform.Timing.microSecondsToMilliSeconds(time);
|
|
80
|
+
return longMilliseconds.format(milliseconds);
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* @param higherResolution if true, the output may show as microsends or as milliseconds with a fractional component
|
|
84
|
+
*/
|
|
85
|
+
export function millisToString(ms, higherResolution) {
|
|
86
|
+
if (!isFinite(ms)) {
|
|
87
|
+
return '-';
|
|
88
|
+
}
|
|
89
|
+
if (higherResolution && ms < 0.1) {
|
|
90
|
+
return narrowMicrosecondsInteger.format(ms * 1000);
|
|
91
|
+
}
|
|
92
|
+
if (higherResolution && ms < 1000) {
|
|
93
|
+
return narrowMillisecondsDecimal.format(ms);
|
|
94
|
+
}
|
|
95
|
+
if (ms < 1000) {
|
|
96
|
+
return narrowMillisecondsInteger.format(ms);
|
|
97
|
+
}
|
|
98
|
+
const seconds = ms / 1000;
|
|
99
|
+
if (seconds < 60) {
|
|
100
|
+
return narrowSecondsDecimal.format(seconds);
|
|
101
|
+
}
|
|
102
|
+
const minutes = seconds / 60;
|
|
103
|
+
if (minutes < 60) {
|
|
104
|
+
return shortMinutesDecimal.format(minutes);
|
|
105
|
+
}
|
|
106
|
+
const hours = minutes / 60;
|
|
107
|
+
if (hours < 24) {
|
|
108
|
+
return shortHoursDecimal.format(hours);
|
|
109
|
+
}
|
|
110
|
+
const days = hours / 24;
|
|
111
|
+
return longDaysDecimal.format(days);
|
|
112
|
+
}
|
|
113
|
+
const preciseMillisToStringFormattersCache = new Map();
|
|
114
|
+
export function preciseMillisToString(ms, precision = 0, separator) {
|
|
115
|
+
let formatter = preciseMillisToStringFormattersCache.get(precision);
|
|
116
|
+
if (!formatter) {
|
|
117
|
+
formatter = defineFormatter({
|
|
118
|
+
style: 'unit',
|
|
119
|
+
unit: 'millisecond',
|
|
120
|
+
unitDisplay: 'narrow',
|
|
121
|
+
minimumFractionDigits: precision,
|
|
122
|
+
maximumFractionDigits: precision,
|
|
123
|
+
});
|
|
124
|
+
preciseMillisToStringFormattersCache.set(precision, formatter);
|
|
125
|
+
}
|
|
126
|
+
return formatter.format(ms, separator);
|
|
127
|
+
}
|
|
128
|
+
const preciseSecondsToStringFormattersCache = new Map();
|
|
129
|
+
export function preciseSecondsToString(ms, precision = 0) {
|
|
130
|
+
let formatter = preciseSecondsToStringFormattersCache.get(precision);
|
|
131
|
+
if (!formatter) {
|
|
132
|
+
formatter = defineFormatter({
|
|
133
|
+
style: 'unit',
|
|
134
|
+
unit: 'second',
|
|
135
|
+
unitDisplay: 'narrow',
|
|
136
|
+
minimumFractionDigits: precision,
|
|
137
|
+
maximumFractionDigits: precision,
|
|
138
|
+
});
|
|
139
|
+
preciseSecondsToStringFormattersCache.set(precision, formatter);
|
|
140
|
+
}
|
|
141
|
+
return formatter.format(ms);
|
|
142
|
+
}
|
|
143
|
+
export function secondsToString(seconds, higherResolution) {
|
|
144
|
+
if (!isFinite(seconds)) {
|
|
145
|
+
return '-';
|
|
146
|
+
}
|
|
147
|
+
return millisToString(seconds * 1000, higherResolution);
|
|
148
|
+
}
|
|
@@ -0,0 +1,138 @@
|
|
|
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 { CDPErrorStatus } from './CDPConnection.js';
|
|
5
|
+
import { InspectorBackend, test } from './InspectorBackend.js';
|
|
6
|
+
const LongPollingMethods = new Set(['CSS.takeComputedStyleUpdates']);
|
|
7
|
+
export class DevToolsCDPConnection {
|
|
8
|
+
#transport;
|
|
9
|
+
#lastMessageId = 1;
|
|
10
|
+
#pendingResponsesCount = 0;
|
|
11
|
+
#pendingLongPollingMessageIds = new Set();
|
|
12
|
+
#pendingScripts = [];
|
|
13
|
+
#callbacks = new Map();
|
|
14
|
+
#observers = new Set();
|
|
15
|
+
constructor(transport) {
|
|
16
|
+
this.#transport = transport;
|
|
17
|
+
test.deprecatedRunAfterPendingDispatches = this.deprecatedRunAfterPendingDispatches.bind(this);
|
|
18
|
+
test.sendRawMessage = this.sendRawMessageForTesting.bind(this);
|
|
19
|
+
this.#transport.setOnMessage(this.onMessage.bind(this));
|
|
20
|
+
this.#transport.setOnDisconnect(reason => {
|
|
21
|
+
this.#observers.forEach(observer => observer.onDisconnect(reason));
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
observe(observer) {
|
|
25
|
+
this.#observers.add(observer);
|
|
26
|
+
}
|
|
27
|
+
unobserve(observer) {
|
|
28
|
+
this.#observers.delete(observer);
|
|
29
|
+
}
|
|
30
|
+
send(method, params, sessionId) {
|
|
31
|
+
const messageId = ++this.#lastMessageId;
|
|
32
|
+
const messageObject = {
|
|
33
|
+
id: messageId,
|
|
34
|
+
method,
|
|
35
|
+
};
|
|
36
|
+
if (params) {
|
|
37
|
+
messageObject.params = params;
|
|
38
|
+
}
|
|
39
|
+
if (sessionId) {
|
|
40
|
+
messageObject.sessionId = sessionId;
|
|
41
|
+
}
|
|
42
|
+
if (test.dumpProtocol) {
|
|
43
|
+
test.dumpProtocol('frontend: ' + JSON.stringify(messageObject));
|
|
44
|
+
}
|
|
45
|
+
if (test.onMessageSent) {
|
|
46
|
+
const domain = method.split('.')[0];
|
|
47
|
+
const paramsObject = JSON.parse(JSON.stringify(params || {}));
|
|
48
|
+
test.onMessageSent({ domain, method, params: paramsObject, id: messageId, sessionId });
|
|
49
|
+
}
|
|
50
|
+
++this.#pendingResponsesCount;
|
|
51
|
+
if (LongPollingMethods.has(method)) {
|
|
52
|
+
this.#pendingLongPollingMessageIds.add(messageId);
|
|
53
|
+
}
|
|
54
|
+
return new Promise(resolve => {
|
|
55
|
+
this.#callbacks.set(messageId, { resolve, method, sessionId });
|
|
56
|
+
this.#transport.sendRawMessage(JSON.stringify(messageObject));
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
resolvePendingCalls(sessionId) {
|
|
60
|
+
for (const { resolve, method, sessionId: callbackSessionId } of this.#callbacks.values()) {
|
|
61
|
+
if (sessionId !== callbackSessionId) {
|
|
62
|
+
continue;
|
|
63
|
+
}
|
|
64
|
+
resolve({
|
|
65
|
+
error: {
|
|
66
|
+
message: `Session is unregistering, can\'t dispatch pending call to ${method}`,
|
|
67
|
+
code: CDPErrorStatus.SESSION_NOT_FOUND,
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
sendRawMessageForTesting(method, params, callback, sessionId = '') {
|
|
73
|
+
void this.send(method, params, sessionId).then(response => {
|
|
74
|
+
if ('error' in response && response.error) {
|
|
75
|
+
callback?.(response.error, null);
|
|
76
|
+
}
|
|
77
|
+
else if ('result' in response) {
|
|
78
|
+
callback?.(null, response.result);
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
onMessage(message) {
|
|
83
|
+
if (test.dumpProtocol) {
|
|
84
|
+
test.dumpProtocol('backend: ' + ((typeof message === 'string') ? message : JSON.stringify(message)));
|
|
85
|
+
}
|
|
86
|
+
if (test.onMessageReceived) {
|
|
87
|
+
const messageObjectCopy = JSON.parse((typeof message === 'string') ? message : JSON.stringify(message));
|
|
88
|
+
test.onMessageReceived(messageObjectCopy);
|
|
89
|
+
}
|
|
90
|
+
const messageObject = ((typeof message === 'string') ? JSON.parse(message) : message);
|
|
91
|
+
if ('id' in messageObject && messageObject.id !== undefined) { // just a response for some request
|
|
92
|
+
const callback = this.#callbacks.get(messageObject.id);
|
|
93
|
+
this.#callbacks.delete(messageObject.id);
|
|
94
|
+
if (!callback) {
|
|
95
|
+
// Ignore messages with unknown IDs, we might see puppeteer proxied messages here.
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
callback.resolve(messageObject);
|
|
99
|
+
--this.#pendingResponsesCount;
|
|
100
|
+
this.#pendingLongPollingMessageIds.delete(messageObject.id);
|
|
101
|
+
if (this.#pendingScripts.length && !this.hasOutstandingNonLongPollingRequests()) {
|
|
102
|
+
this.deprecatedRunAfterPendingDispatches();
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
else if ('method' in messageObject) {
|
|
106
|
+
this.#observers.forEach(observer => observer.onEvent(messageObject));
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
InspectorBackend.reportProtocolError('Protocol Error: the message without method', messageObject);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
hasOutstandingNonLongPollingRequests() {
|
|
113
|
+
return this.#pendingResponsesCount - this.#pendingLongPollingMessageIds.size > 0;
|
|
114
|
+
}
|
|
115
|
+
deprecatedRunAfterPendingDispatches(script) {
|
|
116
|
+
if (script) {
|
|
117
|
+
this.#pendingScripts.push(script);
|
|
118
|
+
}
|
|
119
|
+
// Execute all promises.
|
|
120
|
+
setTimeout(() => {
|
|
121
|
+
if (!this.hasOutstandingNonLongPollingRequests()) {
|
|
122
|
+
this.executeAfterPendingDispatches();
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
this.deprecatedRunAfterPendingDispatches();
|
|
126
|
+
}
|
|
127
|
+
}, 0);
|
|
128
|
+
}
|
|
129
|
+
executeAfterPendingDispatches() {
|
|
130
|
+
if (!this.hasOutstandingNonLongPollingRequests()) {
|
|
131
|
+
const scripts = this.#pendingScripts;
|
|
132
|
+
this.#pendingScripts = [];
|
|
133
|
+
for (let id = 0; id < scripts.length; ++id) {
|
|
134
|
+
scripts[id]();
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
import * as InspectorBackendCommands from '../../generated/InspectorBackendCommands.js';
|
|
5
5
|
import { CDPErrorStatus } from './CDPConnection.js';
|
|
6
6
|
import { ConnectionTransport } from './ConnectionTransport.js';
|
|
7
|
-
import {
|
|
7
|
+
import { DevToolsCDPConnection } from './DevToolsCDPConnection.js';
|
|
8
8
|
export const splitQualifiedName = (string) => {
|
|
9
9
|
const [domain, eventName] = string.split('.');
|
|
10
10
|
return [domain, eventName];
|
|
@@ -105,34 +105,12 @@ export const test = {
|
|
|
105
105
|
*/
|
|
106
106
|
onMessageReceived: null,
|
|
107
107
|
};
|
|
108
|
-
const LongPollingMethods = new Set(['CSS.takeComputedStyleUpdates']);
|
|
109
108
|
export class SessionRouter {
|
|
110
109
|
#connection;
|
|
111
|
-
#lastMessageId = 1;
|
|
112
|
-
#pendingResponsesCount = 0;
|
|
113
|
-
#pendingLongPollingMessageIds = new Set();
|
|
114
110
|
#sessions = new Map();
|
|
115
|
-
#pendingScripts = [];
|
|
116
|
-
#callbacks = new Map();
|
|
117
|
-
#observers = new Set();
|
|
118
111
|
constructor(connection) {
|
|
119
112
|
this.#connection = connection;
|
|
120
|
-
|
|
121
|
-
test.sendRawMessage = this.sendRawMessageForTesting.bind(this);
|
|
122
|
-
this.#connection.setOnMessage(this.onMessage.bind(this));
|
|
123
|
-
this.#connection.setOnDisconnect(reason => {
|
|
124
|
-
const session = this.#sessions.get('');
|
|
125
|
-
if (session) {
|
|
126
|
-
session.target.dispose(reason);
|
|
127
|
-
}
|
|
128
|
-
this.#observers.forEach(observer => observer.onDisconnect(reason));
|
|
129
|
-
});
|
|
130
|
-
}
|
|
131
|
-
observe(observer) {
|
|
132
|
-
this.#observers.add(observer);
|
|
133
|
-
}
|
|
134
|
-
unobserve(observer) {
|
|
135
|
-
this.#observers.delete(observer);
|
|
113
|
+
this.#connection.observe(this);
|
|
136
114
|
}
|
|
137
115
|
registerSession(target, sessionId) {
|
|
138
116
|
this.#sessions.set(sessionId, { target });
|
|
@@ -142,136 +120,32 @@ export class SessionRouter {
|
|
|
142
120
|
if (!session) {
|
|
143
121
|
return;
|
|
144
122
|
}
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
continue;
|
|
148
|
-
}
|
|
149
|
-
resolve({
|
|
150
|
-
error: {
|
|
151
|
-
message: `Session is unregistering, can\'t dispatch pending call to ${method}`,
|
|
152
|
-
code: CDPErrorStatus.SESSION_NOT_FOUND,
|
|
153
|
-
}
|
|
154
|
-
});
|
|
123
|
+
if (this.#connection instanceof DevToolsCDPConnection) {
|
|
124
|
+
this.#connection.resolvePendingCalls(sessionId);
|
|
155
125
|
}
|
|
156
126
|
this.#sessions.delete(sessionId);
|
|
157
127
|
}
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
return this.#connection;
|
|
163
|
-
}
|
|
164
|
-
send(method, params, sessionId) {
|
|
165
|
-
const messageId = this.nextMessageId();
|
|
166
|
-
const messageObject = {
|
|
167
|
-
id: messageId,
|
|
168
|
-
method,
|
|
169
|
-
};
|
|
170
|
-
if (params) {
|
|
171
|
-
messageObject.params = params;
|
|
172
|
-
}
|
|
173
|
-
if (sessionId) {
|
|
174
|
-
messageObject.sessionId = sessionId;
|
|
128
|
+
onDisconnect(reason) {
|
|
129
|
+
const session = this.#sessions.get('');
|
|
130
|
+
if (session) {
|
|
131
|
+
session.target.dispose(reason);
|
|
175
132
|
}
|
|
176
|
-
if (test.dumpProtocol) {
|
|
177
|
-
test.dumpProtocol('frontend: ' + JSON.stringify(messageObject));
|
|
178
|
-
}
|
|
179
|
-
if (test.onMessageSent) {
|
|
180
|
-
const domain = method.split('.')[0];
|
|
181
|
-
const paramsObject = JSON.parse(JSON.stringify(params || {}));
|
|
182
|
-
test.onMessageSent({ domain, method, params: paramsObject, id: messageId, sessionId });
|
|
183
|
-
}
|
|
184
|
-
++this.#pendingResponsesCount;
|
|
185
|
-
if (LongPollingMethods.has(method)) {
|
|
186
|
-
this.#pendingLongPollingMessageIds.add(messageId);
|
|
187
|
-
}
|
|
188
|
-
return new Promise(resolve => {
|
|
189
|
-
this.#callbacks.set(messageId, { resolve, method, sessionId });
|
|
190
|
-
this.#connection.sendRawMessage(JSON.stringify(messageObject));
|
|
191
|
-
});
|
|
192
|
-
}
|
|
193
|
-
sendRawMessageForTesting(method, params, callback, sessionId = '') {
|
|
194
|
-
void this.send(method, params, sessionId).then(response => {
|
|
195
|
-
if ('error' in response && response.error) {
|
|
196
|
-
callback?.(response.error, null);
|
|
197
|
-
}
|
|
198
|
-
else if ('result' in response) {
|
|
199
|
-
callback?.(null, response.result);
|
|
200
|
-
}
|
|
201
|
-
});
|
|
202
133
|
}
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
test.dumpProtocol('backend: ' + ((typeof message === 'string') ? message : JSON.stringify(message)));
|
|
206
|
-
}
|
|
207
|
-
if (test.onMessageReceived) {
|
|
208
|
-
const messageObjectCopy = JSON.parse((typeof message === 'string') ? message : JSON.stringify(message));
|
|
209
|
-
test.onMessageReceived(messageObjectCopy);
|
|
210
|
-
}
|
|
211
|
-
const messageObject = ((typeof message === 'string') ? JSON.parse(message) : message);
|
|
212
|
-
const sessionId = messageObject.sessionId || '';
|
|
134
|
+
onEvent(event) {
|
|
135
|
+
const sessionId = event.sessionId || '';
|
|
213
136
|
const session = this.#sessions.get(sessionId);
|
|
214
|
-
|
|
215
|
-
NodeURL.patch(messageObject);
|
|
216
|
-
}
|
|
217
|
-
if ('id' in messageObject && messageObject.id !== undefined) { // just a response for some request
|
|
218
|
-
const callback = this.#callbacks.get(messageObject.id);
|
|
219
|
-
this.#callbacks.delete(messageObject.id);
|
|
220
|
-
if (!callback) {
|
|
221
|
-
// Ignore messages with unknown IDs, we might see puppeteer proxied messages here.
|
|
222
|
-
return;
|
|
223
|
-
}
|
|
224
|
-
callback.resolve(messageObject);
|
|
225
|
-
--this.#pendingResponsesCount;
|
|
226
|
-
this.#pendingLongPollingMessageIds.delete(messageObject.id);
|
|
227
|
-
if (this.#pendingScripts.length && !this.hasOutstandingNonLongPollingRequests()) {
|
|
228
|
-
this.deprecatedRunAfterPendingDispatches();
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
else if ('method' in messageObject) {
|
|
232
|
-
// This cast is justified as we just checked for the presence of messageObject.method.
|
|
233
|
-
session?.target.dispatch(messageObject);
|
|
234
|
-
this.#observers.forEach(observer => observer.onEvent(messageObject));
|
|
235
|
-
}
|
|
236
|
-
else {
|
|
237
|
-
InspectorBackend.reportProtocolError('Protocol Error: the message without method', messageObject);
|
|
238
|
-
}
|
|
137
|
+
session?.target.dispatch(event);
|
|
239
138
|
}
|
|
240
|
-
|
|
241
|
-
return this.#
|
|
242
|
-
}
|
|
243
|
-
deprecatedRunAfterPendingDispatches(script) {
|
|
244
|
-
if (script) {
|
|
245
|
-
this.#pendingScripts.push(script);
|
|
246
|
-
}
|
|
247
|
-
// Execute all promises.
|
|
248
|
-
window.setTimeout(() => {
|
|
249
|
-
if (!this.hasOutstandingNonLongPollingRequests()) {
|
|
250
|
-
this.executeAfterPendingDispatches();
|
|
251
|
-
}
|
|
252
|
-
else {
|
|
253
|
-
this.deprecatedRunAfterPendingDispatches();
|
|
254
|
-
}
|
|
255
|
-
}, 0);
|
|
256
|
-
}
|
|
257
|
-
executeAfterPendingDispatches() {
|
|
258
|
-
if (!this.hasOutstandingNonLongPollingRequests()) {
|
|
259
|
-
const scripts = this.#pendingScripts;
|
|
260
|
-
this.#pendingScripts = [];
|
|
261
|
-
for (let id = 0; id < scripts.length; ++id) {
|
|
262
|
-
scripts[id]();
|
|
263
|
-
}
|
|
264
|
-
}
|
|
139
|
+
get connection() {
|
|
140
|
+
return this.#connection;
|
|
265
141
|
}
|
|
266
142
|
}
|
|
267
143
|
export class TargetBase {
|
|
268
|
-
needsNodeJSPatching;
|
|
269
144
|
sessionId;
|
|
270
145
|
#router;
|
|
271
146
|
#agents = new Map();
|
|
272
147
|
#dispatchers = new Map();
|
|
273
|
-
constructor(
|
|
274
|
-
this.needsNodeJSPatching = needsNodeJSPatching;
|
|
148
|
+
constructor(parentTarget, sessionId, connection) {
|
|
275
149
|
this.sessionId = sessionId;
|
|
276
150
|
if (parentTarget && !sessionId) {
|
|
277
151
|
throw new Error('Specifying a parent target requires a session ID');
|
|
@@ -284,7 +158,7 @@ export class TargetBase {
|
|
|
284
158
|
router = new SessionRouter(connection);
|
|
285
159
|
}
|
|
286
160
|
else {
|
|
287
|
-
router = new SessionRouter(ConnectionTransport.getFactory()());
|
|
161
|
+
router = new SessionRouter(new DevToolsCDPConnection(ConnectionTransport.getFactory()()));
|
|
288
162
|
}
|
|
289
163
|
this.#router = router;
|
|
290
164
|
router.registerSession(this, this.sessionId);
|
|
@@ -316,9 +190,6 @@ export class TargetBase {
|
|
|
316
190
|
isDisposed() {
|
|
317
191
|
return !this.#router;
|
|
318
192
|
}
|
|
319
|
-
markAsNodeJSForTest() {
|
|
320
|
-
this.needsNodeJSPatching = true;
|
|
321
|
-
}
|
|
322
193
|
router() {
|
|
323
194
|
return this.#router;
|
|
324
195
|
}
|
|
@@ -570,9 +441,6 @@ export class TargetBase {
|
|
|
570
441
|
registerWebAuthnDispatcher(dispatcher) {
|
|
571
442
|
this.registerDispatcher('WebAuthn', dispatcher);
|
|
572
443
|
}
|
|
573
|
-
getNeedsNodeJSPatching() {
|
|
574
|
-
return this.needsNodeJSPatching;
|
|
575
|
-
}
|
|
576
444
|
}
|
|
577
445
|
/** These are not logged as console.error */
|
|
578
446
|
const IGNORED_ERRORS = new Set([
|
|
@@ -608,11 +476,12 @@ class AgentPrototype {
|
|
|
608
476
|
this['invoke_' + methodName] = invoke;
|
|
609
477
|
}
|
|
610
478
|
invoke(method, request) {
|
|
611
|
-
const
|
|
612
|
-
if (!
|
|
479
|
+
const connection = this.target.router()?.connection;
|
|
480
|
+
if (!connection) {
|
|
613
481
|
return Promise.resolve({ result: null, getError: () => `Connection is closed, can\'t dispatch pending call to ${method}` });
|
|
614
482
|
}
|
|
615
|
-
return
|
|
483
|
+
return connection.send(method, request, this.target.sessionId)
|
|
484
|
+
.then(response => {
|
|
616
485
|
if ('error' in response && response.error) {
|
|
617
486
|
if (!test.suppressRequestErrors && !IGNORED_ERRORS.has(response.error.code)) {
|
|
618
487
|
console.error('Request ' + method + ' failed. ' + JSON.stringify(response.error));
|