Releases: GoogleChrome/lighthouse
v8.4.0
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
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 👽🐷🐰🐯🐻!
- Haruaki OTAKE @aaharu
- Georgi Yonchev @g-yonchev
- Kartike Bansal @kraten
Core
- fix resource size calculation of cached images (#12612)
- convert core
.d.ts
files to modules (#12870, #12880, #12888)
⛏️👷 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
- import (#12893)
Docs
- readme: add SpeedVitals to the list of integrations (#12866)
Misc
v8.2.0
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 👽🐷🐰🐯🐻!
- Krzysztof Szarlej @kszarlej
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
Clients
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
v8.1.0
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 👽🐷🐰🐯🐻!
- Todor Totev @todortotev
- Tanner Dolby @tannerdolby
- Victor Porof @victorporof
- Gareth Jones @G-Rath
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
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
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 report includes a new metric filter. Pick a metric to focus on the opportunities and diagnostics most relevant to improving just that metric:
-
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
andfirst-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 largeintl
polyfill has been removed from Lighthouse's dependencies. See the readme FAQ if you're stuck withsmall-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 legacygather-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
v7.5.0
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 👽🐷🐰🐯🐻!
- Johannes Weber @johannes-weber
Notable Changes
We are releasing the Lighthouse Treemap!
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:
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:
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.
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
- snyk: update snyk snapshot (#12443, #12468)
- update transitive dependencies (#12466)
- update marky to latest (#12440)
I18n
- import new strings (#12492)
Docs
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
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 👽🐷🐰🐯🐻!
- kasperadk @kasperadk
- Milutin Kristofic @milutin
- Takeshi Kurosawa @takenspc
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
Deps
- remove details-element-polyfill and rimraf (#12369)
- snyk: update snyk snapshot (#12385, #12361, #12336, #12315, #12289)
- update jsonld to latest (#12338)
- replace inquirer with enquirer (#12317)
- update eslint to latest (#12333)
I18n
- import new strings (#12411)
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
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 👽🐷🐰🐯🐻!
- Ryuichi Watanabe @ryuichi1208
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
I18n
- import (#12255)
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
v7.2.0
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 👽🐷🐰🐯🐻!
- @1d0n7kn0w
- Benajmin Franz @BennyAlex
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)
Deps
- update snyk snapshot (#12132)
Clients
- lr: skip uses-http2 audit for mobile (#12115)
Docs
Tests
- sync devtools tests (#12127)
Misc
v7.1.0
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 👽🐷🐰🐯🐻!
- EEEEEEYHN @EYHN
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
Tests
- smoke: tweak expectations based on feedback from LR (#11962)
- trace-elements: test node eviction with unit rather than smoke (#12056)