Skip to content

v7.0.0

Compare
Choose a tag to compare
@brendankenny brendankenny released this 18 Dec 00:12
96eda60

7.0.0 (2020-12-17)

Full Changelog

Lighthouse 7.0 includes a number of programmatic breaking changes and new audits in the Accessibility and PWA categories. There were some improvements in the accuracy of metric calculations, but it is not expected that Performance scores will change significantly for almost all sites. There may be larger changes in Accessibility and PWA scores due to the new audits.

This release is expected to ship in the DevTools of Chrome 89. It went live on PageSpeed Insights on Feb 19, 2021.

Notable changes

  • A full-page screenshot is taken and used to improve the experience of viewing DOM element details. Now a thumbnail will be shown and clicking reveals a lightbox showing where in the page the DOM node lived. This screenshot increases the size of the Lighthouse JSON by ~33%. (#11769, #11768, #11829, #11846, #11852)
  • The PWA Category changed fairly significantly.
    • The Installable group is powered entirely by the capability checks that enable Chrome's installable criteria. These are the same signals seen in the Manifest pane in Chrome DevTools. As such, the "Registers a service worker…" audit moves to the PWA Optimized group, and the "Uses HTTPS" audit is now included as part of the key "installability requirements" audit.
    • The Fast and reliable group has evaporated into thin air. 🌬 Now that revamped "installability requirements" audit includes offline-capability checking, we've removed the dedicated audits for checking if the current page and start_url respond with 200 when offline. Separately, the "Page load is fast enough on mobile network" audit was removed—while it's no longer part of the PWA section, we encourage folks building a PWA to consult the Performance category to ensure their web app is speedy and delightful.
  • A nightly Lighthouse build is now available as lighthouse@next on npm. Note that while automated tests pass before publishing, it's expected that this version will be more unstable than the regular releases (#11792, #11805, #11810)
  • The accessibility-testing library axe-core has been updated to the latest 4.1.1 release. The accessibility audits are now faster, more robust, and include multiple new checks (#11661)
  • Lighthouse runs a small benchmark at startup, and will now include a warning if the test machine appears underpowered and may be affecting the accuracy of the Lighthouse metrics (#11350)
  • Joomla and October CMS detection has been added, so pages on those platforms will now get customized advice on some Lighthouse audits (#11788)

New contributors

Thanks to Kohta Ito (@koh110) and Sam Stoelinga (@samos123) for their first contributions!

🆕 New audits

  • The new installable-manifest PWA audit, mentioned above, uses Chrome's own installability criteria so it will always stay in sync with installability requirements (#11745)
  • third-party-facades looks for third-party embeds in the test page that can be lazy loaded with a static "facade". If the embed isn't necessary for immediate interaction by a user, consider using one of the facades to speed up page load (#11290)
  • With the axe version upgrade comes new audits ensuring accessible naming: aria-treeitem-name, aria-command-name, aria-tooltip-name, aria-meter-name, and aria-progressbar-name (#11661)

♻️ Removed audits

  • The update to latest axe-core also removes two audits that weren't checking much: layout-table and video-description (#11661)
  • works-offline and offline-start-url audits were removed as their checks are now covered by the new installable-manifest implementation (#11806)
  • The load-fast-enough-for-pwa audit has also been removed since Lighthouse's existing performance metrics more than cover the needs there (#11764)
  • without-javascript has been removed (#11711)

💥 Breaking changes

  • Device-emulation config settings and CLI flags have changed to be clearer and have less overlap. If you've used --emulated-form-factor or other emulation-related configuration, you'll need to make changes. The new settings should be considerably simpler to use with custom Lighthouse runners using real devices, Puppeteer, or system-level throttling. See the emulation docs for migration guidance. (#11779)
  • When waiting for the page to be fully loaded, Lighthouse will now wait if there are active high-priority network requests. In rare cases, like where the app initialization is dependent on a single, slow-returning XHR, some performance metrics may worsen; however, the new measurements are now accurate. (#11738, #11851)
  • Support for Node 10 has been dropped. The minimum required Node version is now 12 (#11656)

🤖💥 Breaking changes for programmatic users

These changes are unlikely to affect end users, but may be important if you are writing custom configs, plugins, or processing the Lighthouse JSON output.

  • ConsoleMessages is a new artifact that is a combination of the old ConsoleMessages and RuntimeExceptions artifacts, with some expanded data on items logged to the console. RuntimeExceptions has been removed (#11663)
  • DOM "node details" data formerly spread throughout existing artifacts are now gathered in a NodeDetails property on each element (#11474, #11695, #11752)
  • The ImageElements artifact has been streamlined to better represent the data collected and how it's used (#11703, #11707, #11733)
  • Previously, extends: true was allowed as an alias for extends: 'lighthouse:default' to extend a config from the default Lighthouse config file. The boolean option has been removed to prepare the way for extending from any valid config file (#11835)
  • A never-used feature to pass options from the config to gatherers has been removed to be compatible with future changes (#11743)

🧱 Core

Improvements, bug fixes, clarifications

  • lantern: allow non-XHRs to depend on CPU Nodes (#11767)
  • lantern: maximize throughput under HTTP/2 (#11666)
  • properly split node labels in the report around unicode surrogate pairs (#11698)
  • move the service-worker audit to the pwa-optimized group; its path in the JSON and metadata on scope URLs are unchanged (#11798)
  • support local plugins from a globally-installed Lighthouse (#11696)

Internal refactors and improvements

  • driver: create typed Runtime.evaluate from function code (#10816)
  • gather-runner: remove <M82 compat for InstallabilityErrors (#11782)
  • simulator: clearer intermediate timing types (#11744)
  • types: remove unneeded casts (#11753)
  • lightrider: skip uses-http2 audit (again) (#11777)
  • script-treemap-data: fix sourceRoot and missing coverage bugs (#11825)
  • fraggle-rock: add base snapshot runner (#11748)
  • fraggle-rock: add driver (#11742)

Tests

Misc

  • uses-http2: remove mention of h2 push in docs (#11834)
  • readme: add integration (#11775)
  • add log files to GCP run results (#11833)
  • temporarily allow css in redirectPass to work around crbug (#11813)
  • eslintignore *.d.ts files (#11793)
  • buildtracker: skip git --deepen if no token (#11785)
  • build: quiet the npm pack command (#11783)
  • build: fix bundling lighthouse-plugin-publisher-ads in Lightrider (#11648)
  • release: add print-contributors.js script (#11736)

Deps

  • update yargs to latest (#11794)
  • update old transitive deps (#11811)