chrome-devtools-frontend 1.0.1665921 → 1.0.1667564
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 +115 -64
- package/front_end/core/host/GcaClient.ts +3 -3
- package/front_end/core/host/InspectorFrontendHostAPI.ts +1 -0
- package/front_end/core/host/InspectorFrontendHostStub.ts +3 -3
- package/front_end/core/host/UserMetrics.ts +50 -13
- package/front_end/core/sdk/CSSMatchedStyles.ts +2 -5
- package/front_end/core/sdk/CSSPropertyParserMatchers.ts +12 -0
- package/front_end/core/sdk/Connections.ts +1 -1
- package/front_end/core/sdk/DOMModel.test.api.ts +104 -0
- package/front_end/core/sdk/DOMModel.ts +23 -11
- package/front_end/core/sdk/DebuggerModel.ts +9 -9
- package/front_end/core/sdk/IsolateManager.ts +1 -1
- package/front_end/core/sdk/NetworkManager.ts +105 -4
- package/front_end/core/sdk/NetworkRequest.ts +10 -55
- package/front_end/core/sdk/OverlayModel.ts +15 -14
- package/front_end/core/sdk/RemoteObject.ts +1 -1
- package/front_end/devtools_compatibility.js +1 -0
- package/front_end/entrypoints/main/MainImpl.ts +5 -12
- package/front_end/entrypoints/main/SimpleApp.ts +9 -3
- package/front_end/foundation/Universe.ts +22 -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/contexts/PerformanceTraceContext.ts +23 -10
- package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.ts +21 -5
- package/front_end/models/computed_style/ComputedStyleModel.ts +4 -7
- package/front_end/models/crux-manager/CrUXManager.ts +4 -0
- package/front_end/models/extensions/ExtensionAPI.ts +3 -3
- package/front_end/models/heap_snapshot/HeapSnapshotProxy.ts +2 -2
- 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/models/live-metrics/LiveMetrics.ts +59 -19
- package/front_end/models/live-metrics/web-vitals-injected/README.md +1 -1
- package/front_end/models/live-metrics/web-vitals-injected/spec/spec.ts +6 -1
- package/front_end/models/live-metrics/web-vitals-injected/web-vitals-injected.ts +11 -3
- package/front_end/models/logs/LogManager.ts +1 -1
- package/front_end/models/persistence/FileSystemWorkspaceBinding.ts +1 -1
- package/front_end/models/source_map_scopes/FunctionCodeResolver.ts +6 -7
- package/front_end/models/workspace_diff/WorkspaceDiff.ts +13 -14
- package/front_end/panels/ai_assistance/AiAssistancePanel.ts +15 -7
- package/front_end/panels/application/BackgroundServiceView.ts +18 -20
- package/front_end/panels/application/DOMStorageItemsView.ts +1 -2
- package/front_end/panels/application/KeyValueStorageItemsView.ts +12 -0
- package/front_end/panels/autofill/AutofillView.ts +17 -17
- package/front_end/panels/autofill/autofillView.css +7 -8
- package/front_end/panels/browser_debugger/CategorizedBreakpointsSidebarPane.ts +31 -31
- package/front_end/panels/browser_debugger/DOMBreakpointsSidebarPane.ts +15 -15
- package/front_end/panels/browser_debugger/XHRBreakpointsSidebarPane.ts +12 -12
- package/front_end/panels/browser_debugger/browser_debugger-meta.ts +27 -27
- package/front_end/panels/common/AiCodeCompletionDisclaimer.ts +14 -6
- package/front_end/panels/common/AiCodeCompletionSummaryToolbar.ts +14 -6
- package/front_end/panels/common/AiCodeCompletionTeaser.ts +13 -6
- package/front_end/panels/common/GeminiRebrandPromoDialog.ts +1 -1
- package/front_end/panels/console/ConsoleInsightTeaser.ts +13 -6
- package/front_end/panels/console/ConsoleView.ts +6 -6
- package/front_end/panels/console_counters/WarningErrorCounter.ts +4 -4
- package/front_end/panels/coverage/CoverageModel.ts +11 -1
- package/front_end/panels/elements/StylePropertiesSection.ts +59 -10
- package/front_end/panels/elements/StylesAiCodeCompletionProvider.ts +18 -7
- package/front_end/panels/elements/StylesSidebarPane.ts +48 -0
- package/front_end/panels/emulation/AdvancedApp.ts +18 -8
- 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/event_listeners/EventListenersView.ts +8 -8
- package/front_end/panels/explain/components/ConsoleInsight.ts +15 -7
- package/front_end/panels/lighthouse/LighthouseController.ts +1 -6
- package/front_end/panels/network/NetworkLogView.ts +13 -14
- package/front_end/panels/screencast/ScreencastApp.ts +12 -6
- package/front_end/panels/screencast/ScreencastView.ts +37 -11
- package/front_end/panels/sensors/locationsSettingsTab.css +4 -0
- package/front_end/panels/settings/AISettingsTab.ts +13 -6
- package/front_end/panels/sources/DebuggerPlugin.ts +13 -2
- package/front_end/panels/sources/breakpointEditDialog.css +2 -2
- package/front_end/panels/timeline/components/LiveMetricsView.ts +14 -1
- package/front_end/panels/timeline/components/cpuThrottlingSelector.css +4 -0
- package/front_end/panels/timeline/components/liveMetricsView.css +28 -0
- package/front_end/panels/timeline/timeline-meta.ts +13 -0
- package/front_end/third_party/chromium/README.chromium +1 -1
- package/front_end/ui/components/menus/menu.css +4 -0
- package/front_end/ui/components/menus/menuItem.css +4 -0
- package/front_end/ui/components/menus/selectMenu.css +4 -0
- package/front_end/ui/components/menus/selectMenuButton.css +4 -0
- package/front_end/ui/components/text_editor/AiCodeCompletionProvider.ts +21 -10
- package/front_end/ui/components/text_editor/AiCodeGenerationProvider.ts +23 -12
- package/front_end/ui/components/text_editor/config.ts +7 -0
- package/front_end/ui/legacy/AppProvider.ts +2 -1
- package/front_end/ui/legacy/RootView.ts +8 -1
- package/front_end/ui/legacy/UniverseRequestEvent.ts +19 -0
- package/front_end/ui/legacy/Widget.ts +49 -6
- package/front_end/ui/legacy/inspectorCommon.css +1 -1
- package/front_end/ui/legacy/legacy.ts +2 -0
- package/front_end/ui/visual_logging/KnownContextValues.ts +2 -0
- 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
|
@@ -7,6 +7,7 @@ import type {UrlString} from '../../../core/platform/DevToolsPath.js';
|
|
|
7
7
|
import type * as Platform from '../../../core/platform/platform.js';
|
|
8
8
|
import * as SDK from '../../../core/sdk/sdk.js';
|
|
9
9
|
import * as Tracing from '../../../services/tracing/tracing.js';
|
|
10
|
+
import * as Bindings from '../../bindings/bindings.js';
|
|
10
11
|
import * as SourceMapScopes from '../../source_map_scopes/source_map_scopes.js';
|
|
11
12
|
import * as Trace from '../../trace/trace.js';
|
|
12
13
|
import {
|
|
@@ -28,52 +29,63 @@ import {AgentFocus} from '../performance/AIContext.js';
|
|
|
28
29
|
* the context data for the LLM prompt and user-facing accordion disclosures.
|
|
29
30
|
*/
|
|
30
31
|
export class PerformanceTraceContext extends ConversationContext<AgentFocus> {
|
|
31
|
-
static fromParsedTrace(
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
32
|
+
static fromParsedTrace(
|
|
33
|
+
parsedTrace: Trace.TraceModel.ParsedTrace,
|
|
34
|
+
targetManager: SDK.TargetManager.TargetManager = SDK.TargetManager.TargetManager.instance(),
|
|
35
|
+
freshRecordingTracker: Tracing.FreshRecording.Tracker = Tracing.FreshRecording.Tracker.instance(),
|
|
36
|
+
debuggerWorkspaceBinding: Bindings.DebuggerWorkspaceBinding.DebuggerWorkspaceBinding =
|
|
37
|
+
Bindings.DebuggerWorkspaceBinding.DebuggerWorkspaceBinding.instance()): PerformanceTraceContext {
|
|
36
38
|
return new PerformanceTraceContext(
|
|
37
39
|
AgentFocus.fromParsedTrace(parsedTrace),
|
|
38
40
|
targetManager,
|
|
39
41
|
freshRecordingTracker,
|
|
42
|
+
debuggerWorkspaceBinding,
|
|
40
43
|
);
|
|
41
44
|
}
|
|
42
45
|
|
|
43
46
|
static fromInsight(parsedTrace: Trace.TraceModel.ParsedTrace, insight: Trace.Insights.Types.InsightModel,
|
|
44
47
|
targetManager: SDK.TargetManager.TargetManager = SDK.TargetManager.TargetManager.instance(),
|
|
45
|
-
freshRecordingTracker: Tracing.FreshRecording.Tracker = Tracing.FreshRecording.Tracker.instance()
|
|
48
|
+
freshRecordingTracker: Tracing.FreshRecording.Tracker = Tracing.FreshRecording.Tracker.instance(),
|
|
49
|
+
debuggerWorkspaceBinding: Bindings.DebuggerWorkspaceBinding.DebuggerWorkspaceBinding =
|
|
50
|
+
Bindings.DebuggerWorkspaceBinding.DebuggerWorkspaceBinding.instance()):
|
|
46
51
|
PerformanceTraceContext {
|
|
47
52
|
return new PerformanceTraceContext(
|
|
48
53
|
AgentFocus.fromInsight(parsedTrace, insight),
|
|
49
54
|
targetManager,
|
|
50
55
|
freshRecordingTracker,
|
|
56
|
+
debuggerWorkspaceBinding,
|
|
51
57
|
);
|
|
52
58
|
}
|
|
53
59
|
|
|
54
60
|
static fromCallTree(callTree: AICallTree,
|
|
55
61
|
targetManager: SDK.TargetManager.TargetManager = SDK.TargetManager.TargetManager.instance(),
|
|
56
|
-
freshRecordingTracker:
|
|
57
|
-
|
|
62
|
+
freshRecordingTracker: Tracing.FreshRecording.Tracker = Tracing.FreshRecording.Tracker.instance(),
|
|
63
|
+
debuggerWorkspaceBinding: Bindings.DebuggerWorkspaceBinding.DebuggerWorkspaceBinding =
|
|
64
|
+
Bindings.DebuggerWorkspaceBinding.DebuggerWorkspaceBinding.instance()):
|
|
58
65
|
PerformanceTraceContext {
|
|
59
66
|
return new PerformanceTraceContext(
|
|
60
67
|
AgentFocus.fromCallTree(callTree),
|
|
61
68
|
targetManager,
|
|
62
69
|
freshRecordingTracker,
|
|
70
|
+
debuggerWorkspaceBinding,
|
|
63
71
|
);
|
|
64
72
|
}
|
|
65
73
|
|
|
66
74
|
readonly #focus: AgentFocus;
|
|
67
75
|
readonly #targetManager: SDK.TargetManager.TargetManager;
|
|
68
76
|
readonly #freshRecordingTracker: Tracing.FreshRecording.Tracker;
|
|
77
|
+
readonly #debuggerWorkspaceBinding: Bindings.DebuggerWorkspaceBinding.DebuggerWorkspaceBinding;
|
|
69
78
|
|
|
70
79
|
constructor(focus: AgentFocus,
|
|
71
80
|
targetManager: SDK.TargetManager.TargetManager = SDK.TargetManager.TargetManager.instance(),
|
|
72
|
-
freshRecordingTracker: Tracing.FreshRecording.Tracker = Tracing.FreshRecording.Tracker.instance()
|
|
81
|
+
freshRecordingTracker: Tracing.FreshRecording.Tracker = Tracing.FreshRecording.Tracker.instance(),
|
|
82
|
+
debuggerWorkspaceBinding: Bindings.DebuggerWorkspaceBinding.DebuggerWorkspaceBinding =
|
|
83
|
+
Bindings.DebuggerWorkspaceBinding.DebuggerWorkspaceBinding.instance()) {
|
|
73
84
|
super();
|
|
74
85
|
this.#focus = focus;
|
|
75
86
|
this.#targetManager = targetManager;
|
|
76
87
|
this.#freshRecordingTracker = freshRecordingTracker;
|
|
88
|
+
this.#debuggerWorkspaceBinding = debuggerWorkspaceBinding;
|
|
77
89
|
}
|
|
78
90
|
|
|
79
91
|
/**
|
|
@@ -95,7 +107,8 @@ export class PerformanceTraceContext extends ConversationContext<AgentFocus> {
|
|
|
95
107
|
return null;
|
|
96
108
|
}
|
|
97
109
|
return await SourceMapScopes.FunctionCodeResolver.getFunctionCodeFromLocation(
|
|
98
|
-
target, url, line, column,
|
|
110
|
+
target, url, line, column, this.#debuggerWorkspaceBinding,
|
|
111
|
+
{contextLength: 200, contextLineLength: 5, appendProfileData: true});
|
|
99
112
|
};
|
|
100
113
|
return formatter;
|
|
101
114
|
}
|
|
@@ -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);
|
|
@@ -15,7 +15,7 @@ export class ComputedStyleModel extends Common.ObjectWrapper.ObjectWrapper<Event
|
|
|
15
15
|
#node: SDK.DOMModel.DOMNode|null = null;
|
|
16
16
|
#cssModel: SDK.CSSModel.CSSModel|null = null;
|
|
17
17
|
private eventListeners: Common.EventTarget.EventDescriptor[] = [];
|
|
18
|
-
private frameResizedTimer?:
|
|
18
|
+
private frameResizedTimer?: ReturnType<typeof setTimeout>;
|
|
19
19
|
private computedStylePromise?: Promise<ComputedStyle|null>;
|
|
20
20
|
|
|
21
21
|
constructor(node?: SDK.DOMModel.DOMNode|null) {
|
|
@@ -49,10 +49,9 @@ export class ComputedStyleModel extends Common.ObjectWrapper.ObjectWrapper<Event
|
|
|
49
49
|
this.node = null;
|
|
50
50
|
this.#cssModel = null;
|
|
51
51
|
this.computedStylePromise = undefined;
|
|
52
|
-
|
|
52
|
+
|
|
53
53
|
clearTimeout(this.frameResizedTimer);
|
|
54
54
|
this.frameResizedTimer = undefined;
|
|
55
|
-
}
|
|
56
55
|
}
|
|
57
56
|
|
|
58
57
|
private updateModel(cssModel: SDK.CSSModel.CSSModel|null): void {
|
|
@@ -111,14 +110,12 @@ export class ComputedStyleModel extends Common.ObjectWrapper.ObjectWrapper<Event
|
|
|
111
110
|
private onFrameResized(): void {
|
|
112
111
|
function refreshContents(this: ComputedStyleModel): void {
|
|
113
112
|
this.onCSSModelChanged(null);
|
|
114
|
-
|
|
113
|
+
this.frameResizedTimer = undefined;
|
|
115
114
|
}
|
|
116
115
|
|
|
117
|
-
if (this.frameResizedTimer) {
|
|
118
116
|
clearTimeout(this.frameResizedTimer);
|
|
119
|
-
}
|
|
120
117
|
|
|
121
|
-
|
|
118
|
+
this.frameResizedTimer = globalThis.setTimeout(refreshContents.bind(this), 100);
|
|
122
119
|
}
|
|
123
120
|
|
|
124
121
|
private elementNode(): SDK.DOMModel.DOMNode|null {
|
|
@@ -311,6 +311,10 @@ export class CrUXManager extends Common.ObjectWrapper.ObjectWrapper<EventTypes>
|
|
|
311
311
|
this.dispatchEventToListeners(Events.FIELD_DATA_CHANGED, this.#pageResult);
|
|
312
312
|
}
|
|
313
313
|
|
|
314
|
+
setMainDocumentURL(url: string): void {
|
|
315
|
+
this.#mainDocumentUrl = url;
|
|
316
|
+
}
|
|
317
|
+
|
|
314
318
|
#normalizeUrl(inputUrl: string): URL {
|
|
315
319
|
const normalizedUrl = new URL(inputUrl);
|
|
316
320
|
normalizedUrl.hash = '';
|
|
@@ -1554,7 +1554,7 @@ self.injectedExtensionAPI = function(
|
|
|
1554
1554
|
}
|
|
1555
1555
|
|
|
1556
1556
|
let keyboardEventRequestQueue: KeyboardEventInit&Array<{eventType: string}> = [];
|
|
1557
|
-
let forwardTimer:
|
|
1557
|
+
let forwardTimer: ReturnType<typeof setTimeout>|undefined;
|
|
1558
1558
|
function forwardKeyboardEvent(event: KeyboardEvent): void {
|
|
1559
1559
|
// Check if the event should be forwarded.
|
|
1560
1560
|
// This is a workaround for crbug.com/923338.
|
|
@@ -1601,12 +1601,12 @@ self.injectedExtensionAPI = function(
|
|
|
1601
1601
|
};
|
|
1602
1602
|
keyboardEventRequestQueue.push(requestPayload);
|
|
1603
1603
|
if (!forwardTimer) {
|
|
1604
|
-
forwardTimer =
|
|
1604
|
+
forwardTimer = globalThis.setTimeout(forwardEventQueue, 0);
|
|
1605
1605
|
}
|
|
1606
1606
|
}
|
|
1607
1607
|
|
|
1608
1608
|
function forwardEventQueue(): void {
|
|
1609
|
-
forwardTimer =
|
|
1609
|
+
forwardTimer = undefined;
|
|
1610
1610
|
extensionServer.sendRequest(
|
|
1611
1611
|
{command: PrivateAPI.Commands.ForwardKeyboardEvent, entries: keyboardEventRequestQueue});
|
|
1612
1612
|
keyboardEventRequestQueue = [];
|
|
@@ -17,7 +17,7 @@ export class HeapSnapshotWorkerProxy extends Common.ObjectWrapper.ObjectWrapper<
|
|
|
17
17
|
callbacks = new Map<number, (...args: any[]) => void>();
|
|
18
18
|
readonly previousCallbacks = new Set<number>();
|
|
19
19
|
readonly worker: PlatformApi.HostRuntime.Worker;
|
|
20
|
-
interval?:
|
|
20
|
+
interval?: ReturnType<typeof setInterval>;
|
|
21
21
|
readonly workerUrl?: string;
|
|
22
22
|
|
|
23
23
|
constructor(
|
|
@@ -129,7 +129,7 @@ export class HeapSnapshotWorkerProxy extends Common.ObjectWrapper.ObjectWrapper<
|
|
|
129
129
|
return;
|
|
130
130
|
}
|
|
131
131
|
this.checkLongRunningCalls();
|
|
132
|
-
this.interval =
|
|
132
|
+
this.interval = globalThis.setInterval(this.checkLongRunningCalls.bind(this), 300);
|
|
133
133
|
}
|
|
134
134
|
|
|
135
135
|
checkLongRunningCalls(): void {
|
|
@@ -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.
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
|
|
3
3
|
Low-contrast text is difficult or impossible for users to read. A [minimum contrast ratio (AA) of 4.5](issuesContrastWCAG21AA) is recommended for all text. Since font size and weight affect color perception, an exception is made for very large or bold text — in this case, a contrast ratio of 3.0 is allowed. The [enhanced conformance level (AAA)](issuesContrastWCAG21AAA) requires the contrast ratio to be above 7.0 for regular text and 4.5 for large text.
|
|
4
4
|
|
|
5
|
-
Update colors or change the font size or weight to achieve sufficient contrast. You can use the [“Suggest color” feature](issuesContrastSuggestColor) in the DevTools color picker to automatically select a better text color.
|
|
5
|
+
Update colors or change the font size or weight to achieve sufficient contrast. You can use the [“Suggest color” feature](issuesContrastSuggestColor) in the DevTools color picker to automatically select a better text color.
|
|
@@ -5,4 +5,4 @@ This behavior protects user data from being sent over an insecure connection.
|
|
|
5
5
|
|
|
6
6
|
Resolve this issue by updating the attributes of the cookie:
|
|
7
7
|
* Specify `SameSite=None` and `Secure` if the cookie should be sent in cross-site requests. This enables third-party use.
|
|
8
|
-
* Specify `SameSite=Strict` or `SameSite=Lax` if the cookie
|
|
8
|
+
* Specify `SameSite=Strict` or `SameSite=Lax` if the cookie shouldn’t be sent in cross-site requests.
|
|
@@ -5,4 +5,4 @@ This behavior protects user data from being sent over an insecure connection.
|
|
|
5
5
|
|
|
6
6
|
Resolve this issue by updating the attributes of the cookie:
|
|
7
7
|
* Specify `SameSite=None` and `Secure` if the cookie is intended to be set in cross-site contexts. Note that only cookies sent over HTTPS may use the `Secure` attribute.
|
|
8
|
-
* Specify `SameSite=Strict` or `SameSite=Lax` if the cookie
|
|
8
|
+
* Specify `SameSite=Strict` or `SameSite=Lax` if the cookie shouldn’t be set by cross-site requests.
|
|
@@ -5,4 +5,4 @@ This behavior protects user data from being sent over an insecure connection.
|
|
|
5
5
|
|
|
6
6
|
Resolve this issue by updating the attributes of the cookie:
|
|
7
7
|
* Specify `SameSite=None` and `Secure` if the cookie should be sent in cross-site requests. This enables third-party use.
|
|
8
|
-
* Specify `SameSite=Strict` or `SameSite=Lax` if the cookie
|
|
8
|
+
* Specify `SameSite=Strict` or `SameSite=Lax` if the cookie shouldn’t be sent in cross-site requests.
|
|
@@ -5,4 +5,4 @@ This behavior protects user data from being sent over an insecure connection.
|
|
|
5
5
|
|
|
6
6
|
Resolve this issue by updating the attributes of the cookie:
|
|
7
7
|
* Specify `SameSite=None` and `Secure` if the cookie is intended to be set in cross-site contexts. Note that only cookies sent over HTTPS may use the `Secure` attribute.
|
|
8
|
-
* Specify `SameSite=Strict` or `SameSite=Lax` if the cookie
|
|
8
|
+
* Specify `SameSite=Strict` or `SameSite=Lax` if the cookie shouldn’t be set by cross-site requests.
|
package/front_end/models/issues_manager/descriptions/SameSiteUnspecifiedLaxAllowUnsafeRead.md
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# Indicate whether to send a cookie in a cross-site request by specifying its SameSite attribute
|
|
2
2
|
|
|
3
|
-
Because a cookie’s `SameSite` attribute
|
|
4
|
-
which will
|
|
3
|
+
Because a cookie’s `SameSite` attribute wasn’t set or is invalid, it defaults to `SameSite=Lax`,
|
|
4
|
+
which will stop the cookie from being sent in a cross-site request in a future version of the browser.
|
|
5
5
|
This behavior protects user data from accidentally leaking to third parties and cross-site request forgery.
|
|
6
6
|
|
|
7
7
|
Resolve this issue by updating the attributes of the cookie:
|
|
8
8
|
* Specify `SameSite=None` and `Secure` if the cookie should be sent in cross-site requests. This enables third-party use.
|
|
9
|
-
* Specify `SameSite=Strict` or `SameSite=Lax` if the cookie
|
|
9
|
+
* Specify `SameSite=Strict` or `SameSite=Lax` if the cookie shouldn’t be sent in cross-site requests.
|
package/front_end/models/issues_manager/descriptions/SameSiteUnspecifiedLaxAllowUnsafeSet.md
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# Indicate whether a cookie is intended to be set in cross-site context by specifying its SameSite attribute
|
|
2
2
|
|
|
3
|
-
Because a cookie’s `SameSite` attribute
|
|
4
|
-
which will
|
|
3
|
+
Because a cookie’s `SameSite` attribute wasn’t set or is invalid, it defaults to `SameSite=Lax`,
|
|
4
|
+
which will stops the cookie from being set in a cross-site context in a future version of the browser.
|
|
5
5
|
This behavior protects user data from accidentally leaking to third parties and cross-site request forgery.
|
|
6
6
|
|
|
7
7
|
Resolve this issue by updating the attributes of the cookie:
|
|
8
8
|
* Specify `SameSite=None` and `Secure` if the cookie is intended to be set in cross-site contexts. Note that only cookies sent over HTTPS may use the `Secure` attribute.
|
|
9
|
-
* Specify `SameSite=Strict` or `SameSite=Lax` if the cookie
|
|
9
|
+
* Specify `SameSite=Strict` or `SameSite=Lax` if the cookie shouldn’t be set by cross-site requests.
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
# Chrome may soon delete state for intermediate websites in a recent navigation chain
|
|
2
2
|
|
|
3
|
-
In a recent navigation chain, one or more websites without prior user interaction were visited. If these websites don
|
|
3
|
+
In a recent navigation chain, one or more websites without prior user interaction were visited. If these websites don’t get such an interaction soon, Chrome will delete their state.
|
package/front_end/models/issues_manager/descriptions/connectionAllowlistInvalidAllowlistItemType.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
# An item in the `Connection-Allowlist` header is invalid
|
|
1
|
+
# An item in the `Connection-Allowlist` header is invalid
|
|
2
2
|
|
|
3
|
-
Each item in the `Connection-Allowlist
|
|
3
|
+
Each item in the `Connection-Allowlist`’s header’s [Inner List](sfInnerList)
|
|
4
4
|
must be a [String](sfString) representing a [URL Pattern](urlPatternSpec), or
|
|
5
5
|
the [Token](sfToken) `response-origin`.
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
# The `Connection-Allowlist` header
|
|
1
|
+
# The `Connection-Allowlist` header isn’t formatted as a Structured Field List
|
|
2
2
|
|
|
3
|
-
Responses
|
|
3
|
+
Responses’ `Connection-Allowlist` header should be formatted as a [List](sfList)
|
|
4
4
|
containing a single [Inner List](sfInnerList) that declares the allowed set of
|
|
5
5
|
[URL Patterns](urlPatternSpec) for a given context.
|
|
6
6
|
|
package/front_end/models/issues_manager/descriptions/connectionAllowlistInvalidUrlPattern.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
# An item in the `Connection-Allowlist` header
|
|
1
|
+
# An item in the `Connection-Allowlist` header isn’t a valid URL pattern
|
|
2
2
|
|
|
3
3
|
Each item in the `Connection-Allowlist` header must be a valid
|
|
4
|
-
[URL Pattern](urlPatternSpec) that can be used to match against the request
|
|
4
|
+
[URL Pattern](urlPatternSpec) that can be used to match against the request’s
|
|
5
5
|
origin.
|
|
6
6
|
|
|
7
|
-
Note that our current implementation
|
|
7
|
+
Note that our current implementation doesn’t allow regular expressions to be
|
|
8
8
|
used as part of the pattern.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
# An item in the `Connection-Allowlist` header
|
|
1
|
+
# An item in the `Connection-Allowlist` header isn’t an Inner List
|
|
2
2
|
|
|
3
|
-
Responses
|
|
3
|
+
Responses’ `Connection-Allowlist` header should be formatted as a [List](sfList)
|
|
4
4
|
containing a single [Inner List](sfInnerList) that declares the allowed set of
|
|
5
5
|
[URL Patterns](urlPatternSpec) for a given context.
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
# `Connection-Allowlist` has multiple items
|
|
1
|
+
# `Connection-Allowlist` has multiple items
|
|
2
2
|
|
|
3
|
-
Responses
|
|
3
|
+
Responses’ `Connection-Allowlist` header should be formatted as a [List](sfList)
|
|
4
4
|
containing a single [Inner List](sfInnerList) that declares the allowed set of
|
|
5
5
|
[URL Patterns](urlPatternSpec) for a given context. This response was a
|
|
6
6
|
[List](sfList) containing more than one item: all but the first have been
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Cookie is blocked due to a cross-site redirect chain
|
|
2
2
|
|
|
3
|
-
The cookie was blocked because the URL redirect chain
|
|
3
|
+
The cookie was blocked because the URL redirect chain wasn’t fully same-site,
|
|
4
4
|
meaning the final request was treated as a cross-site request.
|
|
5
5
|
Like other cross-site requests, this blocks cookies with `SameSite=Lax` or
|
|
6
6
|
`SameSite=Strict`.
|
|
@@ -8,5 +8,5 @@ Like other cross-site requests, this blocks cookies with `SameSite=Lax` or
|
|
|
8
8
|
For example: If site A redirects to site B which then redirects back to site A,
|
|
9
9
|
the final request to site A will be a cross-site request.
|
|
10
10
|
|
|
11
|
-
If this behavior is causing breakage,
|
|
12
|
-
below.
|
|
11
|
+
If this behavior is causing breakage, file a bug report with the link
|
|
12
|
+
below.
|