@mcp-b/chrome-devtools-mcp 1.1.0 → 1.1.1

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 (656) hide show
  1. package/build/node_modules/chrome-devtools-frontend/LICENSE +27 -0
  2. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/App.js +4 -0
  3. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/AppProvider.js +17 -0
  4. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Base64.js +43 -0
  5. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/CharacterIdMap.js +27 -0
  6. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Color.js +2033 -0
  7. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/ColorConverter.js +332 -0
  8. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/ColorUtils.js +221 -0
  9. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Console.js +79 -0
  10. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Debouncer.js +14 -0
  11. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/EventTarget.js +14 -0
  12. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Gzip.js +66 -0
  13. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/JavaScriptMetaData.js +4 -0
  14. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Lazy.js +29 -0
  15. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/MapWithDefault.js +22 -0
  16. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Mutex.js +49 -0
  17. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Object.js +86 -0
  18. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/ParsedURL.js +449 -0
  19. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Progress.js +144 -0
  20. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/ResolverBase.js +69 -0
  21. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/ResourceType.js +495 -0
  22. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/ReturnToPanel.js +15 -0
  23. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Revealer.js +164 -0
  24. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Runnable.js +24 -0
  25. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/SegmentedRange.js +78 -0
  26. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/SettingRegistration.js +164 -0
  27. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Settings.js +1263 -0
  28. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/SimpleHistoryManager.js +97 -0
  29. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/StringOutputStream.js +14 -0
  30. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/TextDictionary.js +40 -0
  31. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Throttler.js +71 -0
  32. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Trie.js +127 -0
  33. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/common.js +41 -0
  34. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/AidaClient.js +434 -0
  35. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/DispatchHttpRequestClient.js +66 -0
  36. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/GdpClient.js +202 -0
  37. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/InspectorFrontendHost.js +92 -0
  38. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/InspectorFrontendHostAPI.js +69 -0
  39. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/InspectorFrontendHostStub.js +430 -0
  40. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/Platform.js +61 -0
  41. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/ResourceLoader.js +220 -0
  42. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/UserMetrics.js +968 -0
  43. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/host.js +13 -0
  44. package/build/node_modules/chrome-devtools-frontend/front_end/core/i18n/ByteUtilities.js +72 -0
  45. package/build/node_modules/chrome-devtools-frontend/front_end/core/i18n/DevToolsLocale.js +64 -0
  46. package/build/node_modules/chrome-devtools-frontend/front_end/core/i18n/NumberFormatter.js +67 -0
  47. package/build/node_modules/chrome-devtools-frontend/front_end/core/i18n/collect-ui-strings.js +73 -0
  48. package/build/node_modules/chrome-devtools-frontend/front_end/core/i18n/generate-locales-js.js +51 -0
  49. package/build/node_modules/chrome-devtools-frontend/front_end/core/i18n/i18n.js +9 -0
  50. package/build/node_modules/chrome-devtools-frontend/front_end/core/i18n/i18nImpl.js +135 -0
  51. package/build/node_modules/chrome-devtools-frontend/front_end/core/i18n/i18nTypes.js +4 -0
  52. package/build/node_modules/chrome-devtools-frontend/front_end/core/i18n/locales.js +14 -0
  53. package/build/node_modules/chrome-devtools-frontend/front_end/core/i18n/time-utilities.js +148 -0
  54. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/ArrayUtilities.js +199 -0
  55. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/Brand.js +4 -0
  56. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/Constructor.js +4 -0
  57. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/DateUtilities.js +13 -0
  58. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/DevToolsPath.js +27 -0
  59. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/HostRuntime.js +19 -0
  60. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/KeyboardUtilities.js +21 -0
  61. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/MapUtilities.js +79 -0
  62. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/MimeType.js +143 -0
  63. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/NumberUtilities.js +72 -0
  64. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/StringUtilities.js +538 -0
  65. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/Timing.js +9 -0
  66. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/TypedArrayUtilities.js +157 -0
  67. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/TypescriptUtilities.js +24 -0
  68. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/UIString.js +4 -0
  69. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/UserVisibleError.js +22 -0
  70. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/api/HostRuntime.js +4 -0
  71. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/api/api.js +5 -0
  72. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/browser/HostRuntime.js +63 -0
  73. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/browser/browser.js +5 -0
  74. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/node/HostRuntime.js +72 -0
  75. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/node/node.js +5 -0
  76. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/platform.js +26 -0
  77. package/build/node_modules/chrome-devtools-frontend/front_end/core/protocol_client/CDPConnection.js +17 -0
  78. package/build/node_modules/chrome-devtools-frontend/front_end/core/protocol_client/ConnectionTransport.js +12 -0
  79. package/build/node_modules/chrome-devtools-frontend/front_end/core/protocol_client/DevToolsCDPConnection.js +138 -0
  80. package/build/node_modules/chrome-devtools-frontend/front_end/core/protocol_client/InspectorBackend.js +539 -0
  81. package/build/node_modules/chrome-devtools-frontend/front_end/core/protocol_client/protocol_client.js +8 -0
  82. package/build/node_modules/chrome-devtools-frontend/front_end/core/root/DevToolsContext.js +54 -0
  83. package/build/node_modules/chrome-devtools-frontend/front_end/core/root/Runtime.js +11 -0
  84. package/build/node_modules/chrome-devtools-frontend/front_end/core/root/root.js +6 -0
  85. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/AccessibilityModel.js +281 -0
  86. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/AnimationModel.js +845 -0
  87. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/AutofillModel.js +155 -0
  88. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CPUProfilerModel.js +99 -0
  89. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CPUThrottlingManager.js +217 -0
  90. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSContainerQuery.js +98 -0
  91. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSFontFace.js +31 -0
  92. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSLayer.js +22 -0
  93. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSMatchedStyles.js +1318 -0
  94. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSMedia.js +100 -0
  95. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSMetadata.js +1532 -0
  96. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSModel.js +908 -0
  97. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSProperty.js +312 -0
  98. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSPropertyParser.js +574 -0
  99. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSPropertyParserMatchers.js +1346 -0
  100. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSQuery.js +53 -0
  101. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSRule.js +403 -0
  102. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSScope.js +22 -0
  103. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSStartingStyle.js +21 -0
  104. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSStyleDeclaration.js +275 -0
  105. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSStyleSheetHeader.js +166 -0
  106. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSSupports.js +24 -0
  107. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CategorizedBreakpoint.js +29 -0
  108. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ChildTargetManager.js +236 -0
  109. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CompilerSourceMappingContentProvider.js +47 -0
  110. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/Connections.js +205 -0
  111. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ConsoleModel.js +629 -0
  112. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ConsoleModelTypes.js +14 -0
  113. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/Cookie.js +241 -0
  114. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CookieModel.js +198 -0
  115. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CookieParser.js +163 -0
  116. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/DOMDebuggerModel.js +597 -0
  117. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/DOMModel.js +1635 -0
  118. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/DebuggerModel.js +1216 -0
  119. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/EmulationModel.js +527 -0
  120. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/EnhancedTracesParser.js +364 -0
  121. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/EventBreakpointsModel.js +127 -0
  122. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/FrameAssociated.js +4 -0
  123. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/FrameManager.js +199 -0
  124. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/HeapProfilerModel.js +130 -0
  125. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/HttpReasonPhraseStrings.js +75 -0
  126. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/IOModel.js +80 -0
  127. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/IsolateManager.js +208 -0
  128. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/IssuesModel.js +41 -0
  129. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/LayerTreeBase.js +95 -0
  130. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/LogModel.js +34 -0
  131. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/NetworkManager.js +2223 -0
  132. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/NetworkRequest.js +1654 -0
  133. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/OverlayColorGenerator.js +48 -0
  134. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/OverlayModel.js +765 -0
  135. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/OverlayPersistentHighlighter.js +384 -0
  136. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/PageLoad.js +25 -0
  137. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/PageResourceLoader.js +310 -0
  138. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/PaintProfiler.js +67 -0
  139. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/PerformanceMetricsModel.js +62 -0
  140. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/PreloadingModel.js +608 -0
  141. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/RehydratingConnection.js +413 -0
  142. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/RehydratingObject.js +4 -0
  143. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/RemoteObject.js +908 -0
  144. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/Resource.js +163 -0
  145. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ResourceTreeModel.js +923 -0
  146. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/RuntimeModel.js +535 -0
  147. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SDKModel.js +45 -0
  148. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ScopeTreeCache.js +36 -0
  149. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ScreenCaptureModel.js +176 -0
  150. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/Script.js +420 -0
  151. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SecurityOriginManager.js +54 -0
  152. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ServerSentEvents.js +67 -0
  153. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ServerSentEventsProtocol.js +113 -0
  154. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ServerTiming.js +216 -0
  155. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ServiceWorkerCacheModel.js +271 -0
  156. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ServiceWorkerManager.js +511 -0
  157. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMap.js +691 -0
  158. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMapCache.js +57 -0
  159. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMapFunctionRanges.js +132 -0
  160. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMapManager.js +201 -0
  161. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMapScopeChainEntry.js +156 -0
  162. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMapScopesInfo.js +508 -0
  163. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/StorageBucketsModel.js +143 -0
  164. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/StorageKeyManager.js +53 -0
  165. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/Target.js +257 -0
  166. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/TargetManager.js +395 -0
  167. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/TraceObject.js +55 -0
  168. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/WebAuthnModel.js +66 -0
  169. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/sdk-meta.js +1166 -0
  170. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/sdk.js +91 -0
  171. package/build/node_modules/chrome-devtools-frontend/front_end/foundation/Universe.js +34 -0
  172. package/build/node_modules/chrome-devtools-frontend/front_end/foundation/foundation.js +5 -0
  173. package/build/node_modules/chrome-devtools-frontend/front_end/generated/ARIAProperties.js +2640 -0
  174. package/build/node_modules/chrome-devtools-frontend/front_end/generated/Deprecation.js +384 -0
  175. package/build/node_modules/chrome-devtools-frontend/front_end/generated/InspectorBackendCommands.js +1532 -0
  176. package/build/node_modules/chrome-devtools-frontend/front_end/generated/SupportedCSSProperties.js +7602 -0
  177. package/build/node_modules/chrome-devtools-frontend/front_end/generated/protocol.js +4 -0
  178. package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/data_formatters/NetworkRequestFormatter.js +289 -0
  179. package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.js +995 -0
  180. package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.js +664 -0
  181. package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/data_formatters/UnitFormatters.js +139 -0
  182. package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/performance/AICallTree.js +377 -0
  183. package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/performance/AIContext.js +131 -0
  184. package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/performance/AIQueries.js +149 -0
  185. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/CSSWorkspaceBinding.js +245 -0
  186. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/CompilerScriptMapping.js +486 -0
  187. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/ContentProviderBasedProject.js +130 -0
  188. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/DebuggerLanguagePlugins.js +992 -0
  189. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/DebuggerWorkspaceBinding.js +592 -0
  190. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/DefaultScriptMapping.js +112 -0
  191. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/FileUtils.js +186 -0
  192. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/LiveLocation.js +60 -0
  193. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/NetworkProject.js +107 -0
  194. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/PresentationConsoleMessageHelper.js +244 -0
  195. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/ResourceMapping.js +564 -0
  196. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/ResourceScriptMapping.js +437 -0
  197. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/ResourceUtils.js +87 -0
  198. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/SASSSourceMapping.js +182 -0
  199. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/StylesSourceMapping.js +268 -0
  200. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/TempFile.js +55 -0
  201. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/bindings.js +20 -0
  202. package/build/node_modules/chrome-devtools-frontend/front_end/models/cpu_profile/CPUProfileDataModel.js +516 -0
  203. package/build/node_modules/chrome-devtools-frontend/front_end/models/cpu_profile/ProfileTreeModel.js +89 -0
  204. package/build/node_modules/chrome-devtools-frontend/front_end/models/cpu_profile/cpu_profile.js +6 -0
  205. package/build/node_modules/chrome-devtools-frontend/front_end/models/crux-manager/CrUXManager.js +285 -0
  206. package/build/node_modules/chrome-devtools-frontend/front_end/models/crux-manager/crux-manager.js +4 -0
  207. package/build/node_modules/chrome-devtools-frontend/front_end/models/emulation/DeviceModeModel.js +775 -0
  208. package/build/node_modules/chrome-devtools-frontend/front_end/models/emulation/EmulatedDevices.js +1706 -0
  209. package/build/node_modules/chrome-devtools-frontend/front_end/models/emulation/emulation.js +6 -0
  210. package/build/node_modules/chrome-devtools-frontend/front_end/models/formatter/FormatterWorkerPool.js +145 -0
  211. package/build/node_modules/chrome-devtools-frontend/front_end/models/formatter/ScriptFormatter.js +77 -0
  212. package/build/node_modules/chrome-devtools-frontend/front_end/models/formatter/formatter.js +6 -0
  213. package/build/node_modules/chrome-devtools-frontend/front_end/models/geometry/GeometryImpl.js +347 -0
  214. package/build/node_modules/chrome-devtools-frontend/front_end/models/geometry/geometry.js +4 -0
  215. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/AttributionReportingIssue.js +201 -0
  216. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/BounceTrackingIssue.js +49 -0
  217. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/CheckFormsIssuesTrigger.js +31 -0
  218. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/ClientHintIssue.js +71 -0
  219. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/ContentSecurityPolicyIssue.js +135 -0
  220. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/ContrastCheckTrigger.js +59 -0
  221. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/CookieDeprecationMetadataIssue.js +58 -0
  222. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/CookieIssue.js +514 -0
  223. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/CorsIssue.js +244 -0
  224. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/CrossOriginEmbedderPolicyIssue.js +110 -0
  225. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/DeprecationIssue.js +90 -0
  226. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/ElementAccessibilityIssue.js +95 -0
  227. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/FederatedAuthRequestIssue.js +231 -0
  228. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/FederatedAuthUserInfoRequestIssue.js +141 -0
  229. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/GenericIssue.js +212 -0
  230. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/HeavyAdIssue.js +52 -0
  231. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/Issue.js +152 -0
  232. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/IssueAggregator.js +314 -0
  233. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/IssueResolver.js +40 -0
  234. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/IssuesManager.js +416 -0
  235. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/IssuesManagerEvents.js +4 -0
  236. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/LowTextContrastIssue.js +48 -0
  237. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/MarkdownIssueDescription.js +104 -0
  238. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/MixedContentIssue.js +55 -0
  239. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/PartitioningBlobURLIssue.js +58 -0
  240. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/PropertyRuleIssue.js +58 -0
  241. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/QuirksModeIssue.js +48 -0
  242. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/RelatedIssue.js +70 -0
  243. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/SRIMessageSignatureIssue.js +87 -0
  244. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/SharedArrayBufferIssue.js +49 -0
  245. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/SharedDictionaryIssue.js +292 -0
  246. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/SourceFrameIssuesManager.js +81 -0
  247. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/StylesheetLoadingIssue.js +59 -0
  248. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/UnencodedDigestIssue.js +62 -0
  249. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/CoepCoopSandboxedIframeCannotNavigateToCoopPage.md +4 -0
  250. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/CoepCorpNotSameOrigin.md +8 -0
  251. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/CoepCorpNotSameOriginAfterDefaultedToSameOriginByCoep.md +18 -0
  252. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/CoepCorpNotSameSite.md +7 -0
  253. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/CoepFrameResourceNeedsCoepHeader.md +10 -0
  254. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/CompatibilityModeQuirks.md +5 -0
  255. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/CookieAttributeValueExceedsMaxSize.md +5 -0
  256. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/LowTextContrast.md +5 -0
  257. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteExcludeContextDowngradeRead.md +8 -0
  258. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteExcludeContextDowngradeSet.md +8 -0
  259. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteExcludeNavigationContextDowngrade.md +8 -0
  260. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteInvalidSameParty.md +8 -0
  261. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteNoneInsecureErrorRead.md +8 -0
  262. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteNoneInsecureErrorSet.md +8 -0
  263. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteNoneInsecureWarnRead.md +8 -0
  264. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteNoneInsecureWarnSet.md +8 -0
  265. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteSamePartyCrossPartyContextSet.md +10 -0
  266. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteUnspecifiedLaxAllowUnsafeRead.md +9 -0
  267. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteUnspecifiedLaxAllowUnsafeSet.md +9 -0
  268. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteWarnCrossDowngradeRead.md +8 -0
  269. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteWarnCrossDowngradeSet.md +8 -0
  270. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteWarnStrictLaxDowngradeStrict.md +8 -0
  271. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arInsecureContext.md +7 -0
  272. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arInvalidInfoHeader.md +5 -0
  273. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arInvalidRegisterOsSourceHeader.md +5 -0
  274. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arInvalidRegisterOsTriggerHeader.md +5 -0
  275. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arInvalidRegisterSourceHeader.md +5 -0
  276. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arInvalidRegisterTriggerHeader.md +5 -0
  277. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arNavigationRegistrationUniqueScopeAlreadySet.md +5 -0
  278. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arNavigationRegistrationWithoutTransientUserActivation.md +6 -0
  279. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arNoRegisterOsSourceHeader.md +5 -0
  280. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arNoRegisterOsTriggerHeader.md +5 -0
  281. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arNoRegisterSourceHeader.md +5 -0
  282. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arNoRegisterTriggerHeader.md +5 -0
  283. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arNoWebOrOsSupport.md +4 -0
  284. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arOsSourceIgnored.md +18 -0
  285. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arOsTriggerIgnored.md +19 -0
  286. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arPermissionPolicyDisabled.md +8 -0
  287. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arSourceAndTriggerHeaders.md +9 -0
  288. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arSourceIgnored.md +13 -0
  289. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arTriggerIgnored.md +12 -0
  290. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arUntrustworthyReportingOrigin.md +10 -0
  291. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arWebAndOsHeaders.md +11 -0
  292. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/bounceTrackingMitigations.md +3 -0
  293. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/clientHintMetaTagAllowListInvalidOrigin.md +4 -0
  294. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/clientHintMetaTagModifiedHTML.md +4 -0
  295. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieCrossSiteRedirectDowngrade.md +12 -0
  296. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieExcludeBlockedWithinRelatedWebsiteSet.md +4 -0
  297. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieExcludeDomainNonAscii.md +11 -0
  298. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieExcludePortMismatch.md +8 -0
  299. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieExcludeSchemeMismatch.md +7 -0
  300. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieExcludeThirdPartyPhaseoutRead.md +6 -0
  301. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieExcludeThirdPartyPhaseoutSet.md +6 -0
  302. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieWarnDomainNonAscii.md +11 -0
  303. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieWarnMetadataGrantRead.md +4 -0
  304. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieWarnMetadataGrantSet.md +4 -0
  305. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieWarnThirdPartyPhaseoutRead.md +6 -0
  306. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieWarnThirdPartyPhaseoutSet.md +6 -0
  307. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsAllowCredentialsRequired.md +6 -0
  308. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsDisabledScheme.md +7 -0
  309. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsDisallowedByMode.md +7 -0
  310. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsHeaderDisallowedByPreflightResponse.md +5 -0
  311. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsInsecurePrivateNetwork.md +10 -0
  312. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsInvalidHeaderValues.md +7 -0
  313. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsLocalNetworkAccessPermissionDenied.md +19 -0
  314. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsMethodDisallowedByPreflightResponse.md +5 -0
  315. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsNoCorsRedirectModeNotFollow.md +5 -0
  316. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsOriginMismatch.md +6 -0
  317. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsPreflightAllowPrivateNetworkError.md +10 -0
  318. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsPreflightResponseInvalid.md +5 -0
  319. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsPrivateNetworkPermissionDenied.md +10 -0
  320. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsRedirectContainsCredentials.md +5 -0
  321. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsWildcardOriginNotAllowed.md +8 -0
  322. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cspEvalViolation.md +9 -0
  323. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cspInlineViolation.md +10 -0
  324. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cspTrustedTypesPolicyViolation.md +5 -0
  325. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cspTrustedTypesSinkViolation.md +8 -0
  326. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cspURLViolation.md +10 -0
  327. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/deprecation.md +3 -0
  328. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestAccountsHttpNotFound.md +1 -0
  329. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestAccountsInvalidResponse.md +1 -0
  330. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestAccountsNoResponse.md +1 -0
  331. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestApprovalDeclined.md +1 -0
  332. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestCanceled.md +1 -0
  333. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestClientMetadataHttpNotFound.md +1 -0
  334. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestClientMetadataInvalidResponse.md +1 -0
  335. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestClientMetadataNoResponse.md +1 -0
  336. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestErrorFetchingSignin.md +1 -0
  337. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestErrorIdToken.md +1 -0
  338. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestIdTokenHttpNotFound.md +1 -0
  339. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestIdTokenInvalidRequest.md +1 -0
  340. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestIdTokenInvalidResponse.md +1 -0
  341. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestIdTokenNoResponse.md +1 -0
  342. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestInvalidSigninResponse.md +1 -0
  343. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestManifestHttpNotFound.md +1 -0
  344. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestManifestInvalidResponse.md +1 -0
  345. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestManifestNoResponse.md +1 -0
  346. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestTooManyRequests.md +1 -0
  347. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestInvalidAccountsResponse.md +1 -0
  348. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestInvalidConfigOrWellKnown.md +1 -0
  349. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNoAccountSharingPermission.md +1 -0
  350. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNoApiPermission.md +1 -0
  351. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNoReturningUserFromFetchedAccounts.md +1 -0
  352. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotIframe.md +1 -0
  353. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotPotentiallyTrustworthy.md +1 -0
  354. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotSameOrigin.md +1 -0
  355. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotSignedInWithIdp.md +1 -0
  356. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/fetchingPartitionedBlobURL.md +7 -0
  357. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericFormAriaLabelledByToNonExistingIdError.md +8 -0
  358. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericFormAutocompleteAttributeEmptyError.md +5 -0
  359. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericFormDuplicateIdForInputError.md +5 -0
  360. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericFormEmptyIdAndNameAttributesForInputError.md +5 -0
  361. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericFormInputAssignedAutocompleteValueToIdOrNameAttributeError.md +5 -0
  362. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericFormInputHasWrongButWellIntendedAutocompleteValueError.md +5 -0
  363. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericFormInputWithNoLabelError.md +5 -0
  364. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericFormLabelForMatchesNonExistingIdError.md +5 -0
  365. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericFormLabelForNameError.md +5 -0
  366. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericFormLabelHasNeitherForNorNestedInputError.md +5 -0
  367. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericNavigationEntryMarkedSkippable.md +7 -0
  368. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericResponseWasBlockedByORB.md +4 -0
  369. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/heavyAd.md +10 -0
  370. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/mixedContent.md +5 -0
  371. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/navigatingPartitionedBlobURL.md +5 -0
  372. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/placeholderDescriptionForInvisibleIssues.md +3 -0
  373. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/propertyRuleInvalidNameIssue.md +3 -0
  374. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/propertyRuleIssue.md +7 -0
  375. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/selectElementAccessibilityDisallowedOptGroupChild.md +7 -0
  376. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/selectElementAccessibilityDisallowedSelectChild.md +7 -0
  377. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/selectElementAccessibilityInteractiveContentAttributesSelectDescendant.md +3 -0
  378. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/selectElementAccessibilityInteractiveContentLegendChild.md +3 -0
  379. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/selectElementAccessibilityInteractiveContentOptionChild.md +3 -0
  380. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/selectElementAccessibilityNonPhrasingContentOptionChild.md +3 -0
  381. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedArrayBuffer.md +7 -0
  382. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryUseErrorCrossOriginNoCorsRequest.md +1 -0
  383. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryUseErrorDictionaryLoadFailure.md +3 -0
  384. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryUseErrorMatchingDictionaryNotUsed.md +3 -0
  385. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryUseErrorUnexpectedContentDictionaryHeader.md +1 -0
  386. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorCossOriginNoCorsRequest.md +1 -0
  387. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorDisallowedBySettings.md +1 -0
  388. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorExpiredResponse.md +3 -0
  389. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorFeatureDisabled.md +3 -0
  390. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorInsufficientResources.md +1 -0
  391. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorInvalidMatchField.md +1 -0
  392. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorInvalidStructuredHeader.md +1 -0
  393. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorInvalidTTLField.md +1 -0
  394. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorNavigationRequest.md +3 -0
  395. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorNoMatchField.md +1 -0
  396. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonIntegerTTLField.md +1 -0
  397. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonListMatchDestField.md +1 -0
  398. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonSecureContext.md +3 -0
  399. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonStringIdField.md +1 -0
  400. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonStringInMatchDestList.md +1 -0
  401. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonStringMatchField.md +1 -0
  402. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonTokenTypeField.md +1 -0
  403. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorRequestAborted.md +1 -0
  404. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorShuttingDown.md +1 -0
  405. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorTooLongIdField.md +3 -0
  406. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorUnsupportedType.md +3 -0
  407. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriInvalidSignatureHeader.md +14 -0
  408. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriInvalidSignatureInputHeader.md +15 -0
  409. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriMissingSignatureHeader.md +8 -0
  410. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriMissingSignatureInputHeader.md +7 -0
  411. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureHeaderValueIsIncorrectLength.md +11 -0
  412. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureHeaderValueIsNotByteSequence.md +14 -0
  413. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureHeaderValueIsParameterized.md +15 -0
  414. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidComponentName.md +8 -0
  415. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidComponentType.md +13 -0
  416. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidDerivedComponentParameter.md +4 -0
  417. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidHeaderComponentParameter.md +5 -0
  418. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidParameter.md +11 -0
  419. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderKeyIdLength.md +12 -0
  420. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderMissingLabel.md +6 -0
  421. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderMissingRequiredParameters.md +8 -0
  422. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderValueMissingComponents.md +11 -0
  423. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderValueNotInnerList.md +11 -0
  424. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriValidationFailedIntegrityMismatch.md +10 -0
  425. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriValidationFailedInvalidLength.md +5 -0
  426. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriValidationFailedSignatureExpired.md +6 -0
  427. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriValidationFailedSignatureMismatch.md +11 -0
  428. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/stylesheetLateImport.md +4 -0
  429. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/stylesheetRequestFailed.md +3 -0
  430. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/summaryElementAccessibilityInteractiveContentSummaryDescendant.md +3 -0
  431. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/unencodedDigestIncorrectDigestLength.md +12 -0
  432. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/unencodedDigestIncorrectDigestType.md +17 -0
  433. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/unencodedDigestMalformedDictionary.md +14 -0
  434. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/unencodedDigestUnknownAlgorithm.md +15 -0
  435. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/issues_manager.js +35 -0
  436. package/build/node_modules/chrome-devtools-frontend/front_end/models/logs/LogManager.js +67 -0
  437. package/build/node_modules/chrome-devtools-frontend/front_end/models/logs/NetworkLog.js +494 -0
  438. package/build/node_modules/chrome-devtools-frontend/front_end/models/logs/RequestResolver.js +49 -0
  439. package/build/node_modules/chrome-devtools-frontend/front_end/models/logs/logs-meta.js +73 -0
  440. package/build/node_modules/chrome-devtools-frontend/front_end/models/logs/logs.js +7 -0
  441. package/build/node_modules/chrome-devtools-frontend/front_end/models/network_time_calculator/Calculator.js +4 -0
  442. package/build/node_modules/chrome-devtools-frontend/front_end/models/network_time_calculator/NetworkTimeCalculator.js +256 -0
  443. package/build/node_modules/chrome-devtools-frontend/front_end/models/network_time_calculator/RequestTimeRanges.js +122 -0
  444. package/build/node_modules/chrome-devtools-frontend/front_end/models/network_time_calculator/network_time_calculator.js +6 -0
  445. package/build/node_modules/chrome-devtools-frontend/front_end/models/source_map_scopes/FunctionCodeResolver.js +192 -0
  446. package/build/node_modules/chrome-devtools-frontend/front_end/models/source_map_scopes/NamesResolver.js +622 -0
  447. package/build/node_modules/chrome-devtools-frontend/front_end/models/source_map_scopes/ScopeChainModel.js +59 -0
  448. package/build/node_modules/chrome-devtools-frontend/front_end/models/source_map_scopes/source_map_scopes.js +7 -0
  449. package/build/node_modules/chrome-devtools-frontend/front_end/models/stack_trace/StackTrace.js +4 -0
  450. package/build/node_modules/chrome-devtools-frontend/front_end/models/stack_trace/StackTraceImpl.js +67 -0
  451. package/build/node_modules/chrome-devtools-frontend/front_end/models/stack_trace/StackTraceModel.js +97 -0
  452. package/build/node_modules/chrome-devtools-frontend/front_end/models/stack_trace/Trie.js +121 -0
  453. package/build/node_modules/chrome-devtools-frontend/front_end/models/stack_trace/stack_trace.js +5 -0
  454. package/build/node_modules/chrome-devtools-frontend/front_end/models/stack_trace/stack_trace_impl.js +7 -0
  455. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/CodeMirrorUtils.js +32 -0
  456. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/ContentData.js +173 -0
  457. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/ContentProvider.js +30 -0
  458. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/StaticContentProvider.js +32 -0
  459. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/StreamingContentData.js +79 -0
  460. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/Text.js +69 -0
  461. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/TextCursor.js +35 -0
  462. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/TextRange.js +231 -0
  463. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/TextUtils.js +355 -0
  464. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/WasmDisassembly.js +68 -0
  465. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/text_utils.js +14 -0
  466. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/EntityMapper.js +122 -0
  467. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/EventsSerializer.js +81 -0
  468. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/LanternComputationData.js +371 -0
  469. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/ModelImpl.js +169 -0
  470. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/Name.js +114 -0
  471. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/Processor.js +555 -0
  472. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/Styles.js +815 -0
  473. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/FilmStrip.js +44 -0
  474. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/MainThreadActivity.js +76 -0
  475. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/ScriptDuplication.js +162 -0
  476. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/StackTraceForEvent.js +191 -0
  477. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/ThirdParties.js +118 -0
  478. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/TraceFilter.js +50 -0
  479. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/TraceTree.js +599 -0
  480. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/extras.js +10 -0
  481. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/AnimationFramesHandler.js +109 -0
  482. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/AnimationHandler.js +26 -0
  483. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/AsyncJSCallsHandler.js +187 -0
  484. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/AuctionWorkletsHandler.js +162 -0
  485. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/DOMStatsHandler.js +21 -0
  486. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/ExtensionTraceDataHandler.js +263 -0
  487. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/FlowsHandler.js +148 -0
  488. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/FramesHandler.js +485 -0
  489. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/GPUHandler.js +35 -0
  490. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/ImagePaintingHandler.js +147 -0
  491. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/InitiatorsHandler.js +180 -0
  492. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/InvalidationsHandler.js +126 -0
  493. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/LargestImagePaintHandler.js +85 -0
  494. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/LargestTextPaintHandler.js +27 -0
  495. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/LayerTreeHandler.js +103 -0
  496. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/LayoutShiftsHandler.js +449 -0
  497. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/MemoryHandler.js +21 -0
  498. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/MetaHandler.js +404 -0
  499. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/ModelHandlers.js +33 -0
  500. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/NetworkRequestsHandler.js +566 -0
  501. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/PageFramesHandler.js +42 -0
  502. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/PageLoadMetricsHandler.js +349 -0
  503. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/RendererHandler.js +346 -0
  504. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/SamplesHandler.js +260 -0
  505. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/ScreenshotsHandler.js +97 -0
  506. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/ScriptsHandler.js +276 -0
  507. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/SelectorStatsHandler.js +71 -0
  508. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/Threads.js +101 -0
  509. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/UserInteractionsHandler.js +317 -0
  510. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/UserTimingsHandler.js +183 -0
  511. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/WarningsHandler.js +134 -0
  512. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/WorkersHandler.js +33 -0
  513. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/handlers.js +7 -0
  514. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/helpers.js +163 -0
  515. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/types.js +1 -0
  516. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/Extensions.js +41 -0
  517. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/Network.js +102 -0
  518. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/SamplesIntegrator.js +495 -0
  519. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/SyntheticEvents.js +74 -0
  520. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/Timing.js +186 -0
  521. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/Trace.js +820 -0
  522. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/TreeHelpers.js +254 -0
  523. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/helpers.js +10 -0
  524. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/CLSCulprits.js +489 -0
  525. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/Cache.js +209 -0
  526. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/Common.js +340 -0
  527. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/DOMSize.js +181 -0
  528. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/DocumentLatency.js +258 -0
  529. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/DuplicatedJavaScript.js +90 -0
  530. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/FontDisplay.js +82 -0
  531. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/ForcedReflow.js +161 -0
  532. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/INPBreakdown.js +129 -0
  533. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/ImageDelivery.js +263 -0
  534. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/LCPBreakdown.js +199 -0
  535. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/LCPDiscovery.js +183 -0
  536. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/LegacyJavaScript.js +90 -0
  537. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/Models.js +21 -0
  538. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/ModernHTTP.js +200 -0
  539. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/NetworkDependencyTree.js +545 -0
  540. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/RenderBlocking.js +192 -0
  541. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/SlowCSSSelector.js +136 -0
  542. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/Statistics.js +92 -0
  543. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/ThirdParties.js +98 -0
  544. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/Viewport.js +102 -0
  545. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/insights.js +9 -0
  546. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/types.js +18 -0
  547. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/core/LanternError.js +6 -0
  548. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/core/NetworkAnalyzer.js +488 -0
  549. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/core/core.js +5 -0
  550. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/graph/BaseNode.js +276 -0
  551. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/graph/CPUNode.js +63 -0
  552. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/graph/NetworkNode.js +82 -0
  553. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/graph/PageDependencyGraph.js +551 -0
  554. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/graph/graph.js +7 -0
  555. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/lantern.js +9 -0
  556. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/FirstContentfulPaint.js +136 -0
  557. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/Interactive.js +67 -0
  558. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/LargestContentfulPaint.js +68 -0
  559. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/MaxPotentialFID.js +48 -0
  560. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/Metric.js +68 -0
  561. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/SpeedIndex.js +101 -0
  562. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/TBTUtils.js +64 -0
  563. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/TotalBlockingTime.js +78 -0
  564. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/metrics.js +11 -0
  565. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/ConnectionPool.js +115 -0
  566. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/Constants.js +42 -0
  567. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/DNSCache.js +47 -0
  568. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/SimulationTimingMap.js +134 -0
  569. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/Simulator.js +450 -0
  570. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/TCPConnection.js +154 -0
  571. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/simulation.js +9 -0
  572. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/types/Lantern.js +24 -0
  573. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/types/types.js +4 -0
  574. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/trace.js +17 -0
  575. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/Configuration.js +18 -0
  576. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/Extensions.js +37 -0
  577. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/File.js +57 -0
  578. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/Overlays.js +4 -0
  579. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/Timing.js +15 -0
  580. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/TraceEvents.js +580 -0
  581. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/types.js +9 -0
  582. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace_source_maps_resolver/SourceMapsResolver.js +224 -0
  583. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace_source_maps_resolver/trace_source_maps_resolver.js +4 -0
  584. package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/FileManager.js +64 -0
  585. package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/IgnoreListManager.js +504 -0
  586. package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/SearchConfig.js +113 -0
  587. package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/UISourceCode.js +601 -0
  588. package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/WorkspaceImpl.js +201 -0
  589. package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/workspace-meta.js +34 -0
  590. package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/workspace.js +9 -0
  591. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/codemirror.next/codemirror.next.js +1 -0
  592. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/i18n/LICENSE +202 -0
  593. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/i18n/i18n-impl.js +46 -0
  594. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/i18n/i18n.js +6 -0
  595. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/i18n/localized-string-set.js +122 -0
  596. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/intl-messageformat/LICENSE +33 -0
  597. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/intl-messageformat/intl-messageformat.js +5 -0
  598. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/intl-messageformat/package/index.js +13 -0
  599. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/intl-messageformat/package/intl-messageformat.esm.js +1725 -0
  600. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/intl-messageformat/package/intl-messageformat.iife.js +1840 -0
  601. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/intl-messageformat/package/lib/index.js +10 -0
  602. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/intl-messageformat/package/lib/src/core.js +233 -0
  603. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/intl-messageformat/package/lib/src/error.js +48 -0
  604. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/intl-messageformat/package/lib/src/formatters.js +177 -0
  605. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/intl-messageformat/package/src/core.js +236 -0
  606. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/intl-messageformat/package/src/error.js +51 -0
  607. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/intl-messageformat/package/src/formatters.js +182 -0
  608. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/legacy-javascript/LICENSE +202 -0
  609. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/legacy-javascript/legacy-javascript.js +2 -0
  610. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/legacy-javascript/lib/legacy-javascript.js +940 -0
  611. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/LICENSE +39 -0
  612. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/marked.js +2 -0
  613. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/bin/main.js +255 -0
  614. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/bin/marked.js +11 -0
  615. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/lib/marked.esm.js +2695 -0
  616. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/lib/marked.js +2233 -0
  617. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/lib/marked.umd.js +2719 -0
  618. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/src/Lexer.js +453 -0
  619. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/src/Parser.js +233 -0
  620. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/src/Renderer.js +137 -0
  621. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/src/Slugger.js +46 -0
  622. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/src/TextRenderer.js +34 -0
  623. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/src/Tokenizer.js +683 -0
  624. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/src/defaults.js +27 -0
  625. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/src/helpers.js +240 -0
  626. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/src/marked.js +318 -0
  627. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/src/rules.js +243 -0
  628. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/LICENSE +26 -0
  629. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/builder/builder.js +196 -0
  630. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/builder/safe_builder.js +226 -0
  631. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/codec.js +4 -0
  632. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/decode/decode.js +394 -0
  633. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/encode/encode.js +24 -0
  634. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/encode/encoder.js +283 -0
  635. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/mod.js +7 -0
  636. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/util.js +9 -0
  637. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/vlq.js +84 -0
  638. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/source-map-scopes-codec.js +4 -0
  639. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/LICENSE +20 -0
  640. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/lib/nostats-subset.js +146 -0
  641. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/httparchive-nostats-subset.js +2 -0
  642. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/httparchive-subset.js +2 -0
  643. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/create-entity-finder-api.js +118 -0
  644. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/create-entity-finder-api.test.js +40 -0
  645. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/entities.test.js +26 -0
  646. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/index.js +4 -0
  647. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/index.test.js +215 -0
  648. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/subsets/httparchive-nostats.js +4 -0
  649. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/subsets/httparchive.js +4 -0
  650. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/subsets/nostats.js +4 -0
  651. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/nostats-subset.js +2 -0
  652. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/third-party-web.js +2 -0
  653. package/build/node_modules/chrome-devtools-frontend/mcp/HostBindings.js +222 -0
  654. package/build/node_modules/chrome-devtools-frontend/mcp/mcp.js +35 -0
  655. package/build/src/index.js +0 -0
  656. package/package.json +21 -20
@@ -0,0 +1,1318 @@
1
+ // Copyright 2016 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 Platform from '../platform/platform.js';
5
+ import { CSSMetadata, cssMetadata } from './CSSMetadata.js';
6
+ import { CSSProperty } from './CSSProperty.js';
7
+ import * as PropertyParser from './CSSPropertyParser.js';
8
+ import { AnchorFunctionMatcher, AngleMatcher, AttributeMatcher, AutoBaseMatcher, BaseVariableMatcher, BezierMatcher, BinOpMatcher, ColorMatcher, ColorMixMatcher, CustomFunctionMatcher, defaultValueForCSSType, EnvFunctionMatcher, FlexGridGridLanesMatcher, GridTemplateMatcher, LengthMatcher, LightDarkColorMatcher, LinearGradientMatcher, LinkableNameMatcher, localEvalCSS, MathFunctionMatcher, PositionAnchorMatcher, PositionTryMatcher, RelativeColorChannelMatcher, ShadowMatcher, StringMatcher, URLMatcher, VariableMatcher } from './CSSPropertyParserMatchers.js';
9
+ import { CSSAtRule, CSSFunctionRule, CSSKeyframeRule, CSSKeyframesRule, CSSPositionTryRule, CSSPropertyRule, CSSStyleRule, } from './CSSRule.js';
10
+ import { CSSStyleDeclaration, Type } from './CSSStyleDeclaration.js';
11
+ function containsStyle(styles, query) {
12
+ if (!query.styleSheetId || !query.range) {
13
+ return false;
14
+ }
15
+ for (const style of styles) {
16
+ if (query.styleSheetId === style.styleSheetId && style.range && query.range.equal(style.range)) {
17
+ return true;
18
+ }
19
+ }
20
+ return false;
21
+ }
22
+ function containsCustomProperties(style) {
23
+ const properties = style.allProperties();
24
+ return properties.some(property => cssMetadata().isCustomProperty(property.name));
25
+ }
26
+ function containsInherited(style) {
27
+ const properties = style.allProperties();
28
+ for (let i = 0; i < properties.length; ++i) {
29
+ const property = properties[i];
30
+ // Does this style contain non-overridden inherited property?
31
+ if (property.activeInStyle() && cssMetadata().isPropertyInherited(property.name)) {
32
+ return true;
33
+ }
34
+ }
35
+ return false;
36
+ }
37
+ function cleanUserAgentPayload(payload) {
38
+ for (const ruleMatch of payload) {
39
+ cleanUserAgentSelectors(ruleMatch);
40
+ }
41
+ // Merge UA rules that are sequential and have similar selector/media.
42
+ const cleanMatchedPayload = [];
43
+ for (const ruleMatch of payload) {
44
+ const lastMatch = cleanMatchedPayload[cleanMatchedPayload.length - 1];
45
+ if (!lastMatch || ruleMatch.rule.origin !== 'user-agent' || lastMatch.rule.origin !== 'user-agent' ||
46
+ ruleMatch.rule.selectorList.text !== lastMatch.rule.selectorList.text ||
47
+ mediaText(ruleMatch) !== mediaText(lastMatch)) {
48
+ cleanMatchedPayload.push(ruleMatch);
49
+ continue;
50
+ }
51
+ mergeRule(ruleMatch, lastMatch);
52
+ }
53
+ return cleanMatchedPayload;
54
+ function mergeRule(from, to) {
55
+ const shorthands = new Map();
56
+ const properties = new Map();
57
+ for (const entry of to.rule.style.shorthandEntries) {
58
+ shorthands.set(entry.name, entry.value);
59
+ }
60
+ for (const entry of to.rule.style.cssProperties) {
61
+ properties.set(entry.name, entry.value);
62
+ }
63
+ for (const entry of from.rule.style.shorthandEntries) {
64
+ shorthands.set(entry.name, entry.value);
65
+ }
66
+ for (const entry of from.rule.style.cssProperties) {
67
+ properties.set(entry.name, entry.value);
68
+ }
69
+ to.rule.style.shorthandEntries = [...shorthands.entries()].map(([name, value]) => ({ name, value }));
70
+ to.rule.style.cssProperties = [...properties.entries()].map(([name, value]) => ({ name, value }));
71
+ }
72
+ function mediaText(ruleMatch) {
73
+ if (!ruleMatch.rule.media) {
74
+ return null;
75
+ }
76
+ return ruleMatch.rule.media.map(media => media.text).join(', ');
77
+ }
78
+ function cleanUserAgentSelectors(ruleMatch) {
79
+ const { matchingSelectors, rule } = ruleMatch;
80
+ if (rule.origin !== 'user-agent' || !matchingSelectors.length) {
81
+ return;
82
+ }
83
+ rule.selectorList.selectors = rule.selectorList.selectors.filter((_, i) => matchingSelectors.includes(i));
84
+ rule.selectorList.text = rule.selectorList.selectors.map(item => item.text).join(', ');
85
+ ruleMatch.matchingSelectors = matchingSelectors.map((_, i) => i);
86
+ }
87
+ }
88
+ /**
89
+ * Return a mapping of the highlight names in the specified RuleMatch to
90
+ * the indices of selectors in that selector list with that highlight name.
91
+ *
92
+ * For example, consider the following ruleset:
93
+ * span::highlight(foo), div, #mySpan::highlight(bar), .highlighted::highlight(foo) {
94
+ * color: blue;
95
+ * }
96
+ *
97
+ * For a <span id="mySpan" class="highlighted"></span>, a RuleMatch for that span
98
+ * would have matchingSelectors [0, 2, 3] indicating that the span
99
+ * matches all of the highlight selectors.
100
+ *
101
+ * For that RuleMatch, this function would produce the following map:
102
+ * {
103
+ * "foo": [0, 3],
104
+ * "bar": [2]
105
+ * }
106
+ *
107
+ * @param ruleMatch
108
+ * @returns A mapping of highlight names to lists of indices into the selector
109
+ * list associated with ruleMatch. The indices correspond to the selectors in the rule
110
+ * associated with the key's highlight name.
111
+ */
112
+ function customHighlightNamesToMatchingSelectorIndices(ruleMatch) {
113
+ const highlightNamesToMatchingSelectors = new Map();
114
+ for (let i = 0; i < ruleMatch.matchingSelectors.length; i++) {
115
+ const matchingSelectorIndex = ruleMatch.matchingSelectors[i];
116
+ const selectorText = ruleMatch.rule.selectorList.selectors[matchingSelectorIndex].text;
117
+ const highlightNameMatch = selectorText.match(/::highlight\((.*)\)/);
118
+ if (highlightNameMatch) {
119
+ const highlightName = highlightNameMatch[1];
120
+ const selectorsForName = highlightNamesToMatchingSelectors.get(highlightName);
121
+ if (selectorsForName) {
122
+ selectorsForName.push(matchingSelectorIndex);
123
+ }
124
+ else {
125
+ highlightNamesToMatchingSelectors.set(highlightName, [matchingSelectorIndex]);
126
+ }
127
+ }
128
+ }
129
+ return highlightNamesToMatchingSelectors;
130
+ }
131
+ function queryMatches(style) {
132
+ if (!style.parentRule) {
133
+ return true;
134
+ }
135
+ const parentRule = style.parentRule;
136
+ const queries = [...parentRule.media, ...parentRule.containerQueries, ...parentRule.supports, ...parentRule.scopes];
137
+ for (const query of queries) {
138
+ if (!query.active()) {
139
+ return false;
140
+ }
141
+ }
142
+ return true;
143
+ }
144
+ export class CSSRegisteredProperty {
145
+ #registration;
146
+ #cssModel;
147
+ #style;
148
+ constructor(cssModel, registration) {
149
+ this.#cssModel = cssModel;
150
+ this.#registration = registration;
151
+ }
152
+ propertyName() {
153
+ return this.#registration instanceof CSSPropertyRule ? this.#registration.propertyName().text :
154
+ this.#registration.propertyName;
155
+ }
156
+ initialValue() {
157
+ return this.#registration instanceof CSSPropertyRule ? this.#registration.initialValue() :
158
+ this.#registration.initialValue?.text ?? null;
159
+ }
160
+ inherits() {
161
+ return this.#registration instanceof CSSPropertyRule ? this.#registration.inherits() : this.#registration.inherits;
162
+ }
163
+ syntax() {
164
+ return this.#registration instanceof CSSPropertyRule ? this.#registration.syntax() :
165
+ `"${this.#registration.syntax}"`;
166
+ }
167
+ parseValue(matchedStyles, computedStyles) {
168
+ const value = this.initialValue();
169
+ if (!value) {
170
+ return null;
171
+ }
172
+ return PropertyParser.matchDeclaration(this.propertyName(), value, matchedStyles.propertyMatchers(this.style(), computedStyles));
173
+ }
174
+ #asCSSProperties() {
175
+ if (this.#registration instanceof CSSPropertyRule) {
176
+ return [];
177
+ }
178
+ const { inherits, initialValue, syntax } = this.#registration;
179
+ const properties = [
180
+ { name: 'inherits', value: `${inherits}` },
181
+ { name: 'syntax', value: `"${syntax}"` },
182
+ ];
183
+ if (initialValue !== undefined) {
184
+ properties.push({ name: 'initial-value', value: initialValue.text });
185
+ }
186
+ return properties;
187
+ }
188
+ style() {
189
+ if (!this.#style) {
190
+ this.#style = this.#registration instanceof CSSPropertyRule ?
191
+ this.#registration.style :
192
+ new CSSStyleDeclaration(this.#cssModel, null, { cssProperties: this.#asCSSProperties(), shorthandEntries: [] }, Type.Pseudo);
193
+ }
194
+ return this.#style;
195
+ }
196
+ }
197
+ export class CSSMatchedStyles {
198
+ #cssModel;
199
+ #node;
200
+ #addedStyles = new Map();
201
+ #matchingSelectors = new Map();
202
+ #keyframes = [];
203
+ #registeredProperties;
204
+ #registeredPropertyMap = new Map();
205
+ #nodeForStyle = new Map();
206
+ #inheritedStyles = new Set();
207
+ #styleToDOMCascade = new Map();
208
+ #parentLayoutNodeId;
209
+ #positionTryRules;
210
+ #activePositionFallbackIndex;
211
+ #mainDOMCascade;
212
+ #pseudoDOMCascades;
213
+ #customHighlightPseudoDOMCascades;
214
+ #functionRules;
215
+ #atRules;
216
+ #functionRuleMap = new Map();
217
+ #environmentVariables = {};
218
+ static async create(payload) {
219
+ const cssMatchedStyles = new CSSMatchedStyles(payload);
220
+ await cssMatchedStyles.init(payload);
221
+ return cssMatchedStyles;
222
+ }
223
+ constructor({ cssModel, node, animationsPayload, parentLayoutNodeId, positionTryRules, propertyRules, cssPropertyRegistrations, activePositionFallbackIndex, functionRules, atRules, }) {
224
+ this.#cssModel = cssModel;
225
+ this.#node = node;
226
+ this.#registeredProperties = [
227
+ ...propertyRules.map(rule => new CSSPropertyRule(cssModel, rule)),
228
+ ...cssPropertyRegistrations,
229
+ ].map(r => new CSSRegisteredProperty(cssModel, r));
230
+ if (animationsPayload) {
231
+ this.#keyframes = animationsPayload.map(rule => new CSSKeyframesRule(cssModel, rule));
232
+ }
233
+ this.#positionTryRules = positionTryRules.map(rule => new CSSPositionTryRule(cssModel, rule));
234
+ this.#parentLayoutNodeId = parentLayoutNodeId;
235
+ this.#activePositionFallbackIndex = activePositionFallbackIndex;
236
+ this.#functionRules = functionRules.map(rule => new CSSFunctionRule(cssModel, rule));
237
+ this.#atRules = atRules.map(rule => new CSSAtRule(cssModel, rule));
238
+ }
239
+ async init({ matchedPayload, inheritedPayload, inlinePayload, attributesPayload, pseudoPayload, inheritedPseudoPayload, animationStylesPayload, transitionsStylePayload, inheritedAnimatedPayload, }) {
240
+ matchedPayload = cleanUserAgentPayload(matchedPayload);
241
+ for (const inheritedResult of inheritedPayload) {
242
+ inheritedResult.matchedCSSRules = cleanUserAgentPayload(inheritedResult.matchedCSSRules);
243
+ }
244
+ this.#environmentVariables = await this.cssModel().getEnvironmentVariables();
245
+ this.#mainDOMCascade = await this.buildMainCascade(inlinePayload, attributesPayload, matchedPayload, inheritedPayload, animationStylesPayload, transitionsStylePayload, inheritedAnimatedPayload);
246
+ [this.#pseudoDOMCascades, this.#customHighlightPseudoDOMCascades] =
247
+ this.buildPseudoCascades(pseudoPayload, inheritedPseudoPayload);
248
+ for (const domCascade of Array.from(this.#customHighlightPseudoDOMCascades.values())
249
+ .concat(Array.from(this.#pseudoDOMCascades.values()))
250
+ .concat(this.#mainDOMCascade)) {
251
+ for (const style of domCascade.styles()) {
252
+ this.#styleToDOMCascade.set(style, domCascade);
253
+ }
254
+ }
255
+ for (const prop of this.#registeredProperties) {
256
+ this.#registeredPropertyMap.set(prop.propertyName(), prop);
257
+ }
258
+ for (const rule of this.#functionRules) {
259
+ this.#functionRuleMap.set(rule.functionName().text, rule);
260
+ }
261
+ }
262
+ async buildMainCascade(inlinePayload, attributesPayload, matchedPayload, inheritedPayload, animationStylesPayload, transitionsStylePayload, inheritedAnimatedPayload) {
263
+ const nodeCascades = [];
264
+ const nodeStyles = [];
265
+ function addAttributesStyle() {
266
+ if (!attributesPayload) {
267
+ return;
268
+ }
269
+ const style = new CSSStyleDeclaration(this.#cssModel, null, attributesPayload, Type.Attributes);
270
+ this.#nodeForStyle.set(style, this.#node);
271
+ nodeStyles.push(style);
272
+ }
273
+ // Transition styles take precedence over animation styles & inline styles.
274
+ if (transitionsStylePayload) {
275
+ const style = new CSSStyleDeclaration(this.#cssModel, null, transitionsStylePayload, Type.Transition);
276
+ this.#nodeForStyle.set(style, this.#node);
277
+ nodeStyles.push(style);
278
+ }
279
+ // Animation styles take precedence over inline styles.
280
+ for (const animationsStyle of animationStylesPayload) {
281
+ const style = new CSSStyleDeclaration(this.#cssModel, null, animationsStyle.style, Type.Animation, animationsStyle.name);
282
+ this.#nodeForStyle.set(style, this.#node);
283
+ nodeStyles.push(style);
284
+ }
285
+ // Inline style takes precedence over regular and inherited rules.
286
+ if (inlinePayload && this.#node.nodeType() === Node.ELEMENT_NODE) {
287
+ const style = new CSSStyleDeclaration(this.#cssModel, null, inlinePayload, Type.Inline);
288
+ this.#nodeForStyle.set(style, this.#node);
289
+ nodeStyles.push(style);
290
+ }
291
+ // Add rules in reverse order to match the cascade order.
292
+ let addedAttributesStyle;
293
+ for (let i = matchedPayload.length - 1; i >= 0; --i) {
294
+ const rule = new CSSStyleRule(this.#cssModel, matchedPayload[i].rule);
295
+ if ((rule.isInjected() || rule.isUserAgent()) && !addedAttributesStyle) {
296
+ // Show element's Style Attributes after all author rules.
297
+ addedAttributesStyle = true;
298
+ addAttributesStyle.call(this);
299
+ }
300
+ this.#nodeForStyle.set(rule.style, this.#node);
301
+ nodeStyles.push(rule.style);
302
+ this.addMatchingSelectors(this.#node, rule, matchedPayload[i].matchingSelectors);
303
+ }
304
+ if (!addedAttributesStyle) {
305
+ addAttributesStyle.call(this);
306
+ }
307
+ nodeCascades.push(new NodeCascade(this, nodeStyles, this.#node, false /* #isInherited */));
308
+ // Walk the node structure and identify styles with inherited properties.
309
+ let parentNode = this.#node.parentNode;
310
+ const traverseParentInFlatTree = async (node) => {
311
+ if (node.hasAssignedSlot()) {
312
+ return await node.assignedSlot?.deferredNode.resolvePromise() ?? null;
313
+ }
314
+ return node.parentNode;
315
+ };
316
+ for (let i = 0; parentNode && inheritedPayload && i < inheritedPayload.length; ++i) {
317
+ const inheritedStyles = [];
318
+ const entryPayload = inheritedPayload[i];
319
+ const inheritedAnimatedEntryPayload = inheritedAnimatedPayload[i];
320
+ const inheritedInlineStyle = entryPayload.inlineStyle ?
321
+ new CSSStyleDeclaration(this.#cssModel, null, entryPayload.inlineStyle, Type.Inline) :
322
+ null;
323
+ const inheritedTransitionsStyle = inheritedAnimatedEntryPayload?.transitionsStyle ?
324
+ new CSSStyleDeclaration(this.#cssModel, null, inheritedAnimatedEntryPayload?.transitionsStyle, Type.Transition) :
325
+ null;
326
+ const inheritedAnimationStyles = inheritedAnimatedEntryPayload?.animationStyles?.map(animationStyle => new CSSStyleDeclaration(this.#cssModel, null, animationStyle.style, Type.Animation, animationStyle.name)) ??
327
+ [];
328
+ if (inheritedTransitionsStyle && containsInherited(inheritedTransitionsStyle)) {
329
+ this.#nodeForStyle.set(inheritedTransitionsStyle, parentNode);
330
+ inheritedStyles.push(inheritedTransitionsStyle);
331
+ this.#inheritedStyles.add(inheritedTransitionsStyle);
332
+ }
333
+ for (const inheritedAnimationsStyle of inheritedAnimationStyles) {
334
+ if (!containsInherited(inheritedAnimationsStyle)) {
335
+ continue;
336
+ }
337
+ this.#nodeForStyle.set(inheritedAnimationsStyle, parentNode);
338
+ inheritedStyles.push(inheritedAnimationsStyle);
339
+ this.#inheritedStyles.add(inheritedAnimationsStyle);
340
+ }
341
+ if (inheritedInlineStyle && containsInherited(inheritedInlineStyle)) {
342
+ this.#nodeForStyle.set(inheritedInlineStyle, parentNode);
343
+ inheritedStyles.push(inheritedInlineStyle);
344
+ this.#inheritedStyles.add(inheritedInlineStyle);
345
+ }
346
+ const inheritedMatchedCSSRules = entryPayload.matchedCSSRules || [];
347
+ for (let j = inheritedMatchedCSSRules.length - 1; j >= 0; --j) {
348
+ const inheritedRule = new CSSStyleRule(this.#cssModel, inheritedMatchedCSSRules[j].rule);
349
+ this.addMatchingSelectors(parentNode, inheritedRule, inheritedMatchedCSSRules[j].matchingSelectors);
350
+ if (!containsInherited(inheritedRule.style)) {
351
+ continue;
352
+ }
353
+ if (!containsCustomProperties(inheritedRule.style)) {
354
+ if (containsStyle(nodeStyles, inheritedRule.style) ||
355
+ containsStyle(this.#inheritedStyles, inheritedRule.style)) {
356
+ continue;
357
+ }
358
+ }
359
+ this.#nodeForStyle.set(inheritedRule.style, parentNode);
360
+ inheritedStyles.push(inheritedRule.style);
361
+ this.#inheritedStyles.add(inheritedRule.style);
362
+ }
363
+ const node = parentNode;
364
+ parentNode = await traverseParentInFlatTree(parentNode);
365
+ nodeCascades.push(new NodeCascade(this, inheritedStyles, node, true /* #isInherited */));
366
+ }
367
+ return new DOMInheritanceCascade(this, nodeCascades, this.#registeredProperties);
368
+ }
369
+ /**
370
+ * Pseudo rule matches received via the inspector protocol are grouped by pseudo type.
371
+ * For custom highlight pseudos, we need to instead group the rule matches by highlight
372
+ * name in order to produce separate cascades for each highlight name. This is necessary
373
+ * so that styles of ::highlight(foo) are not shown as overriding styles of ::highlight(bar).
374
+ *
375
+ * This helper function takes a list of rule matches and generates separate NodeCascades
376
+ * for each custom highlight name that was matched.
377
+ */
378
+ buildSplitCustomHighlightCascades(rules, node, isInherited, pseudoCascades) {
379
+ const splitHighlightRules = new Map();
380
+ for (let j = rules.length - 1; j >= 0; --j) {
381
+ const highlightNamesToMatchingSelectorIndices = customHighlightNamesToMatchingSelectorIndices(rules[j]);
382
+ for (const [highlightName, matchingSelectors] of highlightNamesToMatchingSelectorIndices) {
383
+ const pseudoRule = new CSSStyleRule(this.#cssModel, rules[j].rule);
384
+ this.#nodeForStyle.set(pseudoRule.style, node);
385
+ if (isInherited) {
386
+ this.#inheritedStyles.add(pseudoRule.style);
387
+ }
388
+ this.addMatchingSelectors(node, pseudoRule, matchingSelectors);
389
+ const ruleListForHighlightName = splitHighlightRules.get(highlightName);
390
+ if (ruleListForHighlightName) {
391
+ ruleListForHighlightName.push(pseudoRule.style);
392
+ }
393
+ else {
394
+ splitHighlightRules.set(highlightName, [pseudoRule.style]);
395
+ }
396
+ }
397
+ }
398
+ for (const [highlightName, highlightStyles] of splitHighlightRules) {
399
+ const nodeCascade = new NodeCascade(this, highlightStyles, node, isInherited, true /* #isHighlightPseudoCascade*/);
400
+ const cascadeListForHighlightName = pseudoCascades.get(highlightName);
401
+ if (cascadeListForHighlightName) {
402
+ cascadeListForHighlightName.push(nodeCascade);
403
+ }
404
+ else {
405
+ pseudoCascades.set(highlightName, [nodeCascade]);
406
+ }
407
+ }
408
+ }
409
+ buildPseudoCascades(pseudoPayload, inheritedPseudoPayload) {
410
+ const pseudoInheritanceCascades = new Map();
411
+ const customHighlightPseudoInheritanceCascades = new Map();
412
+ if (!pseudoPayload) {
413
+ return [pseudoInheritanceCascades, customHighlightPseudoInheritanceCascades];
414
+ }
415
+ const pseudoCascades = new Map();
416
+ const customHighlightPseudoCascades = new Map();
417
+ for (let i = 0; i < pseudoPayload.length; ++i) {
418
+ const entryPayload = pseudoPayload[i];
419
+ // PseudoElement nodes are not created unless "content" css property is set.
420
+ const pseudoElement = this.#node.pseudoElements().get(entryPayload.pseudoType)?.at(-1) || null;
421
+ const pseudoStyles = [];
422
+ const rules = entryPayload.matches || [];
423
+ if (entryPayload.pseudoType === "highlight" /* Protocol.DOM.PseudoType.Highlight */) {
424
+ this.buildSplitCustomHighlightCascades(rules, this.#node, false /* #isInherited */, customHighlightPseudoCascades);
425
+ }
426
+ else {
427
+ for (let j = rules.length - 1; j >= 0; --j) {
428
+ const pseudoRule = new CSSStyleRule(this.#cssModel, rules[j].rule);
429
+ pseudoStyles.push(pseudoRule.style);
430
+ const nodeForStyle = cssMetadata().isHighlightPseudoType(entryPayload.pseudoType) ? this.#node : pseudoElement;
431
+ this.#nodeForStyle.set(pseudoRule.style, nodeForStyle);
432
+ if (nodeForStyle) {
433
+ this.addMatchingSelectors(nodeForStyle, pseudoRule, rules[j].matchingSelectors);
434
+ }
435
+ }
436
+ const isHighlightPseudoCascade = cssMetadata().isHighlightPseudoType(entryPayload.pseudoType);
437
+ const nodeCascade = new NodeCascade(this, pseudoStyles, this.#node, false /* #isInherited */, isHighlightPseudoCascade /* #isHighlightPseudoCascade*/);
438
+ pseudoCascades.set(entryPayload.pseudoType, [nodeCascade]);
439
+ }
440
+ }
441
+ if (inheritedPseudoPayload) {
442
+ let parentNode = this.#node.parentNode;
443
+ for (let i = 0; parentNode && i < inheritedPseudoPayload.length; ++i) {
444
+ const inheritedPseudoMatches = inheritedPseudoPayload[i].pseudoElements;
445
+ for (let j = 0; j < inheritedPseudoMatches.length; ++j) {
446
+ const inheritedEntryPayload = inheritedPseudoMatches[j];
447
+ const rules = inheritedEntryPayload.matches || [];
448
+ if (inheritedEntryPayload.pseudoType === "highlight" /* Protocol.DOM.PseudoType.Highlight */) {
449
+ this.buildSplitCustomHighlightCascades(rules, parentNode, true /* #isInherited */, customHighlightPseudoCascades);
450
+ }
451
+ else {
452
+ const pseudoStyles = [];
453
+ for (let k = rules.length - 1; k >= 0; --k) {
454
+ const pseudoRule = new CSSStyleRule(this.#cssModel, rules[k].rule);
455
+ pseudoStyles.push(pseudoRule.style);
456
+ this.#nodeForStyle.set(pseudoRule.style, parentNode);
457
+ this.#inheritedStyles.add(pseudoRule.style);
458
+ this.addMatchingSelectors(parentNode, pseudoRule, rules[k].matchingSelectors);
459
+ }
460
+ const isHighlightPseudoCascade = cssMetadata().isHighlightPseudoType(inheritedEntryPayload.pseudoType);
461
+ const nodeCascade = new NodeCascade(this, pseudoStyles, parentNode, true /* #isInherited */, isHighlightPseudoCascade /* #isHighlightPseudoCascade*/);
462
+ const cascadeListForPseudoType = pseudoCascades.get(inheritedEntryPayload.pseudoType);
463
+ if (cascadeListForPseudoType) {
464
+ cascadeListForPseudoType.push(nodeCascade);
465
+ }
466
+ else {
467
+ pseudoCascades.set(inheritedEntryPayload.pseudoType, [nodeCascade]);
468
+ }
469
+ }
470
+ }
471
+ parentNode = parentNode.parentNode;
472
+ }
473
+ }
474
+ // Now that we've built the arrays of NodeCascades for each pseudo type, convert them into
475
+ // DOMInheritanceCascades.
476
+ for (const [pseudoType, nodeCascade] of pseudoCascades.entries()) {
477
+ pseudoInheritanceCascades.set(pseudoType, new DOMInheritanceCascade(this, nodeCascade, this.#registeredProperties));
478
+ }
479
+ for (const [highlightName, nodeCascade] of customHighlightPseudoCascades.entries()) {
480
+ customHighlightPseudoInheritanceCascades.set(highlightName, new DOMInheritanceCascade(this, nodeCascade, this.#registeredProperties));
481
+ }
482
+ return [pseudoInheritanceCascades, customHighlightPseudoInheritanceCascades];
483
+ }
484
+ addMatchingSelectors(node, rule, matchingSelectorIndices) {
485
+ for (const matchingSelectorIndex of matchingSelectorIndices) {
486
+ const selector = rule.selectors[matchingSelectorIndex];
487
+ if (selector) {
488
+ this.setSelectorMatches(node, selector.text, true);
489
+ }
490
+ }
491
+ }
492
+ node() {
493
+ return this.#node;
494
+ }
495
+ cssModel() {
496
+ return this.#cssModel;
497
+ }
498
+ hasMatchingSelectors(rule) {
499
+ return (rule.selectors.length === 0 || this.getMatchingSelectors(rule).length > 0) && queryMatches(rule.style);
500
+ }
501
+ getParentLayoutNodeId() {
502
+ return this.#parentLayoutNodeId;
503
+ }
504
+ getMatchingSelectors(rule) {
505
+ const node = this.nodeForStyle(rule.style);
506
+ if (!node || typeof node.id !== 'number') {
507
+ return [];
508
+ }
509
+ const map = this.#matchingSelectors.get(node.id);
510
+ if (!map) {
511
+ return [];
512
+ }
513
+ const result = [];
514
+ for (let i = 0; i < rule.selectors.length; ++i) {
515
+ if (map.get(rule.selectors[i].text)) {
516
+ result.push(i);
517
+ }
518
+ }
519
+ return result;
520
+ }
521
+ async recomputeMatchingSelectors(rule) {
522
+ const node = this.nodeForStyle(rule.style);
523
+ if (!node) {
524
+ return;
525
+ }
526
+ const promises = [];
527
+ for (const selector of rule.selectors) {
528
+ promises.push(querySelector.call(this, node, selector.text));
529
+ }
530
+ await Promise.all(promises);
531
+ async function querySelector(node, selectorText) {
532
+ const ownerDocument = node.ownerDocument;
533
+ if (!ownerDocument) {
534
+ return;
535
+ }
536
+ // We assume that "matching" property does not ever change during the
537
+ // MatchedStyleResult's lifetime.
538
+ if (typeof node.id === 'number') {
539
+ const map = this.#matchingSelectors.get(node.id);
540
+ if (map?.has(selectorText)) {
541
+ return;
542
+ }
543
+ }
544
+ if (typeof ownerDocument.id !== 'number') {
545
+ return;
546
+ }
547
+ const matchingNodeIds = await this.#node.domModel().querySelectorAll(ownerDocument.id, selectorText);
548
+ if (matchingNodeIds) {
549
+ if (typeof node.id === 'number') {
550
+ this.setSelectorMatches(node, selectorText, matchingNodeIds.indexOf(node.id) !== -1);
551
+ }
552
+ else {
553
+ this.setSelectorMatches(node, selectorText, false);
554
+ }
555
+ }
556
+ }
557
+ }
558
+ addNewRule(rule, node) {
559
+ this.#addedStyles.set(rule.style, node);
560
+ return this.recomputeMatchingSelectors(rule);
561
+ }
562
+ setSelectorMatches(node, selectorText, value) {
563
+ if (typeof node.id !== 'number') {
564
+ return;
565
+ }
566
+ let map = this.#matchingSelectors.get(node.id);
567
+ if (!map) {
568
+ map = new Map();
569
+ this.#matchingSelectors.set(node.id, map);
570
+ }
571
+ map.set(selectorText, value);
572
+ }
573
+ nodeStyles() {
574
+ Platform.assertNotNullOrUndefined(this.#mainDOMCascade);
575
+ return this.#mainDOMCascade.styles();
576
+ }
577
+ inheritedStyles() {
578
+ return this.#mainDOMCascade?.styles().filter(style => this.isInherited(style)) ?? [];
579
+ }
580
+ animationStyles() {
581
+ return this.#mainDOMCascade?.styles().filter(style => !this.isInherited(style) && style.type === Type.Animation) ??
582
+ [];
583
+ }
584
+ transitionsStyle() {
585
+ return this.#mainDOMCascade?.styles().find(style => !this.isInherited(style) && style.type === Type.Transition) ??
586
+ null;
587
+ }
588
+ registeredProperties() {
589
+ return this.#registeredProperties;
590
+ }
591
+ getRegisteredProperty(name) {
592
+ return this.#registeredPropertyMap.get(name);
593
+ }
594
+ getRegisteredFunction(name) {
595
+ const functionRule = this.#functionRuleMap.get(name);
596
+ return functionRule ? functionRule.nameWithParameters() : undefined;
597
+ }
598
+ functionRules() {
599
+ return this.#functionRules;
600
+ }
601
+ atRules() {
602
+ return this.#atRules;
603
+ }
604
+ keyframes() {
605
+ return this.#keyframes;
606
+ }
607
+ positionTryRules() {
608
+ return this.#positionTryRules;
609
+ }
610
+ activePositionFallbackIndex() {
611
+ return this.#activePositionFallbackIndex;
612
+ }
613
+ pseudoStyles(pseudoType) {
614
+ Platform.assertNotNullOrUndefined(this.#pseudoDOMCascades);
615
+ const domCascade = this.#pseudoDOMCascades.get(pseudoType);
616
+ return domCascade ? domCascade.styles() : [];
617
+ }
618
+ pseudoTypes() {
619
+ Platform.assertNotNullOrUndefined(this.#pseudoDOMCascades);
620
+ return new Set(this.#pseudoDOMCascades.keys());
621
+ }
622
+ customHighlightPseudoStyles(highlightName) {
623
+ Platform.assertNotNullOrUndefined(this.#customHighlightPseudoDOMCascades);
624
+ const domCascade = this.#customHighlightPseudoDOMCascades.get(highlightName);
625
+ return domCascade ? domCascade.styles() : [];
626
+ }
627
+ customHighlightPseudoNames() {
628
+ Platform.assertNotNullOrUndefined(this.#customHighlightPseudoDOMCascades);
629
+ return new Set(this.#customHighlightPseudoDOMCascades.keys());
630
+ }
631
+ nodeForStyle(style) {
632
+ return this.#addedStyles.get(style) || this.#nodeForStyle.get(style) || null;
633
+ }
634
+ availableCSSVariables(style) {
635
+ const domCascade = this.#styleToDOMCascade.get(style);
636
+ return domCascade ? domCascade.findAvailableCSSVariables(style) : [];
637
+ }
638
+ computeCSSVariable(style, variableName) {
639
+ if (style.parentRule instanceof CSSKeyframeRule) {
640
+ // The resolution of the variables inside of a CSS keyframe rule depends on where this keyframe rule is used.
641
+ // So, we need to find the style with active CSS property `animation-name` that equals to the keyframe's name.
642
+ const keyframeName = style.parentRule.parentRuleName();
643
+ const activeStyle = this.#mainDOMCascade?.styles().find(searchStyle => {
644
+ return searchStyle.allProperties().some(property => property.name === 'animation-name' && property.value === keyframeName &&
645
+ this.#mainDOMCascade?.propertyState(property) === "Active" /* PropertyState.ACTIVE */);
646
+ });
647
+ if (!activeStyle) {
648
+ return null;
649
+ }
650
+ style = activeStyle;
651
+ }
652
+ const domCascade = this.#styleToDOMCascade.get(style);
653
+ return domCascade ? domCascade.computeCSSVariable(style, variableName) : null;
654
+ }
655
+ computeAttribute(style, attributeName, type) {
656
+ const domCascade = this.#styleToDOMCascade.get(style);
657
+ return domCascade ? domCascade.computeAttribute(style, attributeName, type) : null;
658
+ }
659
+ originatingNodeForStyle(style) {
660
+ let node = this.nodeForStyle(style) ?? this.node();
661
+ // If it's a pseudo-element, we need to find the originating element.
662
+ while (node?.pseudoType()) {
663
+ node = node.parentNode;
664
+ }
665
+ return node;
666
+ }
667
+ rawAttributeValueFromStyle(style, attributeName) {
668
+ const node = this.originatingNodeForStyle(style);
669
+ if (!node) {
670
+ return null;
671
+ }
672
+ return node.getAttribute(attributeName) ?? null;
673
+ }
674
+ resolveProperty(name, ownerStyle) {
675
+ return this.#styleToDOMCascade.get(ownerStyle)?.resolveProperty(name, ownerStyle) ?? null;
676
+ }
677
+ resolveGlobalKeyword(property, keyword) {
678
+ const resolved = this.#styleToDOMCascade.get(property.ownerStyle)?.resolveGlobalKeyword(property, keyword);
679
+ return resolved ? new CSSValueSource(resolved) : null;
680
+ }
681
+ isInherited(style) {
682
+ return this.#inheritedStyles.has(style);
683
+ }
684
+ propertyState(property) {
685
+ const domCascade = this.#styleToDOMCascade.get(property.ownerStyle);
686
+ return domCascade ? domCascade.propertyState(property) : null;
687
+ }
688
+ resetActiveProperties() {
689
+ Platform.assertNotNullOrUndefined(this.#mainDOMCascade);
690
+ Platform.assertNotNullOrUndefined(this.#pseudoDOMCascades);
691
+ Platform.assertNotNullOrUndefined(this.#customHighlightPseudoDOMCascades);
692
+ this.#mainDOMCascade.reset();
693
+ for (const domCascade of this.#pseudoDOMCascades.values()) {
694
+ domCascade.reset();
695
+ }
696
+ for (const domCascade of this.#customHighlightPseudoDOMCascades.values()) {
697
+ domCascade.reset();
698
+ }
699
+ }
700
+ propertyMatchers(style, computedStyles) {
701
+ return [
702
+ new VariableMatcher(this, style),
703
+ new ColorMatcher(() => computedStyles?.get('color') ?? null),
704
+ new ColorMixMatcher(),
705
+ new URLMatcher(),
706
+ new AngleMatcher(),
707
+ new LinkableNameMatcher(),
708
+ new BezierMatcher(),
709
+ new StringMatcher(),
710
+ new ShadowMatcher(),
711
+ new LightDarkColorMatcher(style),
712
+ new GridTemplateMatcher(),
713
+ new LinearGradientMatcher(),
714
+ new AnchorFunctionMatcher(),
715
+ new PositionAnchorMatcher(),
716
+ new FlexGridGridLanesMatcher(),
717
+ new PositionTryMatcher(),
718
+ new LengthMatcher(),
719
+ new MathFunctionMatcher(),
720
+ new CustomFunctionMatcher(),
721
+ new AutoBaseMatcher(),
722
+ new BinOpMatcher(),
723
+ new RelativeColorChannelMatcher(),
724
+ new AttributeMatcher(this, style),
725
+ new EnvFunctionMatcher(this),
726
+ ];
727
+ }
728
+ environmentVariable(name) {
729
+ return this.#environmentVariables[name];
730
+ }
731
+ }
732
+ class NodeCascade {
733
+ #matchedStyles;
734
+ styles;
735
+ #isInherited;
736
+ #isHighlightPseudoCascade;
737
+ propertiesState = new Map();
738
+ activeProperties = new Map();
739
+ #node;
740
+ constructor(matchedStyles, styles, node, isInherited, isHighlightPseudoCascade = false) {
741
+ this.#matchedStyles = matchedStyles;
742
+ this.styles = styles;
743
+ this.#isInherited = isInherited;
744
+ this.#isHighlightPseudoCascade = isHighlightPseudoCascade;
745
+ this.#node = node;
746
+ }
747
+ computeActiveProperties() {
748
+ this.propertiesState.clear();
749
+ this.activeProperties.clear();
750
+ for (let i = this.styles.length - 1; i >= 0; i--) {
751
+ const style = this.styles[i];
752
+ const rule = style.parentRule;
753
+ // Compute cascade for CSSStyleRules only.
754
+ if (rule && !(rule instanceof CSSStyleRule)) {
755
+ continue;
756
+ }
757
+ if (rule && !this.#matchedStyles.hasMatchingSelectors(rule)) {
758
+ continue;
759
+ }
760
+ for (const property of style.allProperties()) {
761
+ // Do not pick non-inherited properties from inherited styles.
762
+ const metadata = cssMetadata();
763
+ // All properties are inherited for highlight pseudos.
764
+ if (this.#isInherited && !this.#isHighlightPseudoCascade && !metadata.isPropertyInherited(property.name)) {
765
+ continue;
766
+ }
767
+ // When a property does not have a range in an otherwise ranged CSSStyleDeclaration,
768
+ // we consider it as a non-leading property (see computeLeadingProperties()), and most
769
+ // of them are computed longhands. We exclude these from activeProperties calculation,
770
+ // and use parsed longhands instead (see below).
771
+ if (style.range && !property.range) {
772
+ continue;
773
+ }
774
+ if (!property.activeInStyle()) {
775
+ this.propertiesState.set(property, "Overloaded" /* PropertyState.OVERLOADED */);
776
+ continue;
777
+ }
778
+ // If the custom property was registered with `inherits: false;`, inherited properties are invalid.
779
+ if (this.#isInherited) {
780
+ const registration = this.#matchedStyles.getRegisteredProperty(property.name);
781
+ if (registration && !registration.inherits()) {
782
+ this.propertiesState.set(property, "Overloaded" /* PropertyState.OVERLOADED */);
783
+ continue;
784
+ }
785
+ }
786
+ const canonicalName = metadata.canonicalPropertyName(property.name);
787
+ this.updatePropertyState(property, canonicalName);
788
+ for (const longhand of property.getLonghandProperties()) {
789
+ if (metadata.isCSSPropertyName(longhand.name)) {
790
+ this.updatePropertyState(longhand, longhand.name);
791
+ }
792
+ }
793
+ }
794
+ }
795
+ }
796
+ #treeScopeDistance(property) {
797
+ if (!property.ownerStyle.parentRule && property.ownerStyle.type !== Type.Inline) {
798
+ return -1;
799
+ }
800
+ const root = this.#node.getTreeRoot();
801
+ const nodeId = property.ownerStyle.parentRule?.treeScope ?? root?.backendNodeId();
802
+ if (nodeId === undefined) {
803
+ return -1;
804
+ }
805
+ let distance = 0;
806
+ for (let ancestor = this.#node; ancestor; ancestor = ancestor.parentNode) {
807
+ if (ancestor.backendNodeId() === nodeId) {
808
+ return distance;
809
+ }
810
+ distance++;
811
+ }
812
+ return -1;
813
+ }
814
+ #needsCascadeContextStep() {
815
+ if (!this.#node.isInShadowTree()) {
816
+ return false;
817
+ }
818
+ if (this.#node.ancestorShadowRoot()?.shadowRootType() === 'user-agent') {
819
+ // In UA shadow dom, only standards-track pseudo elements override style attributes. -webkit-* and -internal-*
820
+ // pseudos are still exempt from that to retain legacy behavior.
821
+ const pseudoElement = this.#node.getAttribute('pseudo');
822
+ return !pseudoElement?.startsWith('-webkit-') && !pseudoElement?.startsWith('-internal-');
823
+ }
824
+ return true;
825
+ }
826
+ updatePropertyState(propertyWithHigherSpecificity, canonicalName) {
827
+ const activeProperty = this.activeProperties.get(canonicalName);
828
+ if (activeProperty?.important && !propertyWithHigherSpecificity.important ||
829
+ activeProperty && this.#needsCascadeContextStep() &&
830
+ this.#treeScopeDistance(activeProperty) > this.#treeScopeDistance(propertyWithHigherSpecificity)) {
831
+ this.propertiesState.set(propertyWithHigherSpecificity, "Overloaded" /* PropertyState.OVERLOADED */);
832
+ return;
833
+ }
834
+ if (activeProperty) {
835
+ this.propertiesState.set(activeProperty, "Overloaded" /* PropertyState.OVERLOADED */);
836
+ }
837
+ this.propertiesState.set(propertyWithHigherSpecificity, "Active" /* PropertyState.ACTIVE */);
838
+ this.activeProperties.set(canonicalName, propertyWithHigherSpecificity);
839
+ }
840
+ }
841
+ function isRegular(declaration) {
842
+ return 'ownerStyle' in declaration;
843
+ }
844
+ export class CSSValueSource {
845
+ declaration;
846
+ constructor(declaration) {
847
+ this.declaration = declaration;
848
+ }
849
+ get value() {
850
+ return isRegular(this.declaration) ? this.declaration.value : this.declaration.initialValue();
851
+ }
852
+ get style() {
853
+ return isRegular(this.declaration) ? this.declaration.ownerStyle : this.declaration.style();
854
+ }
855
+ get name() {
856
+ return isRegular(this.declaration) ? this.declaration.name : this.declaration.propertyName();
857
+ }
858
+ }
859
+ class SCCRecordEntry {
860
+ nodeCascade;
861
+ name;
862
+ discoveryTime;
863
+ rootDiscoveryTime;
864
+ get isRootEntry() {
865
+ return this.rootDiscoveryTime === this.discoveryTime;
866
+ }
867
+ updateRoot(neighbor) {
868
+ this.rootDiscoveryTime = Math.min(this.rootDiscoveryTime, neighbor.rootDiscoveryTime);
869
+ }
870
+ constructor(nodeCascade, name, discoveryTime) {
871
+ this.nodeCascade = nodeCascade;
872
+ this.name = name;
873
+ this.discoveryTime = discoveryTime;
874
+ this.rootDiscoveryTime = discoveryTime;
875
+ }
876
+ }
877
+ class SCCRecord {
878
+ #time = 0;
879
+ #stack = [];
880
+ #entries = new Map();
881
+ get(nodeCascade, variable) {
882
+ return this.#entries.get(nodeCascade)?.get(variable);
883
+ }
884
+ add(nodeCascade, variable) {
885
+ const existing = this.get(nodeCascade, variable);
886
+ if (existing) {
887
+ return existing;
888
+ }
889
+ const entry = new SCCRecordEntry(nodeCascade, variable, this.#time++);
890
+ this.#stack.push(entry);
891
+ let map = this.#entries.get(nodeCascade);
892
+ if (!map) {
893
+ map = new Map();
894
+ this.#entries.set(nodeCascade, map);
895
+ }
896
+ map.set(variable, entry);
897
+ return entry;
898
+ }
899
+ isInInProgressSCC(childRecord) {
900
+ return this.#stack.includes(childRecord);
901
+ }
902
+ finishSCC(root) {
903
+ const startIndex = this.#stack.lastIndexOf(root);
904
+ console.assert(startIndex >= 0, 'Root is not an in-progress scc');
905
+ return this.#stack.splice(startIndex);
906
+ }
907
+ }
908
+ function* forEach(array, startAfter) {
909
+ const startIdx = startAfter !== undefined ? array.indexOf(startAfter) + 1 : 0;
910
+ for (let i = startIdx; i < array.length; ++i) {
911
+ yield array[i];
912
+ }
913
+ }
914
+ class DOMInheritanceCascade {
915
+ #propertiesState = new Map();
916
+ #availableCSSVariables = new Map();
917
+ #computedCSSVariables = new Map();
918
+ #styleToNodeCascade = new Map();
919
+ #initialized = false;
920
+ #nodeCascades;
921
+ #registeredProperties;
922
+ #matchedStyles;
923
+ constructor(matchedStyles, nodeCascades, registeredProperties) {
924
+ this.#nodeCascades = nodeCascades;
925
+ this.#matchedStyles = matchedStyles;
926
+ this.#registeredProperties = registeredProperties;
927
+ for (const nodeCascade of nodeCascades) {
928
+ for (const style of nodeCascade.styles) {
929
+ this.#styleToNodeCascade.set(style, nodeCascade);
930
+ }
931
+ }
932
+ }
933
+ findAvailableCSSVariables(style) {
934
+ const nodeCascade = this.#styleToNodeCascade.get(style);
935
+ if (!nodeCascade) {
936
+ return [];
937
+ }
938
+ this.ensureInitialized();
939
+ const availableCSSVariables = this.#availableCSSVariables.get(nodeCascade);
940
+ if (!availableCSSVariables) {
941
+ return [];
942
+ }
943
+ return Array.from(availableCSSVariables.keys());
944
+ }
945
+ #findPropertyInPreviousStyle(property, filter) {
946
+ const cascade = this.#styleToNodeCascade.get(property.ownerStyle);
947
+ if (!cascade) {
948
+ return null;
949
+ }
950
+ for (const style of forEach(cascade.styles, property.ownerStyle)) {
951
+ const candidate = style.allProperties().findLast(candidate => candidate.name === property.name && filter(candidate));
952
+ if (candidate) {
953
+ return candidate;
954
+ }
955
+ }
956
+ return null;
957
+ }
958
+ resolveProperty(name, ownerStyle) {
959
+ const cascade = this.#styleToNodeCascade.get(ownerStyle);
960
+ if (!cascade) {
961
+ return null;
962
+ }
963
+ for (const style of cascade.styles) {
964
+ const candidate = style.allProperties().findLast(candidate => candidate.name === name);
965
+ if (candidate) {
966
+ return candidate;
967
+ }
968
+ }
969
+ return this.#findPropertyInParentCascadeIfInherited({ name, ownerStyle });
970
+ }
971
+ #findPropertyInParentCascade(property) {
972
+ const nodeCascade = this.#styleToNodeCascade.get(property.ownerStyle);
973
+ if (!nodeCascade) {
974
+ return null;
975
+ }
976
+ for (const cascade of forEach(this.#nodeCascades, nodeCascade)) {
977
+ for (const style of cascade.styles) {
978
+ const inheritedProperty = style.allProperties().findLast(inheritedProperty => inheritedProperty.name === property.name);
979
+ if (inheritedProperty) {
980
+ return inheritedProperty;
981
+ }
982
+ }
983
+ }
984
+ return null;
985
+ }
986
+ #findPropertyInParentCascadeIfInherited(property) {
987
+ if (!cssMetadata().isPropertyInherited(property.name) ||
988
+ !(this.#findCustomPropertyRegistration(property.name)?.inherits() ?? true)) {
989
+ return null;
990
+ }
991
+ return this.#findPropertyInParentCascade(property);
992
+ }
993
+ #findCustomPropertyRegistration(property) {
994
+ const registration = this.#registeredProperties.find(registration => registration.propertyName() === property);
995
+ return registration ? registration : null;
996
+ }
997
+ resolveGlobalKeyword(property, keyword) {
998
+ const isPreviousLayer = (other) => {
999
+ // If there's no parent rule on then it isn't layered and is thus not in a previous one.
1000
+ if (!(other.ownerStyle.parentRule instanceof CSSStyleRule)) {
1001
+ return false;
1002
+ }
1003
+ // Element-attached style -> author origin counts as a previous layer transition for revert-layer.
1004
+ if (property.ownerStyle.type === Type.Inline) {
1005
+ return true;
1006
+ }
1007
+ // Compare layers
1008
+ if (property.ownerStyle.parentRule instanceof CSSStyleRule &&
1009
+ other.ownerStyle.parentRule?.origin === "regular" /* Protocol.CSS.StyleSheetOrigin.Regular */) {
1010
+ return JSON.stringify(other.ownerStyle.parentRule.layers) !==
1011
+ JSON.stringify(property.ownerStyle.parentRule.layers);
1012
+ }
1013
+ return false;
1014
+ };
1015
+ switch (keyword) {
1016
+ case "initial" /* CSSWideKeyword.INITIAL */:
1017
+ return this.#findCustomPropertyRegistration(property.name);
1018
+ case "inherit" /* CSSWideKeyword.INHERIT */:
1019
+ return this.#findPropertyInParentCascade(property) ?? this.#findCustomPropertyRegistration(property.name);
1020
+ case "revert" /* CSSWideKeyword.REVERT */:
1021
+ return this.#findPropertyInPreviousStyle(property, other => other.ownerStyle.parentRule !== null &&
1022
+ other.ownerStyle.parentRule.origin !==
1023
+ (property.ownerStyle.parentRule?.origin ?? "regular" /* Protocol.CSS.StyleSheetOrigin.Regular */)) ??
1024
+ this.resolveGlobalKeyword(property, "unset" /* CSSWideKeyword.UNSET */);
1025
+ case "revert-layer" /* CSSWideKeyword.REVERT_LAYER */:
1026
+ return this.#findPropertyInPreviousStyle(property, isPreviousLayer) ??
1027
+ this.resolveGlobalKeyword(property, "revert" /* CSSWideKeyword.REVERT */);
1028
+ case "unset" /* CSSWideKeyword.UNSET */:
1029
+ return this.#findPropertyInParentCascadeIfInherited(property) ??
1030
+ this.#findCustomPropertyRegistration(property.name);
1031
+ }
1032
+ }
1033
+ computeCSSVariable(style, variableName) {
1034
+ this.ensureInitialized();
1035
+ const nodeCascade = this.#styleToNodeCascade.get(style);
1036
+ if (!nodeCascade) {
1037
+ return null;
1038
+ }
1039
+ return this.#computeCSSVariable(nodeCascade, variableName);
1040
+ }
1041
+ #computeCSSVariable(nodeCascade, variableName, sccRecord = new SCCRecord()) {
1042
+ const availableCSSVariables = this.#availableCSSVariables.get(nodeCascade);
1043
+ const computedCSSVariables = this.#computedCSSVariables.get(nodeCascade);
1044
+ if (!computedCSSVariables || !availableCSSVariables?.has(variableName)) {
1045
+ return null;
1046
+ }
1047
+ if (computedCSSVariables?.has(variableName)) {
1048
+ return computedCSSVariables.get(variableName) || null;
1049
+ }
1050
+ let definedValue = availableCSSVariables.get(variableName);
1051
+ if (definedValue === undefined || definedValue === null) {
1052
+ return null;
1053
+ }
1054
+ if (definedValue.declaration.declaration instanceof CSSProperty && definedValue.declaration.value &&
1055
+ CSSMetadata.isCSSWideKeyword(definedValue.declaration.value)) {
1056
+ const resolvedProperty = this.resolveGlobalKeyword(definedValue.declaration.declaration, definedValue.declaration.value);
1057
+ if (!resolvedProperty) {
1058
+ return definedValue;
1059
+ }
1060
+ const declaration = new CSSValueSource(resolvedProperty);
1061
+ const { value } = declaration;
1062
+ if (!value) {
1063
+ return definedValue;
1064
+ }
1065
+ definedValue = { declaration, value };
1066
+ }
1067
+ const ast = PropertyParser.tokenizeDeclaration(`--${variableName}`, definedValue.value);
1068
+ if (!ast) {
1069
+ return null;
1070
+ }
1071
+ return this.#walkTree(nodeCascade, ast, definedValue.declaration.style, variableName, sccRecord, definedValue.declaration);
1072
+ }
1073
+ computeAttribute(style, attributeName, type) {
1074
+ this.ensureInitialized();
1075
+ const nodeCascade = this.#styleToNodeCascade.get(style);
1076
+ if (!nodeCascade) {
1077
+ return null;
1078
+ }
1079
+ return this.#computeAttribute(nodeCascade, style, attributeName, type, new SCCRecord());
1080
+ }
1081
+ attributeValueAsType(style, attributeName, type) {
1082
+ const rawValue = this.#matchedStyles.rawAttributeValueFromStyle(style, attributeName);
1083
+ if (rawValue === null) {
1084
+ return null;
1085
+ }
1086
+ return localEvalCSS(rawValue, type);
1087
+ }
1088
+ attributeValueWithSubstitutions(nodeCascade, style, attributeName, sccRecord) {
1089
+ const rawValue = this.#matchedStyles.rawAttributeValueFromStyle(style, attributeName);
1090
+ if (rawValue === null) {
1091
+ return null;
1092
+ }
1093
+ const ast = PropertyParser.tokenizeDeclaration('--property', rawValue);
1094
+ if (!ast) {
1095
+ return null;
1096
+ }
1097
+ return this.#walkTree(nodeCascade, ast, style, `attr(${attributeName})`, sccRecord)?.value ?? null;
1098
+ }
1099
+ #computeAttribute(nodeCascade, style, attributeName, type, sccRecord = new SCCRecord()) {
1100
+ if (type.isCSSTokens) {
1101
+ const value = this.attributeValueWithSubstitutions(nodeCascade, style, attributeName, sccRecord);
1102
+ if (value !== null && localEvalCSS(value, type.type) !== null) {
1103
+ return value;
1104
+ }
1105
+ return null;
1106
+ }
1107
+ return this.attributeValueAsType(style, attributeName, type.type);
1108
+ }
1109
+ #walkTree(outerNodeCascade, ast, parentStyle, substitutionName, sccRecord, declaration) {
1110
+ const record = sccRecord.add(outerNodeCascade, substitutionName);
1111
+ const computedCSSVariablesMap = this.#computedCSSVariables;
1112
+ const innerNodeCascade = this.#styleToNodeCascade.get(parentStyle);
1113
+ // While computing CSS variable and attribute values we need to detect declaration cycles. Every declaration on the cycle is
1114
+ // invalid. However, var()s outside of the cycle that reference a property on the cycle are not automatically
1115
+ // invalid, but rather use the fallback value. We use a version of Tarjan's algorithm to detect cycles, which are
1116
+ // SCCs on the custom property dependency graph. Computing variable values is DFS. When encountering a previously
1117
+ // unseen variable, we record its discovery time. We keep a stack of visited variables and detect cycles when we
1118
+ // find a reference to a variable already on the stack. For each node we also keep track of the "root" of the
1119
+ // corresponding SCC, which is the node in that component with the smallest discovery time. This is determined by
1120
+ // bubbling up the minimum discovery time whenever we close a cycle.
1121
+ const matching = PropertyParser.BottomUpTreeMatching.walk(ast, [
1122
+ new BaseVariableMatcher(match => {
1123
+ const { value, mayFallback } = recurseWithCycleDetection(match.name, nodeCascade => this.#computeCSSVariable(nodeCascade, match.name, sccRecord)?.value ?? null);
1124
+ if (!mayFallback || value !== null) {
1125
+ return value;
1126
+ }
1127
+ // Variable reference is not resolved, use the fallback.
1128
+ if (!match.fallback) {
1129
+ return null;
1130
+ }
1131
+ return evaluateFallback(match.fallback, match.matching);
1132
+ }),
1133
+ new EnvFunctionMatcher(this.#matchedStyles),
1134
+ new AttributeMatcher(this.#matchedStyles, parentStyle, match => {
1135
+ const recordName = `attr(${match.name})`;
1136
+ let attributeValue = null;
1137
+ if (!match.isCSSTokens) {
1138
+ const { value, mayFallback } = recurseWithCycleDetection(recordName, () => this.attributeValueAsType(parentStyle, match.name, match.cssType()));
1139
+ if (value === null && !mayFallback) {
1140
+ return null;
1141
+ }
1142
+ attributeValue = value;
1143
+ }
1144
+ else {
1145
+ const { value, mayFallback } = recurseWithCycleDetection(recordName, nodeCascade => this.attributeValueWithSubstitutions(nodeCascade, parentStyle, match.name, sccRecord));
1146
+ if (value === null && !mayFallback) {
1147
+ return null;
1148
+ }
1149
+ if (value !== null && localEvalCSS(value, match.cssType()) !== null) {
1150
+ attributeValue = value;
1151
+ }
1152
+ }
1153
+ if (attributeValue !== null) {
1154
+ return attributeValue;
1155
+ }
1156
+ // Variable reference is not resolved, use the fallback.
1157
+ if (!match.fallback || !match.isValidType) {
1158
+ // Except in this case, we use the default value for the type.
1159
+ return defaultValueForCSSType(match.type);
1160
+ }
1161
+ return evaluateFallback(match.fallback, match.matching);
1162
+ })
1163
+ ]);
1164
+ const decl = PropertyParser.ASTUtils.siblings(PropertyParser.ASTUtils.declValue(matching.ast.tree));
1165
+ const declText = decl.length > 0 ? matching.getComputedTextRange(decl[0], decl[decl.length - 1]) : '';
1166
+ const hasUnresolvedSubstitutions = decl.length > 0 && matching.hasUnresolvedSubstitutionsRange(decl[0], decl[decl.length - 1]);
1167
+ const computedText = hasUnresolvedSubstitutions ? null : declText;
1168
+ const outerComputedCSSVariables = computedCSSVariablesMap.get(outerNodeCascade);
1169
+ if (!outerComputedCSSVariables) {
1170
+ return null;
1171
+ }
1172
+ if (record.isRootEntry) {
1173
+ // Variables are kept on the stack until all descendents in the same SCC have been visited. That's the case when
1174
+ // completing the recursion on the root of the SCC.
1175
+ const scc = sccRecord.finishSCC(record);
1176
+ if (scc.length > 1) {
1177
+ for (const entry of scc) {
1178
+ console.assert(entry.nodeCascade === outerNodeCascade, 'Circles should be within the cascade');
1179
+ outerComputedCSSVariables.set(entry.name, null);
1180
+ }
1181
+ return null;
1182
+ }
1183
+ }
1184
+ if (computedText === null) {
1185
+ outerComputedCSSVariables.set(substitutionName, null);
1186
+ return null;
1187
+ }
1188
+ const cssVariableValue = { value: computedText, declaration };
1189
+ outerComputedCSSVariables.set(substitutionName, cssVariableValue);
1190
+ return cssVariableValue;
1191
+ function recurseWithCycleDetection(recordName, func) {
1192
+ if (!innerNodeCascade) {
1193
+ return { value: null, mayFallback: false };
1194
+ }
1195
+ const childRecord = sccRecord.get(innerNodeCascade, recordName);
1196
+ if (childRecord) {
1197
+ if (sccRecord.isInInProgressSCC(childRecord)) {
1198
+ // Cycle detected, update the root.
1199
+ record.updateRoot(childRecord);
1200
+ return { value: null, mayFallback: false };
1201
+ }
1202
+ // We've seen the variable before, so we can look up the text directly.
1203
+ return {
1204
+ value: computedCSSVariablesMap.get(innerNodeCascade)?.get(recordName)?.value ?? null,
1205
+ mayFallback: false
1206
+ };
1207
+ }
1208
+ const value = func(innerNodeCascade);
1209
+ // Variable reference is resolved, so return it.
1210
+ const newChildRecord = sccRecord.get(innerNodeCascade, recordName);
1211
+ // The SCC record for the referenced variable may not exist if the var was already computed in a previous
1212
+ // iteration. That means it's in a different SCC.
1213
+ newChildRecord && record.updateRoot(newChildRecord);
1214
+ return { value, mayFallback: true };
1215
+ }
1216
+ function evaluateFallback(fallback, matching) {
1217
+ if (fallback.length === 0) {
1218
+ return '';
1219
+ }
1220
+ if (matching.hasUnresolvedSubstitutionsRange(fallback[0], fallback[fallback.length - 1])) {
1221
+ return null;
1222
+ }
1223
+ return matching.getComputedTextRange(fallback[0], fallback[fallback.length - 1]);
1224
+ }
1225
+ }
1226
+ styles() {
1227
+ return Array.from(this.#styleToNodeCascade.keys());
1228
+ }
1229
+ propertyState(property) {
1230
+ this.ensureInitialized();
1231
+ return this.#propertiesState.get(property) || null;
1232
+ }
1233
+ reset() {
1234
+ this.#initialized = false;
1235
+ this.#propertiesState.clear();
1236
+ this.#availableCSSVariables.clear();
1237
+ this.#computedCSSVariables.clear();
1238
+ }
1239
+ ensureInitialized() {
1240
+ if (this.#initialized) {
1241
+ return;
1242
+ }
1243
+ this.#initialized = true;
1244
+ const activeProperties = new Map();
1245
+ for (const nodeCascade of this.#nodeCascades) {
1246
+ nodeCascade.computeActiveProperties();
1247
+ for (const [property, state] of nodeCascade.propertiesState) {
1248
+ if (state === "Overloaded" /* PropertyState.OVERLOADED */) {
1249
+ this.#propertiesState.set(property, "Overloaded" /* PropertyState.OVERLOADED */);
1250
+ continue;
1251
+ }
1252
+ const canonicalName = cssMetadata().canonicalPropertyName(property.name);
1253
+ if (activeProperties.has(canonicalName)) {
1254
+ this.#propertiesState.set(property, "Overloaded" /* PropertyState.OVERLOADED */);
1255
+ continue;
1256
+ }
1257
+ activeProperties.set(canonicalName, property);
1258
+ this.#propertiesState.set(property, "Active" /* PropertyState.ACTIVE */);
1259
+ }
1260
+ }
1261
+ // If every longhand of the shorthand is not active, then the shorthand is not active too.
1262
+ for (const [canonicalName, shorthandProperty] of activeProperties) {
1263
+ const shorthandStyle = shorthandProperty.ownerStyle;
1264
+ const longhands = shorthandProperty.getLonghandProperties();
1265
+ if (!longhands.length) {
1266
+ continue;
1267
+ }
1268
+ let hasActiveLonghands = false;
1269
+ for (const longhand of longhands) {
1270
+ const longhandCanonicalName = cssMetadata().canonicalPropertyName(longhand.name);
1271
+ const longhandActiveProperty = activeProperties.get(longhandCanonicalName);
1272
+ if (!longhandActiveProperty) {
1273
+ continue;
1274
+ }
1275
+ if (longhandActiveProperty.ownerStyle === shorthandStyle) {
1276
+ hasActiveLonghands = true;
1277
+ break;
1278
+ }
1279
+ }
1280
+ if (hasActiveLonghands) {
1281
+ continue;
1282
+ }
1283
+ activeProperties.delete(canonicalName);
1284
+ this.#propertiesState.set(shorthandProperty, "Overloaded" /* PropertyState.OVERLOADED */);
1285
+ }
1286
+ // Work inheritance chain backwards to compute visible CSS Variables.
1287
+ const accumulatedCSSVariables = new Map();
1288
+ for (const rule of this.#registeredProperties) {
1289
+ const initialValue = rule.initialValue();
1290
+ accumulatedCSSVariables.set(rule.propertyName(), initialValue !== null ? { value: initialValue, declaration: new CSSValueSource(rule) } : null);
1291
+ }
1292
+ for (let i = this.#nodeCascades.length - 1; i >= 0; --i) {
1293
+ const nodeCascade = this.#nodeCascades[i];
1294
+ const variableNames = [];
1295
+ for (const entry of nodeCascade.activeProperties.entries()) {
1296
+ const propertyName = entry[0];
1297
+ const property = entry[1];
1298
+ if (propertyName.startsWith('--')) {
1299
+ accumulatedCSSVariables.set(propertyName, { value: property.value, declaration: new CSSValueSource(property) });
1300
+ variableNames.push(propertyName);
1301
+ }
1302
+ }
1303
+ const availableCSSVariablesMap = new Map(accumulatedCSSVariables);
1304
+ const computedVariablesMap = new Map();
1305
+ this.#availableCSSVariables.set(nodeCascade, availableCSSVariablesMap);
1306
+ this.#computedCSSVariables.set(nodeCascade, computedVariablesMap);
1307
+ for (const variableName of variableNames) {
1308
+ const prevValue = accumulatedCSSVariables.get(variableName);
1309
+ accumulatedCSSVariables.delete(variableName);
1310
+ const computedValue = this.#computeCSSVariable(nodeCascade, variableName);
1311
+ if (prevValue && computedValue?.value === prevValue.value) {
1312
+ computedValue.declaration = prevValue.declaration;
1313
+ }
1314
+ accumulatedCSSVariables.set(variableName, computedValue);
1315
+ }
1316
+ }
1317
+ }
1318
+ }