chrome-devtools-mcp 0.10.0 → 0.10.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (329) hide show
  1. package/README.md +10 -0
  2. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Debouncer.js +2 -2
  3. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Gzip.js +1 -1
  4. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Revealer.js +5 -0
  5. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Settings.js +106 -98
  6. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Throttler.js +2 -2
  7. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/common.js +1 -2
  8. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/AidaClient.js +2 -2
  9. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/DispatchHttpRequestClient.js +15 -3
  10. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/GdpClient.js +4 -0
  11. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/InspectorFrontendHost.js +10 -13
  12. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/UserMetrics.js +3 -0
  13. package/build/node_modules/chrome-devtools-frontend/front_end/core/i18n/ByteUtilities.js +72 -0
  14. package/build/node_modules/chrome-devtools-frontend/front_end/core/i18n/DevToolsLocale.js +64 -0
  15. package/build/node_modules/chrome-devtools-frontend/front_end/core/i18n/NumberFormatter.js +67 -0
  16. package/build/node_modules/chrome-devtools-frontend/front_end/core/i18n/collect-ui-strings.js +73 -0
  17. package/build/node_modules/chrome-devtools-frontend/front_end/core/i18n/generate-locales-js.js +51 -0
  18. package/build/node_modules/chrome-devtools-frontend/front_end/core/i18n/i18n.js +9 -60
  19. package/build/node_modules/chrome-devtools-frontend/front_end/core/i18n/i18nImpl.js +135 -0
  20. package/build/node_modules/chrome-devtools-frontend/front_end/core/{common/QueryParamHandler.js → i18n/i18nTypes.js} +1 -1
  21. package/build/node_modules/chrome-devtools-frontend/front_end/core/i18n/locales.js +14 -0
  22. package/build/node_modules/chrome-devtools-frontend/front_end/core/i18n/time-utilities.js +148 -0
  23. package/build/node_modules/chrome-devtools-frontend/front_end/core/protocol_client/DevToolsCDPConnection.js +138 -0
  24. package/build/node_modules/chrome-devtools-frontend/front_end/core/protocol_client/InspectorBackend.js +19 -150
  25. package/build/node_modules/chrome-devtools-frontend/front_end/core/protocol_client/protocol_client.js +2 -2
  26. package/build/node_modules/chrome-devtools-frontend/front_end/core/root/DevToolsContext.js +50 -0
  27. package/build/node_modules/chrome-devtools-frontend/front_end/core/root/root.js +2 -1
  28. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CPUThrottlingManager.js +0 -3
  29. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSMatchedStyles.js +6 -7
  30. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSModel.js +1 -1
  31. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSRule.js +14 -4
  32. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ChildTargetManager.js +1 -2
  33. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/DebuggerModel.js +1 -16
  34. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/IOModel.js +1 -4
  35. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/NetworkManager.js +18 -9
  36. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/NetworkRequest.js +0 -8
  37. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/RemoteObject.js +3 -0
  38. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ServerSentEventsProtocol.js +3 -0
  39. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/Target.js +1 -3
  40. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/TargetManager.js +4 -5
  41. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/sdk-meta.js +0 -30
  42. package/build/node_modules/chrome-devtools-frontend/front_end/foundation/Universe.js +30 -0
  43. package/build/node_modules/chrome-devtools-frontend/front_end/foundation/foundation.js +5 -0
  44. package/build/node_modules/chrome-devtools-frontend/front_end/generated/Deprecation.js +8 -14
  45. package/build/node_modules/chrome-devtools-frontend/front_end/generated/InspectorBackendCommands.js +9 -6
  46. package/build/node_modules/chrome-devtools-frontend/front_end/generated/SupportedCSSProperties.js +62 -8
  47. package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.js +86 -51
  48. package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/performance/AIQueries.js +46 -2
  49. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/CSSWorkspaceBinding.js +6 -5
  50. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/CompilerScriptMapping.js +3 -1
  51. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/DebuggerWorkspaceBinding.js +17 -14
  52. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/ResourceMapping.js +46 -14
  53. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/AttributionReportingIssue.js +202 -0
  54. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/BounceTrackingIssue.js +57 -0
  55. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/CheckFormsIssuesTrigger.js +31 -0
  56. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/ClientHintIssue.js +76 -0
  57. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/ContentSecurityPolicyIssue.js +140 -0
  58. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/ContrastCheckTrigger.js +59 -0
  59. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/CookieDeprecationMetadataIssue.js +64 -0
  60. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/CookieIssue.js +513 -0
  61. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/CorsIssue.js +251 -0
  62. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/CrossOriginEmbedderPolicyIssue.js +112 -0
  63. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/DeprecationIssue.js +95 -0
  64. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/ElementAccessibilityIssue.js +100 -0
  65. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/FederatedAuthRequestIssue.js +236 -0
  66. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/FederatedAuthUserInfoRequestIssue.js +146 -0
  67. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/GenericIssue.js +197 -0
  68. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/HeavyAdIssue.js +57 -0
  69. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/Issue.js +147 -0
  70. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/IssueAggregator.js +309 -0
  71. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/IssueResolver.js +40 -0
  72. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/IssuesManager.js +416 -0
  73. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/IssuesManagerEvents.js +4 -0
  74. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/LowTextContrastIssue.js +53 -0
  75. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/MarkdownIssueDescription.js +104 -0
  76. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/MixedContentIssue.js +59 -0
  77. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/PartitioningBlobURLIssue.js +63 -0
  78. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/PropertyRuleIssue.js +63 -0
  79. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/QuirksModeIssue.js +53 -0
  80. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/RelatedIssue.js +70 -0
  81. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/SRIMessageSignatureIssue.js +91 -0
  82. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/SharedArrayBufferIssue.js +54 -0
  83. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/SharedDictionaryIssue.js +297 -0
  84. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/SourceFrameIssuesManager.js +81 -0
  85. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/StylesheetLoadingIssue.js +63 -0
  86. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/UnencodedDigestIssue.js +67 -0
  87. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/CoepCoopSandboxedIframeCannotNavigateToCoopPage.md +4 -0
  88. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/CoepCorpNotSameOrigin.md +8 -0
  89. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/CoepCorpNotSameOriginAfterDefaultedToSameOriginByCoep.md +18 -0
  90. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/CoepCorpNotSameSite.md +7 -0
  91. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/CoepFrameResourceNeedsCoepHeader.md +10 -0
  92. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/CompatibilityModeQuirks.md +5 -0
  93. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/CookieAttributeValueExceedsMaxSize.md +5 -0
  94. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/LowTextContrast.md +5 -0
  95. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteExcludeContextDowngradeRead.md +8 -0
  96. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteExcludeContextDowngradeSet.md +8 -0
  97. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteExcludeNavigationContextDowngrade.md +8 -0
  98. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteInvalidSameParty.md +8 -0
  99. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteNoneInsecureErrorRead.md +8 -0
  100. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteNoneInsecureErrorSet.md +8 -0
  101. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteNoneInsecureWarnRead.md +8 -0
  102. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteNoneInsecureWarnSet.md +8 -0
  103. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteSamePartyCrossPartyContextSet.md +10 -0
  104. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteUnspecifiedLaxAllowUnsafeRead.md +9 -0
  105. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteUnspecifiedLaxAllowUnsafeSet.md +9 -0
  106. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteWarnCrossDowngradeRead.md +8 -0
  107. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteWarnCrossDowngradeSet.md +8 -0
  108. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteWarnStrictLaxDowngradeStrict.md +8 -0
  109. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arInsecureContext.md +7 -0
  110. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arInvalidInfoHeader.md +5 -0
  111. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arInvalidRegisterOsSourceHeader.md +5 -0
  112. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arInvalidRegisterOsTriggerHeader.md +5 -0
  113. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arInvalidRegisterSourceHeader.md +5 -0
  114. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arInvalidRegisterTriggerHeader.md +5 -0
  115. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arNavigationRegistrationUniqueScopeAlreadySet.md +5 -0
  116. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arNavigationRegistrationWithoutTransientUserActivation.md +6 -0
  117. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arNoRegisterOsSourceHeader.md +5 -0
  118. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arNoRegisterOsTriggerHeader.md +5 -0
  119. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arNoRegisterSourceHeader.md +5 -0
  120. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arNoRegisterTriggerHeader.md +5 -0
  121. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arNoWebOrOsSupport.md +4 -0
  122. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arOsSourceIgnored.md +18 -0
  123. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arOsTriggerIgnored.md +19 -0
  124. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arPermissionPolicyDisabled.md +8 -0
  125. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arSourceAndTriggerHeaders.md +9 -0
  126. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arSourceIgnored.md +13 -0
  127. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arTriggerIgnored.md +12 -0
  128. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arUntrustworthyReportingOrigin.md +10 -0
  129. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arWebAndOsHeaders.md +11 -0
  130. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/bounceTrackingMitigations.md +3 -0
  131. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/clientHintMetaTagAllowListInvalidOrigin.md +4 -0
  132. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/clientHintMetaTagModifiedHTML.md +4 -0
  133. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieCrossSiteRedirectDowngrade.md +12 -0
  134. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieExcludeBlockedWithinRelatedWebsiteSet.md +4 -0
  135. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieExcludeDomainNonAscii.md +11 -0
  136. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieExcludePortMismatch.md +8 -0
  137. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieExcludeSchemeMismatch.md +7 -0
  138. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieExcludeThirdPartyPhaseoutRead.md +6 -0
  139. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieExcludeThirdPartyPhaseoutSet.md +6 -0
  140. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieWarnDomainNonAscii.md +11 -0
  141. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieWarnMetadataGrantRead.md +4 -0
  142. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieWarnMetadataGrantSet.md +4 -0
  143. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieWarnThirdPartyPhaseoutRead.md +6 -0
  144. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieWarnThirdPartyPhaseoutSet.md +6 -0
  145. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsAllowCredentialsRequired.md +6 -0
  146. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsDisabledScheme.md +7 -0
  147. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsDisallowedByMode.md +7 -0
  148. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsHeaderDisallowedByPreflightResponse.md +5 -0
  149. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsInsecurePrivateNetwork.md +10 -0
  150. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsInvalidHeaderValues.md +7 -0
  151. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsLocalNetworkAccessPermissionDenied.md +19 -0
  152. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsMethodDisallowedByPreflightResponse.md +5 -0
  153. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsNoCorsRedirectModeNotFollow.md +5 -0
  154. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsOriginMismatch.md +6 -0
  155. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsPreflightAllowPrivateNetworkError.md +10 -0
  156. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsPreflightResponseInvalid.md +5 -0
  157. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsPrivateNetworkPermissionDenied.md +10 -0
  158. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsRedirectContainsCredentials.md +5 -0
  159. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsWildcardOriginNotAllowed.md +8 -0
  160. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cspEvalViolation.md +9 -0
  161. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cspInlineViolation.md +10 -0
  162. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cspTrustedTypesPolicyViolation.md +5 -0
  163. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cspTrustedTypesSinkViolation.md +8 -0
  164. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cspURLViolation.md +10 -0
  165. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/deprecation.md +3 -0
  166. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestAccountsHttpNotFound.md +1 -0
  167. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestAccountsInvalidResponse.md +1 -0
  168. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestAccountsNoResponse.md +1 -0
  169. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestApprovalDeclined.md +1 -0
  170. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestCanceled.md +1 -0
  171. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestClientMetadataHttpNotFound.md +1 -0
  172. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestClientMetadataInvalidResponse.md +1 -0
  173. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestClientMetadataNoResponse.md +1 -0
  174. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestErrorFetchingSignin.md +1 -0
  175. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestErrorIdToken.md +1 -0
  176. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestIdTokenHttpNotFound.md +1 -0
  177. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestIdTokenInvalidRequest.md +1 -0
  178. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestIdTokenInvalidResponse.md +1 -0
  179. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestIdTokenNoResponse.md +1 -0
  180. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestInvalidSigninResponse.md +1 -0
  181. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestManifestHttpNotFound.md +1 -0
  182. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestManifestInvalidResponse.md +1 -0
  183. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestManifestNoResponse.md +1 -0
  184. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestTooManyRequests.md +1 -0
  185. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestInvalidAccountsResponse.md +1 -0
  186. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestInvalidConfigOrWellKnown.md +1 -0
  187. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNoAccountSharingPermission.md +1 -0
  188. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNoApiPermission.md +1 -0
  189. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNoReturningUserFromFetchedAccounts.md +1 -0
  190. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotIframe.md +1 -0
  191. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotPotentiallyTrustworthy.md +1 -0
  192. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotSameOrigin.md +1 -0
  193. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotSignedInWithIdp.md +1 -0
  194. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/fetchingPartitionedBlobURL.md +7 -0
  195. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericFormAriaLabelledByToNonExistingId.md +8 -0
  196. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericFormAutocompleteAttributeEmptyError.md +5 -0
  197. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericFormDuplicateIdForInputError.md +5 -0
  198. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericFormEmptyIdAndNameAttributesForInputError.md +5 -0
  199. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericFormInputAssignedAutocompleteValueToIdOrNameAttributeError.md +5 -0
  200. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericFormInputHasWrongButWellIntendedAutocompleteValueError.md +5 -0
  201. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericFormInputWithNoLabelError.md +5 -0
  202. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericFormLabelForMatchesNonExistingIdError.md +5 -0
  203. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericFormLabelForNameError.md +5 -0
  204. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericFormLabelHasNeitherForNorNestedInput.md +5 -0
  205. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericResponseWasBlockedByORB.md +4 -0
  206. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/heavyAd.md +10 -0
  207. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/mixedContent.md +5 -0
  208. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/navigatingPartitionedBlobURL.md +5 -0
  209. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/placeholderDescriptionForInvisibleIssues.md +3 -0
  210. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/propertyRuleInvalidNameIssue.md +3 -0
  211. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/propertyRuleIssue.md +7 -0
  212. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/selectElementAccessibilityDisallowedOptGroupChild.md +7 -0
  213. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/selectElementAccessibilityDisallowedSelectChild.md +7 -0
  214. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/selectElementAccessibilityInteractiveContentAttributesSelectDescendant.md +3 -0
  215. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/selectElementAccessibilityInteractiveContentLegendChild.md +3 -0
  216. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/selectElementAccessibilityInteractiveContentOptionChild.md +3 -0
  217. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/selectElementAccessibilityNonPhrasingContentOptionChild.md +3 -0
  218. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedArrayBuffer.md +7 -0
  219. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryUseErrorCrossOriginNoCorsRequest.md +1 -0
  220. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryUseErrorDictionaryLoadFailure.md +3 -0
  221. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryUseErrorMatchingDictionaryNotUsed.md +3 -0
  222. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryUseErrorUnexpectedContentDictionaryHeader.md +1 -0
  223. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorCossOriginNoCorsRequest.md +1 -0
  224. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorDisallowedBySettings.md +1 -0
  225. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorExpiredResponse.md +3 -0
  226. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorFeatureDisabled.md +3 -0
  227. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorInsufficientResources.md +1 -0
  228. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorInvalidMatchField.md +1 -0
  229. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorInvalidStructuredHeader.md +1 -0
  230. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorInvalidTTLField.md +1 -0
  231. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorNavigationRequest.md +3 -0
  232. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorNoMatchField.md +1 -0
  233. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonIntegerTTLField.md +1 -0
  234. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonListMatchDestField.md +1 -0
  235. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonSecureContext.md +3 -0
  236. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonStringIdField.md +1 -0
  237. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonStringInMatchDestList.md +1 -0
  238. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonStringMatchField.md +1 -0
  239. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonTokenTypeField.md +1 -0
  240. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorRequestAborted.md +1 -0
  241. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorShuttingDown.md +1 -0
  242. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorTooLongIdField.md +3 -0
  243. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorUnsupportedType.md +3 -0
  244. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriInvalidSignatureHeader.md +14 -0
  245. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriInvalidSignatureInputHeader.md +15 -0
  246. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriMissingSignatureHeader.md +8 -0
  247. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriMissingSignatureInputHeader.md +7 -0
  248. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureHeaderValueIsIncorrectLength.md +11 -0
  249. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureHeaderValueIsNotByteSequence.md +14 -0
  250. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureHeaderValueIsParameterized.md +15 -0
  251. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidComponentName.md +8 -0
  252. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidComponentType.md +13 -0
  253. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidDerivedComponentParameter.md +4 -0
  254. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidHeaderComponentParameter.md +5 -0
  255. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidParameter.md +11 -0
  256. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderKeyIdLength.md +12 -0
  257. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderMissingLabel.md +6 -0
  258. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderMissingRequiredParameters.md +8 -0
  259. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderValueMissingComponents.md +11 -0
  260. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderValueNotInnerList.md +11 -0
  261. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriValidationFailedIntegrityMismatch.md +10 -0
  262. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriValidationFailedInvalidLength.md +5 -0
  263. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriValidationFailedSignatureExpired.md +6 -0
  264. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriValidationFailedSignatureMismatch.md +11 -0
  265. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/stylesheetLateImport.md +4 -0
  266. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/stylesheetRequestFailed.md +3 -0
  267. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/summaryElementAccessibilityInteractiveContentSummaryDescendant.md +3 -0
  268. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/unencodedDigestIncorrectDigestLength.md +12 -0
  269. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/unencodedDigestIncorrectDigestType.md +17 -0
  270. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/unencodedDigestMalformedDictionary.md +14 -0
  271. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/unencodedDigestUnknownAlgorithm.md +15 -0
  272. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/issues_manager.js +35 -0
  273. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/Processor.js +4 -4
  274. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/Styles.js +1 -1
  275. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/SamplesHandler.js +56 -6
  276. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/ScriptsHandler.js +24 -0
  277. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/TraceEvents.js +1 -0
  278. package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/IgnoreListManager.js +40 -47
  279. package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/WorkspaceImpl.js +5 -8
  280. package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/workspace-meta.js +34 -0
  281. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/i18n/LICENSE +202 -0
  282. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/i18n/i18n-impl.js +46 -0
  283. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/i18n/i18n.js +6 -0
  284. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/i18n/localized-string-set.js +122 -0
  285. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/intl-messageformat/LICENSE +33 -0
  286. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/intl-messageformat/intl-messageformat.js +5 -0
  287. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/intl-messageformat/package/index.js +13 -0
  288. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/intl-messageformat/package/intl-messageformat.esm.js +1725 -0
  289. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/intl-messageformat/package/intl-messageformat.iife.js +1840 -0
  290. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/intl-messageformat/package/lib/index.js +10 -0
  291. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/intl-messageformat/package/lib/src/core.js +233 -0
  292. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/intl-messageformat/package/lib/src/error.js +48 -0
  293. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/intl-messageformat/package/lib/src/formatters.js +177 -0
  294. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/intl-messageformat/package/src/core.js +236 -0
  295. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/intl-messageformat/package/src/error.js +51 -0
  296. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/intl-messageformat/package/src/formatters.js +182 -0
  297. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/LICENSE +39 -0
  298. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/marked.js +2 -0
  299. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/bin/main.js +255 -0
  300. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/bin/marked.js +11 -0
  301. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/lib/marked.esm.js +2695 -0
  302. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/lib/marked.js +2233 -0
  303. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/lib/marked.umd.js +2719 -0
  304. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/src/Lexer.js +453 -0
  305. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/src/Parser.js +233 -0
  306. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/src/Renderer.js +137 -0
  307. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/src/Slugger.js +46 -0
  308. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/src/TextRenderer.js +34 -0
  309. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/src/Tokenizer.js +683 -0
  310. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/src/defaults.js +27 -0
  311. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/src/helpers.js +240 -0
  312. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/src/marked.js +318 -0
  313. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/src/rules.js +243 -0
  314. package/build/node_modules/chrome-devtools-frontend/mcp/mcp.js +7 -0
  315. package/build/src/DevToolsConnectionAdapter.js +1 -2
  316. package/build/src/DevtoolsUtils.js +20 -0
  317. package/build/src/McpContext.js +25 -16
  318. package/build/src/McpResponse.js +39 -3
  319. package/build/src/PageCollector.js +131 -16
  320. package/build/src/features.js +14 -0
  321. package/build/src/formatters/consoleFormatter.js +3 -0
  322. package/build/src/issue-descriptions.js +35 -0
  323. package/build/src/main.js +6 -1
  324. package/build/src/third_party/THIRD_PARTY_NOTICES +3 -3
  325. package/build/src/third_party/index.js +729 -676
  326. package/build/src/tools/console.js +5 -0
  327. package/build/src/tools/pages.js +1 -1
  328. package/package.json +6 -6
  329. package/build/node_modules/chrome-devtools-frontend/front_end/core/protocol_client/NodeURL.js +0 -31
package/README.md CHANGED
@@ -152,6 +152,16 @@ Go to `Cursor Settings` -> `MCP` -> `New MCP Server`. Use the config provided ab
152
152
 
153
153
  </details>
154
154
 
155
+ <details>
156
+ <summary>Factory CLI</summary>
157
+ Use the Factory CLI to add the Chrome DevTools MCP server (<a href="https://docs.factory.ai/cli/configuration/mcp">guide</a>):
158
+
159
+ ```bash
160
+ droid mcp add chrome-devtools "npx -y chrome-devtools-mcp@latest"
161
+ ```
162
+
163
+ </details>
164
+
155
165
  <details>
156
166
  <summary>Gemini CLI</summary>
157
167
  Install the Chrome DevTools MCP server using the Gemini CLI.
@@ -5,10 +5,10 @@
5
5
  * Debounce utility function, ensures that the function passed in is only called once the function stops being called and the delay has expired.
6
6
  */
7
7
  export const debounce = function (func, delay) {
8
- let timer = 0;
8
+ let timer;
9
9
  const debounced = (...args) => {
10
10
  clearTimeout(timer);
11
- timer = window.setTimeout(() => func(...args), delay);
11
+ timer = setTimeout(() => func(...args), delay);
12
12
  };
13
13
  return debounced;
14
14
  };
@@ -47,7 +47,7 @@ export async function compress(str) {
47
47
  async function gzipCodec(buffer, codecStream) {
48
48
  const readable = new ReadableStream({
49
49
  start(controller) {
50
- controller.enqueue(buffer);
50
+ controller.enqueue(buffer instanceof ArrayBuffer ? new Uint8Array(buffer) : buffer);
51
51
  controller.close();
52
52
  }
53
53
  });
@@ -23,6 +23,10 @@ const UIStrings = {
23
23
  * @description The UI destination when right clicking an item that can be revealed
24
24
  */
25
25
  networkPanel: 'Network panel',
26
+ /**
27
+ * @description The UI destination when right clicking an item that can be revealed
28
+ */
29
+ requestConditionsDrawer: 'Request conditions drawer',
26
30
  /**
27
31
  * @description The UI destination when right clicking an item that can be revealed
28
32
  */
@@ -150,6 +154,7 @@ export const RevealerDestination = {
150
154
  CHANGES_DRAWER: i18nLazyString(UIStrings.changesDrawer),
151
155
  ISSUES_VIEW: i18nLazyString(UIStrings.issuesView),
152
156
  NETWORK_PANEL: i18nLazyString(UIStrings.networkPanel),
157
+ REQUEST_CONDITIONS_DRAWER: i18nLazyString(UIStrings.requestConditionsDrawer),
153
158
  TIMELINE_PANEL: i18nLazyString(UIStrings.timelinePanel),
154
159
  APPLICATION_PANEL: i18nLazyString(UIStrings.applicationPanel),
155
160
  SOURCES_PANEL: i18nLazyString(UIStrings.sourcesPanel),
@@ -5,12 +5,13 @@ import * as Platform from '../platform/platform.js';
5
5
  import * as Root from '../root/root.js';
6
6
  import { Console } from './Console.js';
7
7
  import { ObjectWrapper } from './Object.js';
8
- import { getLocalizedSettingsCategory, getRegisteredSettings as getRegisteredSettingsInternal, maybeRemoveSettingExtension, registerSettingExtension, registerSettingsForTest, resetSettings, } from './SettingRegistration.js';
8
+ import { getLocalizedSettingsCategory, maybeRemoveSettingExtension, registerSettingExtension, registerSettingsForTest, resetSettings, } from './SettingRegistration.js';
9
9
  let settingsInstance;
10
10
  export class Settings {
11
11
  syncedStorage;
12
12
  globalStorage;
13
13
  localStorage;
14
+ #settingRegistrations;
14
15
  #sessionStorage = new SettingsStorage({});
15
16
  settingNameSet = new Set();
16
17
  orderValuesBySettingCategory = new Map();
@@ -18,12 +19,13 @@ export class Settings {
18
19
  #registry = new Map();
19
20
  moduleSettings = new Map();
20
21
  #logSettingAccess;
21
- constructor(syncedStorage, globalStorage, localStorage, logSettingAccess) {
22
+ constructor({ syncedStorage, globalStorage, localStorage, settingRegistrations, logSettingAccess, runSettingsMigration }) {
22
23
  this.syncedStorage = syncedStorage;
23
24
  this.globalStorage = globalStorage;
24
25
  this.localStorage = localStorage;
26
+ this.#settingRegistrations = settingRegistrations;
25
27
  this.#logSettingAccess = logSettingAccess;
26
- for (const registration of this.getRegisteredSettings()) {
28
+ for (const registration of this.#settingRegistrations) {
27
29
  const { settingName, defaultValue, storageType } = registration;
28
30
  const isRegex = registration.settingType === "regex" /* SettingType.REGEX */;
29
31
  const evaluatedDefaultValue = typeof defaultValue === 'function' ? defaultValue(Root.Runtime.hostConfig) : defaultValue;
@@ -37,20 +39,23 @@ export class Settings {
37
39
  setting.setRegistration(registration);
38
40
  this.registerModuleSetting(setting);
39
41
  }
42
+ if (runSettingsMigration) {
43
+ new VersionController(this).updateVersion();
44
+ }
40
45
  }
41
46
  getRegisteredSettings() {
42
- return getRegisteredSettingsInternal();
47
+ return this.#settingRegistrations;
43
48
  }
44
49
  static hasInstance() {
45
50
  return typeof settingsInstance !== 'undefined';
46
51
  }
47
- static instance(opts = { forceNew: null, syncedStorage: null, globalStorage: null, localStorage: null }) {
48
- const { forceNew, syncedStorage, globalStorage, localStorage, logSettingAccess } = opts;
52
+ static instance(opts = { forceNew: null, syncedStorage: null, globalStorage: null, localStorage: null, settingRegistrations: null }) {
53
+ const { forceNew, syncedStorage, globalStorage, localStorage, settingRegistrations, logSettingAccess, runSettingsMigration } = opts;
49
54
  if (!settingsInstance || forceNew) {
50
- if (!syncedStorage || !globalStorage || !localStorage) {
55
+ if (!syncedStorage || !globalStorage || !localStorage || !settingRegistrations) {
51
56
  throw new Error(`Unable to create settings: global and local storage must be provided: ${new Error().stack}`);
52
57
  }
53
- settingsInstance = new Settings(syncedStorage, globalStorage, localStorage, logSettingAccess);
58
+ settingsInstance = new Settings({ syncedStorage, globalStorage, localStorage, settingRegistrations, logSettingAccess, runSettingsMigration });
54
59
  }
55
60
  return settingsInstance;
56
61
  }
@@ -138,7 +143,7 @@ export class Settings {
138
143
  this.globalStorage.removeAll();
139
144
  this.syncedStorage.removeAll();
140
145
  this.localStorage.removeAll();
141
- new VersionController().resetToCurrent();
146
+ new VersionController(this).resetToCurrent();
142
147
  }
143
148
  storageFromType(storageType) {
144
149
  switch (storageType) {
@@ -230,13 +235,6 @@ export class SettingsStorage {
230
235
  }
231
236
  }
232
237
  }
233
- function removeSetting(setting) {
234
- const name = setting.name;
235
- const settings = Settings.instance();
236
- settings.getRegistry().delete(name);
237
- settings.moduleSettings.delete(name);
238
- setting.storage.remove(name);
239
- }
240
238
  export class Deprecation {
241
239
  disabled;
242
240
  warning;
@@ -548,14 +546,16 @@ export class VersionController {
548
546
  static SYNCED_VERSION_SETTING_NAME = 'syncedInspectorVersion';
549
547
  static LOCAL_VERSION_SETTING_NAME = 'localInspectorVersion';
550
548
  static CURRENT_VERSION = 40;
549
+ #settings;
551
550
  #globalVersionSetting;
552
551
  #syncedVersionSetting;
553
552
  #localVersionSetting;
554
- constructor() {
553
+ constructor(settings) {
554
+ this.#settings = settings;
555
555
  // If no version setting is found, we initialize with the current version and don't do anything.
556
- this.#globalVersionSetting = Settings.instance().createSetting(VersionController.GLOBAL_VERSION_SETTING_NAME, VersionController.CURRENT_VERSION, "Global" /* SettingStorageType.GLOBAL */);
557
- this.#syncedVersionSetting = Settings.instance().createSetting(VersionController.SYNCED_VERSION_SETTING_NAME, VersionController.CURRENT_VERSION, "Synced" /* SettingStorageType.SYNCED */);
558
- this.#localVersionSetting = Settings.instance().createSetting(VersionController.LOCAL_VERSION_SETTING_NAME, VersionController.CURRENT_VERSION, "Local" /* SettingStorageType.LOCAL */);
556
+ this.#globalVersionSetting = this.#settings.createSetting(VersionController.GLOBAL_VERSION_SETTING_NAME, VersionController.CURRENT_VERSION, "Global" /* SettingStorageType.GLOBAL */);
557
+ this.#syncedVersionSetting = this.#settings.createSetting(VersionController.SYNCED_VERSION_SETTING_NAME, VersionController.CURRENT_VERSION, "Synced" /* SettingStorageType.SYNCED */);
558
+ this.#localVersionSetting = this.#settings.createSetting(VersionController.LOCAL_VERSION_SETTING_NAME, VersionController.CURRENT_VERSION, "Local" /* SettingStorageType.LOCAL */);
559
559
  }
560
560
  /**
561
561
  * Force re-sets all version number settings to the current version without
@@ -566,6 +566,12 @@ export class VersionController {
566
566
  this.#syncedVersionSetting.set(VersionController.CURRENT_VERSION);
567
567
  this.#localVersionSetting.set(VersionController.CURRENT_VERSION);
568
568
  }
569
+ #removeSetting(setting) {
570
+ const name = setting.name;
571
+ this.#settings.getRegistry().delete(name);
572
+ this.#settings.moduleSettings.delete(name);
573
+ setting.storage.remove(name);
574
+ }
569
575
  /**
570
576
  * Runs the appropriate migrations and updates the version settings accordingly.
571
577
  *
@@ -594,19 +600,19 @@ export class VersionController {
594
600
  return result;
595
601
  }
596
602
  updateVersionFrom0To1() {
597
- this.clearBreakpointsWhenTooMany(Settings.instance().createLocalSetting('breakpoints', []), 500000);
603
+ this.clearBreakpointsWhenTooMany(this.#settings.createLocalSetting('breakpoints', []), 500000);
598
604
  }
599
605
  updateVersionFrom1To2() {
600
- Settings.instance().createSetting('previouslyViewedFiles', []).set([]);
606
+ this.#settings.createSetting('previouslyViewedFiles', []).set([]);
601
607
  }
602
608
  updateVersionFrom2To3() {
603
- Settings.instance().createSetting('fileSystemMapping', {}).set({});
604
- removeSetting(Settings.instance().createSetting('fileMappingEntries', []));
609
+ this.#settings.createSetting('fileSystemMapping', {}).set({});
610
+ this.#removeSetting(this.#settings.createSetting('fileMappingEntries', []));
605
611
  }
606
612
  updateVersionFrom3To4() {
607
- const advancedMode = Settings.instance().createSetting('showHeaSnapshotObjectsHiddenProperties', false);
608
- moduleSetting('showAdvancedHeapSnapshotProperties').set(advancedMode.get());
609
- removeSetting(advancedMode);
613
+ const advancedMode = this.#settings.createSetting('showHeaSnapshotObjectsHiddenProperties', false);
614
+ this.#settings.moduleSetting('showAdvancedHeapSnapshotProperties').set(advancedMode.get());
615
+ this.#removeSetting(advancedMode);
610
616
  }
611
617
  updateVersionFrom4To5() {
612
618
  const settingNames = {
@@ -635,26 +641,26 @@ export class VersionController {
635
641
  const newName = settingNames[oldName];
636
642
  const oldNameH = oldName + 'H';
637
643
  let newValue = null;
638
- const oldSetting = Settings.instance().createSetting(oldName, empty);
644
+ const oldSetting = this.#settings.createSetting(oldName, empty);
639
645
  if (oldSetting.get() !== empty) {
640
646
  newValue = newValue || {};
641
647
  // @ts-expect-error
642
648
  newValue.vertical = {};
643
649
  // @ts-expect-error
644
650
  newValue.vertical.size = oldSetting.get();
645
- removeSetting(oldSetting);
651
+ this.#removeSetting(oldSetting);
646
652
  }
647
- const oldSettingH = Settings.instance().createSetting(oldNameH, empty);
653
+ const oldSettingH = this.#settings.createSetting(oldNameH, empty);
648
654
  if (oldSettingH.get() !== empty) {
649
655
  newValue = newValue || {};
650
656
  // @ts-expect-error
651
657
  newValue.horizontal = {};
652
658
  // @ts-expect-error
653
659
  newValue.horizontal.size = oldSettingH.get();
654
- removeSetting(oldSettingH);
660
+ this.#removeSetting(oldSettingH);
655
661
  }
656
662
  if (newValue) {
657
- Settings.instance().createSetting(newName, {}).set(newValue);
663
+ this.#settings.createSetting(newName, {}).set(newValue);
658
664
  }
659
665
  }
660
666
  }
@@ -665,17 +671,17 @@ export class VersionController {
665
671
  'WebInspector.Drawer.showOnLoad': 'Inspector.drawerSplitViewState',
666
672
  };
667
673
  for (const oldName in settingNames) {
668
- const oldSetting = Settings.instance().createSetting(oldName, null);
674
+ const oldSetting = this.#settings.createSetting(oldName, null);
669
675
  if (oldSetting.get() === null) {
670
- removeSetting(oldSetting);
676
+ this.#removeSetting(oldSetting);
671
677
  continue;
672
678
  }
673
679
  const newName = settingNames[oldName];
674
680
  const invert = oldName === 'WebInspector.Drawer.showOnLoad';
675
681
  const hidden = oldSetting.get() !== invert;
676
- removeSetting(oldSetting);
682
+ this.#removeSetting(oldSetting);
677
683
  const showMode = hidden ? 'OnlyMain' : 'Both';
678
- const newSetting = Settings.instance().createSetting(newName, {});
684
+ const newSetting = this.#settings.createSetting(newName, {});
679
685
  const newValue = newSetting.get() || {};
680
686
  // @ts-expect-error
681
687
  newValue.vertical = newValue.vertical || {};
@@ -697,7 +703,7 @@ export class VersionController {
697
703
  };
698
704
  const empty = {};
699
705
  for (const name in settingNames) {
700
- const setting = Settings.instance().createSetting(name, empty);
706
+ const setting = this.#settings.createSetting(name, empty);
701
707
  const value = setting.get();
702
708
  if (value === empty) {
703
709
  continue;
@@ -717,7 +723,7 @@ export class VersionController {
717
723
  updateVersionFrom8To9() {
718
724
  const settingNames = ['skipStackFramesPattern', 'workspaceFolderExcludePattern'];
719
725
  for (let i = 0; i < settingNames.length; ++i) {
720
- const setting = Settings.instance().createSetting(settingNames[i], '');
726
+ const setting = this.#settings.createSetting(settingNames[i], '');
721
727
  let value = setting.get();
722
728
  if (!value) {
723
729
  return;
@@ -747,7 +753,7 @@ export class VersionController {
747
753
  updateVersionFrom10To11() {
748
754
  const oldSettingName = 'customDevicePresets';
749
755
  const newSettingName = 'customEmulatedDeviceList';
750
- const oldSetting = Settings.instance().createSetting(oldSettingName, undefined);
756
+ const oldSetting = this.#settings.createSetting(oldSettingName, undefined);
751
757
  const list = oldSetting.get();
752
758
  if (!Array.isArray(list)) {
753
759
  return;
@@ -776,23 +782,23 @@ export class VersionController {
776
782
  newList.push(device);
777
783
  }
778
784
  if (newList.length) {
779
- Settings.instance().createSetting(newSettingName, []).set(newList);
785
+ this.#settings.createSetting(newSettingName, []).set(newList);
780
786
  }
781
- removeSetting(oldSetting);
787
+ this.#removeSetting(oldSetting);
782
788
  }
783
789
  updateVersionFrom11To12() {
784
790
  this.migrateSettingsFromLocalStorage();
785
791
  }
786
792
  updateVersionFrom12To13() {
787
793
  this.migrateSettingsFromLocalStorage();
788
- removeSetting(Settings.instance().createSetting('timelineOverviewMode', ''));
794
+ this.#removeSetting(this.#settings.createSetting('timelineOverviewMode', ''));
789
795
  }
790
796
  updateVersionFrom13To14() {
791
797
  const defaultValue = { throughput: -1, latency: 0 };
792
- Settings.instance().createSetting('networkConditions', defaultValue).set(defaultValue);
798
+ this.#settings.createSetting('networkConditions', defaultValue).set(defaultValue);
793
799
  }
794
800
  updateVersionFrom14To15() {
795
- const setting = Settings.instance().createLocalSetting('workspaceExcludedFolders', {});
801
+ const setting = this.#settings.createLocalSetting('workspaceExcludedFolders', {});
796
802
  const oldValue = setting.get();
797
803
  const newValue = {};
798
804
  for (const fileSystemPath in oldValue) {
@@ -804,7 +810,7 @@ export class VersionController {
804
810
  setting.set(newValue);
805
811
  }
806
812
  updateVersionFrom15To16() {
807
- const setting = Settings.instance().createSetting('InspectorView.panelOrder', {});
813
+ const setting = this.#settings.createSetting('InspectorView.panelOrder', {});
808
814
  const tabOrders = setting.get();
809
815
  for (const key of Object.keys(tabOrders)) {
810
816
  tabOrders[key] = (tabOrders[key] + 1) * 10;
@@ -812,7 +818,7 @@ export class VersionController {
812
818
  setting.set(tabOrders);
813
819
  }
814
820
  updateVersionFrom16To17() {
815
- const setting = Settings.instance().createSetting('networkConditionsCustomProfiles', []);
821
+ const setting = this.#settings.createSetting('networkConditionsCustomProfiles', []);
816
822
  const oldValue = setting.get();
817
823
  const newValue = [];
818
824
  if (Array.isArray(oldValue)) {
@@ -829,7 +835,7 @@ export class VersionController {
829
835
  setting.set(newValue);
830
836
  }
831
837
  updateVersionFrom17To18() {
832
- const setting = Settings.instance().createLocalSetting('workspaceExcludedFolders', {});
838
+ const setting = this.#settings.createLocalSetting('workspaceExcludedFolders', {});
833
839
  const oldValue = setting.get();
834
840
  const newValue = {};
835
841
  for (const oldKey in oldValue) {
@@ -848,7 +854,7 @@ export class VersionController {
848
854
  }
849
855
  updateVersionFrom18To19() {
850
856
  const defaultColumns = { status: true, type: true, initiator: true, size: true, time: true };
851
- const visibleColumnSettings = Settings.instance().createSetting('networkLogColumnsVisibility', defaultColumns);
857
+ const visibleColumnSettings = this.#settings.createSetting('networkLogColumnsVisibility', defaultColumns);
852
858
  const visibleColumns = visibleColumnSettings.get();
853
859
  visibleColumns.name = true;
854
860
  visibleColumns.timeline = true;
@@ -859,25 +865,25 @@ export class VersionController {
859
865
  }
860
866
  configs[columnId.toLowerCase()] = { visible: visibleColumns[columnId] };
861
867
  }
862
- const newSetting = Settings.instance().createSetting('networkLogColumns', {});
868
+ const newSetting = this.#settings.createSetting('networkLogColumns', {});
863
869
  newSetting.set(configs);
864
- removeSetting(visibleColumnSettings);
870
+ this.#removeSetting(visibleColumnSettings);
865
871
  }
866
872
  updateVersionFrom19To20() {
867
- const oldSetting = Settings.instance().createSetting('InspectorView.panelOrder', {});
868
- const newSetting = Settings.instance().createSetting('panel-tabOrder', {});
873
+ const oldSetting = this.#settings.createSetting('InspectorView.panelOrder', {});
874
+ const newSetting = this.#settings.createSetting('panel-tabOrder', {});
869
875
  newSetting.set(oldSetting.get());
870
- removeSetting(oldSetting);
876
+ this.#removeSetting(oldSetting);
871
877
  }
872
878
  updateVersionFrom20To21() {
873
- const networkColumns = Settings.instance().createSetting('networkLogColumns', {});
879
+ const networkColumns = this.#settings.createSetting('networkLogColumns', {});
874
880
  const columns = networkColumns.get();
875
881
  delete columns['timeline'];
876
882
  delete columns['waterfall'];
877
883
  networkColumns.set(columns);
878
884
  }
879
885
  updateVersionFrom21To22() {
880
- const breakpointsSetting = Settings.instance().createLocalSetting('breakpoints', []);
886
+ const breakpointsSetting = this.#settings.createLocalSetting('breakpoints', []);
881
887
  const breakpoints = breakpointsSetting.get();
882
888
  for (const breakpoint of breakpoints) {
883
889
  breakpoint['url'] = breakpoint['sourceFileId'];
@@ -889,32 +895,33 @@ export class VersionController {
889
895
  // This update is no-op.
890
896
  }
891
897
  updateVersionFrom23To24() {
892
- const oldSetting = Settings.instance().createSetting('searchInContentScripts', false);
893
- const newSetting = Settings.instance().createSetting('searchInAnonymousAndContentScripts', false);
898
+ const oldSetting = this.#settings.createSetting('searchInContentScripts', false);
899
+ const newSetting = this.#settings.createSetting('searchInAnonymousAndContentScripts', false);
894
900
  newSetting.set(oldSetting.get());
895
- removeSetting(oldSetting);
901
+ this.#removeSetting(oldSetting);
896
902
  }
897
903
  updateVersionFrom24To25() {
898
904
  const defaultColumns = { status: true, type: true, initiator: true, size: true, time: true };
899
- const networkLogColumnsSetting = Settings.instance().createSetting('networkLogColumns', defaultColumns);
905
+ const networkLogColumnsSetting = this.#settings.createSetting('networkLogColumns', defaultColumns);
900
906
  const columns = networkLogColumnsSetting.get();
901
907
  delete columns.product;
902
908
  networkLogColumnsSetting.set(columns);
903
909
  }
904
910
  updateVersionFrom25To26() {
905
- const oldSetting = Settings.instance().createSetting('messageURLFilters', {});
911
+ const oldSetting = this.#settings.createSetting('messageURLFilters', {});
906
912
  const urls = Object.keys(oldSetting.get());
907
913
  const textFilter = urls.map(url => `-url:${url}`).join(' ');
908
914
  if (textFilter) {
909
- const textFilterSetting = Settings.instance().createSetting('console.textFilter', '');
915
+ const textFilterSetting = this.#settings.createSetting('console.textFilter', '');
910
916
  const suffix = textFilterSetting.get() ? ` ${textFilterSetting.get()}` : '';
911
917
  textFilterSetting.set(`${textFilter}${suffix}`);
912
918
  }
913
- removeSetting(oldSetting);
919
+ this.#removeSetting(oldSetting);
914
920
  }
915
921
  updateVersionFrom26To27() {
922
+ const settings = this.#settings;
916
923
  function renameKeyInObjectSetting(settingName, from, to) {
917
- const setting = Settings.instance().createSetting(settingName, {});
924
+ const setting = settings.createSetting(settingName, {});
918
925
  const value = setting.get();
919
926
  if (from in value) {
920
927
  value[to] = value[from];
@@ -923,7 +930,7 @@ export class VersionController {
923
930
  }
924
931
  }
925
932
  function renameInStringSetting(settingName, from, to) {
926
- const setting = Settings.instance().createSetting(settingName, '');
933
+ const setting = settings.createSetting(settingName, '');
927
934
  const value = setting.get();
928
935
  if (value === from) {
929
936
  setting.set(to);
@@ -934,14 +941,15 @@ export class VersionController {
934
941
  renameInStringSetting('panel-selectedTab', 'audits2', 'audits');
935
942
  }
936
943
  updateVersionFrom27To28() {
937
- const setting = Settings.instance().createSetting('uiTheme', 'systemPreferred');
944
+ const setting = this.#settings.createSetting('uiTheme', 'systemPreferred');
938
945
  if (setting.get() === 'default') {
939
946
  setting.set('systemPreferred');
940
947
  }
941
948
  }
942
949
  updateVersionFrom28To29() {
950
+ const settings = this.#settings;
943
951
  function renameKeyInObjectSetting(settingName, from, to) {
944
- const setting = Settings.instance().createSetting(settingName, {});
952
+ const setting = settings.createSetting(settingName, {});
945
953
  const value = setting.get();
946
954
  if (from in value) {
947
955
  value[to] = value[from];
@@ -950,7 +958,7 @@ export class VersionController {
950
958
  }
951
959
  }
952
960
  function renameInStringSetting(settingName, from, to) {
953
- const setting = Settings.instance().createSetting(settingName, '');
961
+ const setting = settings.createSetting(settingName, '');
954
962
  const value = setting.get();
955
963
  if (value === from) {
956
964
  setting.set(to);
@@ -962,31 +970,31 @@ export class VersionController {
962
970
  }
963
971
  updateVersionFrom29To30() {
964
972
  // Create new location agnostic setting
965
- const closeableTabSetting = Settings.instance().createSetting('closeableTabs', {});
973
+ const closeableTabSetting = this.#settings.createSetting('closeableTabs', {});
966
974
  // Read current settings
967
- const panelCloseableTabSetting = Settings.instance().createSetting('panel-closeableTabs', {});
968
- const drawerCloseableTabSetting = Settings.instance().createSetting('drawer-view-closeableTabs', {});
975
+ const panelCloseableTabSetting = this.#settings.createSetting('panel-closeableTabs', {});
976
+ const drawerCloseableTabSetting = this.#settings.createSetting('drawer-view-closeableTabs', {});
969
977
  const openTabsInPanel = panelCloseableTabSetting.get();
970
978
  const openTabsInDrawer = panelCloseableTabSetting.get();
971
979
  // Set #value of new setting
972
980
  const newValue = Object.assign(openTabsInDrawer, openTabsInPanel);
973
981
  closeableTabSetting.set(newValue);
974
982
  // Remove old settings
975
- removeSetting(panelCloseableTabSetting);
976
- removeSetting(drawerCloseableTabSetting);
983
+ this.#removeSetting(panelCloseableTabSetting);
984
+ this.#removeSetting(drawerCloseableTabSetting);
977
985
  }
978
986
  updateVersionFrom30To31() {
979
987
  // Remove recorder_recordings setting that was used for storing recordings
980
988
  // by an old recorder experiment.
981
- const recordingsSetting = Settings.instance().createSetting('recorder_recordings', []);
982
- removeSetting(recordingsSetting);
989
+ const recordingsSetting = this.#settings.createSetting('recorder_recordings', []);
990
+ this.#removeSetting(recordingsSetting);
983
991
  }
984
992
  updateVersionFrom31To32() {
985
993
  // Introduce the new 'resourceTypeName' property on stored breakpoints. Prior to
986
994
  // this change we synchronized the breakpoint only by URL, but since we don't
987
995
  // know on which resource type the given breakpoint was set, we just assume
988
996
  // 'script' here to keep things simple.
989
- const breakpointsSetting = Settings.instance().createLocalSetting('breakpoints', []);
997
+ const breakpointsSetting = this.#settings.createLocalSetting('breakpoints', []);
990
998
  const breakpoints = breakpointsSetting.get();
991
999
  for (const breakpoint of breakpoints) {
992
1000
  breakpoint['resourceTypeName'] = 'script';
@@ -994,7 +1002,7 @@ export class VersionController {
994
1002
  breakpointsSetting.set(breakpoints);
995
1003
  }
996
1004
  updateVersionFrom32To33() {
997
- const previouslyViewedFilesSetting = Settings.instance().createLocalSetting('previouslyViewedFiles', []);
1005
+ const previouslyViewedFilesSetting = this.#settings.createLocalSetting('previouslyViewedFiles', []);
998
1006
  let previouslyViewedFiles = previouslyViewedFilesSetting.get();
999
1007
  // Discard old 'previouslyViewedFiles' items that don't have a 'url' property.
1000
1008
  previouslyViewedFiles = previouslyViewedFiles.filter((previouslyViewedFile) => 'url' in previouslyViewedFile);
@@ -1018,7 +1026,7 @@ export class VersionController {
1018
1026
  // the future.
1019
1027
  const logpointPrefix = '/** DEVTOOLS_LOGPOINT */ console.log(';
1020
1028
  const logpointSuffix = ')';
1021
- const breakpointsSetting = Settings.instance().createLocalSetting('breakpoints', []);
1029
+ const breakpointsSetting = this.#settings.createLocalSetting('breakpoints', []);
1022
1030
  const breakpoints = breakpointsSetting.get();
1023
1031
  for (const breakpoint of breakpoints) {
1024
1032
  const isLogpoint = breakpoint.condition.startsWith(logpointPrefix) && breakpoint.condition.endsWith(logpointSuffix);
@@ -1034,7 +1042,7 @@ export class VersionController {
1034
1042
  // the future.
1035
1043
  const logpointPrefix = '/** DEVTOOLS_LOGPOINT */ console.log(';
1036
1044
  const logpointSuffix = ')';
1037
- const breakpointsSetting = Settings.instance().createLocalSetting('breakpoints', []);
1045
+ const breakpointsSetting = this.#settings.createLocalSetting('breakpoints', []);
1038
1046
  const breakpoints = breakpointsSetting.get();
1039
1047
  for (const breakpoint of breakpoints) {
1040
1048
  const { condition, isLogpoint } = breakpoint;
@@ -1046,7 +1054,7 @@ export class VersionController {
1046
1054
  }
1047
1055
  updateVersionFrom35To36() {
1048
1056
  // We have changed the default from 'false' to 'true' and this updates the existing setting just for once.
1049
- Settings.instance().createSetting('showThirdPartyIssues', true).set(true);
1057
+ this.#settings.createSetting('showThirdPartyIssues', true).set(true);
1050
1058
  }
1051
1059
  updateVersionFrom36To37() {
1052
1060
  const updateStorage = (storage) => {
@@ -1054,22 +1062,22 @@ export class VersionController {
1054
1062
  const normalizedKey = Settings.normalizeSettingName(key);
1055
1063
  if (normalizedKey !== key) {
1056
1064
  const value = storage.get(key);
1057
- removeSetting({ name: key, storage });
1065
+ this.#removeSetting({ name: key, storage });
1058
1066
  storage.set(normalizedKey, value);
1059
1067
  }
1060
1068
  }
1061
1069
  };
1062
- updateStorage(Settings.instance().globalStorage);
1063
- updateStorage(Settings.instance().syncedStorage);
1064
- updateStorage(Settings.instance().localStorage);
1065
- for (const key of Settings.instance().globalStorage.keys()) {
1070
+ updateStorage(this.#settings.globalStorage);
1071
+ updateStorage(this.#settings.syncedStorage);
1072
+ updateStorage(this.#settings.localStorage);
1073
+ for (const key of this.#settings.globalStorage.keys()) {
1066
1074
  if ((key.startsWith('data-grid-') && key.endsWith('-column-weights')) || key.endsWith('-tab-order') ||
1067
1075
  key === 'views-location-override' || key === 'closeable-tabs') {
1068
- const setting = Settings.instance().createSetting(key, {});
1076
+ const setting = this.#settings.createSetting(key, {});
1069
1077
  setting.set(Platform.StringUtilities.toKebabCaseKeys(setting.get()));
1070
1078
  }
1071
1079
  if (key.endsWith('-selected-tab')) {
1072
- const setting = Settings.instance().createSetting(key, '');
1080
+ const setting = this.#settings.createSetting(key, '');
1073
1081
  setting.set(Platform.StringUtilities.toKebabCase(setting.get()));
1074
1082
  }
1075
1083
  }
@@ -1077,14 +1085,14 @@ export class VersionController {
1077
1085
  updateVersionFrom37To38() {
1078
1086
  const getConsoleInsightsEnabledSetting = () => {
1079
1087
  try {
1080
- return moduleSetting('console-insights-enabled');
1088
+ return this.#settings.moduleSetting('console-insights-enabled');
1081
1089
  }
1082
1090
  catch {
1083
1091
  return;
1084
1092
  }
1085
1093
  };
1086
1094
  const consoleInsightsEnabled = getConsoleInsightsEnabledSetting();
1087
- const onboardingFinished = Settings.instance().createLocalSetting('console-insights-onboarding-finished', false);
1095
+ const onboardingFinished = this.#settings.createLocalSetting('console-insights-onboarding-finished', false);
1088
1096
  if (consoleInsightsEnabled && consoleInsightsEnabled.get() === true && onboardingFinished.get() === false) {
1089
1097
  consoleInsightsEnabled.set(false);
1090
1098
  }
@@ -1099,7 +1107,7 @@ export class VersionController {
1099
1107
  // Note: we load the raw value via the globalStorage here because
1100
1108
  // `createSetting` creates if it is not present, and we do not want that;
1101
1109
  // we only want to update existing, old values.
1102
- const setting = Settings.instance().globalStorage.get(PREFERRED_NETWORK_COND);
1110
+ const setting = this.#settings.globalStorage.get(PREFERRED_NETWORK_COND);
1103
1111
  if (!setting) {
1104
1112
  return;
1105
1113
  }
@@ -1108,17 +1116,17 @@ export class VersionController {
1108
1116
  if (networkSetting.title === 'Slow 3G') {
1109
1117
  networkSetting.title = '3G';
1110
1118
  networkSetting.i18nTitleKey = '3G';
1111
- Settings.instance().globalStorage.set(PREFERRED_NETWORK_COND, JSON.stringify(networkSetting));
1119
+ this.#settings.globalStorage.set(PREFERRED_NETWORK_COND, JSON.stringify(networkSetting));
1112
1120
  }
1113
1121
  else if (networkSetting.title === 'Fast 3G') {
1114
1122
  networkSetting.title = 'Slow 4G';
1115
1123
  networkSetting.i18nTitleKey = 'Slow 4G';
1116
- Settings.instance().globalStorage.set(PREFERRED_NETWORK_COND, JSON.stringify(networkSetting));
1124
+ this.#settings.globalStorage.set(PREFERRED_NETWORK_COND, JSON.stringify(networkSetting));
1117
1125
  }
1118
1126
  }
1119
1127
  catch {
1120
1128
  // If parsing the setting threw, it's in some invalid state, so remove it.
1121
- Settings.instance().globalStorage.remove(PREFERRED_NETWORK_COND);
1129
+ this.#settings.globalStorage.remove(PREFERRED_NETWORK_COND);
1122
1130
  }
1123
1131
  }
1124
1132
  /**
@@ -1133,7 +1141,7 @@ export class VersionController {
1133
1141
  const hasCustomNetworkConditionsSetting = () => {
1134
1142
  try {
1135
1143
  // this will error if it does not exist
1136
- moduleSetting('custom-network-conditions');
1144
+ this.#settings.moduleSetting('custom-network-conditions');
1137
1145
  return true;
1138
1146
  }
1139
1147
  catch {
@@ -1150,7 +1158,7 @@ export class VersionController {
1150
1158
  * objects, and we need to set the right key on each one. The actual keys &
1151
1159
  * values in the object are not important.
1152
1160
  */
1153
- const conditionsSetting = moduleSetting('custom-network-conditions');
1161
+ const conditionsSetting = this.#settings.moduleSetting('custom-network-conditions');
1154
1162
  const customConditions = conditionsSetting.get();
1155
1163
  if (customConditions?.length > 0) {
1156
1164
  customConditions.forEach((condition, i) => {
@@ -1174,7 +1182,7 @@ export class VersionController {
1174
1182
  // is more likely to change. This migration step tries to update the
1175
1183
  // setting for users, or removes it if we fail, so they start fresh next
1176
1184
  // time they load DevTools.
1177
- const setting = Settings.instance().globalStorage.get(PREFERRED_NETWORK_COND_SETTING);
1185
+ const setting = this.#settings.globalStorage.get(PREFERRED_NETWORK_COND_SETTING);
1178
1186
  if (!setting) {
1179
1187
  return;
1180
1188
  }
@@ -1194,13 +1202,13 @@ export class VersionController {
1194
1202
  const key = UI_STRING_TO_NEW_KEY[networkSetting.i18nTitleKey];
1195
1203
  // The second argument is the default value, so it's important that we
1196
1204
  // set this to the default, and then update it to the new key.
1197
- const newSetting = Settings.instance().createSetting('active-network-condition-key', 'NO_THROTTLING');
1205
+ const newSetting = this.#settings.createSetting('active-network-condition-key', 'NO_THROTTLING');
1198
1206
  newSetting.set(key);
1199
1207
  }
1200
1208
  }
1201
1209
  finally {
1202
1210
  // This setting is now not used, so we can remove it.
1203
- Settings.instance().globalStorage.remove(PREFERRED_NETWORK_COND_SETTING);
1211
+ this.#settings.globalStorage.remove(PREFERRED_NETWORK_COND_SETTING);
1204
1212
  }
1205
1213
  }
1206
1214
  /*
@@ -1235,7 +1243,7 @@ export class VersionController {
1235
1243
  }
1236
1244
  const value = window.localStorage[key];
1237
1245
  window.localStorage.removeItem(key);
1238
- Settings.instance().globalStorage.set(key, value);
1246
+ this.#settings.globalStorage.set(key, value);
1239
1247
  }
1240
1248
  }
1241
1249
  clearBreakpointsWhenTooMany(breakpointsSetting, maxBreakpointsCount) {