@nimbus21.ai/chrome-devtools-mcp 0.6.3 → 0.12.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 (621) hide show
  1. package/README.md +311 -26
  2. package/build/src/DevToolsConnectionAdapter.js +69 -0
  3. package/build/src/DevtoolsUtils.js +208 -0
  4. package/build/src/McpContext.js +247 -50
  5. package/build/src/McpResponse.js +211 -48
  6. package/build/src/PageCollector.js +247 -33
  7. package/build/src/WaitForHelper.js +5 -0
  8. package/build/src/browser.js +97 -33
  9. package/build/src/cli.js +139 -16
  10. package/build/src/formatters/consoleFormatter.js +108 -60
  11. package/build/src/formatters/networkFormatter.js +45 -2
  12. package/build/src/formatters/snapshotFormatter.js +57 -59
  13. package/build/src/issue-descriptions.js +39 -0
  14. package/build/src/logger.js +1 -1
  15. package/build/src/main.js +68 -68
  16. package/build/src/polyfill.js +2 -2
  17. package/build/src/third_party/THIRD_PARTY_NOTICES +2010 -0
  18. package/build/src/third_party/devtools.js +6 -0
  19. package/build/src/third_party/index.js +171065 -0
  20. package/build/src/third_party/issue-descriptions/CoepCoopSandboxedIframeCannotNavigateToCoopPage.md +4 -0
  21. package/build/src/third_party/issue-descriptions/CoepCorpNotSameOrigin.md +8 -0
  22. package/build/src/third_party/issue-descriptions/CoepCorpNotSameOriginAfterDefaultedToSameOriginByCoep.md +18 -0
  23. package/build/src/third_party/issue-descriptions/CoepCorpNotSameSite.md +7 -0
  24. package/build/src/third_party/issue-descriptions/CoepFrameResourceNeedsCoepHeader.md +10 -0
  25. package/build/src/third_party/issue-descriptions/CompatibilityModeQuirks.md +5 -0
  26. package/build/src/third_party/issue-descriptions/CookieAttributeValueExceedsMaxSize.md +5 -0
  27. package/build/src/third_party/issue-descriptions/LowTextContrast.md +5 -0
  28. package/build/src/third_party/issue-descriptions/SameSiteExcludeContextDowngradeRead.md +8 -0
  29. package/build/src/third_party/issue-descriptions/SameSiteExcludeContextDowngradeSet.md +8 -0
  30. package/build/src/third_party/issue-descriptions/SameSiteExcludeNavigationContextDowngrade.md +8 -0
  31. package/build/src/third_party/issue-descriptions/SameSiteInvalidSameParty.md +8 -0
  32. package/build/src/third_party/issue-descriptions/SameSiteNoneInsecureErrorRead.md +8 -0
  33. package/build/src/third_party/issue-descriptions/SameSiteNoneInsecureErrorSet.md +8 -0
  34. package/build/src/third_party/issue-descriptions/SameSiteNoneInsecureWarnRead.md +8 -0
  35. package/build/src/third_party/issue-descriptions/SameSiteNoneInsecureWarnSet.md +8 -0
  36. package/build/src/third_party/issue-descriptions/SameSiteSamePartyCrossPartyContextSet.md +10 -0
  37. package/build/src/third_party/issue-descriptions/SameSiteUnspecifiedLaxAllowUnsafeRead.md +9 -0
  38. package/build/src/third_party/issue-descriptions/SameSiteUnspecifiedLaxAllowUnsafeSet.md +9 -0
  39. package/build/src/third_party/issue-descriptions/SameSiteWarnCrossDowngradeRead.md +8 -0
  40. package/build/src/third_party/issue-descriptions/SameSiteWarnCrossDowngradeSet.md +8 -0
  41. package/build/src/third_party/issue-descriptions/SameSiteWarnStrictLaxDowngradeStrict.md +8 -0
  42. package/build/src/third_party/issue-descriptions/arInsecureContext.md +7 -0
  43. package/build/src/third_party/issue-descriptions/arInvalidInfoHeader.md +5 -0
  44. package/build/src/third_party/issue-descriptions/arInvalidRegisterOsSourceHeader.md +5 -0
  45. package/build/src/third_party/issue-descriptions/arInvalidRegisterOsTriggerHeader.md +5 -0
  46. package/build/src/third_party/issue-descriptions/arInvalidRegisterSourceHeader.md +5 -0
  47. package/build/src/third_party/issue-descriptions/arInvalidRegisterTriggerHeader.md +5 -0
  48. package/build/src/third_party/issue-descriptions/arNavigationRegistrationUniqueScopeAlreadySet.md +5 -0
  49. package/build/src/third_party/issue-descriptions/arNavigationRegistrationWithoutTransientUserActivation.md +6 -0
  50. package/build/src/third_party/issue-descriptions/arNoRegisterOsSourceHeader.md +5 -0
  51. package/build/src/third_party/issue-descriptions/arNoRegisterOsTriggerHeader.md +5 -0
  52. package/build/src/third_party/issue-descriptions/arNoRegisterSourceHeader.md +5 -0
  53. package/build/src/third_party/issue-descriptions/arNoRegisterTriggerHeader.md +5 -0
  54. package/build/src/third_party/issue-descriptions/arNoWebOrOsSupport.md +4 -0
  55. package/build/src/third_party/issue-descriptions/arOsSourceIgnored.md +18 -0
  56. package/build/src/third_party/issue-descriptions/arOsTriggerIgnored.md +19 -0
  57. package/build/src/third_party/issue-descriptions/arPermissionPolicyDisabled.md +8 -0
  58. package/build/src/third_party/issue-descriptions/arSourceAndTriggerHeaders.md +9 -0
  59. package/build/src/third_party/issue-descriptions/arSourceIgnored.md +13 -0
  60. package/build/src/third_party/issue-descriptions/arTriggerIgnored.md +12 -0
  61. package/build/src/third_party/issue-descriptions/arUntrustworthyReportingOrigin.md +10 -0
  62. package/build/src/third_party/issue-descriptions/arWebAndOsHeaders.md +11 -0
  63. package/build/src/third_party/issue-descriptions/bounceTrackingMitigations.md +3 -0
  64. package/build/src/third_party/issue-descriptions/clientHintMetaTagAllowListInvalidOrigin.md +4 -0
  65. package/build/src/third_party/issue-descriptions/clientHintMetaTagModifiedHTML.md +4 -0
  66. package/build/src/third_party/issue-descriptions/cookieCrossSiteRedirectDowngrade.md +12 -0
  67. package/build/src/third_party/issue-descriptions/cookieExcludeBlockedWithinRelatedWebsiteSet.md +4 -0
  68. package/build/src/third_party/issue-descriptions/cookieExcludeDomainNonAscii.md +11 -0
  69. package/build/src/third_party/issue-descriptions/cookieExcludePortMismatch.md +8 -0
  70. package/build/src/third_party/issue-descriptions/cookieExcludeSchemeMismatch.md +7 -0
  71. package/build/src/third_party/issue-descriptions/cookieExcludeThirdPartyPhaseoutRead.md +6 -0
  72. package/build/src/third_party/issue-descriptions/cookieExcludeThirdPartyPhaseoutSet.md +6 -0
  73. package/build/src/third_party/issue-descriptions/cookieWarnDomainNonAscii.md +11 -0
  74. package/build/src/third_party/issue-descriptions/cookieWarnMetadataGrantRead.md +4 -0
  75. package/build/src/third_party/issue-descriptions/cookieWarnMetadataGrantSet.md +4 -0
  76. package/build/src/third_party/issue-descriptions/cookieWarnThirdPartyPhaseoutRead.md +6 -0
  77. package/build/src/third_party/issue-descriptions/cookieWarnThirdPartyPhaseoutSet.md +6 -0
  78. package/build/src/third_party/issue-descriptions/corsAllowCredentialsRequired.md +6 -0
  79. package/build/src/third_party/issue-descriptions/corsDisabledScheme.md +7 -0
  80. package/build/src/third_party/issue-descriptions/corsDisallowedByMode.md +7 -0
  81. package/build/src/third_party/issue-descriptions/corsHeaderDisallowedByPreflightResponse.md +5 -0
  82. package/build/src/third_party/issue-descriptions/corsInsecurePrivateNetwork.md +10 -0
  83. package/build/src/third_party/issue-descriptions/corsInvalidHeaderValues.md +7 -0
  84. package/build/src/third_party/issue-descriptions/corsLocalNetworkAccessPermissionDenied.md +19 -0
  85. package/build/src/third_party/issue-descriptions/corsMethodDisallowedByPreflightResponse.md +5 -0
  86. package/build/src/third_party/issue-descriptions/corsNoCorsRedirectModeNotFollow.md +5 -0
  87. package/build/src/third_party/issue-descriptions/corsOriginMismatch.md +6 -0
  88. package/build/src/third_party/issue-descriptions/corsPreflightAllowPrivateNetworkError.md +10 -0
  89. package/build/src/third_party/issue-descriptions/corsPreflightResponseInvalid.md +5 -0
  90. package/build/src/third_party/issue-descriptions/corsPrivateNetworkPermissionDenied.md +10 -0
  91. package/build/src/third_party/issue-descriptions/corsRedirectContainsCredentials.md +5 -0
  92. package/build/src/third_party/issue-descriptions/corsWildcardOriginNotAllowed.md +8 -0
  93. package/build/src/third_party/issue-descriptions/cspEvalViolation.md +9 -0
  94. package/build/src/third_party/issue-descriptions/cspInlineViolation.md +10 -0
  95. package/build/src/third_party/issue-descriptions/cspTrustedTypesPolicyViolation.md +5 -0
  96. package/build/src/third_party/issue-descriptions/cspTrustedTypesSinkViolation.md +8 -0
  97. package/build/src/third_party/issue-descriptions/cspURLViolation.md +10 -0
  98. package/build/src/third_party/issue-descriptions/deprecation.md +3 -0
  99. package/build/src/third_party/issue-descriptions/federatedAuthRequestAccountsHttpNotFound.md +1 -0
  100. package/build/src/third_party/issue-descriptions/federatedAuthRequestAccountsInvalidResponse.md +1 -0
  101. package/build/src/third_party/issue-descriptions/federatedAuthRequestAccountsNoResponse.md +1 -0
  102. package/build/src/third_party/issue-descriptions/federatedAuthRequestApprovalDeclined.md +1 -0
  103. package/build/src/third_party/issue-descriptions/federatedAuthRequestCanceled.md +1 -0
  104. package/build/src/third_party/issue-descriptions/federatedAuthRequestClientMetadataHttpNotFound.md +1 -0
  105. package/build/src/third_party/issue-descriptions/federatedAuthRequestClientMetadataInvalidResponse.md +1 -0
  106. package/build/src/third_party/issue-descriptions/federatedAuthRequestClientMetadataNoResponse.md +1 -0
  107. package/build/src/third_party/issue-descriptions/federatedAuthRequestErrorFetchingSignin.md +1 -0
  108. package/build/src/third_party/issue-descriptions/federatedAuthRequestErrorIdToken.md +1 -0
  109. package/build/src/third_party/issue-descriptions/federatedAuthRequestIdTokenHttpNotFound.md +1 -0
  110. package/build/src/third_party/issue-descriptions/federatedAuthRequestIdTokenInvalidRequest.md +1 -0
  111. package/build/src/third_party/issue-descriptions/federatedAuthRequestIdTokenInvalidResponse.md +1 -0
  112. package/build/src/third_party/issue-descriptions/federatedAuthRequestIdTokenNoResponse.md +1 -0
  113. package/build/src/third_party/issue-descriptions/federatedAuthRequestInvalidSigninResponse.md +1 -0
  114. package/build/src/third_party/issue-descriptions/federatedAuthRequestManifestHttpNotFound.md +1 -0
  115. package/build/src/third_party/issue-descriptions/federatedAuthRequestManifestInvalidResponse.md +1 -0
  116. package/build/src/third_party/issue-descriptions/federatedAuthRequestManifestNoResponse.md +1 -0
  117. package/build/src/third_party/issue-descriptions/federatedAuthRequestTooManyRequests.md +1 -0
  118. package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestInvalidAccountsResponse.md +1 -0
  119. package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestInvalidConfigOrWellKnown.md +1 -0
  120. package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestNoAccountSharingPermission.md +1 -0
  121. package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestNoApiPermission.md +1 -0
  122. package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestNoReturningUserFromFetchedAccounts.md +1 -0
  123. package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestNotIframe.md +1 -0
  124. package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestNotPotentiallyTrustworthy.md +1 -0
  125. package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestNotSameOrigin.md +1 -0
  126. package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestNotSignedInWithIdp.md +1 -0
  127. package/build/src/third_party/issue-descriptions/fetchingPartitionedBlobURL.md +7 -0
  128. package/build/src/third_party/issue-descriptions/genericFormAriaLabelledByToNonExistingIdError.md +8 -0
  129. package/build/src/third_party/issue-descriptions/genericFormAutocompleteAttributeEmptyError.md +5 -0
  130. package/build/src/third_party/issue-descriptions/genericFormDuplicateIdForInputError.md +5 -0
  131. package/build/src/third_party/issue-descriptions/genericFormEmptyIdAndNameAttributesForInputError.md +5 -0
  132. package/build/src/third_party/issue-descriptions/genericFormInputAssignedAutocompleteValueToIdOrNameAttributeError.md +5 -0
  133. package/build/src/third_party/issue-descriptions/genericFormInputHasWrongButWellIntendedAutocompleteValueError.md +5 -0
  134. package/build/src/third_party/issue-descriptions/genericFormInputWithNoLabelError.md +5 -0
  135. package/build/src/third_party/issue-descriptions/genericFormLabelForMatchesNonExistingIdError.md +5 -0
  136. package/build/src/third_party/issue-descriptions/genericFormLabelForNameError.md +5 -0
  137. package/build/src/third_party/issue-descriptions/genericFormLabelHasNeitherForNorNestedInputError.md +5 -0
  138. package/build/src/third_party/issue-descriptions/genericNavigationEntryMarkedSkippable.md +7 -0
  139. package/build/src/third_party/issue-descriptions/genericResponseWasBlockedByORB.md +4 -0
  140. package/build/src/third_party/issue-descriptions/heavyAd.md +10 -0
  141. package/build/src/third_party/issue-descriptions/mixedContent.md +5 -0
  142. package/build/src/third_party/issue-descriptions/navigatingPartitionedBlobURL.md +5 -0
  143. package/build/src/third_party/issue-descriptions/permissionElementActivationDisabled.md +7 -0
  144. package/build/src/third_party/issue-descriptions/permissionElementActivationDisabledWithOccluder.md +9 -0
  145. package/build/src/third_party/issue-descriptions/permissionElementActivationDisabledWithOccluderParent.md +9 -0
  146. package/build/src/third_party/issue-descriptions/permissionElementCspFrameAncestorsMissing.md +5 -0
  147. package/build/src/third_party/issue-descriptions/permissionElementFencedFrameDisallowed.md +5 -0
  148. package/build/src/third_party/issue-descriptions/permissionElementFontSizeTooLarge.md +5 -0
  149. package/build/src/third_party/issue-descriptions/permissionElementFontSizeTooSmall.md +5 -0
  150. package/build/src/third_party/issue-descriptions/permissionElementGeolocationDeprecated.md +5 -0
  151. package/build/src/third_party/issue-descriptions/permissionElementInsetBoxShadowUnsupported.md +5 -0
  152. package/build/src/third_party/issue-descriptions/permissionElementInvalidDisplayStyle.md +5 -0
  153. package/build/src/third_party/issue-descriptions/permissionElementInvalidSizeValue.md +5 -0
  154. package/build/src/third_party/issue-descriptions/permissionElementInvalidType.md +5 -0
  155. package/build/src/third_party/issue-descriptions/permissionElementInvalidTypeActivation.md +5 -0
  156. package/build/src/third_party/issue-descriptions/permissionElementLowContrast.md +5 -0
  157. package/build/src/third_party/issue-descriptions/permissionElementNonOpaqueColor.md +5 -0
  158. package/build/src/third_party/issue-descriptions/permissionElementPaddingBottomUnsupported.md +6 -0
  159. package/build/src/third_party/issue-descriptions/permissionElementPaddingRightUnsupported.md +6 -0
  160. package/build/src/third_party/issue-descriptions/permissionElementPermissionsPolicyBlocked.md +5 -0
  161. package/build/src/third_party/issue-descriptions/permissionElementRegistrationFailed.md +5 -0
  162. package/build/src/third_party/issue-descriptions/permissionElementRequestInProgress.md +5 -0
  163. package/build/src/third_party/issue-descriptions/permissionElementSecurityChecksFailed.md +5 -0
  164. package/build/src/third_party/issue-descriptions/permissionElementTypeNotSupported.md +5 -0
  165. package/build/src/third_party/issue-descriptions/permissionElementUntrustedEvent.md +7 -0
  166. package/build/src/third_party/issue-descriptions/placeholderDescriptionForInvisibleIssues.md +3 -0
  167. package/build/src/third_party/issue-descriptions/propertyRuleInvalidNameIssue.md +3 -0
  168. package/build/src/third_party/issue-descriptions/propertyRuleIssue.md +7 -0
  169. package/build/src/third_party/issue-descriptions/selectElementAccessibilityDisallowedOptGroupChild.md +7 -0
  170. package/build/src/third_party/issue-descriptions/selectElementAccessibilityDisallowedSelectChild.md +7 -0
  171. package/build/src/third_party/issue-descriptions/selectElementAccessibilityInteractiveContentAttributesSelectDescendant.md +3 -0
  172. package/build/src/third_party/issue-descriptions/selectElementAccessibilityInteractiveContentLegendChild.md +3 -0
  173. package/build/src/third_party/issue-descriptions/selectElementAccessibilityInteractiveContentOptionChild.md +3 -0
  174. package/build/src/third_party/issue-descriptions/selectElementAccessibilityNonPhrasingContentOptionChild.md +3 -0
  175. package/build/src/third_party/issue-descriptions/sharedArrayBuffer.md +7 -0
  176. package/build/src/third_party/issue-descriptions/sharedDictionaryUseErrorCrossOriginNoCorsRequest.md +1 -0
  177. package/build/src/third_party/issue-descriptions/sharedDictionaryUseErrorDictionaryLoadFailure.md +3 -0
  178. package/build/src/third_party/issue-descriptions/sharedDictionaryUseErrorMatchingDictionaryNotUsed.md +3 -0
  179. package/build/src/third_party/issue-descriptions/sharedDictionaryUseErrorUnexpectedContentDictionaryHeader.md +1 -0
  180. package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorCossOriginNoCorsRequest.md +1 -0
  181. package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorDisallowedBySettings.md +1 -0
  182. package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorExpiredResponse.md +3 -0
  183. package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorFeatureDisabled.md +3 -0
  184. package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorInsufficientResources.md +1 -0
  185. package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorInvalidMatchField.md +1 -0
  186. package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorInvalidStructuredHeader.md +1 -0
  187. package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorInvalidTTLField.md +1 -0
  188. package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorNavigationRequest.md +3 -0
  189. package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorNoMatchField.md +1 -0
  190. package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorNonIntegerTTLField.md +1 -0
  191. package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorNonListMatchDestField.md +1 -0
  192. package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorNonSecureContext.md +3 -0
  193. package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorNonStringIdField.md +1 -0
  194. package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorNonStringInMatchDestList.md +1 -0
  195. package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorNonStringMatchField.md +1 -0
  196. package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorNonTokenTypeField.md +1 -0
  197. package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorRequestAborted.md +1 -0
  198. package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorShuttingDown.md +1 -0
  199. package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorTooLongIdField.md +3 -0
  200. package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorUnsupportedType.md +3 -0
  201. package/build/src/third_party/issue-descriptions/sriInvalidSignatureHeader.md +14 -0
  202. package/build/src/third_party/issue-descriptions/sriInvalidSignatureInputHeader.md +15 -0
  203. package/build/src/third_party/issue-descriptions/sriMissingSignatureHeader.md +8 -0
  204. package/build/src/third_party/issue-descriptions/sriMissingSignatureInputHeader.md +7 -0
  205. package/build/src/third_party/issue-descriptions/sriSignatureHeaderValueIsIncorrectLength.md +11 -0
  206. package/build/src/third_party/issue-descriptions/sriSignatureHeaderValueIsNotByteSequence.md +14 -0
  207. package/build/src/third_party/issue-descriptions/sriSignatureHeaderValueIsParameterized.md +15 -0
  208. package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderInvalidComponentName.md +8 -0
  209. package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderInvalidComponentType.md +13 -0
  210. package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderInvalidDerivedComponentParameter.md +4 -0
  211. package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderInvalidHeaderComponentParameter.md +5 -0
  212. package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderInvalidParameter.md +11 -0
  213. package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderKeyIdLength.md +12 -0
  214. package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderMissingLabel.md +6 -0
  215. package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderMissingRequiredParameters.md +8 -0
  216. package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderValueMissingComponents.md +11 -0
  217. package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderValueNotInnerList.md +11 -0
  218. package/build/src/third_party/issue-descriptions/sriValidationFailedIntegrityMismatch.md +10 -0
  219. package/build/src/third_party/issue-descriptions/sriValidationFailedInvalidLength.md +5 -0
  220. package/build/src/third_party/issue-descriptions/sriValidationFailedSignatureExpired.md +6 -0
  221. package/build/src/third_party/issue-descriptions/sriValidationFailedSignatureMismatch.md +11 -0
  222. package/build/src/third_party/issue-descriptions/stylesheetLateImport.md +4 -0
  223. package/build/src/third_party/issue-descriptions/stylesheetRequestFailed.md +3 -0
  224. package/build/src/third_party/issue-descriptions/summaryElementAccessibilityInteractiveContentSummaryDescendant.md +3 -0
  225. package/build/src/third_party/issue-descriptions/unencodedDigestIncorrectDigestLength.md +12 -0
  226. package/build/src/third_party/issue-descriptions/unencodedDigestIncorrectDigestType.md +17 -0
  227. package/build/src/third_party/issue-descriptions/unencodedDigestMalformedDictionary.md +14 -0
  228. package/build/src/third_party/issue-descriptions/unencodedDigestUnknownAlgorithm.md +15 -0
  229. package/build/src/tools/ToolDefinition.js +2 -2
  230. package/build/src/tools/categories.js +17 -9
  231. package/build/src/tools/console.js +73 -7
  232. package/build/src/tools/emulation.js +64 -38
  233. package/build/src/tools/input.js +113 -46
  234. package/build/src/tools/network.js +44 -14
  235. package/build/src/tools/pages.js +84 -52
  236. package/build/src/tools/performance.js +14 -12
  237. package/build/src/tools/screenshot.js +14 -11
  238. package/build/src/tools/script.js +29 -15
  239. package/build/src/tools/snapshot.js +27 -23
  240. package/build/src/tools/tools.js +29 -0
  241. package/build/src/trace-processing/parse.js +17 -26
  242. package/build/src/utils/keyboard.js +296 -0
  243. package/build/src/utils/types.js +6 -0
  244. package/package.json +34 -25
  245. package/build/node_modules/chrome-devtools-frontend/LICENSE +0 -27
  246. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/App.js +0 -4
  247. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/AppProvider.js +0 -17
  248. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Base64.js +0 -43
  249. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/CharacterIdMap.js +0 -27
  250. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Color.js +0 -2029
  251. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/ColorConverter.js +0 -330
  252. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/ColorUtils.js +0 -221
  253. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Console.js +0 -86
  254. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Debouncer.js +0 -14
  255. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/EventTarget.js +0 -14
  256. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Gzip.js +0 -64
  257. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/JavaScriptMetaData.js +0 -4
  258. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Lazy.js +0 -29
  259. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Linkifier.js +0 -34
  260. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/MapWithDefault.js +0 -20
  261. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Mutex.js +0 -49
  262. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Object.js +0 -86
  263. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/ParsedURL.js +0 -459
  264. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Progress.js +0 -144
  265. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/QueryParamHandler.js +0 -4
  266. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/ResolverBase.js +0 -69
  267. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/ResourceType.js +0 -506
  268. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/ReturnToPanel.js +0 -13
  269. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Revealer.js +0 -159
  270. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Runnable.js +0 -24
  271. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/SegmentedRange.js +0 -79
  272. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/SettingRegistration.js +0 -164
  273. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Settings.js +0 -1252
  274. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/SimpleHistoryManager.js +0 -97
  275. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/StringOutputStream.js +0 -17
  276. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/TextDictionary.js +0 -40
  277. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Throttler.js +0 -71
  278. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Trie.js +0 -127
  279. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Worker.js +0 -44
  280. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/common.js +0 -44
  281. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/AidaClient.js +0 -415
  282. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/GdpClient.js +0 -186
  283. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/InspectorFrontendHost.js +0 -513
  284. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/InspectorFrontendHostAPI.js +0 -66
  285. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/Platform.js +0 -59
  286. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/ResourceLoader.js +0 -232
  287. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/UserMetrics.js +0 -957
  288. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/host.js +0 -12
  289. package/build/node_modules/chrome-devtools-frontend/front_end/core/i18n/i18n.js +0 -60
  290. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/ArrayUtilities.js +0 -199
  291. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/Brand.js +0 -4
  292. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/Constructor.js +0 -4
  293. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/DOMUtilities.js +0 -122
  294. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/DateUtilities.js +0 -13
  295. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/DevToolsPath.js +0 -27
  296. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/KeyboardUtilities.js +0 -21
  297. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/MapUtilities.js +0 -79
  298. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/MimeType.js +0 -143
  299. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/NumberUtilities.js +0 -72
  300. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/StringUtilities.js +0 -536
  301. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/Timing.js +0 -9
  302. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/TypedArrayUtilities.js +0 -157
  303. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/TypescriptUtilities.js +0 -24
  304. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/UIString.js +0 -4
  305. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/UserVisibleError.js +0 -22
  306. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/platform.js +0 -26
  307. package/build/node_modules/chrome-devtools-frontend/front_end/core/protocol_client/InspectorBackend.js +0 -802
  308. package/build/node_modules/chrome-devtools-frontend/front_end/core/protocol_client/NodeURL.js +0 -31
  309. package/build/node_modules/chrome-devtools-frontend/front_end/core/protocol_client/protocol_client.js +0 -13
  310. package/build/node_modules/chrome-devtools-frontend/front_end/core/root/Runtime.js +0 -4
  311. package/build/node_modules/chrome-devtools-frontend/front_end/core/root/root.js +0 -5
  312. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/AccessibilityModel.js +0 -281
  313. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/AnimationModel.js +0 -846
  314. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/AutofillModel.js +0 -155
  315. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CPUProfilerModel.js +0 -99
  316. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CPUThrottlingManager.js +0 -220
  317. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSContainerQuery.js +0 -98
  318. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSFontFace.js +0 -31
  319. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSLayer.js +0 -22
  320. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSMatchedStyles.js +0 -1284
  321. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSMedia.js +0 -100
  322. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSMetadata.js +0 -1518
  323. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSModel.js +0 -908
  324. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSProperty.js +0 -315
  325. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSPropertyParser.js +0 -572
  326. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSPropertyParserMatchers.js +0 -1336
  327. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSQuery.js +0 -53
  328. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSRule.js +0 -365
  329. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSScope.js +0 -22
  330. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSStartingStyle.js +0 -21
  331. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSStyleDeclaration.js +0 -275
  332. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSStyleSheetHeader.js +0 -166
  333. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSSupports.js +0 -24
  334. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CategorizedBreakpoint.js +0 -29
  335. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ChildTargetManager.js +0 -232
  336. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CompilerSourceMappingContentProvider.js +0 -47
  337. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/Connections.js +0 -242
  338. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ConsoleModel.js +0 -629
  339. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ConsoleModelTypes.js +0 -14
  340. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/Cookie.js +0 -241
  341. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CookieModel.js +0 -198
  342. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CookieParser.js +0 -163
  343. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/DOMDebuggerModel.js +0 -597
  344. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/DOMModel.js +0 -1628
  345. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/DebuggerModel.js +0 -1231
  346. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/EmulationModel.js +0 -527
  347. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/EnhancedTracesParser.js +0 -350
  348. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/EventBreakpointsModel.js +0 -125
  349. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/FrameAssociated.js +0 -4
  350. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/FrameManager.js +0 -199
  351. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/HeapProfilerModel.js +0 -130
  352. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/HttpReasonPhraseStrings.js +0 -73
  353. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/IOModel.js +0 -83
  354. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/IsolateManager.js +0 -208
  355. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/IssuesModel.js +0 -41
  356. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/LayerTreeBase.js +0 -95
  357. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/LogModel.js +0 -34
  358. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/NetworkManager.js +0 -1916
  359. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/NetworkRequest.js +0 -1668
  360. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/OverlayColorGenerator.js +0 -48
  361. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/OverlayModel.js +0 -765
  362. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/OverlayPersistentHighlighter.js +0 -384
  363. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/PageLoad.js +0 -25
  364. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/PageResourceLoader.js +0 -300
  365. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/PaintProfiler.js +0 -67
  366. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/PerformanceMetricsModel.js +0 -62
  367. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/PreloadingModel.js +0 -563
  368. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/RehydratingConnection.js +0 -290
  369. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/RehydratingObject.js +0 -4
  370. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/RemoteObject.js +0 -905
  371. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/Resource.js +0 -163
  372. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ResourceTreeModel.js +0 -922
  373. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/RuntimeModel.js +0 -535
  374. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SDKModel.js +0 -45
  375. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ScreenCaptureModel.js +0 -174
  376. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/Script.js +0 -395
  377. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SecurityOriginManager.js +0 -54
  378. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ServerSentEvents.js +0 -67
  379. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ServerSentEventsProtocol.js +0 -110
  380. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ServerTiming.js +0 -216
  381. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ServiceWorkerCacheModel.js +0 -271
  382. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ServiceWorkerManager.js +0 -511
  383. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMap.js +0 -651
  384. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMapCache.js +0 -41
  385. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMapFunctionRanges.js +0 -132
  386. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMapManager.js +0 -189
  387. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMapScopeChainEntry.js +0 -156
  388. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMapScopesInfo.js +0 -276
  389. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/StorageBucketsModel.js +0 -143
  390. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/StorageKeyManager.js +0 -53
  391. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/Target.js +0 -262
  392. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/TargetManager.js +0 -386
  393. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/TraceObject.js +0 -52
  394. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/WebAuthnModel.js +0 -66
  395. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/sdk-meta.js +0 -1117
  396. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/sdk.js +0 -90
  397. package/build/node_modules/chrome-devtools-frontend/front_end/generated/ARIAProperties.js +0 -1513
  398. package/build/node_modules/chrome-devtools-frontend/front_end/generated/Deprecation.js +0 -339
  399. package/build/node_modules/chrome-devtools-frontend/front_end/generated/InspectorBackendCommands.js +0 -1562
  400. package/build/node_modules/chrome-devtools-frontend/front_end/generated/SupportedCSSProperties.js +0 -7514
  401. package/build/node_modules/chrome-devtools-frontend/front_end/generated/protocol.js +0 -4
  402. package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/data_formatters/NetworkRequestFormatter.js +0 -262
  403. package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.js +0 -979
  404. package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.js +0 -613
  405. package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/data_formatters/UnitFormatters.js +0 -139
  406. package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/performance/AICallTree.js +0 -372
  407. package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/performance/AIContext.js +0 -132
  408. package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/performance/AIQueries.js +0 -105
  409. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/CSSWorkspaceBinding.js +0 -243
  410. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/CompilerScriptMapping.js +0 -407
  411. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/ContentProviderBasedProject.js +0 -130
  412. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/DebuggerLanguagePlugins.js +0 -992
  413. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/DebuggerWorkspaceBinding.js +0 -574
  414. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/DefaultScriptMapping.js +0 -112
  415. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/FileUtils.js +0 -186
  416. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/LiveLocation.js +0 -60
  417. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/NetworkProject.js +0 -107
  418. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/PresentationConsoleMessageHelper.js +0 -244
  419. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/ResourceMapping.js +0 -473
  420. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/ResourceScriptMapping.js +0 -399
  421. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/ResourceUtils.js +0 -87
  422. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/SASSSourceMapping.js +0 -181
  423. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/StylesSourceMapping.js +0 -268
  424. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/TempFile.js +0 -55
  425. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/bindings.js +0 -20
  426. package/build/node_modules/chrome-devtools-frontend/front_end/models/cpu_profile/CPUProfileDataModel.js +0 -514
  427. package/build/node_modules/chrome-devtools-frontend/front_end/models/cpu_profile/ProfileTreeModel.js +0 -90
  428. package/build/node_modules/chrome-devtools-frontend/front_end/models/cpu_profile/cpu_profile.js +0 -6
  429. package/build/node_modules/chrome-devtools-frontend/front_end/models/crux-manager/CrUXManager.js +0 -283
  430. package/build/node_modules/chrome-devtools-frontend/front_end/models/crux-manager/crux-manager.js +0 -4
  431. package/build/node_modules/chrome-devtools-frontend/front_end/models/emulation/DeviceModeModel.js +0 -775
  432. package/build/node_modules/chrome-devtools-frontend/front_end/models/emulation/EmulatedDevices.js +0 -1706
  433. package/build/node_modules/chrome-devtools-frontend/front_end/models/emulation/emulation.js +0 -6
  434. package/build/node_modules/chrome-devtools-frontend/front_end/models/formatter/FormatterWorkerPool.js +0 -131
  435. package/build/node_modules/chrome-devtools-frontend/front_end/models/formatter/ScriptFormatter.js +0 -77
  436. package/build/node_modules/chrome-devtools-frontend/front_end/models/formatter/formatter.js +0 -6
  437. package/build/node_modules/chrome-devtools-frontend/front_end/models/geometry/GeometryImpl.js +0 -347
  438. package/build/node_modules/chrome-devtools-frontend/front_end/models/geometry/geometry.js +0 -4
  439. package/build/node_modules/chrome-devtools-frontend/front_end/models/logs/LogManager.js +0 -67
  440. package/build/node_modules/chrome-devtools-frontend/front_end/models/logs/NetworkLog.js +0 -494
  441. package/build/node_modules/chrome-devtools-frontend/front_end/models/logs/RequestResolver.js +0 -49
  442. package/build/node_modules/chrome-devtools-frontend/front_end/models/logs/logs-meta.js +0 -73
  443. package/build/node_modules/chrome-devtools-frontend/front_end/models/logs/logs.js +0 -7
  444. package/build/node_modules/chrome-devtools-frontend/front_end/models/network_time_calculator/Calculator.js +0 -4
  445. package/build/node_modules/chrome-devtools-frontend/front_end/models/network_time_calculator/NetworkTimeCalculator.js +0 -256
  446. package/build/node_modules/chrome-devtools-frontend/front_end/models/network_time_calculator/RequestTimeRanges.js +0 -120
  447. package/build/node_modules/chrome-devtools-frontend/front_end/models/network_time_calculator/network_time_calculator.js +0 -6
  448. package/build/node_modules/chrome-devtools-frontend/front_end/models/source_map_scopes/NamesResolver.js +0 -626
  449. package/build/node_modules/chrome-devtools-frontend/front_end/models/source_map_scopes/ScopeChainModel.js +0 -59
  450. package/build/node_modules/chrome-devtools-frontend/front_end/models/source_map_scopes/ScopeTreeCache.js +0 -32
  451. package/build/node_modules/chrome-devtools-frontend/front_end/models/source_map_scopes/source_map_scopes.js +0 -7
  452. package/build/node_modules/chrome-devtools-frontend/front_end/models/stack_trace/StackTrace.js +0 -4
  453. package/build/node_modules/chrome-devtools-frontend/front_end/models/stack_trace/StackTraceImpl.js +0 -67
  454. package/build/node_modules/chrome-devtools-frontend/front_end/models/stack_trace/StackTraceModel.js +0 -97
  455. package/build/node_modules/chrome-devtools-frontend/front_end/models/stack_trace/Trie.js +0 -113
  456. package/build/node_modules/chrome-devtools-frontend/front_end/models/stack_trace/stack_trace.js +0 -5
  457. package/build/node_modules/chrome-devtools-frontend/front_end/models/stack_trace/stack_trace_impl.js +0 -7
  458. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/CodeMirrorUtils.js +0 -32
  459. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/ContentData.js +0 -173
  460. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/ContentProvider.js +0 -30
  461. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/StaticContentProvider.js +0 -32
  462. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/StreamingContentData.js +0 -79
  463. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/Text.js +0 -69
  464. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/TextCursor.js +0 -35
  465. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/TextRange.js +0 -231
  466. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/TextUtils.js +0 -355
  467. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/WasmDisassembly.js +0 -68
  468. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/text_utils.js +0 -14
  469. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/EntityMapper.js +0 -122
  470. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/EventsSerializer.js +0 -81
  471. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/LanternComputationData.js +0 -370
  472. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/ModelImpl.js +0 -166
  473. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/Name.js +0 -114
  474. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/Processor.js +0 -555
  475. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/Styles.js +0 -815
  476. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/FilmStrip.js +0 -44
  477. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/MainThreadActivity.js +0 -76
  478. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/ScriptDuplication.js +0 -162
  479. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/StackTraceForEvent.js +0 -191
  480. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/ThirdParties.js +0 -118
  481. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/TraceFilter.js +0 -50
  482. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/TraceTree.js +0 -592
  483. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/extras.js +0 -10
  484. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/AnimationFramesHandler.js +0 -109
  485. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/AnimationHandler.js +0 -26
  486. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/AsyncJSCallsHandler.js +0 -187
  487. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/AuctionWorkletsHandler.js +0 -162
  488. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/DOMStatsHandler.js +0 -21
  489. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/ExtensionTraceDataHandler.js +0 -263
  490. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/FlowsHandler.js +0 -148
  491. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/FramesHandler.js +0 -483
  492. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/GPUHandler.js +0 -35
  493. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/ImagePaintingHandler.js +0 -147
  494. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/InitiatorsHandler.js +0 -180
  495. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/InvalidationsHandler.js +0 -126
  496. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/LargestImagePaintHandler.js +0 -85
  497. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/LargestTextPaintHandler.js +0 -27
  498. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/LayerTreeHandler.js +0 -103
  499. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/LayoutShiftsHandler.js +0 -445
  500. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/MemoryHandler.js +0 -21
  501. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/MetaHandler.js +0 -401
  502. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/ModelHandlers.js +0 -33
  503. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/NetworkRequestsHandler.js +0 -540
  504. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/PageFramesHandler.js +0 -42
  505. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/PageLoadMetricsHandler.js +0 -349
  506. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/RendererHandler.js +0 -346
  507. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/SamplesHandler.js +0 -207
  508. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/ScreenshotsHandler.js +0 -97
  509. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/ScriptsHandler.js +0 -252
  510. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/SelectorStatsHandler.js +0 -71
  511. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/Threads.js +0 -101
  512. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/UserInteractionsHandler.js +0 -317
  513. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/UserTimingsHandler.js +0 -183
  514. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/WarningsHandler.js +0 -134
  515. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/WorkersHandler.js +0 -33
  516. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/handlers.js +0 -7
  517. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/helpers.js +0 -163
  518. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/types.js +0 -1
  519. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/Extensions.js +0 -41
  520. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/Network.js +0 -102
  521. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/SamplesIntegrator.js +0 -495
  522. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/SyntheticEvents.js +0 -74
  523. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/Timing.js +0 -184
  524. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/Trace.js +0 -806
  525. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/TreeHelpers.js +0 -254
  526. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/helpers.js +0 -10
  527. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/CLSCulprits.js +0 -488
  528. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/Cache.js +0 -208
  529. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/Common.js +0 -340
  530. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/DOMSize.js +0 -180
  531. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/DocumentLatency.js +0 -257
  532. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/DuplicatedJavaScript.js +0 -89
  533. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/FontDisplay.js +0 -81
  534. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/ForcedReflow.js +0 -160
  535. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/INPBreakdown.js +0 -117
  536. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/ImageDelivery.js +0 -262
  537. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/LCPBreakdown.js +0 -188
  538. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/LCPDiscovery.js +0 -182
  539. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/LegacyJavaScript.js +0 -89
  540. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/Models.js +0 -21
  541. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/ModernHTTP.js +0 -199
  542. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/NetworkDependencyTree.js +0 -544
  543. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/RenderBlocking.js +0 -191
  544. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/SlowCSSSelector.js +0 -135
  545. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/Statistics.js +0 -92
  546. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/ThirdParties.js +0 -97
  547. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/Viewport.js +0 -101
  548. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/insights.js +0 -9
  549. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/types.js +0 -18
  550. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/core/LanternError.js +0 -6
  551. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/core/NetworkAnalyzer.js +0 -488
  552. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/core/core.js +0 -5
  553. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/graph/BaseNode.js +0 -276
  554. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/graph/CPUNode.js +0 -63
  555. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/graph/NetworkNode.js +0 -82
  556. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/graph/PageDependencyGraph.js +0 -551
  557. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/graph/graph.js +0 -7
  558. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/lantern.js +0 -9
  559. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/FirstContentfulPaint.js +0 -136
  560. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/Interactive.js +0 -67
  561. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/LargestContentfulPaint.js +0 -68
  562. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/MaxPotentialFID.js +0 -48
  563. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/Metric.js +0 -68
  564. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/SpeedIndex.js +0 -101
  565. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/TBTUtils.js +0 -64
  566. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/TotalBlockingTime.js +0 -78
  567. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/metrics.js +0 -11
  568. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/ConnectionPool.js +0 -115
  569. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/Constants.js +0 -42
  570. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/DNSCache.js +0 -47
  571. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/SimulationTimingMap.js +0 -134
  572. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/Simulator.js +0 -450
  573. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/TCPConnection.js +0 -154
  574. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/simulation.js +0 -9
  575. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/types/Lantern.js +0 -24
  576. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/types/types.js +0 -4
  577. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/trace.js +0 -17
  578. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/Configuration.js +0 -18
  579. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/Extensions.js +0 -37
  580. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/File.js +0 -57
  581. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/Overlays.js +0 -4
  582. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/Timing.js +0 -15
  583. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/TraceEvents.js +0 -574
  584. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/types.js +0 -9
  585. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace_source_maps_resolver/SourceMapsResolver.js +0 -201
  586. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace_source_maps_resolver/trace_source_maps_resolver.js +0 -4
  587. package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/FileManager.js +0 -64
  588. package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/IgnoreListManager.js +0 -511
  589. package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/SearchConfig.js +0 -113
  590. package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/UISourceCode.js +0 -563
  591. package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/WorkspaceImpl.js +0 -204
  592. package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/workspace.js +0 -9
  593. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/codemirror.next/codemirror.next.js +0 -1
  594. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/legacy-javascript/LICENSE +0 -202
  595. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/legacy-javascript/legacy-javascript.js +0 -2
  596. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/legacy-javascript/lib/legacy-javascript.js +0 -940
  597. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/LICENSE +0 -26
  598. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/builder/builder.js +0 -196
  599. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/builder/safe_builder.js +0 -226
  600. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/codec.js +0 -4
  601. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/decode/decode.js +0 -394
  602. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/encode/encode.js +0 -24
  603. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/encode/encoder.js +0 -283
  604. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/mod.js +0 -7
  605. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/util.js +0 -9
  606. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/vlq.js +0 -84
  607. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/source-map-scopes-codec.js +0 -4
  608. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/LICENSE +0 -20
  609. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/lib/nostats-subset.js +0 -146
  610. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/httparchive-nostats-subset.js +0 -2
  611. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/httparchive-subset.js +0 -2
  612. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/create-entity-finder-api.js +0 -118
  613. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/create-entity-finder-api.test.js +0 -40
  614. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/entities.test.js +0 -26
  615. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/index.js +0 -4
  616. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/index.test.js +0 -215
  617. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/subsets/httparchive-nostats.js +0 -4
  618. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/subsets/httparchive.js +0 -4
  619. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/subsets/nostats.js +0 -4
  620. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/nostats-subset.js +0 -2
  621. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/third-party-web.js +0 -2
@@ -1,1628 +0,0 @@
1
- // Copyright 2021 The Chromium Authors
2
- // Use of this source code is governed by a BSD-style license that can be
3
- // found in the LICENSE file.
4
- import * as Common from '../common/common.js';
5
- import * as Platform from '../platform/platform.js';
6
- import * as Root from '../root/root.js';
7
- import { CSSModel } from './CSSModel.js';
8
- import { FrameManager } from './FrameManager.js';
9
- import { OverlayModel } from './OverlayModel.js';
10
- import { RemoteObject } from './RemoteObject.js';
11
- import { ResourceTreeModel } from './ResourceTreeModel.js';
12
- import { RuntimeModel } from './RuntimeModel.js';
13
- import { SDKModel } from './SDKModel.js';
14
- import { TargetManager } from './TargetManager.js';
15
- // Keep this list in sync with https://w3c.github.io/aria/#state_prop_def
16
- export const ARIA_ATTRIBUTES = new Set([
17
- 'role',
18
- 'aria-activedescendant',
19
- 'aria-atomic',
20
- 'aria-autocomplete',
21
- 'aria-braillelabel',
22
- 'aria-brailleroledescription',
23
- 'aria-busy',
24
- 'aria-checked',
25
- 'aria-colcount',
26
- 'aria-colindex',
27
- 'aria-colindextext',
28
- 'aria-colspan',
29
- 'aria-controls',
30
- 'aria-current',
31
- 'aria-describedby',
32
- 'aria-description',
33
- 'aria-details',
34
- 'aria-disabled',
35
- 'aria-dropeffect',
36
- 'aria-errormessage',
37
- 'aria-expanded',
38
- 'aria-flowto',
39
- 'aria-grabbed',
40
- 'aria-haspopup',
41
- 'aria-hidden',
42
- 'aria-invalid',
43
- 'aria-keyshortcuts',
44
- 'aria-label',
45
- 'aria-labelledby',
46
- 'aria-level',
47
- 'aria-live',
48
- 'aria-modal',
49
- 'aria-multiline',
50
- 'aria-multiselectable',
51
- 'aria-orientation',
52
- 'aria-owns',
53
- 'aria-placeholder',
54
- 'aria-posinset',
55
- 'aria-pressed',
56
- 'aria-readonly',
57
- 'aria-relevant',
58
- 'aria-required',
59
- 'aria-roledescription',
60
- 'aria-rowcount',
61
- 'aria-rowindex',
62
- 'aria-rowindextext',
63
- 'aria-rowspan',
64
- 'aria-selected',
65
- 'aria-setsize',
66
- 'aria-sort',
67
- 'aria-valuemax',
68
- 'aria-valuemin',
69
- 'aria-valuenow',
70
- 'aria-valuetext',
71
- ]);
72
- export class DOMNode {
73
- #domModel;
74
- #agent;
75
- ownerDocument;
76
- #isInShadowTree;
77
- id;
78
- index = undefined;
79
- #backendNodeId;
80
- #nodeType;
81
- #nodeName;
82
- #localName;
83
- nodeValueInternal;
84
- #pseudoType;
85
- #pseudoIdentifier;
86
- #shadowRootType;
87
- #frameOwnerFrameId;
88
- #xmlVersion;
89
- #isSVGNode;
90
- #isScrollable;
91
- #affectedByStartingStyles;
92
- #creationStackTrace = null;
93
- #pseudoElements = new Map();
94
- #distributedNodes = [];
95
- assignedSlot = null;
96
- shadowRootsInternal = [];
97
- #attributes = new Map();
98
- #markers = new Map();
99
- #subtreeMarkerCount = 0;
100
- childNodeCountInternal;
101
- childrenInternal = null;
102
- nextSibling = null;
103
- previousSibling = null;
104
- firstChild = null;
105
- lastChild = null;
106
- parentNode = null;
107
- templateContentInternal;
108
- contentDocumentInternal;
109
- childDocumentPromiseForTesting;
110
- #importedDocument;
111
- publicId;
112
- systemId;
113
- internalSubset;
114
- name;
115
- value;
116
- /**
117
- * Set when a DOMNode is retained in a detached sub-tree.
118
- */
119
- retained = false;
120
- /**
121
- * Set if a DOMNode is a root of a detached sub-tree.
122
- */
123
- detached = false;
124
- #retainedNodes;
125
- constructor(domModel) {
126
- this.#domModel = domModel;
127
- this.#agent = this.#domModel.getAgent();
128
- }
129
- static create(domModel, doc, isInShadowTree, payload, retainedNodes) {
130
- const node = new DOMNode(domModel);
131
- node.init(doc, isInShadowTree, payload, retainedNodes);
132
- return node;
133
- }
134
- init(doc, isInShadowTree, payload, retainedNodes) {
135
- this.#agent = this.#domModel.getAgent();
136
- this.ownerDocument = doc;
137
- this.#isInShadowTree = isInShadowTree;
138
- this.id = payload.nodeId;
139
- this.#backendNodeId = payload.backendNodeId;
140
- this.#domModel.registerNode(this);
141
- this.#nodeType = payload.nodeType;
142
- this.#nodeName = payload.nodeName;
143
- this.#localName = payload.localName;
144
- this.nodeValueInternal = payload.nodeValue;
145
- this.#pseudoType = payload.pseudoType;
146
- this.#pseudoIdentifier = payload.pseudoIdentifier;
147
- this.#shadowRootType = payload.shadowRootType;
148
- this.#frameOwnerFrameId = payload.frameId || null;
149
- this.#xmlVersion = payload.xmlVersion;
150
- this.#isSVGNode = Boolean(payload.isSVG);
151
- this.#isScrollable = Boolean(payload.isScrollable);
152
- this.#affectedByStartingStyles = Boolean(payload.affectedByStartingStyles);
153
- this.#retainedNodes = retainedNodes;
154
- if (this.#retainedNodes?.has(this.backendNodeId())) {
155
- this.retained = true;
156
- }
157
- if (payload.attributes) {
158
- this.setAttributesPayload(payload.attributes);
159
- }
160
- this.childNodeCountInternal = payload.childNodeCount || 0;
161
- if (payload.shadowRoots) {
162
- for (let i = 0; i < payload.shadowRoots.length; ++i) {
163
- const root = payload.shadowRoots[i];
164
- const node = DOMNode.create(this.#domModel, this.ownerDocument, true, root, retainedNodes);
165
- this.shadowRootsInternal.push(node);
166
- node.parentNode = this;
167
- }
168
- }
169
- if (payload.templateContent) {
170
- this.templateContentInternal =
171
- DOMNode.create(this.#domModel, this.ownerDocument, true, payload.templateContent, retainedNodes);
172
- this.templateContentInternal.parentNode = this;
173
- this.childrenInternal = [];
174
- }
175
- const frameOwnerTags = new Set(['EMBED', 'IFRAME', 'OBJECT', 'FENCEDFRAME']);
176
- if (payload.contentDocument) {
177
- this.contentDocumentInternal = new DOMDocument(this.#domModel, payload.contentDocument);
178
- this.contentDocumentInternal.parentNode = this;
179
- this.childrenInternal = [];
180
- }
181
- else if (payload.frameId && frameOwnerTags.has(payload.nodeName)) {
182
- // At this point we know we are in an OOPIF, otherwise `payload.contentDocument` would have been set.
183
- this.childDocumentPromiseForTesting = this.requestChildDocument(payload.frameId, this.#domModel.target());
184
- this.childrenInternal = [];
185
- }
186
- if (payload.importedDocument) {
187
- this.#importedDocument =
188
- DOMNode.create(this.#domModel, this.ownerDocument, true, payload.importedDocument, retainedNodes);
189
- this.#importedDocument.parentNode = this;
190
- this.childrenInternal = [];
191
- }
192
- if (payload.distributedNodes) {
193
- this.setDistributedNodePayloads(payload.distributedNodes);
194
- }
195
- if (payload.assignedSlot) {
196
- this.setAssignedSlot(payload.assignedSlot);
197
- }
198
- if (payload.children) {
199
- this.setChildrenPayload(payload.children);
200
- }
201
- this.setPseudoElements(payload.pseudoElements);
202
- if (this.#nodeType === Node.ELEMENT_NODE) {
203
- // HTML and BODY from internal iframes should not overwrite top-level ones.
204
- if (this.ownerDocument && !this.ownerDocument.documentElement && this.#nodeName === 'HTML') {
205
- this.ownerDocument.documentElement = this;
206
- }
207
- if (this.ownerDocument && !this.ownerDocument.body && this.#nodeName === 'BODY') {
208
- this.ownerDocument.body = this;
209
- }
210
- }
211
- else if (this.#nodeType === Node.DOCUMENT_TYPE_NODE) {
212
- this.publicId = payload.publicId;
213
- this.systemId = payload.systemId;
214
- this.internalSubset = payload.internalSubset;
215
- }
216
- else if (this.#nodeType === Node.ATTRIBUTE_NODE) {
217
- this.name = payload.name;
218
- this.value = payload.value;
219
- }
220
- }
221
- async requestChildDocument(frameId, notInTarget) {
222
- const frame = await FrameManager.instance().getOrWaitForFrame(frameId, notInTarget);
223
- const childModel = frame.resourceTreeModel()?.target().model(DOMModel);
224
- return await (childModel?.requestDocument() || null);
225
- }
226
- isAdFrameNode() {
227
- if (this.isIframe() && this.#frameOwnerFrameId) {
228
- const frame = FrameManager.instance().getFrame(this.#frameOwnerFrameId);
229
- if (!frame) {
230
- return false;
231
- }
232
- return frame.adFrameType() !== "none" /* Protocol.Page.AdFrameType.None */;
233
- }
234
- return false;
235
- }
236
- isSVGNode() {
237
- return this.#isSVGNode;
238
- }
239
- isScrollable() {
240
- return this.#isScrollable;
241
- }
242
- affectedByStartingStyles() {
243
- return this.#affectedByStartingStyles;
244
- }
245
- isMediaNode() {
246
- return this.#nodeName === 'AUDIO' || this.#nodeName === 'VIDEO';
247
- }
248
- isViewTransitionPseudoNode() {
249
- if (!this.#pseudoType) {
250
- return false;
251
- }
252
- return [
253
- "view-transition" /* Protocol.DOM.PseudoType.ViewTransition */,
254
- "view-transition-group" /* Protocol.DOM.PseudoType.ViewTransitionGroup */,
255
- "view-transition-group-children" /* Protocol.DOM.PseudoType.ViewTransitionGroupChildren */,
256
- "view-transition-image-pair" /* Protocol.DOM.PseudoType.ViewTransitionImagePair */,
257
- "view-transition-old" /* Protocol.DOM.PseudoType.ViewTransitionOld */,
258
- "view-transition-new" /* Protocol.DOM.PseudoType.ViewTransitionNew */,
259
- ].includes(this.#pseudoType);
260
- }
261
- creationStackTrace() {
262
- if (this.#creationStackTrace) {
263
- return this.#creationStackTrace;
264
- }
265
- const stackTracesPromise = this.#agent.invoke_getNodeStackTraces({ nodeId: this.id });
266
- this.#creationStackTrace = stackTracesPromise.then(res => res.creation || null);
267
- return this.#creationStackTrace;
268
- }
269
- get subtreeMarkerCount() {
270
- return this.#subtreeMarkerCount;
271
- }
272
- domModel() {
273
- return this.#domModel;
274
- }
275
- backendNodeId() {
276
- return this.#backendNodeId;
277
- }
278
- children() {
279
- return this.childrenInternal ? this.childrenInternal.slice() : null;
280
- }
281
- setChildren(children) {
282
- this.childrenInternal = children;
283
- }
284
- setIsScrollable(isScrollable) {
285
- this.#isScrollable = isScrollable;
286
- }
287
- setAffectedByStartingStyles(affectedByStartingStyles) {
288
- this.#affectedByStartingStyles = affectedByStartingStyles;
289
- }
290
- hasAttributes() {
291
- return this.#attributes.size > 0;
292
- }
293
- childNodeCount() {
294
- return this.childNodeCountInternal;
295
- }
296
- setChildNodeCount(childNodeCount) {
297
- this.childNodeCountInternal = childNodeCount;
298
- }
299
- shadowRoots() {
300
- return this.shadowRootsInternal.slice();
301
- }
302
- templateContent() {
303
- return this.templateContentInternal || null;
304
- }
305
- contentDocument() {
306
- return this.contentDocumentInternal || null;
307
- }
308
- setContentDocument(node) {
309
- this.contentDocumentInternal = node;
310
- }
311
- isIframe() {
312
- return this.#nodeName === 'IFRAME';
313
- }
314
- importedDocument() {
315
- return this.#importedDocument || null;
316
- }
317
- nodeType() {
318
- return this.#nodeType;
319
- }
320
- nodeName() {
321
- return this.#nodeName;
322
- }
323
- pseudoType() {
324
- return this.#pseudoType;
325
- }
326
- pseudoIdentifier() {
327
- return this.#pseudoIdentifier;
328
- }
329
- hasPseudoElements() {
330
- return this.#pseudoElements.size > 0;
331
- }
332
- pseudoElements() {
333
- return this.#pseudoElements;
334
- }
335
- checkmarkPseudoElement() {
336
- return this.#pseudoElements.get("checkmark" /* Protocol.DOM.PseudoType.Checkmark */)?.at(-1);
337
- }
338
- beforePseudoElement() {
339
- return this.#pseudoElements.get("before" /* Protocol.DOM.PseudoType.Before */)?.at(-1);
340
- }
341
- afterPseudoElement() {
342
- return this.#pseudoElements.get("after" /* Protocol.DOM.PseudoType.After */)?.at(-1);
343
- }
344
- pickerIconPseudoElement() {
345
- return this.#pseudoElements.get("picker-icon" /* Protocol.DOM.PseudoType.PickerIcon */)?.at(-1);
346
- }
347
- markerPseudoElement() {
348
- return this.#pseudoElements.get("marker" /* Protocol.DOM.PseudoType.Marker */)?.at(-1);
349
- }
350
- backdropPseudoElement() {
351
- return this.#pseudoElements.get("backdrop" /* Protocol.DOM.PseudoType.Backdrop */)?.at(-1);
352
- }
353
- viewTransitionPseudoElements() {
354
- return [
355
- ...this.#pseudoElements.get("view-transition" /* Protocol.DOM.PseudoType.ViewTransition */) || [],
356
- ...this.#pseudoElements.get("view-transition-group" /* Protocol.DOM.PseudoType.ViewTransitionGroup */) || [],
357
- ...this.#pseudoElements.get("view-transition-group-children" /* Protocol.DOM.PseudoType.ViewTransitionGroupChildren */) || [],
358
- ...this.#pseudoElements.get("view-transition-image-pair" /* Protocol.DOM.PseudoType.ViewTransitionImagePair */) || [],
359
- ...this.#pseudoElements.get("view-transition-old" /* Protocol.DOM.PseudoType.ViewTransitionOld */) || [],
360
- ...this.#pseudoElements.get("view-transition-new" /* Protocol.DOM.PseudoType.ViewTransitionNew */) || [],
361
- ];
362
- }
363
- carouselPseudoElements() {
364
- return [
365
- ...this.#pseudoElements.get("scroll-button" /* Protocol.DOM.PseudoType.ScrollButton */) || [],
366
- ...this.#pseudoElements.get("column" /* Protocol.DOM.PseudoType.Column */) || [],
367
- ...this.#pseudoElements.get("scroll-marker" /* Protocol.DOM.PseudoType.ScrollMarker */) || [],
368
- ...this.#pseudoElements.get("scroll-marker-group" /* Protocol.DOM.PseudoType.ScrollMarkerGroup */) || [],
369
- ];
370
- }
371
- hasAssignedSlot() {
372
- return this.assignedSlot !== null;
373
- }
374
- isInsertionPoint() {
375
- return !this.isXMLNode() &&
376
- (this.#nodeName === 'SHADOW' || this.#nodeName === 'CONTENT' || this.#nodeName === 'SLOT');
377
- }
378
- distributedNodes() {
379
- return this.#distributedNodes;
380
- }
381
- isInShadowTree() {
382
- return this.#isInShadowTree;
383
- }
384
- ancestorShadowHost() {
385
- const ancestorShadowRoot = this.ancestorShadowRoot();
386
- return ancestorShadowRoot ? ancestorShadowRoot.parentNode : null;
387
- }
388
- ancestorShadowRoot() {
389
- if (!this.#isInShadowTree) {
390
- return null;
391
- }
392
- let current = this;
393
- while (current && !current.isShadowRoot()) {
394
- current = current.parentNode;
395
- }
396
- return current;
397
- }
398
- ancestorUserAgentShadowRoot() {
399
- const ancestorShadowRoot = this.ancestorShadowRoot();
400
- if (!ancestorShadowRoot) {
401
- return null;
402
- }
403
- return ancestorShadowRoot.shadowRootType() === DOMNode.ShadowRootTypes.UserAgent ? ancestorShadowRoot : null;
404
- }
405
- isShadowRoot() {
406
- return Boolean(this.#shadowRootType);
407
- }
408
- shadowRootType() {
409
- return this.#shadowRootType || null;
410
- }
411
- nodeNameInCorrectCase() {
412
- const shadowRootType = this.shadowRootType();
413
- if (shadowRootType) {
414
- return '#shadow-root (' + shadowRootType + ')';
415
- }
416
- // If there is no local #name, it's case sensitive
417
- if (!this.localName()) {
418
- return this.nodeName();
419
- }
420
- // If the names are different lengths, there is a prefix and it's case sensitive
421
- if (this.localName().length !== this.nodeName().length) {
422
- return this.nodeName();
423
- }
424
- // Return the localname, which will be case insensitive if its an html node
425
- return this.localName();
426
- }
427
- setNodeName(name, callback) {
428
- void this.#agent.invoke_setNodeName({ nodeId: this.id, name }).then(response => {
429
- if (!response.getError()) {
430
- this.#domModel.markUndoableState();
431
- }
432
- if (callback) {
433
- callback(response.getError() || null, this.#domModel.nodeForId(response.nodeId));
434
- }
435
- });
436
- }
437
- localName() {
438
- return this.#localName;
439
- }
440
- nodeValue() {
441
- return this.nodeValueInternal;
442
- }
443
- setNodeValueInternal(nodeValue) {
444
- this.nodeValueInternal = nodeValue;
445
- }
446
- setNodeValue(value, callback) {
447
- void this.#agent.invoke_setNodeValue({ nodeId: this.id, value }).then(response => {
448
- if (!response.getError()) {
449
- this.#domModel.markUndoableState();
450
- }
451
- if (callback) {
452
- callback(response.getError() || null);
453
- }
454
- });
455
- }
456
- getAttribute(name) {
457
- const attr = this.#attributes.get(name);
458
- return attr ? attr.value : undefined;
459
- }
460
- setAttribute(name, text, callback) {
461
- void this.#agent.invoke_setAttributesAsText({ nodeId: this.id, text, name }).then(response => {
462
- if (!response.getError()) {
463
- this.#domModel.markUndoableState();
464
- }
465
- if (callback) {
466
- callback(response.getError() || null);
467
- }
468
- });
469
- }
470
- setAttributeValue(name, value, callback) {
471
- void this.#agent.invoke_setAttributeValue({ nodeId: this.id, name, value }).then(response => {
472
- if (!response.getError()) {
473
- this.#domModel.markUndoableState();
474
- }
475
- if (callback) {
476
- callback(response.getError() || null);
477
- }
478
- });
479
- }
480
- setAttributeValuePromise(name, value) {
481
- return new Promise(fulfill => this.setAttributeValue(name, value, fulfill));
482
- }
483
- attributes() {
484
- return [...this.#attributes.values()];
485
- }
486
- async removeAttribute(name) {
487
- const response = await this.#agent.invoke_removeAttribute({ nodeId: this.id, name });
488
- if (response.getError()) {
489
- return;
490
- }
491
- this.#attributes.delete(name);
492
- this.#domModel.markUndoableState();
493
- }
494
- getChildNodesPromise() {
495
- return new Promise(resolve => {
496
- return this.getChildNodes(childNodes => resolve(childNodes));
497
- });
498
- }
499
- getChildNodes(callback) {
500
- if (this.childrenInternal) {
501
- callback(this.children());
502
- return;
503
- }
504
- void this.#agent.invoke_requestChildNodes({ nodeId: this.id }).then(response => {
505
- callback(response.getError() ? null : this.children());
506
- });
507
- }
508
- async getSubtree(depth, pierce) {
509
- const response = await this.#agent.invoke_requestChildNodes({ nodeId: this.id, depth, pierce });
510
- return response.getError() ? null : this.childrenInternal;
511
- }
512
- async getOuterHTML(includeShadowDOM = false) {
513
- const { outerHTML } = await this.#agent.invoke_getOuterHTML({ nodeId: this.id, includeShadowDOM });
514
- return outerHTML;
515
- }
516
- setOuterHTML(html, callback) {
517
- void this.#agent.invoke_setOuterHTML({ nodeId: this.id, outerHTML: html }).then(response => {
518
- if (!response.getError()) {
519
- this.#domModel.markUndoableState();
520
- }
521
- if (callback) {
522
- callback(response.getError() || null);
523
- }
524
- });
525
- }
526
- removeNode(callback) {
527
- return this.#agent.invoke_removeNode({ nodeId: this.id }).then(response => {
528
- if (!response.getError()) {
529
- this.#domModel.markUndoableState();
530
- }
531
- if (callback) {
532
- callback(response.getError() || null);
533
- }
534
- });
535
- }
536
- path() {
537
- function getNodeKey(node) {
538
- if (!node.#nodeName.length) {
539
- return null;
540
- }
541
- if (node.index !== undefined) {
542
- return node.index;
543
- }
544
- if (!node.parentNode) {
545
- return null;
546
- }
547
- if (node.isShadowRoot()) {
548
- return node.shadowRootType() === DOMNode.ShadowRootTypes.UserAgent ? 'u' : 'a';
549
- }
550
- if (node.nodeType() === Node.DOCUMENT_NODE) {
551
- return 'd';
552
- }
553
- return null;
554
- }
555
- const path = [];
556
- let node = this;
557
- while (node) {
558
- const key = getNodeKey(node);
559
- if (key === null) {
560
- break;
561
- }
562
- path.push([key, node.#nodeName]);
563
- node = node.parentNode;
564
- }
565
- path.reverse();
566
- return path.join(',');
567
- }
568
- isAncestor(node) {
569
- if (!node) {
570
- return false;
571
- }
572
- let currentNode = node.parentNode;
573
- while (currentNode) {
574
- if (this === currentNode) {
575
- return true;
576
- }
577
- currentNode = currentNode.parentNode;
578
- }
579
- return false;
580
- }
581
- isDescendant(descendant) {
582
- return descendant.isAncestor(this);
583
- }
584
- frameOwnerFrameId() {
585
- return this.#frameOwnerFrameId;
586
- }
587
- frameId() {
588
- let node = this.parentNode || this;
589
- while (!node.#frameOwnerFrameId && node.parentNode) {
590
- node = node.parentNode;
591
- }
592
- return node.#frameOwnerFrameId;
593
- }
594
- setAttributesPayload(attrs) {
595
- let attributesChanged = !this.#attributes || attrs.length !== this.#attributes.size * 2;
596
- const oldAttributesMap = this.#attributes || new Map();
597
- this.#attributes = new Map();
598
- for (let i = 0; i < attrs.length; i += 2) {
599
- const name = attrs[i];
600
- const value = attrs[i + 1];
601
- this.addAttribute(name, value);
602
- if (attributesChanged) {
603
- continue;
604
- }
605
- const oldAttribute = oldAttributesMap.get(name);
606
- if (!oldAttribute || oldAttribute.value !== value) {
607
- attributesChanged = true;
608
- }
609
- }
610
- return attributesChanged;
611
- }
612
- insertChild(prev, payload) {
613
- if (!this.childrenInternal) {
614
- throw new Error('DOMNode._children is expected to not be null.');
615
- }
616
- const node = DOMNode.create(this.#domModel, this.ownerDocument, this.#isInShadowTree, payload, this.#retainedNodes);
617
- this.childrenInternal.splice(prev ? this.childrenInternal.indexOf(prev) + 1 : 0, 0, node);
618
- this.renumber();
619
- return node;
620
- }
621
- removeChild(node) {
622
- const pseudoType = node.pseudoType();
623
- if (pseudoType) {
624
- const updatedPseudoElements = this.#pseudoElements.get(pseudoType)?.filter(element => element !== node);
625
- if (updatedPseudoElements && updatedPseudoElements.length > 0) {
626
- this.#pseudoElements.set(pseudoType, updatedPseudoElements);
627
- }
628
- else {
629
- this.#pseudoElements.delete(pseudoType);
630
- }
631
- }
632
- else {
633
- const shadowRootIndex = this.shadowRootsInternal.indexOf(node);
634
- if (shadowRootIndex !== -1) {
635
- this.shadowRootsInternal.splice(shadowRootIndex, 1);
636
- }
637
- else {
638
- if (!this.childrenInternal) {
639
- throw new Error('DOMNode._children is expected to not be null.');
640
- }
641
- if (this.childrenInternal.indexOf(node) === -1) {
642
- throw new Error('DOMNode._children is expected to contain the node to be removed.');
643
- }
644
- this.childrenInternal.splice(this.childrenInternal.indexOf(node), 1);
645
- }
646
- }
647
- node.parentNode = null;
648
- this.#subtreeMarkerCount -= node.#subtreeMarkerCount;
649
- if (node.#subtreeMarkerCount) {
650
- this.#domModel.dispatchEventToListeners(Events.MarkersChanged, this);
651
- }
652
- this.renumber();
653
- }
654
- setChildrenPayload(payloads) {
655
- this.childrenInternal = [];
656
- for (let i = 0; i < payloads.length; ++i) {
657
- const payload = payloads[i];
658
- const node = DOMNode.create(this.#domModel, this.ownerDocument, this.#isInShadowTree, payload, this.#retainedNodes);
659
- this.childrenInternal.push(node);
660
- }
661
- this.renumber();
662
- }
663
- setPseudoElements(payloads) {
664
- if (!payloads) {
665
- return;
666
- }
667
- for (let i = 0; i < payloads.length; ++i) {
668
- const node = DOMNode.create(this.#domModel, this.ownerDocument, this.#isInShadowTree, payloads[i], this.#retainedNodes);
669
- node.parentNode = this;
670
- const pseudoType = node.pseudoType();
671
- if (!pseudoType) {
672
- throw new Error('DOMNode.pseudoType() is expected to be defined.');
673
- }
674
- const currentPseudoElements = this.#pseudoElements.get(pseudoType);
675
- if (currentPseudoElements) {
676
- currentPseudoElements.push(node);
677
- }
678
- else {
679
- this.#pseudoElements.set(pseudoType, [node]);
680
- }
681
- }
682
- }
683
- setDistributedNodePayloads(payloads) {
684
- this.#distributedNodes = [];
685
- for (const payload of payloads) {
686
- this.#distributedNodes.push(new DOMNodeShortcut(this.#domModel.target(), payload.backendNodeId, payload.nodeType, payload.nodeName));
687
- }
688
- }
689
- setAssignedSlot(payload) {
690
- this.assignedSlot =
691
- new DOMNodeShortcut(this.#domModel.target(), payload.backendNodeId, payload.nodeType, payload.nodeName);
692
- }
693
- renumber() {
694
- if (!this.childrenInternal) {
695
- throw new Error('DOMNode._children is expected to not be null.');
696
- }
697
- this.childNodeCountInternal = this.childrenInternal.length;
698
- if (this.childNodeCountInternal === 0) {
699
- this.firstChild = null;
700
- this.lastChild = null;
701
- return;
702
- }
703
- this.firstChild = this.childrenInternal[0];
704
- this.lastChild = this.childrenInternal[this.childNodeCountInternal - 1];
705
- for (let i = 0; i < this.childNodeCountInternal; ++i) {
706
- const child = this.childrenInternal[i];
707
- child.index = i;
708
- child.nextSibling = i + 1 < this.childNodeCountInternal ? this.childrenInternal[i + 1] : null;
709
- child.previousSibling = i - 1 >= 0 ? this.childrenInternal[i - 1] : null;
710
- child.parentNode = this;
711
- }
712
- }
713
- addAttribute(name, value) {
714
- const attr = { name, value, _node: this };
715
- this.#attributes.set(name, attr);
716
- }
717
- setAttributeInternal(name, value) {
718
- const attr = this.#attributes.get(name);
719
- if (attr) {
720
- attr.value = value;
721
- }
722
- else {
723
- this.addAttribute(name, value);
724
- }
725
- }
726
- removeAttributeInternal(name) {
727
- this.#attributes.delete(name);
728
- }
729
- copyTo(targetNode, anchorNode, callback) {
730
- void this.#agent
731
- .invoke_copyTo({ nodeId: this.id, targetNodeId: targetNode.id, insertBeforeNodeId: anchorNode ? anchorNode.id : undefined })
732
- .then(response => {
733
- if (!response.getError()) {
734
- this.#domModel.markUndoableState();
735
- }
736
- const pastedNode = this.#domModel.nodeForId(response.nodeId);
737
- if (pastedNode) {
738
- // For every marker in this.#markers, set a marker in the copied node.
739
- for (const [name, value] of this.#markers) {
740
- pastedNode.setMarker(name, value);
741
- }
742
- }
743
- if (callback) {
744
- callback(response.getError() || null, pastedNode);
745
- }
746
- });
747
- }
748
- moveTo(targetNode, anchorNode, callback) {
749
- void this.#agent
750
- .invoke_moveTo({ nodeId: this.id, targetNodeId: targetNode.id, insertBeforeNodeId: anchorNode ? anchorNode.id : undefined })
751
- .then(response => {
752
- if (!response.getError()) {
753
- this.#domModel.markUndoableState();
754
- }
755
- if (callback) {
756
- callback(response.getError() || null, this.#domModel.nodeForId(response.nodeId));
757
- }
758
- });
759
- }
760
- isXMLNode() {
761
- return Boolean(this.#xmlVersion);
762
- }
763
- setMarker(name, value) {
764
- if (value === null) {
765
- if (!this.#markers.has(name)) {
766
- return;
767
- }
768
- this.#markers.delete(name);
769
- for (let node = this; node; node = node.parentNode) {
770
- --node.#subtreeMarkerCount;
771
- }
772
- for (let node = this; node; node = node.parentNode) {
773
- this.#domModel.dispatchEventToListeners(Events.MarkersChanged, node);
774
- }
775
- return;
776
- }
777
- if (this.parentNode && !this.#markers.has(name)) {
778
- for (let node = this; node; node = node.parentNode) {
779
- ++node.#subtreeMarkerCount;
780
- }
781
- }
782
- this.#markers.set(name, value);
783
- for (let node = this; node; node = node.parentNode) {
784
- this.#domModel.dispatchEventToListeners(Events.MarkersChanged, node);
785
- }
786
- }
787
- marker(name) {
788
- return this.#markers.get(name) || null;
789
- }
790
- getMarkerKeysForTest() {
791
- return [...this.#markers.keys()];
792
- }
793
- traverseMarkers(visitor) {
794
- function traverse(node) {
795
- if (!node.#subtreeMarkerCount) {
796
- return;
797
- }
798
- for (const marker of node.#markers.keys()) {
799
- visitor(node, marker);
800
- }
801
- if (!node.childrenInternal) {
802
- return;
803
- }
804
- for (const child of node.childrenInternal) {
805
- traverse(child);
806
- }
807
- }
808
- traverse(this);
809
- }
810
- resolveURL(url) {
811
- if (!url) {
812
- return url;
813
- }
814
- for (let frameOwnerCandidate = this; frameOwnerCandidate; frameOwnerCandidate = frameOwnerCandidate.parentNode) {
815
- if (frameOwnerCandidate instanceof DOMDocument && frameOwnerCandidate.baseURL) {
816
- return Common.ParsedURL.ParsedURL.completeURL(frameOwnerCandidate.baseURL, url);
817
- }
818
- }
819
- return null;
820
- }
821
- highlight(mode) {
822
- this.#domModel.overlayModel().highlightInOverlay({ node: this, selectorList: undefined }, mode);
823
- }
824
- highlightForTwoSeconds() {
825
- this.#domModel.overlayModel().highlightInOverlayForTwoSeconds({ node: this, selectorList: undefined });
826
- }
827
- async resolveToObject(objectGroup, executionContextId) {
828
- const { object } = await this.#agent.invoke_resolveNode({ nodeId: this.id, backendNodeId: undefined, executionContextId, objectGroup });
829
- return object && this.#domModel.runtimeModelInternal.createRemoteObject(object) || null;
830
- }
831
- async boxModel() {
832
- const { model } = await this.#agent.invoke_getBoxModel({ nodeId: this.id });
833
- return model;
834
- }
835
- async setAsInspectedNode() {
836
- let node = this;
837
- if (node?.pseudoType()) {
838
- node = node.parentNode;
839
- }
840
- while (node) {
841
- let ancestor = node.ancestorUserAgentShadowRoot();
842
- if (!ancestor) {
843
- break;
844
- }
845
- ancestor = node.ancestorShadowHost();
846
- if (!ancestor) {
847
- break;
848
- }
849
- // User #agent shadow root, keep climbing up.
850
- node = ancestor;
851
- }
852
- if (!node) {
853
- throw new Error('In DOMNode.setAsInspectedNode: node is expected to not be null.');
854
- }
855
- await this.#agent.invoke_setInspectedNode({ nodeId: node.id });
856
- }
857
- enclosingElementOrSelf() {
858
- let node = this;
859
- if (node && node.nodeType() === Node.TEXT_NODE && node.parentNode) {
860
- node = node.parentNode;
861
- }
862
- if (node && node.nodeType() !== Node.ELEMENT_NODE) {
863
- node = null;
864
- }
865
- return node;
866
- }
867
- async callFunction(fn, args = []) {
868
- const object = await this.resolveToObject();
869
- if (!object) {
870
- return null;
871
- }
872
- const result = await object.callFunction(fn, args.map(arg => RemoteObject.toCallArgument(arg)));
873
- object.release();
874
- if (result.wasThrown || !result.object) {
875
- return null;
876
- }
877
- return {
878
- value: result.object.value,
879
- };
880
- }
881
- async scrollIntoView() {
882
- const node = this.enclosingElementOrSelf();
883
- if (!node) {
884
- return;
885
- }
886
- const result = await node.callFunction(scrollIntoViewInPage);
887
- if (!result) {
888
- return;
889
- }
890
- node.highlightForTwoSeconds();
891
- function scrollIntoViewInPage() {
892
- this.scrollIntoViewIfNeeded(true);
893
- }
894
- }
895
- async focus() {
896
- const node = this.enclosingElementOrSelf();
897
- if (!node) {
898
- throw new Error('DOMNode.focus expects node to not be null.');
899
- }
900
- const result = await node.callFunction(focusInPage);
901
- if (!result) {
902
- return;
903
- }
904
- node.highlightForTwoSeconds();
905
- await this.#domModel.target().pageAgent().invoke_bringToFront();
906
- function focusInPage() {
907
- this.focus();
908
- }
909
- }
910
- simpleSelector() {
911
- const lowerCaseName = this.localName() || this.nodeName().toLowerCase();
912
- if (this.nodeType() !== Node.ELEMENT_NODE) {
913
- return lowerCaseName;
914
- }
915
- const type = this.getAttribute('type');
916
- const id = this.getAttribute('id');
917
- const classes = this.getAttribute('class');
918
- if (lowerCaseName === 'input' && type && !id && !classes) {
919
- return lowerCaseName + '[type="' + CSS.escape(type) + '"]';
920
- }
921
- if (id) {
922
- return lowerCaseName + '#' + CSS.escape(id);
923
- }
924
- if (classes) {
925
- const classList = classes.trim().split(/\s+/g);
926
- return (lowerCaseName === 'div' ? '' : lowerCaseName) + '.' + classList.map(cls => CSS.escape(cls)).join('.');
927
- }
928
- if (this.pseudoIdentifier()) {
929
- return `${lowerCaseName}(${this.pseudoIdentifier()})`;
930
- }
931
- return lowerCaseName;
932
- }
933
- async getAnchorBySpecifier(specifier) {
934
- const response = await this.#agent.invoke_getAnchorElement({
935
- nodeId: this.id,
936
- anchorSpecifier: specifier,
937
- });
938
- if (response.getError()) {
939
- return null;
940
- }
941
- return this.domModel().nodeForId(response.nodeId);
942
- }
943
- classNames() {
944
- const classes = this.getAttribute('class');
945
- return classes ? classes.split(/\s+/) : [];
946
- }
947
- }
948
- (function (DOMNode) {
949
- let ShadowRootTypes;
950
- (function (ShadowRootTypes) {
951
- /* eslint-disable @typescript-eslint/naming-convention -- Used by web_tests. */
952
- ShadowRootTypes["UserAgent"] = "user-agent";
953
- ShadowRootTypes["Open"] = "open";
954
- ShadowRootTypes["Closed"] = "closed";
955
- /* eslint-enable @typescript-eslint/naming-convention */
956
- })(ShadowRootTypes = DOMNode.ShadowRootTypes || (DOMNode.ShadowRootTypes = {}));
957
- })(DOMNode || (DOMNode = {}));
958
- export class DeferredDOMNode {
959
- #domModelInternal;
960
- #backendNodeIdInternal;
961
- constructor(target, backendNodeId) {
962
- this.#domModelInternal = target.model(DOMModel);
963
- this.#backendNodeIdInternal = backendNodeId;
964
- }
965
- resolve(callback) {
966
- void this.resolvePromise().then(callback);
967
- }
968
- async resolvePromise() {
969
- const nodeIds = await this.#domModelInternal.pushNodesByBackendIdsToFrontend(new Set([this.#backendNodeIdInternal]));
970
- return nodeIds?.get(this.#backendNodeIdInternal) || null;
971
- }
972
- backendNodeId() {
973
- return this.#backendNodeIdInternal;
974
- }
975
- domModel() {
976
- return this.#domModelInternal;
977
- }
978
- highlight() {
979
- this.#domModelInternal.overlayModel().highlightInOverlay({ deferredNode: this, selectorList: undefined });
980
- }
981
- }
982
- export class DOMNodeShortcut {
983
- nodeType;
984
- nodeName;
985
- deferredNode;
986
- constructor(target, backendNodeId, nodeType, nodeName) {
987
- this.nodeType = nodeType;
988
- this.nodeName = nodeName;
989
- this.deferredNode = new DeferredDOMNode(target, backendNodeId);
990
- }
991
- }
992
- export class DOMDocument extends DOMNode {
993
- body;
994
- documentElement;
995
- documentURL;
996
- baseURL;
997
- constructor(domModel, payload) {
998
- super(domModel);
999
- this.body = null;
1000
- this.documentElement = null;
1001
- this.init(this, false, payload);
1002
- this.documentURL = (payload.documentURL || '');
1003
- this.baseURL = (payload.baseURL || '');
1004
- }
1005
- }
1006
- export class DOMModel extends SDKModel {
1007
- agent;
1008
- idToDOMNode = new Map();
1009
- #document = null;
1010
- #attributeLoadNodeIds = new Set();
1011
- runtimeModelInternal;
1012
- #lastMutationId;
1013
- #pendingDocumentRequestPromise = null;
1014
- #frameOwnerNode;
1015
- #loadNodeAttributesTimeout;
1016
- #searchId;
1017
- constructor(target) {
1018
- super(target);
1019
- this.agent = target.domAgent();
1020
- target.registerDOMDispatcher(new DOMDispatcher(this));
1021
- this.runtimeModelInternal = target.model(RuntimeModel);
1022
- if (!target.suspended()) {
1023
- void this.agent.invoke_enable({});
1024
- }
1025
- if (Root.Runtime.experiments.isEnabled('capture-node-creation-stacks')) {
1026
- void this.agent.invoke_setNodeStackTracesEnabled({ enable: true });
1027
- }
1028
- }
1029
- runtimeModel() {
1030
- return this.runtimeModelInternal;
1031
- }
1032
- cssModel() {
1033
- return this.target().model(CSSModel);
1034
- }
1035
- overlayModel() {
1036
- return this.target().model(OverlayModel);
1037
- }
1038
- static cancelSearch() {
1039
- for (const domModel of TargetManager.instance().models(DOMModel)) {
1040
- domModel.cancelSearch();
1041
- }
1042
- }
1043
- scheduleMutationEvent(node) {
1044
- if (!this.hasEventListeners(Events.DOMMutated)) {
1045
- return;
1046
- }
1047
- this.#lastMutationId = (this.#lastMutationId || 0) + 1;
1048
- void Promise.resolve().then(callObserve.bind(this, node, this.#lastMutationId));
1049
- function callObserve(node, mutationId) {
1050
- if (!this.hasEventListeners(Events.DOMMutated) || this.#lastMutationId !== mutationId) {
1051
- return;
1052
- }
1053
- this.dispatchEventToListeners(Events.DOMMutated, node);
1054
- }
1055
- }
1056
- requestDocument() {
1057
- if (this.#document) {
1058
- return Promise.resolve(this.#document);
1059
- }
1060
- if (!this.#pendingDocumentRequestPromise) {
1061
- this.#pendingDocumentRequestPromise = this.requestDocumentInternal();
1062
- }
1063
- return this.#pendingDocumentRequestPromise;
1064
- }
1065
- async getOwnerNodeForFrame(frameId) {
1066
- // Returns an error if the frameId does not belong to the current target.
1067
- const response = await this.agent.invoke_getFrameOwner({ frameId });
1068
- if (response.getError()) {
1069
- return null;
1070
- }
1071
- return new DeferredDOMNode(this.target(), response.backendNodeId);
1072
- }
1073
- async requestDocumentInternal() {
1074
- const response = await this.agent.invoke_getDocument({});
1075
- if (response.getError()) {
1076
- return null;
1077
- }
1078
- const { root: documentPayload } = response;
1079
- this.#pendingDocumentRequestPromise = null;
1080
- if (documentPayload) {
1081
- this.setDocument(documentPayload);
1082
- }
1083
- if (!this.#document) {
1084
- console.error('No document');
1085
- return null;
1086
- }
1087
- const parentModel = this.parentModel();
1088
- if (parentModel && !this.#frameOwnerNode) {
1089
- await parentModel.requestDocument();
1090
- const mainFrame = this.target().model(ResourceTreeModel)?.mainFrame;
1091
- if (mainFrame) {
1092
- const response = await parentModel.agent.invoke_getFrameOwner({ frameId: mainFrame.id });
1093
- if (!response.getError() && response.nodeId) {
1094
- this.#frameOwnerNode = parentModel.nodeForId(response.nodeId);
1095
- }
1096
- }
1097
- }
1098
- // Document could have been cleared by now.
1099
- if (this.#frameOwnerNode) {
1100
- const oldDocument = this.#frameOwnerNode.contentDocument();
1101
- this.#frameOwnerNode.setContentDocument(this.#document);
1102
- this.#frameOwnerNode.setChildren([]);
1103
- if (this.#document) {
1104
- this.#document.parentNode = this.#frameOwnerNode;
1105
- this.dispatchEventToListeners(Events.NodeInserted, this.#document);
1106
- }
1107
- else if (oldDocument) {
1108
- this.dispatchEventToListeners(Events.NodeRemoved, { node: oldDocument, parent: this.#frameOwnerNode });
1109
- }
1110
- }
1111
- return this.#document;
1112
- }
1113
- existingDocument() {
1114
- return this.#document;
1115
- }
1116
- async pushNodeToFrontend(objectId) {
1117
- await this.requestDocument();
1118
- const { nodeId } = await this.agent.invoke_requestNode({ objectId });
1119
- return this.nodeForId(nodeId);
1120
- }
1121
- pushNodeByPathToFrontend(path) {
1122
- return this.requestDocument()
1123
- .then(() => this.agent.invoke_pushNodeByPathToFrontend({ path }))
1124
- .then(({ nodeId }) => nodeId);
1125
- }
1126
- async pushNodesByBackendIdsToFrontend(backendNodeIds) {
1127
- await this.requestDocument();
1128
- const backendNodeIdsArray = [...backendNodeIds];
1129
- const { nodeIds } = await this.agent.invoke_pushNodesByBackendIdsToFrontend({ backendNodeIds: backendNodeIdsArray });
1130
- if (!nodeIds) {
1131
- return null;
1132
- }
1133
- const map = new Map();
1134
- for (let i = 0; i < nodeIds.length; ++i) {
1135
- if (nodeIds[i]) {
1136
- map.set(backendNodeIdsArray[i], this.nodeForId(nodeIds[i]));
1137
- }
1138
- }
1139
- return map;
1140
- }
1141
- attributeModified(nodeId, name, value) {
1142
- const node = this.idToDOMNode.get(nodeId);
1143
- if (!node) {
1144
- return;
1145
- }
1146
- node.setAttributeInternal(name, value);
1147
- this.dispatchEventToListeners(Events.AttrModified, { node, name });
1148
- this.scheduleMutationEvent(node);
1149
- }
1150
- attributeRemoved(nodeId, name) {
1151
- const node = this.idToDOMNode.get(nodeId);
1152
- if (!node) {
1153
- return;
1154
- }
1155
- node.removeAttributeInternal(name);
1156
- this.dispatchEventToListeners(Events.AttrRemoved, { node, name });
1157
- this.scheduleMutationEvent(node);
1158
- }
1159
- inlineStyleInvalidated(nodeIds) {
1160
- nodeIds.forEach(nodeId => this.#attributeLoadNodeIds.add(nodeId));
1161
- if (!this.#loadNodeAttributesTimeout) {
1162
- this.#loadNodeAttributesTimeout = window.setTimeout(this.loadNodeAttributes.bind(this), 20);
1163
- }
1164
- }
1165
- loadNodeAttributes() {
1166
- this.#loadNodeAttributesTimeout = undefined;
1167
- for (const nodeId of this.#attributeLoadNodeIds) {
1168
- void this.agent.invoke_getAttributes({ nodeId }).then(({ attributes }) => {
1169
- if (!attributes) {
1170
- // We are calling loadNodeAttributes asynchronously, it is ok if node is not found.
1171
- return;
1172
- }
1173
- const node = this.idToDOMNode.get(nodeId);
1174
- if (!node) {
1175
- return;
1176
- }
1177
- if (node.setAttributesPayload(attributes)) {
1178
- this.dispatchEventToListeners(Events.AttrModified, { node, name: 'style' });
1179
- this.scheduleMutationEvent(node);
1180
- }
1181
- });
1182
- }
1183
- this.#attributeLoadNodeIds.clear();
1184
- }
1185
- characterDataModified(nodeId, newValue) {
1186
- const node = this.idToDOMNode.get(nodeId);
1187
- if (!node) {
1188
- console.error('nodeId could not be resolved to a node');
1189
- return;
1190
- }
1191
- node.setNodeValueInternal(newValue);
1192
- this.dispatchEventToListeners(Events.CharacterDataModified, node);
1193
- this.scheduleMutationEvent(node);
1194
- }
1195
- nodeForId(nodeId) {
1196
- return nodeId ? this.idToDOMNode.get(nodeId) || null : null;
1197
- }
1198
- documentUpdated() {
1199
- // If this frame doesn't have a document now,
1200
- // it means that its document is not requested yet and
1201
- // it will be requested when needed. (ex: setChildNodes event is received for the frame owner node)
1202
- // So, we don't need to request the document if we don't
1203
- // already have a document.
1204
- const alreadyHasDocument = Boolean(this.#document);
1205
- this.setDocument(null);
1206
- // If we have this.#pendingDocumentRequestPromise in flight,
1207
- // it will contain most recent result.
1208
- if (this.parentModel() && alreadyHasDocument && !this.#pendingDocumentRequestPromise) {
1209
- void this.requestDocument();
1210
- }
1211
- }
1212
- setDocument(payload) {
1213
- this.idToDOMNode = new Map();
1214
- if (payload && 'nodeId' in payload) {
1215
- this.#document = new DOMDocument(this, payload);
1216
- }
1217
- else {
1218
- this.#document = null;
1219
- }
1220
- DOMModelUndoStack.instance().dispose(this);
1221
- if (!this.parentModel()) {
1222
- this.dispatchEventToListeners(Events.DocumentUpdated, this);
1223
- }
1224
- }
1225
- setDocumentForTest(document) {
1226
- this.setDocument(document);
1227
- }
1228
- setDetachedRoot(payload) {
1229
- if (payload.nodeName === '#document') {
1230
- new DOMDocument(this, payload);
1231
- }
1232
- else {
1233
- DOMNode.create(this, null, false, payload);
1234
- }
1235
- }
1236
- setChildNodes(parentId, payloads) {
1237
- if (!parentId && payloads.length) {
1238
- this.setDetachedRoot(payloads[0]);
1239
- return;
1240
- }
1241
- const parent = this.idToDOMNode.get(parentId);
1242
- parent?.setChildrenPayload(payloads);
1243
- }
1244
- childNodeCountUpdated(nodeId, newValue) {
1245
- const node = this.idToDOMNode.get(nodeId);
1246
- if (!node) {
1247
- console.error('nodeId could not be resolved to a node');
1248
- return;
1249
- }
1250
- node.setChildNodeCount(newValue);
1251
- this.dispatchEventToListeners(Events.ChildNodeCountUpdated, node);
1252
- this.scheduleMutationEvent(node);
1253
- }
1254
- childNodeInserted(parentId, prevId, payload) {
1255
- const parent = this.idToDOMNode.get(parentId);
1256
- const prev = this.idToDOMNode.get(prevId);
1257
- if (!parent) {
1258
- console.error('parentId could not be resolved to a node');
1259
- return;
1260
- }
1261
- const node = parent.insertChild(prev, payload);
1262
- this.idToDOMNode.set(node.id, node);
1263
- this.dispatchEventToListeners(Events.NodeInserted, node);
1264
- this.scheduleMutationEvent(node);
1265
- }
1266
- childNodeRemoved(parentId, nodeId) {
1267
- const parent = this.idToDOMNode.get(parentId);
1268
- const node = this.idToDOMNode.get(nodeId);
1269
- if (!parent || !node) {
1270
- console.error('parentId or nodeId could not be resolved to a node');
1271
- return;
1272
- }
1273
- parent.removeChild(node);
1274
- this.unbind(node);
1275
- this.dispatchEventToListeners(Events.NodeRemoved, { node, parent });
1276
- this.scheduleMutationEvent(node);
1277
- }
1278
- shadowRootPushed(hostId, root) {
1279
- const host = this.idToDOMNode.get(hostId);
1280
- if (!host) {
1281
- return;
1282
- }
1283
- const node = DOMNode.create(this, host.ownerDocument, true, root);
1284
- node.parentNode = host;
1285
- this.idToDOMNode.set(node.id, node);
1286
- host.shadowRootsInternal.unshift(node);
1287
- this.dispatchEventToListeners(Events.NodeInserted, node);
1288
- this.scheduleMutationEvent(node);
1289
- }
1290
- shadowRootPopped(hostId, rootId) {
1291
- const host = this.idToDOMNode.get(hostId);
1292
- if (!host) {
1293
- return;
1294
- }
1295
- const root = this.idToDOMNode.get(rootId);
1296
- if (!root) {
1297
- return;
1298
- }
1299
- host.removeChild(root);
1300
- this.unbind(root);
1301
- this.dispatchEventToListeners(Events.NodeRemoved, { node: root, parent: host });
1302
- this.scheduleMutationEvent(root);
1303
- }
1304
- pseudoElementAdded(parentId, pseudoElement) {
1305
- const parent = this.idToDOMNode.get(parentId);
1306
- if (!parent) {
1307
- return;
1308
- }
1309
- const node = DOMNode.create(this, parent.ownerDocument, false, pseudoElement);
1310
- node.parentNode = parent;
1311
- this.idToDOMNode.set(node.id, node);
1312
- const pseudoType = node.pseudoType();
1313
- if (!pseudoType) {
1314
- throw new Error('DOMModel._pseudoElementAdded expects pseudoType to be defined.');
1315
- }
1316
- const currentPseudoElements = parent.pseudoElements().get(pseudoType);
1317
- if (currentPseudoElements && currentPseudoElements.length > 0) {
1318
- if (!(pseudoType.startsWith('view-transition') || pseudoType.startsWith('scroll-') || pseudoType === 'column')) {
1319
- throw new Error('DOMModel.pseudoElementAdded expects parent to not already have this pseudo type added; only view-transition* and scrolling pseudo elements can coexist under the same parent.' +
1320
- ` ${currentPseudoElements.length} elements of type ${pseudoType} already exist on parent.`);
1321
- }
1322
- currentPseudoElements.push(node);
1323
- }
1324
- else {
1325
- parent.pseudoElements().set(pseudoType, [node]);
1326
- }
1327
- this.dispatchEventToListeners(Events.NodeInserted, node);
1328
- this.scheduleMutationEvent(node);
1329
- }
1330
- scrollableFlagUpdated(nodeId, isScrollable) {
1331
- const node = this.nodeForId(nodeId);
1332
- if (!node || node.isScrollable() === isScrollable) {
1333
- return;
1334
- }
1335
- node.setIsScrollable(isScrollable);
1336
- this.dispatchEventToListeners(Events.ScrollableFlagUpdated, { node });
1337
- }
1338
- affectedByStartingStylesFlagUpdated(nodeId, affectedByStartingStyles) {
1339
- const node = this.nodeForId(nodeId);
1340
- if (!node || node.affectedByStartingStyles() === affectedByStartingStyles) {
1341
- return;
1342
- }
1343
- node.setAffectedByStartingStyles(affectedByStartingStyles);
1344
- this.dispatchEventToListeners(Events.AffectedByStartingStylesFlagUpdated, { node });
1345
- }
1346
- topLayerElementsUpdated() {
1347
- this.dispatchEventToListeners(Events.TopLayerElementsChanged);
1348
- }
1349
- pseudoElementRemoved(parentId, pseudoElementId) {
1350
- const parent = this.idToDOMNode.get(parentId);
1351
- if (!parent) {
1352
- return;
1353
- }
1354
- const pseudoElement = this.idToDOMNode.get(pseudoElementId);
1355
- if (!pseudoElement) {
1356
- return;
1357
- }
1358
- parent.removeChild(pseudoElement);
1359
- this.unbind(pseudoElement);
1360
- this.dispatchEventToListeners(Events.NodeRemoved, { node: pseudoElement, parent });
1361
- this.scheduleMutationEvent(pseudoElement);
1362
- }
1363
- distributedNodesUpdated(insertionPointId, distributedNodes) {
1364
- const insertionPoint = this.idToDOMNode.get(insertionPointId);
1365
- if (!insertionPoint) {
1366
- return;
1367
- }
1368
- insertionPoint.setDistributedNodePayloads(distributedNodes);
1369
- this.dispatchEventToListeners(Events.DistributedNodesChanged, insertionPoint);
1370
- this.scheduleMutationEvent(insertionPoint);
1371
- }
1372
- unbind(node) {
1373
- this.idToDOMNode.delete(node.id);
1374
- const children = node.children();
1375
- for (let i = 0; children && i < children.length; ++i) {
1376
- this.unbind(children[i]);
1377
- }
1378
- for (let i = 0; i < node.shadowRootsInternal.length; ++i) {
1379
- this.unbind(node.shadowRootsInternal[i]);
1380
- }
1381
- const pseudoElements = node.pseudoElements();
1382
- for (const value of pseudoElements.values()) {
1383
- for (const pseudoElement of value) {
1384
- this.unbind(pseudoElement);
1385
- }
1386
- }
1387
- const templateContent = node.templateContent();
1388
- if (templateContent) {
1389
- this.unbind(templateContent);
1390
- }
1391
- }
1392
- async getNodesByStyle(computedStyles, pierce = false) {
1393
- await this.requestDocument();
1394
- if (!this.#document) {
1395
- throw new Error('DOMModel.getNodesByStyle expects to have a document.');
1396
- }
1397
- const response = await this.agent.invoke_getNodesForSubtreeByStyle({ nodeId: this.#document.id, computedStyles, pierce });
1398
- if (response.getError()) {
1399
- throw new Error(response.getError());
1400
- }
1401
- return response.nodeIds;
1402
- }
1403
- async performSearch(query, includeUserAgentShadowDOM) {
1404
- const response = await this.agent.invoke_performSearch({ query, includeUserAgentShadowDOM });
1405
- if (!response.getError()) {
1406
- this.#searchId = response.searchId;
1407
- }
1408
- return response.getError() ? 0 : response.resultCount;
1409
- }
1410
- async searchResult(index) {
1411
- if (!this.#searchId) {
1412
- return null;
1413
- }
1414
- const { nodeIds } = await this.agent.invoke_getSearchResults({ searchId: this.#searchId, fromIndex: index, toIndex: index + 1 });
1415
- return nodeIds && nodeIds.length === 1 ? this.nodeForId(nodeIds[0]) : null;
1416
- }
1417
- cancelSearch() {
1418
- if (!this.#searchId) {
1419
- return;
1420
- }
1421
- void this.agent.invoke_discardSearchResults({ searchId: this.#searchId });
1422
- this.#searchId = undefined;
1423
- }
1424
- classNamesPromise(nodeId) {
1425
- return this.agent.invoke_collectClassNamesFromSubtree({ nodeId }).then(({ classNames }) => classNames || []);
1426
- }
1427
- querySelector(nodeId, selector) {
1428
- return this.agent.invoke_querySelector({ nodeId, selector }).then(({ nodeId }) => nodeId);
1429
- }
1430
- querySelectorAll(nodeId, selector) {
1431
- return this.agent.invoke_querySelectorAll({ nodeId, selector }).then(({ nodeIds }) => nodeIds);
1432
- }
1433
- getTopLayerElements() {
1434
- return this.agent.invoke_getTopLayerElements().then(({ nodeIds }) => nodeIds);
1435
- }
1436
- getDetachedDOMNodes() {
1437
- return this.agent.invoke_getDetachedDomNodes().then(({ detachedNodes }) => detachedNodes);
1438
- }
1439
- getElementByRelation(nodeId, relation) {
1440
- return this.agent.invoke_getElementByRelation({ nodeId, relation }).then(({ nodeId }) => nodeId);
1441
- }
1442
- markUndoableState(minorChange) {
1443
- void DOMModelUndoStack.instance().markUndoableState(this, minorChange || false);
1444
- }
1445
- async nodeForLocation(x, y, includeUserAgentShadowDOM) {
1446
- const response = await this.agent.invoke_getNodeForLocation({ x, y, includeUserAgentShadowDOM });
1447
- if (response.getError() || !response.nodeId) {
1448
- return null;
1449
- }
1450
- return this.nodeForId(response.nodeId);
1451
- }
1452
- async getContainerForNode(nodeId, containerName, physicalAxes, logicalAxes, queriesScrollState, queriesAnchored) {
1453
- const { nodeId: containerNodeId } = await this.agent.invoke_getContainerForNode({ nodeId, containerName, physicalAxes, logicalAxes, queriesScrollState, queriesAnchored });
1454
- if (!containerNodeId) {
1455
- return null;
1456
- }
1457
- return this.nodeForId(containerNodeId);
1458
- }
1459
- pushObjectAsNodeToFrontend(object) {
1460
- return object.isNode() && object.objectId ? this.pushNodeToFrontend(object.objectId) : Promise.resolve(null);
1461
- }
1462
- suspendModel() {
1463
- return this.agent.invoke_disable().then(() => this.setDocument(null));
1464
- }
1465
- async resumeModel() {
1466
- await this.agent.invoke_enable({});
1467
- }
1468
- dispose() {
1469
- DOMModelUndoStack.instance().dispose(this);
1470
- }
1471
- parentModel() {
1472
- const parentTarget = this.target().parentTarget();
1473
- return parentTarget ? parentTarget.model(DOMModel) : null;
1474
- }
1475
- getAgent() {
1476
- return this.agent;
1477
- }
1478
- registerNode(node) {
1479
- this.idToDOMNode.set(node.id, node);
1480
- }
1481
- }
1482
- export var Events;
1483
- (function (Events) {
1484
- /* eslint-disable @typescript-eslint/naming-convention -- Used by web_tests. */
1485
- Events["AttrModified"] = "AttrModified";
1486
- Events["AttrRemoved"] = "AttrRemoved";
1487
- Events["CharacterDataModified"] = "CharacterDataModified";
1488
- Events["DOMMutated"] = "DOMMutated";
1489
- Events["NodeInserted"] = "NodeInserted";
1490
- Events["NodeRemoved"] = "NodeRemoved";
1491
- Events["DocumentUpdated"] = "DocumentUpdated";
1492
- Events["ChildNodeCountUpdated"] = "ChildNodeCountUpdated";
1493
- Events["DistributedNodesChanged"] = "DistributedNodesChanged";
1494
- Events["MarkersChanged"] = "MarkersChanged";
1495
- Events["TopLayerElementsChanged"] = "TopLayerElementsChanged";
1496
- Events["ScrollableFlagUpdated"] = "ScrollableFlagUpdated";
1497
- Events["AffectedByStartingStylesFlagUpdated"] = "AffectedByStartingStylesFlagUpdated";
1498
- /* eslint-enable @typescript-eslint/naming-convention */
1499
- })(Events || (Events = {}));
1500
- class DOMDispatcher {
1501
- #domModel;
1502
- constructor(domModel) {
1503
- this.#domModel = domModel;
1504
- }
1505
- documentUpdated() {
1506
- this.#domModel.documentUpdated();
1507
- }
1508
- attributeModified({ nodeId, name, value }) {
1509
- this.#domModel.attributeModified(nodeId, name, value);
1510
- }
1511
- attributeRemoved({ nodeId, name }) {
1512
- this.#domModel.attributeRemoved(nodeId, name);
1513
- }
1514
- inlineStyleInvalidated({ nodeIds }) {
1515
- this.#domModel.inlineStyleInvalidated(nodeIds);
1516
- }
1517
- characterDataModified({ nodeId, characterData }) {
1518
- this.#domModel.characterDataModified(nodeId, characterData);
1519
- }
1520
- setChildNodes({ parentId, nodes }) {
1521
- this.#domModel.setChildNodes(parentId, nodes);
1522
- }
1523
- childNodeCountUpdated({ nodeId, childNodeCount }) {
1524
- this.#domModel.childNodeCountUpdated(nodeId, childNodeCount);
1525
- }
1526
- childNodeInserted({ parentNodeId, previousNodeId, node }) {
1527
- this.#domModel.childNodeInserted(parentNodeId, previousNodeId, node);
1528
- }
1529
- childNodeRemoved({ parentNodeId, nodeId }) {
1530
- this.#domModel.childNodeRemoved(parentNodeId, nodeId);
1531
- }
1532
- shadowRootPushed({ hostId, root }) {
1533
- this.#domModel.shadowRootPushed(hostId, root);
1534
- }
1535
- shadowRootPopped({ hostId, rootId }) {
1536
- this.#domModel.shadowRootPopped(hostId, rootId);
1537
- }
1538
- pseudoElementAdded({ parentId, pseudoElement }) {
1539
- this.#domModel.pseudoElementAdded(parentId, pseudoElement);
1540
- }
1541
- pseudoElementRemoved({ parentId, pseudoElementId }) {
1542
- this.#domModel.pseudoElementRemoved(parentId, pseudoElementId);
1543
- }
1544
- distributedNodesUpdated({ insertionPointId, distributedNodes }) {
1545
- this.#domModel.distributedNodesUpdated(insertionPointId, distributedNodes);
1546
- }
1547
- topLayerElementsUpdated() {
1548
- this.#domModel.topLayerElementsUpdated();
1549
- }
1550
- scrollableFlagUpdated({ nodeId, isScrollable }) {
1551
- this.#domModel.scrollableFlagUpdated(nodeId, isScrollable);
1552
- }
1553
- affectedByStartingStylesFlagUpdated({ nodeId, affectedByStartingStyles }) {
1554
- this.#domModel.affectedByStartingStylesFlagUpdated(nodeId, affectedByStartingStyles);
1555
- }
1556
- }
1557
- let domModelUndoStackInstance = null;
1558
- export class DOMModelUndoStack {
1559
- #stack;
1560
- #index;
1561
- #lastModelWithMinorChange;
1562
- constructor() {
1563
- this.#stack = [];
1564
- this.#index = 0;
1565
- this.#lastModelWithMinorChange = null;
1566
- }
1567
- static instance(opts = { forceNew: null }) {
1568
- const { forceNew } = opts;
1569
- if (!domModelUndoStackInstance || forceNew) {
1570
- domModelUndoStackInstance = new DOMModelUndoStack();
1571
- }
1572
- return domModelUndoStackInstance;
1573
- }
1574
- async markUndoableState(model, minorChange) {
1575
- // Both minor and major changes get into the #stack, but minor updates are coalesced.
1576
- // Commit major undoable state in the old model upon model switch.
1577
- if (this.#lastModelWithMinorChange && model !== this.#lastModelWithMinorChange) {
1578
- this.#lastModelWithMinorChange.markUndoableState();
1579
- this.#lastModelWithMinorChange = null;
1580
- }
1581
- // Previous minor change is already in the #stack.
1582
- if (minorChange && this.#lastModelWithMinorChange === model) {
1583
- return;
1584
- }
1585
- this.#stack = this.#stack.slice(0, this.#index);
1586
- this.#stack.push(model);
1587
- this.#index = this.#stack.length;
1588
- // Delay marking as major undoable states in case of minor operations until the
1589
- // major or model switch.
1590
- if (minorChange) {
1591
- this.#lastModelWithMinorChange = model;
1592
- }
1593
- else {
1594
- await model.getAgent().invoke_markUndoableState();
1595
- this.#lastModelWithMinorChange = null;
1596
- }
1597
- }
1598
- async undo() {
1599
- if (this.#index === 0) {
1600
- return await Promise.resolve();
1601
- }
1602
- --this.#index;
1603
- this.#lastModelWithMinorChange = null;
1604
- await this.#stack[this.#index].getAgent().invoke_undo();
1605
- }
1606
- async redo() {
1607
- if (this.#index >= this.#stack.length) {
1608
- return await Promise.resolve();
1609
- }
1610
- ++this.#index;
1611
- this.#lastModelWithMinorChange = null;
1612
- await this.#stack[this.#index - 1].getAgent().invoke_redo();
1613
- }
1614
- dispose(model) {
1615
- let shift = 0;
1616
- for (let i = 0; i < this.#index; ++i) {
1617
- if (this.#stack[i] === model) {
1618
- ++shift;
1619
- }
1620
- }
1621
- Platform.ArrayUtilities.removeElement(this.#stack, model);
1622
- this.#index -= shift;
1623
- if (this.#lastModelWithMinorChange === model) {
1624
- this.#lastModelWithMinorChange = null;
1625
- }
1626
- }
1627
- }
1628
- SDKModel.register(DOMModel, { capabilities: 2 /* Capability.DOM */, autostart: true });