chrome-devtools-frontend 1.0.1665921 → 1.0.1666631
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/.agents/skills/devtools-testing-guidance/SKILL.md +4 -0
- package/.agents/skills/migrate-chromium-test/SKILL.md +63 -48
- package/.agents/skills/ui-eng-vision-local-lit-renderer/SKILL.md +14 -5
- package/.agents/skills/ui-eng-vision-logic-consolidator/SKILL.md +11 -2
- package/.agents/skills/ui-eng-vision-orchestrator/SKILL.md +46 -9
- package/.agents/skills/ui-eng-vision-test-scaffolder/SKILL.md +20 -1
- package/.agents/skills/ui-eng-vision-widget-promoter/SKILL.md +9 -0
- package/front_end/core/host/AidaClient.ts +109 -60
- package/front_end/core/host/GcaClient.ts +3 -3
- package/front_end/core/host/UserMetrics.ts +1 -12
- package/front_end/core/sdk/NetworkRequest.ts +10 -55
- package/front_end/entrypoints/main/MainImpl.ts +0 -10
- package/front_end/foundation/Universe.ts +16 -0
- package/front_end/generated/InspectorBackendCommands.ts +2 -2
- package/front_end/generated/protocol.ts +2 -1
- package/front_end/models/ai_assistance/agents/AiAgent.ts +22 -13
- package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.ts +21 -5
- package/front_end/models/issues_manager/CookieIssue.ts +6 -127
- package/front_end/models/issues_manager/descriptions/CoepCorpNotSameOrigin.md +2 -2
- package/front_end/models/issues_manager/descriptions/CoepCorpNotSameOriginAfterDefaultedToSameOriginByCoep.md +3 -3
- package/front_end/models/issues_manager/descriptions/CoepCorpNotSameSite.md +2 -2
- package/front_end/models/issues_manager/descriptions/CoepFrameResourceNeedsCoepHeader.md +1 -1
- package/front_end/models/issues_manager/descriptions/CompatibilityModeQuirks.md +1 -1
- package/front_end/models/issues_manager/descriptions/CookieAttributeValueExceedsMaxSize.md +2 -2
- package/front_end/models/issues_manager/descriptions/LowTextContrast.md +1 -1
- package/front_end/models/issues_manager/descriptions/SameSiteNoneInsecureErrorRead.md +1 -1
- package/front_end/models/issues_manager/descriptions/SameSiteNoneInsecureErrorSet.md +1 -1
- package/front_end/models/issues_manager/descriptions/SameSiteNoneInsecureWarnRead.md +1 -1
- package/front_end/models/issues_manager/descriptions/SameSiteNoneInsecureWarnSet.md +1 -1
- package/front_end/models/issues_manager/descriptions/SameSiteUnspecifiedLaxAllowUnsafeRead.md +3 -3
- package/front_end/models/issues_manager/descriptions/SameSiteUnspecifiedLaxAllowUnsafeSet.md +3 -3
- package/front_end/models/issues_manager/descriptions/bounceTrackingMitigations.md +1 -1
- package/front_end/models/issues_manager/descriptions/connectionAllowlistInvalidAllowlistItemType.md +2 -2
- package/front_end/models/issues_manager/descriptions/connectionAllowlistInvalidHeader.md +2 -2
- package/front_end/models/issues_manager/descriptions/connectionAllowlistInvalidUrlPattern.md +3 -3
- package/front_end/models/issues_manager/descriptions/connectionAllowlistItemNotInnerList.md +2 -2
- package/front_end/models/issues_manager/descriptions/connectionAllowlistMoreThanOneList.md +2 -2
- package/front_end/models/issues_manager/descriptions/connectionAllowlistReportingEndpointNotToken.md +1 -1
- package/front_end/models/issues_manager/descriptions/cookieCrossSiteRedirectDowngrade.md +3 -3
- package/front_end/models/issues_manager/descriptions/cookieExcludeBlockedWithinRelatedWebsiteSet.md +1 -1
- package/front_end/models/issues_manager/descriptions/cookieExcludePortMismatch.md +1 -1
- package/front_end/models/issues_manager/descriptions/cookieExcludeSchemeMismatch.md +1 -1
- package/front_end/models/issues_manager/descriptions/cookieExcludeThirdPartyPhaseoutSet.md +1 -1
- package/front_end/models/issues_manager/descriptions/cookieWarnThirdPartyPhaseoutRead.md +1 -1
- package/front_end/models/issues_manager/descriptions/corsAllowCredentialsRequired.md +1 -1
- package/front_end/models/issues_manager/descriptions/corsDisabledScheme.md +2 -2
- package/front_end/models/issues_manager/descriptions/corsDisallowedByMode.md +2 -2
- package/front_end/models/issues_manager/descriptions/corsHeaderDisallowedByPreflightResponse.md +1 -1
- package/front_end/models/issues_manager/descriptions/corsInvalidHeaderValues.md +3 -3
- package/front_end/models/issues_manager/descriptions/corsLocalNetworkAccessPermissionDenied.md +1 -1
- package/front_end/models/issues_manager/descriptions/corsMethodDisallowedByPreflightResponse.md +1 -1
- package/front_end/models/issues_manager/descriptions/corsNoCorsRedirectModeNotFollow.md +1 -1
- package/front_end/models/issues_manager/descriptions/corsOriginMismatch.md +3 -3
- package/front_end/models/issues_manager/descriptions/corsPreflightResponseInvalid.md +2 -2
- package/front_end/models/issues_manager/descriptions/corsRedirectContainsCredentials.md +3 -3
- package/front_end/models/issues_manager/descriptions/corsWildcardOriginNotAllowed.md +4 -3
- package/front_end/models/issues_manager/descriptions/cspEvalViolation.md +4 -4
- package/front_end/models/issues_manager/descriptions/cspInlineViolation.md +2 -2
- package/front_end/models/issues_manager/descriptions/cspTrustedTypesPolicyViolation.md +2 -2
- package/front_end/models/issues_manager/descriptions/cspTrustedTypesSinkViolation.md +4 -4
- package/front_end/models/issues_manager/descriptions/cspURLViolation.md +4 -4
- package/front_end/models/issues_manager/descriptions/emailVerificationRequestAccountsEmptyList.md +1 -1
- package/front_end/models/issues_manager/descriptions/emailVerificationRequestAccountsHttpNotFound.md +1 -1
- package/front_end/models/issues_manager/descriptions/emailVerificationRequestAccountsInvalidContentType.md +1 -1
- package/front_end/models/issues_manager/descriptions/emailVerificationRequestAccountsInvalidResponse.md +1 -1
- package/front_end/models/issues_manager/descriptions/emailVerificationRequestAccountsNoResponse.md +1 -1
- package/front_end/models/issues_manager/descriptions/emailVerificationRequestDnsFetchFailed.md +1 -1
- package/front_end/models/issues_manager/descriptions/emailVerificationRequestDnsInvalidRecord.md +1 -1
- package/front_end/models/issues_manager/descriptions/emailVerificationRequestEmailVerificationWellKnownHttpNotFound.md +1 -1
- package/front_end/models/issues_manager/descriptions/emailVerificationRequestEmailVerificationWellKnownInvalidContentType.md +1 -1
- package/front_end/models/issues_manager/descriptions/emailVerificationRequestEmailVerificationWellKnownInvalidResponse.md +1 -1
- package/front_end/models/issues_manager/descriptions/emailVerificationRequestEmailVerificationWellKnownNoResponse.md +1 -1
- package/front_end/models/issues_manager/descriptions/emailVerificationRequestInvalidEmail.md +1 -1
- package/front_end/models/issues_manager/descriptions/emailVerificationRequestJwksHttpNotFound.md +1 -1
- package/front_end/models/issues_manager/descriptions/emailVerificationRequestJwksInvalidResponse.md +1 -1
- package/front_end/models/issues_manager/descriptions/emailVerificationRequestKeyBindingSigningFailed.md +1 -1
- package/front_end/models/issues_manager/descriptions/emailVerificationRequestRpOriginIsOpaque.md +1 -1
- package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenHttpNotFound.md +1 -1
- package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenInvalidContentType.md +1 -1
- package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenInvalidResponse.md +1 -1
- package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenInvalidSdJwt.md +1 -1
- package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenMalformedSdJwt.md +1 -1
- package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenNoResponse.md +1 -1
- package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationKbInvalidAudience.md +1 -1
- package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationKbInvalidIssuedAt.md +1 -1
- package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationKbInvalidNonce.md +1 -1
- package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationKbInvalidSdHash.md +1 -1
- package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationKbInvalidTyp.md +1 -1
- package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationKbMissingAud.md +1 -1
- package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationKbMissingCnf.md +1 -1
- package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationKbMissingIat.md +1 -1
- package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationKbMissingNonce.md +1 -1
- package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationKbMissingSdHash.md +1 -1
- package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationKbSignatureFailed.md +1 -1
- package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationSdJwtInvalidEmail.md +1 -1
- package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationSdJwtInvalidEmailVerified.md +1 -1
- package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationSdJwtInvalidHolderKey.md +1 -1
- package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationSdJwtInvalidIssuedAt.md +1 -1
- package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationSdJwtInvalidIssuer.md +1 -1
- package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationSdJwtJwksMissingKeys.md +1 -1
- package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationSdJwtMissingCnf.md +1 -1
- package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationSdJwtMissingEmail.md +1 -1
- package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationSdJwtMissingIat.md +1 -1
- package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationSdJwtMissingIss.md +1 -1
- package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationSdJwtSignatureFailed.md +1 -1
- package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationSdJwtUnsupportedHeaderAlg.md +1 -1
- package/front_end/models/issues_manager/descriptions/emailVerificationRequestUserLoggedOut.md +1 -1
- package/front_end/models/issues_manager/descriptions/emailVerificationRequestWellKnownAccountsEndpointCrossOrigin.md +1 -1
- package/front_end/models/issues_manager/descriptions/emailVerificationRequestWellKnownHttpNotFound.md +1 -1
- package/front_end/models/issues_manager/descriptions/emailVerificationRequestWellKnownInvalidContentType.md +1 -1
- package/front_end/models/issues_manager/descriptions/emailVerificationRequestWellKnownInvalidResponse.md +1 -1
- package/front_end/models/issues_manager/descriptions/emailVerificationRequestWellKnownIssuanceEndpointCrossOrigin.md +1 -1
- package/front_end/models/issues_manager/descriptions/emailVerificationRequestWellKnownListEmpty.md +1 -1
- package/front_end/models/issues_manager/descriptions/emailVerificationRequestWellKnownMissingAccountsEndpoint.md +1 -1
- package/front_end/models/issues_manager/descriptions/emailVerificationRequestWellKnownMissingIssuanceEndpoint.md +1 -1
- package/front_end/models/issues_manager/descriptions/emailVerificationRequestWellKnownNoResponse.md +1 -1
- package/front_end/models/issues_manager/descriptions/emailVerificationRequestWellKnownUnsupportedSigningAlgorithm.md +1 -1
- package/front_end/models/issues_manager/descriptions/federatedAuthRequestAccountsHttpNotFound.md +1 -1
- package/front_end/models/issues_manager/descriptions/federatedAuthRequestAccountsInvalidResponse.md +1 -1
- package/front_end/models/issues_manager/descriptions/federatedAuthRequestAccountsNoResponse.md +1 -1
- package/front_end/models/issues_manager/descriptions/federatedAuthRequestApprovalDeclined.md +1 -1
- package/front_end/models/issues_manager/descriptions/federatedAuthRequestCanceled.md +1 -1
- package/front_end/models/issues_manager/descriptions/federatedAuthRequestErrorFetchingSignin.md +1 -1
- package/front_end/models/issues_manager/descriptions/federatedAuthRequestErrorIdToken.md +1 -1
- package/front_end/models/issues_manager/descriptions/federatedAuthRequestIdTokenHttpNotFound.md +1 -1
- package/front_end/models/issues_manager/descriptions/federatedAuthRequestIdTokenInvalidRequest.md +1 -1
- package/front_end/models/issues_manager/descriptions/federatedAuthRequestIdTokenInvalidResponse.md +1 -1
- package/front_end/models/issues_manager/descriptions/federatedAuthRequestIdTokenNoResponse.md +1 -1
- package/front_end/models/issues_manager/descriptions/federatedAuthRequestInvalidSigninResponse.md +1 -1
- package/front_end/models/issues_manager/descriptions/federatedAuthRequestManifestHttpNotFound.md +1 -1
- package/front_end/models/issues_manager/descriptions/federatedAuthRequestManifestInvalidResponse.md +1 -1
- package/front_end/models/issues_manager/descriptions/federatedAuthRequestManifestNoResponse.md +1 -1
- package/front_end/models/issues_manager/descriptions/federatedAuthRequestTooManyRequests.md +1 -1
- package/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestInvalidAccountsResponse.md +1 -1
- package/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestInvalidConfigOrWellKnown.md +1 -1
- package/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNoAccountSharingPermission.md +1 -1
- package/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNoApiPermission.md +1 -1
- package/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNoReturningUserFromFetchedAccounts.md +1 -1
- package/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotIframe.md +1 -1
- package/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotPotentiallyTrustworthy.md +1 -1
- package/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotSameOrigin.md +1 -1
- package/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotSignedInWithIdp.md +1 -1
- package/front_end/models/issues_manager/descriptions/fetchingPartitionedBlobURL.md +2 -2
- package/front_end/models/issues_manager/descriptions/genericFormAriaLabelledByToNonExistingIdError.md +2 -2
- package/front_end/models/issues_manager/descriptions/genericFormAutocompleteAttributeEmptyError.md +1 -1
- package/front_end/models/issues_manager/descriptions/genericFormDuplicateIdForInputError.md +1 -1
- package/front_end/models/issues_manager/descriptions/genericFormEmptyIdAndNameAttributesForInputError.md +2 -2
- package/front_end/models/issues_manager/descriptions/genericFormInputAssignedAutocompleteValueToIdOrNameAttributeError.md +2 -2
- package/front_end/models/issues_manager/descriptions/genericFormInputHasWrongButWellIntendedAutocompleteValueError.md +1 -1
- package/front_end/models/issues_manager/descriptions/genericFormInputWithNoLabelError.md +1 -1
- package/front_end/models/issues_manager/descriptions/genericFormLabelForMatchesNonExistingIdError.md +2 -2
- package/front_end/models/issues_manager/descriptions/genericFormLabelForNameError.md +1 -1
- package/front_end/models/issues_manager/descriptions/genericFormLabelHasNeitherForNorNestedInputError.md +1 -1
- package/front_end/models/issues_manager/descriptions/genericFormModelContextMissingToolName.md +1 -1
- package/front_end/models/issues_manager/descriptions/genericFormModelContextParameterMissingName.md +1 -1
- package/front_end/models/issues_manager/descriptions/genericFormModelContextRequiredParameterMissingName.md +1 -1
- package/front_end/models/issues_manager/descriptions/genericNavigationEntryMarkedSkippable.md +2 -2
- package/front_end/models/issues_manager/descriptions/heavyAd.md +1 -1
- package/front_end/models/issues_manager/descriptions/lazyLoadImageZeroSize.md +1 -1
- package/front_end/models/issues_manager/descriptions/navigatingPartitionedBlobURL.md +3 -3
- package/front_end/models/issues_manager/descriptions/permissionElementActivationDisabled.md +1 -1
- package/front_end/models/issues_manager/descriptions/permissionElementActivationDisabledWithOccluder.md +1 -1
- package/front_end/models/issues_manager/descriptions/permissionElementActivationDisabledWithOccluderParent.md +1 -1
- package/front_end/models/issues_manager/descriptions/permissionElementFencedFrameDisallowed.md +2 -2
- package/front_end/models/issues_manager/descriptions/permissionElementFontSizeTooLarge.md +2 -2
- package/front_end/models/issues_manager/descriptions/permissionElementFontSizeTooSmall.md +2 -2
- package/front_end/models/issues_manager/descriptions/permissionElementInsetBoxShadowUnsupported.md +1 -1
- package/front_end/models/issues_manager/descriptions/permissionElementInvalidDisplayStyle.md +2 -2
- package/front_end/models/issues_manager/descriptions/permissionElementInvalidSizeValue.md +2 -2
- package/front_end/models/issues_manager/descriptions/permissionElementInvalidType.md +2 -2
- package/front_end/models/issues_manager/descriptions/permissionElementInvalidTypeActivation.md +2 -2
- package/front_end/models/issues_manager/descriptions/permissionElementNonOpaqueColor.md +1 -1
- package/front_end/models/issues_manager/descriptions/permissionElementPaddingBottomUnsupported.md +2 -2
- package/front_end/models/issues_manager/descriptions/permissionElementPaddingRightUnsupported.md +2 -2
- package/front_end/models/issues_manager/descriptions/permissionElementRequestInProgress.md +2 -2
- package/front_end/models/issues_manager/descriptions/permissionElementSecurityChecksFailed.md +1 -1
- package/front_end/models/issues_manager/descriptions/permissionElementTypeNotSupported.md +2 -2
- package/front_end/models/issues_manager/descriptions/permissionElementUntrustedEvent.md +1 -1
- package/front_end/models/issues_manager/descriptions/placeholderDescriptionForInvisibleIssues.md +1 -1
- package/front_end/models/issues_manager/descriptions/selectElementAccessibilityDisallowedOptGroupChild.md +1 -1
- package/front_end/models/issues_manager/descriptions/selectElementAccessibilityDisallowedSelectChild.md +1 -1
- package/front_end/models/issues_manager/descriptions/selectElementAccessibilityInteractiveContentAttributesSelectDescendant.md +1 -1
- package/front_end/models/issues_manager/descriptions/selectElementAccessibilityInteractiveContentLegendChild.md +1 -1
- package/front_end/models/issues_manager/descriptions/selectElementAccessibilityInteractiveContentOptionChild.md +1 -1
- package/front_end/models/issues_manager/descriptions/selectElementAccessibilityNonPhrasingContentOptionChild.md +1 -1
- package/front_end/models/issues_manager/descriptions/selectivePermissionsIntervention.md +3 -3
- package/front_end/models/issues_manager/descriptions/sharedArrayBuffer.md +1 -1
- package/front_end/models/issues_manager/descriptions/sharedDictionaryUseErrorCrossOriginNoCorsRequest.md +1 -1
- package/front_end/models/issues_manager/descriptions/sharedDictionaryUseErrorMatchingDictionaryNotUsed.md +1 -1
- package/front_end/models/issues_manager/descriptions/sharedDictionaryUseErrorUnexpectedContentDictionaryHeader.md +1 -1
- package/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorCossOriginNoCorsRequest.md +1 -1
- package/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorDisallowedBySettings.md +1 -1
- package/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorExpiredResponse.md +1 -1
- package/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorFeatureDisabled.md +2 -2
- package/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorInvalidStructuredHeader.md +1 -1
- package/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorNavigationRequest.md +2 -2
- package/front_end/models/issues_manager/descriptions/sriInvalidSignatureHeader.md +4 -4
- package/front_end/models/issues_manager/descriptions/sriInvalidSignatureInputHeader.md +4 -4
- package/front_end/models/issues_manager/descriptions/sriMissingSignatureHeader.md +1 -1
- package/front_end/models/issues_manager/descriptions/sriMissingSignatureInputHeader.md +2 -2
- package/front_end/models/issues_manager/descriptions/sriSignatureHeaderValueIsIncorrectLength.md +2 -2
- package/front_end/models/issues_manager/descriptions/sriSignatureHeaderValueIsNotByteSequence.md +4 -4
- package/front_end/models/issues_manager/descriptions/sriSignatureHeaderValueIsParameterized.md +4 -4
- package/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidComponentName.md +1 -1
- package/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidComponentType.md +2 -2
- package/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidDerivedComponentParameter.md +1 -1
- package/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidHeaderComponentParameter.md +1 -1
- package/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidParameter.md +2 -2
- package/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderKeyIdLength.md +5 -5
- package/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderMissingLabel.md +3 -3
- package/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderMissingRequiredParameters.md +2 -2
- package/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderValueMissingComponents.md +2 -2
- package/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderValueNotInnerList.md +2 -2
- package/front_end/models/issues_manager/descriptions/sriValidationFailedIntegrityMismatch.md +4 -4
- package/front_end/models/issues_manager/descriptions/sriValidationFailedInvalidLength.md +3 -3
- package/front_end/models/issues_manager/descriptions/sriValidationFailedSignatureExpired.md +2 -2
- package/front_end/models/issues_manager/descriptions/sriValidationFailedSignatureMismatch.md +2 -2
- package/front_end/models/issues_manager/descriptions/stylesheetLateImport.md +1 -1
- package/front_end/models/issues_manager/descriptions/summaryElementAccessibilityInteractiveContentSummaryDescendant.md +1 -1
- package/front_end/models/issues_manager/descriptions/unencodedDigestIncorrectDigestLength.md +2 -2
- package/front_end/models/issues_manager/descriptions/unencodedDigestIncorrectDigestType.md +3 -3
- package/front_end/models/issues_manager/descriptions/unencodedDigestMalformedDictionary.md +2 -2
- package/front_end/models/issues_manager/descriptions/unencodedDigestUnknownAlgorithm.md +1 -1
- package/front_end/panels/application/DOMStorageItemsView.ts +1 -2
- package/front_end/panels/application/KeyValueStorageItemsView.ts +12 -0
- package/front_end/panels/elements/StylePropertiesSection.ts +25 -9
- package/front_end/panels/elements/StylesSidebarPane.ts +48 -0
- package/front_end/panels/emulation/DeviceModeToolbar.ts +0 -1
- package/front_end/panels/emulation/DeviceModeView.ts +289 -164
- package/front_end/panels/emulation/MediaQueryInspector.ts +10 -6
- package/front_end/panels/emulation/deviceModeView.css +1 -0
- package/front_end/panels/lighthouse/LighthouseController.ts +1 -6
- package/front_end/panels/sources/breakpointEditDialog.css +2 -2
- package/front_end/third_party/chromium/README.chromium +1 -1
- package/front_end/ui/components/text_editor/AiCodeGenerationProvider.ts +1 -2
- package/package.json +1 -2
- package/front_end/models/issues_manager/descriptions/SameSiteExcludeContextDowngradeRead.md +0 -8
- package/front_end/models/issues_manager/descriptions/SameSiteExcludeContextDowngradeSet.md +0 -8
- package/front_end/models/issues_manager/descriptions/SameSiteExcludeNavigationContextDowngrade.md +0 -8
- package/front_end/models/issues_manager/descriptions/SameSiteWarnCrossDowngradeRead.md +0 -8
- package/front_end/models/issues_manager/descriptions/SameSiteWarnCrossDowngradeSet.md +0 -8
- package/front_end/models/issues_manager/descriptions/SameSiteWarnStrictLaxDowngradeStrict.md +0 -8
|
@@ -91,8 +91,8 @@ export class GcaClient {
|
|
|
91
91
|
return result ? gcaResponseToAidaGenerateCodeResponse(result) : null;
|
|
92
92
|
}
|
|
93
93
|
|
|
94
|
-
async #requestContent(request: GenerateContentRequest,
|
|
95
|
-
|
|
94
|
+
async #requestContent(request: GenerateContentRequest,
|
|
95
|
+
options?: {signal?: AbortSignal}): Promise<GenerateContentResponse> {
|
|
96
96
|
try {
|
|
97
97
|
const response = await DispatchHttpRequestClient.makeHttpRequest<GenerateContentResponse>(
|
|
98
98
|
{
|
|
@@ -106,7 +106,7 @@ export class GcaClient {
|
|
|
106
106
|
return response;
|
|
107
107
|
} catch (err) {
|
|
108
108
|
debugLog('GCA request failed:', JSON.stringify(request), err);
|
|
109
|
-
|
|
109
|
+
throw err;
|
|
110
110
|
}
|
|
111
111
|
}
|
|
112
112
|
}
|
|
@@ -813,18 +813,7 @@ export enum IssueCreated {
|
|
|
813
813
|
'CookieIssue::ExcludeSameSiteNoneInsecure::SetCookie' = 15,
|
|
814
814
|
'CookieIssue::WarnSameSiteNoneInsecure::ReadCookie' = 16,
|
|
815
815
|
'CookieIssue::WarnSameSiteNoneInsecure::SetCookie' = 17,
|
|
816
|
-
|
|
817
|
-
'CookieIssue::WarnSameSiteStrictLaxDowngradeStrict::Insecure' = 19,
|
|
818
|
-
'CookieIssue::WarnCrossDowngrade::ReadCookie::Secure' = 20,
|
|
819
|
-
'CookieIssue::WarnCrossDowngrade::ReadCookie::Insecure' = 21,
|
|
820
|
-
'CookieIssue::WarnCrossDowngrade::SetCookie::Secure' = 22,
|
|
821
|
-
'CookieIssue::WarnCrossDowngrade::SetCookie::Insecure' = 23,
|
|
822
|
-
'CookieIssue::ExcludeNavigationContextDowngrade::Secure' = 24,
|
|
823
|
-
'CookieIssue::ExcludeNavigationContextDowngrade::Insecure' = 25,
|
|
824
|
-
'CookieIssue::ExcludeContextDowngrade::ReadCookie::Secure' = 26,
|
|
825
|
-
'CookieIssue::ExcludeContextDowngrade::ReadCookie::Insecure' = 27,
|
|
826
|
-
'CookieIssue::ExcludeContextDowngrade::SetCookie::Secure' = 28,
|
|
827
|
-
'CookieIssue::ExcludeContextDowngrade::SetCookie::Insecure' = 29,
|
|
816
|
+
|
|
828
817
|
'CookieIssue::ExcludeSameSiteUnspecifiedTreatedAsLax::ReadCookie' = 30,
|
|
829
818
|
'CookieIssue::ExcludeSameSiteUnspecifiedTreatedAsLax::SetCookie' = 31,
|
|
830
819
|
'CookieIssue::WarnSameSiteUnspecifiedLaxAllowUnsafe::ReadCookie' = 32,
|
|
@@ -66,18 +66,6 @@ const UIStrings = {
|
|
|
66
66
|
* @description Tooltip to explain why a cookie was blocked.
|
|
67
67
|
*/
|
|
68
68
|
unknownError: 'An unknown error was encountered when trying to send this cookie.',
|
|
69
|
-
/**
|
|
70
|
-
* @description Tooltip to explain why a cookie was blocked due to Schemeful Same-Site.
|
|
71
|
-
*/
|
|
72
|
-
schemefulSameSiteStrict: 'This cookie was blocked because it had the "`SameSite=Strict`" attribute but the request was cross-site. This includes top-level navigation requests initiated by other sites. This request is considered cross-site because the URL has a different scheme than the current site.',
|
|
73
|
-
/**
|
|
74
|
-
* @description Tooltip to explain why a cookie was blocked due to Schemeful Same-Site.
|
|
75
|
-
*/
|
|
76
|
-
schemefulSameSiteLax: 'This cookie was blocked because it had the "`SameSite=Lax`" attribute but the request was cross-site and was not initiated by a top-level navigation. This request is considered cross-site because the URL has a different scheme than the current site.',
|
|
77
|
-
/**
|
|
78
|
-
* @description Tooltip to explain why a cookie was blocked due to Schemeful Same-Site.
|
|
79
|
-
*/
|
|
80
|
-
schemefulSameSiteUnspecifiedTreatedAsLax: 'This cookie didn’t specify a "`SameSite`" attribute when it was stored, was defaulted to "`SameSite=Lax`", and was blocked because the request was cross-site and was not initiated by a top-level navigation. This request is considered cross-site because the URL has a different scheme than the current site.',
|
|
81
69
|
/**
|
|
82
70
|
* @description Tooltip to explain why a cookie was blocked due to exceeding the maximum size.
|
|
83
71
|
*/
|
|
@@ -106,15 +94,6 @@ const UIStrings = {
|
|
|
106
94
|
* @description Tooltip to explain why a cookie was blocked.
|
|
107
95
|
*/
|
|
108
96
|
anUnknownErrorWasEncounteredWhenTrying: 'An unknown error was encountered when trying to store this cookie.',
|
|
109
|
-
/**
|
|
110
|
-
* @description Tooltip to explain why a cookie was blocked due to Schemeful Same-Site.
|
|
111
|
-
* @example {SameSite=Strict} PH1
|
|
112
|
-
*/
|
|
113
|
-
thisSetcookieWasBlockedBecauseItHadTheSamesiteStrictLax: 'This attempt to set a cookie via a "`Set-Cookie`" header was blocked because it had the "{PH1}" attribute but came from a cross-site response which was not the response to a top-level navigation. This response is considered cross-site because the URL has a different scheme than the current site.',
|
|
114
|
-
/**
|
|
115
|
-
* @description Tooltip to explain why a cookie was blocked due to Schemeful Same-Site.
|
|
116
|
-
*/
|
|
117
|
-
thisSetcookieDidntSpecifyASamesite: 'This "`Set-Cookie`" header didn’t specify a "`SameSite`" attribute, was defaulted to "`SameSite=Lax`", and was blocked because it came from a cross-site response which was not the response to a top-level navigation. This response is considered cross-site because the URL has a different scheme than the current site.',
|
|
118
97
|
/**
|
|
119
98
|
* @description Tooltip to explain why an attempt to set a cookie via a `Set-Cookie` HTTP header on a request's response was blocked.
|
|
120
99
|
*/
|
|
@@ -1991,12 +1970,6 @@ export const cookieBlockedReasonToUiString = function(
|
|
|
1991
1970
|
return i18nString(UIStrings.notOnPath);
|
|
1992
1971
|
case Protocol.Network.CookieBlockedReason.DomainMismatch:
|
|
1993
1972
|
return i18nString(UIStrings.domainMismatch);
|
|
1994
|
-
case Protocol.Network.CookieBlockedReason.SameSiteStrict:
|
|
1995
|
-
return i18nString(UIStrings.sameSiteStrict);
|
|
1996
|
-
case Protocol.Network.CookieBlockedReason.SameSiteLax:
|
|
1997
|
-
return i18nString(UIStrings.sameSiteLax);
|
|
1998
|
-
case Protocol.Network.CookieBlockedReason.SameSiteUnspecifiedTreatedAsLax:
|
|
1999
|
-
return i18nString(UIStrings.sameSiteUnspecifiedTreatedAsLax);
|
|
2000
1973
|
case Protocol.Network.CookieBlockedReason.SameSiteNoneInsecure:
|
|
2001
1974
|
return i18nString(UIStrings.sameSiteNoneInsecure);
|
|
2002
1975
|
case Protocol.Network.CookieBlockedReason.UserPreferences:
|
|
@@ -2004,11 +1977,11 @@ export const cookieBlockedReasonToUiString = function(
|
|
|
2004
1977
|
case Protocol.Network.CookieBlockedReason.UnknownError:
|
|
2005
1978
|
return i18nString(UIStrings.unknownError);
|
|
2006
1979
|
case Protocol.Network.CookieBlockedReason.SchemefulSameSiteStrict:
|
|
2007
|
-
return i18nString(UIStrings.
|
|
1980
|
+
return i18nString(UIStrings.sameSiteStrict);
|
|
2008
1981
|
case Protocol.Network.CookieBlockedReason.SchemefulSameSiteLax:
|
|
2009
|
-
return i18nString(UIStrings.
|
|
1982
|
+
return i18nString(UIStrings.sameSiteLax);
|
|
2010
1983
|
case Protocol.Network.CookieBlockedReason.SchemefulSameSiteUnspecifiedTreatedAsLax:
|
|
2011
|
-
return i18nString(UIStrings.
|
|
1984
|
+
return i18nString(UIStrings.sameSiteUnspecifiedTreatedAsLax);
|
|
2012
1985
|
case Protocol.Network.CookieBlockedReason.NameValuePairExceedsMaxSize:
|
|
2013
1986
|
return i18nString(UIStrings.nameValuePairExceedsMaxSize);
|
|
2014
1987
|
case Protocol.Network.CookieBlockedReason.ThirdPartyPhaseout:
|
|
@@ -2023,16 +1996,6 @@ export const setCookieBlockedReasonToUiString = function(
|
|
|
2023
1996
|
switch (blockedReason) {
|
|
2024
1997
|
case Protocol.Network.SetCookieBlockedReason.SecureOnly:
|
|
2025
1998
|
return i18nString(UIStrings.blockedReasonSecureOnly);
|
|
2026
|
-
case Protocol.Network.SetCookieBlockedReason.SameSiteStrict:
|
|
2027
|
-
return i18nString(UIStrings.blockedReasonSameSiteStrictLax, {
|
|
2028
|
-
PH1: 'SameSite=Strict',
|
|
2029
|
-
});
|
|
2030
|
-
case Protocol.Network.SetCookieBlockedReason.SameSiteLax:
|
|
2031
|
-
return i18nString(UIStrings.blockedReasonSameSiteStrictLax, {
|
|
2032
|
-
PH1: 'SameSite=Lax',
|
|
2033
|
-
});
|
|
2034
|
-
case Protocol.Network.SetCookieBlockedReason.SameSiteUnspecifiedTreatedAsLax:
|
|
2035
|
-
return i18nString(UIStrings.blockedReasonSameSiteUnspecifiedTreatedAsLax);
|
|
2036
1999
|
case Protocol.Network.SetCookieBlockedReason.SameSiteNoneInsecure:
|
|
2037
2000
|
return i18nString(UIStrings.blockedReasonSameSiteNoneInsecure);
|
|
2038
2001
|
case Protocol.Network.SetCookieBlockedReason.UserPreferences:
|
|
@@ -2050,17 +2013,15 @@ export const setCookieBlockedReasonToUiString = function(
|
|
|
2050
2013
|
case Protocol.Network.SetCookieBlockedReason.UnknownError:
|
|
2051
2014
|
return i18nString(UIStrings.anUnknownErrorWasEncounteredWhenTrying);
|
|
2052
2015
|
case Protocol.Network.SetCookieBlockedReason.SchemefulSameSiteStrict:
|
|
2053
|
-
return i18nString(
|
|
2054
|
-
|
|
2055
|
-
|
|
2056
|
-
);
|
|
2016
|
+
return i18nString(UIStrings.blockedReasonSameSiteStrictLax, {
|
|
2017
|
+
PH1: 'SameSite=Strict',
|
|
2018
|
+
});
|
|
2057
2019
|
case Protocol.Network.SetCookieBlockedReason.SchemefulSameSiteLax:
|
|
2058
|
-
return i18nString(
|
|
2059
|
-
|
|
2060
|
-
|
|
2061
|
-
);
|
|
2020
|
+
return i18nString(UIStrings.blockedReasonSameSiteStrictLax, {
|
|
2021
|
+
PH1: 'SameSite=Lax',
|
|
2022
|
+
});
|
|
2062
2023
|
case Protocol.Network.SetCookieBlockedReason.SchemefulSameSiteUnspecifiedTreatedAsLax:
|
|
2063
|
-
return i18nString(UIStrings.
|
|
2024
|
+
return i18nString(UIStrings.blockedReasonSameSiteUnspecifiedTreatedAsLax);
|
|
2064
2025
|
case Protocol.Network.SetCookieBlockedReason.NameValuePairExceedsMaxSize:
|
|
2065
2026
|
return i18nString(
|
|
2066
2027
|
UIStrings.thisSetcookieWasBlockedBecauseTheNameValuePairExceedsMaxSize,
|
|
@@ -2083,9 +2044,6 @@ export const cookieBlockedReasonToAttribute = function(
|
|
|
2083
2044
|
return Attribute.PATH;
|
|
2084
2045
|
case Protocol.Network.CookieBlockedReason.DomainMismatch:
|
|
2085
2046
|
return Attribute.DOMAIN;
|
|
2086
|
-
case Protocol.Network.CookieBlockedReason.SameSiteStrict:
|
|
2087
|
-
case Protocol.Network.CookieBlockedReason.SameSiteLax:
|
|
2088
|
-
case Protocol.Network.CookieBlockedReason.SameSiteUnspecifiedTreatedAsLax:
|
|
2089
2047
|
case Protocol.Network.CookieBlockedReason.SameSiteNoneInsecure:
|
|
2090
2048
|
case Protocol.Network.CookieBlockedReason.SchemefulSameSiteStrict:
|
|
2091
2049
|
case Protocol.Network.CookieBlockedReason.SchemefulSameSiteLax:
|
|
@@ -2107,9 +2065,6 @@ export const setCookieBlockedReasonToAttribute = function(
|
|
|
2107
2065
|
case Protocol.Network.SetCookieBlockedReason.SecureOnly:
|
|
2108
2066
|
case Protocol.Network.SetCookieBlockedReason.OverwriteSecure:
|
|
2109
2067
|
return Attribute.SECURE;
|
|
2110
|
-
case Protocol.Network.SetCookieBlockedReason.SameSiteStrict:
|
|
2111
|
-
case Protocol.Network.SetCookieBlockedReason.SameSiteLax:
|
|
2112
|
-
case Protocol.Network.SetCookieBlockedReason.SameSiteUnspecifiedTreatedAsLax:
|
|
2113
2068
|
case Protocol.Network.SetCookieBlockedReason.SameSiteNoneInsecure:
|
|
2114
2069
|
case Protocol.Network.SetCookieBlockedReason.SchemefulSameSiteStrict:
|
|
2115
2070
|
case Protocol.Network.SetCookieBlockedReason.SchemefulSameSiteLax:
|
|
@@ -45,7 +45,6 @@ import * as Foundation from '../../foundation/foundation.js';
|
|
|
45
45
|
import * as AiAssistanceModel from '../../models/ai_assistance/ai_assistance.js';
|
|
46
46
|
import * as Badges from '../../models/badges/badges.js';
|
|
47
47
|
import * as CrUXManager from '../../models/crux-manager/crux-manager.js';
|
|
48
|
-
import * as IssuesManager from '../../models/issues_manager/issues_manager.js';
|
|
49
48
|
import * as Persistence from '../../models/persistence/persistence.js';
|
|
50
49
|
import * as Workspace from '../../models/workspace/workspace.js';
|
|
51
50
|
import * as PanelCommon from '../../panels/common/common.js';
|
|
@@ -445,15 +444,6 @@ export class MainImpl {
|
|
|
445
444
|
UI.ContextMenu.ContextMenu.installHandler(document);
|
|
446
445
|
UI.ViewManager.ViewManager.instance({forceNew: true, universe: this.#universe});
|
|
447
446
|
|
|
448
|
-
// These instances need to be created early so they don't miss any events about requests/issues/etc.
|
|
449
|
-
IssuesManager.IssuesManager.IssuesManager.instance({
|
|
450
|
-
forceNew: true,
|
|
451
|
-
ensureFirst: true,
|
|
452
|
-
showThirdPartyIssuesSetting:
|
|
453
|
-
IssuesManager.Issue.getShowThirdPartyIssuesSetting(Common.Settings.Settings.instance()),
|
|
454
|
-
hideIssueSetting: IssuesManager.IssuesManager.getHideIssueByCodeSetting(),
|
|
455
|
-
});
|
|
456
|
-
|
|
457
447
|
UI.DockController.DockController.instance({forceNew: true, canDock});
|
|
458
448
|
const targetManager = SDK.TargetManager.TargetManager.instance();
|
|
459
449
|
targetManager.addEventListener(
|
|
@@ -13,6 +13,7 @@ import * as Bindings from '../models/bindings/bindings.js';
|
|
|
13
13
|
import * as Breakpoints from '../models/breakpoints/breakpoints.js';
|
|
14
14
|
import * as CrUXManager from '../models/crux-manager/crux-manager.js';
|
|
15
15
|
import * as Emulation from '../models/emulation/emulation.js';
|
|
16
|
+
import * as IssuesManager from '../models/issues_manager/issues_manager.js';
|
|
16
17
|
import * as JavaScriptMetadata from '../models/javascript_metadata/javascript_metadata.js';
|
|
17
18
|
import * as LiveMetrics from '../models/live-metrics/live-metrics.js';
|
|
18
19
|
import * as Logs from '../models/logs/logs.js';
|
|
@@ -191,6 +192,17 @@ export class Universe {
|
|
|
191
192
|
const logManager = new Logs.LogManager.LogManager(targetManager, networkLog);
|
|
192
193
|
context.set(Logs.LogManager.LogManager, logManager);
|
|
193
194
|
|
|
195
|
+
const issuesManager = new IssuesManager.IssuesManager.IssuesManager(
|
|
196
|
+
IssuesManager.Issue.getShowThirdPartyIssuesSetting(settings),
|
|
197
|
+
IssuesManager.IssuesManager.getHideIssueByCodeSetting(settings),
|
|
198
|
+
frameManager,
|
|
199
|
+
targetManager,
|
|
200
|
+
workspace,
|
|
201
|
+
debuggerWorkspaceBinding,
|
|
202
|
+
cssWorkspaceBinding,
|
|
203
|
+
);
|
|
204
|
+
context.set(IssuesManager.IssuesManager.IssuesManager, issuesManager);
|
|
205
|
+
|
|
194
206
|
const javaScriptMetadata = new JavaScriptMetadata.JavaScriptMetadata.JavaScriptMetadataImpl();
|
|
195
207
|
context.set(JavaScriptMetadata.JavaScriptMetadata.JavaScriptMetadataImpl, javaScriptMetadata);
|
|
196
208
|
|
|
@@ -280,6 +292,10 @@ export class Universe {
|
|
|
280
292
|
return this.context.get(SDK.IsolateManager.IsolateManager);
|
|
281
293
|
}
|
|
282
294
|
|
|
295
|
+
get issuesManager(): IssuesManager.IssuesManager.IssuesManager {
|
|
296
|
+
return this.context.get(IssuesManager.IssuesManager.IssuesManager);
|
|
297
|
+
}
|
|
298
|
+
|
|
283
299
|
get networkPersistenceManager(): Persistence.NetworkPersistenceManager.NetworkPersistenceManager {
|
|
284
300
|
return this.context.get(Persistence.NetworkPersistenceManager.NetworkPersistenceManager);
|
|
285
301
|
}
|
|
@@ -1316,7 +1316,7 @@ inspectorBackend.registerType("SmartCardEmulation.ReaderStateIn", [{"name": "rea
|
|
|
1316
1316
|
inspectorBackend.registerType("SmartCardEmulation.ReaderStateOut", [{"name": "reader", "type": "string", "optional": false, "description": "", "typeRef": null}, {"name": "eventState", "type": "object", "optional": false, "description": "", "typeRef": "SmartCardEmulation.ReaderStateFlags"}, {"name": "eventCount", "type": "number", "optional": false, "description": "", "typeRef": null}, {"name": "atr", "type": "string", "optional": false, "description": "", "typeRef": null}]);
|
|
1317
1317
|
|
|
1318
1318
|
// Storage.
|
|
1319
|
-
inspectorBackend.registerEnum("Storage.StorageType", {Cookies: "cookies", File_systems: "file_systems", Indexeddb: "indexeddb", Local_storage: "local_storage", Shader_cache: "shader_cache", Websql: "websql", Service_workers: "service_workers", Cache_storage: "cache_storage",
|
|
1319
|
+
inspectorBackend.registerEnum("Storage.StorageType", {Cookies: "cookies", File_systems: "file_systems", Indexeddb: "indexeddb", Local_storage: "local_storage", Shader_cache: "shader_cache", Websql: "websql", Service_workers: "service_workers", Cache_storage: "cache_storage", Shared_storage: "shared_storage", Storage_buckets: "storage_buckets", All: "all", Other: "other"});
|
|
1320
1320
|
inspectorBackend.registerEnum("Storage.SharedStorageAccessScope", {Window: "window", SharedStorageWorklet: "sharedStorageWorklet", Header: "header"});
|
|
1321
1321
|
inspectorBackend.registerEnum("Storage.SharedStorageAccessMethod", {AddModule: "addModule", CreateWorklet: "createWorklet", SelectURL: "selectURL", Run: "run", BatchUpdate: "batchUpdate", Set: "set", Append: "append", Delete: "delete", Clear: "clear", Get: "get", Keys: "keys", Values: "values", Entries: "entries", Length: "length", RemainingBudget: "remainingBudget"});
|
|
1322
1322
|
inspectorBackend.registerEnum("Storage.StorageBucketsDurability", {Relaxed: "relaxed", Strict: "strict"});
|
|
@@ -1487,7 +1487,7 @@ inspectorBackend.registerCommand("WebAuthn.removeCredential", [{"name": "authent
|
|
|
1487
1487
|
inspectorBackend.registerCommand("WebAuthn.clearCredentials", [{"name": "authenticatorId", "type": "string", "optional": false, "description": "", "typeRef": "WebAuthn.AuthenticatorId"}], [], "Clears all the credentials from the specified device.");
|
|
1488
1488
|
inspectorBackend.registerCommand("WebAuthn.setUserVerified", [{"name": "authenticatorId", "type": "string", "optional": false, "description": "", "typeRef": "WebAuthn.AuthenticatorId"}, {"name": "isUserVerified", "type": "boolean", "optional": false, "description": "", "typeRef": null}], [], "Sets whether User Verification succeeds or fails for an authenticator. The default is true.");
|
|
1489
1489
|
inspectorBackend.registerCommand("WebAuthn.setAutomaticPresenceSimulation", [{"name": "authenticatorId", "type": "string", "optional": false, "description": "", "typeRef": "WebAuthn.AuthenticatorId"}, {"name": "enabled", "type": "boolean", "optional": false, "description": "", "typeRef": null}], [], "Sets whether tests of user presence will succeed immediately (if true) or fail to resolve (if false) for an authenticator. The default is true.");
|
|
1490
|
-
inspectorBackend.registerCommand("WebAuthn.setCredentialProperties", [{"name": "authenticatorId", "type": "string", "optional": false, "description": "", "typeRef": "WebAuthn.AuthenticatorId"}, {"name": "credentialId", "type": "string", "optional": false, "description": "", "typeRef": null}, {"name": "backupEligibility", "type": "boolean", "optional": true, "description": "", "typeRef": null}, {"name": "backupState", "type": "boolean", "optional": true, "description": "", "typeRef": null}], [], "Allows setting credential properties. https://w3c.github.io/webauthn/#sctn-automation-set-credential-properties");
|
|
1490
|
+
inspectorBackend.registerCommand("WebAuthn.setCredentialProperties", [{"name": "authenticatorId", "type": "string", "optional": false, "description": "", "typeRef": "WebAuthn.AuthenticatorId"}, {"name": "credentialId", "type": "string", "optional": false, "description": "", "typeRef": null}, {"name": "backupEligibility", "type": "boolean", "optional": true, "description": "", "typeRef": null}, {"name": "backupState", "type": "boolean", "optional": true, "description": "", "typeRef": null}, {"name": "activeCmtgKeyIndex", "type": "number", "optional": true, "description": "", "typeRef": null}, {"name": "generateCmtgKeyOnNextOperation", "type": "boolean", "optional": true, "description": "", "typeRef": null}], [], "Allows setting credential properties. https://w3c.github.io/webauthn/#sctn-automation-set-credential-properties");
|
|
1491
1491
|
inspectorBackend.registerType("WebAuthn.VirtualAuthenticatorOptions", [{"name": "protocol", "type": "string", "optional": false, "description": "", "typeRef": "WebAuthn.AuthenticatorProtocol"}, {"name": "ctap2Version", "type": "string", "optional": true, "description": "Defaults to ctap2_0. Ignored if |protocol| == u2f.", "typeRef": "WebAuthn.Ctap2Version"}, {"name": "transport", "type": "string", "optional": false, "description": "", "typeRef": "WebAuthn.AuthenticatorTransport"}, {"name": "hasResidentKey", "type": "boolean", "optional": true, "description": "Defaults to false.", "typeRef": null}, {"name": "hasUserVerification", "type": "boolean", "optional": true, "description": "Defaults to false.", "typeRef": null}, {"name": "hasLargeBlob", "type": "boolean", "optional": true, "description": "If set to true, the authenticator will support the largeBlob extension. https://w3c.github.io/webauthn#largeBlob Defaults to false.", "typeRef": null}, {"name": "hasCredBlob", "type": "boolean", "optional": true, "description": "If set to true, the authenticator will support the credBlob extension. https://fidoalliance.org/specs/fido-v2.1-rd-20201208/fido-client-to-authenticator-protocol-v2.1-rd-20201208.html#sctn-credBlob-extension Defaults to false.", "typeRef": null}, {"name": "hasMinPinLength", "type": "boolean", "optional": true, "description": "If set to true, the authenticator will support the minPinLength extension. https://fidoalliance.org/specs/fido-v2.1-ps-20210615/fido-client-to-authenticator-protocol-v2.1-ps-20210615.html#sctn-minpinlength-extension Defaults to false.", "typeRef": null}, {"name": "hasPrf", "type": "boolean", "optional": true, "description": "If set to true, the authenticator will support the prf extension. https://w3c.github.io/webauthn/#prf-extension Defaults to false.", "typeRef": null}, {"name": "hasHmacSecret", "type": "boolean", "optional": true, "description": "If set to true, the authenticator will support the hmac-secret extension. https://fidoalliance.org/specs/fido-v2.1-ps-20210615/fido-client-to-authenticator-protocol-v2.1-ps-20210615.html#sctn-hmac-secret-extension Defaults to false.", "typeRef": null}, {"name": "hasHmacSecretMc", "type": "boolean", "optional": true, "description": "If set to true, the authenticator will support the hmac-secret-mc extension. https://fidoalliance.org/specs/fido-v2.2-rd-20241003/fido-client-to-authenticator-protocol-v2.2-rd-20241003.html#sctn-hmac-secret-make-cred-extension Defaults to false.", "typeRef": null}, {"name": "hasCmtgKey", "type": "boolean", "optional": true, "description": "If set to true, the authenticator will support the cmtgKey (Credential Manager Trust Group Key) extension. https://github.com/w3c/webauthn/pull/2377 Defaults to false.", "typeRef": null}, {"name": "automaticPresenceSimulation", "type": "boolean", "optional": true, "description": "If set to true, tests of user presence will succeed immediately. Otherwise, they will not be resolved. Defaults to true.", "typeRef": null}, {"name": "isUserVerified", "type": "boolean", "optional": true, "description": "Sets whether User Verification succeeds or fails for an authenticator. Defaults to false.", "typeRef": null}, {"name": "defaultBackupEligibility", "type": "boolean", "optional": true, "description": "Credentials created by this authenticator will have the backup eligibility (BE) flag set to this value. Defaults to false. https://w3c.github.io/webauthn/#sctn-credential-backup", "typeRef": null}, {"name": "defaultBackupState", "type": "boolean", "optional": true, "description": "Credentials created by this authenticator will have the backup state (BS) flag set to this value. Defaults to false. https://w3c.github.io/webauthn/#sctn-credential-backup", "typeRef": null}]);
|
|
1492
1492
|
inspectorBackend.registerType("WebAuthn.Credential", [{"name": "credentialId", "type": "string", "optional": false, "description": "", "typeRef": null}, {"name": "isResidentCredential", "type": "boolean", "optional": false, "description": "", "typeRef": null}, {"name": "rpId", "type": "string", "optional": true, "description": "Relying Party ID the credential is scoped to. Must be set when adding a credential.", "typeRef": null}, {"name": "privateKey", "type": "string", "optional": false, "description": "The ECDSA P-256 private key in PKCS#8 format.", "typeRef": null}, {"name": "userHandle", "type": "string", "optional": true, "description": "An opaque byte sequence with a maximum size of 64 bytes mapping the credential to a specific user.", "typeRef": null}, {"name": "signCount", "type": "number", "optional": false, "description": "Signature counter. This is incremented by one for each successful assertion. See https://w3c.github.io/webauthn/#signature-counter", "typeRef": null}, {"name": "largeBlob", "type": "string", "optional": true, "description": "The large blob associated with the credential. See https://w3c.github.io/webauthn/#sctn-large-blob-extension", "typeRef": null}, {"name": "backupEligibility", "type": "boolean", "optional": true, "description": "Assertions returned by this credential will have the backup eligibility (BE) flag set to this value. Defaults to the authenticator's defaultBackupEligibility value.", "typeRef": null}, {"name": "backupState", "type": "boolean", "optional": true, "description": "Assertions returned by this credential will have the backup state (BS) flag set to this value. Defaults to the authenticator's defaultBackupState value.", "typeRef": null}, {"name": "userName", "type": "string", "optional": true, "description": "The credential's user.name property. Equivalent to empty if not set. https://w3c.github.io/webauthn/#dom-publickeycredentialentity-name", "typeRef": null}, {"name": "userDisplayName", "type": "string", "optional": true, "description": "The credential's user.displayName property. Equivalent to empty if not set. https://w3c.github.io/webauthn/#dom-publickeycredentialuserentity-displayname", "typeRef": null}, {"name": "cmtgKeys", "type": "array", "optional": true, "description": "The CMTG keys associated with the credential.", "typeRef": "binary"}, {"name": "activeCmtgKeyIndex", "type": "number", "optional": true, "description": "The 0-based index of the active key in cmtgKeys.", "typeRef": null}, {"name": "generateCmtgKeyOnNextOperation", "type": "boolean", "optional": true, "description": "If true, the authenticator will generate a new CMTG key on the next operation.", "typeRef": null}]);
|
|
1493
1493
|
|
|
@@ -18270,7 +18270,6 @@ export namespace Storage {
|
|
|
18270
18270
|
Websql = 'websql',
|
|
18271
18271
|
Service_workers = 'service_workers',
|
|
18272
18272
|
Cache_storage = 'cache_storage',
|
|
18273
|
-
Interest_groups = 'interest_groups',
|
|
18274
18273
|
Shared_storage = 'shared_storage',
|
|
18275
18274
|
Storage_buckets = 'storage_buckets',
|
|
18276
18275
|
All = 'all',
|
|
@@ -20463,6 +20462,8 @@ export namespace WebAuthn {
|
|
|
20463
20462
|
credentialId: binary;
|
|
20464
20463
|
backupEligibility?: boolean;
|
|
20465
20464
|
backupState?: boolean;
|
|
20465
|
+
activeCmtgKeyIndex?: integer;
|
|
20466
|
+
generateCmtgKeyOnNextOperation?: boolean;
|
|
20466
20467
|
}
|
|
20467
20468
|
|
|
20468
20469
|
/**
|
|
@@ -798,19 +798,7 @@ export abstract class AiAgent<T> {
|
|
|
798
798
|
}
|
|
799
799
|
} catch (err) {
|
|
800
800
|
debugLog('Error calling the AIDA API', err);
|
|
801
|
-
|
|
802
|
-
let error = ErrorType.UNKNOWN;
|
|
803
|
-
if (err instanceof Host.AidaClient.AidaAbortError) {
|
|
804
|
-
error = ErrorType.ABORT;
|
|
805
|
-
} else if (err instanceof Host.AidaClient.AidaBlockError) {
|
|
806
|
-
error = ErrorType.BLOCK;
|
|
807
|
-
} else if (err instanceof Host.AidaClient.AidaQuotaError ||
|
|
808
|
-
(err instanceof Error && err.message.toLowerCase().includes('quota'))) {
|
|
809
|
-
error = ErrorType.QUOTA;
|
|
810
|
-
} else if (err instanceof Host.AidaClient.AidaPayloadTooLargeError ||
|
|
811
|
-
(err instanceof Error && /payload size exceeds the limit/i.test(err.message))) {
|
|
812
|
-
error = ErrorType.PAYLOAD_TOO_LARGE;
|
|
813
|
-
}
|
|
801
|
+
const error = aidaErrorToErrorType(err);
|
|
814
802
|
yield this.#createErrorResponse(error);
|
|
815
803
|
|
|
816
804
|
break;
|
|
@@ -1150,3 +1138,24 @@ function sanitizeSuggestions(suggestions: string): [string, ...string[]]|undefin
|
|
|
1150
1138
|
}
|
|
1151
1139
|
return sanitized as [string, ...string[]];
|
|
1152
1140
|
}
|
|
1141
|
+
|
|
1142
|
+
/**
|
|
1143
|
+
* Maps AIDA-specific client error instances to user-facing ErrorType enums.
|
|
1144
|
+
* This handles AIDA API failure modes such as quota exhaustion or blockages.
|
|
1145
|
+
* Other application-level errors (like CROSS_ORIGIN or MAX_STEPS) are handled separately.
|
|
1146
|
+
*/
|
|
1147
|
+
export function aidaErrorToErrorType(err: unknown): ErrorType {
|
|
1148
|
+
if (err instanceof Host.AidaClient.AidaAbortError) {
|
|
1149
|
+
return ErrorType.ABORT;
|
|
1150
|
+
}
|
|
1151
|
+
if (err instanceof Host.AidaClient.AidaBlockError) {
|
|
1152
|
+
return ErrorType.BLOCK;
|
|
1153
|
+
}
|
|
1154
|
+
if (err instanceof Host.AidaClient.AidaQuotaError) {
|
|
1155
|
+
return ErrorType.QUOTA;
|
|
1156
|
+
}
|
|
1157
|
+
if (err instanceof Host.AidaClient.AidaPayloadTooLargeError) {
|
|
1158
|
+
return ErrorType.PAYLOAD_TOO_LARGE;
|
|
1159
|
+
}
|
|
1160
|
+
return ErrorType.UNKNOWN;
|
|
1161
|
+
}
|
|
@@ -39,19 +39,29 @@ export class PerformanceTraceFormatter {
|
|
|
39
39
|
(url: Platform.DevToolsPath.UrlString, line: number,
|
|
40
40
|
column: number) => Promise<SourceMapScopes.FunctionCodeResolver.FunctionCode|null>;
|
|
41
41
|
|
|
42
|
-
readonly #cruxManager: CrUXManager.CrUXManager;
|
|
42
|
+
readonly #cruxManager: CrUXManager.CrUXManager|null;
|
|
43
43
|
|
|
44
44
|
constructor(
|
|
45
45
|
focus: AgentFocus,
|
|
46
46
|
deviceScope: CrUXManager.DeviceScope|null = null,
|
|
47
|
-
cruxManager
|
|
47
|
+
cruxManager?: CrUXManager.CrUXManager,
|
|
48
48
|
) {
|
|
49
49
|
this.#focus = focus;
|
|
50
50
|
this.#parsedTrace = focus.parsedTrace;
|
|
51
51
|
this.#insightSet = focus.primaryInsightSet;
|
|
52
52
|
this.#eventsSerializer = focus.eventsSerializer;
|
|
53
53
|
this.#deviceScope = deviceScope;
|
|
54
|
-
|
|
54
|
+
if (cruxManager) {
|
|
55
|
+
this.#cruxManager = cruxManager;
|
|
56
|
+
} else {
|
|
57
|
+
// In environments outside DevTools (like the MCP server or some tests),
|
|
58
|
+
// CrUXManager.instance() can fail due to uninitialized global settings/storage.
|
|
59
|
+
try {
|
|
60
|
+
this.#cruxManager = CrUXManager.CrUXManager.instance();
|
|
61
|
+
} catch {
|
|
62
|
+
this.#cruxManager = null;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
55
65
|
}
|
|
56
66
|
|
|
57
67
|
serializeEvent(event: Trace.Types.Events.Event): string {
|
|
@@ -72,8 +82,14 @@ export class PerformanceTraceFormatter {
|
|
|
72
82
|
return [];
|
|
73
83
|
}
|
|
74
84
|
try {
|
|
75
|
-
|
|
76
|
-
|
|
85
|
+
let cruxScope: CrUXManager.Scope;
|
|
86
|
+
if (this.#deviceScope) {
|
|
87
|
+
cruxScope = {pageScope: 'url', deviceScope: this.#deviceScope};
|
|
88
|
+
} else if (this.#cruxManager) {
|
|
89
|
+
cruxScope = this.#cruxManager.getSelectedScope();
|
|
90
|
+
} else {
|
|
91
|
+
return [];
|
|
92
|
+
}
|
|
77
93
|
const parts: string[] = [];
|
|
78
94
|
const fieldMetrics =
|
|
79
95
|
Trace.Insights.Common.getFieldMetricsForInsightSet(insightSet, this.#parsedTrace.metadata, cruxScope);
|
|
@@ -21,10 +21,6 @@ const UIStrings = {
|
|
|
21
21
|
* @description Label for the link for SameSite cookie issues.
|
|
22
22
|
*/
|
|
23
23
|
samesiteCookiesExplained: 'SameSite cookies explained',
|
|
24
|
-
/**
|
|
25
|
-
* @description Label for the link for Schemeful Same-Site issues.
|
|
26
|
-
*/
|
|
27
|
-
howSchemefulSamesiteWorks: 'How Schemeful Same-Site works',
|
|
28
24
|
/**
|
|
29
25
|
* @description Label for a link for cross-site redirect issues.
|
|
30
26
|
*/
|
|
@@ -92,9 +88,8 @@ export class CookieIssue extends Issue<Protocol.Audits.CookieIssueDetails> {
|
|
|
92
88
|
// Some exclusion reasons are dependent on warning reasons existing in order to produce an issue.
|
|
93
89
|
if (cookieIssueDetails.cookieExclusionReasons && cookieIssueDetails.cookieExclusionReasons.length > 0) {
|
|
94
90
|
for (const exclusionReason of cookieIssueDetails.cookieExclusionReasons) {
|
|
95
|
-
const code = CookieIssue.codeForCookieIssueDetails(
|
|
96
|
-
|
|
97
|
-
cookieIssueDetails.cookieUrl as Platform.DevToolsPath.UrlString | undefined);
|
|
91
|
+
const code = CookieIssue.codeForCookieIssueDetails(exclusionReason, cookieIssueDetails.cookieWarningReasons,
|
|
92
|
+
cookieIssueDetails.operation);
|
|
98
93
|
if (code) {
|
|
99
94
|
issues.push(new CookieIssue(code, cookieIssueDetails, issuesModel, issueId, frameManager));
|
|
100
95
|
}
|
|
@@ -105,9 +100,7 @@ export class CookieIssue extends Issue<Protocol.Audits.CookieIssueDetails> {
|
|
|
105
100
|
if (cookieIssueDetails.cookieWarningReasons) {
|
|
106
101
|
for (const warningReason of cookieIssueDetails.cookieWarningReasons) {
|
|
107
102
|
// warningReasons should be an empty array here.
|
|
108
|
-
const code = CookieIssue.codeForCookieIssueDetails(
|
|
109
|
-
warningReason, [], cookieIssueDetails.operation,
|
|
110
|
-
cookieIssueDetails.cookieUrl as Platform.DevToolsPath.UrlString | undefined);
|
|
103
|
+
const code = CookieIssue.codeForCookieIssueDetails(warningReason, [], cookieIssueDetails.operation);
|
|
111
104
|
if (code) {
|
|
112
105
|
issues.push(new CookieIssue(code, cookieIssueDetails, issuesModel, issueId, frameManager));
|
|
113
106
|
}
|
|
@@ -124,39 +117,12 @@ export class CookieIssue extends Issue<Protocol.Audits.CookieIssueDetails> {
|
|
|
124
117
|
*
|
|
125
118
|
* The issue code will be mapped to a CookieIssueSubCategory enum for metric purpose.
|
|
126
119
|
*/
|
|
127
|
-
static codeForCookieIssueDetails(
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
cookieUrl?: Platform.DevToolsPath.UrlString): string|null {
|
|
131
|
-
const isURLSecure =
|
|
132
|
-
cookieUrl && (Common.ParsedURL.schemeIs(cookieUrl, 'https:') || Common.ParsedURL.schemeIs(cookieUrl, 'wss:'));
|
|
133
|
-
const secure = isURLSecure ? 'Secure' : 'Insecure';
|
|
134
|
-
|
|
120
|
+
static codeForCookieIssueDetails(reason: Protocol.Audits.CookieExclusionReason|Protocol.Audits.CookieWarningReason,
|
|
121
|
+
warningReasons: Protocol.Audits.CookieWarningReason[],
|
|
122
|
+
operation: Protocol.Audits.CookieOperation): string|null {
|
|
135
123
|
if (reason === Protocol.Audits.CookieExclusionReason.ExcludeSameSiteStrict ||
|
|
136
124
|
reason === Protocol.Audits.CookieExclusionReason.ExcludeSameSiteLax ||
|
|
137
125
|
reason === Protocol.Audits.CookieExclusionReason.ExcludeSameSiteUnspecifiedTreatedAsLax) {
|
|
138
|
-
if (warningReasons && warningReasons.length > 0) {
|
|
139
|
-
if (warningReasons.includes(Protocol.Audits.CookieWarningReason.WarnSameSiteStrictLaxDowngradeStrict)) {
|
|
140
|
-
return [
|
|
141
|
-
Protocol.Audits.InspectorIssueCode.CookieIssue,
|
|
142
|
-
'ExcludeNavigationContextDowngrade',
|
|
143
|
-
secure,
|
|
144
|
-
].join('::');
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
if (warningReasons.includes(Protocol.Audits.CookieWarningReason.WarnSameSiteStrictCrossDowngradeStrict) ||
|
|
148
|
-
warningReasons.includes(Protocol.Audits.CookieWarningReason.WarnSameSiteStrictCrossDowngradeLax) ||
|
|
149
|
-
warningReasons.includes(Protocol.Audits.CookieWarningReason.WarnSameSiteLaxCrossDowngradeStrict) ||
|
|
150
|
-
warningReasons.includes(Protocol.Audits.CookieWarningReason.WarnSameSiteLaxCrossDowngradeLax)) {
|
|
151
|
-
return [
|
|
152
|
-
Protocol.Audits.InspectorIssueCode.CookieIssue,
|
|
153
|
-
'ExcludeContextDowngrade',
|
|
154
|
-
operation,
|
|
155
|
-
secure,
|
|
156
|
-
].join('::');
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
|
|
160
126
|
if (warningReasons.includes(Protocol.Audits.CookieWarningReason.WarnCrossSiteRedirectDowngradeChangesInclusion)) {
|
|
161
127
|
return [
|
|
162
128
|
Protocol.Audits.InspectorIssueCode.CookieIssue,
|
|
@@ -175,17 +141,6 @@ export class CookieIssue extends Issue<Protocol.Audits.CookieIssueDetails> {
|
|
|
175
141
|
return null;
|
|
176
142
|
}
|
|
177
143
|
|
|
178
|
-
if (reason === Protocol.Audits.CookieWarningReason.WarnSameSiteStrictLaxDowngradeStrict) {
|
|
179
|
-
return [Protocol.Audits.InspectorIssueCode.CookieIssue, reason, secure].join('::');
|
|
180
|
-
}
|
|
181
|
-
// These have the same message.
|
|
182
|
-
if (reason === Protocol.Audits.CookieWarningReason.WarnSameSiteStrictCrossDowngradeStrict ||
|
|
183
|
-
reason === Protocol.Audits.CookieWarningReason.WarnSameSiteStrictCrossDowngradeLax ||
|
|
184
|
-
reason === Protocol.Audits.CookieWarningReason.WarnSameSiteLaxCrossDowngradeLax ||
|
|
185
|
-
reason === Protocol.Audits.CookieWarningReason.WarnSameSiteLaxCrossDowngradeStrict) {
|
|
186
|
-
return [Protocol.Audits.InspectorIssueCode.CookieIssue, 'WarnCrossDowngrade', operation, secure].join('::');
|
|
187
|
-
}
|
|
188
|
-
|
|
189
144
|
if (reason === Protocol.Audits.CookieExclusionReason.ExcludePortMismatch) {
|
|
190
145
|
return [Protocol.Audits.InspectorIssueCode.CookieIssue, 'ExcludePortMismatch'].join('::');
|
|
191
146
|
}
|
|
@@ -433,67 +388,6 @@ const sameSiteNoneInsecureWarnSet: LazyMarkdownIssueDescription = {
|
|
|
433
388
|
],
|
|
434
389
|
};
|
|
435
390
|
|
|
436
|
-
const schemefulSameSiteArticles =
|
|
437
|
-
[{link: 'https://web.dev/schemeful-samesite/', linkTitle: i18nLazyString(UIStrings.howSchemefulSamesiteWorks)}];
|
|
438
|
-
|
|
439
|
-
function schemefulSameSiteSubstitutions(
|
|
440
|
-
{isDestinationSecure, isOriginSecure}: {isDestinationSecure: boolean, isOriginSecure: boolean}):
|
|
441
|
-
Map<string, () => string> {
|
|
442
|
-
return new Map([
|
|
443
|
-
// TODO(crbug.com/1168438): Use translated phrases once the issue description is localized.
|
|
444
|
-
['PLACEHOLDER_destination', () => isDestinationSecure ? 'a secure' : 'an insecure'],
|
|
445
|
-
['PLACEHOLDER_origin', () => isOriginSecure ? 'a secure' : 'an insecure'],
|
|
446
|
-
]);
|
|
447
|
-
}
|
|
448
|
-
|
|
449
|
-
function sameSiteWarnStrictLaxDowngradeStrict(isSecure: boolean): LazyMarkdownIssueDescription {
|
|
450
|
-
return {
|
|
451
|
-
file: 'SameSiteWarnStrictLaxDowngradeStrict.md',
|
|
452
|
-
substitutions: schemefulSameSiteSubstitutions({isDestinationSecure: isSecure, isOriginSecure: !isSecure}),
|
|
453
|
-
links: schemefulSameSiteArticles,
|
|
454
|
-
};
|
|
455
|
-
}
|
|
456
|
-
|
|
457
|
-
function sameSiteExcludeNavigationContextDowngrade(isSecure: boolean): LazyMarkdownIssueDescription {
|
|
458
|
-
return {
|
|
459
|
-
file: 'SameSiteExcludeNavigationContextDowngrade.md',
|
|
460
|
-
substitutions: schemefulSameSiteSubstitutions({isDestinationSecure: isSecure, isOriginSecure: !isSecure}),
|
|
461
|
-
links: schemefulSameSiteArticles,
|
|
462
|
-
};
|
|
463
|
-
}
|
|
464
|
-
|
|
465
|
-
function sameSiteWarnCrossDowngradeRead(isSecure: boolean): LazyMarkdownIssueDescription {
|
|
466
|
-
return {
|
|
467
|
-
file: 'SameSiteWarnCrossDowngradeRead.md',
|
|
468
|
-
substitutions: schemefulSameSiteSubstitutions({isDestinationSecure: isSecure, isOriginSecure: !isSecure}),
|
|
469
|
-
links: schemefulSameSiteArticles,
|
|
470
|
-
};
|
|
471
|
-
}
|
|
472
|
-
|
|
473
|
-
function sameSiteExcludeContextDowngradeRead(isSecure: boolean): LazyMarkdownIssueDescription {
|
|
474
|
-
return {
|
|
475
|
-
file: 'SameSiteExcludeContextDowngradeRead.md',
|
|
476
|
-
substitutions: schemefulSameSiteSubstitutions({isDestinationSecure: isSecure, isOriginSecure: !isSecure}),
|
|
477
|
-
links: schemefulSameSiteArticles,
|
|
478
|
-
};
|
|
479
|
-
}
|
|
480
|
-
|
|
481
|
-
function sameSiteWarnCrossDowngradeSet(isSecure: boolean): LazyMarkdownIssueDescription {
|
|
482
|
-
return {
|
|
483
|
-
file: 'SameSiteWarnCrossDowngradeSet.md',
|
|
484
|
-
substitutions: schemefulSameSiteSubstitutions({isDestinationSecure: !isSecure, isOriginSecure: isSecure}),
|
|
485
|
-
links: schemefulSameSiteArticles,
|
|
486
|
-
};
|
|
487
|
-
}
|
|
488
|
-
|
|
489
|
-
function sameSiteExcludeContextDowngradeSet(isSecure: boolean): LazyMarkdownIssueDescription {
|
|
490
|
-
return {
|
|
491
|
-
file: 'SameSiteExcludeContextDowngradeSet.md',
|
|
492
|
-
substitutions: schemefulSameSiteSubstitutions({isDestinationSecure: isSecure, isOriginSecure: !isSecure}),
|
|
493
|
-
links: schemefulSameSiteArticles,
|
|
494
|
-
};
|
|
495
|
-
}
|
|
496
|
-
|
|
497
391
|
const attributeValueExceedsMaxSize: LazyMarkdownIssueDescription = {
|
|
498
392
|
file: 'CookieAttributeValueExceedsMaxSize.md',
|
|
499
393
|
links: [],
|
|
@@ -551,21 +445,6 @@ const issueDescriptions = new Map<string, LazyMarkdownIssueDescription>([
|
|
|
551
445
|
['CookieIssue::ExcludeSameSiteNoneInsecure::SetCookie', sameSiteNoneInsecureErrorSet],
|
|
552
446
|
['CookieIssue::WarnSameSiteNoneInsecure::ReadCookie', sameSiteNoneInsecureWarnRead],
|
|
553
447
|
['CookieIssue::WarnSameSiteNoneInsecure::SetCookie', sameSiteNoneInsecureWarnSet],
|
|
554
|
-
['CookieIssue::WarnSameSiteStrictLaxDowngradeStrict::Secure', sameSiteWarnStrictLaxDowngradeStrict(true)],
|
|
555
|
-
['CookieIssue::WarnSameSiteStrictLaxDowngradeStrict::Insecure', sameSiteWarnStrictLaxDowngradeStrict(false)],
|
|
556
|
-
['CookieIssue::WarnCrossDowngrade::ReadCookie::Secure', sameSiteWarnCrossDowngradeRead(true)],
|
|
557
|
-
['CookieIssue::WarnCrossDowngrade::ReadCookie::Insecure', sameSiteWarnCrossDowngradeRead(false)],
|
|
558
|
-
['CookieIssue::WarnCrossDowngrade::SetCookie::Secure', sameSiteWarnCrossDowngradeSet(true)],
|
|
559
|
-
['CookieIssue::WarnCrossDowngrade::SetCookie::Insecure', sameSiteWarnCrossDowngradeSet(false)],
|
|
560
|
-
['CookieIssue::ExcludeNavigationContextDowngrade::Secure', sameSiteExcludeNavigationContextDowngrade(true)],
|
|
561
|
-
[
|
|
562
|
-
'CookieIssue::ExcludeNavigationContextDowngrade::Insecure',
|
|
563
|
-
sameSiteExcludeNavigationContextDowngrade(false),
|
|
564
|
-
],
|
|
565
|
-
['CookieIssue::ExcludeContextDowngrade::ReadCookie::Secure', sameSiteExcludeContextDowngradeRead(true)],
|
|
566
|
-
['CookieIssue::ExcludeContextDowngrade::ReadCookie::Insecure', sameSiteExcludeContextDowngradeRead(false)],
|
|
567
|
-
['CookieIssue::ExcludeContextDowngrade::SetCookie::Secure', sameSiteExcludeContextDowngradeSet(true)],
|
|
568
|
-
['CookieIssue::ExcludeContextDowngrade::SetCookie::Insecure', sameSiteExcludeContextDowngradeSet(false)],
|
|
569
448
|
['CookieIssue::WarnAttributeValueExceedsMaxSize::ReadCookie', attributeValueExceedsMaxSize],
|
|
570
449
|
['CookieIssue::WarnAttributeValueExceedsMaxSize::SetCookie', attributeValueExceedsMaxSize],
|
|
571
450
|
['CookieIssue::WarnDomainNonASCII::ReadCookie', warnDomainNonAscii],
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
# Specify a more permissive Cross-Origin Resource Policy to
|
|
1
|
+
# Specify a more permissive Cross-Origin Resource Policy to stop a resource from being blocked
|
|
2
2
|
|
|
3
3
|
Your site tries to access an external resource that only allows same-origin usage.
|
|
4
|
-
This behavior
|
|
4
|
+
This behavior stops a document from loading any non-same-origin resources which don’t explicitly grant permission to be loaded.
|
|
5
5
|
|
|
6
6
|
To solve this, add the following to the resource’s HTML response header:
|
|
7
7
|
* `Cross-Origin-Resource-Policy: same-site` if the resource and your site are served from the same site.
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
# Specify a Cross-Origin Resource Policy to
|
|
1
|
+
# Specify a Cross-Origin Resource Policy to stop a resource from being blocked
|
|
2
2
|
|
|
3
3
|
Because your site has the Cross-Origin Embedder Policy (COEP) enabled, each
|
|
4
4
|
resource must specify a suitable Cross-Origin Resource Policy (CORP). This
|
|
5
|
-
behavior
|
|
5
|
+
behavior stops a document from loading cross-origin resources which don’t
|
|
6
6
|
explicitly grant permission to be loaded.
|
|
7
7
|
|
|
8
|
-
To solve this, add the following to the resource’ response header:
|
|
8
|
+
To solve this, add the following to the resource’s response header:
|
|
9
9
|
* `Cross-Origin-Resource-Policy: same-site` if the resource and your site are
|
|
10
10
|
served from the same site.
|
|
11
11
|
* `Cross-Origin-Resource-Policy: cross-origin` if the resource is served from
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
# Specify a more permissive Cross-Origin Resource Policy to
|
|
1
|
+
# Specify a more permissive Cross-Origin Resource Policy to stop a resource from being blocked
|
|
2
2
|
|
|
3
3
|
Your site tries to access an external resource that only allows same-site usage.
|
|
4
|
-
This behavior
|
|
4
|
+
This behavior stops a document from loading any non-same-site resources which don’t explicitly grant permission to be loaded.
|
|
5
5
|
|
|
6
6
|
To solve this, add the following to the resource’s HTML response header: `Cross-Origin-Resource-Policy: cross-origin`
|
|
7
7
|
⚠️If you set this header, any website can embed this resource.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Specify a Cross-Origin Embedder Policy to
|
|
1
|
+
# Specify a Cross-Origin Embedder Policy to stop this frame from being blocked
|
|
2
2
|
|
|
3
3
|
Because your site has the Cross-Origin Embedder Policy (COEP) enabled, each
|
|
4
4
|
embedded iframe must also specify this policy. This behavior protects private
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
|
|
3
3
|
One or more documents in this page is in Quirks Mode, which will render the affected document(s) with quirks incompatible with the current HTML and CSS specifications.
|
|
4
4
|
|
|
5
|
-
Quirks Mode exists mostly due to historical reasons. If this
|
|
5
|
+
Quirks Mode exists mostly due to historical reasons. If this isn’t intentional, you can [add or modify the DOCTYPE to be `<!DOCTYPE html>`](issueQuirksModeDoctype) to render the page in No Quirks Mode.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# Ensure cookie attribute values don’t exceed 1024 characters
|
|
2
2
|
|
|
3
|
-
Cookie attribute values exceeding 1024 characters in size will result in the attribute being ignored. This could lead to unexpected behavior since the cookie will be processed as if the offending attribute / attribute value pair
|
|
3
|
+
Cookie attribute values exceeding 1024 characters in size will result in the attribute being ignored. This could lead to unexpected behavior since the cookie will be processed as if the offending attribute / attribute value pair weren’t present.
|
|
4
4
|
|
|
5
|
-
Resolve this issue by ensuring that cookie attribute values don’t exceed 1024 characters.
|
|
5
|
+
Resolve this issue by ensuring that cookie attribute values don’t exceed 1024 characters.
|