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.
Files changed (312) 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 +115 -64
  9. package/front_end/core/host/GcaClient.ts +3 -3
  10. package/front_end/core/host/InspectorFrontendHostAPI.ts +1 -0
  11. package/front_end/core/host/InspectorFrontendHostStub.ts +3 -3
  12. package/front_end/core/host/UserMetrics.ts +50 -13
  13. package/front_end/core/sdk/CSSMatchedStyles.ts +2 -5
  14. package/front_end/core/sdk/CSSPropertyParserMatchers.ts +12 -0
  15. package/front_end/core/sdk/Connections.ts +1 -1
  16. package/front_end/core/sdk/DOMModel.test.api.ts +104 -0
  17. package/front_end/core/sdk/DOMModel.ts +23 -11
  18. package/front_end/core/sdk/DebuggerModel.ts +9 -9
  19. package/front_end/core/sdk/IsolateManager.ts +1 -1
  20. package/front_end/core/sdk/NetworkManager.ts +105 -4
  21. package/front_end/core/sdk/NetworkRequest.ts +10 -55
  22. package/front_end/core/sdk/OverlayModel.ts +15 -14
  23. package/front_end/core/sdk/RemoteObject.ts +1 -1
  24. package/front_end/devtools_compatibility.js +1 -0
  25. package/front_end/entrypoints/main/MainImpl.ts +5 -12
  26. package/front_end/entrypoints/main/SimpleApp.ts +9 -3
  27. package/front_end/foundation/Universe.ts +22 -0
  28. package/front_end/generated/InspectorBackendCommands.ts +2 -2
  29. package/front_end/generated/protocol.ts +2 -1
  30. package/front_end/models/ai_assistance/agents/AiAgent.ts +22 -13
  31. package/front_end/models/ai_assistance/contexts/PerformanceTraceContext.ts +23 -10
  32. package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.ts +21 -5
  33. package/front_end/models/computed_style/ComputedStyleModel.ts +4 -7
  34. package/front_end/models/crux-manager/CrUXManager.ts +4 -0
  35. package/front_end/models/extensions/ExtensionAPI.ts +3 -3
  36. package/front_end/models/heap_snapshot/HeapSnapshotProxy.ts +2 -2
  37. package/front_end/models/issues_manager/CookieIssue.ts +6 -127
  38. package/front_end/models/issues_manager/descriptions/CoepCorpNotSameOrigin.md +2 -2
  39. package/front_end/models/issues_manager/descriptions/CoepCorpNotSameOriginAfterDefaultedToSameOriginByCoep.md +3 -3
  40. package/front_end/models/issues_manager/descriptions/CoepCorpNotSameSite.md +2 -2
  41. package/front_end/models/issues_manager/descriptions/CoepFrameResourceNeedsCoepHeader.md +1 -1
  42. package/front_end/models/issues_manager/descriptions/CompatibilityModeQuirks.md +1 -1
  43. package/front_end/models/issues_manager/descriptions/CookieAttributeValueExceedsMaxSize.md +2 -2
  44. package/front_end/models/issues_manager/descriptions/LowTextContrast.md +1 -1
  45. package/front_end/models/issues_manager/descriptions/SameSiteNoneInsecureErrorRead.md +1 -1
  46. package/front_end/models/issues_manager/descriptions/SameSiteNoneInsecureErrorSet.md +1 -1
  47. package/front_end/models/issues_manager/descriptions/SameSiteNoneInsecureWarnRead.md +1 -1
  48. package/front_end/models/issues_manager/descriptions/SameSiteNoneInsecureWarnSet.md +1 -1
  49. package/front_end/models/issues_manager/descriptions/SameSiteUnspecifiedLaxAllowUnsafeRead.md +3 -3
  50. package/front_end/models/issues_manager/descriptions/SameSiteUnspecifiedLaxAllowUnsafeSet.md +3 -3
  51. package/front_end/models/issues_manager/descriptions/bounceTrackingMitigations.md +1 -1
  52. package/front_end/models/issues_manager/descriptions/connectionAllowlistInvalidAllowlistItemType.md +2 -2
  53. package/front_end/models/issues_manager/descriptions/connectionAllowlistInvalidHeader.md +2 -2
  54. package/front_end/models/issues_manager/descriptions/connectionAllowlistInvalidUrlPattern.md +3 -3
  55. package/front_end/models/issues_manager/descriptions/connectionAllowlistItemNotInnerList.md +2 -2
  56. package/front_end/models/issues_manager/descriptions/connectionAllowlistMoreThanOneList.md +2 -2
  57. package/front_end/models/issues_manager/descriptions/connectionAllowlistReportingEndpointNotToken.md +1 -1
  58. package/front_end/models/issues_manager/descriptions/cookieCrossSiteRedirectDowngrade.md +3 -3
  59. package/front_end/models/issues_manager/descriptions/cookieExcludeBlockedWithinRelatedWebsiteSet.md +1 -1
  60. package/front_end/models/issues_manager/descriptions/cookieExcludePortMismatch.md +1 -1
  61. package/front_end/models/issues_manager/descriptions/cookieExcludeSchemeMismatch.md +1 -1
  62. package/front_end/models/issues_manager/descriptions/cookieExcludeThirdPartyPhaseoutSet.md +1 -1
  63. package/front_end/models/issues_manager/descriptions/cookieWarnThirdPartyPhaseoutRead.md +1 -1
  64. package/front_end/models/issues_manager/descriptions/corsAllowCredentialsRequired.md +1 -1
  65. package/front_end/models/issues_manager/descriptions/corsDisabledScheme.md +2 -2
  66. package/front_end/models/issues_manager/descriptions/corsDisallowedByMode.md +2 -2
  67. package/front_end/models/issues_manager/descriptions/corsHeaderDisallowedByPreflightResponse.md +1 -1
  68. package/front_end/models/issues_manager/descriptions/corsInvalidHeaderValues.md +3 -3
  69. package/front_end/models/issues_manager/descriptions/corsLocalNetworkAccessPermissionDenied.md +1 -1
  70. package/front_end/models/issues_manager/descriptions/corsMethodDisallowedByPreflightResponse.md +1 -1
  71. package/front_end/models/issues_manager/descriptions/corsNoCorsRedirectModeNotFollow.md +1 -1
  72. package/front_end/models/issues_manager/descriptions/corsOriginMismatch.md +3 -3
  73. package/front_end/models/issues_manager/descriptions/corsPreflightResponseInvalid.md +2 -2
  74. package/front_end/models/issues_manager/descriptions/corsRedirectContainsCredentials.md +3 -3
  75. package/front_end/models/issues_manager/descriptions/corsWildcardOriginNotAllowed.md +4 -3
  76. package/front_end/models/issues_manager/descriptions/cspEvalViolation.md +4 -4
  77. package/front_end/models/issues_manager/descriptions/cspInlineViolation.md +2 -2
  78. package/front_end/models/issues_manager/descriptions/cspTrustedTypesPolicyViolation.md +2 -2
  79. package/front_end/models/issues_manager/descriptions/cspTrustedTypesSinkViolation.md +4 -4
  80. package/front_end/models/issues_manager/descriptions/cspURLViolation.md +4 -4
  81. package/front_end/models/issues_manager/descriptions/emailVerificationRequestAccountsEmptyList.md +1 -1
  82. package/front_end/models/issues_manager/descriptions/emailVerificationRequestAccountsHttpNotFound.md +1 -1
  83. package/front_end/models/issues_manager/descriptions/emailVerificationRequestAccountsInvalidContentType.md +1 -1
  84. package/front_end/models/issues_manager/descriptions/emailVerificationRequestAccountsInvalidResponse.md +1 -1
  85. package/front_end/models/issues_manager/descriptions/emailVerificationRequestAccountsNoResponse.md +1 -1
  86. package/front_end/models/issues_manager/descriptions/emailVerificationRequestDnsFetchFailed.md +1 -1
  87. package/front_end/models/issues_manager/descriptions/emailVerificationRequestDnsInvalidRecord.md +1 -1
  88. package/front_end/models/issues_manager/descriptions/emailVerificationRequestEmailVerificationWellKnownHttpNotFound.md +1 -1
  89. package/front_end/models/issues_manager/descriptions/emailVerificationRequestEmailVerificationWellKnownInvalidContentType.md +1 -1
  90. package/front_end/models/issues_manager/descriptions/emailVerificationRequestEmailVerificationWellKnownInvalidResponse.md +1 -1
  91. package/front_end/models/issues_manager/descriptions/emailVerificationRequestEmailVerificationWellKnownNoResponse.md +1 -1
  92. package/front_end/models/issues_manager/descriptions/emailVerificationRequestInvalidEmail.md +1 -1
  93. package/front_end/models/issues_manager/descriptions/emailVerificationRequestJwksHttpNotFound.md +1 -1
  94. package/front_end/models/issues_manager/descriptions/emailVerificationRequestJwksInvalidResponse.md +1 -1
  95. package/front_end/models/issues_manager/descriptions/emailVerificationRequestKeyBindingSigningFailed.md +1 -1
  96. package/front_end/models/issues_manager/descriptions/emailVerificationRequestRpOriginIsOpaque.md +1 -1
  97. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenHttpNotFound.md +1 -1
  98. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenInvalidContentType.md +1 -1
  99. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenInvalidResponse.md +1 -1
  100. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenInvalidSdJwt.md +1 -1
  101. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenMalformedSdJwt.md +1 -1
  102. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenNoResponse.md +1 -1
  103. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationKbInvalidAudience.md +1 -1
  104. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationKbInvalidIssuedAt.md +1 -1
  105. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationKbInvalidNonce.md +1 -1
  106. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationKbInvalidSdHash.md +1 -1
  107. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationKbInvalidTyp.md +1 -1
  108. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationKbMissingAud.md +1 -1
  109. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationKbMissingCnf.md +1 -1
  110. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationKbMissingIat.md +1 -1
  111. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationKbMissingNonce.md +1 -1
  112. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationKbMissingSdHash.md +1 -1
  113. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationKbSignatureFailed.md +1 -1
  114. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationSdJwtInvalidEmail.md +1 -1
  115. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationSdJwtInvalidEmailVerified.md +1 -1
  116. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationSdJwtInvalidHolderKey.md +1 -1
  117. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationSdJwtInvalidIssuedAt.md +1 -1
  118. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationSdJwtInvalidIssuer.md +1 -1
  119. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationSdJwtJwksMissingKeys.md +1 -1
  120. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationSdJwtMissingCnf.md +1 -1
  121. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationSdJwtMissingEmail.md +1 -1
  122. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationSdJwtMissingIat.md +1 -1
  123. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationSdJwtMissingIss.md +1 -1
  124. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationSdJwtSignatureFailed.md +1 -1
  125. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenVerificationSdJwtUnsupportedHeaderAlg.md +1 -1
  126. package/front_end/models/issues_manager/descriptions/emailVerificationRequestUserLoggedOut.md +1 -1
  127. package/front_end/models/issues_manager/descriptions/emailVerificationRequestWellKnownAccountsEndpointCrossOrigin.md +1 -1
  128. package/front_end/models/issues_manager/descriptions/emailVerificationRequestWellKnownHttpNotFound.md +1 -1
  129. package/front_end/models/issues_manager/descriptions/emailVerificationRequestWellKnownInvalidContentType.md +1 -1
  130. package/front_end/models/issues_manager/descriptions/emailVerificationRequestWellKnownInvalidResponse.md +1 -1
  131. package/front_end/models/issues_manager/descriptions/emailVerificationRequestWellKnownIssuanceEndpointCrossOrigin.md +1 -1
  132. package/front_end/models/issues_manager/descriptions/emailVerificationRequestWellKnownListEmpty.md +1 -1
  133. package/front_end/models/issues_manager/descriptions/emailVerificationRequestWellKnownMissingAccountsEndpoint.md +1 -1
  134. package/front_end/models/issues_manager/descriptions/emailVerificationRequestWellKnownMissingIssuanceEndpoint.md +1 -1
  135. package/front_end/models/issues_manager/descriptions/emailVerificationRequestWellKnownNoResponse.md +1 -1
  136. package/front_end/models/issues_manager/descriptions/emailVerificationRequestWellKnownUnsupportedSigningAlgorithm.md +1 -1
  137. package/front_end/models/issues_manager/descriptions/federatedAuthRequestAccountsHttpNotFound.md +1 -1
  138. package/front_end/models/issues_manager/descriptions/federatedAuthRequestAccountsInvalidResponse.md +1 -1
  139. package/front_end/models/issues_manager/descriptions/federatedAuthRequestAccountsNoResponse.md +1 -1
  140. package/front_end/models/issues_manager/descriptions/federatedAuthRequestApprovalDeclined.md +1 -1
  141. package/front_end/models/issues_manager/descriptions/federatedAuthRequestCanceled.md +1 -1
  142. package/front_end/models/issues_manager/descriptions/federatedAuthRequestErrorFetchingSignin.md +1 -1
  143. package/front_end/models/issues_manager/descriptions/federatedAuthRequestErrorIdToken.md +1 -1
  144. package/front_end/models/issues_manager/descriptions/federatedAuthRequestIdTokenHttpNotFound.md +1 -1
  145. package/front_end/models/issues_manager/descriptions/federatedAuthRequestIdTokenInvalidRequest.md +1 -1
  146. package/front_end/models/issues_manager/descriptions/federatedAuthRequestIdTokenInvalidResponse.md +1 -1
  147. package/front_end/models/issues_manager/descriptions/federatedAuthRequestIdTokenNoResponse.md +1 -1
  148. package/front_end/models/issues_manager/descriptions/federatedAuthRequestInvalidSigninResponse.md +1 -1
  149. package/front_end/models/issues_manager/descriptions/federatedAuthRequestManifestHttpNotFound.md +1 -1
  150. package/front_end/models/issues_manager/descriptions/federatedAuthRequestManifestInvalidResponse.md +1 -1
  151. package/front_end/models/issues_manager/descriptions/federatedAuthRequestManifestNoResponse.md +1 -1
  152. package/front_end/models/issues_manager/descriptions/federatedAuthRequestTooManyRequests.md +1 -1
  153. package/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestInvalidAccountsResponse.md +1 -1
  154. package/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestInvalidConfigOrWellKnown.md +1 -1
  155. package/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNoAccountSharingPermission.md +1 -1
  156. package/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNoApiPermission.md +1 -1
  157. package/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNoReturningUserFromFetchedAccounts.md +1 -1
  158. package/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotIframe.md +1 -1
  159. package/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotPotentiallyTrustworthy.md +1 -1
  160. package/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotSameOrigin.md +1 -1
  161. package/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotSignedInWithIdp.md +1 -1
  162. package/front_end/models/issues_manager/descriptions/fetchingPartitionedBlobURL.md +2 -2
  163. package/front_end/models/issues_manager/descriptions/genericFormAriaLabelledByToNonExistingIdError.md +2 -2
  164. package/front_end/models/issues_manager/descriptions/genericFormAutocompleteAttributeEmptyError.md +1 -1
  165. package/front_end/models/issues_manager/descriptions/genericFormDuplicateIdForInputError.md +1 -1
  166. package/front_end/models/issues_manager/descriptions/genericFormEmptyIdAndNameAttributesForInputError.md +2 -2
  167. package/front_end/models/issues_manager/descriptions/genericFormInputAssignedAutocompleteValueToIdOrNameAttributeError.md +2 -2
  168. package/front_end/models/issues_manager/descriptions/genericFormInputHasWrongButWellIntendedAutocompleteValueError.md +1 -1
  169. package/front_end/models/issues_manager/descriptions/genericFormInputWithNoLabelError.md +1 -1
  170. package/front_end/models/issues_manager/descriptions/genericFormLabelForMatchesNonExistingIdError.md +2 -2
  171. package/front_end/models/issues_manager/descriptions/genericFormLabelForNameError.md +1 -1
  172. package/front_end/models/issues_manager/descriptions/genericFormLabelHasNeitherForNorNestedInputError.md +1 -1
  173. package/front_end/models/issues_manager/descriptions/genericFormModelContextMissingToolName.md +1 -1
  174. package/front_end/models/issues_manager/descriptions/genericFormModelContextParameterMissingName.md +1 -1
  175. package/front_end/models/issues_manager/descriptions/genericFormModelContextRequiredParameterMissingName.md +1 -1
  176. package/front_end/models/issues_manager/descriptions/genericNavigationEntryMarkedSkippable.md +2 -2
  177. package/front_end/models/issues_manager/descriptions/heavyAd.md +1 -1
  178. package/front_end/models/issues_manager/descriptions/lazyLoadImageZeroSize.md +1 -1
  179. package/front_end/models/issues_manager/descriptions/navigatingPartitionedBlobURL.md +3 -3
  180. package/front_end/models/issues_manager/descriptions/permissionElementActivationDisabled.md +1 -1
  181. package/front_end/models/issues_manager/descriptions/permissionElementActivationDisabledWithOccluder.md +1 -1
  182. package/front_end/models/issues_manager/descriptions/permissionElementActivationDisabledWithOccluderParent.md +1 -1
  183. package/front_end/models/issues_manager/descriptions/permissionElementFencedFrameDisallowed.md +2 -2
  184. package/front_end/models/issues_manager/descriptions/permissionElementFontSizeTooLarge.md +2 -2
  185. package/front_end/models/issues_manager/descriptions/permissionElementFontSizeTooSmall.md +2 -2
  186. package/front_end/models/issues_manager/descriptions/permissionElementInsetBoxShadowUnsupported.md +1 -1
  187. package/front_end/models/issues_manager/descriptions/permissionElementInvalidDisplayStyle.md +2 -2
  188. package/front_end/models/issues_manager/descriptions/permissionElementInvalidSizeValue.md +2 -2
  189. package/front_end/models/issues_manager/descriptions/permissionElementInvalidType.md +2 -2
  190. package/front_end/models/issues_manager/descriptions/permissionElementInvalidTypeActivation.md +2 -2
  191. package/front_end/models/issues_manager/descriptions/permissionElementNonOpaqueColor.md +1 -1
  192. package/front_end/models/issues_manager/descriptions/permissionElementPaddingBottomUnsupported.md +2 -2
  193. package/front_end/models/issues_manager/descriptions/permissionElementPaddingRightUnsupported.md +2 -2
  194. package/front_end/models/issues_manager/descriptions/permissionElementRequestInProgress.md +2 -2
  195. package/front_end/models/issues_manager/descriptions/permissionElementSecurityChecksFailed.md +1 -1
  196. package/front_end/models/issues_manager/descriptions/permissionElementTypeNotSupported.md +2 -2
  197. package/front_end/models/issues_manager/descriptions/permissionElementUntrustedEvent.md +1 -1
  198. package/front_end/models/issues_manager/descriptions/placeholderDescriptionForInvisibleIssues.md +1 -1
  199. package/front_end/models/issues_manager/descriptions/selectElementAccessibilityDisallowedOptGroupChild.md +1 -1
  200. package/front_end/models/issues_manager/descriptions/selectElementAccessibilityDisallowedSelectChild.md +1 -1
  201. package/front_end/models/issues_manager/descriptions/selectElementAccessibilityInteractiveContentAttributesSelectDescendant.md +1 -1
  202. package/front_end/models/issues_manager/descriptions/selectElementAccessibilityInteractiveContentLegendChild.md +1 -1
  203. package/front_end/models/issues_manager/descriptions/selectElementAccessibilityInteractiveContentOptionChild.md +1 -1
  204. package/front_end/models/issues_manager/descriptions/selectElementAccessibilityNonPhrasingContentOptionChild.md +1 -1
  205. package/front_end/models/issues_manager/descriptions/selectivePermissionsIntervention.md +3 -3
  206. package/front_end/models/issues_manager/descriptions/sharedArrayBuffer.md +1 -1
  207. package/front_end/models/issues_manager/descriptions/sharedDictionaryUseErrorCrossOriginNoCorsRequest.md +1 -1
  208. package/front_end/models/issues_manager/descriptions/sharedDictionaryUseErrorMatchingDictionaryNotUsed.md +1 -1
  209. package/front_end/models/issues_manager/descriptions/sharedDictionaryUseErrorUnexpectedContentDictionaryHeader.md +1 -1
  210. package/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorCossOriginNoCorsRequest.md +1 -1
  211. package/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorDisallowedBySettings.md +1 -1
  212. package/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorExpiredResponse.md +1 -1
  213. package/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorFeatureDisabled.md +2 -2
  214. package/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorInvalidStructuredHeader.md +1 -1
  215. package/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorNavigationRequest.md +2 -2
  216. package/front_end/models/issues_manager/descriptions/sriInvalidSignatureHeader.md +4 -4
  217. package/front_end/models/issues_manager/descriptions/sriInvalidSignatureInputHeader.md +4 -4
  218. package/front_end/models/issues_manager/descriptions/sriMissingSignatureHeader.md +1 -1
  219. package/front_end/models/issues_manager/descriptions/sriMissingSignatureInputHeader.md +2 -2
  220. package/front_end/models/issues_manager/descriptions/sriSignatureHeaderValueIsIncorrectLength.md +2 -2
  221. package/front_end/models/issues_manager/descriptions/sriSignatureHeaderValueIsNotByteSequence.md +4 -4
  222. package/front_end/models/issues_manager/descriptions/sriSignatureHeaderValueIsParameterized.md +4 -4
  223. package/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidComponentName.md +1 -1
  224. package/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidComponentType.md +2 -2
  225. package/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidDerivedComponentParameter.md +1 -1
  226. package/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidHeaderComponentParameter.md +1 -1
  227. package/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidParameter.md +2 -2
  228. package/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderKeyIdLength.md +5 -5
  229. package/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderMissingLabel.md +3 -3
  230. package/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderMissingRequiredParameters.md +2 -2
  231. package/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderValueMissingComponents.md +2 -2
  232. package/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderValueNotInnerList.md +2 -2
  233. package/front_end/models/issues_manager/descriptions/sriValidationFailedIntegrityMismatch.md +4 -4
  234. package/front_end/models/issues_manager/descriptions/sriValidationFailedInvalidLength.md +3 -3
  235. package/front_end/models/issues_manager/descriptions/sriValidationFailedSignatureExpired.md +2 -2
  236. package/front_end/models/issues_manager/descriptions/sriValidationFailedSignatureMismatch.md +2 -2
  237. package/front_end/models/issues_manager/descriptions/stylesheetLateImport.md +1 -1
  238. package/front_end/models/issues_manager/descriptions/summaryElementAccessibilityInteractiveContentSummaryDescendant.md +1 -1
  239. package/front_end/models/issues_manager/descriptions/unencodedDigestIncorrectDigestLength.md +2 -2
  240. package/front_end/models/issues_manager/descriptions/unencodedDigestIncorrectDigestType.md +3 -3
  241. package/front_end/models/issues_manager/descriptions/unencodedDigestMalformedDictionary.md +2 -2
  242. package/front_end/models/issues_manager/descriptions/unencodedDigestUnknownAlgorithm.md +1 -1
  243. package/front_end/models/live-metrics/LiveMetrics.ts +59 -19
  244. package/front_end/models/live-metrics/web-vitals-injected/README.md +1 -1
  245. package/front_end/models/live-metrics/web-vitals-injected/spec/spec.ts +6 -1
  246. package/front_end/models/live-metrics/web-vitals-injected/web-vitals-injected.ts +11 -3
  247. package/front_end/models/logs/LogManager.ts +1 -1
  248. package/front_end/models/persistence/FileSystemWorkspaceBinding.ts +1 -1
  249. package/front_end/models/source_map_scopes/FunctionCodeResolver.ts +6 -7
  250. package/front_end/models/workspace_diff/WorkspaceDiff.ts +13 -14
  251. package/front_end/panels/ai_assistance/AiAssistancePanel.ts +15 -7
  252. package/front_end/panels/application/BackgroundServiceView.ts +18 -20
  253. package/front_end/panels/application/DOMStorageItemsView.ts +1 -2
  254. package/front_end/panels/application/KeyValueStorageItemsView.ts +12 -0
  255. package/front_end/panels/autofill/AutofillView.ts +17 -17
  256. package/front_end/panels/autofill/autofillView.css +7 -8
  257. package/front_end/panels/browser_debugger/CategorizedBreakpointsSidebarPane.ts +31 -31
  258. package/front_end/panels/browser_debugger/DOMBreakpointsSidebarPane.ts +15 -15
  259. package/front_end/panels/browser_debugger/XHRBreakpointsSidebarPane.ts +12 -12
  260. package/front_end/panels/browser_debugger/browser_debugger-meta.ts +27 -27
  261. package/front_end/panels/common/AiCodeCompletionDisclaimer.ts +14 -6
  262. package/front_end/panels/common/AiCodeCompletionSummaryToolbar.ts +14 -6
  263. package/front_end/panels/common/AiCodeCompletionTeaser.ts +13 -6
  264. package/front_end/panels/common/GeminiRebrandPromoDialog.ts +1 -1
  265. package/front_end/panels/console/ConsoleInsightTeaser.ts +13 -6
  266. package/front_end/panels/console/ConsoleView.ts +6 -6
  267. package/front_end/panels/console_counters/WarningErrorCounter.ts +4 -4
  268. package/front_end/panels/coverage/CoverageModel.ts +11 -1
  269. package/front_end/panels/elements/StylePropertiesSection.ts +59 -10
  270. package/front_end/panels/elements/StylesAiCodeCompletionProvider.ts +18 -7
  271. package/front_end/panels/elements/StylesSidebarPane.ts +48 -0
  272. package/front_end/panels/emulation/AdvancedApp.ts +18 -8
  273. package/front_end/panels/emulation/DeviceModeToolbar.ts +0 -1
  274. package/front_end/panels/emulation/DeviceModeView.ts +289 -164
  275. package/front_end/panels/emulation/MediaQueryInspector.ts +10 -6
  276. package/front_end/panels/emulation/deviceModeView.css +1 -0
  277. package/front_end/panels/event_listeners/EventListenersView.ts +8 -8
  278. package/front_end/panels/explain/components/ConsoleInsight.ts +15 -7
  279. package/front_end/panels/lighthouse/LighthouseController.ts +1 -6
  280. package/front_end/panels/network/NetworkLogView.ts +13 -14
  281. package/front_end/panels/screencast/ScreencastApp.ts +12 -6
  282. package/front_end/panels/screencast/ScreencastView.ts +37 -11
  283. package/front_end/panels/sensors/locationsSettingsTab.css +4 -0
  284. package/front_end/panels/settings/AISettingsTab.ts +13 -6
  285. package/front_end/panels/sources/DebuggerPlugin.ts +13 -2
  286. package/front_end/panels/sources/breakpointEditDialog.css +2 -2
  287. package/front_end/panels/timeline/components/LiveMetricsView.ts +14 -1
  288. package/front_end/panels/timeline/components/cpuThrottlingSelector.css +4 -0
  289. package/front_end/panels/timeline/components/liveMetricsView.css +28 -0
  290. package/front_end/panels/timeline/timeline-meta.ts +13 -0
  291. package/front_end/third_party/chromium/README.chromium +1 -1
  292. package/front_end/ui/components/menus/menu.css +4 -0
  293. package/front_end/ui/components/menus/menuItem.css +4 -0
  294. package/front_end/ui/components/menus/selectMenu.css +4 -0
  295. package/front_end/ui/components/menus/selectMenuButton.css +4 -0
  296. package/front_end/ui/components/text_editor/AiCodeCompletionProvider.ts +21 -10
  297. package/front_end/ui/components/text_editor/AiCodeGenerationProvider.ts +23 -12
  298. package/front_end/ui/components/text_editor/config.ts +7 -0
  299. package/front_end/ui/legacy/AppProvider.ts +2 -1
  300. package/front_end/ui/legacy/RootView.ts +8 -1
  301. package/front_end/ui/legacy/UniverseRequestEvent.ts +19 -0
  302. package/front_end/ui/legacy/Widget.ts +49 -6
  303. package/front_end/ui/legacy/inspectorCommon.css +1 -1
  304. package/front_end/ui/legacy/legacy.ts +2 -0
  305. package/front_end/ui/visual_logging/KnownContextValues.ts +2 -0
  306. package/package.json +1 -2
  307. package/front_end/models/issues_manager/descriptions/SameSiteExcludeContextDowngradeRead.md +0 -8
  308. package/front_end/models/issues_manager/descriptions/SameSiteExcludeContextDowngradeSet.md +0 -8
  309. package/front_end/models/issues_manager/descriptions/SameSiteExcludeNavigationContextDowngrade.md +0 -8
  310. package/front_end/models/issues_manager/descriptions/SameSiteWarnCrossDowngradeRead.md +0 -8
  311. package/front_end/models/issues_manager/descriptions/SameSiteWarnCrossDowngradeSet.md +0 -8
  312. 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(parsedTrace: Trace.TraceModel.ParsedTrace,
32
- targetManager: SDK.TargetManager.TargetManager = SDK.TargetManager.TargetManager.instance(),
33
- freshRecordingTracker:
34
- Tracing.FreshRecording.Tracker = Tracing.FreshRecording.Tracker.instance()):
35
- PerformanceTraceContext {
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
- Tracing.FreshRecording.Tracker = Tracing.FreshRecording.Tracker.instance()):
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, {contextLength: 200, contextLineLength: 5, appendProfileData: true});
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: 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);
@@ -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?: number;
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
- if (this.frameResizedTimer) {
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
- delete this.frameResizedTimer;
113
+ this.frameResizedTimer = undefined;
115
114
  }
116
115
 
117
- if (this.frameResizedTimer) {
118
116
  clearTimeout(this.frameResizedTimer);
119
- }
120
117
 
121
- this.frameResizedTimer = window.setTimeout(refreshContents.bind(this), 100);
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: number|null = null;
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 = window.setTimeout(forwardEventQueue, 0);
1604
+ forwardTimer = globalThis.setTimeout(forwardEventQueue, 0);
1605
1605
  }
1606
1606
  }
1607
1607
 
1608
1608
  function forwardEventQueue(): void {
1609
- forwardTimer = null;
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?: number;
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 = window.setInterval(this.checkLongRunningCalls.bind(this), 300);
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
- 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.
@@ -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 should not be sent in cross-site requests.
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 should not be set by cross-site requests.
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 should not be sent in cross-site requests.
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 should not be set by cross-site requests.
8
+ * Specify `SameSite=Strict` or `SameSite=Lax` if the cookie shouldn’t be set by cross-site requests.
@@ -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 was not set or is invalid, it defaults to `SameSite=Lax`,
4
- which will prevent the cookie from being sent in a cross-site request in a future version of the browser.
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 should not be sent in cross-site requests.
9
+ * Specify `SameSite=Strict` or `SameSite=Lax` if the cookie shouldn’t be sent in cross-site requests.
@@ -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 was not set or is invalid, it defaults to `SameSite=Lax`,
4
- which will prevents the cookie from being set in a cross-site context in a future version of the browser.
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 should not be set by cross-site requests.
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't get such an interaction soon, Chrome will delete their state.
3
+ In a recent navigation chain, one or more websites without prior user interaction were visited. If these websites dont get such an interaction soon, Chrome will delete their state.
@@ -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`'s header's [Inner List](sfInnerList)
3
+ Each item in the `Connection-Allowlist`’s headers [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 is not formatted as a Structured Field List.
1
+ # The `Connection-Allowlist` header isn’t formatted as a Structured Field List
2
2
 
3
- Responses' `Connection-Allowlist` header should be formatted as a [List](sfList)
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,8 +1,8 @@
1
- # An item in the `Connection-Allowlist` header is not a valid URL pattern.
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's
4
+ [URL Pattern](urlPatternSpec) that can be used to match against the requests
5
5
  origin.
6
6
 
7
- Note that our current implementation does not allow regular expressions to be
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 is not an Inner List.
1
+ # An item in the `Connection-Allowlist` header isn’t an Inner List
2
2
 
3
- Responses' `Connection-Allowlist` header should be formatted as a [List](sfList)
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' `Connection-Allowlist` header should be formatted as a [List](sfList)
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,4 +1,4 @@
1
- # The `report-to` parameter in the `Connection-Allowlist` header is not a token.
1
+ # The `report-to` parameter in the `Connection-Allowlist` header isn’t a token
2
2
 
3
3
  If provided, the `report-to` parameter must be a [Token](sfToken)
4
4
  naming a reporting endpoint.
@@ -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 was not fully same-site,
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, please file a bug report with the link
12
- below.
11
+ If this behavior is causing breakage, file a bug report with the link
12
+ below.