@yezack/chrome-devtools-mcp-108 0.0.0-stage → 1.10.2

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 (360) hide show
  1. package/FORK-NOTICE.md +45 -0
  2. package/LICENSE +202 -0
  3. package/README.md +45 -2
  4. package/build/src/BrowserManager.js +401 -0
  5. package/build/src/McpContext.js +642 -0
  6. package/build/src/McpPage.js +850 -0
  7. package/build/src/McpResponse.js +1086 -0
  8. package/build/src/SlimMcpResponse.js +19 -0
  9. package/build/src/TextSnapshot.js +315 -0
  10. package/build/src/ToolHandler.js +322 -0
  11. package/build/src/bin/check-latest-version.js +51 -0
  12. package/build/src/bin/chrome-devtools-mcp-main.js +77 -0
  13. package/build/src/bin/chrome-devtools-mcp.js +23 -0
  14. package/build/src/bin/chrome-devtools.js +222 -0
  15. package/build/src/collectors/PageCollector.js +291 -0
  16. package/build/src/collectors/ServiceWorkerCollector.js +171 -0
  17. package/build/src/config/browser-options.js +125 -0
  18. package/build/src/config/category-options.js +89 -0
  19. package/build/src/config/cli-commands.js +26 -0
  20. package/build/src/config/cli-options.js +1473 -0
  21. package/build/src/config/mcp-options.js +417 -0
  22. package/build/src/daemon/client.js +221 -0
  23. package/build/src/daemon/daemon.js +266 -0
  24. package/build/src/daemon/types.js +7 -0
  25. package/build/src/daemon/utils.js +136 -0
  26. package/build/src/devtools/DevToolsCommentBridge.js +91 -0
  27. package/build/src/devtools/DevtoolsUtils.js +307 -0
  28. package/build/src/devtools/McpHostBindingAdapter.js +165 -0
  29. package/build/src/devtools/issueDescriptions.js +42 -0
  30. package/build/src/formatters/CommentFormatter.js +82 -0
  31. package/build/src/formatters/ConsoleFormatter.js +321 -0
  32. package/build/src/formatters/CssFormatter.js +812 -0
  33. package/build/src/formatters/HeapSnapshotFormatter.js +185 -0
  34. package/build/src/formatters/IssueFormatter.js +193 -0
  35. package/build/src/formatters/NetworkFormatter.js +241 -0
  36. package/build/src/formatters/SnapshotFormatter.js +135 -0
  37. package/build/src/index.js +237 -0
  38. package/build/src/processors/ChunkedTraceParser.js +361 -0
  39. package/build/src/processors/HeapSnapshotManager.js +270 -0
  40. package/build/src/processors/PerformanceTrace.js +132 -0
  41. package/build/src/telemetry/ClearcutLogger.js +242 -0
  42. package/build/src/telemetry/WatchdogClient.js +61 -0
  43. package/build/src/telemetry/errors.js +18 -0
  44. package/build/src/telemetry/flagUtils.js +90 -0
  45. package/build/src/telemetry/metricsRegistry.js +85 -0
  46. package/build/src/telemetry/persistence.js +82 -0
  47. package/build/src/telemetry/transformation.js +233 -0
  48. package/build/src/telemetry/types.js +36 -0
  49. package/build/src/telemetry/watchdog/ClearcutSender.js +205 -0
  50. package/build/src/telemetry/watchdog/main.js +128 -0
  51. package/build/src/third_party/THIRD_PARTY_NOTICES +4077 -0
  52. package/build/src/third_party/bundled-packages.json +12 -0
  53. package/build/src/third_party/devtools-formatter-worker.js +15494 -0
  54. package/build/src/third_party/devtools-heap-snapshot-worker.js +10979 -0
  55. package/build/src/third_party/index.js +200978 -0
  56. package/build/src/third_party/issue-descriptions/CoepCoopSandboxedIframeCannotNavigateToCoopPage.md +4 -0
  57. package/build/src/third_party/issue-descriptions/CoepCorpNotSameOrigin.md +8 -0
  58. package/build/src/third_party/issue-descriptions/CoepCorpNotSameOriginAfterDefaultedToSameOriginByCoep.md +18 -0
  59. package/build/src/third_party/issue-descriptions/CoepCorpNotSameSite.md +7 -0
  60. package/build/src/third_party/issue-descriptions/CoepFrameResourceNeedsCoepHeader.md +10 -0
  61. package/build/src/third_party/issue-descriptions/CompatibilityModeQuirks.md +5 -0
  62. package/build/src/third_party/issue-descriptions/CookieAttributeValueExceedsMaxSize.md +5 -0
  63. package/build/src/third_party/issue-descriptions/LowTextContrast.md +5 -0
  64. package/build/src/third_party/issue-descriptions/SameSiteNoneInsecureErrorRead.md +8 -0
  65. package/build/src/third_party/issue-descriptions/SameSiteNoneInsecureErrorSet.md +8 -0
  66. package/build/src/third_party/issue-descriptions/SameSiteNoneInsecureWarnRead.md +8 -0
  67. package/build/src/third_party/issue-descriptions/SameSiteNoneInsecureWarnSet.md +8 -0
  68. package/build/src/third_party/issue-descriptions/SameSiteUnspecifiedLaxAllowUnsafeRead.md +9 -0
  69. package/build/src/third_party/issue-descriptions/SameSiteUnspecifiedLaxAllowUnsafeSet.md +9 -0
  70. package/build/src/third_party/issue-descriptions/bounceTrackingMitigations.md +3 -0
  71. package/build/src/third_party/issue-descriptions/clientHintMetaTagAllowListInvalidOrigin.md +4 -0
  72. package/build/src/third_party/issue-descriptions/clientHintMetaTagModifiedHTML.md +4 -0
  73. package/build/src/third_party/issue-descriptions/connectionAllowlistEmbeddingRequirementNotSatisfied.md +26 -0
  74. package/build/src/third_party/issue-descriptions/connectionAllowlistIFrameAttributeLoosensEmbeddingRequirement.md +19 -0
  75. package/build/src/third_party/issue-descriptions/connectionAllowlistInvalidAllowConnectionAllowlistFrom.md +21 -0
  76. package/build/src/third_party/issue-descriptions/connectionAllowlistInvalidAllowlistItemType.md +12 -0
  77. package/build/src/third_party/issue-descriptions/connectionAllowlistInvalidHeader.md +12 -0
  78. package/build/src/third_party/issue-descriptions/connectionAllowlistInvalidUrlPattern.md +8 -0
  79. package/build/src/third_party/issue-descriptions/connectionAllowlistItemNotInnerList.md +12 -0
  80. package/build/src/third_party/issue-descriptions/connectionAllowlistMoreThanOneList.md +7 -0
  81. package/build/src/third_party/issue-descriptions/connectionAllowlistReportingEndpointNotToken.md +10 -0
  82. package/build/src/third_party/issue-descriptions/cookieCrossSiteRedirectDowngrade.md +12 -0
  83. package/build/src/third_party/issue-descriptions/cookieExcludeDomainNonAscii.md +11 -0
  84. package/build/src/third_party/issue-descriptions/cookieExcludePortMismatch.md +8 -0
  85. package/build/src/third_party/issue-descriptions/cookieExcludeSchemeMismatch.md +7 -0
  86. package/build/src/third_party/issue-descriptions/cookieExcludeThirdPartyPhaseoutRead.md +6 -0
  87. package/build/src/third_party/issue-descriptions/cookieExcludeThirdPartyPhaseoutSet.md +6 -0
  88. package/build/src/third_party/issue-descriptions/cookieWarnDomainNonAscii.md +11 -0
  89. package/build/src/third_party/issue-descriptions/cookieWarnMetadataGrantRead.md +4 -0
  90. package/build/src/third_party/issue-descriptions/cookieWarnMetadataGrantSet.md +4 -0
  91. package/build/src/third_party/issue-descriptions/cookieWarnThirdPartyPhaseoutRead.md +6 -0
  92. package/build/src/third_party/issue-descriptions/cookieWarnThirdPartyPhaseoutSet.md +6 -0
  93. package/build/src/third_party/issue-descriptions/corsAllowCredentialsRequired.md +6 -0
  94. package/build/src/third_party/issue-descriptions/corsDisabledScheme.md +7 -0
  95. package/build/src/third_party/issue-descriptions/corsDisallowedByMode.md +7 -0
  96. package/build/src/third_party/issue-descriptions/corsHeaderDisallowedByPreflightResponse.md +5 -0
  97. package/build/src/third_party/issue-descriptions/corsInvalidHeaderValues.md +7 -0
  98. package/build/src/third_party/issue-descriptions/corsLocalNetworkAccessPermissionDenied.md +19 -0
  99. package/build/src/third_party/issue-descriptions/corsMethodDisallowedByPreflightResponse.md +5 -0
  100. package/build/src/third_party/issue-descriptions/corsNoCorsRedirectModeNotFollow.md +5 -0
  101. package/build/src/third_party/issue-descriptions/corsOriginMismatch.md +6 -0
  102. package/build/src/third_party/issue-descriptions/corsPreflightResponseInvalid.md +5 -0
  103. package/build/src/third_party/issue-descriptions/corsRedirectContainsCredentials.md +5 -0
  104. package/build/src/third_party/issue-descriptions/corsWildcardOriginNotAllowed.md +9 -0
  105. package/build/src/third_party/issue-descriptions/cspEvalViolation.md +9 -0
  106. package/build/src/third_party/issue-descriptions/cspInlineViolation.md +10 -0
  107. package/build/src/third_party/issue-descriptions/cspTrustedTypesPolicyViolation.md +5 -0
  108. package/build/src/third_party/issue-descriptions/cspTrustedTypesSinkViolation.md +8 -0
  109. package/build/src/third_party/issue-descriptions/cspURLViolation.md +10 -0
  110. package/build/src/third_party/issue-descriptions/deprecation.md +3 -0
  111. package/build/src/third_party/issue-descriptions/emailVerificationRequestAccountsEmptyList.md +1 -0
  112. package/build/src/third_party/issue-descriptions/emailVerificationRequestAccountsHttpNotFound.md +1 -0
  113. package/build/src/third_party/issue-descriptions/emailVerificationRequestAccountsInvalidContentType.md +1 -0
  114. package/build/src/third_party/issue-descriptions/emailVerificationRequestAccountsInvalidResponse.md +1 -0
  115. package/build/src/third_party/issue-descriptions/emailVerificationRequestAccountsNoResponse.md +1 -0
  116. package/build/src/third_party/issue-descriptions/emailVerificationRequestDnsFetchFailed.md +1 -0
  117. package/build/src/third_party/issue-descriptions/emailVerificationRequestDnsInvalidRecord.md +1 -0
  118. package/build/src/third_party/issue-descriptions/emailVerificationRequestEmailVerificationWellKnownHttpNotFound.md +1 -0
  119. package/build/src/third_party/issue-descriptions/emailVerificationRequestEmailVerificationWellKnownInvalidContentType.md +1 -0
  120. package/build/src/third_party/issue-descriptions/emailVerificationRequestEmailVerificationWellKnownInvalidResponse.md +1 -0
  121. package/build/src/third_party/issue-descriptions/emailVerificationRequestEmailVerificationWellKnownNoResponse.md +1 -0
  122. package/build/src/third_party/issue-descriptions/emailVerificationRequestInvalidEmail.md +1 -0
  123. package/build/src/third_party/issue-descriptions/emailVerificationRequestJwksHttpNotFound.md +1 -0
  124. package/build/src/third_party/issue-descriptions/emailVerificationRequestJwksInvalidResponse.md +1 -0
  125. package/build/src/third_party/issue-descriptions/emailVerificationRequestKeyBindingSigningFailed.md +1 -0
  126. package/build/src/third_party/issue-descriptions/emailVerificationRequestRpOriginIsOpaque.md +1 -0
  127. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenHttpNotFound.md +1 -0
  128. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenInvalidContentType.md +1 -0
  129. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenInvalidResponse.md +1 -0
  130. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenInvalidSdJwt.md +1 -0
  131. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenMalformedSdJwt.md +1 -0
  132. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenNoResponse.md +1 -0
  133. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbInvalidAudience.md +1 -0
  134. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbInvalidIssuedAt.md +1 -0
  135. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbInvalidNonce.md +1 -0
  136. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbInvalidSdHash.md +1 -0
  137. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbInvalidTyp.md +1 -0
  138. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbMissingAud.md +1 -0
  139. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbMissingCnf.md +1 -0
  140. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbMissingIat.md +1 -0
  141. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbMissingNonce.md +1 -0
  142. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbMissingSdHash.md +1 -0
  143. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbSignatureFailed.md +1 -0
  144. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtInvalidEmail.md +1 -0
  145. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtInvalidEmailVerified.md +1 -0
  146. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtInvalidHolderKey.md +1 -0
  147. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtInvalidIssuedAt.md +1 -0
  148. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtInvalidIssuer.md +1 -0
  149. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtJwksMissingKeys.md +1 -0
  150. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtMissingCnf.md +1 -0
  151. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtMissingEmail.md +1 -0
  152. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtMissingIat.md +1 -0
  153. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtMissingIss.md +1 -0
  154. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtSignatureFailed.md +1 -0
  155. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtUnsupportedHeaderAlg.md +1 -0
  156. package/build/src/third_party/issue-descriptions/emailVerificationRequestUserLoggedOut.md +1 -0
  157. package/build/src/third_party/issue-descriptions/emailVerificationRequestWellKnownAccountsEndpointCrossOrigin.md +1 -0
  158. package/build/src/third_party/issue-descriptions/emailVerificationRequestWellKnownHttpNotFound.md +1 -0
  159. package/build/src/third_party/issue-descriptions/emailVerificationRequestWellKnownInvalidContentType.md +1 -0
  160. package/build/src/third_party/issue-descriptions/emailVerificationRequestWellKnownInvalidResponse.md +1 -0
  161. package/build/src/third_party/issue-descriptions/emailVerificationRequestWellKnownIssuanceEndpointCrossOrigin.md +1 -0
  162. package/build/src/third_party/issue-descriptions/emailVerificationRequestWellKnownListEmpty.md +1 -0
  163. package/build/src/third_party/issue-descriptions/emailVerificationRequestWellKnownMissingAccountsEndpoint.md +1 -0
  164. package/build/src/third_party/issue-descriptions/emailVerificationRequestWellKnownMissingIssuanceEndpoint.md +1 -0
  165. package/build/src/third_party/issue-descriptions/emailVerificationRequestWellKnownNoResponse.md +1 -0
  166. package/build/src/third_party/issue-descriptions/emailVerificationRequestWellKnownUnsupportedSigningAlgorithm.md +1 -0
  167. package/build/src/third_party/issue-descriptions/federatedAuthRequestAccountsBlockedByConnectionAllowlist.md +1 -0
  168. package/build/src/third_party/issue-descriptions/federatedAuthRequestAccountsHttpNotFound.md +1 -0
  169. package/build/src/third_party/issue-descriptions/federatedAuthRequestAccountsInvalidResponse.md +1 -0
  170. package/build/src/third_party/issue-descriptions/federatedAuthRequestAccountsNoResponse.md +1 -0
  171. package/build/src/third_party/issue-descriptions/federatedAuthRequestApprovalDeclined.md +1 -0
  172. package/build/src/third_party/issue-descriptions/federatedAuthRequestCanceled.md +1 -0
  173. package/build/src/third_party/issue-descriptions/federatedAuthRequestConfigBlockedByConnectionAllowlist.md +1 -0
  174. package/build/src/third_party/issue-descriptions/federatedAuthRequestErrorFetchingSignin.md +1 -0
  175. package/build/src/third_party/issue-descriptions/federatedAuthRequestErrorIdToken.md +1 -0
  176. package/build/src/third_party/issue-descriptions/federatedAuthRequestIdTokenBlockedByConnectionAllowlist.md +1 -0
  177. package/build/src/third_party/issue-descriptions/federatedAuthRequestIdTokenHttpNotFound.md +1 -0
  178. package/build/src/third_party/issue-descriptions/federatedAuthRequestIdTokenInvalidRequest.md +1 -0
  179. package/build/src/third_party/issue-descriptions/federatedAuthRequestIdTokenInvalidResponse.md +1 -0
  180. package/build/src/third_party/issue-descriptions/federatedAuthRequestIdTokenNoResponse.md +1 -0
  181. package/build/src/third_party/issue-descriptions/federatedAuthRequestInvalidSigninResponse.md +1 -0
  182. package/build/src/third_party/issue-descriptions/federatedAuthRequestManifestHttpNotFound.md +1 -0
  183. package/build/src/third_party/issue-descriptions/federatedAuthRequestManifestInvalidResponse.md +1 -0
  184. package/build/src/third_party/issue-descriptions/federatedAuthRequestManifestNoResponse.md +1 -0
  185. package/build/src/third_party/issue-descriptions/federatedAuthRequestTooManyRequests.md +1 -0
  186. package/build/src/third_party/issue-descriptions/federatedAuthRequestWellKnownBlockedByConnectionAllowlist.md +1 -0
  187. package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestInvalidAccountsResponse.md +1 -0
  188. package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestInvalidConfigOrWellKnown.md +1 -0
  189. package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestNoAccountSharingPermission.md +1 -0
  190. package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestNoApiPermission.md +1 -0
  191. package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestNoReturningUserFromFetchedAccounts.md +1 -0
  192. package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestNotIframe.md +1 -0
  193. package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestNotPotentiallyTrustworthy.md +1 -0
  194. package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestNotSameOrigin.md +1 -0
  195. package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestNotSignedInWithIdp.md +1 -0
  196. package/build/src/third_party/issue-descriptions/fetchingPartitionedBlobURL.md +7 -0
  197. package/build/src/third_party/issue-descriptions/genericBackUINavigationWouldSkipAd.md +4 -0
  198. package/build/src/third_party/issue-descriptions/genericFormAriaLabelledByToNonExistingIdError.md +8 -0
  199. package/build/src/third_party/issue-descriptions/genericFormAutocompleteAttributeEmptyError.md +5 -0
  200. package/build/src/third_party/issue-descriptions/genericFormDuplicateIdForInputError.md +5 -0
  201. package/build/src/third_party/issue-descriptions/genericFormEmptyIdAndNameAttributesForInputError.md +5 -0
  202. package/build/src/third_party/issue-descriptions/genericFormInputAssignedAutocompleteValueToIdOrNameAttributeError.md +5 -0
  203. package/build/src/third_party/issue-descriptions/genericFormInputHasWrongButWellIntendedAutocompleteValueError.md +5 -0
  204. package/build/src/third_party/issue-descriptions/genericFormInputWithNoLabelError.md +5 -0
  205. package/build/src/third_party/issue-descriptions/genericFormLabelForMatchesNonExistingIdError.md +5 -0
  206. package/build/src/third_party/issue-descriptions/genericFormLabelForNameError.md +5 -0
  207. package/build/src/third_party/issue-descriptions/genericFormLabelHasNeitherForNorNestedInputError.md +5 -0
  208. package/build/src/third_party/issue-descriptions/genericFormModelContextMissingToolDescription.md +5 -0
  209. package/build/src/third_party/issue-descriptions/genericFormModelContextMissingToolName.md +5 -0
  210. package/build/src/third_party/issue-descriptions/genericFormModelContextParameterMissingName.md +5 -0
  211. package/build/src/third_party/issue-descriptions/genericFormModelContextParameterMissingTitleAndDescription.md +5 -0
  212. package/build/src/third_party/issue-descriptions/genericFormModelContextRequiredParameterMissingName.md +5 -0
  213. package/build/src/third_party/issue-descriptions/genericNavigationEntryMarkedSkippable.md +7 -0
  214. package/build/src/third_party/issue-descriptions/genericResponseWasBlockedByORB.md +4 -0
  215. package/build/src/third_party/issue-descriptions/heavyAd.md +10 -0
  216. package/build/src/third_party/issue-descriptions/lazyLoadImageZeroSize.md +7 -0
  217. package/build/src/third_party/issue-descriptions/mixedContent.md +5 -0
  218. package/build/src/third_party/issue-descriptions/navigatingPartitionedBlobURL.md +5 -0
  219. package/build/src/third_party/issue-descriptions/permissionElementActivationDisabled.md +7 -0
  220. package/build/src/third_party/issue-descriptions/permissionElementActivationDisabledWithOccluder.md +9 -0
  221. package/build/src/third_party/issue-descriptions/permissionElementActivationDisabledWithOccluderParent.md +9 -0
  222. package/build/src/third_party/issue-descriptions/permissionElementCspFrameAncestorsMissing.md +5 -0
  223. package/build/src/third_party/issue-descriptions/permissionElementFencedFrameDisallowed.md +5 -0
  224. package/build/src/third_party/issue-descriptions/permissionElementFontSizeTooLarge.md +5 -0
  225. package/build/src/third_party/issue-descriptions/permissionElementFontSizeTooSmall.md +5 -0
  226. package/build/src/third_party/issue-descriptions/permissionElementGeolocationDeprecated.md +5 -0
  227. package/build/src/third_party/issue-descriptions/permissionElementInsetBoxShadowUnsupported.md +5 -0
  228. package/build/src/third_party/issue-descriptions/permissionElementInvalidDisplayStyle.md +5 -0
  229. package/build/src/third_party/issue-descriptions/permissionElementInvalidSizeValue.md +5 -0
  230. package/build/src/third_party/issue-descriptions/permissionElementInvalidType.md +5 -0
  231. package/build/src/third_party/issue-descriptions/permissionElementInvalidTypeActivation.md +5 -0
  232. package/build/src/third_party/issue-descriptions/permissionElementLowContrast.md +5 -0
  233. package/build/src/third_party/issue-descriptions/permissionElementNonOpaqueColor.md +5 -0
  234. package/build/src/third_party/issue-descriptions/permissionElementPaddingBottomUnsupported.md +6 -0
  235. package/build/src/third_party/issue-descriptions/permissionElementPaddingRightUnsupported.md +6 -0
  236. package/build/src/third_party/issue-descriptions/permissionElementPermissionsPolicyBlocked.md +5 -0
  237. package/build/src/third_party/issue-descriptions/permissionElementRegistrationFailed.md +5 -0
  238. package/build/src/third_party/issue-descriptions/permissionElementRequestInProgress.md +5 -0
  239. package/build/src/third_party/issue-descriptions/permissionElementSecurityChecksFailed.md +5 -0
  240. package/build/src/third_party/issue-descriptions/permissionElementTypeNotSupported.md +5 -0
  241. package/build/src/third_party/issue-descriptions/permissionElementUntrustedEvent.md +7 -0
  242. package/build/src/third_party/issue-descriptions/placeholderDescriptionForInvisibleIssues.md +3 -0
  243. package/build/src/third_party/issue-descriptions/propertyRuleInvalidNameIssue.md +3 -0
  244. package/build/src/third_party/issue-descriptions/propertyRuleIssue.md +7 -0
  245. package/build/src/third_party/issue-descriptions/selectElementAccessibilityDisallowedOptGroupChild.md +7 -0
  246. package/build/src/third_party/issue-descriptions/selectElementAccessibilityDisallowedSelectChild.md +7 -0
  247. package/build/src/third_party/issue-descriptions/selectElementAccessibilityInteractiveContentAttributesSelectDescendant.md +3 -0
  248. package/build/src/third_party/issue-descriptions/selectElementAccessibilityInteractiveContentLegendChild.md +3 -0
  249. package/build/src/third_party/issue-descriptions/selectElementAccessibilityInteractiveContentOptionChild.md +3 -0
  250. package/build/src/third_party/issue-descriptions/selectElementAccessibilityNonPhrasingContentOptionChild.md +3 -0
  251. package/build/src/third_party/issue-descriptions/selectivePermissionsIntervention.md +7 -0
  252. package/build/src/third_party/issue-descriptions/sharedArrayBuffer.md +7 -0
  253. package/build/src/third_party/issue-descriptions/sharedDictionaryUseErrorCrossOriginNoCorsRequest.md +1 -0
  254. package/build/src/third_party/issue-descriptions/sharedDictionaryUseErrorDictionaryLoadFailure.md +3 -0
  255. package/build/src/third_party/issue-descriptions/sharedDictionaryUseErrorMatchingDictionaryNotUsed.md +3 -0
  256. package/build/src/third_party/issue-descriptions/sharedDictionaryUseErrorUnexpectedContentDictionaryHeader.md +1 -0
  257. package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorCossOriginNoCorsRequest.md +1 -0
  258. package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorDisallowedBySettings.md +1 -0
  259. package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorExpiredResponse.md +3 -0
  260. package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorFeatureDisabled.md +3 -0
  261. package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorInsufficientResources.md +1 -0
  262. package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorInvalidMatchField.md +1 -0
  263. package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorInvalidStructuredHeader.md +1 -0
  264. package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorInvalidTTLField.md +1 -0
  265. package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorNavigationRequest.md +3 -0
  266. package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorNoMatchField.md +1 -0
  267. package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorNonIntegerTTLField.md +1 -0
  268. package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorNonListMatchDestField.md +1 -0
  269. package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorNonSecureContext.md +3 -0
  270. package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorNonStringIdField.md +1 -0
  271. package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorNonStringInMatchDestList.md +1 -0
  272. package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorNonStringMatchField.md +1 -0
  273. package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorNonTokenTypeField.md +1 -0
  274. package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorRequestAborted.md +1 -0
  275. package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorShuttingDown.md +1 -0
  276. package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorTooLongIdField.md +3 -0
  277. package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorUnsupportedType.md +3 -0
  278. package/build/src/third_party/issue-descriptions/sriInvalidSignatureHeader.md +14 -0
  279. package/build/src/third_party/issue-descriptions/sriInvalidSignatureInputHeader.md +15 -0
  280. package/build/src/third_party/issue-descriptions/sriMissingSignatureHeader.md +8 -0
  281. package/build/src/third_party/issue-descriptions/sriMissingSignatureInputHeader.md +7 -0
  282. package/build/src/third_party/issue-descriptions/sriSignatureHeaderValueIsIncorrectLength.md +11 -0
  283. package/build/src/third_party/issue-descriptions/sriSignatureHeaderValueIsNotByteSequence.md +14 -0
  284. package/build/src/third_party/issue-descriptions/sriSignatureHeaderValueIsParameterized.md +15 -0
  285. package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderInvalidComponentName.md +8 -0
  286. package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderInvalidComponentType.md +13 -0
  287. package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderInvalidDerivedComponentParameter.md +4 -0
  288. package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderInvalidHeaderComponentParameter.md +5 -0
  289. package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderInvalidParameter.md +11 -0
  290. package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderKeyIdLength.md +12 -0
  291. package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderMissingLabel.md +6 -0
  292. package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderMissingRequiredParameters.md +8 -0
  293. package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderValueMissingComponents.md +11 -0
  294. package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderValueNotInnerList.md +11 -0
  295. package/build/src/third_party/issue-descriptions/sriValidationFailedIntegrityMismatch.md +10 -0
  296. package/build/src/third_party/issue-descriptions/sriValidationFailedInvalidLength.md +5 -0
  297. package/build/src/third_party/issue-descriptions/sriValidationFailedSignatureExpired.md +6 -0
  298. package/build/src/third_party/issue-descriptions/sriValidationFailedSignatureMismatch.md +11 -0
  299. package/build/src/third_party/issue-descriptions/stylesheetLateImport.md +4 -0
  300. package/build/src/third_party/issue-descriptions/stylesheetRequestFailed.md +3 -0
  301. package/build/src/third_party/issue-descriptions/summaryElementAccessibilityInteractiveContentSummaryDescendant.md +3 -0
  302. package/build/src/third_party/issue-descriptions/unencodedDigestIncorrectDigestLength.md +12 -0
  303. package/build/src/third_party/issue-descriptions/unencodedDigestIncorrectDigestType.md +17 -0
  304. package/build/src/third_party/issue-descriptions/unencodedDigestMalformedDictionary.md +14 -0
  305. package/build/src/third_party/issue-descriptions/unencodedDigestUnknownAlgorithm.md +15 -0
  306. package/build/src/third_party/issue-descriptions/webInstallManifestMissingId.md +3 -0
  307. package/build/src/third_party/issue-descriptions/webInstallManifestMissingNameOrShortName.md +3 -0
  308. package/build/src/third_party/issue-descriptions/webInstallManifestParsingOrNetworkError.md +3 -0
  309. package/build/src/third_party/issue-descriptions/webInstallNoManifest.md +3 -0
  310. package/build/src/third_party/issue-descriptions/webInstallStartUrlInvalid.md +3 -0
  311. package/build/src/third_party/lighthouse-devtools-mcp-bundle.js +58435 -0
  312. package/build/src/tools/ToolDefinition.js +80 -0
  313. package/build/src/tools/categories.js +33 -0
  314. package/build/src/tools/comments.js +169 -0
  315. package/build/src/tools/console.js +104 -0
  316. package/build/src/tools/css.js +45 -0
  317. package/build/src/tools/emulation.js +84 -0
  318. package/build/src/tools/extensions.js +103 -0
  319. package/build/src/tools/input.js +652 -0
  320. package/build/src/tools/lighthouse.js +149 -0
  321. package/build/src/tools/memory.js +424 -0
  322. package/build/src/tools/network.js +128 -0
  323. package/build/src/tools/pages.js +363 -0
  324. package/build/src/tools/performance.js +212 -0
  325. package/build/src/tools/pwa.js +128 -0
  326. package/build/src/tools/screencast.js +119 -0
  327. package/build/src/tools/screenshot.js +277 -0
  328. package/build/src/tools/script.js +232 -0
  329. package/build/src/tools/slim/tools.js +96 -0
  330. package/build/src/tools/snapshot.js +63 -0
  331. package/build/src/tools/thirdPartyDeveloper.js +85 -0
  332. package/build/src/tools/tools.js +55 -0
  333. package/build/src/tools/webmcp.js +66 -0
  334. package/build/src/types.js +10 -0
  335. package/build/src/utils/WaitForHelper.js +316 -0
  336. package/build/src/utils/bytes.js +105 -0
  337. package/build/src/utils/check-for-updates.js +75 -0
  338. package/build/src/utils/files.js +57 -0
  339. package/build/src/utils/id.js +16 -0
  340. package/build/src/utils/keyboard.js +297 -0
  341. package/build/src/utils/logger.js +52 -0
  342. package/build/src/utils/pagination.js +50 -0
  343. package/build/src/utils/polyfill.js +11 -0
  344. package/build/src/utils/url.js +116 -0
  345. package/build/src/version.js +10 -0
  346. package/package.json +41 -4
  347. package/skills/a11y-debugging/SKILL.md +91 -0
  348. package/skills/a11y-debugging/references/a11y-snippets.md +92 -0
  349. package/skills/chrome-devtools/SKILL.md +74 -0
  350. package/skills/chrome-devtools-cli/SKILL.md +194 -0
  351. package/skills/chrome-devtools-cli/references/installation.md +14 -0
  352. package/skills/cookie-debugging/SKILL.md +149 -0
  353. package/skills/debug-optimize-lcp/SKILL.md +121 -0
  354. package/skills/debug-optimize-lcp/references/elements-and-size.md +27 -0
  355. package/skills/debug-optimize-lcp/references/lcp-breakdown.md +23 -0
  356. package/skills/debug-optimize-lcp/references/lcp-snippets.md +79 -0
  357. package/skills/debug-optimize-lcp/references/optimization-strategies.md +38 -0
  358. package/skills/memory-leak-debugging/SKILL.md +58 -0
  359. package/skills/memory-leak-debugging/references/common-leaks.md +33 -0
  360. package/skills/troubleshooting/SKILL.md +99 -0
@@ -0,0 +1,5 @@
1
+ # Quota exceeded
2
+
3
+ The "{PLACEHOLDER_Type}" element has surpassed the maximum instances quota per page.
4
+
5
+ To resolve this issue, ensure that you have no more than 3 elements of the same type per page.
@@ -0,0 +1,5 @@
1
+ # Request in progress
2
+
3
+ A permission request on the "{PLACEHOLDER_Type}" element was stopped because a previous request is still in progress.
4
+
5
+ To resolve this issue, ensure that the site doesn’t allow users to interact with the element behind the current content scrim (for example by moving the element to a document in a new window, which isn’t covered by the scrim).
@@ -0,0 +1,5 @@
1
+ # Activation disabled (quota)
2
+
3
+ The "{PLACEHOLDER_Type}" element couldn’t be activated because the page’s quota has been exceeded.
4
+
5
+ To resolve this issue, ensure that you have no more than 3 elements of the same type per page.
@@ -0,0 +1,5 @@
1
+ # Permission not supported
2
+
3
+ The permission type "{PLACEHOLDER_Type}" isn’t supported by this browser and therefore the element won’t be functional.
4
+
5
+ To resolve this issue, ensure the element’s type is one of the supported values: "camera", "microphone", "geolocation", "camera microphone".
@@ -0,0 +1,7 @@
1
+ # Untrusted event
2
+
3
+ The "{PLACEHOLDER_Type}" element can only be activated by actual user clicks, not simulated ones.
4
+
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
+
7
+ You can use the command line flag `--runtime-enabled-features=BypassPepcSecurityForTesting` to bypass this behavior for testing purposes.
@@ -0,0 +1,3 @@
1
+ # This is a placeholder issue description
2
+
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.
@@ -0,0 +1,3 @@
1
+ # An @property rule was ignored
2
+
3
+ An @property rule is ignored because the property name is invalid.
@@ -0,0 +1,7 @@
1
+ # Ignored @property rule
2
+
3
+ An @property rule is ignored because it contains an invalid property or is missing a required one:
4
+
5
+ ```
6
+ {PLACEHOLDER_property}
7
+ ```
@@ -0,0 +1,7 @@
1
+ # Invalid element or text node within <optgroup>
2
+
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
+
5
+ If using disallowed elements for layout structure and styling, consider using the allowed `<div>` element instead.
6
+
7
+ Any text existing within the `<optgroup>` element should either be removed or relocated to a valid element that allows text descendants, e.g., the `<legend>` or `<option>` elements.
@@ -0,0 +1,7 @@
1
+ # Invalid element or text node within <select>
2
+
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
+
5
+ If using disallowed elements for layout structure and styling, consider using the allowed `<div>` element instead.
6
+
7
+ Any text existing within the `<select>` element should either be removed or relocated to a valid element that allows text descendants, e.g., an `<optgroup>` with a `<legend>` element or `<option>` elements.
@@ -0,0 +1,3 @@
1
+ # Element with invalid attributes within a <select> element
2
+
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.
@@ -0,0 +1,3 @@
1
+ # Interactive element inside of a <legend> element
2
+
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.
@@ -0,0 +1,3 @@
1
+ # Interactive element inside of an <option> element
2
+
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.
@@ -0,0 +1,3 @@
1
+ # Non-phrasing content used within an <option> element
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 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.
@@ -0,0 +1,7 @@
1
+ # Selective permissions intervention
2
+
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 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.
4
+
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
+
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).
@@ -0,0 +1,7 @@
1
+ # SharedArrayBuffer usage is restricted to cross-origin isolated sites
2
+
3
+ SharedArrayBuffers (SABs) can be used to construct high-resolution timers. High-resolution timers simplify Spectre attacks on cross-origin resources.
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, ensure that this page opts-into cross-origin isolation by setting Cross-Origin-Opener-Policy and Cross-Origin-Embedder-Policy appropriately.
6
+
7
+ Note that for each iframe, only the first issue is reported for performance reasons.
@@ -0,0 +1 @@
1
+ # Found a matching dictionary, but the dictionary can’t be used for the cross origin no-cors request
@@ -0,0 +1,3 @@
1
+ # Failed to load the matching dictionary
2
+
3
+ A matching dictionary was found but it failed to load.
@@ -0,0 +1,3 @@
1
+ # Found a matching dictionary, but the dictionary isn’t used for the response
2
+
3
+ Consider revisiting the `match` pattern or `match-dest` of the dictionary.
@@ -0,0 +1 @@
1
+ # Can’t decode the response because the header of dictionary compressed stream wasn’t set correctly
@@ -0,0 +1 @@
1
+ # Can’t register the cross origin response fetched by a no-cors request as as a dictionary
@@ -0,0 +1 @@
1
+ # compression dictionary is disabled by settings
@@ -0,0 +1,3 @@
1
+ # The response can’t be used as a dictionary because its freshness is expired
2
+
3
+ Check `Cache-Control` and `Expires` headers.
@@ -0,0 +1,3 @@
1
+ # compression dictionary transport feature is disabled
2
+
3
+ enable chrome://flags/#enable-compression-dictionary-transport
@@ -0,0 +1 @@
1
+ # Failed to write the dictionary due to insufficient resources
@@ -0,0 +1 @@
1
+ # Unable to parse the `match` field of the `Use-As-Dictionary` HTTP response header
@@ -0,0 +1 @@
1
+ # `Use-As-Dictionary` HTTP response header isn’t a valid Structured Field Value
@@ -0,0 +1 @@
1
+ # The `ttl` field of the `Use-As-Dictionary` HTTP response header must be a positive integer
@@ -0,0 +1,3 @@
1
+ # Can’t register the response of the navigation request as a dictionary
2
+
3
+ Navigation responses aren’t usable as compression dictionaries.
@@ -0,0 +1 @@
1
+ # There is no `match` field in the `Use-As-Dictionary` HTTP response header
@@ -0,0 +1 @@
1
+ # The `ttl` field of the `Use-As-Dictionary` HTTP response header must be an integer
@@ -0,0 +1 @@
1
+ # The `match-dest` field of the `Use-As-Dictionary` HTTP response header must be a list
@@ -0,0 +1,3 @@
1
+ # Unable to register a dictionary in a non-Secure Context
2
+
3
+ Compression dictionaries are only available over HTTPS.
@@ -0,0 +1 @@
1
+ # The `id` field of the `Use-As-Dictionary` HTTP response header must be a string
@@ -0,0 +1 @@
1
+ # Items in the `match-dest` field of the `Use-As-Dictionary` HTTP response header must be strings
@@ -0,0 +1 @@
1
+ # The `match` field of the `Use-As-Dictionary` HTTP response header must be a string
@@ -0,0 +1 @@
1
+ # The `type` field of the `Use-As-Dictionary` HTTP response header must be a token
@@ -0,0 +1 @@
1
+ # An error occurred while writing the dictionary
@@ -0,0 +1 @@
1
+ # Failed to write the dictionary due to shutdown
@@ -0,0 +1,3 @@
1
+ # The `id` field of the `Use-As-Dictionary` HTTP response header is too long
2
+
3
+ The `id` field must not be longer than 1024 characters.
@@ -0,0 +1,3 @@
1
+ # The `type` field of the `Use-As-Dictionary` HTTP response header must be `raw`
2
+
3
+ Only `raw` dictionaries are currently supported.
@@ -0,0 +1,14 @@
1
+ # A `signature` header isn’t formatted as a Structured Field Dictionary
2
+
3
+ Responses’ [`signature`](signatureHeader) header should be formatted as a
4
+ [Dictionary](sfDictionary) containing one or more signatures. Each member’s key
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
7
+ [Byte Sequence](sfByteSequence) containing the signature itself.
8
+
9
+ For example, the following header contains a single Ed25519 signature labeled
10
+ "label":
11
+
12
+ ```
13
+ Signature: label=:gHim9e5Pk2H7c9BStOmxSmkyc8+ioZgoxynu3d4INAT4dwfj5LhvaV9DFnEQ9p7C0hzW4o4Qpkm5aApd6WLLCw==:
14
+ ```
@@ -0,0 +1,15 @@
1
+ # A `signature-input` header isn’t formatted as a Structured Field Dictionary
2
+
3
+ Responses’ [`signature-input`](signatureInputHeader) header should be formatted
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
6
+ relevant signature defined in a [`signature`](signatureHeader) header. Each
7
+ member’s value is an [Inner List](sfInnerList) containing a set of components
8
+ over which a signature is generated. The list may have one or more parameters.
9
+
10
+ For example, the following header contains metadata for a signature labeled
11
+ "label":
12
+
13
+ ```
14
+ Signature-Input: signature=("unencoded-digest";sf);keyid="JrQLj5P/89iXES9+vFgrIy29clF9CC/oPPsw3c5D0bs=";tag="sri"
15
+ ```
@@ -0,0 +1,8 @@
1
+ # A `signature-input` header was specified without an accompanying `signature` header
2
+
3
+ [`signature-input`](signatureInputHeader) headers specify metadata that allows
4
+ verification of signatures delivered with a response. If no
5
+ [`signature`](signatureHeader) header is present, the
6
+ [`signature-input`](signatureInputHeader) header can be omitted, as it serves no
7
+ useful purpose in the absence of signatures. Both headers must be present for
8
+ verification to proceed.
@@ -0,0 +1,7 @@
1
+ # A `signature` header was specified without an accompanying `signature-input` header
2
+
3
+ [`signature`](signatureHeader) headers specify signatures which can be verified
4
+ against a given response. Verification can’t proceed, however, in the absence of a
5
+ [`signature-input`](signatureInputHeader) header which defines relevant metadata
6
+ which allows servers and clients to agree on the exact message which is being
7
+ signed. Both headers must be present for verification to proceed.
@@ -0,0 +1,11 @@
1
+ # A `signature` header contains a signature which can’t be verified
2
+
3
+ This browser can only verify Ed25519 signatures, which are 512 bits long. The
4
+ signature delivered with this response doesn’t match that length.
5
+
6
+ For example, the following header contains a valid Ed25519 signature labeled
7
+ "label":
8
+
9
+ ```
10
+ Signature: label=:gHim9e5Pk2H7c9BStOmxSmkyc8+ioZgoxynu3d4INAT4dwfj5LhvaV9DFnEQ9p7C0hzW4o4Qpkm5aApd6WLLCw==:
11
+ ```
@@ -0,0 +1,14 @@
1
+ # A `signature` header member’s value isn’t a Byte Sequence
2
+
3
+ Responses’ [`signature`](signatureHeader) header should be formatted as a
4
+ [Dictionary](sfDictionary) containing one or more signatures. Each member’s key
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
7
+ [Byte Sequence](sfByteSequence) containing the signature itself.
8
+
9
+ For example, the following header contains a single Ed25519 signature labeled
10
+ "label":
11
+
12
+ ```
13
+ Signature: label=:gHim9e5Pk2H7c9BStOmxSmkyc8+ioZgoxynu3d4INAT4dwfj5LhvaV9DFnEQ9p7C0hzW4o4Qpkm5aApd6WLLCw==:
14
+ ```
@@ -0,0 +1,15 @@
1
+ # A `signature` header member’s value is parameterized
2
+
3
+ Responses’ [`signature`](signatureHeader) header should be formatted as a
4
+ [Dictionary](sfDictionary) containing one or more signatures. Each member’s key
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
7
+ [Byte Sequence](sfByteSequence) containing the signature itself, with no
8
+ additional parameters specified.
9
+
10
+ For example, the following header contains a single Ed25519 signature labeled
11
+ "label":
12
+
13
+ ```
14
+ Signature: label=:gHim9e5Pk2H7c9BStOmxSmkyc8+ioZgoxynu3d4INAT4dwfj5LhvaV9DFnEQ9p7C0hzW4o4Qpkm5aApd6WLLCw==:
15
+ ```
@@ -0,0 +1,8 @@
1
+ # A `signature-input` header member’s value contains an unknown component
2
+
3
+ The metadata delivered via [`signature-input`](signatureInputHeader) can only
4
+ contain a limited set of components in the list it specifies. The known
5
+ components are:
6
+
7
+ * "`unencoded-digest`"
8
+ * "`@path`"
@@ -0,0 +1,13 @@
1
+ # A `signature-input` header’s component isn’t a string
2
+
3
+ Responses’ [`signature-input`](signatureInputHeader) header’s members’ values
4
+ are [Inner Lists](sfInnerList) whose contents are each strings. Perhaps you
5
+ forgot double-quotes around a component?
6
+
7
+ ```
8
+ // Correct:
9
+ Signature-Input: signature=("unencoded-digest";sf);keyid="JrQLj5P/89iXES9+vFgrIy29clF9CC/oPPsw3c5D0bs=";tag="sri"
10
+
11
+ // Incorrect:
12
+ Signature-Input: signature=(unencoded-digest;sf);keyid="JrQLj5P/89iXES9+vFgrIy29clF9CC/oPPsw3c5D0bs=";tag="sri"
13
+ ```
@@ -0,0 +1,4 @@
1
+ # Invalid parameter on a derived component in a `signature-input` header
2
+
3
+ Derived components must be specified as deriving from the request, using the
4
+ [`req` parameter](componentParameterReq). No other parameter may be specified.
@@ -0,0 +1,5 @@
1
+ # Invalid parameter on a header component in a `signature-input` header
2
+
3
+ The header [`unencoded-digest`](unencodedDigestHeader) must be specified as
4
+ being strictly serialized in the signature base, using the
5
+ [`sf` parameter](componentParameterSf). No other parameter may be specified.
@@ -0,0 +1,11 @@
1
+ # Invalid parameter on the list of components in a `signature-input` header
2
+
3
+ The `signature-input` header’s [Inner Lists](sfInnerList) must be specified with the
4
+ [`keyid` and `type` parameters](signatureParameters). The following parameters may
5
+ also be specified:
6
+
7
+ * `created`
8
+ * `expires`
9
+ * `nonce`
10
+
11
+ No other parameter may be specified.
@@ -0,0 +1,12 @@
1
+ # Invalid `keyid` value in a `signature-input` header
2
+
3
+ The key specified in a [`signature-input`](signatureInputHeader) header’s
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
+
7
+ Note that the `keyid` parameter’s value is a string, not a
8
+ [Byte Sequence](sfByteSequence). For example:
9
+
10
+ ```
11
+ Signature-Input: signature=("unencoded-digest";sf);keyid="JrQLj5P/89iXES9+vFgrIy29clF9CC/oPPsw3c5D0bs=";tag="sri"
12
+ ```
@@ -0,0 +1,6 @@
1
+ # Label mismatch between `signature` and `signature-input` headers
2
+
3
+ A [`signature`](signatureHeader) header specifies a signature whose label does
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 can’t be verified.
@@ -0,0 +1,8 @@
1
+ # Missing a required parameter on the list of components in a `signature-input` header
2
+
3
+ The [`signature-input`][signatureInputHeader] header’s [Inner Lists](sfInnerList)
4
+ must be specified with both the [`keyid` and `type` parameters](signatureParameters).
5
+
6
+ ```
7
+ Signature-Input: signature=("unencoded-digest";sf);keyid="JrQLj5P/89iXES9+vFgrIy29clF9CC/oPPsw3c5D0bs=";tag="sri"
8
+ ```
@@ -0,0 +1,11 @@
1
+ # Missing a required component in a `signature-input` header
2
+
3
+ The [`signature-input`](signatureInputHeader) header’s
4
+ [Inner Lists](sfInnerList) must contain the string "`unencoded-digest`" with an
5
+ `sf` parameter:
6
+
7
+ For example:
8
+
9
+ ```
10
+ Signature-Input: signature=("unencoded-digest";sf);keyid="JrQLj5P/89iXES9+vFgrIy29clF9CC/oPPsw3c5D0bs=";tag="sri"
11
+ ```
@@ -0,0 +1,11 @@
1
+ # A `signature-input` header has a member whose value isn’t an Inner List
2
+
3
+ The value of each member of a [`signature-input`](signatureInputHeader) header’s
4
+ [Dictionary][sfDictionary] must be an [Inner List](sfInnerList) containing the
5
+ set of components over which a signature is generated.
6
+
7
+ For example:
8
+
9
+ ```
10
+ Signature-Input: signature=("unencoded-digest";sf);keyid="JrQLj5P/89iXES9+vFgrIy29clF9CC/oPPsw3c5D0bs=";tag="sri"
11
+ ```
@@ -0,0 +1,10 @@
1
+ # Integrity verification failed
2
+
3
+ The signature associated with a response could be successfully verified, but the
4
+ public keys asserted in the [`signature-input`](signatureInputHeader)
5
+ header’s [`keyid` parameter](signatureParameters) don’t match the integrity
6
+ assertions made by the request’s initiator. Verification failed.
7
+
8
+ The following are the keys specified by the request’s initiator:
9
+
10
+ {PLACEHOLDER_integrityAssertions}
@@ -0,0 +1,5 @@
1
+ # Signature verification failed: the signature provided isn’t an Ed25519 signature
2
+
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
+ Ed25519 signature.
@@ -0,0 +1,6 @@
1
+ # Signature verification failed: the signature is expired
2
+
3
+ The [`expires` parameter](signatureParameters) specified in a
4
+ [`signature-input`](signatureInputHeader) header is a UNIX timestamp
5
+ representing a time in the past. The signature has therefore expired, and
6
+ verification isn’t possible.
@@ -0,0 +1,11 @@
1
+ # Signature verification failed
2
+
3
+ The public key specified in the [`signature-input`](signatureInputHeader)
4
+ header’s [`keyid` parameter](signatureParameters) doesn’t match the signature
5
+ specified in the [`signature`](signatureHeader) header. Verification failed.
6
+
7
+ The following is the signature base over which the verification attempt was made:
8
+
9
+ ```
10
+ {PLACEHOLDER_signatureBase}
11
+ ```
@@ -0,0 +1,4 @@
1
+ # Define @import rules at the top of the stylesheet
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,
4
+ before any style declaration and any other at-rule with the exception of @charset and @layer.
@@ -0,0 +1,3 @@
1
+ # Verify stylesheet URLs
2
+
3
+ This page failed to load a stylesheet from a URL.
@@ -0,0 +1,3 @@
1
+ # Interactive element inside of a <summary> element
2
+
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.
@@ -0,0 +1,12 @@
1
+ # An `unencoded-digest` header contains a digest with an incorrect length
2
+
3
+ [`unencoded-digest`](unencodedDigestHeader) headers contain SHA2 digests of a
4
+ response’s body. The digest delivered with this response isn’t the correct
5
+ length for the algorithm specified. SHA-256 digests should be 256 bits long,
6
+ SHA-512 digests 512 bits long. For example, if the body was "Hello, world.", the
7
+ following might be an appropriate header:
8
+
9
+ ```
10
+ Unencoded-Digest: sha-256=:+MO/YqmqPm/BYZwlDkir51GTc9Pt9BvmLrXcRRma8u8=:,
11
+ sha-512=:S7LmUoguRQsq3IHIZ0Xhm5jjCDqH6uUQbumuj5CnrIFDk+RyBW/dWuqzEiV4mPaB:
12
+ ```
@@ -0,0 +1,17 @@
1
+ # An `unencoded-digest` header contains a digest with an invalid type
2
+
3
+ [`unencoded-digest`](unencodedDigestHeader) headers must be formatted as a
4
+ [Dictionary](sfDictionary), wherein each member’s label specifies the hashing
5
+ algorithm, and the value is a [Byte Sequence](sfByteSequence) containing the
6
+ digest. The digest delivered with this response did not deliver the digest as a
7
+ Byte Sequence.
8
+
9
+ For example, if the body was "Hello, world.":
10
+
11
+ ```
12
+ // Correctly formatted header:
13
+ Unencoded-Digest: sha-256=:+MO/YqmqPm/BYZwlDkir51GTc9Pt9BvmLrXcRRma8u8=:
14
+
15
+ // Incorrectly formatted header (quotes rather than colons):
16
+ Unencoded-Digest: sha-256="+MO/YqmqPm/BYZwlDkir51GTc9Pt9BvmLrXcRRma8u8="
17
+ ```
@@ -0,0 +1,14 @@
1
+ # An `unencoded-digest` header can’t be parsed
2
+
3
+ [`unencoded-digest`](unencodedDigestHeader) headers must be formatted as a
4
+ [Dictionary](sfDictionary), wherein each member’s label specifies the hashing
5
+ algorithm, and the value is a [Byte Sequence](sfByteSequence) containing the
6
+ digest. The digest delivered with this response did not format the response
7
+ correctly.
8
+
9
+ For example, if the body was "Hello, world.", the following would be a correctly
10
+ formatted header:
11
+
12
+ ```
13
+ Unencoded-Digest: sha-256=:+MO/YqmqPm/BYZwlDkir51GTc9Pt9BvmLrXcRRma8u8=:
14
+ ```
@@ -0,0 +1,15 @@
1
+ # An `unencoded-digest` header contains a digest with an invalid algorithm
2
+
3
+ [`unencoded-digest`](unencodedDigestHeader) headers support only two hashing
4
+ algorithms, SHA-256, and SHA-512. The digests delivered with this response
5
+ specified an unsupported algorithm:
6
+
7
+ For example, if the body was "Hello, world.", the following would be an
8
+ appropriate header:
9
+
10
+ ```
11
+ Unencoded-Digest: sha-256=:+MO/YqmqPm/BYZwlDkir51GTc9Pt9BvmLrXcRRma8u8=:,
12
+ sha-512=:S7LmUoguRQsq3IHIZ0Xhm5jjCDqH6uUQbumuj5CnrIFDk+RyBW/dWuqzEiV4mPaB:
13
+ ```
14
+
15
+ Note also that the labels must be lower-case.
@@ -0,0 +1,3 @@
1
+ # Manifest does not contain an `id` field
2
+
3
+ Add an `id` to the manifest. Alternatively, for installs using an explicit manifest URL, provide the computed manifest ID as `manifestId` alongside the manifest URL.
@@ -0,0 +1,3 @@
1
+ # Manifest does not contain a 'name' or 'short_name' field
2
+
3
+ Add a `name` or `short_name` field to the manifest.
@@ -0,0 +1,3 @@
1
+ # Manifest could not be fetched, is empty, or could not be parsed
2
+
3
+ Check that the web app manifest can be fetched and that it contains valid, non-empty JSON.
@@ -0,0 +1,3 @@
1
+ # No manifest detected
2
+
3
+ Provide a web app manifest for this page.
@@ -0,0 +1,3 @@
1
+ # Manifest 'start_url' is not valid
2
+
3
+ Provide a valid `start_url` in the manifest.