lighthouse 11.1.0 → 11.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 (557) hide show
  1. package/CONTRIBUTING.md +3 -5
  2. package/cli/bin.js +4 -3
  3. package/cli/cli-flags.js +3 -3
  4. package/cli/commands/commands.js +3 -3
  5. package/cli/commands/list-audits.js +3 -3
  6. package/cli/commands/list-locales.js +3 -3
  7. package/cli/commands/list-trace-categories.js +3 -3
  8. package/cli/index.js +3 -3
  9. package/cli/printer.js +3 -3
  10. package/cli/run.js +3 -3
  11. package/cli/sentry-prompt.js +3 -3
  12. package/cli/test/smokehouse/__snapshots__/report-assert-test.js.snap +8 -0
  13. package/cli/test/smokehouse/config/exclusions.d.ts +3 -3
  14. package/cli/test/smokehouse/config/exclusions.js +3 -3
  15. package/cli/test/smokehouse/core-tests.js +3 -3
  16. package/cli/test/smokehouse/frontends/back-compat-util.d.ts +3 -3
  17. package/cli/test/smokehouse/frontends/back-compat-util.js +3 -3
  18. package/cli/test/smokehouse/frontends/lib.js +3 -3
  19. package/cli/test/smokehouse/frontends/node.js +3 -3
  20. package/cli/test/smokehouse/frontends/smokehouse-bin.js +3 -3
  21. package/cli/test/smokehouse/lib/child-process-error.d.ts +3 -3
  22. package/cli/test/smokehouse/lib/child-process-error.js +3 -3
  23. package/cli/test/smokehouse/lib/concurrent-mapper.d.ts +3 -3
  24. package/cli/test/smokehouse/lib/concurrent-mapper.js +3 -3
  25. package/cli/test/smokehouse/lib/local-console.d.ts +3 -3
  26. package/cli/test/smokehouse/lib/local-console.js +3 -3
  27. package/cli/test/smokehouse/lighthouse-runners/bundle.js +3 -3
  28. package/cli/test/smokehouse/lighthouse-runners/cli.js +3 -3
  29. package/cli/test/smokehouse/lighthouse-runners/devtools.js +3 -3
  30. package/cli/test/smokehouse/report-assert-test.js +3 -3
  31. package/cli/test/smokehouse/report-assert.js +3 -3
  32. package/cli/test/smokehouse/smokehouse.d.ts +0 -1
  33. package/cli/test/smokehouse/smokehouse.js +12 -6
  34. package/cli/test/smokehouse/version-check-test.js +3 -3
  35. package/cli/test/smokehouse/version-check.js +3 -3
  36. package/commitlint.config.js +3 -3
  37. package/core/audits/accessibility/accesskeys.js +3 -3
  38. package/core/audits/accessibility/aria-allowed-attr.js +3 -3
  39. package/core/audits/accessibility/aria-allowed-role.js +3 -3
  40. package/core/audits/accessibility/aria-command-name.js +3 -3
  41. package/core/audits/accessibility/aria-dialog-name.js +3 -3
  42. package/core/audits/accessibility/aria-hidden-body.js +3 -3
  43. package/core/audits/accessibility/aria-hidden-focus.js +3 -3
  44. package/core/audits/accessibility/aria-input-field-name.js +3 -3
  45. package/core/audits/accessibility/aria-meter-name.js +3 -3
  46. package/core/audits/accessibility/aria-progressbar-name.js +3 -3
  47. package/core/audits/accessibility/aria-required-attr.js +3 -3
  48. package/core/audits/accessibility/aria-required-children.js +3 -3
  49. package/core/audits/accessibility/aria-required-parent.js +3 -3
  50. package/core/audits/accessibility/aria-roles.js +3 -3
  51. package/core/audits/accessibility/aria-text.js +3 -3
  52. package/core/audits/accessibility/aria-toggle-field-name.js +3 -3
  53. package/core/audits/accessibility/aria-tooltip-name.js +3 -3
  54. package/core/audits/accessibility/aria-treeitem-name.js +3 -3
  55. package/core/audits/accessibility/aria-valid-attr-value.js +3 -3
  56. package/core/audits/accessibility/aria-valid-attr.js +3 -3
  57. package/core/audits/accessibility/axe-audit.js +3 -3
  58. package/core/audits/accessibility/button-name.js +3 -3
  59. package/core/audits/accessibility/bypass.js +3 -3
  60. package/core/audits/accessibility/color-contrast.js +3 -3
  61. package/core/audits/accessibility/definition-list.js +3 -3
  62. package/core/audits/accessibility/dlitem.js +3 -3
  63. package/core/audits/accessibility/document-title.js +3 -3
  64. package/core/audits/accessibility/duplicate-id-active.js +3 -3
  65. package/core/audits/accessibility/duplicate-id-aria.js +3 -3
  66. package/core/audits/accessibility/empty-heading.js +3 -3
  67. package/core/audits/accessibility/form-field-multiple-labels.js +3 -3
  68. package/core/audits/accessibility/frame-title.js +3 -3
  69. package/core/audits/accessibility/heading-order.js +3 -3
  70. package/core/audits/accessibility/html-has-lang.js +3 -3
  71. package/core/audits/accessibility/html-lang-valid.js +3 -3
  72. package/core/audits/accessibility/html-xml-lang-mismatch.js +3 -3
  73. package/core/audits/accessibility/identical-links-same-purpose.js +3 -3
  74. package/core/audits/accessibility/image-alt.js +3 -3
  75. package/core/audits/accessibility/image-redundant-alt.js +3 -3
  76. package/core/audits/accessibility/input-button-name.js +3 -3
  77. package/core/audits/accessibility/input-image-alt.js +3 -3
  78. package/core/audits/accessibility/label-content-name-mismatch.js +3 -3
  79. package/core/audits/accessibility/label.js +3 -3
  80. package/core/audits/accessibility/landmark-one-main.js +3 -3
  81. package/core/audits/accessibility/link-in-text-block.js +3 -3
  82. package/core/audits/accessibility/link-name.js +3 -3
  83. package/core/audits/accessibility/list.js +3 -3
  84. package/core/audits/accessibility/listitem.js +3 -3
  85. package/core/audits/accessibility/manual/custom-controls-labels.js +3 -3
  86. package/core/audits/accessibility/manual/custom-controls-roles.js +3 -3
  87. package/core/audits/accessibility/manual/focus-traps.js +3 -3
  88. package/core/audits/accessibility/manual/focusable-controls.js +3 -3
  89. package/core/audits/accessibility/manual/interactive-element-affordance.js +3 -3
  90. package/core/audits/accessibility/manual/logical-tab-order.js +3 -3
  91. package/core/audits/accessibility/manual/managed-focus.js +3 -3
  92. package/core/audits/accessibility/manual/offscreen-content-hidden.js +3 -3
  93. package/core/audits/accessibility/manual/use-landmarks.js +3 -3
  94. package/core/audits/accessibility/manual/visual-order-follows-dom.js +3 -3
  95. package/core/audits/accessibility/meta-refresh.js +3 -3
  96. package/core/audits/accessibility/meta-viewport.js +3 -3
  97. package/core/audits/accessibility/object-alt.js +3 -3
  98. package/core/audits/accessibility/select-name.js +3 -3
  99. package/core/audits/accessibility/skip-link.js +3 -3
  100. package/core/audits/accessibility/tabindex.js +3 -3
  101. package/core/audits/accessibility/table-duplicate-name.js +3 -3
  102. package/core/audits/accessibility/table-fake-caption.js +3 -3
  103. package/core/audits/accessibility/target-size.js +3 -3
  104. package/core/audits/accessibility/td-has-header.js +3 -3
  105. package/core/audits/accessibility/td-headers-attr.js +3 -3
  106. package/core/audits/accessibility/th-has-data-cells.js +3 -3
  107. package/core/audits/accessibility/valid-lang.js +3 -3
  108. package/core/audits/accessibility/video-caption.js +3 -3
  109. package/core/audits/audit.js +24 -14
  110. package/core/audits/autocomplete.js +3 -3
  111. package/core/audits/bf-cache.js +4 -3
  112. package/core/audits/bootup-time.js +7 -4
  113. package/core/audits/byte-efficiency/byte-efficiency-audit.js +4 -4
  114. package/core/audits/byte-efficiency/duplicated-javascript.js +4 -4
  115. package/core/audits/byte-efficiency/efficient-animated-content.js +4 -4
  116. package/core/audits/byte-efficiency/legacy-javascript.js +4 -4
  117. package/core/audits/byte-efficiency/modern-image-formats.js +4 -4
  118. package/core/audits/byte-efficiency/offscreen-images.js +4 -4
  119. package/core/audits/byte-efficiency/render-blocking-resources.js +5 -6
  120. package/core/audits/byte-efficiency/total-byte-weight.js +6 -4
  121. package/core/audits/byte-efficiency/unminified-css.js +4 -4
  122. package/core/audits/byte-efficiency/unminified-javascript.js +4 -4
  123. package/core/audits/byte-efficiency/unused-css-rules.js +4 -4
  124. package/core/audits/byte-efficiency/unused-javascript.js +4 -4
  125. package/core/audits/byte-efficiency/uses-long-cache-ttl.js +6 -11
  126. package/core/audits/byte-efficiency/uses-optimized-images.js +4 -4
  127. package/core/audits/byte-efficiency/uses-responsive-images-snapshot.js +4 -3
  128. package/core/audits/byte-efficiency/uses-responsive-images.js +4 -4
  129. package/core/audits/byte-efficiency/uses-text-compression.js +4 -4
  130. package/core/audits/content-width.js +3 -3
  131. package/core/audits/critical-request-chains.js +3 -3
  132. package/core/audits/csp-xss.js +4 -4
  133. package/core/audits/deprecations.js +3 -3
  134. package/core/audits/diagnostics.js +3 -3
  135. package/core/audits/dobetterweb/charset.js +3 -3
  136. package/core/audits/dobetterweb/doctype.js +3 -3
  137. package/core/audits/dobetterweb/dom-size.js +6 -4
  138. package/core/audits/dobetterweb/geolocation-on-start.js +3 -3
  139. package/core/audits/dobetterweb/inspector-issues.js +3 -3
  140. package/core/audits/dobetterweb/js-libraries.js +3 -3
  141. package/core/audits/dobetterweb/no-document-write.js +4 -3
  142. package/core/audits/dobetterweb/notification-on-start.js +3 -3
  143. package/core/audits/dobetterweb/paste-preventing-inputs.js +3 -3
  144. package/core/audits/dobetterweb/uses-http2.js +5 -6
  145. package/core/audits/dobetterweb/uses-passive-event-listeners.js +4 -3
  146. package/core/audits/errors-in-console.js +3 -3
  147. package/core/audits/final-screenshot.js +3 -3
  148. package/core/audits/font-display.js +4 -3
  149. package/core/audits/image-aspect-ratio.js +3 -3
  150. package/core/audits/image-size-responsive.js +3 -3
  151. package/core/audits/installable-manifest.js +5 -5
  152. package/core/audits/is-on-https.js +3 -3
  153. package/core/audits/largest-contentful-paint-element.js +6 -5
  154. package/core/audits/layout-shift-elements.js +10 -7
  155. package/core/audits/lcp-lazy-loaded.js +4 -3
  156. package/core/audits/long-tasks.js +11 -4
  157. package/core/audits/main-thread-tasks.js +3 -3
  158. package/core/audits/mainthread-work-breakdown.js +26 -5
  159. package/core/audits/manual/manual-audit.js +3 -3
  160. package/core/audits/manual/pwa-cross-browser.js +3 -3
  161. package/core/audits/manual/pwa-each-page-has-url.js +3 -3
  162. package/core/audits/manual/pwa-page-transitions.js +3 -3
  163. package/core/audits/maskable-icon.js +3 -3
  164. package/core/audits/metrics/cumulative-layout-shift.js +7 -4
  165. package/core/audits/metrics/first-contentful-paint.js +4 -3
  166. package/core/audits/metrics/first-meaningful-paint.js +3 -3
  167. package/core/audits/metrics/interaction-to-next-paint.js +3 -3
  168. package/core/audits/metrics/interactive.js +3 -3
  169. package/core/audits/metrics/largest-contentful-paint.js +4 -3
  170. package/core/audits/metrics/max-potential-fid.js +3 -3
  171. package/core/audits/metrics/speed-index.js +4 -3
  172. package/core/audits/metrics/total-blocking-time.js +4 -3
  173. package/core/audits/metrics.js +3 -3
  174. package/core/audits/multi-check-audit.js +3 -3
  175. package/core/audits/network-requests.js +3 -3
  176. package/core/audits/network-rtt.js +3 -3
  177. package/core/audits/network-server-latency.js +3 -3
  178. package/core/audits/no-unload-listeners.js +3 -3
  179. package/core/audits/non-composited-animations.js +3 -3
  180. package/core/audits/oopif-iframe-test-audit.js +3 -3
  181. package/core/audits/performance-budget.js +3 -3
  182. package/core/audits/predictive-perf.js +3 -3
  183. package/core/audits/preload-fonts.js +3 -3
  184. package/core/audits/prioritize-lcp-image.js +5 -6
  185. package/core/audits/redirects.js +5 -6
  186. package/core/audits/screenshot-thumbnails.js +3 -3
  187. package/core/audits/script-elements-test-audit.js +3 -3
  188. package/core/audits/script-treemap-data.js +3 -3
  189. package/core/audits/seo/canonical.js +3 -3
  190. package/core/audits/seo/crawlable-anchors.js +3 -3
  191. package/core/audits/seo/font-size.js +3 -3
  192. package/core/audits/seo/hreflang.js +3 -3
  193. package/core/audits/seo/http-status-code.js +3 -3
  194. package/core/audits/seo/is-crawlable.js +3 -3
  195. package/core/audits/seo/link-text.js +3 -3
  196. package/core/audits/seo/manual/structured-data.js +3 -3
  197. package/core/audits/seo/meta-description.js +3 -3
  198. package/core/audits/seo/plugins.js +3 -3
  199. package/core/audits/seo/robots-txt.js +3 -3
  200. package/core/audits/seo/tap-targets.js +3 -3
  201. package/core/audits/server-response-time.js +5 -3
  202. package/core/audits/splash-screen.js +3 -3
  203. package/core/audits/themed-omnibox.js +3 -3
  204. package/core/audits/third-party-facades.js +4 -3
  205. package/core/audits/third-party-summary.js +8 -4
  206. package/core/audits/timing-budget.js +3 -3
  207. package/core/audits/unsized-images.js +4 -4
  208. package/core/audits/user-timings.js +3 -3
  209. package/core/audits/uses-rel-preconnect.js +5 -6
  210. package/core/audits/uses-rel-preload.js +5 -6
  211. package/core/audits/valid-source-maps.js +2 -3
  212. package/core/audits/viewport.js +4 -3
  213. package/core/audits/violation-audit.js +3 -3
  214. package/core/audits/work-during-interaction.js +9 -5
  215. package/core/computed/computed-artifact.js +3 -3
  216. package/core/computed/critical-request-chains.js +3 -3
  217. package/core/computed/document-urls.js +3 -3
  218. package/core/computed/entity-classification.js +3 -3
  219. package/core/computed/image-records.js +3 -3
  220. package/core/computed/js-bundles.js +3 -3
  221. package/core/computed/lcp-image-record.js +3 -3
  222. package/core/computed/load-simulator.js +3 -3
  223. package/core/computed/main-resource.js +3 -3
  224. package/core/computed/main-thread-tasks.js +3 -3
  225. package/core/computed/manifest-values.js +3 -3
  226. package/core/computed/metrics/cumulative-layout-shift.js +3 -3
  227. package/core/computed/metrics/first-contentful-paint-all-frames.js +3 -3
  228. package/core/computed/metrics/first-contentful-paint.js +3 -3
  229. package/core/computed/metrics/first-meaningful-paint.js +3 -3
  230. package/core/computed/metrics/interactive.js +3 -3
  231. package/core/computed/metrics/lantern-first-contentful-paint.js +3 -3
  232. package/core/computed/metrics/lantern-first-meaningful-paint.js +3 -3
  233. package/core/computed/metrics/lantern-interactive.js +3 -3
  234. package/core/computed/metrics/lantern-largest-contentful-paint.js +3 -3
  235. package/core/computed/metrics/lantern-max-potential-fid.js +3 -3
  236. package/core/computed/metrics/lantern-metric.js +3 -3
  237. package/core/computed/metrics/lantern-speed-index.js +3 -3
  238. package/core/computed/metrics/lantern-total-blocking-time.js +3 -3
  239. package/core/computed/metrics/largest-contentful-paint-all-frames.js +3 -3
  240. package/core/computed/metrics/largest-contentful-paint.js +3 -3
  241. package/core/computed/metrics/lcp-breakdown.js +3 -3
  242. package/core/computed/metrics/max-potential-fid.js +3 -3
  243. package/core/computed/metrics/metric.js +3 -3
  244. package/core/computed/metrics/navigation-metric.js +3 -3
  245. package/core/computed/metrics/responsiveness.js +3 -3
  246. package/core/computed/metrics/speed-index.js +3 -3
  247. package/core/computed/metrics/tbt-utils.d.ts +3 -3
  248. package/core/computed/metrics/tbt-utils.js +3 -3
  249. package/core/computed/metrics/time-to-first-byte.js +3 -3
  250. package/core/computed/metrics/timing-summary.js +3 -3
  251. package/core/computed/metrics/total-blocking-time.js +3 -3
  252. package/core/computed/module-duplication.js +3 -3
  253. package/core/computed/network-analysis.js +3 -3
  254. package/core/computed/network-records.js +3 -3
  255. package/core/computed/page-dependency-graph.js +4 -3
  256. package/core/computed/processed-navigation.js +3 -3
  257. package/core/computed/processed-trace.js +3 -3
  258. package/core/computed/resource-summary.js +3 -3
  259. package/core/computed/screenshots.js +3 -3
  260. package/core/computed/speedline.js +3 -3
  261. package/core/computed/tbt-impact-tasks.js +3 -3
  262. package/core/computed/unused-css.js +3 -3
  263. package/core/computed/unused-javascript-summary.js +2 -3
  264. package/core/computed/user-timings.js +3 -3
  265. package/core/computed/viewport-meta.js +3 -3
  266. package/core/config/budget.js +3 -3
  267. package/core/config/config-helpers.js +3 -3
  268. package/core/config/config-plugin.js +3 -3
  269. package/core/config/config.js +3 -3
  270. package/core/config/constants.d.ts +3 -3
  271. package/core/config/constants.js +3 -3
  272. package/core/config/default-config.js +3 -3
  273. package/core/config/desktop-config.js +3 -3
  274. package/core/config/experimental-config.d.ts +3 -3
  275. package/core/config/experimental-config.js +3 -3
  276. package/core/config/filters.js +3 -3
  277. package/core/config/full-config.d.ts +3 -3
  278. package/core/config/full-config.js +3 -3
  279. package/core/config/lr-desktop-config.js +3 -3
  280. package/core/config/lr-mobile-config.d.ts +3 -3
  281. package/core/config/lr-mobile-config.js +3 -3
  282. package/core/config/metrics-to-audits.d.ts +3 -3
  283. package/core/config/metrics-to-audits.js +3 -3
  284. package/core/config/perf-config.d.ts +3 -3
  285. package/core/config/perf-config.js +3 -3
  286. package/core/config/validation.js +3 -3
  287. package/core/gather/base-artifacts.js +3 -3
  288. package/core/gather/base-gatherer.js +3 -3
  289. package/core/gather/driver/dom.js +3 -3
  290. package/core/gather/driver/environment.js +3 -3
  291. package/core/gather/driver/execution-context.js +3 -3
  292. package/core/gather/driver/navigation.js +3 -3
  293. package/core/gather/driver/network-monitor.js +3 -3
  294. package/core/gather/driver/network.js +3 -3
  295. package/core/gather/driver/prepare.js +3 -3
  296. package/core/gather/driver/service-workers.d.ts +3 -3
  297. package/core/gather/driver/service-workers.js +3 -3
  298. package/core/gather/driver/storage.js +3 -3
  299. package/core/gather/driver/target-manager.d.ts +5 -0
  300. package/core/gather/driver/target-manager.js +21 -11
  301. package/core/gather/driver/wait-for-condition.js +3 -3
  302. package/core/gather/driver.js +3 -3
  303. package/core/gather/fetcher.js +2 -3
  304. package/core/gather/gatherers/accessibility.js +3 -3
  305. package/core/gather/gatherers/anchor-elements.js +3 -3
  306. package/core/gather/gatherers/bf-cache-failures.js +3 -3
  307. package/core/gather/gatherers/cache-contents.js +3 -3
  308. package/core/gather/gatherers/console-messages.js +3 -3
  309. package/core/gather/gatherers/css-usage.js +3 -3
  310. package/core/gather/gatherers/devtools-log-compat.js +3 -3
  311. package/core/gather/gatherers/devtools-log.js +3 -3
  312. package/core/gather/gatherers/dobetterweb/doctype.js +3 -3
  313. package/core/gather/gatherers/dobetterweb/domstats.js +3 -3
  314. package/core/gather/gatherers/dobetterweb/optimized-images.js +5 -5
  315. package/core/gather/gatherers/dobetterweb/response-compression.js +4 -4
  316. package/core/gather/gatherers/dobetterweb/tags-blocking-first-paint.js +8 -3
  317. package/core/gather/gatherers/full-page-screenshot.js +2 -3
  318. package/core/gather/gatherers/global-listeners.js +3 -3
  319. package/core/gather/gatherers/iframe-elements.js +3 -3
  320. package/core/gather/gatherers/image-elements.js +3 -3
  321. package/core/gather/gatherers/inputs.js +3 -3
  322. package/core/gather/gatherers/inspector-issues.js +4 -3
  323. package/core/gather/gatherers/installability-errors.js +3 -3
  324. package/core/gather/gatherers/js-usage.js +3 -3
  325. package/core/gather/gatherers/link-elements.js +3 -3
  326. package/core/gather/gatherers/main-document-content.js +3 -3
  327. package/core/gather/gatherers/meta-elements.js +3 -3
  328. package/core/gather/gatherers/network-user-agent.js +3 -3
  329. package/core/gather/gatherers/script-elements.js +4 -4
  330. package/core/gather/gatherers/scripts.js +3 -3
  331. package/core/gather/gatherers/seo/embedded-content.js +3 -3
  332. package/core/gather/gatherers/seo/font-size.js +3 -3
  333. package/core/gather/gatherers/seo/robots-txt.js +3 -3
  334. package/core/gather/gatherers/seo/tap-targets.js +3 -3
  335. package/core/gather/gatherers/service-worker.js +3 -3
  336. package/core/gather/gatherers/source-maps.js +3 -3
  337. package/core/gather/gatherers/stacks.js +3 -3
  338. package/core/gather/gatherers/trace-compat.js +3 -3
  339. package/core/gather/gatherers/trace-elements.js +3 -3
  340. package/core/gather/gatherers/trace.js +3 -3
  341. package/core/gather/gatherers/viewport-dimensions.js +3 -3
  342. package/core/gather/gatherers/web-app-manifest.js +3 -3
  343. package/core/gather/navigation-runner.js +3 -3
  344. package/core/gather/runner-helpers.js +3 -3
  345. package/core/gather/session.js +5 -3
  346. package/core/gather/snapshot-runner.js +3 -3
  347. package/core/gather/timespan-runner.js +3 -3
  348. package/core/index.cjs +3 -3
  349. package/core/index.js +3 -3
  350. package/core/lib/arbitrary-equality-map.js +3 -3
  351. package/core/lib/asset-saver.d.ts +4 -4
  352. package/core/lib/asset-saver.js +17 -13
  353. package/core/lib/axe.js +3 -3
  354. package/core/lib/cdt/Common.js +3 -3
  355. package/core/lib/cdt/Platform.d.ts +3 -3
  356. package/core/lib/cdt/Platform.js +3 -3
  357. package/core/lib/cdt/SDK.js +3 -3
  358. package/core/lib/csp-evaluator.js +16 -16
  359. package/core/lib/dependency-graph/base-node.d.ts +3 -3
  360. package/core/lib/dependency-graph/base-node.js +3 -3
  361. package/core/lib/dependency-graph/cpu-node.js +3 -3
  362. package/core/lib/dependency-graph/network-node.js +3 -3
  363. package/core/lib/dependency-graph/simulator/connection-pool.js +3 -3
  364. package/core/lib/dependency-graph/simulator/dns-cache.js +3 -3
  365. package/core/lib/dependency-graph/simulator/network-analyzer.js +3 -3
  366. package/core/lib/dependency-graph/simulator/simulator-timing-map.js +3 -3
  367. package/core/lib/dependency-graph/simulator/simulator.js +3 -3
  368. package/core/lib/dependency-graph/simulator/tcp-connection.js +3 -3
  369. package/core/lib/deprecation-description.js +3 -3
  370. package/core/lib/emulation.js +3 -3
  371. package/core/lib/i18n/i18n.js +3 -3
  372. package/core/lib/icons.d.ts +3 -3
  373. package/core/lib/icons.js +3 -3
  374. package/core/lib/lantern-trace-saver.d.ts +3 -3
  375. package/core/lib/lantern-trace-saver.js +3 -3
  376. package/core/lib/lh-env.js +3 -3
  377. package/core/lib/lh-error.js +3 -3
  378. package/core/lib/lh-trace-processor.js +3 -3
  379. package/core/lib/lighthouse-compatibility.js +3 -3
  380. package/core/lib/manifest-parser.js +3 -3
  381. package/core/lib/median-run.js +3 -3
  382. package/core/lib/minification-estimator.js +3 -3
  383. package/core/lib/minify-devtoolslog.js +3 -3
  384. package/core/lib/navigation-error.js +3 -3
  385. package/core/lib/network-recorder.js +3 -3
  386. package/core/lib/network-request.js +3 -3
  387. package/core/lib/page-functions.js +3 -3
  388. package/core/lib/proto-preprocessor.js +3 -3
  389. package/core/lib/rect-helpers.d.ts +3 -3
  390. package/core/lib/rect-helpers.js +3 -3
  391. package/core/lib/script-helpers.d.ts +3 -3
  392. package/core/lib/script-helpers.js +3 -3
  393. package/core/lib/sentry.d.ts +2 -1
  394. package/core/lib/sentry.js +24 -18
  395. package/core/lib/stack-packs.js +3 -3
  396. package/core/lib/tappable-rects.js +3 -3
  397. package/core/lib/third-party-web.js +3 -3
  398. package/core/lib/timing-trace-saver.d.ts +3 -3
  399. package/core/lib/timing-trace-saver.js +3 -3
  400. package/core/lib/tracehouse/cpu-profile-model.js +3 -3
  401. package/core/lib/tracehouse/main-thread-tasks.js +3 -3
  402. package/core/lib/tracehouse/task-groups.d.ts +3 -3
  403. package/core/lib/tracehouse/task-groups.js +3 -3
  404. package/core/lib/tracehouse/task-summary.js +3 -3
  405. package/core/lib/tracehouse/trace-processor.js +3 -3
  406. package/core/lib/traces/metric-trace-events.js +3 -3
  407. package/core/lib/url-utils.js +3 -3
  408. package/core/runner.js +3 -3
  409. package/core/scoring.js +3 -3
  410. package/core/scripts/download-chrome.sh +2 -3
  411. package/core/user-flow.js +3 -3
  412. package/dist/report/bundle.esm.js +260 -175
  413. package/dist/report/flow.js +265 -181
  414. package/dist/report/standalone.js +261 -176
  415. package/flow-report/api.d.ts +3 -3
  416. package/flow-report/api.ts +3 -3
  417. package/flow-report/assets/standalone-flow-template.html +2 -13
  418. package/flow-report/assets/styles.css +3 -3
  419. package/flow-report/clients/standalone.d.ts +3 -3
  420. package/flow-report/clients/standalone.ts +3 -3
  421. package/flow-report/src/app.d.ts +3 -3
  422. package/flow-report/src/app.tsx +3 -3
  423. package/flow-report/src/common.d.ts +3 -3
  424. package/flow-report/src/common.tsx +3 -3
  425. package/flow-report/src/header.d.ts +3 -3
  426. package/flow-report/src/header.tsx +3 -3
  427. package/flow-report/src/help-dialog.d.ts +3 -3
  428. package/flow-report/src/help-dialog.tsx +3 -3
  429. package/flow-report/src/i18n/i18n.d.ts +3 -3
  430. package/flow-report/src/i18n/i18n.tsx +3 -3
  431. package/flow-report/src/i18n/localized-strings.d.ts +3 -3
  432. package/flow-report/src/i18n/localized-strings.js +3 -3
  433. package/flow-report/src/i18n/ui-strings.js +3 -3
  434. package/flow-report/src/icons.d.ts +3 -3
  435. package/flow-report/src/icons.tsx +3 -3
  436. package/flow-report/src/sidebar/flow.d.ts +3 -3
  437. package/flow-report/src/sidebar/flow.tsx +3 -3
  438. package/flow-report/src/sidebar/sidebar.d.ts +3 -3
  439. package/flow-report/src/sidebar/sidebar.tsx +3 -3
  440. package/flow-report/src/summary/category.d.ts +3 -3
  441. package/flow-report/src/summary/category.tsx +3 -3
  442. package/flow-report/src/summary/summary.d.ts +3 -3
  443. package/flow-report/src/summary/summary.tsx +3 -3
  444. package/flow-report/src/topbar.d.ts +3 -3
  445. package/flow-report/src/topbar.tsx +3 -3
  446. package/flow-report/src/util.d.ts +3 -3
  447. package/flow-report/src/util.ts +3 -3
  448. package/flow-report/src/wrappers/category-score.d.ts +3 -3
  449. package/flow-report/src/wrappers/category-score.tsx +3 -3
  450. package/flow-report/src/wrappers/markdown.d.ts +3 -3
  451. package/flow-report/src/wrappers/markdown.tsx +3 -3
  452. package/flow-report/src/wrappers/report.d.ts +3 -3
  453. package/flow-report/src/wrappers/report.tsx +3 -3
  454. package/flow-report/src/wrappers/styles.d.ts +3 -3
  455. package/flow-report/src/wrappers/styles.tsx +3 -3
  456. package/flow-report/types/flow-report.d.ts +3 -3
  457. package/package.json +11 -11
  458. package/readme.md +1 -1
  459. package/report/assets/standalone-template.html +2 -13
  460. package/report/assets/styles.css +231 -93
  461. package/report/assets/templates.html +24 -52
  462. package/report/clients/bundle.js +3 -3
  463. package/report/clients/standalone.js +3 -3
  464. package/report/generator/file-namer.js +3 -3
  465. package/report/generator/flow-report-assets.js +3 -3
  466. package/report/generator/report-assets.js +3 -3
  467. package/report/generator/report-generator.js +3 -3
  468. package/report/renderer/api.js +3 -3
  469. package/report/renderer/category-renderer.js +2 -13
  470. package/report/renderer/components.d.ts +2 -2
  471. package/report/renderer/components.js +35 -52
  472. package/report/renderer/crc-details-renderer.js +2 -13
  473. package/report/renderer/details-renderer.js +2 -13
  474. package/report/renderer/dom.d.ts +24 -4
  475. package/report/renderer/dom.js +32 -16
  476. package/report/renderer/drop-down-menu.d.ts +3 -3
  477. package/report/renderer/drop-down-menu.js +3 -3
  478. package/report/renderer/element-screenshot-renderer.js +3 -3
  479. package/report/renderer/explodey-gauge.d.ts +11 -0
  480. package/report/renderer/explodey-gauge.js +357 -0
  481. package/report/renderer/features-util.d.ts +3 -3
  482. package/report/renderer/features-util.js +3 -3
  483. package/report/renderer/i18n-formatter.js +3 -3
  484. package/report/renderer/logger.d.ts +2 -13
  485. package/report/renderer/logger.js +2 -13
  486. package/report/renderer/open-tab.js +2 -13
  487. package/report/renderer/performance-category-renderer.d.ts +16 -18
  488. package/report/renderer/performance-category-renderer.js +99 -115
  489. package/report/renderer/pwa-category-renderer.js +2 -13
  490. package/report/renderer/report-globals.js +3 -3
  491. package/report/renderer/report-renderer.js +2 -13
  492. package/report/renderer/report-ui-features.js +2 -13
  493. package/report/renderer/report-utils.js +3 -3
  494. package/report/renderer/snippet-renderer.js +3 -3
  495. package/report/renderer/swap-locale-feature.d.ts +3 -3
  496. package/report/renderer/swap-locale-feature.js +3 -3
  497. package/report/renderer/text-encoding.js +3 -3
  498. package/report/renderer/topbar-features.js +3 -3
  499. package/report/types/augment-dom.d.ts +3 -3
  500. package/report/types/buffer.d.ts +3 -3
  501. package/report/types/html-renderer.d.ts +3 -3
  502. package/report/types/report-renderer.d.ts +3 -3
  503. package/report/types/report-result.d.ts +3 -3
  504. package/shared/esm-utils.js +3 -3
  505. package/shared/localization/format.d.ts +21 -16
  506. package/shared/localization/format.js +76 -39
  507. package/shared/localization/i18n-module.js +2 -3
  508. package/shared/localization/locales/en-US.json +14 -14
  509. package/shared/localization/locales/en-XL.json +14 -14
  510. package/shared/localization/locales.js +3 -3
  511. package/shared/localization/swap-flow-locale.js +3 -3
  512. package/shared/localization/swap-locale.js +3 -3
  513. package/shared/root.js +3 -3
  514. package/{core/lib → shared}/statistics.js +3 -3
  515. package/shared/type-verifiers.d.ts +4 -4
  516. package/shared/type-verifiers.js +3 -3
  517. package/shared/types/shared.d.ts +3 -3
  518. package/shared/util.d.ts +22 -0
  519. package/shared/util.js +33 -13
  520. package/third-party/chromium-synchronization/inspector-issueAdded-types-test.js +4 -3
  521. package/third-party/chromium-synchronization/installability-errors-test.js +3 -3
  522. package/third-party/download-content-shell/README.md +1 -1
  523. package/types/artifacts.d.ts +4 -3
  524. package/types/audit.d.ts +8 -4
  525. package/types/config.d.ts +3 -3
  526. package/types/externs.d.ts +3 -3
  527. package/types/gatherer.d.ts +3 -3
  528. package/types/internal/cssstyle.d.ts +3 -3
  529. package/types/internal/enquirer.d.ts +3 -3
  530. package/types/internal/global.d.ts +3 -3
  531. package/types/internal/http-link-header.d.ts +3 -3
  532. package/types/internal/lookup-closest-locale.d.ts +3 -3
  533. package/types/internal/metaviewport-parser.d.ts +3 -3
  534. package/types/internal/node.d.ts +3 -3
  535. package/types/internal/parse-cache-control.d.ts +3 -3
  536. package/types/internal/pretty-json-stringify.d.ts +3 -3
  537. package/types/internal/query-selector.d.ts +3 -3
  538. package/types/internal/rollup-plugin-postprocess.d.ts +3 -3
  539. package/types/internal/rxjs.d.ts +6 -3
  540. package/types/internal/smokehouse.d.ts +3 -3
  541. package/types/internal/test.d.ts +3 -3
  542. package/types/lh.d.ts +3 -3
  543. package/types/lh.js +3 -3
  544. package/types/lhr/audit-details.d.ts +3 -3
  545. package/types/lhr/audit-result.d.ts +19 -3
  546. package/types/lhr/budget.d.ts +3 -3
  547. package/types/lhr/flow-result.d.ts +3 -3
  548. package/types/lhr/i18n.d.ts +3 -3
  549. package/types/lhr/lhr.d.ts +3 -3
  550. package/types/lhr/settings.d.ts +3 -3
  551. package/types/lhr/treemap.d.ts +3 -3
  552. package/types/protocol.d.ts +3 -3
  553. package/types/puppeteer.d.ts +3 -3
  554. package/types/user-flow.d.ts +3 -3
  555. package/types/utility-types.d.ts +3 -3
  556. package/AUTHORS +0 -9
  557. /package/{core/lib → shared}/statistics.d.ts +0 -0
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "lighthouse",
3
3
  "type": "module",
4
- "version": "11.1.0",
4
+ "version": "11.2.0",
5
5
  "description": "Automated auditing, performance metrics, and best practices for the web.",
6
6
  "main": "./core/index.js",
7
7
  "bin": {
@@ -98,6 +98,7 @@
98
98
  },
99
99
  "devDependencies": {
100
100
  "@build-tracker/cli": "^1.0.0-beta.15",
101
+ "@formatjs/icu-messageformat-parser": "^2.6.2",
101
102
  "@esbuild-kit/esm-loader": "^2.1.1",
102
103
  "@esbuild-plugins/node-modules-polyfill": "^0.1.4",
103
104
  "@jest/fake-timers": "^28.1.0",
@@ -152,7 +153,6 @@
152
153
  "gh-pages": "^2.0.1",
153
154
  "glob": "^7.1.3",
154
155
  "idb-keyval": "2.2.0",
155
- "intl-messageformat-parser": "^1.8.1",
156
156
  "jest-mock": "^27.3.0",
157
157
  "jest-snapshot": "^28.1.0",
158
158
  "jsdom": "^12.2.0",
@@ -166,7 +166,7 @@
166
166
  "pako": "^2.0.3",
167
167
  "preact": "^10.7.2",
168
168
  "pretty-json-stringify": "^0.0.2",
169
- "puppeteer": "^21.1.1",
169
+ "puppeteer": "^21.3.6",
170
170
  "resolve": "^1.22.1",
171
171
  "rollup": "^2.52.7",
172
172
  "rollup-plugin-polyfill-node": "^0.12.0",
@@ -181,14 +181,14 @@
181
181
  },
182
182
  "dependencies": {
183
183
  "@sentry/node": "^6.17.4",
184
- "axe-core": "^4.8.0",
185
- "chrome-launcher": "^1.0.0",
184
+ "axe-core": "^4.8.1",
185
+ "chrome-launcher": "^1.1.0",
186
186
  "configstore": "^5.0.1",
187
187
  "csp_evaluator": "1.1.1",
188
- "devtools-protocol": "0.0.1155343",
188
+ "devtools-protocol": "0.0.1200039",
189
189
  "enquirer": "^2.3.6",
190
190
  "http-link-header": "^1.1.1",
191
- "intl-messageformat": "^4.4.0",
191
+ "intl-messageformat": "^10.5.3",
192
192
  "jpeg-js": "^0.4.4",
193
193
  "js-library-detector": "^6.7.0",
194
194
  "lighthouse-logger": "^2.0.1",
@@ -199,7 +199,7 @@
199
199
  "open": "^8.4.0",
200
200
  "parse-cache-control": "1.0.1",
201
201
  "ps-list": "^8.0.0",
202
- "puppeteer-core": "^21.1.1",
202
+ "puppeteer-core": "^21.3.6",
203
203
  "robots-parser": "^3.0.1",
204
204
  "semver": "^5.3.0",
205
205
  "speedline-core": "^1.4.3",
@@ -209,8 +209,8 @@
209
209
  "yargs-parser": "^21.0.0"
210
210
  },
211
211
  "resolutions": {
212
- "puppeteer/**/devtools-protocol": "0.0.1155343",
213
- "puppeteer-core/**/devtools-protocol": "0.0.1155343"
212
+ "puppeteer/**/devtools-protocol": "0.0.1200039",
213
+ "puppeteer-core/**/devtools-protocol": "0.0.1200039"
214
214
  },
215
215
  "repository": "GoogleChrome/lighthouse",
216
216
  "keywords": [
@@ -218,7 +218,7 @@
218
218
  "chrome",
219
219
  "devtools"
220
220
  ],
221
- "author": "The Lighthouse Authors",
221
+ "author": "Google LLC",
222
222
  "license": "Apache-2.0",
223
223
  "bugs": {
224
224
  "url": "https://github.com/GoogleChrome/lighthouse/issues"
package/readme.md CHANGED
@@ -338,7 +338,7 @@ This section details services that have integrated Lighthouse data. If you're wo
338
338
 
339
339
  * **[Treo](https://treo.sh)** - Treo is Lighthouse as a Service. It provides regression testing, geographical regions, custom networks, and integrations with GitHub & Slack. Treo is a paid product with plans for solo-developers and teams.
340
340
 
341
- * **[PageVitals](https://pagevitals.com)** - PageVitals combines Lighthouse, CrUX and real-user monitoring data to monitor the performance of websites. See how your website performs over time and get alerted if it gets too slow. Drill down and find the real cause of any performance issue. PageVitals is a paid product with a free 14-day trial.
341
+ * **[PageVitals](https://pagevitals.com)** - PageVitals combines Lighthouse, CrUX and field testing to monitor the performance of websites. See how your website performs over time and get alerted if it gets too slow. Drill down and find the real cause of any performance issue. PageVitals is a paid product with a free 14-day trial.
342
342
 
343
343
  * **[Alertdesk](https://www.alertdesk.com/)** - Alertdesk is based on Lighthouse and helps you to keep track of your site’s quality & performance. Run daily quality & performance tests from both Mobile and Desktop and dive into the powerful & intuitive reports. You can also monitor your uptime (every minute - 24/7) & domain health. Alertdesk is a paid product with a free 14-day trial.
344
344
 
@@ -1,18 +1,7 @@
1
1
  <!--
2
2
  @license
3
- Copyright 2018 The Lighthouse Authors. All Rights Reserved.
4
-
5
- Licensed under the Apache License, Version 2.0 (the "License");
6
- you may not use this file except in compliance with the License.
7
- You may obtain a copy of the License at
8
-
9
- http://www.apache.org/licenses/LICENSE-2.0
10
-
11
- Unless required by applicable law or agreed to in writing, software
12
- distributed under the License is distributed on an "AS-IS" BASIS,
13
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- See the License for the specific language governing permissions and
15
- limitations under the License.
3
+ Copyright 2018 Google LLC
4
+ SPDX-License-Identifier: Apache-2.0
16
5
  -->
17
6
  <!doctype html>
18
7
  <html lang="en">
@@ -1,18 +1,7 @@
1
1
  /**
2
2
  * @license
3
- * Copyright 2017 The Lighthouse Authors. All Rights Reserved.
4
- *
5
- * Licensed under the Apache License, Version 2.0 (the "License");
6
- * you may not use this file except in compliance with the License.
7
- * You may obtain a copy of the License at
8
- *
9
- * http://www.apache.org/licenses/LICENSE-2.0
10
- *
11
- * Unless required by applicable law or agreed to in writing, software
12
- * distributed under the License is distributed on an "AS-IS" BASIS,
13
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- * See the License for the specific language governing permissions and
15
- * limitations under the License.
3
+ * Copyright 2017 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
16
5
  */
17
6
 
18
7
  /*
@@ -142,7 +131,6 @@
142
131
  --section-padding-vertical: calc(var(--default-padding) * 6);
143
132
  --snippet-background-color: var(--color-gray-50);
144
133
  --snippet-color: #0938C2;
145
- --sparkline-height: 5px;
146
134
  --stackpack-padding-horizontal: 10px;
147
135
  --sticky-header-background-color: var(--report-background-color);
148
136
  --sticky-header-buffer: calc(var(--topbar-height) + var(--sticky-header-height));
@@ -249,11 +237,6 @@
249
237
  --topbar-height: 28px;
250
238
  --topbar-logo-size: 20px;
251
239
  }
252
-
253
- /* Not enough space to adequately show the relative savings bars. */
254
- .lh-sparkline {
255
- display: none;
256
- }
257
240
  }
258
241
 
259
242
  .lh-vars.lh-devtools {
@@ -622,7 +605,6 @@
622
605
 
623
606
 
624
607
  .lh-audit__display-text,
625
- .lh-load-opportunity__sparkline,
626
608
  .lh-chevron-container {
627
609
  margin: 0 var(--audit-margin-horizontal);
628
610
  }
@@ -639,14 +621,11 @@
639
621
  font-size: var(--report-monospace-font-size);
640
622
  }
641
623
 
642
- /* Prepend display text with em dash separator. But not in Opportunities. */
624
+ /* Prepend display text with em dash separator. */
643
625
  .lh-audit__display-text:not(:empty):before {
644
626
  content: '—';
645
627
  margin-right: var(--audit-margin-horizontal);
646
628
  }
647
- .lh-audit-group.lh-audit-group--load-opportunities .lh-audit__display-text:not(:empty):before {
648
- display: none;
649
- }
650
629
 
651
630
  /* Expandable Details (Audit Groups, Audits) */
652
631
  .lh-audit__header {
@@ -655,10 +634,6 @@
655
634
  padding: var(--default-padding);
656
635
  }
657
636
 
658
- .lh-audit--load-opportunity .lh-audit__header {
659
- display: block;
660
- }
661
-
662
637
 
663
638
  .lh-metricfilter {
664
639
  display: grid;
@@ -886,68 +861,6 @@
886
861
  color: var(--color-fail-secondary);
887
862
  }
888
863
 
889
- /* Perf load opportunity */
890
-
891
- .lh-load-opportunity__cols {
892
- display: flex;
893
- align-items: flex-start;
894
- }
895
-
896
- .lh-load-opportunity__header .lh-load-opportunity__col {
897
- color: var(--color-gray-600);
898
- display: unset;
899
- line-height: calc(2.3 * var(--report-font-size));
900
- }
901
-
902
- .lh-load-opportunity__col {
903
- display: flex;
904
- }
905
-
906
- .lh-load-opportunity__col--one {
907
- flex: 5;
908
- align-items: center;
909
- margin-right: 2px;
910
- }
911
- .lh-load-opportunity__col--two {
912
- flex: 4;
913
- text-align: right;
914
- }
915
-
916
- .lh-audit--load-opportunity .lh-audit__display-text {
917
- text-align: right;
918
- flex: 0 0 7.5ch;
919
- }
920
-
921
-
922
- /* Sparkline */
923
-
924
- .lh-load-opportunity__sparkline {
925
- flex: 1;
926
- margin-top: calc((var(--report-line-height) - var(--sparkline-height)) / 2);
927
- }
928
-
929
- .lh-sparkline {
930
- height: var(--sparkline-height);
931
- width: 100%;
932
- }
933
-
934
- .lh-sparkline__bar {
935
- height: 100%;
936
- float: right;
937
- }
938
-
939
- .lh-audit--pass .lh-sparkline__bar {
940
- background: var(--color-pass);
941
- }
942
-
943
- .lh-audit--average .lh-sparkline__bar {
944
- background: var(--color-average);
945
- }
946
-
947
- .lh-audit--fail .lh-sparkline__bar {
948
- background: var(--color-fail);
949
- }
950
-
951
864
  /* Filmstrip */
952
865
 
953
866
  .lh-filmstrip-container {
@@ -1089,7 +1002,6 @@
1089
1002
 
1090
1003
  .lh-details,
1091
1004
  .lh-category-header__description,
1092
- .lh-load-opportunity__header,
1093
1005
  .lh-audit-group__footer {
1094
1006
  font-size: var(--report-font-size-secondary);
1095
1007
  line-height: var(--report-line-height-secondary);
@@ -1346,12 +1258,12 @@
1346
1258
  .lh-gauge__percentage {
1347
1259
  width: 100%;
1348
1260
  height: var(--gauge-circle-size);
1261
+ line-height: var(--gauge-circle-size);
1349
1262
  position: absolute;
1350
1263
  font-family: var(--report-font-family-monospace);
1351
1264
  font-size: calc(var(--gauge-circle-size) * 0.34 + 1.3px);
1352
- line-height: 0;
1353
1265
  text-align: center;
1354
- top: calc(var(--score-container-padding) + var(--gauge-circle-size) / 2);
1266
+ top: var(--score-container-padding);
1355
1267
  }
1356
1268
 
1357
1269
  .lh-category .lh-gauge__percentage {
@@ -1975,5 +1887,231 @@ details[open] .lh-clump-toggletext--hide { display: block;}
1975
1887
  }
1976
1888
  }
1977
1889
 
1890
+ /* Explodey gauge */
1891
+
1892
+ .lh-exp-gauge-component {
1893
+ margin-bottom: 10px;
1894
+ }
1895
+
1896
+ .lh-exp-gauge-component circle {
1897
+ stroke: currentcolor;
1898
+ r: var(--radius);
1899
+ }
1900
+
1901
+ .lh-exp-gauge-component text {
1902
+ font-size: calc(var(--radius) * 0.2);
1903
+ }
1904
+
1905
+ .lh-exp-gauge-component .lh-exp-gauge {
1906
+ margin: 0 auto;
1907
+ width: 225px;
1908
+ stroke-width: var(--stroke-width);
1909
+ stroke-linecap: round;
1910
+
1911
+ /* for better rendering perf */
1912
+ contain: strict;
1913
+ height: 225px;
1914
+ will-change: transform;
1915
+ }
1916
+ .lh-exp-gauge-component .lh-exp-gauge--faded {
1917
+ opacity: 0.1;
1918
+ }
1919
+ .lh-exp-gauge-component .lh-exp-gauge__wrapper {
1920
+ font-family: var(--report-font-family-monospace);
1921
+ text-align: center;
1922
+ text-decoration: none;
1923
+ transition: .3s;
1924
+ }
1925
+ .lh-exp-gauge-component .lh-exp-gauge__wrapper--pass {
1926
+ color: var(--color-pass);
1927
+ }
1928
+ .lh-exp-gauge-component .lh-exp-gauge__wrapper--average {
1929
+ color: var(--color-average);
1930
+ }
1931
+ .lh-exp-gauge-component .lh-exp-gauge__wrapper--fail {
1932
+ color: var(--color-fail);
1933
+ }
1934
+ .lh-exp-gauge-component .state--expanded {
1935
+ transition: color .3s;
1936
+ }
1937
+ .lh-exp-gauge-component .state--highlight {
1938
+ color: var(--color-highlight);
1939
+ }
1940
+ .lh-exp-gauge-component .lh-exp-gauge__svg-wrapper {
1941
+ display: flex;
1942
+ flex-direction: column-reverse;
1943
+ }
1944
+
1945
+ .lh-exp-gauge-component .lh-exp-gauge__label {
1946
+ fill: var(--report-text-color);
1947
+ font-family: var(--report-font-family);
1948
+ font-size: 12px;
1949
+ }
1950
+
1951
+ .lh-exp-gauge-component .lh-exp-gauge__cutout {
1952
+ opacity: .999;
1953
+ transition: opacity .3s;
1954
+ }
1955
+ .lh-exp-gauge-component .state--highlight .lh-exp-gauge__cutout {
1956
+ opacity: 0;
1957
+ }
1958
+
1959
+ .lh-exp-gauge-component .lh-exp-gauge__inner {
1960
+ color: inherit;
1961
+ }
1962
+ .lh-exp-gauge-component .lh-exp-gauge__base {
1963
+ fill: currentcolor;
1964
+ }
1965
+
1966
+
1967
+ .lh-exp-gauge-component .lh-exp-gauge__arc {
1968
+ fill: none;
1969
+ transition: opacity .3s;
1970
+ }
1971
+ .lh-exp-gauge-component .lh-exp-gauge__arc--metric {
1972
+ color: var(--metric-color);
1973
+ stroke-dashoffset: var(--metric-offset);
1974
+ opacity: 0.3;
1975
+ }
1976
+ .lh-exp-gauge-component .lh-exp-gauge-hovertarget {
1977
+ color: currentcolor;
1978
+ opacity: 0.001;
1979
+ stroke-linecap: butt;
1980
+ stroke-width: 24;
1981
+ /* hack. move the hover target out of the center. ideally i tweak the r instead but that rquires considerably more math. */
1982
+ transform: scale(1.15);
1983
+ }
1984
+ .lh-exp-gauge-component .lh-exp-gauge__arc--metric.lh-exp-gauge--miniarc {
1985
+ opacity: 0;
1986
+ stroke-dasharray: 0 calc(var(--circle-meas) * var(--radius));
1987
+ transition: 0s .005s;
1988
+ }
1989
+ .lh-exp-gauge-component .state--expanded .lh-exp-gauge__arc--metric.lh-exp-gauge--miniarc {
1990
+ opacity: .999;
1991
+ stroke-dasharray: var(--metric-array);
1992
+ transition: 0.3s; /* calc(.005s + var(--i)*.05s); entrace animation */
1993
+ }
1994
+ .lh-exp-gauge-component .state--expanded .lh-exp-gauge__inner .lh-exp-gauge__arc {
1995
+ opacity: 0;
1996
+ }
1997
+
1998
+
1999
+ .lh-exp-gauge-component .lh-exp-gauge__percentage {
2000
+ text-anchor: middle;
2001
+ dominant-baseline: middle;
2002
+ opacity: .999;
2003
+ font-size: calc(var(--radius) * 0.625);
2004
+ transition: opacity .3s ease-in;
2005
+ }
2006
+ .lh-exp-gauge-component .state--highlight .lh-exp-gauge__percentage {
2007
+ opacity: 0;
2008
+ }
2009
+
2010
+ .lh-exp-gauge-component .lh-exp-gauge__wrapper--fail .lh-exp-gauge__percentage {
2011
+ fill: var(--color-fail);
2012
+ }
2013
+ .lh-exp-gauge-component .lh-exp-gauge__wrapper--average .lh-exp-gauge__percentage {
2014
+ fill: var(--color-average);
2015
+ }
2016
+ .lh-exp-gauge-component .lh-exp-gauge__wrapper--pass .lh-exp-gauge__percentage {
2017
+ fill: var(--color-pass);
2018
+ }
2019
+
2020
+ .lh-exp-gauge-component .lh-cover {
2021
+ fill: none;
2022
+ opacity: .001;
2023
+ pointer-events: none;
2024
+ }
2025
+ .lh-exp-gauge-component .state--expanded .lh-cover {
2026
+ pointer-events: auto;
2027
+ }
2028
+
2029
+ .lh-exp-gauge-component .metric {
2030
+ transform: scale(var(--scale-initial));
2031
+ opacity: 0;
2032
+ transition: transform .1s .2s ease-out, opacity .3s ease-out;
2033
+ pointer-events: none;
2034
+ }
2035
+ .lh-exp-gauge-component .metric text {
2036
+ pointer-events: none;
2037
+ }
2038
+ .lh-exp-gauge-component .metric__value {
2039
+ fill: currentcolor;
2040
+ opacity: 0;
2041
+ transition: opacity 0.2s;
2042
+ }
2043
+ .lh-exp-gauge-component .state--expanded .metric {
2044
+ transform: scale(1);
2045
+ opacity: .999;
2046
+ transition: transform .3s ease-out, opacity .3s ease-in, stroke-width .1s ease-out;
2047
+ transition-delay: calc(var(--i)*.05s);
2048
+ pointer-events: auto;
2049
+ }
2050
+ .lh-exp-gauge-component .state--highlight .metric {
2051
+ opacity: .3;
2052
+ }
2053
+ .lh-exp-gauge-component .state--highlight .metric--highlight {
2054
+ opacity: .999;
2055
+ stroke-width: calc(1.5*var(--stroke-width));
2056
+ }
2057
+ .lh-exp-gauge-component .state--highlight .metric--highlight .metric__value {
2058
+ opacity: 0.999;
2059
+ }
2060
+
2061
+
2062
+ /*
2063
+ the initial first load peek
2064
+ */
2065
+ .lh-exp-gauge-component .lh-exp-gauge__bg { /* needed for the use zindex stacking w/ transparency */
2066
+ fill: var(--report-background-color);
2067
+ stroke: var(--report-background-color);
2068
+ }
2069
+ .lh-exp-gauge-component .state--peek .metric {
2070
+ transition-delay: 0ms;
2071
+ animation: peek var(--peek-dur) cubic-bezier(0.46, 0.03, 0.52, 0.96);
2072
+ animation-fill-mode: forwards;
2073
+ }
2074
+ .lh-exp-gauge-component .state--peek .lh-exp-gauge__inner .lh-exp-gauge__arc {
2075
+ opacity: 1;
2076
+ }
2077
+ .lh-exp-gauge-component .state--peek .lh-exp-gauge__arc.lh-exp-gauge--faded {
2078
+ opacity: 0.3; /* just a tad stronger cuz its fighting with a big solid arg */
2079
+ }
2080
+ /* do i need to set expanded and override this? */
2081
+ .lh-exp-gauge-component .state--peek .lh-exp-gauge__arc--metric.lh-exp-gauge--miniarc {
2082
+ transition: opacity 0.3s;
2083
+ }
2084
+ .lh-exp-gauge-component .state--peek {
2085
+ color: unset;
2086
+ }
2087
+ .lh-exp-gauge-component .state--peek .metric__label {
2088
+ display: none;
2089
+ }
2090
+
2091
+ .lh-exp-gauge-component .metric__label {
2092
+ fill: var(--report-text-color);
2093
+ }
2094
+
2095
+ @keyframes peek {
2096
+ /* biggest it should go is 0.92. smallest is 0.8 */
2097
+ 0% {
2098
+ transform: scale(0.8);
2099
+ opacity: 0.8;
2100
+ }
2101
+
2102
+ 50% {
2103
+ transform: scale(0.92);
2104
+ opacity: 1;
2105
+ }
2106
+
2107
+ 100% {
2108
+ transform: scale(0.8);
2109
+ opacity: 0.8;
2110
+ }
2111
+ }
2112
+
2113
+ .lh-exp-gauge-component .wrapper {
2114
+ width: 620px;
2115
+ }
1978
2116
 
1979
2117
  /*# sourceURL=report-styles.css */
@@ -1,18 +1,7 @@
1
1
  <!--
2
2
  @license
3
- Copyright 2018 The Lighthouse Authors. All Rights Reserved.
4
-
5
- Licensed under the Apache License, Version 2.0 (the "License");
6
- you may not use this file except in compliance with the License.
7
- You may obtain a copy of the License at
8
-
9
- http://www.apache.org/licenses/LICENSE-2.0
10
-
11
- Unless required by applicable law or agreed to in writing, software
12
- distributed under the License is distributed on an "AS-IS" BASIS,
13
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- See the License for the specific language governing permissions and
15
- limitations under the License.
3
+ Copyright 2018 Google LLC
4
+ SPDX-License-Identifier: Apache-2.0
16
5
  -->
17
6
 
18
7
  <!-- Lighthouse run warnings -->
@@ -105,41 +94,6 @@ limitations under the License.
105
94
  </div>
106
95
  </template>
107
96
 
108
- <!-- Lighthouse perf opportunity -->
109
- <template id="opportunity">
110
- <div class="lh-audit lh-audit--load-opportunity">
111
- <details class="lh-expandable-details">
112
- <summary>
113
- <div class="lh-audit__header">
114
- <div class="lh-load-opportunity__cols">
115
- <div class="lh-load-opportunity__col lh-load-opportunity__col--one">
116
- <span class="lh-audit__score-icon"></span>
117
- <div class="lh-audit__title"></div>
118
- </div>
119
- <div class="lh-load-opportunity__col lh-load-opportunity__col--two">
120
- <div class="lh-load-opportunity__sparkline">
121
- <div class="lh-sparkline"><div class="lh-sparkline__bar"></div></div>
122
- </div>
123
- <div class="lh-audit__display-text"></div>
124
- <div class="lh-chevron-container"></div>
125
- </div>
126
- </div>
127
- </div>
128
- </summary>
129
- <div class="lh-audit__description"></div>
130
- <div class="lh-audit__stackpacks"></div>
131
- </details>
132
- </div>
133
- </template>
134
-
135
- <!-- Lighthouse perf opportunity header -->
136
- <template id="opportunityHeader">
137
- <div class="lh-load-opportunity__header lh-load-opportunity__cols">
138
- <div class="lh-load-opportunity__col lh-load-opportunity__col--one"></div>
139
- <div class="lh-load-opportunity__col lh-load-opportunity__col--two"></div>
140
- </div>
141
- </template>
142
-
143
97
  <!-- Lighthouse score container -->
144
98
  <template id="scoresWrapper">
145
99
  <style>
@@ -205,10 +159,6 @@ limitations under the License.
205
159
  left: 0px;
206
160
  right: 0px;
207
161
  }
208
-
209
- .lh-gauge__wrapper:first-of-type {
210
- contain: none;
211
- }
212
162
  </style>
213
163
  <div class="lh-scores-wrapper">
214
164
  <div class="lh-scores-container">
@@ -530,6 +480,28 @@ limitations under the License.
530
480
  </a>
531
481
  </template>
532
482
 
483
+ <!-- Lighthouse score gauge - explodey version -->
484
+ <template id="explodeyGauge">
485
+ <div class="lh-exp-gauge-component">
486
+ <div class="lh-exp-gauge__wrapper" target="_blank">
487
+ <div class="lh-exp-gauge__svg-wrapper">
488
+ <svg class="lh-exp-gauge">
489
+ <g class="lh-exp-gauge__inner">
490
+ <circle class="lh-exp-gauge__bg" />
491
+ <circle class="lh-exp-gauge__base lh-exp-gauge--faded" />
492
+ <circle class="lh-exp-gauge__arc" />
493
+ <text class="lh-exp-gauge__percentage"></text>
494
+ </g>
495
+ <g class="lh-exp-gauge__outer">
496
+ <circle class="lh-cover" />
497
+ </g>
498
+ <text class="lh-exp-gauge__label" text-anchor="middle" x="0" y="60"></text>
499
+ </svg>
500
+ </div>
501
+ </div>
502
+ </div>
503
+ </template>
504
+
533
505
  <!-- Lighthouse category fraction -->
534
506
  <template id="fraction">
535
507
  <a class="lh-fraction__wrapper">
@@ -1,7 +1,7 @@
1
1
  /**
2
- * @license Copyright 2021 The Lighthouse Authors. All Rights Reserved.
3
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
4
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
2
+ * @license
3
+ * Copyright 2021 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
7
  // This file is used to generate a bundle that can be imported
@@ -1,7 +1,7 @@
1
1
  /**
2
- * @license Copyright 2021 The Lighthouse Authors. All Rights Reserved.
3
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
4
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
2
+ * @license
3
+ * Copyright 2021 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
7
  /**
@@ -1,7 +1,7 @@
1
1
  /**
2
- * @license Copyright 2017 The Lighthouse Authors. All Rights Reserved.
3
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
4
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
2
+ * @license
3
+ * Copyright 2017 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  'use strict';
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
- * @license Copyright 2021 The Lighthouse Authors. All Rights Reserved.
3
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
4
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
2
+ * @license
3
+ * Copyright 2021 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  'use strict';
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
- * @license Copyright 2018 The Lighthouse Authors. All Rights Reserved.
3
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
4
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
2
+ * @license
3
+ * Copyright 2018 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  'use strict';
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
- * @license Copyright 2017 The Lighthouse Authors. All Rights Reserved.
3
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
4
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
2
+ * @license
3
+ * Copyright 2017 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  'use strict';
7
7