opera-devtools-mcp 0.2.4 → 0.3.0

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 (330) hide show
  1. package/README.md +104 -7
  2. package/build/src/McpContext.js +365 -365
  3. package/build/src/McpPage.js +475 -48
  4. package/build/src/McpResponse.js +462 -288
  5. package/build/src/SlimMcpResponse.js +1 -1
  6. package/build/src/TextSnapshot.js +101 -22
  7. package/build/src/ToolHandler.js +142 -20
  8. package/build/src/bin/check-latest-version.js +27 -1
  9. package/build/src/bin/chrome-devtools-cli-options.js +573 -10
  10. package/build/src/bin/chrome-devtools-mcp-cli-options.js +119 -32
  11. package/build/src/bin/chrome-devtools-mcp-main.js +50 -7
  12. package/build/src/bin/chrome-devtools-mcp.js +7 -4
  13. package/build/src/bin/chrome-devtools.js +57 -14
  14. package/build/src/bin/opera-devtools-cli-options.js +3 -829
  15. package/build/src/bin/opera-devtools-mcp-cli-options.js +3 -348
  16. package/build/src/bin/opera-devtools-mcp-main.js +3 -37
  17. package/build/src/bin/opera-devtools-mcp.js +4 -19
  18. package/build/src/bin/opera-devtools.js +4 -185
  19. package/build/src/browser.js +45 -5
  20. package/build/src/{PageCollector.js → collectors/PageCollector.js} +64 -133
  21. package/build/src/collectors/ServiceWorkerCollector.js +171 -0
  22. package/build/src/daemon/client.js +75 -17
  23. package/build/src/daemon/daemon.js +92 -30
  24. package/build/src/daemon/utils.js +24 -8
  25. package/build/src/{DevtoolsUtils.js → devtools/DevtoolsUtils.js} +94 -88
  26. package/build/src/devtools/McpHostBindingAdapter.js +165 -0
  27. package/build/src/{issue-descriptions.js → devtools/issueDescriptions.js} +8 -6
  28. package/build/src/formatters/ConsoleFormatter.js +44 -11
  29. package/build/src/formatters/HeapSnapshotFormatter.js +140 -9
  30. package/build/src/formatters/IssueFormatter.js +7 -7
  31. package/build/src/formatters/NetworkFormatter.js +10 -8
  32. package/build/src/index.js +101 -232
  33. package/build/src/opera/branding.js +34 -0
  34. package/build/src/opera/browserFlags.js +85 -0
  35. package/build/src/opera/browserLaunch.js +52 -0
  36. package/build/src/opera/policy.js +50 -0
  37. package/build/src/opera/serviceWorkerRetry.js +37 -0
  38. package/build/src/opera/toolHandlerHooks.js +39 -0
  39. package/build/src/{tools → opera/tools}/opera.js +9 -21
  40. package/build/src/processors/HeapSnapshotManager.js +258 -0
  41. package/build/src/{trace-processing/parse.js → processors/PerformanceTrace.js} +9 -9
  42. package/build/src/telemetry/ClearcutLogger.js +12 -119
  43. package/build/src/telemetry/WatchdogClient.js +5 -5
  44. package/build/src/telemetry/errors.js +1 -1
  45. package/build/src/telemetry/flagUtils.js +6 -6
  46. package/build/src/telemetry/{toolMetricsUtils.js → metricsRegistry.js} +4 -11
  47. package/build/src/telemetry/persistence.js +3 -3
  48. package/build/src/telemetry/transformation.js +184 -0
  49. package/build/src/telemetry/watchdog/ClearcutSender.js +11 -11
  50. package/build/src/telemetry/watchdog/main.js +6 -6
  51. package/build/src/third_party/THIRD_PARTY_NOTICES +232 -1061
  52. package/build/src/third_party/bundled-packages.json +6 -8
  53. package/build/src/third_party/devtools-formatter-worker.js +63 -22
  54. package/build/src/third_party/devtools-heap-snapshot-worker.js +809 -182
  55. package/build/src/third_party/index.js +69558 -74691
  56. package/build/src/third_party/issue-descriptions/CoepCorpNotSameOrigin.md +2 -2
  57. package/build/src/third_party/issue-descriptions/CoepCorpNotSameOriginAfterDefaultedToSameOriginByCoep.md +3 -3
  58. package/build/src/third_party/issue-descriptions/CoepCorpNotSameSite.md +2 -2
  59. package/build/src/third_party/issue-descriptions/CoepFrameResourceNeedsCoepHeader.md +1 -1
  60. package/build/src/third_party/issue-descriptions/CompatibilityModeQuirks.md +1 -1
  61. package/build/src/third_party/issue-descriptions/CookieAttributeValueExceedsMaxSize.md +2 -2
  62. package/build/src/third_party/issue-descriptions/LowTextContrast.md +1 -1
  63. package/build/src/third_party/issue-descriptions/SameSiteNoneInsecureErrorRead.md +1 -1
  64. package/build/src/third_party/issue-descriptions/SameSiteNoneInsecureErrorSet.md +1 -1
  65. package/build/src/third_party/issue-descriptions/SameSiteNoneInsecureWarnRead.md +1 -1
  66. package/build/src/third_party/issue-descriptions/SameSiteNoneInsecureWarnSet.md +1 -1
  67. package/build/src/third_party/issue-descriptions/SameSiteUnspecifiedLaxAllowUnsafeRead.md +3 -3
  68. package/build/src/third_party/issue-descriptions/SameSiteUnspecifiedLaxAllowUnsafeSet.md +3 -3
  69. package/build/src/third_party/issue-descriptions/bounceTrackingMitigations.md +1 -1
  70. package/build/src/third_party/issue-descriptions/connectionAllowlistEmbeddingRequirementNotSatisfied.md +26 -0
  71. package/build/src/third_party/issue-descriptions/connectionAllowlistIFrameAttributeLoosensEmbeddingRequirement.md +19 -0
  72. package/build/src/third_party/issue-descriptions/connectionAllowlistInvalidAllowConnectionAllowlistFrom.md +21 -0
  73. package/build/src/third_party/issue-descriptions/connectionAllowlistInvalidAllowlistItemType.md +2 -2
  74. package/build/src/third_party/issue-descriptions/connectionAllowlistInvalidHeader.md +2 -2
  75. package/build/src/third_party/issue-descriptions/connectionAllowlistInvalidUrlPattern.md +3 -3
  76. package/build/src/third_party/issue-descriptions/connectionAllowlistItemNotInnerList.md +2 -2
  77. package/build/src/third_party/issue-descriptions/connectionAllowlistMoreThanOneList.md +2 -2
  78. package/build/src/third_party/issue-descriptions/connectionAllowlistReportingEndpointNotToken.md +1 -1
  79. package/build/src/third_party/issue-descriptions/cookieCrossSiteRedirectDowngrade.md +3 -3
  80. package/build/src/third_party/issue-descriptions/cookieExcludeBlockedWithinRelatedWebsiteSet.md +1 -1
  81. package/build/src/third_party/issue-descriptions/cookieExcludePortMismatch.md +1 -1
  82. package/build/src/third_party/issue-descriptions/cookieExcludeSchemeMismatch.md +1 -1
  83. package/build/src/third_party/issue-descriptions/cookieExcludeThirdPartyPhaseoutSet.md +1 -1
  84. package/build/src/third_party/issue-descriptions/cookieWarnThirdPartyPhaseoutRead.md +1 -1
  85. package/build/src/third_party/issue-descriptions/corsAllowCredentialsRequired.md +1 -1
  86. package/build/src/third_party/issue-descriptions/corsDisabledScheme.md +2 -2
  87. package/build/src/third_party/issue-descriptions/corsDisallowedByMode.md +2 -2
  88. package/build/src/third_party/issue-descriptions/corsHeaderDisallowedByPreflightResponse.md +1 -1
  89. package/build/src/third_party/issue-descriptions/corsInvalidHeaderValues.md +3 -3
  90. package/build/src/third_party/issue-descriptions/corsLocalNetworkAccessPermissionDenied.md +1 -1
  91. package/build/src/third_party/issue-descriptions/corsMethodDisallowedByPreflightResponse.md +1 -1
  92. package/build/src/third_party/issue-descriptions/corsNoCorsRedirectModeNotFollow.md +1 -1
  93. package/build/src/third_party/issue-descriptions/corsOriginMismatch.md +3 -3
  94. package/build/src/third_party/issue-descriptions/corsPreflightResponseInvalid.md +2 -2
  95. package/build/src/third_party/issue-descriptions/corsRedirectContainsCredentials.md +3 -3
  96. package/build/src/third_party/issue-descriptions/corsWildcardOriginNotAllowed.md +4 -3
  97. package/build/src/third_party/issue-descriptions/cspEvalViolation.md +4 -4
  98. package/build/src/third_party/issue-descriptions/cspInlineViolation.md +2 -2
  99. package/build/src/third_party/issue-descriptions/cspTrustedTypesPolicyViolation.md +2 -2
  100. package/build/src/third_party/issue-descriptions/cspTrustedTypesSinkViolation.md +4 -4
  101. package/build/src/third_party/issue-descriptions/cspURLViolation.md +4 -4
  102. package/build/src/third_party/issue-descriptions/emailVerificationRequestAccountsEmptyList.md +1 -0
  103. package/build/src/third_party/issue-descriptions/emailVerificationRequestAccountsHttpNotFound.md +1 -0
  104. package/build/src/third_party/issue-descriptions/emailVerificationRequestAccountsInvalidContentType.md +1 -0
  105. package/build/src/third_party/issue-descriptions/emailVerificationRequestAccountsInvalidResponse.md +1 -0
  106. package/build/src/third_party/issue-descriptions/emailVerificationRequestAccountsNoResponse.md +1 -0
  107. package/build/src/third_party/issue-descriptions/emailVerificationRequestDnsFetchFailed.md +1 -0
  108. package/build/src/third_party/issue-descriptions/emailVerificationRequestDnsInvalidRecord.md +1 -0
  109. package/build/src/third_party/issue-descriptions/emailVerificationRequestEmailVerificationWellKnownHttpNotFound.md +1 -0
  110. package/build/src/third_party/issue-descriptions/emailVerificationRequestEmailVerificationWellKnownInvalidContentType.md +1 -0
  111. package/build/src/third_party/issue-descriptions/emailVerificationRequestEmailVerificationWellKnownInvalidResponse.md +1 -0
  112. package/build/src/third_party/issue-descriptions/emailVerificationRequestEmailVerificationWellKnownNoResponse.md +1 -0
  113. package/build/src/third_party/issue-descriptions/emailVerificationRequestInvalidEmail.md +1 -0
  114. package/build/src/third_party/issue-descriptions/emailVerificationRequestJwksHttpNotFound.md +1 -0
  115. package/build/src/third_party/issue-descriptions/emailVerificationRequestJwksInvalidResponse.md +1 -0
  116. package/build/src/third_party/issue-descriptions/emailVerificationRequestKeyBindingSigningFailed.md +1 -0
  117. package/build/src/third_party/issue-descriptions/emailVerificationRequestRpOriginIsOpaque.md +1 -0
  118. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenHttpNotFound.md +1 -0
  119. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenInvalidContentType.md +1 -0
  120. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenInvalidResponse.md +1 -0
  121. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenInvalidSdJwt.md +1 -0
  122. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenMalformedSdJwt.md +1 -0
  123. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenNoResponse.md +1 -0
  124. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbInvalidAudience.md +1 -0
  125. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbInvalidIssuedAt.md +1 -0
  126. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbInvalidNonce.md +1 -0
  127. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbInvalidSdHash.md +1 -0
  128. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbInvalidTyp.md +1 -0
  129. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbMissingAud.md +1 -0
  130. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbMissingCnf.md +1 -0
  131. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbMissingIat.md +1 -0
  132. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbMissingNonce.md +1 -0
  133. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbMissingSdHash.md +1 -0
  134. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbSignatureFailed.md +1 -0
  135. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtInvalidEmail.md +1 -0
  136. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtInvalidEmailVerified.md +1 -0
  137. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtInvalidHolderKey.md +1 -0
  138. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtInvalidIssuedAt.md +1 -0
  139. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtInvalidIssuer.md +1 -0
  140. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtJwksMissingKeys.md +1 -0
  141. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtMissingCnf.md +1 -0
  142. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtMissingEmail.md +1 -0
  143. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtMissingIat.md +1 -0
  144. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtMissingIss.md +1 -0
  145. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtSignatureFailed.md +1 -0
  146. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtUnsupportedHeaderAlg.md +1 -0
  147. package/build/src/third_party/issue-descriptions/emailVerificationRequestUserLoggedOut.md +1 -0
  148. package/build/src/third_party/issue-descriptions/emailVerificationRequestWellKnownAccountsEndpointCrossOrigin.md +1 -0
  149. package/build/src/third_party/issue-descriptions/emailVerificationRequestWellKnownHttpNotFound.md +1 -0
  150. package/build/src/third_party/issue-descriptions/emailVerificationRequestWellKnownInvalidContentType.md +1 -0
  151. package/build/src/third_party/issue-descriptions/emailVerificationRequestWellKnownInvalidResponse.md +1 -0
  152. package/build/src/third_party/issue-descriptions/emailVerificationRequestWellKnownIssuanceEndpointCrossOrigin.md +1 -0
  153. package/build/src/third_party/issue-descriptions/emailVerificationRequestWellKnownListEmpty.md +1 -0
  154. package/build/src/third_party/issue-descriptions/emailVerificationRequestWellKnownMissingAccountsEndpoint.md +1 -0
  155. package/build/src/third_party/issue-descriptions/emailVerificationRequestWellKnownMissingIssuanceEndpoint.md +1 -0
  156. package/build/src/third_party/issue-descriptions/emailVerificationRequestWellKnownNoResponse.md +1 -0
  157. package/build/src/third_party/issue-descriptions/emailVerificationRequestWellKnownUnsupportedSigningAlgorithm.md +1 -0
  158. package/build/src/third_party/issue-descriptions/federatedAuthRequestAccountsHttpNotFound.md +1 -1
  159. package/build/src/third_party/issue-descriptions/federatedAuthRequestAccountsInvalidResponse.md +1 -1
  160. package/build/src/third_party/issue-descriptions/federatedAuthRequestAccountsNoResponse.md +1 -1
  161. package/build/src/third_party/issue-descriptions/federatedAuthRequestApprovalDeclined.md +1 -1
  162. package/build/src/third_party/issue-descriptions/federatedAuthRequestCanceled.md +1 -1
  163. package/build/src/third_party/issue-descriptions/federatedAuthRequestErrorFetchingSignin.md +1 -1
  164. package/build/src/third_party/issue-descriptions/federatedAuthRequestErrorIdToken.md +1 -1
  165. package/build/src/third_party/issue-descriptions/federatedAuthRequestIdTokenHttpNotFound.md +1 -1
  166. package/build/src/third_party/issue-descriptions/federatedAuthRequestIdTokenInvalidRequest.md +1 -1
  167. package/build/src/third_party/issue-descriptions/federatedAuthRequestIdTokenInvalidResponse.md +1 -1
  168. package/build/src/third_party/issue-descriptions/federatedAuthRequestIdTokenNoResponse.md +1 -1
  169. package/build/src/third_party/issue-descriptions/federatedAuthRequestInvalidSigninResponse.md +1 -1
  170. package/build/src/third_party/issue-descriptions/federatedAuthRequestManifestHttpNotFound.md +1 -1
  171. package/build/src/third_party/issue-descriptions/federatedAuthRequestManifestInvalidResponse.md +1 -1
  172. package/build/src/third_party/issue-descriptions/federatedAuthRequestManifestNoResponse.md +1 -1
  173. package/build/src/third_party/issue-descriptions/federatedAuthRequestTooManyRequests.md +1 -1
  174. package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestInvalidAccountsResponse.md +1 -1
  175. package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestInvalidConfigOrWellKnown.md +1 -1
  176. package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestNoAccountSharingPermission.md +1 -1
  177. package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestNoApiPermission.md +1 -1
  178. package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestNoReturningUserFromFetchedAccounts.md +1 -1
  179. package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestNotIframe.md +1 -1
  180. package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestNotPotentiallyTrustworthy.md +1 -1
  181. package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestNotSameOrigin.md +1 -1
  182. package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestNotSignedInWithIdp.md +1 -1
  183. package/build/src/third_party/issue-descriptions/fetchingPartitionedBlobURL.md +2 -2
  184. package/build/src/third_party/issue-descriptions/genericBackUINavigationWouldSkipAd.md +4 -0
  185. package/build/src/third_party/issue-descriptions/genericFormAriaLabelledByToNonExistingIdError.md +2 -2
  186. package/build/src/third_party/issue-descriptions/genericFormAutocompleteAttributeEmptyError.md +1 -1
  187. package/build/src/third_party/issue-descriptions/genericFormDuplicateIdForInputError.md +1 -1
  188. package/build/src/third_party/issue-descriptions/genericFormEmptyIdAndNameAttributesForInputError.md +2 -2
  189. package/build/src/third_party/issue-descriptions/genericFormInputAssignedAutocompleteValueToIdOrNameAttributeError.md +2 -2
  190. package/build/src/third_party/issue-descriptions/genericFormInputHasWrongButWellIntendedAutocompleteValueError.md +1 -1
  191. package/build/src/third_party/issue-descriptions/genericFormInputWithNoLabelError.md +1 -1
  192. package/build/src/third_party/issue-descriptions/genericFormLabelForMatchesNonExistingIdError.md +2 -2
  193. package/build/src/third_party/issue-descriptions/genericFormLabelForNameError.md +1 -1
  194. package/build/src/third_party/issue-descriptions/genericFormLabelHasNeitherForNorNestedInputError.md +1 -1
  195. package/build/src/third_party/issue-descriptions/genericFormModelContextMissingToolName.md +1 -1
  196. package/build/src/third_party/issue-descriptions/genericFormModelContextParameterMissingName.md +1 -1
  197. package/build/src/third_party/issue-descriptions/genericFormModelContextRequiredParameterMissingName.md +1 -1
  198. package/build/src/third_party/issue-descriptions/genericNavigationEntryMarkedSkippable.md +2 -2
  199. package/build/src/third_party/issue-descriptions/heavyAd.md +1 -1
  200. package/build/src/third_party/issue-descriptions/lazyLoadImageZeroSize.md +7 -0
  201. package/build/src/third_party/issue-descriptions/navigatingPartitionedBlobURL.md +3 -3
  202. package/build/src/third_party/issue-descriptions/permissionElementActivationDisabled.md +1 -1
  203. package/build/src/third_party/issue-descriptions/permissionElementActivationDisabledWithOccluder.md +1 -1
  204. package/build/src/third_party/issue-descriptions/permissionElementActivationDisabledWithOccluderParent.md +1 -1
  205. package/build/src/third_party/issue-descriptions/permissionElementFencedFrameDisallowed.md +2 -2
  206. package/build/src/third_party/issue-descriptions/permissionElementFontSizeTooLarge.md +2 -2
  207. package/build/src/third_party/issue-descriptions/permissionElementFontSizeTooSmall.md +2 -2
  208. package/build/src/third_party/issue-descriptions/permissionElementInsetBoxShadowUnsupported.md +1 -1
  209. package/build/src/third_party/issue-descriptions/permissionElementInvalidDisplayStyle.md +2 -2
  210. package/build/src/third_party/issue-descriptions/permissionElementInvalidSizeValue.md +2 -2
  211. package/build/src/third_party/issue-descriptions/permissionElementInvalidType.md +2 -2
  212. package/build/src/third_party/issue-descriptions/permissionElementInvalidTypeActivation.md +2 -2
  213. package/build/src/third_party/issue-descriptions/permissionElementNonOpaqueColor.md +1 -1
  214. package/build/src/third_party/issue-descriptions/permissionElementPaddingBottomUnsupported.md +2 -2
  215. package/build/src/third_party/issue-descriptions/permissionElementPaddingRightUnsupported.md +2 -2
  216. package/build/src/third_party/issue-descriptions/permissionElementRequestInProgress.md +2 -2
  217. package/build/src/third_party/issue-descriptions/permissionElementSecurityChecksFailed.md +1 -1
  218. package/build/src/third_party/issue-descriptions/permissionElementTypeNotSupported.md +2 -2
  219. package/build/src/third_party/issue-descriptions/permissionElementUntrustedEvent.md +1 -1
  220. package/build/src/third_party/issue-descriptions/placeholderDescriptionForInvisibleIssues.md +1 -1
  221. package/build/src/third_party/issue-descriptions/selectElementAccessibilityDisallowedOptGroupChild.md +1 -1
  222. package/build/src/third_party/issue-descriptions/selectElementAccessibilityDisallowedSelectChild.md +1 -1
  223. package/build/src/third_party/issue-descriptions/selectElementAccessibilityInteractiveContentAttributesSelectDescendant.md +1 -1
  224. package/build/src/third_party/issue-descriptions/selectElementAccessibilityInteractiveContentLegendChild.md +1 -1
  225. package/build/src/third_party/issue-descriptions/selectElementAccessibilityInteractiveContentOptionChild.md +1 -1
  226. package/build/src/third_party/issue-descriptions/selectElementAccessibilityNonPhrasingContentOptionChild.md +1 -1
  227. package/build/src/third_party/issue-descriptions/selectivePermissionsIntervention.md +3 -3
  228. package/build/src/third_party/issue-descriptions/sharedArrayBuffer.md +1 -1
  229. package/build/src/third_party/issue-descriptions/sharedDictionaryUseErrorCrossOriginNoCorsRequest.md +1 -1
  230. package/build/src/third_party/issue-descriptions/sharedDictionaryUseErrorMatchingDictionaryNotUsed.md +1 -1
  231. package/build/src/third_party/issue-descriptions/sharedDictionaryUseErrorUnexpectedContentDictionaryHeader.md +1 -1
  232. package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorCossOriginNoCorsRequest.md +1 -1
  233. package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorDisallowedBySettings.md +1 -1
  234. package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorExpiredResponse.md +1 -1
  235. package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorFeatureDisabled.md +2 -2
  236. package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorInvalidStructuredHeader.md +1 -1
  237. package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorNavigationRequest.md +2 -2
  238. package/build/src/third_party/issue-descriptions/sriInvalidSignatureHeader.md +4 -4
  239. package/build/src/third_party/issue-descriptions/sriInvalidSignatureInputHeader.md +4 -4
  240. package/build/src/third_party/issue-descriptions/sriMissingSignatureHeader.md +1 -1
  241. package/build/src/third_party/issue-descriptions/sriMissingSignatureInputHeader.md +2 -2
  242. package/build/src/third_party/issue-descriptions/sriSignatureHeaderValueIsIncorrectLength.md +2 -2
  243. package/build/src/third_party/issue-descriptions/sriSignatureHeaderValueIsNotByteSequence.md +4 -4
  244. package/build/src/third_party/issue-descriptions/sriSignatureHeaderValueIsParameterized.md +4 -4
  245. package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderInvalidComponentName.md +1 -1
  246. package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderInvalidComponentType.md +2 -2
  247. package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderInvalidDerivedComponentParameter.md +1 -1
  248. package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderInvalidHeaderComponentParameter.md +1 -1
  249. package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderInvalidParameter.md +2 -2
  250. package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderKeyIdLength.md +5 -5
  251. package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderMissingLabel.md +3 -3
  252. package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderMissingRequiredParameters.md +2 -2
  253. package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderValueMissingComponents.md +2 -2
  254. package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderValueNotInnerList.md +2 -2
  255. package/build/src/third_party/issue-descriptions/sriValidationFailedIntegrityMismatch.md +4 -4
  256. package/build/src/third_party/issue-descriptions/sriValidationFailedInvalidLength.md +3 -3
  257. package/build/src/third_party/issue-descriptions/sriValidationFailedSignatureExpired.md +2 -2
  258. package/build/src/third_party/issue-descriptions/sriValidationFailedSignatureMismatch.md +2 -2
  259. package/build/src/third_party/issue-descriptions/stylesheetLateImport.md +1 -1
  260. package/build/src/third_party/issue-descriptions/summaryElementAccessibilityInteractiveContentSummaryDescendant.md +1 -1
  261. package/build/src/third_party/issue-descriptions/unencodedDigestIncorrectDigestLength.md +2 -2
  262. package/build/src/third_party/issue-descriptions/unencodedDigestIncorrectDigestType.md +3 -3
  263. package/build/src/third_party/issue-descriptions/unencodedDigestMalformedDictionary.md +2 -2
  264. package/build/src/third_party/issue-descriptions/unencodedDigestUnknownAlgorithm.md +1 -1
  265. package/build/src/third_party/lighthouse-devtools-mcp-bundle.js +3177 -6340
  266. package/build/src/tools/ToolDefinition.js +2 -2
  267. package/build/src/tools/categories.js +3 -0
  268. package/build/src/tools/console.js +13 -0
  269. package/build/src/tools/emulation.js +30 -3
  270. package/build/src/tools/extensions.js +8 -1
  271. package/build/src/tools/input.js +246 -128
  272. package/build/src/tools/lighthouse.js +14 -7
  273. package/build/src/tools/memory.js +289 -25
  274. package/build/src/tools/network.js +10 -7
  275. package/build/src/tools/pages.js +33 -92
  276. package/build/src/tools/performance.js +67 -52
  277. package/build/src/tools/pwa.js +128 -0
  278. package/build/src/tools/screencast.js +35 -12
  279. package/build/src/tools/screenshot.js +234 -75
  280. package/build/src/tools/script.js +130 -45
  281. package/build/src/tools/slim/tools.js +3 -0
  282. package/build/src/tools/snapshot.js +7 -4
  283. package/build/src/tools/thirdPartyDeveloper.js +19 -9
  284. package/build/src/tools/tools.js +3 -1
  285. package/build/src/tools/webmcp.js +3 -1
  286. package/build/src/utils/WaitForHelper.js +299 -0
  287. package/build/src/utils/check-for-updates.js +8 -2
  288. package/build/src/utils/files.js +42 -3
  289. package/build/src/utils/logger.js +51 -0
  290. package/build/src/utils/polyfill.js +11 -0
  291. package/build/src/utils/url.js +43 -0
  292. package/build/src/version.js +1 -1
  293. package/package.json +42 -33
  294. package/build/src/DevToolsConnectionAdapter.js +0 -70
  295. package/build/src/HeapSnapshotManager.js +0 -110
  296. package/build/src/Mutex.js +0 -38
  297. package/build/src/WaitForHelper.js +0 -195
  298. package/build/src/bin/cliDefinitions.js +0 -616
  299. package/build/src/logger.js +0 -37
  300. package/build/src/polyfill.js +0 -8
  301. package/build/src/telemetry/metricUtils.js +0 -15
  302. package/build/src/third_party/issue-descriptions/SameSiteExcludeContextDowngradeRead.md +0 -8
  303. package/build/src/third_party/issue-descriptions/SameSiteExcludeContextDowngradeSet.md +0 -8
  304. package/build/src/third_party/issue-descriptions/SameSiteExcludeNavigationContextDowngrade.md +0 -8
  305. package/build/src/third_party/issue-descriptions/SameSiteWarnCrossDowngradeRead.md +0 -8
  306. package/build/src/third_party/issue-descriptions/SameSiteWarnCrossDowngradeSet.md +0 -8
  307. package/build/src/third_party/issue-descriptions/SameSiteWarnStrictLaxDowngradeStrict.md +0 -8
  308. package/build/src/third_party/issue-descriptions/arInsecureContext.md +0 -7
  309. package/build/src/third_party/issue-descriptions/arInvalidInfoHeader.md +0 -5
  310. package/build/src/third_party/issue-descriptions/arInvalidRegisterOsSourceHeader.md +0 -5
  311. package/build/src/third_party/issue-descriptions/arInvalidRegisterOsTriggerHeader.md +0 -5
  312. package/build/src/third_party/issue-descriptions/arInvalidRegisterSourceHeader.md +0 -5
  313. package/build/src/third_party/issue-descriptions/arInvalidRegisterTriggerHeader.md +0 -5
  314. package/build/src/third_party/issue-descriptions/arNavigationRegistrationUniqueScopeAlreadySet.md +0 -5
  315. package/build/src/third_party/issue-descriptions/arNavigationRegistrationWithoutTransientUserActivation.md +0 -6
  316. package/build/src/third_party/issue-descriptions/arNoRegisterOsSourceHeader.md +0 -5
  317. package/build/src/third_party/issue-descriptions/arNoRegisterOsTriggerHeader.md +0 -5
  318. package/build/src/third_party/issue-descriptions/arNoRegisterSourceHeader.md +0 -5
  319. package/build/src/third_party/issue-descriptions/arNoRegisterTriggerHeader.md +0 -5
  320. package/build/src/third_party/issue-descriptions/arNoWebOrOsSupport.md +0 -4
  321. package/build/src/third_party/issue-descriptions/arOsSourceIgnored.md +0 -18
  322. package/build/src/third_party/issue-descriptions/arOsTriggerIgnored.md +0 -19
  323. package/build/src/third_party/issue-descriptions/arPermissionPolicyDisabled.md +0 -8
  324. package/build/src/third_party/issue-descriptions/arSourceAndTriggerHeaders.md +0 -9
  325. package/build/src/third_party/issue-descriptions/arSourceIgnored.md +0 -13
  326. package/build/src/third_party/issue-descriptions/arTriggerIgnored.md +0 -12
  327. package/build/src/third_party/issue-descriptions/arUntrustworthyReportingOrigin.md +0 -10
  328. package/build/src/third_party/issue-descriptions/arWebAndOsHeaders.md +0 -11
  329. package/build/src/utils/string.js +0 -37
  330. package/build/src/utils/types.js +0 -7
@@ -2,6 +2,6 @@
2
2
 
3
3
  The "{PLACEHOLDER_Type}" element can only be activated by actual user clicks, not simulated ones.
4
4
 
5
- To resolve this issue, do not use frameworks which simulate click events, (e.g. via `click()`) and do not prevent the `DOMActivate` event.
5
+ To resolve this issue, don’t use frameworks which simulate click events, (e.g. via `click()`) and don’t stop the `DOMActivate` event.
6
6
 
7
7
  You can use the command line flag `--runtime-enabled-features=BypassPepcSecurityForTesting` to bypass this behavior for testing purposes.
@@ -1,3 +1,3 @@
1
1
  # This is a placeholder issue description
2
2
 
3
- This description is used for issues that are not intended to be shown to the user. This means there is no need for a useful description.
3
+ This description is used for issues that aren’t intended to be shown to the user. This means there is no need for a useful description.
@@ -1,6 +1,6 @@
1
1
  # Invalid element or text node within <optgroup>
2
2
 
3
- An element which is not allowed in the content model of the `<optgroup>` element was found within an `<optgroup>` element. These elements will not consistently be accessible to people navigating by keyboard or using assistive technology.
3
+ An element which isn’t allowed in the content model of the `<optgroup>` element was found within an `<optgroup>` element. These elements won’t consistently be accessible to people navigating by keyboard or using assistive technology.
4
4
 
5
5
  If using disallowed elements for layout structure and styling, consider using the allowed `<div>` element instead.
6
6
 
@@ -1,6 +1,6 @@
1
1
  # Invalid element or text node within <select>
2
2
 
3
- An element which is not allowed in the content model of the `<select>` element was found within a `<select>` element. These elements will not consistently be accessible to people navigating by keyboard or using assistive technology.
3
+ An element which isn’t allowed in the content model of the `<select>` element was found within a `<select>` element. These elements won’t consistently be accessible to people navigating by keyboard or using assistive technology.
4
4
 
5
5
  If using disallowed elements for layout structure and styling, consider using the allowed `<div>` element instead.
6
6
 
@@ -1,3 +1,3 @@
1
1
  # Element with invalid attributes within a <select> element
2
2
 
3
- An element with `contenteditable` or `tabindex` attributes is not an allowed child of a `<select>` element. It will not consistently be accessible to people navigating by keyboard or using assistive technology.
3
+ An element with `contenteditable` or `tabindex` attributes isn’t an allowed child of a `<select>` element. It won’t consistently be accessible to people navigating by keyboard or using assistive technology.
@@ -1,3 +1,3 @@
1
1
  # Interactive element inside of a <legend> element
2
2
 
3
- An interactive element which is not allowed in the content model of the `<legend>` element was found within a `<legend>` element. Interactive elements are not allowed children of a `<legend>` element when used within an `<optgroup>` element. These elements will not consistently be accessible to people navigating by keyboard or using assistive technology.
3
+ An interactive element which isn’t allowed in the content model of the `<legend>` element was found within a `<legend>` element. Interactive elements aren’t allowed children of a `<legend>` element when used within an `<optgroup>` element. These elements won’t consistently be accessible to people navigating by keyboard or using assistive technology.
@@ -1,3 +1,3 @@
1
1
  # Interactive element inside of an <option> element
2
2
 
3
- An interactive element which is not allowed in the content model of the `<option>` element was found within an `<option>` element. These elements will not consistently be accessible to people navigating by keyboard or using assistive technology.
3
+ An interactive element which isn’t allowed in the content model of the `<option>` element was found within an `<option>` element. These elements won’t consistently be accessible to people navigating by keyboard or using assistive technology.
@@ -1,3 +1,3 @@
1
1
  # Non-phrasing content used within an <option> element
2
2
 
3
- The `<option>` element allows only non-interactive phrasing content, text, and `<div>` elements as its children. The semantics of non-phrasing content elements do not make sense as children of an `<option>`, and such semantics will largely be ignored by assistive technology since they are inappropriate in this context. Consider removing or changing such elements to one of the allowed phrasing content elements.
3
+ The `<option>` element allows only non-interactive phrasing content, text, and `<div>` elements as its children. The semantics of non-phrasing content elements don’t make sense as children of an `<option>`, and such semantics will largely be ignored by assistive technology since they are inappropriate in this context. Consider removing or changing such elements to one of the allowed phrasing content elements.
@@ -1,7 +1,7 @@
1
- # Selective Permissions Intervention
1
+ # Selective permissions intervention
2
2
 
3
- The Selective Permissions Intervention blocks calls to privacy-sensitive APIs when they are called from ad scripts in order to align the permission grant with the user's intent. The particular API that was blocked, the call-stack that triggered the intervention, and why the script that called the API is considered ad-related is shown below.
3
+ The Selective Permissions Intervention blocks calls to privacy-sensitive APIs when they are called from ad scripts to align the permission grant with the users intent. The particular API that was blocked, the call-stack that triggered the intervention, and why the script that called the API is considered ad-related is shown below.
4
4
 
5
5
  Note that Chrome considers any script with a URL that matches a rule in the [filterlist](ChromeFilterlistRepository) as ad script, and the matching rule is shown in the Ad Ancestry section. In addition, any script loaded while an ad script is in the JavaScript stack will also be considered an ad script by Chrome and is also shown in Ad Ancestry.
6
6
 
7
- If you believe this intervention was in error (e.g., this call would occur even when loading the page with an ad blocker enabled), then please [file a bug](SelectivePermissionsInterventionIssue).
7
+ If you believe this intervention was in error (e.g., this call would occur even when loading the page with an ad blocker enabled), then [file a bug](SelectivePermissionsInterventionIssue).
@@ -2,6 +2,6 @@
2
2
 
3
3
  SharedArrayBuffers (SABs) can be used to construct high-resolution timers. High-resolution timers simplify Spectre attacks on cross-origin resources.
4
4
 
5
- To mitigate security risks across browsers, SharedArrayBuffers are gated behind cross-origin isolated contexts starting with Chrome 92 (July 2021). To continue using SharedArrayBuffers, please ensure that this page opts-into cross-origin isolation by setting Cross-Origin-Opener-Policy and Cross-Origin-Embedder-Policy appropriately.
5
+ To mitigate security risks across browsers, SharedArrayBuffers are gated behind cross-origin isolated contexts starting with Chrome 92 (July 2021). To continue using SharedArrayBuffers, ensure that this page opts-into cross-origin isolation by setting Cross-Origin-Opener-Policy and Cross-Origin-Embedder-Policy appropriately.
6
6
 
7
7
  Note that for each iframe, only the first issue is reported for performance reasons.
@@ -1 +1 @@
1
- # Found a matching dictionary, but the dictionary can't be used for the cross origin no-cors request
1
+ # Found a matching dictionary, but the dictionary cant be used for the cross origin no-cors request
@@ -1,3 +1,3 @@
1
- # Found a matching dictionary, but the dictionary is not used for the response
1
+ # Found a matching dictionary, but the dictionary isn’t used for the response
2
2
 
3
3
  Consider revisiting the `match` pattern or `match-dest` of the dictionary.
@@ -1 +1 @@
1
- # Can't decode the response because the header of dictionary compressed stream was not set correctly
1
+ # Cant decode the response because the header of dictionary compressed stream wasn’t set correctly
@@ -1 +1 @@
1
- # Can't register the cross origin response fetched by a no-cors request as as a dictionary
1
+ # Cant register the cross origin response fetched by a no-cors request as as a dictionary
@@ -1 +1 @@
1
- # Compression Dictionary is disabled by settings
1
+ # compression dictionary is disabled by settings
@@ -1,3 +1,3 @@
1
- # The response can't be used as a dictionary because its freshness is expired
1
+ # The response cant be used as a dictionary because its freshness is expired
2
2
 
3
3
  Check `Cache-Control` and `Expires` headers.
@@ -1,3 +1,3 @@
1
- # Compression Dictionary Transport feature is disabled
1
+ # compression dictionary transport feature is disabled
2
2
 
3
- Please enable chrome://flags/#enable-compression-dictionary-transport
3
+ enable chrome://flags/#enable-compression-dictionary-transport
@@ -1 +1 @@
1
- # `Use-As-Dictionary` HTTP response header is not a valid Structured Field value
1
+ # `Use-As-Dictionary` HTTP response header isn’t a valid Structured Field Value
@@ -1,3 +1,3 @@
1
- # Can't register the response of the navigation request as a dictionary
1
+ # Cant register the response of the navigation request as a dictionary
2
2
 
3
- Navigation responses are not usable as compression dictionaries.
3
+ Navigation responses aren’t usable as compression dictionaries.
@@ -1,9 +1,9 @@
1
- # A `signature` header is not formatted as a Structured Field Dictionary.
1
+ # A `signature` header isn’t formatted as a Structured Field Dictionary
2
2
 
3
- Responses' [`signature`](signatureHeader) header should be formatted as a
4
- [Dictionary](sfDictionary) containing one or more signatures. Each member's key
3
+ Responses [`signature`](signatureHeader) header should be formatted as a
4
+ [Dictionary](sfDictionary) containing one or more signatures. Each members key
5
5
  is a label for the signature which maps it to the relevant metadata defined in
6
- a [`signature-input`](signatureInputHeader) header. Each member's value is a
6
+ a [`signature-input`](signatureInputHeader) header. Each members value is a
7
7
  [Byte Sequence](sfByteSequence) containing the signature itself.
8
8
 
9
9
  For example, the following header contains a single Ed25519 signature labeled
@@ -1,10 +1,10 @@
1
- # A `signature-input` header is not formatted as a Structured Field Dictionary.
1
+ # A `signature-input` header isn’t formatted as a Structured Field Dictionary
2
2
 
3
- Responses' [`signature-input`](signatureInputHeader) header should be formatted
3
+ Responses [`signature-input`](signatureInputHeader) header should be formatted
4
4
  as a [Dictionary](sfDictionary) containing metadata regarding one or more
5
- signatures. Each member's key is a label for the metadata which maps it to the
5
+ signatures. Each members key is a label for the metadata which maps it to the
6
6
  relevant signature defined in a [`signature`](signatureHeader) header. Each
7
- member's value is an [Inner List](sfInnerList) containing a set of components
7
+ members value is an [Inner List](sfInnerList) containing a set of components
8
8
  over which a signature is generated. The list may have one or more parameters.
9
9
 
10
10
  For example, the following header contains metadata for a signature labeled
@@ -1,4 +1,4 @@
1
- # A `signature-input` header was specified without an accompanying `signature` header.
1
+ # A `signature-input` header was specified without an accompanying `signature` header
2
2
 
3
3
  [`signature-input`](signatureInputHeader) headers specify metadata that allows
4
4
  verification of signatures delivered with a response. If no
@@ -1,7 +1,7 @@
1
- # A `signature` header was specified without an accompanying `signature-input` header.
1
+ # A `signature` header was specified without an accompanying `signature-input` header
2
2
 
3
3
  [`signature`](signatureHeader) headers specify signatures which can be verified
4
- against a given response. Verification cannot proceed, however, in the absence of a
4
+ against a given response. Verification can’t proceed, however, in the absence of a
5
5
  [`signature-input`](signatureInputHeader) header which defines relevant metadata
6
6
  which allows servers and clients to agree on the exact message which is being
7
7
  signed. Both headers must be present for verification to proceed.
@@ -1,7 +1,7 @@
1
- # A `signature` header contains a signature which cannot be verified.
1
+ # A `signature` header contains a signature which can’t be verified
2
2
 
3
3
  This browser can only verify Ed25519 signatures, which are 512 bits long. The
4
- signature delivered with this response does not match that length.
4
+ signature delivered with this response doesn’t match that length.
5
5
 
6
6
  For example, the following header contains a valid Ed25519 signature labeled
7
7
  "label":
@@ -1,9 +1,9 @@
1
- # A `signature` header member's value is not a Byte Sequence.
1
+ # A `signature` header members value isn’t a Byte Sequence
2
2
 
3
- Responses' [`signature`](signatureHeader) header should be formatted as a
4
- [Dictionary](sfDictionary) containing one or more signatures. Each member's key
3
+ Responses [`signature`](signatureHeader) header should be formatted as a
4
+ [Dictionary](sfDictionary) containing one or more signatures. Each members key
5
5
  is a label for the signature which maps it to the relevant metadata defined in
6
- a [`signature-input`](signatureInputHeader) header. Each member's value is a
6
+ a [`signature-input`](signatureInputHeader) header. Each members value is a
7
7
  [Byte Sequence](sfByteSequence) containing the signature itself.
8
8
 
9
9
  For example, the following header contains a single Ed25519 signature labeled
@@ -1,9 +1,9 @@
1
- # A `signature` header member's value is parameterized.
1
+ # A `signature` header members value is parameterized
2
2
 
3
- Responses' [`signature`](signatureHeader) header should be formatted as a
4
- [Dictionary](sfDictionary) containing one or more signatures. Each member's key
3
+ Responses [`signature`](signatureHeader) header should be formatted as a
4
+ [Dictionary](sfDictionary) containing one or more signatures. Each members key
5
5
  is a label for the signature which maps it to the relevant metadata defined in a
6
- [`signature-input`](signatureInputHeader) header. Each member's value is a
6
+ [`signature-input`](signatureInputHeader) header. Each members value is a
7
7
  [Byte Sequence](sfByteSequence) containing the signature itself, with no
8
8
  additional parameters specified.
9
9
 
@@ -1,4 +1,4 @@
1
- # A `signature-input` header member's value contains an unknown component.
1
+ # A `signature-input` header members value contains an unknown component
2
2
 
3
3
  The metadata delivered via [`signature-input`](signatureInputHeader) can only
4
4
  contain a limited set of components in the list it specifies. The known
@@ -1,6 +1,6 @@
1
- # A `signature-input` header's component is not a string.
1
+ # A `signature-input` headers component isn’t a string
2
2
 
3
- Responses' [`signature-input`](signatureInputHeader) header's members' values
3
+ Responses [`signature-input`](signatureInputHeader) headers members values
4
4
  are [Inner Lists](sfInnerList) whose contents are each strings. Perhaps you
5
5
  forgot double-quotes around a component?
6
6
 
@@ -1,4 +1,4 @@
1
- # Invalid parameter on a derived component in a `signature-input` header.
1
+ # Invalid parameter on a derived component in a `signature-input` header
2
2
 
3
3
  Derived components must be specified as deriving from the request, using the
4
4
  [`req` parameter](componentParameterReq). No other parameter may be specified.
@@ -1,4 +1,4 @@
1
- # Invalid parameter on a header component in a `signature-input` header.
1
+ # Invalid parameter on a header component in a `signature-input` header
2
2
 
3
3
  The header [`unencoded-digest`](unencodedDigestHeader) must be specified as
4
4
  being strictly serialized in the signature base, using the
@@ -1,6 +1,6 @@
1
- # Invalid parameter on the list of components in a `signature-input` header.
1
+ # Invalid parameter on the list of components in a `signature-input` header
2
2
 
3
- The `signature-input` header's [Inner Lists](sfInnerList) must be specified with the
3
+ The `signature-input` headers [Inner Lists](sfInnerList) must be specified with the
4
4
  [`keyid` and `type` parameters](signatureParameters). The following parameters may
5
5
  also be specified:
6
6
 
@@ -1,10 +1,10 @@
1
- # Invalid `keyid` value in a `signature-input` header.
1
+ # Invalid `keyid` value in a `signature-input` header
2
2
 
3
- The key specified in a [`signature-input`](signatureInputHeader) header's
4
- [`keyid` parameter](signatureParameters) is not a base64-encoded
5
- 256 bit sequence, and therefore cannot be decoded as an Ed25519 public key.
3
+ The key specified in a [`signature-input`](signatureInputHeader) headers
4
+ [`keyid` parameter](signatureParameters) isn’t a base64-encoded
5
+ 256 bit sequence, and therefore can’t be decoded as an Ed25519 public key.
6
6
 
7
- Note that the `keyid` parameter's value is a string, not a
7
+ Note that the `keyid` parameters value is a string, not a
8
8
  [Byte Sequence](sfByteSequence). For example:
9
9
 
10
10
  ```
@@ -1,6 +1,6 @@
1
- # Label mismatch between `signature` and `signature-input` headers.
1
+ # Label mismatch between `signature` and `signature-input` headers
2
2
 
3
3
  A [`signature`](signatureHeader) header specifies a signature whose label does
4
4
  not appear in a corresponding [`signature-input`](signatureInputHeader) header.
5
- Without a `signature-input` header's definition of the signature's metadata,
6
- the signature cannot be verified.
5
+ Without a `signature-input` headers definition of the signatures metadata,
6
+ the signature can’t be verified.
@@ -1,6 +1,6 @@
1
- # Missing a required parameter on the list of components in a `signature-input` header.
1
+ # Missing a required parameter on the list of components in a `signature-input` header
2
2
 
3
- The [`signature-input`][signatureInputHeader] header's [Inner Lists](sfInnerList)
3
+ The [`signature-input`][signatureInputHeader] headers [Inner Lists](sfInnerList)
4
4
  must be specified with both the [`keyid` and `type` parameters](signatureParameters).
5
5
 
6
6
  ```
@@ -1,6 +1,6 @@
1
- # Missing a required component in a `signature-input` header.
1
+ # Missing a required component in a `signature-input` header
2
2
 
3
- The [`signature-input`](signatureInputHeader) header's
3
+ The [`signature-input`](signatureInputHeader) headers
4
4
  [Inner Lists](sfInnerList) must contain the string "`unencoded-digest`" with an
5
5
  `sf` parameter:
6
6
 
@@ -1,6 +1,6 @@
1
- # A `signature-input` header has a member whose value is not an Inner List.
1
+ # A `signature-input` header has a member whose value isn’t an Inner List
2
2
 
3
- The value of each member of a [`signature-input`](signatureInputHeader) header's
3
+ The value of each member of a [`signature-input`](signatureInputHeader) headers
4
4
  [Dictionary][sfDictionary] must be an [Inner List](sfInnerList) containing the
5
5
  set of components over which a signature is generated.
6
6
 
@@ -1,10 +1,10 @@
1
- # Integrity verification failed.
1
+ # Integrity verification failed
2
2
 
3
3
  The signature associated with a response could be successfully verified, but the
4
4
  public keys asserted in the [`signature-input`](signatureInputHeader)
5
- header's [`keyid` parameter](signatureParameters) do not match the integrity
6
- assertions made by the request's initiator. Verificiation failed.
5
+ headers [`keyid` parameter](signatureParameters) don’t match the integrity
6
+ assertions made by the requests initiator. Verification failed.
7
7
 
8
- The following are the keys specified by the request's initiator:
8
+ The following are the keys specified by the requests initiator:
9
9
 
10
10
  {PLACEHOLDER_integrityAssertions}
@@ -1,5 +1,5 @@
1
- # Signature verification failed: the signature provided is not an Ed25519 signature.
1
+ # Signature verification failed: the signature provided isn’t an Ed25519 signature
2
2
 
3
- The signature specified in a [`signature`](signatureHeader) header is not a
4
- base64-encoded 512 bit byte sequence, and can therefore not be verified as an
3
+ The signature specified in a [`signature`](signatureHeader) header isn’t a
4
+ base64-encoded 512 bit Byte Sequence, and can therefore not be verified as an
5
5
  Ed25519 signature.
@@ -1,6 +1,6 @@
1
- # Signature verification failed: the signature is expired.
1
+ # Signature verification failed: the signature is expired
2
2
 
3
3
  The [`expires` parameter](signatureParameters) specified in a
4
4
  [`signature-input`](signatureInputHeader) header is a UNIX timestamp
5
5
  representing a time in the past. The signature has therefore expired, and
6
- verification is not possible.
6
+ verification isn’t possible.
@@ -1,7 +1,7 @@
1
- # Signature verification failed.
1
+ # Signature verification failed
2
2
 
3
3
  The public key specified in the [`signature-input`](signatureInputHeader)
4
- header's [`keyid` parameter](signatureParameters) does not match the signature
4
+ headers [`keyid` parameter](signatureParameters) doesn’t match the signature
5
5
  specified in the [`signature`](signatureHeader) header. Verification failed.
6
6
 
7
7
  The following is the signature base over which the verification attempt was made:
@@ -1,4 +1,4 @@
1
1
  # Define @import rules at the top of the stylesheet
2
2
 
3
- An @import rule was ignored because it wasn't defined at the top of the stylesheet. Such rules must appear at the top,
3
+ An @import rule was ignored because it wasnt defined at the top of the stylesheet. Such rules must appear at the top,
4
4
  before any style declaration and any other at-rule with the exception of @charset and @layer.
@@ -1,3 +1,3 @@
1
1
  # Interactive element inside of a <summary> element
2
2
 
3
- An interactive element was found within a `<summary>` element. These elements will not consistently be accessible to people navigating by keyboard or using assistive technology.
3
+ An interactive element was found within a `<summary>` element. These elements won’t consistently be accessible to people navigating by keyboard or using assistive technology.
@@ -1,7 +1,7 @@
1
- # An `unencoded-digest` header contains a digest with an incorrect length.
1
+ # An `unencoded-digest` header contains a digest with an incorrect length
2
2
 
3
3
  [`unencoded-digest`](unencodedDigestHeader) headers contain SHA2 digests of a
4
- response's body. The digest delivered with this response is not the correct
4
+ responses body. The digest delivered with this response isn’t the correct
5
5
  length for the algorithm specified. SHA-256 digests should be 256 bits long,
6
6
  SHA-512 digests 512 bits long. For example, if the body was "Hello, world.", the
7
7
  following might be an appropriate header:
@@ -1,10 +1,10 @@
1
- # An `unencoded-digest` header contains a digest with an invalid type.
1
+ # An `unencoded-digest` header contains a digest with an invalid type
2
2
 
3
3
  [`unencoded-digest`](unencodedDigestHeader) headers must be formatted as a
4
- [Dictionary](sfDictionary), wherein each member's label specifies the hashing
4
+ [Dictionary](sfDictionary), wherein each members label specifies the hashing
5
5
  algorithm, and the value is a [Byte Sequence](sfByteSequence) containing the
6
6
  digest. The digest delivered with this response did not deliver the digest as a
7
- byte sequence.
7
+ Byte Sequence.
8
8
 
9
9
  For example, if the body was "Hello, world.":
10
10
 
@@ -1,7 +1,7 @@
1
- # An `unencoded-digest` header cannot be parsed.
1
+ # An `unencoded-digest` header can’t be parsed
2
2
 
3
3
  [`unencoded-digest`](unencodedDigestHeader) headers must be formatted as a
4
- [Dictionary](sfDictionary), wherein each member's label specifies the hashing
4
+ [Dictionary](sfDictionary), wherein each members label specifies the hashing
5
5
  algorithm, and the value is a [Byte Sequence](sfByteSequence) containing the
6
6
  digest. The digest delivered with this response did not format the response
7
7
  correctly.
@@ -1,4 +1,4 @@
1
- # An `unencoded-digest` header contains a digest with an invalid algorithm.
1
+ # An `unencoded-digest` header contains a digest with an invalid algorithm
2
2
 
3
3
  [`unencoded-digest`](unencodedDigestHeader) headers support only two hashing
4
4
  algorithms, SHA-256, and SHA-512. The digests delivered with this response