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/CONTRIBUTING.md CHANGED
@@ -25,8 +25,6 @@ If you have a contribution for our [documentation](https://developer.chrome.com/
25
25
  1. Ensure that your code adheres to the existing style in the sample to which you are contributing.
26
26
  1. Submit a pull request.
27
27
 
28
- If you've submitted a number of significant patches, feel free to add yourself in a PR to the project's `AUTHORS` [file](https://github.com/GoogleChrome/lighthouse/blob/main/AUTHORS) in the root of the repo to be recognized for your contributions!
29
-
30
28
  ## Audit PRs
31
29
 
32
30
  If proposing a new audit for Lighthouse, see the [new audit proposal guide](./docs/new-audits.md) and open an issue for discussion before starting.
@@ -96,6 +94,7 @@ If there is an error in one of the proto tests (`proto-test.js` or `psi-test.js`
96
94
  ## Adding Images to a Readme
97
95
 
98
96
  If you are adding an image to a readme use the absolute path to the image for the specific commit hash where the image was introduced. This requires multiple commits.
97
+
99
98
  1. Make the commit to introduce the image.
100
99
  1. Get the [absolute path](https://help.github.com/articles/getting-permanent-links-to-files/) to the image with the commit hash e.g. `https://raw.githubusercontent.com/GoogleChrome/lighthouse/e7997b3db01de3553d8cb208a40f3d4fd350195c/assets/example_dev_tools.png`
101
100
  1. Add to readme as an absolute reference to that image.
@@ -130,8 +129,7 @@ accept your pull requests.
130
129
 
131
130
  We track our errors in the wild with Sentry. In general, do not worry about wrapping your audits or gatherers in try/catch blocks and reporting every error that could possibly occur; `core/runner.js` and `core/gather/*-runner.js` already catch and report any errors that occur while running a gatherer or audit, including errors fatal to the entire run. However, there are some situations when you might want to explicitly handle an error and report it to Sentry or wrap it to avoid reporting. Generally, you can interact with Sentry simply by requiring the `core/lib/sentry.js` file and call its methods. The module exports a delegate that will correctly handle the error reporting based on the user's opt-in preference and will simply no-op if they haven't so you don't need to check.
132
131
 
133
-
134
- #### If you have an expected error that is recoverable but want to track how frequently it happens, *use Sentry.captureException*.
132
+ #### If you have an expected error that is recoverable but want to track how frequently it happens, *use Sentry.captureException*
135
133
 
136
134
  ```js
137
135
  const Sentry = require('./core/lib/sentry');
@@ -147,7 +145,7 @@ try {
147
145
  }
148
146
  ```
149
147
 
150
- #### If you need to track a code path that doesn't necessarily mean an error occurred, *use Sentry.captureMessage*.
148
+ #### If you need to track a code path that doesn't necessarily mean an error occurred, *use Sentry.captureMessage*
151
149
 
152
150
  NOTE: If the message you're capturing is dynamic/based on user data or you need a stack trace, then create a fake error instead and use `Sentry.captureException` so that the instances will be grouped together in Sentry.
153
151
 
package/cli/bin.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
- * @license Copyright 2016 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 2016 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
7
  /**
@@ -124,6 +124,7 @@ async function begin() {
124
124
  await Sentry.init({
125
125
  url: urlUnderTest,
126
126
  flags: cliFlags,
127
+ config,
127
128
  environmentData: {
128
129
  serverName: 'redacted', // prevent sentry from using hostname
129
130
  environment: isDev() ? 'development' : 'production',
package/cli/cli-flags.js CHANGED
@@ -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
 
7
7
  /* eslint-disable max-len */
@@ -1,7 +1,7 @@
1
1
  /**
2
- * @license Copyright 2016 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 2016 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
7
  export {listAudits} from './list-audits.js';
@@ -1,7 +1,7 @@
1
1
  /**
2
- * @license Copyright 2016 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 2016 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
7
  import {getAuditList} from '../../core/index.js';
@@ -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
  import {locales} from '../../shared/localization/locales.js';
@@ -1,7 +1,7 @@
1
1
  /**
2
- * @license Copyright 2016 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 2016 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
7
  import {traceCategories} from '../../core/index.js';
package/cli/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
- * @license Copyright 2017 The Lighthouse Authors. All Rights Reserved.
4
- * 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
5
- * 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.
3
+ * @license
4
+ * Copyright 2017 Google LLC
5
+ * SPDX-License-Identifier: Apache-2.0
6
6
  */
7
7
 
8
8
  import {begin} from './bin.js';
package/cli/printer.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
- * @license Copyright 2016 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 2016 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
7
  import fs from 'fs';
package/cli/run.js CHANGED
@@ -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
 
7
7
  /* eslint-disable no-console */
@@ -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
 
7
7
  import Configstore from 'configstore';
@@ -20,6 +20,10 @@ exports[`getAssertionReport works (multiple failing) 1`] = `
20
20
  \\"numericValue\\": 0.13570762803819444,
21
21
  \\"numericUnit\\": \\"unitless\\",
22
22
  \\"displayValue\\": \\"0.136\\",
23
+ \\"scoringOptions\\": {
24
+ \\"p10\\": 0.1,
25
+ \\"median\\": 0.25
26
+ },
23
27
  \\"details\\": {
24
28
  \\"type\\": \\"debugdata\\",
25
29
  \\"items\\": [
@@ -46,6 +50,10 @@ exports[`getAssertionReport works (trivial failing) 1`] = `
46
50
  \\"numericValue\\": 0.13570762803819444,
47
51
  \\"numericUnit\\": \\"unitless\\",
48
52
  \\"displayValue\\": \\"0.136\\",
53
+ \\"scoringOptions\\": {
54
+ \\"p10\\": 0.1,
55
+ \\"median\\": 0.25
56
+ },
49
57
  \\"details\\": {
50
58
  \\"type\\": \\"debugdata\\",
51
59
  \\"items\\": [
@@ -1,8 +1,8 @@
1
1
  export default exclusions;
2
2
  /**
3
- * @license Copyright 2022 The Lighthouse Authors. All Rights Reserved.
4
- * 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
5
- * 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.
3
+ * @license
4
+ * Copyright 2022 Google LLC
5
+ * SPDX-License-Identifier: Apache-2.0
6
6
  */
7
7
  /**
8
8
  * List of smoke tests excluded per runner. eg: 'cli': ['a11y', 'dbw']
@@ -1,7 +1,7 @@
1
1
  /**
2
- * @license Copyright 2022 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 2022 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
7
  /**
@@ -1,7 +1,7 @@
1
1
  /**
2
- * @license Copyright 2019 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 2019 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
7
  import a11y from './test-definitions/a11y.js';
@@ -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
  * COMPAT: update from the old TestDefn format (array of `expectations` per
@@ -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 2020 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 2020 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
7
  /**
@@ -1,7 +1,7 @@
1
1
  /**
2
- * @license Copyright 2019 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 2019 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
7
  /**
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
- * @license Copyright 2019 The Lighthouse Authors. All Rights Reserved.
4
- * 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
5
- * 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.
3
+ * @license
4
+ * Copyright 2019 Google LLC
5
+ * SPDX-License-Identifier: Apache-2.0
6
6
  */
7
7
 
8
8
  /**
@@ -1,7 +1,7 @@
1
1
  /**
2
- * @license Copyright 2019 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 2019 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  /**
7
7
  * An extension of Error that includes any stdout or stderr from a child
@@ -1,7 +1,7 @@
1
1
  /**
2
- * @license Copyright 2019 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 2019 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
7
  /**
@@ -1,7 +1,7 @@
1
1
  /**
2
- * @license Copyright 2019 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 2019 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  /**
7
7
  * A class that maintains a concurrency pool to coordinate many jobs that should
@@ -1,7 +1,7 @@
1
1
  /**
2
- * @license Copyright 2019 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 2019 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
7
  /**
@@ -1,7 +1,7 @@
1
1
  /**
2
- * @license Copyright 2019 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 2019 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  /**
7
7
  * A simple buffered log to use in place of `console`.
@@ -1,7 +1,7 @@
1
1
  /**
2
- * @license Copyright 2019 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 2019 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
7
  /**
@@ -1,7 +1,7 @@
1
1
  /**
2
- * @license Copyright 2019 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 2019 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
7
  /**
@@ -1,7 +1,7 @@
1
1
  /**
2
- * @license Copyright 2019 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 2019 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
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
 
7
7
  /**
@@ -1,7 +1,7 @@
1
1
  /**
2
- * @license Copyright 2022 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 2022 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
7
  /* eslint-disable no-control-regex */
@@ -1,7 +1,7 @@
1
1
  /**
2
- * @license Copyright 2019 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 2019 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
7
  /**
@@ -1,4 +1,3 @@
1
- export type ChildProcessError = import('./lib/child-process-error.js').ChildProcessError;
2
1
  export type Run = {
3
2
  networkRequests: string[] | undefined;
4
3
  lhr: LH.Result;
@@ -1,7 +1,7 @@
1
1
  /**
2
- * @license Copyright 2016 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 2016 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
7
  /**
@@ -12,8 +12,6 @@
12
12
 
13
13
  /* eslint-disable no-console */
14
14
 
15
- /** @typedef {import('./lib/child-process-error.js').ChildProcessError} ChildProcessError */
16
-
17
15
  /**
18
16
  * @typedef Run
19
17
  * @property {string[] | undefined} networkRequests
@@ -39,6 +37,7 @@ import {runLighthouse as cliLighthouseRunner} from './lighthouse-runners/cli.js'
39
37
  import {getAssertionReport} from './report-assert.js';
40
38
  import {LocalConsole} from './lib/local-console.js';
41
39
  import {ConcurrentMapper} from './lib/concurrent-mapper.js';
40
+ import {ChildProcessError} from './lib/child-process-error.js';
42
41
 
43
42
  // The number of concurrent (`!runSerially`) tests to run if `jobs` isn't set.
44
43
  const DEFAULT_CONCURRENT_RUNS = 5;
@@ -239,11 +238,18 @@ async function runSmokeTest(smokeTestDefn, testOptions) {
239
238
  * @param {ChildProcessError|Error} err
240
239
  */
241
240
  function logChildProcessError(localConsole, err) {
242
- if ('stdout' in err && 'stderr' in err) {
241
+ if (err instanceof ChildProcessError) {
243
242
  localConsole.adoptStdStrings(err);
244
243
  }
245
244
 
246
245
  localConsole.log(log.redify(err.stack || err.message));
246
+ if (err.cause) {
247
+ if (err.cause instanceof Error) {
248
+ localConsole.log(log.redify(`[cause] ${err.cause.stack || err.cause.message}`));
249
+ } else {
250
+ localConsole.log(log.redify(`[cause] ${err.cause}`));
251
+ }
252
+ }
247
253
  }
248
254
 
249
255
  /**
@@ -1,7 +1,7 @@
1
1
  /**
2
- * @license Copyright 2022 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 2022 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
7
  import {chromiumVersionCheck, compareVersions} from './version-check.js';
@@ -1,7 +1,7 @@
1
1
  /**
2
- * @license Copyright 2022 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 2022 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
 
7
7
  module.exports = {
@@ -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
 
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
 
7
7
  /**
@@ -1,7 +1,7 @@
1
1
  /**
2
- * @license Copyright 2023 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 2023 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
7
  /**
@@ -1,7 +1,7 @@
1
1
  /**
2
- * @license Copyright 2020 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 2020 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
7
  /**
@@ -1,7 +1,7 @@
1
1
  /**
2
- * @license Copyright 2023 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 2023 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
7
  /**
@@ -1,7 +1,7 @@
1
1
  /**
2
- * @license Copyright 2019 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 2019 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
7
  /**