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.
Files changed (242) hide show
  1. package/.agents/skills/devtools-testing-guidance/SKILL.md +4 -0
  2. package/.agents/skills/migrate-chromium-test/SKILL.md +63 -48
  3. package/.agents/skills/ui-eng-vision-local-lit-renderer/SKILL.md +14 -5
  4. package/.agents/skills/ui-eng-vision-logic-consolidator/SKILL.md +11 -2
  5. package/.agents/skills/ui-eng-vision-orchestrator/SKILL.md +46 -9
  6. package/.agents/skills/ui-eng-vision-test-scaffolder/SKILL.md +20 -1
  7. package/.agents/skills/ui-eng-vision-widget-promoter/SKILL.md +9 -0
  8. package/front_end/core/host/AidaClient.ts +109 -60
  9. package/front_end/core/host/GcaClient.ts +3 -3
  10. package/front_end/core/host/UserMetrics.ts +1 -12
  11. package/front_end/core/sdk/NetworkRequest.ts +10 -55
  12. package/front_end/entrypoints/main/MainImpl.ts +0 -10
  13. package/front_end/foundation/Universe.ts +16 -0
  14. package/front_end/generated/InspectorBackendCommands.ts +2 -2
  15. package/front_end/generated/protocol.ts +2 -1
  16. package/front_end/models/ai_assistance/agents/AiAgent.ts +22 -13
  17. package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.ts +21 -5
  18. package/front_end/models/issues_manager/CookieIssue.ts +6 -127
  19. package/front_end/models/issues_manager/descriptions/CoepCorpNotSameOrigin.md +2 -2
  20. package/front_end/models/issues_manager/descriptions/CoepCorpNotSameOriginAfterDefaultedToSameOriginByCoep.md +3 -3
  21. package/front_end/models/issues_manager/descriptions/CoepCorpNotSameSite.md +2 -2
  22. package/front_end/models/issues_manager/descriptions/CoepFrameResourceNeedsCoepHeader.md +1 -1
  23. package/front_end/models/issues_manager/descriptions/CompatibilityModeQuirks.md +1 -1
  24. package/front_end/models/issues_manager/descriptions/CookieAttributeValueExceedsMaxSize.md +2 -2
  25. package/front_end/models/issues_manager/descriptions/LowTextContrast.md +1 -1
  26. package/front_end/models/issues_manager/descriptions/SameSiteNoneInsecureErrorRead.md +1 -1
  27. package/front_end/models/issues_manager/descriptions/SameSiteNoneInsecureErrorSet.md +1 -1
  28. package/front_end/models/issues_manager/descriptions/SameSiteNoneInsecureWarnRead.md +1 -1
  29. package/front_end/models/issues_manager/descriptions/SameSiteNoneInsecureWarnSet.md +1 -1
  30. package/front_end/models/issues_manager/descriptions/SameSiteUnspecifiedLaxAllowUnsafeRead.md +3 -3
  31. package/front_end/models/issues_manager/descriptions/SameSiteUnspecifiedLaxAllowUnsafeSet.md +3 -3
  32. package/front_end/models/issues_manager/descriptions/bounceTrackingMitigations.md +1 -1
  33. package/front_end/models/issues_manager/descriptions/connectionAllowlistInvalidAllowlistItemType.md +2 -2
  34. package/front_end/models/issues_manager/descriptions/connectionAllowlistInvalidHeader.md +2 -2
  35. package/front_end/models/issues_manager/descriptions/connectionAllowlistInvalidUrlPattern.md +3 -3
  36. package/front_end/models/issues_manager/descriptions/connectionAllowlistItemNotInnerList.md +2 -2
  37. package/front_end/models/issues_manager/descriptions/connectionAllowlistMoreThanOneList.md +2 -2
  38. package/front_end/models/issues_manager/descriptions/connectionAllowlistReportingEndpointNotToken.md +1 -1
  39. package/front_end/models/issues_manager/descriptions/cookieCrossSiteRedirectDowngrade.md +3 -3
  40. package/front_end/models/issues_manager/descriptions/cookieExcludeBlockedWithinRelatedWebsiteSet.md +1 -1
  41. package/front_end/models/issues_manager/descriptions/cookieExcludePortMismatch.md +1 -1
  42. package/front_end/models/issues_manager/descriptions/cookieExcludeSchemeMismatch.md +1 -1
  43. package/front_end/models/issues_manager/descriptions/cookieExcludeThirdPartyPhaseoutSet.md +1 -1
  44. package/front_end/models/issues_manager/descriptions/cookieWarnThirdPartyPhaseoutRead.md +1 -1
  45. package/front_end/models/issues_manager/descriptions/corsAllowCredentialsRequired.md +1 -1
  46. package/front_end/models/issues_manager/descriptions/corsDisabledScheme.md +2 -2
  47. package/front_end/models/issues_manager/descriptions/corsDisallowedByMode.md +2 -2
  48. package/front_end/models/issues_manager/descriptions/corsHeaderDisallowedByPreflightResponse.md +1 -1
  49. package/front_end/models/issues_manager/descriptions/corsInvalidHeaderValues.md +3 -3
  50. package/front_end/models/issues_manager/descriptions/corsLocalNetworkAccessPermissionDenied.md +1 -1
  51. package/front_end/models/issues_manager/descriptions/corsMethodDisallowedByPreflightResponse.md +1 -1
  52. package/front_end/models/issues_manager/descriptions/corsNoCorsRedirectModeNotFollow.md +1 -1
  53. package/front_end/models/issues_manager/descriptions/corsOriginMismatch.md +3 -3
  54. package/front_end/models/issues_manager/descriptions/corsPreflightResponseInvalid.md +2 -2
  55. package/front_end/models/issues_manager/descriptions/corsRedirectContainsCredentials.md +3 -3
  56. package/front_end/models/issues_manager/descriptions/corsWildcardOriginNotAllowed.md +4 -3
  57. package/front_end/models/issues_manager/descriptions/cspEvalViolation.md +4 -4
  58. package/front_end/models/issues_manager/descriptions/cspInlineViolation.md +2 -2
  59. package/front_end/models/issues_manager/descriptions/cspTrustedTypesPolicyViolation.md +2 -2
  60. package/front_end/models/issues_manager/descriptions/cspTrustedTypesSinkViolation.md +4 -4
  61. package/front_end/models/issues_manager/descriptions/cspURLViolation.md +4 -4
  62. package/front_end/models/issues_manager/descriptions/emailVerificationRequestAccountsEmptyList.md +1 -1
  63. package/front_end/models/issues_manager/descriptions/emailVerificationRequestAccountsHttpNotFound.md +1 -1
  64. package/front_end/models/issues_manager/descriptions/emailVerificationRequestAccountsInvalidContentType.md +1 -1
  65. package/front_end/models/issues_manager/descriptions/emailVerificationRequestAccountsInvalidResponse.md +1 -1
  66. package/front_end/models/issues_manager/descriptions/emailVerificationRequestAccountsNoResponse.md +1 -1
  67. package/front_end/models/issues_manager/descriptions/emailVerificationRequestDnsFetchFailed.md +1 -1
  68. package/front_end/models/issues_manager/descriptions/emailVerificationRequestDnsInvalidRecord.md +1 -1
  69. package/front_end/models/issues_manager/descriptions/emailVerificationRequestEmailVerificationWellKnownHttpNotFound.md +1 -1
  70. package/front_end/models/issues_manager/descriptions/emailVerificationRequestEmailVerificationWellKnownInvalidContentType.md +1 -1
  71. package/front_end/models/issues_manager/descriptions/emailVerificationRequestEmailVerificationWellKnownInvalidResponse.md +1 -1
  72. package/front_end/models/issues_manager/descriptions/emailVerificationRequestEmailVerificationWellKnownNoResponse.md +1 -1
  73. package/front_end/models/issues_manager/descriptions/emailVerificationRequestInvalidEmail.md +1 -1
  74. package/front_end/models/issues_manager/descriptions/emailVerificationRequestJwksHttpNotFound.md +1 -1
  75. package/front_end/models/issues_manager/descriptions/emailVerificationRequestJwksInvalidResponse.md +1 -1
  76. package/front_end/models/issues_manager/descriptions/emailVerificationRequestKeyBindingSigningFailed.md +1 -1
  77. package/front_end/models/issues_manager/descriptions/emailVerificationRequestRpOriginIsOpaque.md +1 -1
  78. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenHttpNotFound.md +1 -1
  79. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenInvalidContentType.md +1 -1
  80. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenInvalidResponse.md +1 -1
  81. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenInvalidSdJwt.md +1 -1
  82. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenMalformedSdJwt.md +1 -1
  83. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenNoResponse.md +1 -1
  84. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationKbInvalidAudience.md +1 -1
  85. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationKbInvalidIssuedAt.md +1 -1
  86. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationKbInvalidNonce.md +1 -1
  87. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationKbInvalidSdHash.md +1 -1
  88. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationKbInvalidTyp.md +1 -1
  89. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationKbMissingAud.md +1 -1
  90. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationKbMissingCnf.md +1 -1
  91. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationKbMissingIat.md +1 -1
  92. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationKbMissingNonce.md +1 -1
  93. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationKbMissingSdHash.md +1 -1
  94. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationKbSignatureFailed.md +1 -1
  95. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationSdJwtInvalidEmail.md +1 -1
  96. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationSdJwtInvalidEmailVerified.md +1 -1
  97. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationSdJwtInvalidHolderKey.md +1 -1
  98. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationSdJwtInvalidIssuedAt.md +1 -1
  99. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationSdJwtInvalidIssuer.md +1 -1
  100. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationSdJwtJwksMissingKeys.md +1 -1
  101. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationSdJwtMissingCnf.md +1 -1
  102. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationSdJwtMissingEmail.md +1 -1
  103. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationSdJwtMissingIat.md +1 -1
  104. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationSdJwtMissingIss.md +1 -1
  105. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationSdJwtSignatureFailed.md +1 -1
  106. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationSdJwtUnsupportedHeaderAlg.md +1 -1
  107. package/front_end/models/issues_manager/descriptions/emailVerificationRequestUserLoggedOut.md +1 -1
  108. package/front_end/models/issues_manager/descriptions/emailVerificationRequestWellKnownAccountsEndpointCrossOrigin.md +1 -1
  109. package/front_end/models/issues_manager/descriptions/emailVerificationRequestWellKnownHttpNotFound.md +1 -1
  110. package/front_end/models/issues_manager/descriptions/emailVerificationRequestWellKnownInvalidContentType.md +1 -1
  111. package/front_end/models/issues_manager/descriptions/emailVerificationRequestWellKnownInvalidResponse.md +1 -1
  112. package/front_end/models/issues_manager/descriptions/emailVerificationRequestWellKnownIssuanceEndpointCrossOrigin.md +1 -1
  113. package/front_end/models/issues_manager/descriptions/emailVerificationRequestWellKnownListEmpty.md +1 -1
  114. package/front_end/models/issues_manager/descriptions/emailVerificationRequestWellKnownMissingAccountsEndpoint.md +1 -1
  115. package/front_end/models/issues_manager/descriptions/emailVerificationRequestWellKnownMissingIssuanceEndpoint.md +1 -1
  116. package/front_end/models/issues_manager/descriptions/emailVerificationRequestWellKnownNoResponse.md +1 -1
  117. package/front_end/models/issues_manager/descriptions/emailVerificationRequestWellKnownUnsupportedSigningAlgorithm.md +1 -1
  118. package/front_end/models/issues_manager/descriptions/federatedAuthRequestAccountsHttpNotFound.md +1 -1
  119. package/front_end/models/issues_manager/descriptions/federatedAuthRequestAccountsInvalidResponse.md +1 -1
  120. package/front_end/models/issues_manager/descriptions/federatedAuthRequestAccountsNoResponse.md +1 -1
  121. package/front_end/models/issues_manager/descriptions/federatedAuthRequestApprovalDeclined.md +1 -1
  122. package/front_end/models/issues_manager/descriptions/federatedAuthRequestCanceled.md +1 -1
  123. package/front_end/models/issues_manager/descriptions/federatedAuthRequestErrorFetchingSignin.md +1 -1
  124. package/front_end/models/issues_manager/descriptions/federatedAuthRequestErrorIdToken.md +1 -1
  125. package/front_end/models/issues_manager/descriptions/federatedAuthRequestIdTokenHttpNotFound.md +1 -1
  126. package/front_end/models/issues_manager/descriptions/federatedAuthRequestIdTokenInvalidRequest.md +1 -1
  127. package/front_end/models/issues_manager/descriptions/federatedAuthRequestIdTokenInvalidResponse.md +1 -1
  128. package/front_end/models/issues_manager/descriptions/federatedAuthRequestIdTokenNoResponse.md +1 -1
  129. package/front_end/models/issues_manager/descriptions/federatedAuthRequestInvalidSigninResponse.md +1 -1
  130. package/front_end/models/issues_manager/descriptions/federatedAuthRequestManifestHttpNotFound.md +1 -1
  131. package/front_end/models/issues_manager/descriptions/federatedAuthRequestManifestInvalidResponse.md +1 -1
  132. package/front_end/models/issues_manager/descriptions/federatedAuthRequestManifestNoResponse.md +1 -1
  133. package/front_end/models/issues_manager/descriptions/federatedAuthRequestTooManyRequests.md +1 -1
  134. package/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestInvalidAccountsResponse.md +1 -1
  135. package/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestInvalidConfigOrWellKnown.md +1 -1
  136. package/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNoAccountSharingPermission.md +1 -1
  137. package/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNoApiPermission.md +1 -1
  138. package/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNoReturningUserFromFetchedAccounts.md +1 -1
  139. package/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotIframe.md +1 -1
  140. package/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotPotentiallyTrustworthy.md +1 -1
  141. package/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotSameOrigin.md +1 -1
  142. package/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotSignedInWithIdp.md +1 -1
  143. package/front_end/models/issues_manager/descriptions/fetchingPartitionedBlobURL.md +2 -2
  144. package/front_end/models/issues_manager/descriptions/genericFormAriaLabelledByToNonExistingIdError.md +2 -2
  145. package/front_end/models/issues_manager/descriptions/genericFormAutocompleteAttributeEmptyError.md +1 -1
  146. package/front_end/models/issues_manager/descriptions/genericFormDuplicateIdForInputError.md +1 -1
  147. package/front_end/models/issues_manager/descriptions/genericFormEmptyIdAndNameAttributesForInputError.md +2 -2
  148. package/front_end/models/issues_manager/descriptions/genericFormInputAssignedAutocompleteValueToIdOrNameAttributeError.md +2 -2
  149. package/front_end/models/issues_manager/descriptions/genericFormInputHasWrongButWellIntendedAutocompleteValueError.md +1 -1
  150. package/front_end/models/issues_manager/descriptions/genericFormInputWithNoLabelError.md +1 -1
  151. package/front_end/models/issues_manager/descriptions/genericFormLabelForMatchesNonExistingIdError.md +2 -2
  152. package/front_end/models/issues_manager/descriptions/genericFormLabelForNameError.md +1 -1
  153. package/front_end/models/issues_manager/descriptions/genericFormLabelHasNeitherForNorNestedInputError.md +1 -1
  154. package/front_end/models/issues_manager/descriptions/genericFormModelContextMissingToolName.md +1 -1
  155. package/front_end/models/issues_manager/descriptions/genericFormModelContextParameterMissingName.md +1 -1
  156. package/front_end/models/issues_manager/descriptions/genericFormModelContextRequiredParameterMissingName.md +1 -1
  157. package/front_end/models/issues_manager/descriptions/genericNavigationEntryMarkedSkippable.md +2 -2
  158. package/front_end/models/issues_manager/descriptions/heavyAd.md +1 -1
  159. package/front_end/models/issues_manager/descriptions/lazyLoadImageZeroSize.md +1 -1
  160. package/front_end/models/issues_manager/descriptions/navigatingPartitionedBlobURL.md +3 -3
  161. package/front_end/models/issues_manager/descriptions/permissionElementActivationDisabled.md +1 -1
  162. package/front_end/models/issues_manager/descriptions/permissionElementActivationDisabledWithOccluder.md +1 -1
  163. package/front_end/models/issues_manager/descriptions/permissionElementActivationDisabledWithOccluderParent.md +1 -1
  164. package/front_end/models/issues_manager/descriptions/permissionElementFencedFrameDisallowed.md +2 -2
  165. package/front_end/models/issues_manager/descriptions/permissionElementFontSizeTooLarge.md +2 -2
  166. package/front_end/models/issues_manager/descriptions/permissionElementFontSizeTooSmall.md +2 -2
  167. package/front_end/models/issues_manager/descriptions/permissionElementInsetBoxShadowUnsupported.md +1 -1
  168. package/front_end/models/issues_manager/descriptions/permissionElementInvalidDisplayStyle.md +2 -2
  169. package/front_end/models/issues_manager/descriptions/permissionElementInvalidSizeValue.md +2 -2
  170. package/front_end/models/issues_manager/descriptions/permissionElementInvalidType.md +2 -2
  171. package/front_end/models/issues_manager/descriptions/permissionElementInvalidTypeActivation.md +2 -2
  172. package/front_end/models/issues_manager/descriptions/permissionElementNonOpaqueColor.md +1 -1
  173. package/front_end/models/issues_manager/descriptions/permissionElementPaddingBottomUnsupported.md +2 -2
  174. package/front_end/models/issues_manager/descriptions/permissionElementPaddingRightUnsupported.md +2 -2
  175. package/front_end/models/issues_manager/descriptions/permissionElementRequestInProgress.md +2 -2
  176. package/front_end/models/issues_manager/descriptions/permissionElementSecurityChecksFailed.md +1 -1
  177. package/front_end/models/issues_manager/descriptions/permissionElementTypeNotSupported.md +2 -2
  178. package/front_end/models/issues_manager/descriptions/permissionElementUntrustedEvent.md +1 -1
  179. package/front_end/models/issues_manager/descriptions/placeholderDescriptionForInvisibleIssues.md +1 -1
  180. package/front_end/models/issues_manager/descriptions/selectElementAccessibilityDisallowedOptGroupChild.md +1 -1
  181. package/front_end/models/issues_manager/descriptions/selectElementAccessibilityDisallowedSelectChild.md +1 -1
  182. package/front_end/models/issues_manager/descriptions/selectElementAccessibilityInteractiveContentAttributesSelectDescendant.md +1 -1
  183. package/front_end/models/issues_manager/descriptions/selectElementAccessibilityInteractiveContentLegendChild.md +1 -1
  184. package/front_end/models/issues_manager/descriptions/selectElementAccessibilityInteractiveContentOptionChild.md +1 -1
  185. package/front_end/models/issues_manager/descriptions/selectElementAccessibilityNonPhrasingContentOptionChild.md +1 -1
  186. package/front_end/models/issues_manager/descriptions/selectivePermissionsIntervention.md +3 -3
  187. package/front_end/models/issues_manager/descriptions/sharedArrayBuffer.md +1 -1
  188. package/front_end/models/issues_manager/descriptions/sharedDictionaryUseErrorCrossOriginNoCorsRequest.md +1 -1
  189. package/front_end/models/issues_manager/descriptions/sharedDictionaryUseErrorMatchingDictionaryNotUsed.md +1 -1
  190. package/front_end/models/issues_manager/descriptions/sharedDictionaryUseErrorUnexpectedContentDictionaryHeader.md +1 -1
  191. package/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorCossOriginNoCorsRequest.md +1 -1
  192. package/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorDisallowedBySettings.md +1 -1
  193. package/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorExpiredResponse.md +1 -1
  194. package/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorFeatureDisabled.md +2 -2
  195. package/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorInvalidStructuredHeader.md +1 -1
  196. package/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorNavigationRequest.md +2 -2
  197. package/front_end/models/issues_manager/descriptions/sriInvalidSignatureHeader.md +4 -4
  198. package/front_end/models/issues_manager/descriptions/sriInvalidSignatureInputHeader.md +4 -4
  199. package/front_end/models/issues_manager/descriptions/sriMissingSignatureHeader.md +1 -1
  200. package/front_end/models/issues_manager/descriptions/sriMissingSignatureInputHeader.md +2 -2
  201. package/front_end/models/issues_manager/descriptions/sriSignatureHeaderValueIsIncorrectLength.md +2 -2
  202. package/front_end/models/issues_manager/descriptions/sriSignatureHeaderValueIsNotByteSequence.md +4 -4
  203. package/front_end/models/issues_manager/descriptions/sriSignatureHeaderValueIsParameterized.md +4 -4
  204. package/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidComponentName.md +1 -1
  205. package/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidComponentType.md +2 -2
  206. package/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidDerivedComponentParameter.md +1 -1
  207. package/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidHeaderComponentParameter.md +1 -1
  208. package/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidParameter.md +2 -2
  209. package/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderKeyIdLength.md +5 -5
  210. package/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderMissingLabel.md +3 -3
  211. package/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderMissingRequiredParameters.md +2 -2
  212. package/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderValueMissingComponents.md +2 -2
  213. package/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderValueNotInnerList.md +2 -2
  214. package/front_end/models/issues_manager/descriptions/sriValidationFailedIntegrityMismatch.md +4 -4
  215. package/front_end/models/issues_manager/descriptions/sriValidationFailedInvalidLength.md +3 -3
  216. package/front_end/models/issues_manager/descriptions/sriValidationFailedSignatureExpired.md +2 -2
  217. package/front_end/models/issues_manager/descriptions/sriValidationFailedSignatureMismatch.md +2 -2
  218. package/front_end/models/issues_manager/descriptions/stylesheetLateImport.md +1 -1
  219. package/front_end/models/issues_manager/descriptions/summaryElementAccessibilityInteractiveContentSummaryDescendant.md +1 -1
  220. package/front_end/models/issues_manager/descriptions/unencodedDigestIncorrectDigestLength.md +2 -2
  221. package/front_end/models/issues_manager/descriptions/unencodedDigestIncorrectDigestType.md +3 -3
  222. package/front_end/models/issues_manager/descriptions/unencodedDigestMalformedDictionary.md +2 -2
  223. package/front_end/models/issues_manager/descriptions/unencodedDigestUnknownAlgorithm.md +1 -1
  224. package/front_end/panels/application/DOMStorageItemsView.ts +1 -2
  225. package/front_end/panels/application/KeyValueStorageItemsView.ts +12 -0
  226. package/front_end/panels/elements/StylePropertiesSection.ts +25 -9
  227. package/front_end/panels/elements/StylesSidebarPane.ts +48 -0
  228. package/front_end/panels/emulation/DeviceModeToolbar.ts +0 -1
  229. package/front_end/panels/emulation/DeviceModeView.ts +289 -164
  230. package/front_end/panels/emulation/MediaQueryInspector.ts +10 -6
  231. package/front_end/panels/emulation/deviceModeView.css +1 -0
  232. package/front_end/panels/lighthouse/LighthouseController.ts +1 -6
  233. package/front_end/panels/sources/breakpointEditDialog.css +2 -2
  234. package/front_end/third_party/chromium/README.chromium +1 -1
  235. package/front_end/ui/components/text_editor/AiCodeGenerationProvider.ts +1 -2
  236. package/package.json +1 -2
  237. package/front_end/models/issues_manager/descriptions/SameSiteExcludeContextDowngradeRead.md +0 -8
  238. package/front_end/models/issues_manager/descriptions/SameSiteExcludeContextDowngradeSet.md +0 -8
  239. package/front_end/models/issues_manager/descriptions/SameSiteExcludeNavigationContextDowngrade.md +0 -8
  240. package/front_end/models/issues_manager/descriptions/SameSiteWarnCrossDowngradeRead.md +0 -8
  241. package/front_end/models/issues_manager/descriptions/SameSiteWarnCrossDowngradeSet.md +0 -8
  242. 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, options?: {signal?: AbortSignal}):
95
- Promise<GenerateContentResponse|null> {
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
- return null;
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
- 'CookieIssue::WarnSameSiteStrictLaxDowngradeStrict::Secure' = 18,
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.schemefulSameSiteStrict);
1980
+ return i18nString(UIStrings.sameSiteStrict);
2008
1981
  case Protocol.Network.CookieBlockedReason.SchemefulSameSiteLax:
2009
- return i18nString(UIStrings.schemefulSameSiteLax);
1982
+ return i18nString(UIStrings.sameSiteLax);
2010
1983
  case Protocol.Network.CookieBlockedReason.SchemefulSameSiteUnspecifiedTreatedAsLax:
2011
- return i18nString(UIStrings.schemefulSameSiteUnspecifiedTreatedAsLax);
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
- UIStrings.thisSetcookieWasBlockedBecauseItHadTheSamesiteStrictLax,
2055
- {PH1: 'SameSite=Strict'},
2056
- );
2016
+ return i18nString(UIStrings.blockedReasonSameSiteStrictLax, {
2017
+ PH1: 'SameSite=Strict',
2018
+ });
2057
2019
  case Protocol.Network.SetCookieBlockedReason.SchemefulSameSiteLax:
2058
- return i18nString(
2059
- UIStrings.thisSetcookieWasBlockedBecauseItHadTheSamesiteStrictLax,
2060
- {PH1: 'SameSite=Lax'},
2061
- );
2020
+ return i18nString(UIStrings.blockedReasonSameSiteStrictLax, {
2021
+ PH1: 'SameSite=Lax',
2022
+ });
2062
2023
  case Protocol.Network.SetCookieBlockedReason.SchemefulSameSiteUnspecifiedTreatedAsLax:
2063
- return i18nString(UIStrings.thisSetcookieDidntSpecifyASamesite);
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", Interest_groups: "interest_groups", Shared_storage: "shared_storage", Storage_buckets: "storage_buckets", All: "all", Other: "other"});
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: CrUXManager.CrUXManager = CrUXManager.CrUXManager.instance(),
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
- this.#cruxManager = cruxManager;
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
- const cruxScope: CrUXManager.Scope =
76
- this.#deviceScope ? {pageScope: 'url', deviceScope: this.#deviceScope} : this.#cruxManager.getSelectedScope();
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
- exclusionReason, cookieIssueDetails.cookieWarningReasons, cookieIssueDetails.operation,
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
- reason: Protocol.Audits.CookieExclusionReason|Protocol.Audits.CookieWarningReason,
129
- warningReasons: Protocol.Audits.CookieWarningReason[], operation: Protocol.Audits.CookieOperation,
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 prevent a resource from being blocked
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 prevents a document from loading any non-same-origin resources which don’t explicitly grant permission to be loaded.
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 prevent a resource from being blocked
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 prevents a document from loading cross-origin resources which don’t
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 prevent a resource from being blocked
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 prevents a document from loading any non-same-site resources which don’t explicitly grant permission to be loaded.
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 prevent this frame from being blocked
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 is not intentional, you can [add or modify the DOCTYPE to be `<!DOCTYPE html>`](issueQuirksModeDoctype) to render the page in No Quirks Mode.
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 were not present.
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.