lighthouse 10.1.1 → 10.2.0

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 (403) hide show
  1. package/cli/cli-flags.d.ts +1 -1
  2. package/cli/test/smokehouse/lighthouse-runners/cli.d.ts +1 -1
  3. package/cli/test/smokehouse/report-assert.d.ts +1 -1
  4. package/core/audits/accessibility/accesskeys.d.ts +1 -1
  5. package/core/audits/accessibility/accesskeys.js +1 -1
  6. package/core/audits/accessibility/aria-allowed-attr.d.ts +1 -1
  7. package/core/audits/accessibility/aria-allowed-attr.js +1 -1
  8. package/core/audits/accessibility/aria-command-name.d.ts +1 -1
  9. package/core/audits/accessibility/aria-command-name.js +1 -1
  10. package/core/audits/accessibility/aria-hidden-body.d.ts +1 -1
  11. package/core/audits/accessibility/aria-hidden-body.js +1 -1
  12. package/core/audits/accessibility/aria-hidden-focus.d.ts +1 -1
  13. package/core/audits/accessibility/aria-hidden-focus.js +1 -1
  14. package/core/audits/accessibility/aria-input-field-name.d.ts +1 -1
  15. package/core/audits/accessibility/aria-input-field-name.js +1 -1
  16. package/core/audits/accessibility/aria-meter-name.d.ts +1 -1
  17. package/core/audits/accessibility/aria-meter-name.js +1 -1
  18. package/core/audits/accessibility/aria-progressbar-name.d.ts +1 -1
  19. package/core/audits/accessibility/aria-progressbar-name.js +1 -1
  20. package/core/audits/accessibility/aria-required-attr.d.ts +1 -1
  21. package/core/audits/accessibility/aria-required-attr.js +1 -1
  22. package/core/audits/accessibility/aria-required-children.d.ts +1 -1
  23. package/core/audits/accessibility/aria-required-children.js +1 -1
  24. package/core/audits/accessibility/aria-required-parent.d.ts +1 -1
  25. package/core/audits/accessibility/aria-required-parent.js +1 -1
  26. package/core/audits/accessibility/aria-roles.d.ts +1 -1
  27. package/core/audits/accessibility/aria-roles.js +1 -1
  28. package/core/audits/accessibility/aria-toggle-field-name.d.ts +1 -1
  29. package/core/audits/accessibility/aria-toggle-field-name.js +1 -1
  30. package/core/audits/accessibility/aria-tooltip-name.d.ts +1 -1
  31. package/core/audits/accessibility/aria-tooltip-name.js +1 -1
  32. package/core/audits/accessibility/aria-treeitem-name.d.ts +1 -1
  33. package/core/audits/accessibility/aria-treeitem-name.js +1 -1
  34. package/core/audits/accessibility/aria-valid-attr-value.d.ts +1 -1
  35. package/core/audits/accessibility/aria-valid-attr-value.js +1 -1
  36. package/core/audits/accessibility/aria-valid-attr.d.ts +1 -1
  37. package/core/audits/accessibility/aria-valid-attr.js +1 -1
  38. package/core/audits/accessibility/axe-audit.d.ts +1 -1
  39. package/core/audits/accessibility/button-name.d.ts +1 -1
  40. package/core/audits/accessibility/button-name.js +1 -1
  41. package/core/audits/accessibility/bypass.d.ts +1 -1
  42. package/core/audits/accessibility/bypass.js +1 -1
  43. package/core/audits/accessibility/color-contrast.d.ts +1 -1
  44. package/core/audits/accessibility/color-contrast.js +1 -1
  45. package/core/audits/accessibility/definition-list.d.ts +1 -1
  46. package/core/audits/accessibility/definition-list.js +1 -1
  47. package/core/audits/accessibility/dlitem.d.ts +1 -1
  48. package/core/audits/accessibility/dlitem.js +1 -1
  49. package/core/audits/accessibility/document-title.d.ts +1 -1
  50. package/core/audits/accessibility/document-title.js +1 -1
  51. package/core/audits/accessibility/duplicate-id-active.d.ts +1 -1
  52. package/core/audits/accessibility/duplicate-id-active.js +1 -1
  53. package/core/audits/accessibility/duplicate-id-aria.d.ts +1 -1
  54. package/core/audits/accessibility/duplicate-id-aria.js +1 -1
  55. package/core/audits/accessibility/form-field-multiple-labels.d.ts +1 -1
  56. package/core/audits/accessibility/form-field-multiple-labels.js +1 -1
  57. package/core/audits/accessibility/frame-title.d.ts +1 -1
  58. package/core/audits/accessibility/frame-title.js +1 -1
  59. package/core/audits/accessibility/heading-order.d.ts +1 -1
  60. package/core/audits/accessibility/heading-order.js +1 -1
  61. package/core/audits/accessibility/html-has-lang.d.ts +1 -1
  62. package/core/audits/accessibility/html-has-lang.js +1 -1
  63. package/core/audits/accessibility/html-lang-valid.d.ts +1 -1
  64. package/core/audits/accessibility/html-lang-valid.js +1 -1
  65. package/core/audits/accessibility/image-alt.d.ts +1 -1
  66. package/core/audits/accessibility/image-alt.js +1 -1
  67. package/core/audits/accessibility/input-image-alt.d.ts +1 -1
  68. package/core/audits/accessibility/input-image-alt.js +1 -1
  69. package/core/audits/accessibility/label.d.ts +1 -1
  70. package/core/audits/accessibility/label.js +1 -1
  71. package/core/audits/accessibility/link-name.d.ts +1 -1
  72. package/core/audits/accessibility/link-name.js +1 -1
  73. package/core/audits/accessibility/list.d.ts +1 -1
  74. package/core/audits/accessibility/list.js +1 -1
  75. package/core/audits/accessibility/listitem.d.ts +1 -1
  76. package/core/audits/accessibility/listitem.js +1 -1
  77. package/core/audits/accessibility/manual/custom-controls-labels.d.ts +1 -1
  78. package/core/audits/accessibility/manual/custom-controls-roles.d.ts +1 -1
  79. package/core/audits/accessibility/manual/focus-traps.d.ts +1 -1
  80. package/core/audits/accessibility/manual/focusable-controls.d.ts +1 -1
  81. package/core/audits/accessibility/manual/interactive-element-affordance.d.ts +1 -1
  82. package/core/audits/accessibility/manual/logical-tab-order.d.ts +1 -1
  83. package/core/audits/accessibility/manual/managed-focus.d.ts +1 -1
  84. package/core/audits/accessibility/manual/offscreen-content-hidden.d.ts +1 -1
  85. package/core/audits/accessibility/manual/use-landmarks.d.ts +1 -1
  86. package/core/audits/accessibility/manual/visual-order-follows-dom.d.ts +1 -1
  87. package/core/audits/accessibility/meta-refresh.d.ts +1 -1
  88. package/core/audits/accessibility/meta-refresh.js +1 -1
  89. package/core/audits/accessibility/meta-viewport.d.ts +1 -1
  90. package/core/audits/accessibility/meta-viewport.js +1 -1
  91. package/core/audits/accessibility/object-alt.d.ts +1 -1
  92. package/core/audits/accessibility/object-alt.js +1 -1
  93. package/core/audits/accessibility/tabindex.d.ts +1 -1
  94. package/core/audits/accessibility/tabindex.js +1 -1
  95. package/core/audits/accessibility/td-headers-attr.d.ts +1 -1
  96. package/core/audits/accessibility/td-headers-attr.js +1 -1
  97. package/core/audits/accessibility/th-has-data-cells.d.ts +1 -1
  98. package/core/audits/accessibility/th-has-data-cells.js +1 -1
  99. package/core/audits/accessibility/valid-lang.d.ts +1 -1
  100. package/core/audits/accessibility/valid-lang.js +1 -1
  101. package/core/audits/accessibility/video-caption.d.ts +1 -1
  102. package/core/audits/accessibility/video-caption.js +1 -1
  103. package/core/audits/audit.d.ts +1 -1
  104. package/core/audits/autocomplete.d.ts +1 -1
  105. package/core/audits/bf-cache.d.ts +1 -1
  106. package/core/audits/bootup-time.d.ts +1 -1
  107. package/core/audits/byte-efficiency/byte-efficiency-audit.d.ts +1 -1
  108. package/core/audits/byte-efficiency/duplicated-javascript.d.ts +1 -1
  109. package/core/audits/byte-efficiency/efficient-animated-content.d.ts +2 -2
  110. package/core/audits/byte-efficiency/legacy-javascript.d.ts +2 -2
  111. package/core/audits/byte-efficiency/modern-image-formats.d.ts +1 -1
  112. package/core/audits/byte-efficiency/offscreen-images.d.ts +2 -2
  113. package/core/audits/byte-efficiency/render-blocking-resources.d.ts +1 -1
  114. package/core/audits/byte-efficiency/total-byte-weight.d.ts +1 -1
  115. package/core/audits/byte-efficiency/unminified-css.d.ts +1 -1
  116. package/core/audits/byte-efficiency/unminified-javascript.d.ts +1 -1
  117. package/core/audits/byte-efficiency/unused-css-rules.d.ts +1 -1
  118. package/core/audits/byte-efficiency/unused-javascript.d.ts +1 -1
  119. package/core/audits/byte-efficiency/uses-long-cache-ttl.d.ts +3 -3
  120. package/core/audits/byte-efficiency/uses-optimized-images.d.ts +1 -1
  121. package/core/audits/byte-efficiency/uses-responsive-images-snapshot.d.ts +1 -1
  122. package/core/audits/byte-efficiency/uses-responsive-images.d.ts +2 -2
  123. package/core/audits/byte-efficiency/uses-text-compression.d.ts +1 -1
  124. package/core/audits/content-width.d.ts +1 -1
  125. package/core/audits/critical-request-chains.d.ts +1 -1
  126. package/core/audits/csp-xss.d.ts +1 -1
  127. package/core/audits/deprecations.d.ts +1 -1
  128. package/core/audits/diagnostics.d.ts +1 -1
  129. package/core/audits/dobetterweb/charset.d.ts +1 -1
  130. package/core/audits/dobetterweb/doctype.d.ts +1 -1
  131. package/core/audits/dobetterweb/dom-size.d.ts +1 -1
  132. package/core/audits/dobetterweb/geolocation-on-start.d.ts +1 -1
  133. package/core/audits/dobetterweb/inspector-issues.d.ts +1 -1
  134. package/core/audits/dobetterweb/js-libraries.d.ts +1 -1
  135. package/core/audits/dobetterweb/no-document-write.d.ts +1 -1
  136. package/core/audits/dobetterweb/notification-on-start.d.ts +1 -1
  137. package/core/audits/dobetterweb/paste-preventing-inputs.d.ts +1 -1
  138. package/core/audits/dobetterweb/uses-http2.d.ts +3 -3
  139. package/core/audits/dobetterweb/uses-passive-event-listeners.d.ts +1 -1
  140. package/core/audits/errors-in-console.d.ts +1 -1
  141. package/core/audits/final-screenshot.d.ts +1 -1
  142. package/core/audits/font-display.d.ts +1 -1
  143. package/core/audits/image-aspect-ratio.d.ts +1 -1
  144. package/core/audits/image-size-responsive.d.ts +1 -1
  145. package/core/audits/installable-manifest.d.ts +1 -1
  146. package/core/audits/is-on-https.d.ts +1 -1
  147. package/core/audits/largest-contentful-paint-element.d.ts +17 -3
  148. package/core/audits/largest-contentful-paint-element.js +77 -4
  149. package/core/audits/layout-shift-elements.d.ts +1 -1
  150. package/core/audits/lcp-lazy-loaded.d.ts +1 -1
  151. package/core/audits/long-tasks.d.ts +1 -1
  152. package/core/audits/main-thread-tasks.d.ts +1 -1
  153. package/core/audits/mainthread-work-breakdown.d.ts +1 -1
  154. package/core/audits/manual/manual-audit.d.ts +1 -1
  155. package/core/audits/manual/pwa-cross-browser.d.ts +1 -1
  156. package/core/audits/manual/pwa-each-page-has-url.d.ts +1 -1
  157. package/core/audits/manual/pwa-page-transitions.d.ts +1 -1
  158. package/core/audits/maskable-icon.d.ts +1 -1
  159. package/core/audits/metrics/cumulative-layout-shift.d.ts +1 -1
  160. package/core/audits/metrics/experimental-interaction-to-next-paint.d.ts +1 -1
  161. package/core/audits/metrics/first-contentful-paint-3g.d.ts +1 -1
  162. package/core/audits/metrics/first-contentful-paint.d.ts +1 -1
  163. package/core/audits/metrics/first-meaningful-paint.d.ts +1 -1
  164. package/core/audits/metrics/interactive.d.ts +1 -1
  165. package/core/audits/metrics/largest-contentful-paint.d.ts +1 -1
  166. package/core/audits/metrics/max-potential-fid.d.ts +1 -1
  167. package/core/audits/metrics/speed-index.d.ts +1 -1
  168. package/core/audits/metrics/total-blocking-time.d.ts +1 -1
  169. package/core/audits/metrics.d.ts +1 -1
  170. package/core/audits/multi-check-audit.d.ts +1 -1
  171. package/core/audits/network-requests.d.ts +1 -1
  172. package/core/audits/network-requests.js +1 -0
  173. package/core/audits/network-rtt.d.ts +1 -1
  174. package/core/audits/network-server-latency.d.ts +1 -1
  175. package/core/audits/no-unload-listeners.d.ts +1 -1
  176. package/core/audits/non-composited-animations.d.ts +1 -1
  177. package/core/audits/performance-budget.d.ts +2 -2
  178. package/core/audits/predictive-perf.d.ts +1 -1
  179. package/core/audits/predictive-perf.js +10 -3
  180. package/core/audits/preload-fonts.d.ts +1 -1
  181. package/core/audits/prioritize-lcp-image.d.ts +2 -13
  182. package/core/audits/prioritize-lcp-image.js +3 -55
  183. package/core/audits/redirects.d.ts +2 -2
  184. package/core/audits/resource-summary.d.ts +1 -1
  185. package/core/audits/screenshot-thumbnails.d.ts +2 -2
  186. package/core/audits/script-treemap-data.d.ts +1 -1
  187. package/core/audits/seo/canonical.d.ts +1 -1
  188. package/core/audits/seo/crawlable-anchors.d.ts +1 -1
  189. package/core/audits/seo/font-size.d.ts +1 -1
  190. package/core/audits/seo/hreflang.d.ts +1 -1
  191. package/core/audits/seo/http-status-code.d.ts +1 -1
  192. package/core/audits/seo/is-crawlable.d.ts +1 -1
  193. package/core/audits/seo/link-text.d.ts +1 -1
  194. package/core/audits/seo/manual/structured-data.d.ts +1 -1
  195. package/core/audits/seo/meta-description.d.ts +1 -1
  196. package/core/audits/seo/plugins.d.ts +1 -1
  197. package/core/audits/seo/robots-txt.d.ts +1 -1
  198. package/core/audits/seo/tap-targets.d.ts +1 -1
  199. package/core/audits/server-response-time.d.ts +1 -1
  200. package/core/audits/service-worker.d.ts +1 -1
  201. package/core/audits/splash-screen.d.ts +2 -2
  202. package/core/audits/themed-omnibox.d.ts +2 -2
  203. package/core/audits/third-party-facades.d.ts +2 -2
  204. package/core/audits/third-party-summary.d.ts +2 -2
  205. package/core/audits/timing-budget.d.ts +3 -3
  206. package/core/audits/unsized-images.d.ts +1 -1
  207. package/core/audits/user-timings.d.ts +1 -1
  208. package/core/audits/uses-rel-preconnect.d.ts +1 -1
  209. package/core/audits/uses-rel-preload.d.ts +2 -2
  210. package/core/audits/valid-source-maps.d.ts +2 -2
  211. package/core/audits/viewport.d.ts +1 -1
  212. package/core/audits/violation-audit.d.ts +1 -1
  213. package/core/audits/work-during-interaction.d.ts +2 -2
  214. package/core/computed/critical-request-chains.d.ts +1 -1
  215. package/core/computed/document-urls.d.ts +32 -0
  216. package/core/computed/document-urls.js +53 -0
  217. package/core/computed/entity-classification.js +0 -1
  218. package/core/computed/lcp-image-record.d.ts +26 -0
  219. package/core/computed/lcp-image-record.js +74 -0
  220. package/core/computed/load-simulator.d.ts +2 -2
  221. package/core/computed/metrics/cumulative-layout-shift.d.ts +1 -1
  222. package/core/computed/metrics/first-contentful-paint-all-frames.d.ts +1 -1
  223. package/core/computed/metrics/first-contentful-paint.d.ts +7 -1
  224. package/core/computed/metrics/first-meaningful-paint.d.ts +7 -1
  225. package/core/computed/metrics/interactive.d.ts +7 -1
  226. package/core/computed/metrics/lantern-first-contentful-paint.d.ts +1 -1
  227. package/core/computed/metrics/lantern-first-meaningful-paint.d.ts +1 -1
  228. package/core/computed/metrics/lantern-interactive.d.ts +1 -1
  229. package/core/computed/metrics/lantern-largest-contentful-paint.d.ts +1 -1
  230. package/core/computed/metrics/lantern-max-potential-fid.d.ts +1 -1
  231. package/core/computed/metrics/lantern-metric.d.ts +1 -1
  232. package/core/computed/metrics/lantern-speed-index.d.ts +1 -1
  233. package/core/computed/metrics/lantern-total-blocking-time.d.ts +1 -1
  234. package/core/computed/metrics/largest-contentful-paint-all-frames.d.ts +1 -1
  235. package/core/computed/metrics/largest-contentful-paint.d.ts +7 -1
  236. package/core/computed/metrics/lcp-breakdown.d.ts +23 -0
  237. package/core/computed/metrics/lcp-breakdown.js +58 -0
  238. package/core/computed/metrics/max-potential-fid.d.ts +7 -1
  239. package/core/computed/metrics/metric.d.ts +2 -2
  240. package/core/computed/metrics/metric.js +1 -1
  241. package/core/computed/metrics/navigation-metric.d.ts +3 -3
  242. package/core/computed/metrics/navigation-metric.js +1 -1
  243. package/core/computed/metrics/responsiveness.d.ts +1 -1
  244. package/core/computed/metrics/speed-index.d.ts +7 -1
  245. package/core/computed/metrics/time-to-first-byte.d.ts +16 -0
  246. package/core/computed/metrics/time-to-first-byte.js +60 -0
  247. package/core/computed/metrics/timing-summary.js +10 -0
  248. package/core/computed/metrics/total-blocking-time.d.ts +7 -1
  249. package/core/computed/network-records.d.ts +1 -1
  250. package/core/computed/page-dependency-graph.d.ts +4 -13
  251. package/core/computed/page-dependency-graph.js +2 -33
  252. package/core/computed/processed-navigation.d.ts +1 -1
  253. package/core/computed/resource-summary.d.ts +4 -4
  254. package/core/config/default-config.d.ts +1 -1
  255. package/core/config/desktop-config.d.ts +1 -1
  256. package/core/gather/base-gatherer.d.ts +1 -1
  257. package/core/gather/driver/execution-context.d.ts +1 -1
  258. package/core/gather/driver/network-monitor.d.ts +2 -2
  259. package/core/gather/driver/target-manager.d.ts +2 -1
  260. package/core/gather/driver/target-manager.js +5 -3
  261. package/core/gather/driver/wait-for-condition.js +12 -0
  262. package/core/gather/driver.d.ts +3 -3
  263. package/core/gather/fetcher.d.ts +1 -1
  264. package/core/gather/gatherers/accessibility.d.ts +1 -1
  265. package/core/gather/gatherers/anchor-elements.d.ts +1 -1
  266. package/core/gather/gatherers/bf-cache-failures.d.ts +1 -1
  267. package/core/gather/gatherers/cache-contents.d.ts +1 -1
  268. package/core/gather/gatherers/console-messages.d.ts +1 -1
  269. package/core/gather/gatherers/css-usage.d.ts +1 -1
  270. package/core/gather/gatherers/devtools-log-compat.d.ts +1 -1
  271. package/core/gather/gatherers/devtools-log.d.ts +1 -1
  272. package/core/gather/gatherers/dobetterweb/doctype.d.ts +1 -1
  273. package/core/gather/gatherers/dobetterweb/domstats.d.ts +1 -1
  274. package/core/gather/gatherers/dobetterweb/optimized-images.d.ts +2 -2
  275. package/core/gather/gatherers/dobetterweb/optimized-images.js +2 -2
  276. package/core/gather/gatherers/dobetterweb/response-compression.d.ts +2 -2
  277. package/core/gather/gatherers/dobetterweb/response-compression.js +1 -2
  278. package/core/gather/gatherers/dobetterweb/tags-blocking-first-paint.d.ts +1 -1
  279. package/core/gather/gatherers/full-page-screenshot.d.ts +1 -1
  280. package/core/gather/gatherers/global-listeners.d.ts +1 -1
  281. package/core/gather/gatherers/iframe-elements.d.ts +1 -1
  282. package/core/gather/gatherers/image-elements.d.ts +1 -1
  283. package/core/gather/gatherers/inputs.d.ts +1 -1
  284. package/core/gather/gatherers/inspector-issues.d.ts +1 -1
  285. package/core/gather/gatherers/installability-errors.d.ts +1 -1
  286. package/core/gather/gatherers/js-usage.d.ts +1 -1
  287. package/core/gather/gatherers/link-elements.d.ts +1 -1
  288. package/core/gather/gatherers/main-document-content.d.ts +1 -1
  289. package/core/gather/gatherers/meta-elements.d.ts +1 -1
  290. package/core/gather/gatherers/network-user-agent.d.ts +1 -1
  291. package/core/gather/gatherers/script-elements.d.ts +2 -2
  292. package/core/gather/gatherers/script-elements.js +1 -2
  293. package/core/gather/gatherers/scripts.d.ts +1 -3
  294. package/core/gather/gatherers/scripts.js +0 -3
  295. package/core/gather/gatherers/seo/embedded-content.d.ts +1 -1
  296. package/core/gather/gatherers/seo/font-size.d.ts +1 -1
  297. package/core/gather/gatherers/seo/robots-txt.d.ts +1 -1
  298. package/core/gather/gatherers/seo/tap-targets.d.ts +1 -1
  299. package/core/gather/gatherers/service-worker.d.ts +1 -1
  300. package/core/gather/gatherers/source-maps.d.ts +1 -1
  301. package/core/gather/gatherers/stacks.d.ts +1 -1
  302. package/core/gather/gatherers/trace-compat.d.ts +1 -1
  303. package/core/gather/gatherers/trace-elements.d.ts +2 -2
  304. package/core/gather/gatherers/trace.d.ts +1 -1
  305. package/core/gather/gatherers/viewport-dimensions.d.ts +1 -1
  306. package/core/gather/gatherers/web-app-manifest.d.ts +1 -1
  307. package/core/gather/navigation-runner.d.ts +3 -3
  308. package/core/gather/navigation-runner.js +1 -1
  309. package/core/gather/runner-helpers.js +18 -4
  310. package/core/index.cjs +28 -0
  311. package/core/index.d.ts +2 -2
  312. package/core/legacy/gather/connections/connection.d.ts +3 -1
  313. package/core/legacy/gather/connections/connection.js +15 -0
  314. package/core/legacy/gather/connections/cri.d.ts +2 -2
  315. package/core/legacy/gather/connections/raw.d.ts +1 -1
  316. package/core/legacy/gather/driver.d.ts +3 -3
  317. package/core/legacy/gather/gather-runner.js +1 -1
  318. package/core/lib/dependency-graph/cpu-node.d.ts +2 -2
  319. package/core/lib/dependency-graph/network-node.d.ts +3 -3
  320. package/core/lib/dependency-graph/simulator/connection-pool.d.ts +2 -2
  321. package/core/lib/dependency-graph/simulator/dns-cache.d.ts +1 -1
  322. package/core/lib/dependency-graph/simulator/simulator.d.ts +5 -5
  323. package/core/lib/lh-trace-processor.d.ts +1 -1
  324. package/core/lib/navigation-error.d.ts +2 -2
  325. package/core/lib/network-recorder.d.ts +17 -11
  326. package/core/lib/network-recorder.js +24 -31
  327. package/core/lib/network-request.d.ts +7 -8
  328. package/core/lib/network-request.js +8 -6
  329. package/core/lib/stack-packs.js +9 -1
  330. package/core/lib/tracehouse/main-thread-tasks.d.ts +1 -1
  331. package/core/lib/tracehouse/task-summary.d.ts +1 -1
  332. package/core/lib/url-utils.js +1 -0
  333. package/core/runner.d.ts +2 -2
  334. package/core/runner.js +8 -2
  335. package/core/scoring.d.ts +1 -1
  336. package/core/user-flow.d.ts +1 -1
  337. package/dist/report/bundle.esm.js +3 -1
  338. package/dist/report/flow.js +3 -3
  339. package/dist/report/standalone.js +5 -5
  340. package/package.json +9 -8
  341. package/report/README.md +1 -1
  342. package/report/assets/styles.css +0 -4
  343. package/report/renderer/components.js +1 -1
  344. package/report/renderer/performance-category-renderer.d.ts +1 -1
  345. package/report/renderer/pwa-category-renderer.d.ts +1 -1
  346. package/report/renderer/report-globals.d.ts +1 -1
  347. package/report/renderer/report-renderer.d.ts +1 -1
  348. package/report/renderer/report-ui-features.d.ts +1 -1
  349. package/report/renderer/topbar-features.d.ts +1 -1
  350. package/shared/localization/i18n-module.d.ts +2 -2
  351. package/shared/localization/locales/ar-XB.json +113 -53
  352. package/shared/localization/locales/ar.json +113 -53
  353. package/shared/localization/locales/bg.json +113 -53
  354. package/shared/localization/locales/ca.json +115 -55
  355. package/shared/localization/locales/cs.json +113 -53
  356. package/shared/localization/locales/da.json +114 -54
  357. package/shared/localization/locales/de.json +113 -53
  358. package/shared/localization/locales/el.json +113 -53
  359. package/shared/localization/locales/en-GB.json +107 -47
  360. package/shared/localization/locales/en-US.json +92 -44
  361. package/shared/localization/locales/en-XA.json +113 -53
  362. package/shared/localization/locales/en-XL.json +92 -44
  363. package/shared/localization/locales/es-419.json +113 -53
  364. package/shared/localization/locales/es.json +114 -54
  365. package/shared/localization/locales/fi.json +113 -53
  366. package/shared/localization/locales/fil.json +113 -53
  367. package/shared/localization/locales/fr.json +113 -53
  368. package/shared/localization/locales/he.json +114 -54
  369. package/shared/localization/locales/hi.json +116 -56
  370. package/shared/localization/locales/hr.json +113 -53
  371. package/shared/localization/locales/hu.json +113 -53
  372. package/shared/localization/locales/id.json +113 -53
  373. package/shared/localization/locales/it.json +114 -54
  374. package/shared/localization/locales/ja.json +116 -56
  375. package/shared/localization/locales/ko.json +113 -53
  376. package/shared/localization/locales/lt.json +113 -53
  377. package/shared/localization/locales/lv.json +113 -53
  378. package/shared/localization/locales/nl.json +117 -57
  379. package/shared/localization/locales/no.json +114 -54
  380. package/shared/localization/locales/pl.json +125 -65
  381. package/shared/localization/locales/pt-PT.json +117 -57
  382. package/shared/localization/locales/pt.json +113 -53
  383. package/shared/localization/locales/ro.json +113 -53
  384. package/shared/localization/locales/ru.json +113 -53
  385. package/shared/localization/locales/sk.json +112 -52
  386. package/shared/localization/locales/sl.json +113 -53
  387. package/shared/localization/locales/sr-Latn.json +113 -53
  388. package/shared/localization/locales/sr.json +113 -53
  389. package/shared/localization/locales/sv.json +113 -53
  390. package/shared/localization/locales/ta.json +113 -53
  391. package/shared/localization/locales/te.json +113 -53
  392. package/shared/localization/locales/th.json +113 -53
  393. package/shared/localization/locales/tr.json +113 -53
  394. package/shared/localization/locales/uk.json +115 -55
  395. package/shared/localization/locales/vi.json +113 -53
  396. package/shared/localization/locales/zh-HK.json +113 -53
  397. package/shared/localization/locales/zh-TW.json +113 -53
  398. package/shared/localization/locales/zh.json +113 -53
  399. package/shared/util.js +2 -0
  400. package/types/artifacts.d.ts +4 -0
  401. package/types/externs.d.ts +1 -1
  402. package/types/internal/test.d.ts +1 -1
  403. package/types/protocol.d.ts +3 -0
@@ -18,5 +18,5 @@ export namespace UIStrings {
18
18
  const explanationSystemId: string;
19
19
  const explanationBadDoctype: string;
20
20
  }
21
- import { Audit } from "../audit.js";
21
+ import { Audit } from '../audit.js';
22
22
  //# sourceMappingURL=doctype.d.ts.map
@@ -22,5 +22,5 @@ export namespace UIStrings {
22
22
  const statisticDOMDepth: string;
23
23
  const statisticDOMWidth: string;
24
24
  }
25
- import { Audit } from "../audit.js";
25
+ import { Audit } from '../audit.js';
26
26
  //# sourceMappingURL=dom-size.d.ts.map
@@ -12,5 +12,5 @@ export namespace UIStrings {
12
12
  const failureTitle: string;
13
13
  const description: string;
14
14
  }
15
- import ViolationAudit from "../violation-audit.js";
15
+ import ViolationAudit from '../violation-audit.js';
16
16
  //# sourceMappingURL=geolocation-on-start.d.ts.map
@@ -41,5 +41,5 @@ export namespace UIStrings {
41
41
  const issueTypeBlockedByResponse: string;
42
42
  const issueTypeHeavyAds: string;
43
43
  }
44
- import { Audit } from "../audit.js";
44
+ import { Audit } from '../audit.js';
45
45
  //# sourceMappingURL=inspector-issues.d.ts.map
@@ -11,5 +11,5 @@ export namespace UIStrings {
11
11
  const description: string;
12
12
  const columnVersion: string;
13
13
  }
14
- import { Audit } from "../audit.js";
14
+ import { Audit } from '../audit.js';
15
15
  //# sourceMappingURL=js-libraries.d.ts.map
@@ -12,5 +12,5 @@ export namespace UIStrings {
12
12
  const failureTitle: string;
13
13
  const description: string;
14
14
  }
15
- import ViolationAudit from "../violation-audit.js";
15
+ import ViolationAudit from '../violation-audit.js';
16
16
  //# sourceMappingURL=no-document-write.d.ts.map
@@ -12,5 +12,5 @@ export namespace UIStrings {
12
12
  const failureTitle: string;
13
13
  const description: string;
14
14
  }
15
- import ViolationAudit from "../violation-audit.js";
15
+ import ViolationAudit from '../violation-audit.js';
16
16
  //# sourceMappingURL=notification-on-start.d.ts.map
@@ -11,5 +11,5 @@ export namespace UIStrings {
11
11
  const failureTitle: string;
12
12
  const description: string;
13
13
  }
14
- import { Audit } from "../audit.js";
14
+ import { Audit } from '../audit.js';
15
15
  //# sourceMappingURL=paste-preventing-inputs.d.ts.map
@@ -66,7 +66,7 @@ export namespace UIStrings {
66
66
  const displayValue: string;
67
67
  const columnProtocol: string;
68
68
  }
69
- import { Audit } from "../audit.js";
70
- import { NetworkRequest } from "../../lib/network-request.js";
71
- import { EntityClassification } from "../../computed/entity-classification.js";
69
+ import { Audit } from '../audit.js';
70
+ import { NetworkRequest } from '../../lib/network-request.js';
71
+ import { EntityClassification } from '../../computed/entity-classification.js';
72
72
  //# sourceMappingURL=uses-http2.d.ts.map
@@ -12,5 +12,5 @@ export namespace UIStrings {
12
12
  const failureTitle: string;
13
13
  const description: string;
14
14
  }
15
- import ViolationAudit from "../violation-audit.js";
15
+ import ViolationAudit from '../violation-audit.js';
16
16
  //# sourceMappingURL=uses-passive-event-listeners.d.ts.map
@@ -27,5 +27,5 @@ export namespace UIStrings {
27
27
  const failureTitle: string;
28
28
  const description: string;
29
29
  }
30
- import { Audit } from "./audit.js";
30
+ import { Audit } from './audit.js';
31
31
  //# sourceMappingURL=errors-in-console.d.ts.map
@@ -7,5 +7,5 @@ declare class FinalScreenshot extends Audit {
7
7
  */
8
8
  static audit(artifacts: LH.Artifacts, context: LH.Audit.Context): Promise<LH.Audit.Product>;
9
9
  }
10
- import { Audit } from "./audit.js";
10
+ import { Audit } from './audit.js';
11
11
  //# sourceMappingURL=final-screenshot.d.ts.map
@@ -28,5 +28,5 @@ export namespace UIStrings {
28
28
  const description: string;
29
29
  const undeclaredFontOriginWarning: string;
30
30
  }
31
- import { Audit } from "./audit.js";
31
+ import { Audit } from './audit.js';
32
32
  //# sourceMappingURL=font-display.d.ts.map
@@ -26,5 +26,5 @@ export namespace UIStrings {
26
26
  const columnDisplayed: string;
27
27
  const columnActual: string;
28
28
  }
29
- import { Audit } from "./audit.js";
29
+ import { Audit } from './audit.js';
30
30
  //# sourceMappingURL=image-aspect-ratio.d.ts.map
@@ -24,5 +24,5 @@ export namespace UIStrings {
24
24
  const columnActual: string;
25
25
  const columnExpected: string;
26
26
  }
27
- import { Audit } from "./audit.js";
27
+ import { Audit } from './audit.js';
28
28
  //# sourceMappingURL=image-size-responsive.d.ts.map
@@ -115,5 +115,5 @@ export const UIStrings: {
115
115
  */
116
116
  'scheme-not-supported-for-webapk': string;
117
117
  };
118
- import { Audit } from "./audit.js";
118
+ import { Audit } from './audit.js';
119
119
  //# sourceMappingURL=installable-manifest.d.ts.map
@@ -19,5 +19,5 @@ export namespace UIStrings {
19
19
  const warning: string;
20
20
  const upgraded: string;
21
21
  }
22
- import { Audit } from "./audit.js";
22
+ import { Audit } from './audit.js';
23
23
  //# sourceMappingURL=is-on-https.d.ts.map
@@ -2,13 +2,27 @@ export default LargestContentfulPaintElement;
2
2
  declare class LargestContentfulPaintElement extends Audit {
3
3
  /**
4
4
  * @param {LH.Artifacts} artifacts
5
- * @return {LH.Audit.Product}
5
+ * @param {LH.Audit.Context} context
6
+ * @return {Promise<LH.Audit.Details.Table|undefined>}
6
7
  */
7
- static audit(artifacts: LH.Artifacts): LH.Audit.Product;
8
+ static makePhaseTable(artifacts: LH.Artifacts, context: LH.Audit.Context): Promise<LH.Audit.Details.Table | undefined>;
9
+ /**
10
+ * @param {LH.Artifacts} artifacts
11
+ * @param {LH.Audit.Context} context
12
+ * @return {Promise<LH.Audit.Product>}
13
+ */
14
+ static audit(artifacts: LH.Artifacts, context: LH.Audit.Context): Promise<LH.Audit.Product>;
8
15
  }
9
16
  export namespace UIStrings {
10
17
  const title: string;
11
18
  const description: string;
19
+ const columnPhase: string;
20
+ const columnPercentOfLCP: string;
21
+ const columnTiming: string;
22
+ const itemTTFB: string;
23
+ const itemLoadDelay: string;
24
+ const itemLoadTime: string;
25
+ const itemRenderDelay: string;
12
26
  }
13
- import { Audit } from "./audit.js";
27
+ import { Audit } from './audit.js';
14
28
  //# sourceMappingURL=largest-contentful-paint-element.d.ts.map
@@ -6,6 +6,8 @@
6
6
 
7
7
  import {Audit} from './audit.js';
8
8
  import * as i18n from '../lib/i18n/i18n.js';
9
+ import {LargestContentfulPaint} from '../computed/metrics/largest-contentful-paint.js';
10
+ import {LCPBreakdown} from '../computed/metrics/lcp-breakdown.js';
9
11
 
10
12
  const UIStrings = {
11
13
  /** Descriptive title of a diagnostic audit that provides the element that was determined to be the Largest Contentful Paint. */
@@ -13,6 +15,20 @@ const UIStrings = {
13
15
  /** Description of a Lighthouse audit that tells the user that the element shown was determined to be the Largest Contentful Paint. */
14
16
  description: 'This is the largest contentful element painted within the viewport. ' +
15
17
  '[Learn more about the Largest Contentful Paint element](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)',
18
+ /** Label for a column in a data table; entries will be the name of a phase in the Largest Contentful Paint (LCP) metric. */
19
+ columnPhase: 'Phase',
20
+ /** Label for a column in a data table; entries will be the percent of Largest Contentful Paint (LCP) that a phase covers. */
21
+ columnPercentOfLCP: '% of LCP',
22
+ /** Label for a column in a data table; entries will be the amount of time spent in a phase in the Largest Contentful Paint (LCP) metric. */
23
+ columnTiming: 'Timing',
24
+ /** Table item value for the Time To First Byte (TTFB) phase of the Largest Contentful Paint (LCP) metric. */
25
+ itemTTFB: 'TTFB',
26
+ /** Table item value for the load delay phase of the Largest Contentful Paint (LCP) metric. */
27
+ itemLoadDelay: 'Load Delay',
28
+ /** Table item value for the load time phase of the Largest Contentful Paint (LCP) metric. */
29
+ itemLoadTime: 'Load Time',
30
+ /** Table item value for the render delay phase of the Largest Contentful Paint (LCP) metric. */
31
+ itemRenderDelay: 'Render Delay',
16
32
  };
17
33
 
18
34
  const str_ = i18n.createIcuMessageFn(import.meta.url, UIStrings);
@@ -28,15 +44,64 @@ class LargestContentfulPaintElement extends Audit {
28
44
  description: str_(UIStrings.description),
29
45
  scoreDisplayMode: Audit.SCORING_MODES.INFORMATIVE,
30
46
  supportedModes: ['navigation'],
31
- requiredArtifacts: ['traces', 'TraceElements'],
47
+ requiredArtifacts:
48
+ ['traces', 'TraceElements', 'devtoolsLogs', 'GatherContext', 'settings', 'URL'],
32
49
  };
33
50
  }
34
51
 
35
52
  /**
36
53
  * @param {LH.Artifacts} artifacts
37
- * @return {LH.Audit.Product}
54
+ * @param {LH.Audit.Context} context
55
+ * @return {Promise<LH.Audit.Details.Table|undefined>}
38
56
  */
39
- static audit(artifacts) {
57
+ static async makePhaseTable(artifacts, context) {
58
+ const trace = artifacts.traces[Audit.DEFAULT_PASS];
59
+ const devtoolsLog = artifacts.devtoolsLogs[Audit.DEFAULT_PASS];
60
+ const gatherContext = artifacts.GatherContext;
61
+ const metricComputationData = {trace, devtoolsLog, gatherContext,
62
+ settings: context.settings, URL: artifacts.URL};
63
+
64
+ const {timing: metricLcp} =
65
+ await LargestContentfulPaint.request(metricComputationData, context);
66
+ const {ttfb, loadStart, loadEnd} = await LCPBreakdown.request(metricComputationData, context);
67
+
68
+ let loadDelay = 0;
69
+ let loadTime = 0;
70
+ let renderDelay = metricLcp - ttfb;
71
+
72
+ if (loadStart && loadEnd) {
73
+ loadDelay = loadStart - ttfb;
74
+ loadTime = loadEnd - loadStart;
75
+ renderDelay = metricLcp - loadEnd;
76
+ }
77
+
78
+ const results = [
79
+ {phase: str_(UIStrings.itemTTFB), timing: ttfb},
80
+ {phase: str_(UIStrings.itemLoadDelay), timing: loadDelay},
81
+ {phase: str_(UIStrings.itemLoadTime), timing: loadTime},
82
+ {phase: str_(UIStrings.itemRenderDelay), timing: renderDelay},
83
+ ].map(result => {
84
+ const percent = 100 * result.timing / metricLcp;
85
+ const percentStr = `${percent.toFixed(0)}%`;
86
+ return {...result, percent: percentStr};
87
+ });
88
+
89
+ /** @type {LH.Audit.Details.Table['headings']} */
90
+ const headings = [
91
+ {key: 'phase', valueType: 'text', label: str_(UIStrings.columnPhase)},
92
+ {key: 'percent', valueType: 'text', label: str_(UIStrings.columnPercentOfLCP)},
93
+ {key: 'timing', valueType: 'ms', label: str_(UIStrings.columnTiming)},
94
+ ];
95
+
96
+ return Audit.makeTableDetails(headings, results);
97
+ }
98
+
99
+ /**
100
+ * @param {LH.Artifacts} artifacts
101
+ * @param {LH.Audit.Context} context
102
+ * @return {Promise<LH.Audit.Product>}
103
+ */
104
+ static async audit(artifacts, context) {
40
105
  const lcpElement = artifacts.TraceElements
41
106
  .find(element => element.traceEventType === 'largest-contentful-paint');
42
107
  const lcpElementDetails = [];
@@ -51,7 +116,15 @@ class LargestContentfulPaintElement extends Audit {
51
116
  {key: 'node', valueType: 'node', label: str_(i18n.UIStrings.columnElement)},
52
117
  ];
53
118
 
54
- const details = Audit.makeTableDetails(headings, lcpElementDetails);
119
+ const elementTable = Audit.makeTableDetails(headings, lcpElementDetails);
120
+
121
+ const items = [elementTable];
122
+ if (elementTable.items.length) {
123
+ const phaseTable = await this.makePhaseTable(artifacts, context);
124
+ if (phaseTable) items.push(phaseTable);
125
+ }
126
+
127
+ const details = Audit.makeListDetails(items);
55
128
 
56
129
  const displayValue = str_(i18n.UIStrings.displayValueElementsFound,
57
130
  {nodeCount: lcpElementDetails.length});
@@ -11,5 +11,5 @@ export namespace UIStrings {
11
11
  const description: string;
12
12
  const columnContribution: string;
13
13
  }
14
- import { Audit } from "./audit.js";
14
+ import { Audit } from './audit.js';
15
15
  //# sourceMappingURL=layout-shift-elements.d.ts.map
@@ -17,5 +17,5 @@ export namespace UIStrings {
17
17
  const failureTitle: string;
18
18
  const description: string;
19
19
  }
20
- import { Audit } from "./audit.js";
20
+ import { Audit } from './audit.js';
21
21
  //# sourceMappingURL=lcp-lazy-loaded.d.ts.map
@@ -12,5 +12,5 @@ export namespace UIStrings {
12
12
  const description: string;
13
13
  const displayValue: string;
14
14
  }
15
- import { Audit } from "./audit.js";
15
+ import { Audit } from './audit.js';
16
16
  //# sourceMappingURL=long-tasks.d.ts.map
@@ -7,5 +7,5 @@ declare class MainThreadTasks extends Audit {
7
7
  */
8
8
  static audit(artifacts: LH.Artifacts, context: LH.Audit.Context): Promise<LH.Audit.Product>;
9
9
  }
10
- import { Audit } from "./audit.js";
10
+ import { Audit } from './audit.js';
11
11
  //# sourceMappingURL=main-thread-tasks.d.ts.map
@@ -24,5 +24,5 @@ export namespace UIStrings {
24
24
  const description: string;
25
25
  const columnCategory: string;
26
26
  }
27
- import { Audit } from "./audit.js";
27
+ import { Audit } from './audit.js';
28
28
  //# sourceMappingURL=mainthread-work-breakdown.d.ts.map
@@ -9,5 +9,5 @@ declare class ManualAudit extends Audit {
9
9
  */
10
10
  static audit(): LH.Audit.Product;
11
11
  }
12
- import { Audit } from "../audit.js";
12
+ import { Audit } from '../audit.js';
13
13
  //# sourceMappingURL=manual-audit.d.ts.map
@@ -8,5 +8,5 @@ export namespace UIStrings {
8
8
  const title: string;
9
9
  const description: string;
10
10
  }
11
- import ManualAudit from "./manual-audit.js";
11
+ import ManualAudit from './manual-audit.js';
12
12
  //# sourceMappingURL=pwa-cross-browser.d.ts.map
@@ -8,5 +8,5 @@ export namespace UIStrings {
8
8
  const title: string;
9
9
  const description: string;
10
10
  }
11
- import ManualAudit from "./manual-audit.js";
11
+ import ManualAudit from './manual-audit.js';
12
12
  //# sourceMappingURL=pwa-each-page-has-url.d.ts.map
@@ -8,5 +8,5 @@ export namespace UIStrings {
8
8
  const title: string;
9
9
  const description: string;
10
10
  }
11
- import ManualAudit from "./manual-audit.js";
11
+ import ManualAudit from './manual-audit.js';
12
12
  //# sourceMappingURL=pwa-page-transitions.d.ts.map
@@ -21,5 +21,5 @@ export namespace UIStrings {
21
21
  const failureTitle: string;
22
22
  const description: string;
23
23
  }
24
- import { Audit } from "./audit.js";
24
+ import { Audit } from './audit.js';
25
25
  //# sourceMappingURL=maskable-icon.d.ts.map
@@ -17,5 +17,5 @@ declare class CumulativeLayoutShift extends Audit {
17
17
  export namespace UIStrings {
18
18
  const description: string;
19
19
  }
20
- import { Audit } from "../audit.js";
20
+ import { Audit } from '../audit.js';
21
21
  //# sourceMappingURL=cumulative-layout-shift.d.ts.map
@@ -17,5 +17,5 @@ declare class ExperimentalInteractionToNextPaint extends Audit {
17
17
  export namespace UIStrings {
18
18
  const description: string;
19
19
  }
20
- import { Audit } from "../audit.js";
20
+ import { Audit } from '../audit.js';
21
21
  //# sourceMappingURL=experimental-interaction-to-next-paint.d.ts.map
@@ -11,5 +11,5 @@ declare class FirstContentfulPaint3G extends Audit {
11
11
  */
12
12
  static audit(artifacts: LH.Artifacts, context: LH.Audit.Context): Promise<LH.Audit.Product>;
13
13
  }
14
- import { Audit } from "../audit.js";
14
+ import { Audit } from '../audit.js';
15
15
  //# sourceMappingURL=first-contentful-paint-3g.d.ts.map
@@ -21,5 +21,5 @@ declare class FirstContentfulPaint extends Audit {
21
21
  export namespace UIStrings {
22
22
  const description: string;
23
23
  }
24
- import { Audit } from "../audit.js";
24
+ import { Audit } from '../audit.js';
25
25
  //# sourceMappingURL=first-contentful-paint.d.ts.map
@@ -24,5 +24,5 @@ declare class FirstMeaningfulPaint extends Audit {
24
24
  export namespace UIStrings {
25
25
  const description: string;
26
26
  }
27
- import { Audit } from "../audit.js";
27
+ import { Audit } from '../audit.js';
28
28
  //# sourceMappingURL=first-meaningful-paint.d.ts.map
@@ -27,5 +27,5 @@ declare class InteractiveMetric extends Audit {
27
27
  export namespace UIStrings {
28
28
  const description: string;
29
29
  }
30
- import { Audit } from "../audit.js";
30
+ import { Audit } from '../audit.js';
31
31
  //# sourceMappingURL=interactive.d.ts.map
@@ -21,5 +21,5 @@ declare class LargestContentfulPaint extends Audit {
21
21
  export namespace UIStrings {
22
22
  const description: string;
23
23
  }
24
- import { Audit } from "../audit.js";
24
+ import { Audit } from '../audit.js';
25
25
  //# sourceMappingURL=largest-contentful-paint.d.ts.map
@@ -19,5 +19,5 @@ declare class MaxPotentialFID extends Audit {
19
19
  export namespace UIStrings {
20
20
  const description: string;
21
21
  }
22
- import { Audit } from "../audit.js";
22
+ import { Audit } from '../audit.js';
23
23
  //# sourceMappingURL=max-potential-fid.d.ts.map
@@ -23,5 +23,5 @@ declare class SpeedIndex extends Audit {
23
23
  export namespace UIStrings {
24
24
  const description: string;
25
25
  }
26
- import { Audit } from "../audit.js";
26
+ import { Audit } from '../audit.js';
27
27
  //# sourceMappingURL=speed-index.d.ts.map
@@ -28,5 +28,5 @@ declare class TotalBlockingTime extends Audit {
28
28
  export namespace UIStrings {
29
29
  const description: string;
30
30
  }
31
- import { Audit } from "../audit.js";
31
+ import { Audit } from '../audit.js';
32
32
  //# sourceMappingURL=total-blocking-time.d.ts.map
@@ -7,5 +7,5 @@ declare class Metrics extends Audit {
7
7
  */
8
8
  static audit(artifacts: LH.Artifacts, context: LH.Audit.Context): Promise<LH.Audit.Product>;
9
9
  }
10
- import { Audit } from "./audit.js";
10
+ import { Audit } from './audit.js';
11
11
  //# sourceMappingURL=metrics.d.ts.map
@@ -24,5 +24,5 @@ declare class MultiCheckAudit extends Audit {
24
24
  manifestValues?: LH.Artifacts.ManifestValues;
25
25
  }>;
26
26
  }
27
- import { Audit } from "./audit.js";
27
+ import { Audit } from './audit.js';
28
28
  //# sourceMappingURL=multi-check-audit.d.ts.map
@@ -7,5 +7,5 @@ declare class NetworkRequests extends Audit {
7
7
  */
8
8
  static audit(artifacts: LH.Artifacts, context: LH.Audit.Context): Promise<LH.Audit.Product>;
9
9
  }
10
- import { Audit } from "./audit.js";
10
+ import { Audit } from './audit.js';
11
11
  //# sourceMappingURL=network-requests.d.ts.map
@@ -63,6 +63,7 @@ class NetworkRequests extends Audit {
63
63
 
64
64
  return {
65
65
  url: UrlUtils.elideDataURI(record.url),
66
+ sessionTargetType: record.sessionTargetType,
66
67
  protocol: record.protocol,
67
68
  rendererStartTime: normalizeTime(record.rendererStartTime),
68
69
  networkRequestTime: normalizeTime(record.networkRequestTime),
@@ -11,5 +11,5 @@ export namespace UIStrings {
11
11
  const title: string;
12
12
  const description: string;
13
13
  }
14
- import { Audit } from "./audit.js";
14
+ import { Audit } from './audit.js';
15
15
  //# sourceMappingURL=network-rtt.d.ts.map
@@ -11,5 +11,5 @@ export namespace UIStrings {
11
11
  const title: string;
12
12
  const description: string;
13
13
  }
14
- import { Audit } from "./audit.js";
14
+ import { Audit } from './audit.js';
15
15
  //# sourceMappingURL=network-server-latency.d.ts.map
@@ -12,5 +12,5 @@ export namespace UIStrings {
12
12
  const failureTitle: string;
13
13
  const description: string;
14
14
  }
15
- import { Audit } from "./audit.js";
15
+ import { Audit } from './audit.js';
16
16
  //# sourceMappingURL=no-unload-listeners.d.ts.map
@@ -17,5 +17,5 @@ export namespace UIStrings {
17
17
  const incompatibleAnimations: string;
18
18
  const unsupportedTimingParameters: string;
19
19
  }
20
- import { Audit } from "./audit.js";
20
+ import { Audit } from './audit.js';
21
21
  //# sourceMappingURL=non-composited-animations.d.ts.map
@@ -34,6 +34,6 @@ export namespace UIStrings {
34
34
  const description: string;
35
35
  const requestCountOverBudget: string;
36
36
  }
37
- import { Budget } from "../config/budget.js";
38
- import { Audit } from "./audit.js";
37
+ import { Budget } from '../config/budget.js';
38
+ import { Audit } from './audit.js';
39
39
  //# sourceMappingURL=performance-budget.d.ts.map
@@ -7,5 +7,5 @@ declare class PredictivePerf extends Audit {
7
7
  */
8
8
  static audit(artifacts: LH.Artifacts, context: LH.Audit.Context): Promise<LH.Audit.Product>;
9
9
  }
10
- import { Audit } from "./audit.js";
10
+ import { Audit } from './audit.js';
11
11
  //# sourceMappingURL=predictive-perf.d.ts.map
@@ -11,6 +11,8 @@ import {LanternFirstMeaningfulPaint} from '../computed/metrics/lantern-first-mea
11
11
  import {LanternInteractive} from '../computed/metrics/lantern-interactive.js';
12
12
  import {LanternSpeedIndex} from '../computed/metrics/lantern-speed-index.js';
13
13
  import {LanternLargestContentfulPaint} from '../computed/metrics/lantern-largest-contentful-paint.js';
14
+ import {TimingSummary} from '../computed/metrics/timing-summary.js';
15
+ import {defaultSettings} from '../config/constants.js';
14
16
 
15
17
  // Parameters (in ms) for log-normal CDF scoring. To see the curve:
16
18
  // https://www.desmos.com/calculator/bksgkihhj8
@@ -32,7 +34,7 @@ class PredictivePerf extends Audit {
32
34
  'a cellular connection on a mobile device.',
33
35
  scoreDisplayMode: Audit.SCORING_MODES.NUMERIC,
34
36
  supportedModes: ['navigation'],
35
- requiredArtifacts: ['traces', 'devtoolsLogs', 'GatherContext'],
37
+ requiredArtifacts: ['traces', 'devtoolsLogs', 'GatherContext', 'URL'],
36
38
  };
37
39
  }
38
40
 
@@ -47,8 +49,7 @@ class PredictivePerf extends Audit {
47
49
  const devtoolsLog = artifacts.devtoolsLogs[Audit.DEFAULT_PASS];
48
50
  const URL = artifacts.URL;
49
51
  /** @type {LH.Config.Settings} */
50
- // @ts-expect-error - TODO(bckenny): allow optional `throttling` settings
51
- const settings = {}; // Use default settings.
52
+ const settings = JSON.parse(JSON.stringify(defaultSettings)); // Use default settings.
52
53
  const computationData = {trace, devtoolsLog, gatherContext, settings, URL};
53
54
  const fcp = await LanternFirstContentfulPaint.request(computationData, context);
54
55
  const fmp = await LanternFirstMeaningfulPaint.request(computationData, context);
@@ -56,6 +57,8 @@ class PredictivePerf extends Audit {
56
57
  const si = await LanternSpeedIndex.request(computationData, context);
57
58
  const lcp = await LanternLargestContentfulPaint.request(computationData, context);
58
59
 
60
+ const timingSummary = await TimingSummary.request(computationData, context);
61
+
59
62
  const values = {
60
63
  roughEstimateOfFCP: fcp.timing,
61
64
  optimisticFCP: fcp.optimisticEstimate.timeInMs,
@@ -76,6 +79,10 @@ class PredictivePerf extends Audit {
76
79
  roughEstimateOfLCP: lcp.timing,
77
80
  optimisticLCP: lcp.optimisticEstimate.timeInMs,
78
81
  pessimisticLCP: lcp.pessimisticEstimate.timeInMs,
82
+
83
+ roughEstimateOfTTFB: timingSummary.metrics.timeToFirstByte,
84
+ roughEstimateOfLCPLoadStart: timingSummary.metrics.lcpLoadStart,
85
+ roughEstimateOfLCPLoadEnd: timingSummary.metrics.lcpLoadEnd,
79
86
  };
80
87
 
81
88
  const score = Audit.computeLogNormalScore(
@@ -25,5 +25,5 @@ export namespace UIStrings {
25
25
  const failureTitle: string;
26
26
  const description: string;
27
27
  }
28
- import { Audit } from "./audit.js";
28
+ import { Audit } from './audit.js';
29
29
  //# sourceMappingURL=preload-fonts.d.ts.map
@@ -42,16 +42,6 @@ declare class PrioritizeLcpImage extends Audit {
42
42
  lcpNodeToPreload?: import("../lib/dependency-graph/network-node.js").NetworkNode | undefined;
43
43
  initiatorPath?: InitiatorPath | undefined;
44
44
  };
45
- /**
46
- * Match the LCP event with the paint event to get the request of the image actually painted.
47
- * This could differ from the `ImageElement` associated with the nodeId if e.g. the LCP
48
- * was a pseudo-element associated with a node containing a smaller background-image.
49
- * @param {LH.Trace} trace
50
- * @param {LH.Artifacts.ProcessedNavigation} processedNavigation
51
- * @param {Array<NetworkRequest>} networkRecords
52
- * @return {NetworkRequest|undefined}
53
- */
54
- static getLcpRecord(trace: LH.Trace, processedNavigation: LH.Artifacts.ProcessedNavigation, networkRecords: Array<NetworkRequest>): NetworkRequest | undefined;
55
45
  /**
56
46
  * Computes the estimated effect of preloading the LCP image.
57
47
  * @param {LH.Artifacts.TraceElement} lcpElement
@@ -79,7 +69,6 @@ export namespace UIStrings {
79
69
  const title: string;
80
70
  const description: string;
81
71
  }
82
- import { Audit } from "./audit.js";
83
- import { NetworkRequest } from "../lib/network-request.js";
84
- import { ProcessedNavigation } from "../computed/processed-navigation.js";
72
+ import { Audit } from './audit.js';
73
+ import { NetworkRequest } from '../lib/network-request.js';
85
74
  //# sourceMappingURL=prioritize-lcp-image.d.ts.map