Skip to content

Releases: GoogleChrome/lighthouse

v8.4.0

08 Sep 16:46
284e5f6
Compare
Choose a tag to compare

Full Changelog

We expect this release to ship in the DevTools of Chrome 95, and to PageSpeed Insights within 2 weeks.

New Contributors

Thanks to our new contributors 👽🐷🐰🐯🐻!

Emmanouil Zoumpoulakis @emzoumpo
Milutin Kristofic @milutin
Bjørn Erik Pedersen @bep
Jerome Cukier @jckr
Saurav Kumar @svkrclg

New Audits

  • Detect when the LCP element is lazy-loaded. Above-the-fold images that are lazily loaded render later in the page lifecycle, which can delay the largest contentful paint. Learn more (#12838)

Core

  • network-request: identify filesystem resources as non-network (#12970)
  • viewport: add viewport audit as perf diagnostic (#12972)
  • csp-evaluator: bump package version (#12990)
  • config: keep full-page-screenshot in skipAudits case (#12645)
  • large-javascript-libraries: delete (#12941)

⛏️👷 Fraggle Rock

Support for auditing user flows (#11313)

  • collect devtoolsLogs on pageLoadError (#12980)
  • add config validation (#12945)
  • align navigation failure behavior (#12862)
  • add protocol timeout to session (#12913)
  • parity on Stacks and FullPageSnapshot gatherers (#12907)
  • http-status-code: navigation only (#13005)
  • add --debugNavigation setting (#12902)
  • flow: sidebar mocks (#13002)
  • flow: embedded lighthouse report (#12989)
  • flow: summary page (#12973)
  • flow: navigation sidebar (#12929)
  • flow: standalone shell report with preact (#12850)

Report

  • accessible n/a icon (#12984)
  • split topbar features (#12926)
  • prefix all classnames with lh- (#12985)
  • isolate type checking (#12953, #12952, #12951)
  • use postMessage to open viewer outside devtools (#12927)
  • better deduping of warnings (#12355)

Deps

Clients

  • lightrider: use iframe fetcher (#13006)
  • treemap: convert to ES modules (#12892)
  • viewer: make entire directory use modules (#12975)

Docs

  • auth: add missing build step in README (#12911)
  • changelog: fix typo in changelog.md (#12997)
  • hacking: add links to buildtracker/pr-tracking (#12922)

Tests

  • avoid node 16.9.0 (#13012)
  • ci: restore ToT Chromium download (#12943, #12950)
  • dom: fix node 16 createObjectURL bug (#12935)
  • eslint: add import/order rule (#12998)
  • fr: convert screenshot expectations (#12912)
  • smoke: check for passing robots-txt (#13007)
  • smoke: fix dbw console error expectation (#13011)
  • smoke: print command to rerun failures (#12924)
  • devtools: sync (#12899)
  • devtools: tsc type override bug workaround (#12933)
  • create faux psi report (#12815)

Misc

  • the great sample rebaseline (#12932)
  • restructure types to use project references (#12914, #12946, #12940)
  • build: sample flow report (#12930)
  • build: do not include locales in devtools bundle (#12921)
  • build: remove template.html from devtools report resources (#12891)
  • build: create UMD bundle build (#12898)
  • build: normalize sample-report build naming (#12901)
  • build: prefer paths when using gh-pages-app (#12905)
  • build: refactor devtools bundle tweaking (#12974)
  • tweak folder used for vercel deployment (#12879)
  • cli: improve error if invalid value for --output argument is passed (#12836)
  • exit collect-strings script with error code on failure (#12971)

v8.3.0

10 Aug 23:19
4af17b5
Compare
Choose a tag to compare

Full Changelog

We expect this release to ship in the DevTools of Chrome 94, and to PageSpeed Insights within 2 weeks.

New Contriubutors

Thanks to our new contributors 👽🐷🐰🐯🐻!

Core

⛏️👷 Fraggle Rock

Support for auditing user flows (#11313)

  • override quiet windows for observed performance (#12873)

Report

  • autogenerate components.js from templates.html (#12803)
  • reword SEO category description (#12877)
  • dom: handle undefined link url from proto roundtrip (#12872)

Deps

  • csp-evaluator: upgrade to exactly 1.0.4 (#12858)

Clients

  • viewer: convert to ES modules (#12878)

I18n

Docs

  • readme: add SpeedVitals to the list of integrations (#12866)

Misc

  • remove nyc config (#12876)
  • npmignore all of dist/ except standalone report (#12855)

v8.2.0

04 Aug 00:38
bb98714
Compare
Choose a tag to compare

Full Changelog

We expect this release to ship in the DevTools of Chrome 94, and to PageSpeed Insights within 2 weeks.

New contributors

Thanks to our new contributor 👽🐷🐰🐯🐻!

Core

  • csp-xss: make n/a with empty results (#12801)
  • css-usage: ignore removed stylesheets (#12827)
  • emulation: bump chrome versions (#12849)
  • traces: disable cpu-profiler trace category (#12843)
  • byte-efficiency: mark n/a if no network records in timespan (#12839)

⛏️👷 Fraggle Rock

Support for auditing user flows (#11313)

  • add --fraggle-rock flag (#12805)
  • add config extension support (#12832)
  • add snapshot and timespan support to no-unload-listeners audit (#12830)
  • support config filtering via only/skip settings (#12808)
  • add timespan support to css-usage (#12728)

Report

  • convert to ES modules (#12702)
  • metric-filter: handle multiple reports in the same DOM (#12817)
  • dom: introduce safelySetHref (#12796)

Deps

  • update third-party-web to 0.12.4 (#12753)
  • update lighthouse-logger to 1.3.0 (#12812)

Clients

  • viewer: add disclaimer regarding devtools bug (#12846)
  • viewer: accept lhr from fragment (#12557)

Docs

  • readme: list dtekt.io in web perf services (#12831)

Tests

  • add fraggle rock smoke tests (#12834)
  • add report/ to tsconfig (#12822)
  • devtools: sync tests, fix cache action (#12807)
  • page-functions: remove segfault workaround (#12847)
  • smoke: convert to single LH run per test (#12818)
  • smoke: convert core tests to single-expectations format (#12819)

Misc

  • build: ensure distDir is present before emptying it (#12829)
  • types: fix null return on querySelector (#12848)
  • read locale files without using require (#12721)
  • add prefix to lighthouse-logger debug scope (#12806)

v8.1.0

14 Jul 00:45
579e3cb
Compare
Choose a tag to compare

Full Changelog

We expect this release to ship in the DevTools of Chrome 93, and to PageSpeed Insights within 2 weeks.

New contributors

Thanks to our new contributors 👽🐷🐰🐯🐻!

Core

  • modern-images: update to include AVIF estimates (#12682)
  • preload: temporarily disable all preload advice (#12661)
  • network-request: consider HSTS redirects secure (#12681)
  • total-byte-weight: count partially finished requests (#12665)
  • canonical: proper explanation for url misuse (#12676)
  • fallback to selector, not tagName for nodeLabel (#12727)
  • csp-xss: update learn more link (#12672)
  • installable-manifest: align descriptions with applicatons panel (#12678)
  • trace: include additional perf categories (#12692)
  • tap-targets: add stylesheet over protocol (#12634)

⛏️👷 Fraggle Rock

Support for auditing user flows (#11313)

  • fr: uses-responsive-images-snapshot (#12714)
  • fr: limit scope of audits to applicable modes (#12764)
  • fr: split timespan support for server-response-time (#12758)
  • fr: enable traces artifact in timespan mode (#12695)
  • fr: add lighthouseMarker timeOrigin support (#12688)
  • fr: add timespan support to viewport-dimensions (#12680)
  • fr: add snapshot support to ImageElements gatherer (#12663)
  • fr: convert service-worker gatherer (#12662)
  • fr: add audit mode filter (#12649)
  • fr: split traceOfTab into timespan/navigation types (#12633)
  • fr: fix main-document-content (#12632)
  • fr: more precise AnyFRInterface types (#12622)
  • fr: convert script-elements gatherer (#12621)
  • fr: convert additional base artifacts (#12594)
  • fr: align base artifacts with legacy gather-runner (#12510)

Report

  • move renderer code to report/ (#12690)

Deps

  • bump axe-core to 4.2.3 (#12706)
  • update ws to latest (#12638)
  • jest: upgrade to 27.0.3 (#12454)
  • snyk: update snyk snapshot (#12599)
  • webtreemap: bump to fix focus traversal bug (#12625)

I18n

  • import (#12783)
  • allow strings with duplicate message and descriptions (#12723)

Tests

  • devtools: fix after renaming standalone-template.html (#12765)
  • don't double count server network requests on retry (#12779)
  • add explicit small-icu detection for i18n (#12696)
  • tweak variability assertion for load-things transferSize (#12701)
  • renderer: reduce console output about unknown types (#12644)
  • report: increase timeout for running axe on report renderer (#12610)
  • smoke: relative source map hash (#12607)
  • treemap: add test for node coverage shading (#12609)
  • fix flaky cache test (#12606)

Misc

  • treemap: elide origin from url if same as requestedUrl (#12598)
  • treemap: fix node coverage shading (#12603)
  • build: add build step for report (#12707)
  • npmignore larger unnecessary files (#12627)
  • run build-report for vercel deployment and lhci (#12782)
  • fix common "typos" (#12742)
  • get LH_ROOT via new file root.js (#12724)
  • scripts: improve collision check in collect-strings (#12697)
  • add GitHub bug report form (#12694)
  • scripts: error handling for pptr-run-devtools.js (#12679)
  • fix typos and update faq answer (#12605)
  • reference chromium main instead of master (#12757)

Scripts

  • i18n: support es modules in collect-strings (#12741)

v8.0.0

02 Jun 18:03
d0d2ca0
Compare
Choose a tag to compare

Full Changelog

We expect this release to ship in the DevTools of Chrome 93, and is already in PageSpeed Insights!

Notable changes

  • The Performance Category had a number of scoring changes to align with other performance tools and to better reflect the state of the web.

    • The Performance Score has been reweighted (#12577)
    • The TBT and FCP score curves have been updated (#12576, #12556)
    • CLS has been updated to its new, windowed
      definition (#12554)

    See the v8.0 Performance FAQ for more detail.

    the new metric weightings in the Lighthouse score calculator

  • The report includes a new metric filter. Pick a metric to focus on the opportunities and diagnostics most relevant to improving just that metric:

    the new metric filter in the lighthouse report
  • The Lighthouse Treemap is now available across all the major Lighthouse clients. If your site exposes source maps to Lighthouse, look for the "View Treemap" button to see a breakdown of your shipped JavaScript, filterable by size and coverage on load.

🆕 New audits

  • The new audit csp-xss has been added to Best Practices to evaluate Content Security Policies and suggest ways of making them more secure. This can be a challenging audit to pass depending on hosting environment and page content, so for now it is unscored (#12514, #12551)

🤖💥 Breaking changes for programmatic users

  • Legacy metrics estimated-input-latency and first-cpu-idle have been deprecated, unweighted, and hidden since Lighthouse 6. They have now been removed (#12553)
  • Starting with Node 13, Node is built with full-icu by default, so the very large intl polyfill has been removed from Lighthouse's dependencies. See the readme FAQ if you're stuck with small-icu but need localization support (#12426)
  • Long-time audit uses-webp-images has a new ID, modern-image-formats. WebP is now rather mainstream, and this frees the audit to start including details on other cutting-edge image formats in the future (#12535)
  • The image-elements artifact has been restructured for clarity (#12568)

🧱 Core

  • navigate: only observe longtasks in PerfObserver (#12545)
  • script-treemap-data: do not create nodes with blank names (#12569)

⛏️👷 Fraggle Rock

Support for auditing user flows (#11313)

  • add settings to gather context (#12574)
  • fix usage of distributed conditional type (#12565)
  • support inspector-issues gatherer (#12530)
  • support tags-blocking-first-paint gatherer (#12527)
  • support response-compression gatherer (#12508)
  • align navigation-runner with legacy gather-runner (#12478)

📔 Report

  • improve accessibility of metric filter (#12552)
  • treemap: add placeholder, gist, and file upload features (#12511)
  • treemap: support passing gzipped data in url (#12509, #12519)
  • viewer: fix gist icon (#12505)

👥 Clients

  • fix main session OOPIF checks for devtools (#12533)
  • render treemap button in all clients (#12516, #12570, #12590)
  • backport proto formatting fixes (#12566)

🌍 i18n

📋 Tests

  • run unit tests on all active node versions in CI (#12513)
  • sync devtools webtests (#12578)
  • treemap: reduce debug.json (#12555)

🕸️ Deps

  • update lighthouse-plugin-publisher-ads to 1.4.1 (#12592)
  • update axe-core to 4.2.1 (#12575)
  • update puppeteer to 9.1.1 (#12284)
  • update chrome-launcher to 0.14.0 (#12507)

v7.5.0

18 May 07:34
8ff570d
Compare
Choose a tag to compare

Full Changelog

We expect this release to ship in the DevTools of Chrome 92, and to PageSpeed Insights within 2 weeks.

New contributors

Thanks to our new contributor 👽🐷🐰🐯🐻!

Notable Changes

We are releasing the Lighthouse Treemap!

image

You may already be familiar with treemaps thanks to webtreemap (which we use!) or source-map-explorer. With Lighthouse Treemap, you'll be able to view all the JavaScript bundles on your page easily from a Lighthouse report, in addition to some insights that may help reduce the amount of JavaScript on a page. The only requirement is that source maps are accessible (either publicly, or securely from the same computer that is running the Lighthouse audit).

We even collect code coverage data from Chrome, and extrapolate the coverage of individual modules in a bundle:

image

Note: this only takes into account a cold-load: code only used after user interaction will be marked as unused. Stay tuned for a future release, which will enable you to configure user flows and capture even more accurate performance insights.

If we detect a large module included by multiple bundles, we'll alert you of that too.

You can access Lighthouse Treemap from the report:

image

Currently, only reports generated with the Lighthouse Node CLI will connect to the Lighthouse Treemap App. We are working on adding this functionality to Lighthouse in DevTools and PageSpeed Insights.

Demo

Core

  • add new CLS (all frames) to hidden metrics audit (#12476)
  • script-treemap-data: default config (#12494)
  • script-treemap-data: include unmapped bytes (#12452)
  • driver: extract gotoURL to navigation module (#12421)
  • responsive-images: ignore images larger than viewport (#12414)
  • robots: use new fetcher to get robots.txt (#12423)

Fraggle Rock

Support for auditing user flows (#11313)

  • computed-artifact: remove settings and options from context (#12435)
  • convert optimized-images gatherer (#12491)
  • convert image-elements gatherer (#12474)
  • convert source-maps gatherer (#12467)
  • convert js-usage gatherer (#12450)
  • convert main-document-content gatherer (#12470)
  • convert css-usage gatherer (#12460)
  • convert trace-elements gatherer (#12442)
  • extract warnings from gather-runner (#12469)
  • extract driver preparation methods (#12445)
  • extract navigation errors from gather-runner (#12461)
  • split out DOM utilities from legacy driver (#12431)
  • separate phase from gatherMode (#12370)
  • add fetcher to transitional driver (#12419)
  • add computed cache to pass context (#12427)

Report

  • map metrics to audits, add metric filter (#11732, #12477)
  • add treemap button, refactor icon styles (#12392)

Deps

I18n

Docs

  • remove AMP Plugin example (#12390)
  • add python requests install to webtests (#12436)

Tests

  • update chromium installable source path (#12364)
  • i18n: only accept IcuMessages in toBeDisplayString (#12487)
  • add smokehouse to bin for downstream use (#12446)
  • split CI into unit and smoke workflows (#12422)
  • smoke: verify CSP violations caused by lighthouse (#12391)
  • add organic TTI savings case to byte efficieny audit (#12418)

Misc

  • treemap: esc to zoom out (#12498)
  • treemap: remove too similar color hues (#12497)
  • treemap: shade background for unused bytes (#12486)
  • treemap: update colors on enter keypress (#12496)
  • treemap: set focus-visible styles for view mode buttons (#12495)
  • treemap: tweak styles for mobile (#12493)
  • treemap: highlight treemap node on mouse hover table row (#12483)
  • treemap: upgrade to 3.2.0 for keyboard navigation (#12488)
  • treemap: use 0.1 for default granularity (#12485)
  • treemap: remove byte size from title (#12484)
  • treemap: add GA snippet for new property (#12481)
  • treemap: i18n (#12441)
  • treemap: fix colors (#12462)
  • treemap: duplicate-modules view mode (#12424)
  • treemap: add data table (#12363)
  • cli: destructure args in import (#12398)
  • move predictive-perf off renderer i18n (#12482)
  • do not publish lighthouse-cli/test except smokehouse (#12415)

v7.4.0

27 Apr 21:35
b64863b
Compare
Choose a tag to compare

Full Changelog

We expect this release to ship in the DevTools of Chrome 92, and to PageSpeed Insights within 2 weeks.

New contributors

Thanks to our new contributors 👽🐷🐰🐯🐻!

Notable Changes

  • Add element screenshots to PSI (#12288)

Core

  • csp-xss: hidden severity (#12240)
  • deprecations: ignore warning for ::-webkit-details-marker (#12341)
  • driver: move evaluateOnNewDocument to executionContext (#12381)
  • fetcher: fetch over protocol (#12199)
  • fetcher: disable auto-attaching for injected iframe (#12347)
  • hreflang: use Audit.makeNodeItem (#12273)
  • meta-elements: add NodeDetails (#12274)
  • unsized-images: pass with explicit aspect-ratio (#12377)

Fraggle Rock

Support for auditing user flows (#11313)

  • extract storage and service worker driver methods (#12400)
  • prepare emulation utilities for shared use (#12375)
  • filter out manual-only categories (#12367)
  • colocate PerformanceObserver installation with wait logic (#12365)

CLI

  • asset-saver: print one devtoolsLog event per line (#12348)

Report

  • tweak summary marker styles (#12267)
  • move budgets after diagnostics (#12334)

Deps

I18n

Docs

  • architecture: augment gathering & artifacts descriptions (#12368)
  • readme: add Alertdesk to the list of integrations (#12356)

Tests

  • smoke request count assertion (#12325)
  • remove flaky Chrome launch from unit-cli (#12359)
  • retry some jest tests on failure (#12298)
  • cron to check for relevant chromium changes (#11763)
  • devtools: sync webtests (#12310)
  • smoke: remove html imports from dbw_tester (#12354)
  • smoke: update CLS-AF expectation (#12353)
  • fix split of smoke tests across jobs (#12323)
  • smoke: temporarily disable offline-warning check (#12312)
  • smoke: remove max chrome for lantern script attribution (#12270)

Misc

  • ci: increase yarn network timeout (#12376)
  • treemap: root node selector (#12360)
  • tweak unused-audits strings (remove -> reduce) (#12281)
  • puppeteer script to test a page from devtools (#12145)
  • treemap: tweak styles for logo spacing and text colors (#12342)
  • fix path check for roll-devtools script (#12358)
  • add patrickhulce back to issue assignment (#12357)
  • fix open-devtools script (#12313)
  • include SVG elements by default in typed querySelector (#12307)
  • fix PhaseArtifact type to include Stacks (#12280)
  • sentry: tag protocol method (#12268)

v7.3.0

19 Mar 00:46
32827ec
Compare
Choose a tag to compare

Full Changelog

We expect this release to ship in the DevTools of Chrome 91, and to PageSpeed Insights within 2 weeks.

New contributors

Thanks to our new contributor 👽🐷🐰🐯🐻!

New Audits

  • new_audit: csp-xss (experimental config) (#12044)

Core

  • csp-xss: csp evaluator npm module (#12221)
  • driver: remove unused goOffline/goOnline methods (#12135)
  • errors-in-console: properly define default options (#12200)
  • fr: convert base artifacts to gatherer artifacts (#12129)

CLI

  • correctly parse screenEmulation boolean flags (#12250)
  • only launch Chrome when running against localhost (#12140)

Report

  • use css var for element screenshots, move overlay to container (#12201)

Deps

  • update jsonld to latest (#12257)
  • update typescript and axe-core to latest (#12207)

I18n

Docs

  • fixed typo in documentation throttling.md (#12154)

Tests

  • devtools: dynamically fetch chromium version (#12232)
  • devtools: fix webserver (#12236)
  • devtools: update chromium dependencies (#12130)
  • fr: update test artifact (#12202)
  • legacy-javascript: pin to specific versions of core-js (#12265)
  • smoke: ignore lantern script attribution in ToT (#12256)

Misc

  • treemap: unused-bytes view mode (#12142)
  • remove patrickhulce from issue assigner (#12220)
  • reorganize accessibility gatherer (#12076)

v7.2.0

25 Feb 00:53
fb18dfe
Compare
Choose a tag to compare

Full Changelog

We expect this release to ship in the DevTools of Chrome 90, and to PageSpeed Insights within 2 weeks.

New contributors

Thanks to our new contributors 👽🐷🐰🐯🐻!

Core

  • emulation: bump chrome versions (#12104)
  • unsized-images: ignore non-network SVGs (#12120)
  • preload: do not warn for cache loads (#12122)
  • be more lenient for some audits on localhost (#11766)

Fraggle Rock

Support for auditing user flows (#11313)

  • fr: add navigation phase + trace gatherer (#12098)
  • fr: add DevtoolsLog artifact (#12074)

Deps

  • update snyk snapshot (#12132)

Clients

  • lr: skip uses-http2 audit for mobile (#12115)

Docs

  • auth: correct path in readme (#12112)
  • throttling: retitle devtools panel h2 (#12126)

Tests

  • sync devtools tests (#12127)

Misc

  • treemap: first pass (#11832)
  • add LIGHTHOUSE_FLAGS to gcp script. tweak extract script (#12100)
  • rename lantern baseline values (#10950)
  • fixed typos More => more (#12092)
  • ci: update GH actions commit SHAs (#12099)

v7.1.0

12 Feb 23:49
5bd6314
Compare
Choose a tag to compare

Full Changelog

We expect this release to ship in the DevTools of Chrome 90. It went live on PageSpeed Insights on Feb 19.

New contributors

Thanks to our new contributors 👽🐷🐰🐯🐻!

Core

  • add hidden layout-shift variant metrics (#12046)
  • cls: refactor CLS and CLS-AF (#12069, #12034)
  • image-elements: set 5s time budget, add _privateCssSizing (#12065)
  • unsized-images: skip images that are zero-sized (#12054)
  • tap-targets: drop custom node rect creation (#12005)
  • alias element.currentSrc to element.src in node snippet (#12007)
  • fix js edge case in minification estimator (#12067)

Fraggle Rock

Support for auditing user flows (#11313)

  • fr: eliminate driver delegate from internal invocations (#12015)
  • fr: add more gatherers to config (#12016)
  • fr: add artifact dependency support (#12045)
  • fr: extract network monitor class (#12006)
  • fr: initial gatherer migration for snapshot, navigation (#11993)
  • fr: add session.onAnyProtocolMessage listener (#11995)

CLI

  • do not set AutofillShowTypePredictions (#12038)

Deps

  • axe-core: upgrade to 4.1.2 (#12075)
  • snyk: update snyk snapshot (#12071)

Tests

  • smoke: tweak expectations based on feedback from LR (#11962)
  • trace-elements: test node eviction with unit rather than smoke (#12056)

Misc

  • ci: increase fetch-depth for codecov SHA (#12079)
  • git3po: merge when green for unstable state too (#12078)
  • add issue assigner bot (#12052)
  • tighten querySelector types (#12013)