@mcp-b/chrome-devtools-mcp 1.1.2 → 1.1.3

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 (658) hide show
  1. package/build/src/index.js +0 -0
  2. package/build/src/tools/webmcp.js +9 -0
  3. package/build/src/transports/WebMCPClientTransport.js +10 -6
  4. package/package.json +20 -21
  5. package/build/node_modules/chrome-devtools-frontend/LICENSE +0 -27
  6. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/App.js +0 -4
  7. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/AppProvider.js +0 -17
  8. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Base64.js +0 -43
  9. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/CharacterIdMap.js +0 -27
  10. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Color.js +0 -2033
  11. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/ColorConverter.js +0 -332
  12. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/ColorUtils.js +0 -221
  13. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Console.js +0 -79
  14. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Debouncer.js +0 -14
  15. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/EventTarget.js +0 -14
  16. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Gzip.js +0 -66
  17. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/JavaScriptMetaData.js +0 -4
  18. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Lazy.js +0 -29
  19. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/MapWithDefault.js +0 -22
  20. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Mutex.js +0 -49
  21. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Object.js +0 -86
  22. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/ParsedURL.js +0 -449
  23. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Progress.js +0 -144
  24. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/ResolverBase.js +0 -69
  25. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/ResourceType.js +0 -495
  26. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/ReturnToPanel.js +0 -15
  27. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Revealer.js +0 -164
  28. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Runnable.js +0 -24
  29. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/SegmentedRange.js +0 -78
  30. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/SettingRegistration.js +0 -164
  31. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Settings.js +0 -1263
  32. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/SimpleHistoryManager.js +0 -97
  33. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/StringOutputStream.js +0 -14
  34. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/TextDictionary.js +0 -40
  35. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Throttler.js +0 -71
  36. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Trie.js +0 -127
  37. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/common.js +0 -41
  38. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/AidaClient.js +0 -434
  39. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/DispatchHttpRequestClient.js +0 -66
  40. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/GdpClient.js +0 -202
  41. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/InspectorFrontendHost.js +0 -92
  42. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/InspectorFrontendHostAPI.js +0 -69
  43. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/InspectorFrontendHostStub.js +0 -430
  44. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/Platform.js +0 -61
  45. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/ResourceLoader.js +0 -220
  46. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/UserMetrics.js +0 -968
  47. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/host.js +0 -13
  48. package/build/node_modules/chrome-devtools-frontend/front_end/core/i18n/ByteUtilities.js +0 -72
  49. package/build/node_modules/chrome-devtools-frontend/front_end/core/i18n/DevToolsLocale.js +0 -64
  50. package/build/node_modules/chrome-devtools-frontend/front_end/core/i18n/NumberFormatter.js +0 -67
  51. package/build/node_modules/chrome-devtools-frontend/front_end/core/i18n/collect-ui-strings.js +0 -73
  52. package/build/node_modules/chrome-devtools-frontend/front_end/core/i18n/generate-locales-js.js +0 -51
  53. package/build/node_modules/chrome-devtools-frontend/front_end/core/i18n/i18n.js +0 -9
  54. package/build/node_modules/chrome-devtools-frontend/front_end/core/i18n/i18nImpl.js +0 -135
  55. package/build/node_modules/chrome-devtools-frontend/front_end/core/i18n/i18nTypes.js +0 -4
  56. package/build/node_modules/chrome-devtools-frontend/front_end/core/i18n/locales.js +0 -14
  57. package/build/node_modules/chrome-devtools-frontend/front_end/core/i18n/time-utilities.js +0 -148
  58. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/ArrayUtilities.js +0 -199
  59. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/Brand.js +0 -4
  60. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/Constructor.js +0 -4
  61. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/DateUtilities.js +0 -13
  62. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/DevToolsPath.js +0 -27
  63. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/HostRuntime.js +0 -19
  64. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/KeyboardUtilities.js +0 -21
  65. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/MapUtilities.js +0 -79
  66. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/MimeType.js +0 -143
  67. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/NumberUtilities.js +0 -72
  68. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/StringUtilities.js +0 -538
  69. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/Timing.js +0 -9
  70. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/TypedArrayUtilities.js +0 -157
  71. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/TypescriptUtilities.js +0 -24
  72. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/UIString.js +0 -4
  73. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/UserVisibleError.js +0 -22
  74. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/api/HostRuntime.js +0 -4
  75. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/api/api.js +0 -5
  76. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/browser/HostRuntime.js +0 -63
  77. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/browser/browser.js +0 -5
  78. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/node/HostRuntime.js +0 -72
  79. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/node/node.js +0 -5
  80. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/platform.js +0 -26
  81. package/build/node_modules/chrome-devtools-frontend/front_end/core/protocol_client/CDPConnection.js +0 -17
  82. package/build/node_modules/chrome-devtools-frontend/front_end/core/protocol_client/ConnectionTransport.js +0 -12
  83. package/build/node_modules/chrome-devtools-frontend/front_end/core/protocol_client/DevToolsCDPConnection.js +0 -138
  84. package/build/node_modules/chrome-devtools-frontend/front_end/core/protocol_client/InspectorBackend.js +0 -539
  85. package/build/node_modules/chrome-devtools-frontend/front_end/core/protocol_client/protocol_client.js +0 -8
  86. package/build/node_modules/chrome-devtools-frontend/front_end/core/root/DevToolsContext.js +0 -54
  87. package/build/node_modules/chrome-devtools-frontend/front_end/core/root/Runtime.js +0 -11
  88. package/build/node_modules/chrome-devtools-frontend/front_end/core/root/root.js +0 -6
  89. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/AccessibilityModel.js +0 -281
  90. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/AnimationModel.js +0 -845
  91. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/AutofillModel.js +0 -155
  92. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CPUProfilerModel.js +0 -99
  93. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CPUThrottlingManager.js +0 -217
  94. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSContainerQuery.js +0 -98
  95. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSFontFace.js +0 -31
  96. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSLayer.js +0 -22
  97. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSMatchedStyles.js +0 -1318
  98. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSMedia.js +0 -100
  99. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSMetadata.js +0 -1532
  100. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSModel.js +0 -908
  101. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSProperty.js +0 -312
  102. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSPropertyParser.js +0 -574
  103. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSPropertyParserMatchers.js +0 -1346
  104. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSQuery.js +0 -53
  105. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSRule.js +0 -403
  106. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSScope.js +0 -22
  107. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSStartingStyle.js +0 -21
  108. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSStyleDeclaration.js +0 -275
  109. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSStyleSheetHeader.js +0 -166
  110. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSSupports.js +0 -24
  111. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CategorizedBreakpoint.js +0 -29
  112. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ChildTargetManager.js +0 -236
  113. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CompilerSourceMappingContentProvider.js +0 -47
  114. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/Connections.js +0 -205
  115. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ConsoleModel.js +0 -629
  116. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ConsoleModelTypes.js +0 -14
  117. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/Cookie.js +0 -241
  118. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CookieModel.js +0 -198
  119. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CookieParser.js +0 -163
  120. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/DOMDebuggerModel.js +0 -597
  121. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/DOMModel.js +0 -1635
  122. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/DebuggerModel.js +0 -1216
  123. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/EmulationModel.js +0 -527
  124. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/EnhancedTracesParser.js +0 -364
  125. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/EventBreakpointsModel.js +0 -127
  126. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/FrameAssociated.js +0 -4
  127. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/FrameManager.js +0 -199
  128. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/HeapProfilerModel.js +0 -130
  129. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/HttpReasonPhraseStrings.js +0 -75
  130. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/IOModel.js +0 -80
  131. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/IsolateManager.js +0 -208
  132. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/IssuesModel.js +0 -41
  133. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/LayerTreeBase.js +0 -95
  134. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/LogModel.js +0 -34
  135. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/NetworkManager.js +0 -2223
  136. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/NetworkRequest.js +0 -1654
  137. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/OverlayColorGenerator.js +0 -48
  138. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/OverlayModel.js +0 -765
  139. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/OverlayPersistentHighlighter.js +0 -384
  140. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/PageLoad.js +0 -25
  141. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/PageResourceLoader.js +0 -310
  142. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/PaintProfiler.js +0 -67
  143. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/PerformanceMetricsModel.js +0 -62
  144. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/PreloadingModel.js +0 -608
  145. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/RehydratingConnection.js +0 -413
  146. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/RehydratingObject.js +0 -4
  147. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/RemoteObject.js +0 -908
  148. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/Resource.js +0 -163
  149. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ResourceTreeModel.js +0 -923
  150. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/RuntimeModel.js +0 -535
  151. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SDKModel.js +0 -45
  152. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ScopeTreeCache.js +0 -36
  153. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ScreenCaptureModel.js +0 -176
  154. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/Script.js +0 -420
  155. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SecurityOriginManager.js +0 -54
  156. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ServerSentEvents.js +0 -67
  157. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ServerSentEventsProtocol.js +0 -113
  158. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ServerTiming.js +0 -216
  159. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ServiceWorkerCacheModel.js +0 -271
  160. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ServiceWorkerManager.js +0 -511
  161. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMap.js +0 -691
  162. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMapCache.js +0 -57
  163. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMapFunctionRanges.js +0 -132
  164. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMapManager.js +0 -201
  165. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMapScopeChainEntry.js +0 -156
  166. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMapScopesInfo.js +0 -508
  167. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/StorageBucketsModel.js +0 -143
  168. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/StorageKeyManager.js +0 -53
  169. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/Target.js +0 -257
  170. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/TargetManager.js +0 -395
  171. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/TraceObject.js +0 -55
  172. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/WebAuthnModel.js +0 -66
  173. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/sdk-meta.js +0 -1166
  174. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/sdk.js +0 -91
  175. package/build/node_modules/chrome-devtools-frontend/front_end/foundation/Universe.js +0 -34
  176. package/build/node_modules/chrome-devtools-frontend/front_end/foundation/foundation.js +0 -5
  177. package/build/node_modules/chrome-devtools-frontend/front_end/generated/ARIAProperties.js +0 -2640
  178. package/build/node_modules/chrome-devtools-frontend/front_end/generated/Deprecation.js +0 -384
  179. package/build/node_modules/chrome-devtools-frontend/front_end/generated/InspectorBackendCommands.js +0 -1532
  180. package/build/node_modules/chrome-devtools-frontend/front_end/generated/SupportedCSSProperties.js +0 -7602
  181. package/build/node_modules/chrome-devtools-frontend/front_end/generated/protocol.js +0 -4
  182. package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/data_formatters/NetworkRequestFormatter.js +0 -289
  183. package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.js +0 -995
  184. package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.js +0 -664
  185. package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/data_formatters/UnitFormatters.js +0 -139
  186. package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/performance/AICallTree.js +0 -377
  187. package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/performance/AIContext.js +0 -131
  188. package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/performance/AIQueries.js +0 -149
  189. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/CSSWorkspaceBinding.js +0 -245
  190. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/CompilerScriptMapping.js +0 -486
  191. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/ContentProviderBasedProject.js +0 -130
  192. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/DebuggerLanguagePlugins.js +0 -992
  193. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/DebuggerWorkspaceBinding.js +0 -592
  194. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/DefaultScriptMapping.js +0 -112
  195. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/FileUtils.js +0 -186
  196. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/LiveLocation.js +0 -60
  197. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/NetworkProject.js +0 -107
  198. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/PresentationConsoleMessageHelper.js +0 -244
  199. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/ResourceMapping.js +0 -564
  200. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/ResourceScriptMapping.js +0 -437
  201. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/ResourceUtils.js +0 -87
  202. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/SASSSourceMapping.js +0 -182
  203. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/StylesSourceMapping.js +0 -268
  204. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/TempFile.js +0 -55
  205. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/bindings.js +0 -20
  206. package/build/node_modules/chrome-devtools-frontend/front_end/models/cpu_profile/CPUProfileDataModel.js +0 -516
  207. package/build/node_modules/chrome-devtools-frontend/front_end/models/cpu_profile/ProfileTreeModel.js +0 -89
  208. package/build/node_modules/chrome-devtools-frontend/front_end/models/cpu_profile/cpu_profile.js +0 -6
  209. package/build/node_modules/chrome-devtools-frontend/front_end/models/crux-manager/CrUXManager.js +0 -285
  210. package/build/node_modules/chrome-devtools-frontend/front_end/models/crux-manager/crux-manager.js +0 -4
  211. package/build/node_modules/chrome-devtools-frontend/front_end/models/emulation/DeviceModeModel.js +0 -775
  212. package/build/node_modules/chrome-devtools-frontend/front_end/models/emulation/EmulatedDevices.js +0 -1706
  213. package/build/node_modules/chrome-devtools-frontend/front_end/models/emulation/emulation.js +0 -6
  214. package/build/node_modules/chrome-devtools-frontend/front_end/models/formatter/FormatterWorkerPool.js +0 -145
  215. package/build/node_modules/chrome-devtools-frontend/front_end/models/formatter/ScriptFormatter.js +0 -77
  216. package/build/node_modules/chrome-devtools-frontend/front_end/models/formatter/formatter.js +0 -6
  217. package/build/node_modules/chrome-devtools-frontend/front_end/models/geometry/GeometryImpl.js +0 -347
  218. package/build/node_modules/chrome-devtools-frontend/front_end/models/geometry/geometry.js +0 -4
  219. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/AttributionReportingIssue.js +0 -201
  220. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/BounceTrackingIssue.js +0 -49
  221. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/CheckFormsIssuesTrigger.js +0 -31
  222. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/ClientHintIssue.js +0 -71
  223. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/ContentSecurityPolicyIssue.js +0 -135
  224. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/ContrastCheckTrigger.js +0 -59
  225. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/CookieDeprecationMetadataIssue.js +0 -58
  226. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/CookieIssue.js +0 -514
  227. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/CorsIssue.js +0 -244
  228. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/CrossOriginEmbedderPolicyIssue.js +0 -110
  229. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/DeprecationIssue.js +0 -90
  230. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/ElementAccessibilityIssue.js +0 -95
  231. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/FederatedAuthRequestIssue.js +0 -231
  232. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/FederatedAuthUserInfoRequestIssue.js +0 -141
  233. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/GenericIssue.js +0 -212
  234. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/HeavyAdIssue.js +0 -52
  235. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/Issue.js +0 -152
  236. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/IssueAggregator.js +0 -314
  237. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/IssueResolver.js +0 -40
  238. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/IssuesManager.js +0 -416
  239. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/IssuesManagerEvents.js +0 -4
  240. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/LowTextContrastIssue.js +0 -48
  241. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/MarkdownIssueDescription.js +0 -104
  242. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/MixedContentIssue.js +0 -55
  243. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/PartitioningBlobURLIssue.js +0 -58
  244. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/PropertyRuleIssue.js +0 -58
  245. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/QuirksModeIssue.js +0 -48
  246. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/RelatedIssue.js +0 -70
  247. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/SRIMessageSignatureIssue.js +0 -87
  248. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/SharedArrayBufferIssue.js +0 -49
  249. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/SharedDictionaryIssue.js +0 -292
  250. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/SourceFrameIssuesManager.js +0 -81
  251. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/StylesheetLoadingIssue.js +0 -59
  252. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/UnencodedDigestIssue.js +0 -62
  253. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/CoepCoopSandboxedIframeCannotNavigateToCoopPage.md +0 -4
  254. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/CoepCorpNotSameOrigin.md +0 -8
  255. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/CoepCorpNotSameOriginAfterDefaultedToSameOriginByCoep.md +0 -18
  256. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/CoepCorpNotSameSite.md +0 -7
  257. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/CoepFrameResourceNeedsCoepHeader.md +0 -10
  258. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/CompatibilityModeQuirks.md +0 -5
  259. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/CookieAttributeValueExceedsMaxSize.md +0 -5
  260. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/LowTextContrast.md +0 -5
  261. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteExcludeContextDowngradeRead.md +0 -8
  262. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteExcludeContextDowngradeSet.md +0 -8
  263. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteExcludeNavigationContextDowngrade.md +0 -8
  264. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteInvalidSameParty.md +0 -8
  265. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteNoneInsecureErrorRead.md +0 -8
  266. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteNoneInsecureErrorSet.md +0 -8
  267. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteNoneInsecureWarnRead.md +0 -8
  268. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteNoneInsecureWarnSet.md +0 -8
  269. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteSamePartyCrossPartyContextSet.md +0 -10
  270. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteUnspecifiedLaxAllowUnsafeRead.md +0 -9
  271. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteUnspecifiedLaxAllowUnsafeSet.md +0 -9
  272. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteWarnCrossDowngradeRead.md +0 -8
  273. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteWarnCrossDowngradeSet.md +0 -8
  274. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteWarnStrictLaxDowngradeStrict.md +0 -8
  275. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arInsecureContext.md +0 -7
  276. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arInvalidInfoHeader.md +0 -5
  277. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arInvalidRegisterOsSourceHeader.md +0 -5
  278. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arInvalidRegisterOsTriggerHeader.md +0 -5
  279. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arInvalidRegisterSourceHeader.md +0 -5
  280. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arInvalidRegisterTriggerHeader.md +0 -5
  281. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arNavigationRegistrationUniqueScopeAlreadySet.md +0 -5
  282. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arNavigationRegistrationWithoutTransientUserActivation.md +0 -6
  283. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arNoRegisterOsSourceHeader.md +0 -5
  284. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arNoRegisterOsTriggerHeader.md +0 -5
  285. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arNoRegisterSourceHeader.md +0 -5
  286. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arNoRegisterTriggerHeader.md +0 -5
  287. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arNoWebOrOsSupport.md +0 -4
  288. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arOsSourceIgnored.md +0 -18
  289. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arOsTriggerIgnored.md +0 -19
  290. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arPermissionPolicyDisabled.md +0 -8
  291. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arSourceAndTriggerHeaders.md +0 -9
  292. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arSourceIgnored.md +0 -13
  293. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arTriggerIgnored.md +0 -12
  294. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arUntrustworthyReportingOrigin.md +0 -10
  295. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arWebAndOsHeaders.md +0 -11
  296. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/bounceTrackingMitigations.md +0 -3
  297. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/clientHintMetaTagAllowListInvalidOrigin.md +0 -4
  298. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/clientHintMetaTagModifiedHTML.md +0 -4
  299. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieCrossSiteRedirectDowngrade.md +0 -12
  300. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieExcludeBlockedWithinRelatedWebsiteSet.md +0 -4
  301. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieExcludeDomainNonAscii.md +0 -11
  302. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieExcludePortMismatch.md +0 -8
  303. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieExcludeSchemeMismatch.md +0 -7
  304. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieExcludeThirdPartyPhaseoutRead.md +0 -6
  305. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieExcludeThirdPartyPhaseoutSet.md +0 -6
  306. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieWarnDomainNonAscii.md +0 -11
  307. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieWarnMetadataGrantRead.md +0 -4
  308. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieWarnMetadataGrantSet.md +0 -4
  309. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieWarnThirdPartyPhaseoutRead.md +0 -6
  310. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieWarnThirdPartyPhaseoutSet.md +0 -6
  311. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsAllowCredentialsRequired.md +0 -6
  312. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsDisabledScheme.md +0 -7
  313. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsDisallowedByMode.md +0 -7
  314. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsHeaderDisallowedByPreflightResponse.md +0 -5
  315. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsInsecurePrivateNetwork.md +0 -10
  316. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsInvalidHeaderValues.md +0 -7
  317. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsLocalNetworkAccessPermissionDenied.md +0 -19
  318. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsMethodDisallowedByPreflightResponse.md +0 -5
  319. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsNoCorsRedirectModeNotFollow.md +0 -5
  320. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsOriginMismatch.md +0 -6
  321. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsPreflightAllowPrivateNetworkError.md +0 -10
  322. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsPreflightResponseInvalid.md +0 -5
  323. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsPrivateNetworkPermissionDenied.md +0 -10
  324. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsRedirectContainsCredentials.md +0 -5
  325. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsWildcardOriginNotAllowed.md +0 -8
  326. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cspEvalViolation.md +0 -9
  327. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cspInlineViolation.md +0 -10
  328. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cspTrustedTypesPolicyViolation.md +0 -5
  329. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cspTrustedTypesSinkViolation.md +0 -8
  330. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cspURLViolation.md +0 -10
  331. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/deprecation.md +0 -3
  332. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestAccountsHttpNotFound.md +0 -1
  333. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestAccountsInvalidResponse.md +0 -1
  334. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestAccountsNoResponse.md +0 -1
  335. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestApprovalDeclined.md +0 -1
  336. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestCanceled.md +0 -1
  337. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestClientMetadataHttpNotFound.md +0 -1
  338. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestClientMetadataInvalidResponse.md +0 -1
  339. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestClientMetadataNoResponse.md +0 -1
  340. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestErrorFetchingSignin.md +0 -1
  341. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestErrorIdToken.md +0 -1
  342. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestIdTokenHttpNotFound.md +0 -1
  343. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestIdTokenInvalidRequest.md +0 -1
  344. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestIdTokenInvalidResponse.md +0 -1
  345. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestIdTokenNoResponse.md +0 -1
  346. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestInvalidSigninResponse.md +0 -1
  347. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestManifestHttpNotFound.md +0 -1
  348. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestManifestInvalidResponse.md +0 -1
  349. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestManifestNoResponse.md +0 -1
  350. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestTooManyRequests.md +0 -1
  351. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestInvalidAccountsResponse.md +0 -1
  352. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestInvalidConfigOrWellKnown.md +0 -1
  353. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNoAccountSharingPermission.md +0 -1
  354. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNoApiPermission.md +0 -1
  355. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNoReturningUserFromFetchedAccounts.md +0 -1
  356. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotIframe.md +0 -1
  357. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotPotentiallyTrustworthy.md +0 -1
  358. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotSameOrigin.md +0 -1
  359. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotSignedInWithIdp.md +0 -1
  360. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/fetchingPartitionedBlobURL.md +0 -7
  361. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericFormAriaLabelledByToNonExistingIdError.md +0 -8
  362. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericFormAutocompleteAttributeEmptyError.md +0 -5
  363. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericFormDuplicateIdForInputError.md +0 -5
  364. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericFormEmptyIdAndNameAttributesForInputError.md +0 -5
  365. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericFormInputAssignedAutocompleteValueToIdOrNameAttributeError.md +0 -5
  366. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericFormInputHasWrongButWellIntendedAutocompleteValueError.md +0 -5
  367. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericFormInputWithNoLabelError.md +0 -5
  368. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericFormLabelForMatchesNonExistingIdError.md +0 -5
  369. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericFormLabelForNameError.md +0 -5
  370. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericFormLabelHasNeitherForNorNestedInputError.md +0 -5
  371. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericNavigationEntryMarkedSkippable.md +0 -7
  372. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericResponseWasBlockedByORB.md +0 -4
  373. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/heavyAd.md +0 -10
  374. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/mixedContent.md +0 -5
  375. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/navigatingPartitionedBlobURL.md +0 -5
  376. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/placeholderDescriptionForInvisibleIssues.md +0 -3
  377. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/propertyRuleInvalidNameIssue.md +0 -3
  378. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/propertyRuleIssue.md +0 -7
  379. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/selectElementAccessibilityDisallowedOptGroupChild.md +0 -7
  380. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/selectElementAccessibilityDisallowedSelectChild.md +0 -7
  381. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/selectElementAccessibilityInteractiveContentAttributesSelectDescendant.md +0 -3
  382. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/selectElementAccessibilityInteractiveContentLegendChild.md +0 -3
  383. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/selectElementAccessibilityInteractiveContentOptionChild.md +0 -3
  384. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/selectElementAccessibilityNonPhrasingContentOptionChild.md +0 -3
  385. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedArrayBuffer.md +0 -7
  386. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryUseErrorCrossOriginNoCorsRequest.md +0 -1
  387. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryUseErrorDictionaryLoadFailure.md +0 -3
  388. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryUseErrorMatchingDictionaryNotUsed.md +0 -3
  389. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryUseErrorUnexpectedContentDictionaryHeader.md +0 -1
  390. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorCossOriginNoCorsRequest.md +0 -1
  391. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorDisallowedBySettings.md +0 -1
  392. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorExpiredResponse.md +0 -3
  393. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorFeatureDisabled.md +0 -3
  394. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorInsufficientResources.md +0 -1
  395. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorInvalidMatchField.md +0 -1
  396. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorInvalidStructuredHeader.md +0 -1
  397. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorInvalidTTLField.md +0 -1
  398. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorNavigationRequest.md +0 -3
  399. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorNoMatchField.md +0 -1
  400. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonIntegerTTLField.md +0 -1
  401. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonListMatchDestField.md +0 -1
  402. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonSecureContext.md +0 -3
  403. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonStringIdField.md +0 -1
  404. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonStringInMatchDestList.md +0 -1
  405. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonStringMatchField.md +0 -1
  406. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonTokenTypeField.md +0 -1
  407. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorRequestAborted.md +0 -1
  408. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorShuttingDown.md +0 -1
  409. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorTooLongIdField.md +0 -3
  410. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorUnsupportedType.md +0 -3
  411. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriInvalidSignatureHeader.md +0 -14
  412. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriInvalidSignatureInputHeader.md +0 -15
  413. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriMissingSignatureHeader.md +0 -8
  414. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriMissingSignatureInputHeader.md +0 -7
  415. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureHeaderValueIsIncorrectLength.md +0 -11
  416. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureHeaderValueIsNotByteSequence.md +0 -14
  417. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureHeaderValueIsParameterized.md +0 -15
  418. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidComponentName.md +0 -8
  419. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidComponentType.md +0 -13
  420. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidDerivedComponentParameter.md +0 -4
  421. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidHeaderComponentParameter.md +0 -5
  422. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidParameter.md +0 -11
  423. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderKeyIdLength.md +0 -12
  424. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderMissingLabel.md +0 -6
  425. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderMissingRequiredParameters.md +0 -8
  426. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderValueMissingComponents.md +0 -11
  427. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderValueNotInnerList.md +0 -11
  428. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriValidationFailedIntegrityMismatch.md +0 -10
  429. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriValidationFailedInvalidLength.md +0 -5
  430. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriValidationFailedSignatureExpired.md +0 -6
  431. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriValidationFailedSignatureMismatch.md +0 -11
  432. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/stylesheetLateImport.md +0 -4
  433. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/stylesheetRequestFailed.md +0 -3
  434. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/summaryElementAccessibilityInteractiveContentSummaryDescendant.md +0 -3
  435. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/unencodedDigestIncorrectDigestLength.md +0 -12
  436. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/unencodedDigestIncorrectDigestType.md +0 -17
  437. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/unencodedDigestMalformedDictionary.md +0 -14
  438. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/unencodedDigestUnknownAlgorithm.md +0 -15
  439. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/issues_manager.js +0 -35
  440. package/build/node_modules/chrome-devtools-frontend/front_end/models/logs/LogManager.js +0 -67
  441. package/build/node_modules/chrome-devtools-frontend/front_end/models/logs/NetworkLog.js +0 -494
  442. package/build/node_modules/chrome-devtools-frontend/front_end/models/logs/RequestResolver.js +0 -49
  443. package/build/node_modules/chrome-devtools-frontend/front_end/models/logs/logs-meta.js +0 -73
  444. package/build/node_modules/chrome-devtools-frontend/front_end/models/logs/logs.js +0 -7
  445. package/build/node_modules/chrome-devtools-frontend/front_end/models/network_time_calculator/Calculator.js +0 -4
  446. package/build/node_modules/chrome-devtools-frontend/front_end/models/network_time_calculator/NetworkTimeCalculator.js +0 -256
  447. package/build/node_modules/chrome-devtools-frontend/front_end/models/network_time_calculator/RequestTimeRanges.js +0 -122
  448. package/build/node_modules/chrome-devtools-frontend/front_end/models/network_time_calculator/network_time_calculator.js +0 -6
  449. package/build/node_modules/chrome-devtools-frontend/front_end/models/source_map_scopes/FunctionCodeResolver.js +0 -192
  450. package/build/node_modules/chrome-devtools-frontend/front_end/models/source_map_scopes/NamesResolver.js +0 -622
  451. package/build/node_modules/chrome-devtools-frontend/front_end/models/source_map_scopes/ScopeChainModel.js +0 -59
  452. package/build/node_modules/chrome-devtools-frontend/front_end/models/source_map_scopes/source_map_scopes.js +0 -7
  453. package/build/node_modules/chrome-devtools-frontend/front_end/models/stack_trace/StackTrace.js +0 -4
  454. package/build/node_modules/chrome-devtools-frontend/front_end/models/stack_trace/StackTraceImpl.js +0 -67
  455. package/build/node_modules/chrome-devtools-frontend/front_end/models/stack_trace/StackTraceModel.js +0 -97
  456. package/build/node_modules/chrome-devtools-frontend/front_end/models/stack_trace/Trie.js +0 -121
  457. package/build/node_modules/chrome-devtools-frontend/front_end/models/stack_trace/stack_trace.js +0 -5
  458. package/build/node_modules/chrome-devtools-frontend/front_end/models/stack_trace/stack_trace_impl.js +0 -7
  459. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/CodeMirrorUtils.js +0 -32
  460. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/ContentData.js +0 -173
  461. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/ContentProvider.js +0 -30
  462. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/StaticContentProvider.js +0 -32
  463. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/StreamingContentData.js +0 -79
  464. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/Text.js +0 -69
  465. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/TextCursor.js +0 -35
  466. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/TextRange.js +0 -231
  467. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/TextUtils.js +0 -355
  468. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/WasmDisassembly.js +0 -68
  469. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/text_utils.js +0 -14
  470. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/EntityMapper.js +0 -122
  471. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/EventsSerializer.js +0 -81
  472. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/LanternComputationData.js +0 -371
  473. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/ModelImpl.js +0 -169
  474. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/Name.js +0 -114
  475. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/Processor.js +0 -555
  476. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/Styles.js +0 -815
  477. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/FilmStrip.js +0 -44
  478. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/MainThreadActivity.js +0 -76
  479. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/ScriptDuplication.js +0 -162
  480. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/StackTraceForEvent.js +0 -191
  481. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/ThirdParties.js +0 -118
  482. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/TraceFilter.js +0 -50
  483. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/TraceTree.js +0 -599
  484. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/extras.js +0 -10
  485. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/AnimationFramesHandler.js +0 -109
  486. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/AnimationHandler.js +0 -26
  487. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/AsyncJSCallsHandler.js +0 -187
  488. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/AuctionWorkletsHandler.js +0 -162
  489. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/DOMStatsHandler.js +0 -21
  490. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/ExtensionTraceDataHandler.js +0 -263
  491. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/FlowsHandler.js +0 -148
  492. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/FramesHandler.js +0 -485
  493. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/GPUHandler.js +0 -35
  494. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/ImagePaintingHandler.js +0 -147
  495. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/InitiatorsHandler.js +0 -180
  496. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/InvalidationsHandler.js +0 -126
  497. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/LargestImagePaintHandler.js +0 -85
  498. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/LargestTextPaintHandler.js +0 -27
  499. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/LayerTreeHandler.js +0 -103
  500. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/LayoutShiftsHandler.js +0 -449
  501. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/MemoryHandler.js +0 -21
  502. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/MetaHandler.js +0 -404
  503. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/ModelHandlers.js +0 -33
  504. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/NetworkRequestsHandler.js +0 -566
  505. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/PageFramesHandler.js +0 -42
  506. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/PageLoadMetricsHandler.js +0 -349
  507. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/RendererHandler.js +0 -346
  508. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/SamplesHandler.js +0 -260
  509. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/ScreenshotsHandler.js +0 -97
  510. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/ScriptsHandler.js +0 -276
  511. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/SelectorStatsHandler.js +0 -71
  512. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/Threads.js +0 -101
  513. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/UserInteractionsHandler.js +0 -317
  514. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/UserTimingsHandler.js +0 -183
  515. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/WarningsHandler.js +0 -134
  516. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/WorkersHandler.js +0 -33
  517. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/handlers.js +0 -7
  518. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/helpers.js +0 -163
  519. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/types.js +0 -1
  520. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/Extensions.js +0 -41
  521. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/Network.js +0 -102
  522. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/SamplesIntegrator.js +0 -495
  523. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/SyntheticEvents.js +0 -74
  524. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/Timing.js +0 -186
  525. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/Trace.js +0 -820
  526. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/TreeHelpers.js +0 -254
  527. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/helpers.js +0 -10
  528. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/CLSCulprits.js +0 -489
  529. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/Cache.js +0 -209
  530. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/Common.js +0 -340
  531. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/DOMSize.js +0 -181
  532. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/DocumentLatency.js +0 -258
  533. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/DuplicatedJavaScript.js +0 -90
  534. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/FontDisplay.js +0 -82
  535. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/ForcedReflow.js +0 -161
  536. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/INPBreakdown.js +0 -129
  537. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/ImageDelivery.js +0 -263
  538. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/LCPBreakdown.js +0 -199
  539. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/LCPDiscovery.js +0 -183
  540. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/LegacyJavaScript.js +0 -90
  541. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/Models.js +0 -21
  542. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/ModernHTTP.js +0 -200
  543. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/NetworkDependencyTree.js +0 -545
  544. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/RenderBlocking.js +0 -192
  545. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/SlowCSSSelector.js +0 -136
  546. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/Statistics.js +0 -92
  547. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/ThirdParties.js +0 -98
  548. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/Viewport.js +0 -102
  549. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/insights.js +0 -9
  550. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/types.js +0 -18
  551. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/core/LanternError.js +0 -6
  552. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/core/NetworkAnalyzer.js +0 -488
  553. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/core/core.js +0 -5
  554. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/graph/BaseNode.js +0 -276
  555. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/graph/CPUNode.js +0 -63
  556. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/graph/NetworkNode.js +0 -82
  557. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/graph/PageDependencyGraph.js +0 -551
  558. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/graph/graph.js +0 -7
  559. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/lantern.js +0 -9
  560. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/FirstContentfulPaint.js +0 -136
  561. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/Interactive.js +0 -67
  562. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/LargestContentfulPaint.js +0 -68
  563. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/MaxPotentialFID.js +0 -48
  564. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/Metric.js +0 -68
  565. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/SpeedIndex.js +0 -101
  566. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/TBTUtils.js +0 -64
  567. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/TotalBlockingTime.js +0 -78
  568. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/metrics.js +0 -11
  569. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/ConnectionPool.js +0 -115
  570. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/Constants.js +0 -42
  571. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/DNSCache.js +0 -47
  572. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/SimulationTimingMap.js +0 -134
  573. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/Simulator.js +0 -450
  574. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/TCPConnection.js +0 -154
  575. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/simulation.js +0 -9
  576. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/types/Lantern.js +0 -24
  577. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/types/types.js +0 -4
  578. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/trace.js +0 -17
  579. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/Configuration.js +0 -18
  580. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/Extensions.js +0 -37
  581. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/File.js +0 -57
  582. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/Overlays.js +0 -4
  583. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/Timing.js +0 -15
  584. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/TraceEvents.js +0 -580
  585. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/types.js +0 -9
  586. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace_source_maps_resolver/SourceMapsResolver.js +0 -224
  587. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace_source_maps_resolver/trace_source_maps_resolver.js +0 -4
  588. package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/FileManager.js +0 -64
  589. package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/IgnoreListManager.js +0 -504
  590. package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/SearchConfig.js +0 -113
  591. package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/UISourceCode.js +0 -601
  592. package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/WorkspaceImpl.js +0 -201
  593. package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/workspace-meta.js +0 -34
  594. package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/workspace.js +0 -9
  595. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/codemirror.next/codemirror.next.js +0 -1
  596. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/i18n/LICENSE +0 -202
  597. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/i18n/i18n-impl.js +0 -46
  598. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/i18n/i18n.js +0 -6
  599. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/i18n/localized-string-set.js +0 -122
  600. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/intl-messageformat/LICENSE +0 -33
  601. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/intl-messageformat/intl-messageformat.js +0 -5
  602. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/intl-messageformat/package/index.js +0 -13
  603. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/intl-messageformat/package/intl-messageformat.esm.js +0 -1725
  604. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/intl-messageformat/package/intl-messageformat.iife.js +0 -1840
  605. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/intl-messageformat/package/lib/index.js +0 -10
  606. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/intl-messageformat/package/lib/src/core.js +0 -233
  607. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/intl-messageformat/package/lib/src/error.js +0 -48
  608. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/intl-messageformat/package/lib/src/formatters.js +0 -177
  609. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/intl-messageformat/package/src/core.js +0 -236
  610. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/intl-messageformat/package/src/error.js +0 -51
  611. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/intl-messageformat/package/src/formatters.js +0 -182
  612. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/legacy-javascript/LICENSE +0 -202
  613. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/legacy-javascript/legacy-javascript.js +0 -2
  614. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/legacy-javascript/lib/legacy-javascript.js +0 -940
  615. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/LICENSE +0 -39
  616. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/marked.js +0 -2
  617. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/bin/main.js +0 -255
  618. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/bin/marked.js +0 -11
  619. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/lib/marked.esm.js +0 -2695
  620. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/lib/marked.js +0 -2233
  621. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/lib/marked.umd.js +0 -2719
  622. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/src/Lexer.js +0 -453
  623. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/src/Parser.js +0 -233
  624. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/src/Renderer.js +0 -137
  625. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/src/Slugger.js +0 -46
  626. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/src/TextRenderer.js +0 -34
  627. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/src/Tokenizer.js +0 -683
  628. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/src/defaults.js +0 -27
  629. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/src/helpers.js +0 -240
  630. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/src/marked.js +0 -318
  631. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/src/rules.js +0 -243
  632. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/LICENSE +0 -26
  633. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/builder/builder.js +0 -196
  634. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/builder/safe_builder.js +0 -226
  635. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/codec.js +0 -4
  636. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/decode/decode.js +0 -394
  637. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/encode/encode.js +0 -24
  638. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/encode/encoder.js +0 -283
  639. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/mod.js +0 -7
  640. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/util.js +0 -9
  641. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/vlq.js +0 -84
  642. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/source-map-scopes-codec.js +0 -4
  643. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/LICENSE +0 -20
  644. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/lib/nostats-subset.js +0 -146
  645. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/httparchive-nostats-subset.js +0 -2
  646. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/httparchive-subset.js +0 -2
  647. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/create-entity-finder-api.js +0 -118
  648. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/create-entity-finder-api.test.js +0 -40
  649. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/entities.test.js +0 -26
  650. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/index.js +0 -4
  651. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/index.test.js +0 -215
  652. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/subsets/httparchive-nostats.js +0 -4
  653. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/subsets/httparchive.js +0 -4
  654. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/subsets/nostats.js +0 -4
  655. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/nostats-subset.js +0 -2
  656. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/third-party-web.js +0 -2
  657. package/build/node_modules/chrome-devtools-frontend/mcp/HostBindings.js +0 -222
  658. package/build/node_modules/chrome-devtools-frontend/mcp/mcp.js +0 -35
@@ -1,995 +0,0 @@
1
- // Copyright 2025 The Chromium Authors
2
- // Use of this source code is governed by a BSD-style license that can be
3
- // found in the LICENSE file.
4
- import * as Common from '../../../core/common/common.js';
5
- import * as Trace from '../../trace/trace.js';
6
- import { PerformanceTraceFormatter } from './PerformanceTraceFormatter.js';
7
- import { bytes, millis } from './UnitFormatters.js';
8
- /**
9
- * For a given frame ID and navigation ID, returns the LCP Event and the LCP Request, if the resource was an image.
10
- */
11
- function getLCPData(parsedTrace, frameId, navigationId) {
12
- const navMetrics = parsedTrace.data.PageLoadMetrics.metricScoresByFrameId.get(frameId)?.get(navigationId);
13
- if (!navMetrics) {
14
- return null;
15
- }
16
- const metric = navMetrics.get("LCP" /* Trace.Handlers.ModelHandlers.PageLoadMetrics.MetricName.LCP */);
17
- if (!metric || !Trace.Handlers.ModelHandlers.PageLoadMetrics.metricIsLCP(metric)) {
18
- return null;
19
- }
20
- const lcpEvent = metric?.event;
21
- if (!lcpEvent || !Trace.Types.Events.isLargestContentfulPaintCandidate(lcpEvent)) {
22
- return null;
23
- }
24
- return {
25
- lcpEvent,
26
- lcpRequest: parsedTrace.data.LargestImagePaint.lcpRequestByNavigationId.get(navigationId),
27
- metricScore: metric,
28
- };
29
- }
30
- export class PerformanceInsightFormatter {
31
- #traceFormatter;
32
- #insight;
33
- #parsedTrace;
34
- constructor(focus, insight) {
35
- this.#traceFormatter = new PerformanceTraceFormatter(focus);
36
- this.#insight = insight;
37
- this.#parsedTrace = focus.parsedTrace;
38
- }
39
- #formatMilli(x) {
40
- if (x === undefined) {
41
- return '';
42
- }
43
- return millis(x);
44
- }
45
- #formatMicro(x) {
46
- if (x === undefined) {
47
- return '';
48
- }
49
- return this.#formatMilli(Trace.Helpers.Timing.microToMilli(x));
50
- }
51
- #formatRequestUrl(request) {
52
- return `${request.args.data.url} ${this.#traceFormatter.serializeEvent(request)}`;
53
- }
54
- #formatScriptUrl(script) {
55
- if (script.request) {
56
- return this.#formatRequestUrl(script.request);
57
- }
58
- return script.url ?? script.sourceUrl ?? script.scriptId;
59
- }
60
- #formatUrl(url) {
61
- const request = this.#parsedTrace.data.NetworkRequests.byTime.find(request => request.args.data.url === url);
62
- if (request) {
63
- return this.#formatRequestUrl(request);
64
- }
65
- return url;
66
- }
67
- /**
68
- * Information about LCP which we pass to the LLM for all insights that relate to LCP.
69
- */
70
- #lcpMetricSharedContext() {
71
- if (!this.#insight.navigationId) {
72
- // No navigation ID = no LCP.
73
- return '';
74
- }
75
- if (!this.#insight.frameId || !this.#insight.navigationId) {
76
- return '';
77
- }
78
- const data = getLCPData(this.#parsedTrace, this.#insight.frameId, this.#insight.navigationId);
79
- if (!data) {
80
- return '';
81
- }
82
- const { metricScore, lcpRequest, lcpEvent } = data;
83
- const theLcpElement = lcpEvent.args.data?.nodeName ?
84
- `The LCP element (${lcpEvent.args.data.nodeName}, nodeId: ${lcpEvent.args.data.nodeId})` :
85
- 'The LCP element';
86
- const parts = [
87
- `The Largest Contentful Paint (LCP) time for this navigation was ${this.#formatMicro(metricScore.timing)}.`,
88
- ];
89
- if (lcpRequest) {
90
- parts.push(`${theLcpElement} is an image fetched from ${this.#formatRequestUrl(lcpRequest)}.`);
91
- const request = this.#traceFormatter.formatNetworkRequests([lcpRequest], { verbose: true, customTitle: 'LCP resource network request' });
92
- parts.push(request);
93
- }
94
- else {
95
- parts.push(`${theLcpElement} is text and was not fetched from the network.`);
96
- }
97
- return parts.join('\n');
98
- }
99
- insightIsSupported() {
100
- // Although our types don't show it, Insights can end up as Errors if there
101
- // is an issue in the processing stage. In this case we should gracefully
102
- // ignore this error.
103
- if (this.#insight instanceof Error) {
104
- return false;
105
- }
106
- return this.#description().length > 0;
107
- }
108
- getSuggestions() {
109
- switch (this.#insight.insightKey) {
110
- case 'CLSCulprits':
111
- return [
112
- { title: 'Help me optimize my CLS score' },
113
- { title: 'How can I prevent layout shifts on this page?' },
114
- ];
115
- case 'DocumentLatency':
116
- return [
117
- { title: 'How do I decrease the initial loading time of my page?' },
118
- { title: 'Did anything slow down the request for this document?' },
119
- ];
120
- case 'DOMSize':
121
- return [{ title: 'How can I reduce the size of my DOM?' }];
122
- case 'DuplicatedJavaScript':
123
- return [
124
- { title: 'How do I deduplicate the identified scripts in my bundle?' },
125
- { title: 'Which duplicated JavaScript modules are the most problematic?' }
126
- ];
127
- case 'FontDisplay':
128
- return [
129
- { title: 'How can I update my CSS to avoid layout shifts caused by incorrect `font-display` properties?' }
130
- ];
131
- case 'ForcedReflow':
132
- return [
133
- { title: 'How can I avoid forced reflows and layout thrashing?' },
134
- { title: 'What is forced reflow and why is it problematic?' }
135
- ];
136
- case 'ImageDelivery':
137
- return [
138
- { title: 'What should I do to improve and optimize the time taken to fetch and display images on the page?' },
139
- { title: 'Are all images on my site optimized?' },
140
- ];
141
- case 'INPBreakdown':
142
- return [
143
- { title: 'Suggest fixes for my longest interaction' }, { title: 'Why is a large INP score problematic?' },
144
- { title: 'What\'s the biggest contributor to my longest interaction?' }
145
- ];
146
- case 'LCPDiscovery':
147
- return [
148
- { title: 'Suggest fixes to reduce my LCP' }, { title: 'What can I do to reduce my LCP discovery time?' },
149
- { title: 'Why is LCP discovery time important?' }
150
- ];
151
- case 'LCPBreakdown':
152
- return [
153
- { title: 'Help me optimize my LCP score' }, { title: 'Which LCP phase was most problematic?' },
154
- { title: 'What can I do to reduce the LCP time for this page load?' }
155
- ];
156
- case 'NetworkDependencyTree':
157
- return [{ title: 'How do I optimize my network dependency tree?' }];
158
- case 'RenderBlocking':
159
- return [
160
- { title: 'Show me the most impactful render blocking requests that I should focus on' },
161
- { title: 'How can I reduce the number of render blocking requests?' }
162
- ];
163
- case 'SlowCSSSelector':
164
- return [{ title: 'How can I optimize my CSS to increase the performance of CSS selectors?' }];
165
- case 'ThirdParties':
166
- return [{ title: 'Which third parties are having the largest impact on my page performance?' }];
167
- case 'Cache':
168
- return [{ title: 'What caching strategies can I apply to improve my page performance?' }];
169
- case 'Viewport':
170
- return [{ title: 'How do I make sure my page is optimized for mobile viewing?' }];
171
- case 'ModernHTTP':
172
- return [
173
- { title: 'Is my site using the best HTTP practices?' },
174
- { title: 'Which resources are not using a modern HTTP protocol?' },
175
- ];
176
- case 'LegacyJavaScript':
177
- return [
178
- { title: 'Is my site polyfilling modern JavaScript features?' },
179
- { title: 'How can I reduce the amount of legacy JavaScript on my page?' },
180
- ];
181
- default:
182
- throw new Error('Unknown insight key');
183
- }
184
- }
185
- /**
186
- * Create an AI prompt string out of the Cache Insight model to use with Ask AI.
187
- * Note: This function accesses the UIStrings within Cache to help build the
188
- * AI prompt, but does not (and should not) call i18nString to localize these strings. They
189
- * should all be sent in English (at least for now).
190
- * @param insight The Cache Insight Model to query.
191
- * @returns a string formatted for sending to Ask AI.
192
- */
193
- formatCacheInsight(insight) {
194
- if (insight.requests.length === 0) {
195
- return Trace.Insights.Models.Cache.UIStrings.noRequestsToCache + '.';
196
- }
197
- let output = 'The following resources were associated with ineffficient cache policies:\n';
198
- for (const entry of insight.requests) {
199
- output += `\n- ${this.#formatRequestUrl(entry.request)}`;
200
- output += `\n - Cache Time to Live (TTL): ${entry.ttl} seconds`;
201
- output += `\n - Wasted bytes: ${bytes(entry.wastedBytes)}`;
202
- }
203
- output += '\n\n' + Trace.Insights.Models.Cache.UIStrings.description;
204
- return output;
205
- }
206
- #formatLayoutShift(shift, index, rootCauses) {
207
- const baseTime = this.#parsedTrace.data.Meta.traceBounds.min;
208
- const potentialRootCauses = [];
209
- if (rootCauses) {
210
- rootCauses.iframes.forEach(iframe => potentialRootCauses.push(`- An iframe (id: ${iframe.frame}, url: ${iframe.url ?? 'unknown'} was injected into the page)`));
211
- rootCauses.webFonts.forEach(req => {
212
- potentialRootCauses.push(`- A font that was loaded over the network: ${this.#formatRequestUrl(req)}.`);
213
- });
214
- rootCauses.nonCompositedAnimations.forEach(nonCompositedFailure => {
215
- potentialRootCauses.push('- A non-composited animation:');
216
- const animationInfoOutput = [];
217
- potentialRootCauses.push(`- non-composited animation: \`${nonCompositedFailure.name || '(unnamed)'}\``);
218
- if (nonCompositedFailure.name) {
219
- animationInfoOutput.push(`Animation name: ${nonCompositedFailure.name}`);
220
- }
221
- if (nonCompositedFailure.unsupportedProperties) {
222
- animationInfoOutput.push('Unsupported CSS properties:');
223
- animationInfoOutput.push('- ' + nonCompositedFailure.unsupportedProperties.join(', '));
224
- }
225
- animationInfoOutput.push('Failure reasons:');
226
- animationInfoOutput.push(' - ' + nonCompositedFailure.failureReasons.join(', '));
227
- // Extra padding to the detail to not mess up the indentation.
228
- potentialRootCauses.push(animationInfoOutput.map(l => ' '.repeat(4) + l).join('\n'));
229
- });
230
- rootCauses.unsizedImages.forEach(img => {
231
- // TODO(b/413284569): if we store a nice human readable name for this
232
- // image in the trace metadata, we can do something much nicer here.
233
- const url = img.paintImageEvent.args.data.url;
234
- const nodeName = img.paintImageEvent.args.data.nodeName;
235
- const extraText = url ? `url: ${this.#formatUrl(url)}` : `id: ${img.backendNodeId}`;
236
- potentialRootCauses.push(`- An unsized image (${nodeName}) (${extraText}).`);
237
- });
238
- }
239
- const rootCauseText = potentialRootCauses.length ? `- Potential root causes:\n ${potentialRootCauses.join('\n')}` :
240
- '- No potential root causes identified';
241
- const startTime = Trace.Helpers.Timing.microToMilli(Trace.Types.Timing.Micro(shift.ts - baseTime));
242
- const impactedNodeNames = shift.rawSourceEvent.args.data?.impacted_nodes?.map(n => n.debug_name).filter(name => name !== undefined) ?? [];
243
- const impactedNodeText = impactedNodeNames.length ? `\n- Impacted elements:\n - ${impactedNodeNames.join('\n - ')}\n` : '';
244
- return `### Layout shift ${index + 1}:${impactedNodeText}
245
- - Start time: ${millis(startTime)}
246
- - Score: ${shift.args.data?.weighted_score_delta.toFixed(4)}
247
- ${rootCauseText}`;
248
- }
249
- /**
250
- * Create an AI prompt string out of the CLS Culprits Insight model to use with Ask AI.
251
- * @param insight The CLS Culprits Model to query.
252
- * @returns a string formatted for sending to Ask AI.
253
- */
254
- formatClsCulpritsInsight(insight) {
255
- const { worstCluster, shifts } = insight;
256
- if (!worstCluster) {
257
- return 'No layout shifts were found.';
258
- }
259
- const baseTime = this.#parsedTrace.data.Meta.traceBounds.min;
260
- const clusterTimes = {
261
- start: worstCluster.ts - baseTime,
262
- end: worstCluster.ts + worstCluster.dur - baseTime,
263
- };
264
- const shiftsFormatted = worstCluster.events.map((layoutShift, index) => {
265
- return this.#formatLayoutShift(layoutShift, index, shifts.get(layoutShift));
266
- });
267
- return `The worst layout shift cluster was the cluster that started at ${this.#formatMicro(clusterTimes.start)} and ended at ${this.#formatMicro(clusterTimes.end)}, with a duration of ${this.#formatMicro(worstCluster.dur)}.
268
- The score for this cluster is ${worstCluster.clusterCumulativeScore.toFixed(4)}.
269
-
270
- Layout shifts in this cluster:
271
- ${shiftsFormatted.join('\n')}`;
272
- }
273
- /**
274
- * Create an AI prompt string out of the Document Latency Insight model to use with Ask AI.
275
- * @param insight The Document Latency Model to query.
276
- * @returns a string formatted for sending to Ask AI.
277
- */
278
- formatDocumentLatencyInsight(insight) {
279
- if (!insight.data) {
280
- return '';
281
- }
282
- const { checklist, documentRequest } = insight.data;
283
- if (!documentRequest) {
284
- return '';
285
- }
286
- const checklistBulletPoints = [];
287
- checklistBulletPoints.push({
288
- name: 'The request was not redirected',
289
- passed: checklist.noRedirects.value,
290
- });
291
- checklistBulletPoints.push({
292
- name: 'Server responded quickly',
293
- passed: checklist.serverResponseIsFast.value,
294
- });
295
- checklistBulletPoints.push({
296
- name: 'Compression was applied',
297
- passed: checklist.usesCompression.value,
298
- });
299
- return `${this.#lcpMetricSharedContext()}
300
-
301
- ${this.#traceFormatter.formatNetworkRequests([documentRequest], {
302
- verbose: true,
303
- customTitle: 'Document network request'
304
- })}
305
-
306
- The result of the checks for this insight are:
307
- ${checklistBulletPoints.map(point => `- ${point.name}: ${point.passed ? 'PASSED' : 'FAILED'}`).join('\n')}`;
308
- }
309
- /**
310
- * Create an AI prompt string out of the DOM Size model to use with Ask AI.
311
- * Note: This function accesses the UIStrings within DomSize to help build the
312
- * AI prompt, but does not (and should not) call i18nString to localize these strings. They
313
- * should all be sent in English (at least for now).
314
- * @param insight The DOM Size Insight Model to query.
315
- * @returns a string formatted for sending to Ask AI.
316
- */
317
- formatDomSizeInsight(insight) {
318
- if (insight.state === 'pass') {
319
- return 'No DOM size issues were detected.';
320
- }
321
- let output = Trace.Insights.Models.DOMSize.UIStrings.description + '\n';
322
- if (insight.maxDOMStats) {
323
- output += '\n' + Trace.Insights.Models.DOMSize.UIStrings.statistic + ':\n\n';
324
- const maxDepthStats = insight.maxDOMStats.args.data.maxDepth;
325
- const maxChildrenStats = insight.maxDOMStats.args.data.maxChildren;
326
- output += Trace.Insights.Models.DOMSize.UIStrings.totalElements + ': ' +
327
- insight.maxDOMStats.args.data.totalElements + '.\n';
328
- if (maxDepthStats) {
329
- output += Trace.Insights.Models.DOMSize.UIStrings.maxDOMDepth + ': ' + maxDepthStats.depth +
330
- ` nodes, starting with element '${maxDepthStats.nodeName}'` +
331
- ' (node id: ' + maxDepthStats.nodeId + ').\n';
332
- }
333
- if (maxChildrenStats) {
334
- output += Trace.Insights.Models.DOMSize.UIStrings.maxChildren + ': ' + maxChildrenStats.numChildren +
335
- `, for parent '${maxChildrenStats.nodeName}'` +
336
- ' (node id: ' + maxChildrenStats.nodeId + ').\n';
337
- }
338
- }
339
- if (insight.largeLayoutUpdates.length > 0 || insight.largeStyleRecalcs.length > 0) {
340
- output += `\nLarge layout updates/style calculations:\n`;
341
- }
342
- if (insight.largeLayoutUpdates.length > 0) {
343
- for (const update of insight.largeLayoutUpdates) {
344
- output += `\n - Layout update: Duration: ${this.#formatMicro(update.dur)},`;
345
- output += ` with ${update.args.beginData.dirtyObjects} of ${update.args.beginData.totalObjects} nodes needing layout.`;
346
- }
347
- }
348
- if (insight.largeStyleRecalcs.length > 0) {
349
- for (const recalc of insight.largeStyleRecalcs) {
350
- output += `\n - Style recalculation: Duration: ${this.#formatMicro(recalc.dur)}, `;
351
- output += `with ${recalc.args.elementCount} elements affected.`;
352
- }
353
- }
354
- return output;
355
- }
356
- /**
357
- * Create an AI prompt string out of the Duplicated JavaScript Insight model to use with Ask AI.
358
- * @param insight The Duplicated JavaScript Model to query.
359
- * @returns a string formatted for sending to Ask AI.
360
- */
361
- formatDuplicatedJavaScriptInsight(insight) {
362
- const totalWastedBytes = insight.wastedBytes;
363
- const duplicatedScriptsByModule = insight.duplicationGroupedByNodeModules;
364
- if (duplicatedScriptsByModule.size === 0) {
365
- return 'There is no duplicated JavaScript in the page modules';
366
- }
367
- const filesFormatted = Array.from(duplicatedScriptsByModule)
368
- .map(([module, duplication]) => `- Source: ${module} - Duplicated bytes: ${duplication.estimatedDuplicateBytes} bytes`)
369
- .join('\n');
370
- return `Total wasted bytes: ${totalWastedBytes} bytes.
371
-
372
- Duplication grouped by Node modules: ${filesFormatted}`;
373
- }
374
- /**
375
- * Create an AI prompt string out of the NetworkDependencyTree Insight model to use with Ask AI.
376
- * Note: This function accesses the UIStrings within NetworkDependencyTree to help build the
377
- * AI prompt, but does not (and should not) call i18nString to localize these strings. They
378
- * should all be sent in English (at least for now).
379
- * @param insight The Network Dependency Tree Insight Model to query.
380
- * @returns a string formatted for sending to Ask AI.
381
- */
382
- formatFontDisplayInsight(insight) {
383
- if (insight.fonts.length === 0) {
384
- return 'No font display issues were detected.';
385
- }
386
- let output = 'The following font display issues were found:\n';
387
- for (const font of insight.fonts) {
388
- let fontName = font.name;
389
- if (!fontName) {
390
- const url = new Common.ParsedURL.ParsedURL(font.request.args.data.url);
391
- fontName = url.isValid ? url.lastPathComponent : '(not available)';
392
- }
393
- output += `\n - Font name: ${fontName}, URL: ${this.#formatRequestUrl(font.request)}, Property 'font-display' set to: '${font.display}', Wasted time: ${this.#formatMilli(font.wastedTime)}.`;
394
- }
395
- output += '\n\n' + Trace.Insights.Models.FontDisplay.UIStrings.description;
396
- return output;
397
- }
398
- /**
399
- * Create an AI prompt string out of the Forced Reflow Insight model to use with Ask AI.
400
- * Note: This function accesses the UIStrings within ForcedReflow model to help build the
401
- * AI prompt, but does not (and should not) call i18nString to localize these strings. They
402
- * should all be sent in English (at least for now).
403
- * @param insight The ForcedReflow Insight Model to query.
404
- * @returns a string formatted for sending to Ask AI.
405
- */
406
- formatForcedReflowInsight(insight) {
407
- let output = Trace.Insights.Models.ForcedReflow.UIStrings.description + '\n\n';
408
- if (insight.topLevelFunctionCallData || insight.aggregatedBottomUpData.length > 0) {
409
- output += 'The forced reflow checks revealed one or more problems.\n\n';
410
- }
411
- else {
412
- output += 'The forced reflow checks revealed no problems.';
413
- return output;
414
- }
415
- function callFrameToString(frame) {
416
- if (frame === null) {
417
- return Trace.Insights.Models.ForcedReflow.UIStrings.unattributed;
418
- }
419
- let result = `${frame.functionName || Trace.Insights.Models.ForcedReflow.UIStrings.anonymous}`;
420
- if (frame.url) {
421
- result += ` @ ${frame.url}:${frame.lineNumber}:${frame.columnNumber}`;
422
- }
423
- else {
424
- result += ' @ unknown location';
425
- }
426
- return result;
427
- }
428
- if (insight.topLevelFunctionCallData) {
429
- output += 'The following is the top function call that caused forced reflow(s):\n\n';
430
- output += ' - ' + callFrameToString(insight.topLevelFunctionCallData.topLevelFunctionCall);
431
- output += `\n\n${Trace.Insights.Models.ForcedReflow.UIStrings.totalReflowTime}: ${this.#formatMicro(insight.topLevelFunctionCallData.totalReflowTime)}\n`;
432
- }
433
- else {
434
- output += 'No top-level functions causing forced reflows were identified.\n';
435
- }
436
- if (insight.aggregatedBottomUpData.length > 0) {
437
- output += '\n' + Trace.Insights.Models.ForcedReflow.UIStrings.reflowCallFrames + ' (including total time):\n';
438
- for (const data of insight.aggregatedBottomUpData) {
439
- output += `\n - ${this.#formatMicro(data.totalTime)} in ${callFrameToString(data.bottomUpData)}`;
440
- }
441
- }
442
- else {
443
- output += '\nNo aggregated bottom-up causes of forced reflows were identified.';
444
- }
445
- return output;
446
- }
447
- /**
448
- * Create an AI prompt string out of the INP Brekdown Insight model to use with Ask AI.
449
- * @param insight The INP Breakdown Model to query.
450
- * @returns a string formatted for sending to Ask AI.
451
- */
452
- formatImageDeliveryInsight(insight) {
453
- const optimizableImages = insight.optimizableImages;
454
- if (optimizableImages.length === 0) {
455
- return 'There are no unoptimized images on this page.';
456
- }
457
- const imageDetails = optimizableImages
458
- .map(image => {
459
- // List potential optimizations for the image
460
- const optimizations = image.optimizations
461
- .map(optimization => {
462
- const message = Trace.Insights.Models.ImageDelivery.getOptimizationMessage(optimization);
463
- const byteSavings = bytes(optimization.byteSavings);
464
- return `${message} (Est ${byteSavings})`;
465
- })
466
- .join('\n');
467
- return `### ${this.#formatRequestUrl(image.request)}
468
- - Potential savings: ${bytes(image.byteSavings)}
469
- - Optimizations:\n${optimizations}`;
470
- })
471
- .join('\n\n');
472
- return `Total potential savings: ${bytes(insight.wastedBytes)}
473
-
474
- The following images could be optimized:\n\n${imageDetails}`;
475
- }
476
- /**
477
- * Create an AI prompt string out of the INP Brekdown Insight model to use with Ask AI.
478
- * @param insight The INP Breakdown Model to query.
479
- * @returns a string formatted for sending to Ask AI.
480
- */
481
- formatInpBreakdownInsight(insight) {
482
- const event = insight.longestInteractionEvent;
483
- if (!event) {
484
- return '';
485
- }
486
- const inpInfoForEvent = `The longest interaction on the page was a \`${event.type}\` which had a total duration of \`${this.#formatMicro(event.dur)}\`. The timings of each of the three phases were:
487
-
488
- 1. Input delay: ${this.#formatMicro(event.inputDelay)}
489
- 2. Processing duration: ${this.#formatMicro(event.mainThreadHandling)}
490
- 3. Presentation delay: ${this.#formatMicro(event.presentationDelay)}.`;
491
- return inpInfoForEvent;
492
- }
493
- /**
494
- * Create an AI prompt string out of the LCP Brekdown Insight model to use with Ask AI.
495
- * @param insight The LCP Breakdown Model to query.
496
- * @returns a string formatted for sending to Ask AI.
497
- */
498
- formatLcpBreakdownInsight(insight) {
499
- const { subparts, lcpMs } = insight;
500
- if (!lcpMs || !subparts) {
501
- return '';
502
- }
503
- // Text based LCP has TTFB & Render delay
504
- // Image based has TTFB, Load delay, Load time and Render delay
505
- // Note that we expect every trace + LCP to have TTFB + Render delay, but
506
- // very old traces are missing the data, so we have to code defensively
507
- // in case the subparts are not present.
508
- const phaseBulletPoints = [];
509
- Object.values(subparts).forEach((subpart) => {
510
- const phaseMilli = Trace.Helpers.Timing.microToMilli(subpart.range);
511
- const percentage = (phaseMilli / lcpMs * 100).toFixed(1);
512
- phaseBulletPoints.push({ name: subpart.label, value: this.#formatMilli(phaseMilli), percentage });
513
- });
514
- return `${this.#lcpMetricSharedContext()}
515
-
516
- We can break this time down into the ${phaseBulletPoints.length} phases that combine to make the LCP time:
517
-
518
- ${phaseBulletPoints.map(phase => `- ${phase.name}: ${phase.value} (${phase.percentage}% of total LCP time)`)
519
- .join('\n')}`;
520
- }
521
- /**
522
- * Create an AI prompt string out of the LCP Brekdown Insight model to use with Ask AI.
523
- * @param insight The LCP Breakdown Model to query.
524
- * @returns a string formatted for sending to Ask AI.
525
- */
526
- formatLcpDiscoveryInsight(insight) {
527
- const { checklist, lcpEvent, lcpRequest, earliestDiscoveryTimeTs } = insight;
528
- if (!checklist || !lcpEvent || !lcpRequest || !earliestDiscoveryTimeTs) {
529
- return '';
530
- }
531
- const checklistBulletPoints = [];
532
- checklistBulletPoints.push({
533
- name: checklist.priorityHinted.label,
534
- passed: checklist.priorityHinted.value,
535
- });
536
- checklistBulletPoints.push({
537
- name: checklist.eagerlyLoaded.label,
538
- passed: checklist.eagerlyLoaded.value,
539
- });
540
- checklistBulletPoints.push({
541
- name: checklist.requestDiscoverable.label,
542
- passed: checklist.requestDiscoverable.value,
543
- });
544
- return `${this.#lcpMetricSharedContext()}
545
-
546
- The result of the checks for this insight are:
547
- ${checklistBulletPoints.map(point => `- ${point.name}: ${point.passed ? 'PASSED' : 'FAILED'}`).join('\n')}`;
548
- }
549
- /**
550
- * Create an AI prompt string out of the Legacy JavaScript Insight model to use with Ask AI.
551
- * @param insight The Legacy JavaScript Model to query.
552
- * @returns a string formatted for sending to Ask AI.
553
- */
554
- formatLegacyJavaScriptInsight(insight) {
555
- const legacyJavaScriptResults = insight.legacyJavaScriptResults;
556
- if (legacyJavaScriptResults.size === 0) {
557
- return 'There is no significant amount of legacy JavaScript on the page.';
558
- }
559
- const filesFormatted = Array.from(legacyJavaScriptResults)
560
- .map(([script, result]) => `\n- Script: ${this.#formatScriptUrl(script)} - Wasted bytes: ${result.estimatedByteSavings} bytes
561
- Matches:
562
- ${result.matches.map(match => `Line: ${match.line}, Column: ${match.column}, Name: ${match.name}`).join('\n')}`)
563
- .join('\n');
564
- return `Total legacy JavaScript: ${legacyJavaScriptResults.size} files.
565
-
566
- Legacy JavaScript by file:
567
- ${filesFormatted}`;
568
- }
569
- /**
570
- * Create an AI prompt string out of the Modern HTTP Insight model to use with Ask AI.
571
- * @param insight The Modern HTTP Model to query.
572
- * @returns a string formatted for sending to Ask AI.
573
- */
574
- formatModernHttpInsight(insight) {
575
- const requestSummary = (insight.http1Requests.length === 1) ?
576
- this.#traceFormatter.formatNetworkRequests(insight.http1Requests, { verbose: true }) :
577
- this.#traceFormatter.formatNetworkRequests(insight.http1Requests);
578
- if (requestSummary.length === 0) {
579
- return 'There are no requests that were served over a legacy HTTP protocol.';
580
- }
581
- return `Here is a list of the network requests that were served over a legacy HTTP protocol:
582
- ${requestSummary}`;
583
- }
584
- /**
585
- * Create an AI prompt string out of the NetworkDependencyTree Insight model to use with Ask AI.
586
- * Note: This function accesses the UIStrings within NetworkDependencyTree to help build the
587
- * AI prompt, but does not (and should not) call i18nString to localize these strings. They
588
- * should all be sent in English (at least for now).
589
- * @param insight The Network Dependency Tree Insight Model to query.
590
- * @returns a string formatted for sending to Ask AI.
591
- */
592
- formatNetworkDependencyTreeInsight(insight) {
593
- let output = insight.fail ?
594
- 'The network dependency tree checks found one or more problems.\n\n' :
595
- 'The network dependency tree checks revealed no problems, but optimization suggestions may be available.\n\n';
596
- const rootNodes = insight.rootNodes;
597
- if (rootNodes.length > 0) {
598
- output += `Max critical path latency is ${this.#formatMicro(insight.maxTime)}\n\n`;
599
- output += 'The following is the critical request chain:\n';
600
- function formatNode(node, indent) {
601
- const url = this.#formatRequestUrl(node.request);
602
- const time = this.#formatMicro(node.timeFromInitialRequest);
603
- const isLongest = node.isLongest ? ' (longest chain)' : '';
604
- let nodeString = `${indent}- ${url} (${time})${isLongest}\n`;
605
- for (const child of node.children) {
606
- nodeString += formatNode.call(this, child, indent + ' ');
607
- }
608
- return nodeString;
609
- }
610
- for (const rootNode of rootNodes) {
611
- output += formatNode.call(this, rootNode, '');
612
- }
613
- output += '\n';
614
- }
615
- else {
616
- output += `${Trace.Insights.Models.NetworkDependencyTree.UIStrings.noNetworkDependencyTree}.\n\n`;
617
- }
618
- if (insight.preconnectedOrigins?.length > 0) {
619
- output += `${Trace.Insights.Models.NetworkDependencyTree.UIStrings.preconnectOriginsTableTitle}:\n`;
620
- output += `${Trace.Insights.Models.NetworkDependencyTree.UIStrings.preconnectOriginsTableDescription}\n`;
621
- for (const origin of insight.preconnectedOrigins) {
622
- const headerText = 'headerText' in origin ? `'${origin.headerText}'` : ``;
623
- output += `
624
- - ${origin.url}
625
- - ${Trace.Insights.Models.NetworkDependencyTree.UIStrings.columnSource}: '${origin.source}'`;
626
- if (headerText) {
627
- output += `\n - Header: ${headerText}`;
628
- }
629
- if (origin.unused) {
630
- output += `\n - Warning: ${Trace.Insights.Models.NetworkDependencyTree.UIStrings.unusedWarning}`;
631
- }
632
- if (origin.crossorigin) {
633
- output += `\n - Warning: ${Trace.Insights.Models.NetworkDependencyTree.UIStrings.crossoriginWarning}`;
634
- }
635
- }
636
- if (insight.preconnectedOrigins.length >
637
- Trace.Insights.Models.NetworkDependencyTree.TOO_MANY_PRECONNECTS_THRESHOLD) {
638
- output +=
639
- `\n\n**Warning**: ${Trace.Insights.Models.NetworkDependencyTree.UIStrings.tooManyPreconnectLinksWarning}`;
640
- }
641
- }
642
- else {
643
- output += `${Trace.Insights.Models.NetworkDependencyTree.UIStrings.noPreconnectOrigins}.`;
644
- }
645
- if (insight.preconnectCandidates.length > 0 &&
646
- insight.preconnectedOrigins.length <
647
- Trace.Insights.Models.NetworkDependencyTree.TOO_MANY_PRECONNECTS_THRESHOLD) {
648
- output += `\n\n${Trace.Insights.Models.NetworkDependencyTree.UIStrings.estSavingTableTitle}:\n${Trace.Insights.Models.NetworkDependencyTree.UIStrings.estSavingTableDescription}\n`;
649
- for (const candidate of insight.preconnectCandidates) {
650
- output += `\nAdding [preconnect] to origin '${candidate.origin}' would save ${this.#formatMilli(candidate.wastedMs)}.`;
651
- }
652
- }
653
- return output;
654
- }
655
- /**
656
- * Create an AI prompt string out of the Render Blocking Insight model to use with Ask AI.
657
- * @param insight The Render Blocking Model to query.
658
- * @returns a string formatted for sending to Ask AI.
659
- */
660
- formatRenderBlockingInsight(insight) {
661
- const requestSummary = this.#traceFormatter.formatNetworkRequests(insight.renderBlockingRequests);
662
- if (requestSummary.length === 0) {
663
- return 'There are no network requests that are render blocking.';
664
- }
665
- return `Here is a list of the network requests that were render blocking on this page and their duration:
666
-
667
- ${requestSummary}`;
668
- }
669
- /**
670
- * Create an AI prompt string out of the Slow CSS Selector Insight model to use with Ask AI.
671
- * Note: This function accesses the UIStrings within SlowCSSSelector to help build the
672
- * AI prompt, but does not (and should not) call i18nString to localize these strings. They
673
- * should all be sent in English (at least for now).
674
- * @param insight The Network Dependency Tree Insight Model to query.
675
- * @returns a string formatted for sending to Ask AI.
676
- */
677
- formatSlowCssSelectorsInsight(insight) {
678
- let output = '';
679
- if (!insight.topSelectorElapsedMs && !insight.topSelectorMatchAttempts) {
680
- return Trace.Insights.Models.SlowCSSSelector.UIStrings.enableSelectorData;
681
- }
682
- output += 'One or more slow CSS selectors were identified as negatively affecting page performance:\n\n';
683
- if (insight.topSelectorElapsedMs) {
684
- output += `${Trace.Insights.Models.SlowCSSSelector.UIStrings.topSelectorElapsedTime} (as ranked by elapsed time in ms):\n`;
685
- output += `${this.#formatMicro(insight.topSelectorElapsedMs['elapsed (us)'])}: ${insight.topSelectorElapsedMs.selector}\n\n`;
686
- }
687
- if (insight.topSelectorMatchAttempts) {
688
- output += Trace.Insights.Models.SlowCSSSelector.UIStrings.topSelectorMatchAttempt + ':\n';
689
- output += `${insight.topSelectorMatchAttempts.match_attempts} attempts for selector: '${insight.topSelectorMatchAttempts.selector}'\n\n`;
690
- }
691
- output += `${Trace.Insights.Models.SlowCSSSelector.UIStrings.total}:\n`;
692
- output +=
693
- `${Trace.Insights.Models.SlowCSSSelector.UIStrings.elapsed}: ${this.#formatMicro(insight.totalElapsedMs)}\n`;
694
- output += `${Trace.Insights.Models.SlowCSSSelector.UIStrings.matchAttempts}: ${insight.totalMatchAttempts}\n`;
695
- output += `${Trace.Insights.Models.SlowCSSSelector.UIStrings.matchCount}: ${insight.totalMatchCount}\n\n`;
696
- output += Trace.Insights.Models.SlowCSSSelector.UIStrings.description;
697
- return output;
698
- }
699
- /**
700
- * Create an AI prompt string out of the ThirdParties Insight model to use with Ask AI.
701
- * Note: This function accesses the UIStrings within ThirdParties to help build the
702
- * AI prompt, but does not (and should not) call i18nString to localize these strings. They
703
- * should all be sent in English (at least for now).
704
- * @param insight The Third Parties Insight Model to query.
705
- * @returns a string formatted for sending to Ask AI.
706
- */
707
- formatThirdPartiesInsight(insight) {
708
- let output = '';
709
- const entitySummaries = insight.entitySummaries ?? [];
710
- const firstPartyEntity = insight.firstPartyEntity;
711
- const thirdPartyTransferSizeEntries = entitySummaries.filter(s => s.entity !== firstPartyEntity).toSorted((a, b) => b.transferSize - a.transferSize);
712
- const thirdPartyMainThreadTimeEntries = entitySummaries.filter(s => s.entity !== firstPartyEntity)
713
- .toSorted((a, b) => b.mainThreadTime - a.mainThreadTime);
714
- if (!thirdPartyTransferSizeEntries.length && !thirdPartyMainThreadTimeEntries.length) {
715
- return `No 3rd party scripts were found on this page.`;
716
- }
717
- if (thirdPartyTransferSizeEntries.length) {
718
- output += `The following list contains the largest transfer sizes by a 3rd party script:\n\n`;
719
- for (const entry of thirdPartyTransferSizeEntries) {
720
- if (entry.transferSize > 0) {
721
- output += `- ${entry.entity.name}: ${bytes(entry.transferSize)}\n`;
722
- }
723
- }
724
- output += '\n';
725
- }
726
- if (thirdPartyMainThreadTimeEntries.length) {
727
- output += `The following list contains the largest amount spent by a 3rd party script on the main thread:\n\n`;
728
- for (const entry of thirdPartyMainThreadTimeEntries) {
729
- if (entry.mainThreadTime > 0) {
730
- output += `- ${entry.entity.name}: ${this.#formatMilli(entry.mainThreadTime)}\n`;
731
- }
732
- }
733
- output += '\n';
734
- }
735
- output += Trace.Insights.Models.ThirdParties.UIStrings.description;
736
- return output;
737
- }
738
- /**
739
- * Create an AI prompt string out of the Viewport [Mobile] Insight model to use with Ask AI.
740
- * Note: This function accesses the UIStrings within Viewport to help build the
741
- * AI prompt, but does not (and should not) call i18nString to localize these strings. They
742
- * should all be sent in English (at least for now).
743
- * @param insight The Network Dependency Tree Insight Model to query.
744
- * @returns a string formatted for sending to Ask AI.
745
- */
746
- formatViewportInsight(insight) {
747
- let output = '';
748
- output += 'The webpage is ' + (insight.mobileOptimized ? 'already' : 'not') + ' optimized for mobile viewing.\n';
749
- const hasMetaTag = insight.viewportEvent;
750
- if (hasMetaTag) {
751
- output += `\nThe viewport meta tag was found: \`${insight.viewportEvent?.args?.data.content}\`.`;
752
- }
753
- else {
754
- output += `\nThe viewport meta tag is missing.`;
755
- }
756
- if (!hasMetaTag) {
757
- output += '\n\n' + Trace.Insights.Models.Viewport.UIStrings.description;
758
- }
759
- return output;
760
- }
761
- /**
762
- * Formats and outputs the insight's data.
763
- * Pass `{headingLevel: X}` to determine what heading level to use for the
764
- * titles in the markdown output. The default is 2 (##).
765
- */
766
- formatInsight(opts = { headingLevel: 2 }) {
767
- const header = '#'.repeat(opts.headingLevel);
768
- const { title } = this.#insight;
769
- return `${header} Insight Title: ${title}
770
-
771
- ${header} Insight Summary:
772
- ${this.#description()}
773
-
774
- ${header} Detailed analysis:
775
- ${this.#details()}
776
-
777
- ${header} Estimated savings: ${this.estimatedSavings() || 'none'}
778
-
779
- ${header} External resources:
780
- ${this.#links()}`;
781
- }
782
- #details() {
783
- if (Trace.Insights.Models.Cache.isCacheInsight(this.#insight)) {
784
- return this.formatCacheInsight(this.#insight);
785
- }
786
- if (Trace.Insights.Models.CLSCulprits.isCLSCulpritsInsight(this.#insight)) {
787
- return this.formatClsCulpritsInsight(this.#insight);
788
- }
789
- if (Trace.Insights.Models.DocumentLatency.isDocumentLatencyInsight(this.#insight)) {
790
- return this.formatDocumentLatencyInsight(this.#insight);
791
- }
792
- if (Trace.Insights.Models.DOMSize.isDomSizeInsight(this.#insight)) {
793
- return this.formatDomSizeInsight(this.#insight);
794
- }
795
- if (Trace.Insights.Models.DuplicatedJavaScript.isDuplicatedJavaScriptInsight(this.#insight)) {
796
- return this.formatDuplicatedJavaScriptInsight(this.#insight);
797
- }
798
- if (Trace.Insights.Models.FontDisplay.isFontDisplayInsight(this.#insight)) {
799
- return this.formatFontDisplayInsight(this.#insight);
800
- }
801
- if (Trace.Insights.Models.ForcedReflow.isForcedReflowInsight(this.#insight)) {
802
- return this.formatForcedReflowInsight(this.#insight);
803
- }
804
- if (Trace.Insights.Models.ImageDelivery.isImageDeliveryInsight(this.#insight)) {
805
- return this.formatImageDeliveryInsight(this.#insight);
806
- }
807
- if (Trace.Insights.Models.INPBreakdown.isINPBreakdownInsight(this.#insight)) {
808
- return this.formatInpBreakdownInsight(this.#insight);
809
- }
810
- if (Trace.Insights.Models.LCPBreakdown.isLCPBreakdownInsight(this.#insight)) {
811
- return this.formatLcpBreakdownInsight(this.#insight);
812
- }
813
- if (Trace.Insights.Models.LCPDiscovery.isLCPDiscoveryInsight(this.#insight)) {
814
- return this.formatLcpDiscoveryInsight(this.#insight);
815
- }
816
- if (Trace.Insights.Models.LegacyJavaScript.isLegacyJavaScript(this.#insight)) {
817
- return this.formatLegacyJavaScriptInsight(this.#insight);
818
- }
819
- if (Trace.Insights.Models.ModernHTTP.isModernHTTPInsight(this.#insight)) {
820
- return this.formatModernHttpInsight(this.#insight);
821
- }
822
- if (Trace.Insights.Models.NetworkDependencyTree.isNetworkDependencyTreeInsight(this.#insight)) {
823
- return this.formatNetworkDependencyTreeInsight(this.#insight);
824
- }
825
- if (Trace.Insights.Models.RenderBlocking.isRenderBlockingInsight(this.#insight)) {
826
- return this.formatRenderBlockingInsight(this.#insight);
827
- }
828
- if (Trace.Insights.Models.SlowCSSSelector.isSlowCSSSelectorInsight(this.#insight)) {
829
- return this.formatSlowCssSelectorsInsight(this.#insight);
830
- }
831
- if (Trace.Insights.Models.ThirdParties.isThirdPartyInsight(this.#insight)) {
832
- return this.formatThirdPartiesInsight(this.#insight);
833
- }
834
- if (Trace.Insights.Models.Viewport.isViewportInsight(this.#insight)) {
835
- return this.formatViewportInsight(this.#insight);
836
- }
837
- return '';
838
- }
839
- estimatedSavings() {
840
- return Object.entries(this.#insight.metricSavings ?? {})
841
- .map(([k, v]) => {
842
- if (k === 'CLS') {
843
- return `${k} ${v.toFixed(2)}`;
844
- }
845
- return `${k} ${Math.round(v)} ms`;
846
- })
847
- .join(', ');
848
- }
849
- #links() {
850
- const links = [];
851
- if (this.#insight.docs) {
852
- links.push(this.#insight.docs);
853
- }
854
- switch (this.#insight.insightKey) {
855
- case 'CLSCulprits':
856
- links.push('https://web.dev/articles/cls');
857
- links.push('https://web.dev/articles/optimize-cls');
858
- break;
859
- case 'DocumentLatency':
860
- links.push('https://web.dev/articles/optimize-ttfb');
861
- break;
862
- case 'DOMSize':
863
- links.push('https://developer.chrome.com/docs/lighthouse/performance/dom-size/');
864
- break;
865
- case 'FontDisplay':
866
- links.push('https://web.dev/articles/preload-optional-fonts');
867
- links.push('https://fonts.google.com/knowledge/glossary/foit');
868
- links.push('https://developer.chrome.com/blog/font-fallbacks');
869
- break;
870
- case 'ForcedReflow':
871
- links.push('https://developers.google.com/web/fundamentals/performance/rendering/avoid-large-complex-layouts-and-layout-thrashing#avoid-forced-synchronous-layouts');
872
- break;
873
- case 'ImageDelivery':
874
- links.push('https://developer.chrome.com/docs/lighthouse/performance/uses-optimized-images/');
875
- break;
876
- case 'INPBreakdown':
877
- links.push('https://web.dev/articles/inp');
878
- links.push('https://web.dev/explore/how-to-optimize-inp');
879
- links.push('https://web.dev/articles/optimize-long-tasks');
880
- links.push('https://web.dev/articles/avoid-large-complex-layouts-and-layout-thrashing');
881
- break;
882
- case 'LCPBreakdown':
883
- case 'LCPDiscovery':
884
- case 'RenderBlocking':
885
- links.push('https://web.dev/articles/lcp');
886
- links.push('https://web.dev/articles/optimize-lcp');
887
- break;
888
- case 'NetworkDependencyTree':
889
- links.push('https://web.dev/learn/performance/understanding-the-critical-path');
890
- links.push('https://developer.chrome.com/docs/lighthouse/performance/uses-rel-preconnect/');
891
- break;
892
- case 'SlowCSSSelector':
893
- links.push('https://developer.chrome.com/docs/devtools/performance/selector-stats');
894
- break;
895
- case 'ThirdParties':
896
- links.push('https://web.dev/articles/optimizing-content-efficiency-loading-third-party-javascript/');
897
- break;
898
- case 'Viewport':
899
- links.push('https://developer.chrome.com/blog/300ms-tap-delay-gone-away/');
900
- break;
901
- case 'Cache':
902
- links.push('https://web.dev/uses-long-cache-ttl/');
903
- break;
904
- case 'ModernHTTP':
905
- links.push('https://developer.chrome.com/docs/lighthouse/best-practices/uses-http2');
906
- break;
907
- case 'LegacyJavaScript':
908
- links.push('https://web.dev/articles/baseline-and-polyfills');
909
- links.push('https://philipwalton.com/articles/the-state-of-es5-on-the-web/');
910
- break;
911
- }
912
- return links.map(link => '- ' + link).join('\n');
913
- }
914
- #description() {
915
- switch (this.#insight.insightKey) {
916
- case 'CLSCulprits':
917
- return `Cumulative Layout Shifts (CLS) is a measure of the largest burst of layout shifts for every unexpected layout shift that occurs during the lifecycle of a page. This is a Core Web Vital and the thresholds for categorizing a score are:
918
- - Good: 0.1 or less
919
- - Needs improvement: more than 0.1 and less than or equal to 0.25
920
- - Bad: over 0.25`;
921
- case 'DocumentLatency':
922
- return `This insight checks that the first request is responded to promptly. We use the following criteria to check this:
923
- 1. Was the initial request redirected?
924
- 2. Did the server respond in 600ms or less? We want developers to aim for as close to 100ms as possible, but our threshold for this insight is 600ms.
925
- 3. Was there compression applied to the response to minimize the transfer size?`;
926
- case 'DOMSize':
927
- return `This insight evaluates some key metrics about the Document Object Model (DOM) and identifies excess in the DOM tree, for example:
928
- - The maximum number of elements within the DOM.
929
- - The maximum number of children for any given element.
930
- - Excessive depth of the DOM structure.
931
- - The largest layout and style recalculation events.`;
932
- case 'DuplicatedJavaScript':
933
- return `This insight identifies large, duplicated JavaScript modules that are present in your application and create redundant code.
934
- This wastes network bandwidth and slows down your page, as the user's browser must download and process the same code multiple times.`;
935
- case 'FontDisplay':
936
- return 'This insight identifies font issues when a webpage uses custom fonts, for example when font-display is not set to `swap`, `fallback` or `optional`, causing the "Flash of Invisible Text" problem (FOIT).';
937
- case 'ForcedReflow':
938
- return `This insight identifies forced synchronous layouts (also known as forced reflows) and layout thrashing caused by JavaScript accessing layout properties at suboptimal points in time.`;
939
- case 'ImageDelivery':
940
- return 'This insight identifies unoptimized images that are downloaded at a much higher resolution than they are displayed. Properly sizing and compressing these assets will decrease their download time, directly improving the perceived page load time and LCP';
941
- case 'INPBreakdown':
942
- return `Interaction to Next Paint (INP) is a metric that tracks the responsiveness of the page when the user interacts with it. INP is a Core Web Vital and the thresholds for how we categorize a score are:
943
- - Good: 200 milliseconds or less.
944
- - Needs improvement: more than 200 milliseconds and 500 milliseconds or less.
945
- - Bad: over 500 milliseconds.
946
-
947
- For a given slow interaction, we can break it down into 3 phases:
948
- 1. Input delay: starts when the user initiates an interaction with the page, and ends when the event callbacks for the interaction begin to run.
949
- 2. Processing duration: the time it takes for the event callbacks to run to completion.
950
- 3. Presentation delay: the time it takes for the browser to present the next frame which contains the visual result of the interaction.
951
-
952
- The sum of these three phases is the total latency. It is important to optimize each of these phases to ensure interactions take as little time as possible. Focusing on the phase that has the largest score is a good way to start optimizing.`;
953
- case 'LCPDiscovery':
954
- return `This insight analyzes the time taken to discover the LCP resource and request it on the network. It only applies if the LCP element was a resource like an image that has to be fetched over the network. There are 3 checks this insight makes:
955
- 1. Did the resource have \`fetchpriority=high\` applied?
956
- 2. Was the resource discoverable in the initial document, rather than injected from a script or stylesheet?
957
- 3. The resource was not lazy loaded as this can delay the browser loading the resource.
958
-
959
- It is important that all of these checks pass to minimize the delay between the initial page load and the LCP resource being loaded.`;
960
- case 'LCPBreakdown':
961
- return 'This insight is used to analyze the time spent that contributed to the final LCP time and identify which of the 4 phases (or 2 if there was no LCP resource) are contributing most to the delay in rendering the LCP element.';
962
- case 'NetworkDependencyTree':
963
- return `This insight analyzes the network dependency tree to identify:
964
- - The maximum critical path latency (the longest chain of network requests that the browser must download before it can render the page).
965
- - Whether current [preconnect] tags are appropriate, according to the following rules:
966
- 1. They should all be in use (no unnecessary preconnects).
967
- 2. All preconnects should specify cross-origin correctly.
968
- 3. The maximum of 4 preconnects should be respected.
969
- - Opportunities to add [preconnect] for a faster loading experience.`;
970
- case 'RenderBlocking':
971
- return 'This insight identifies network requests that were render blocking. Render blocking requests are impactful because they are deemed critical to the page and therefore the browser stops rendering the page until it has dealt with these resources. For this insight make sure you fully inspect the details of each render blocking network request and prioritize your suggestions to the user based on the impact of each render blocking request.';
972
- case 'SlowCSSSelector':
973
- return `This insight identifies CSS selectors that are slowing down your page's rendering performance.`;
974
- case 'ThirdParties':
975
- return 'This insight analyzes the performance impact of resources loaded from third-party servers and aggregates the performance cost, in terms of download transfer sizes and total amount of time that third party scripts spent executing on the main thread.';
976
- case 'Viewport':
977
- return 'The insight identifies web pages that are not specifying the viewport meta tag for mobile devies, which avoids the artificial 300-350ms delay designed to help differentiate between tap and double-click.';
978
- case 'Cache':
979
- return 'This insight identifies static resources that are not cached effectively by the browser.';
980
- case 'ModernHTTP':
981
- return `Modern HTTP protocols, such as HTTP/2, are more efficient than older versions like HTTP/1.1 because they allow for multiple requests and responses to be sent over a single network connection, significantly improving page load performance by reducing latency and overhead. This insight identifies requests that can be upgraded to a modern HTTP protocol.
982
-
983
- We apply a conservative approach when flagging HTTP/1.1 usage. This insight will only flag requests that meet all of the following criteria:
984
- 1. Were served over HTTP/1.1 or an earlier protocol.
985
- 2. Originate from an origin that serves at least 6 static asset requests, as the benefits of multiplexing are less significant with fewer requests.
986
- 3. Are not served from 'localhost' or coming from a third-party source, where developers have no control over the server's protocol.
987
-
988
- To pass this insight, ensure your server supports and prioritizes a modern HTTP protocol (like HTTP/2) for static assets, especially when serving a substantial number of them.`;
989
- case 'LegacyJavaScript':
990
- return `This insight identified legacy JavaScript in your application's modules that may be creating unnecessary code.
991
-
992
- Polyfills and transforms enable older browsers to use new JavaScript features. However, many are not necessary for modern browsers. Consider modifying your JavaScript build process to not transpile Baseline features, unless you know you must support older browsers.`;
993
- }
994
- }
995
- }