Releases: GoogleChrome/lighthouse
v5.6.0
We expect this release to ship in the DevTools of Chrome 79.
New contributors!
Thanks to @dpacassi, @lirantal and @yeonjuan for their first contributions!
Notable
- gather: add new MainDocumentContent public artifact (#9781)
- stack-packs: add angular, react, amp, and magento packs (#9797)
Core
- tracehouse: allow child to start <1ms before parent (#9786)
- driver: fix error handling for Runtime.evaluate (#9831)
- errors-in-console: add ignoredPatterns option (#9480, #9829)
- image-elements: cache naturalSize results (#9818)
- link-elements: ignore non-HTMLLinkElements (#9765)
- optimized-images: log errors (#9782)
- seo: support korean in link-text audit (#9804)
- tracehouse: allow nested trace events without an end (#9785)
- rename Element to LHElement (#9832)
Deps
Report
- rephrase titles for 3rdparty & crc (#9419)
- rewrite dom-size description (#9821)
- update logo in top bar (#9728)
- remove some dead code (#9800)
Clients
- lr: don't include html report assets in bundle (#9828)
- viewer: minify inlined report-generator bundle (#9596)
I18n
Docs
- related-projects: add lighthouse-check (#9753)
- related-projects: add the is-website-vulnerable CLI tool (#9810)
- related-projects: add the gradle lighthouse plugin (#9789)
- document 'meaning' field in i18n readme (#9787)
- update stale references to audits (#9760)
Tests
- use firehouse smoke test runner to test bundle (#9791)
- attempt bundle test three times in CI (#9830)
- smokehouse: fix tmp directory creation (#9855)
- smokehouse: use static requires for test definitions (#9501)
Misc
v5.5.0
5.5.0 (2019-10-02)
Notable changes
- Preliminary implementation of the Largest Contentful Paint metric has landed (
devtools
andprovided
throttling only) and can be found in the hiddenmetrics
audit in the raw LHR JSON (#9706) - The creation of main-thread tasks from a trace is now more robust. This should significantly reduce the occurrence of Issue #7764,
"Fatal trace logic error - expected start event, got X"
(#9491) <script>
elementid
has been added to theScriptElements
artifact (#9718)
New contributors!
Thanks to @LarsKumbier, @TimvdLippe, and @uchoudh for their first contributions!
Core
- network-recorder: remove quic-request-finished workaround (#9744)
- network-recorder: optimize network idle detection (#9712)
- unused-css-rules: no more infinity savings (#9731)
Clients
- devtools: expose
registerLocaleData
to worker (#9645) - devtools: update references to
Runtime.cachedResources
(#9758)
Docs
- new documentation for running Lighthouse on authenticated pages (#9628, #9705)
- point more docs links to web.dev (#9540, #9711, #9761)
- readme: add more related projects (#9716, #9743)
- releasing: add schedule, more integration testing (#9695)
- add links to more info about throttling and variability (#9734)
- update scoring calculator link to v5 (#9729)
Tests
- add Lighthouse CI dogfood script to travis (#9677, #9745)
- report: update
utm_medium
check for web.dev links (#9737) - smokehouse: add check for any
runWarnings
(#9732) - attempt to download lantern test trace set a few times (#9766)
Misc
v5.4.0
5.4.0 (2019-09-18)
Expected DevTools release in Chrome 79 (December 2019)
Core
- iframe-elements: Include new IFrameElements gatherer (#8979)
Report
- update favicon (#9688)
Docs
- plugins: update recipe's lighthouse peerDependency version (#9653)
I18n
- treat Infinity and NaN as numeric values (#9687)
Tests
- smokehouse: fix unintentional 404, relax max-len (#9665)
v5.3.0
5.3.0 (2019-09-16)
Expected DevTools release in Chrome 79 (December 2019)
New contributors!
Thanks to our new contributors @alabiaga, @olore, @letanure, and @mfriesenhahn!
Core
- point audit descriptions to new web.dev Lighthouse docs (#9538, #9539, #9084, #9537)
- constants: increase default
maxWaitForFcp
to 30s (#9509) - font-size: gather style declaration of type attributes (#9414)
- gather-runner: only fail on interstitials interrupting the
mainRecord
(#9576) - lightwallet: add path property to
budget.json
(#9453) - seo: support portuguese in
link-text
audit (#9446) - start-url: stay offline for entirety of
offlinePass
(#9451) - third-party-summary: add blocking-time impact (#9486)
- tracehouse: sort trace events by nesting order (#9230)
- add
source-maps
gatherer (#9101) - unused-css: allow up to 10KB of unused CSS per file (#9479)
CLI
- list audit categories in help text (#9399)
Clients
- devtools: fix collapsing-width svg in flexbox (#9602)
- devtools: update test command to run only .js files (#9532)
- proto: don't filter
channel
fromconfigSettings
(#9554) - viewer: remove obsolete polyfills (#9553)
- proto: update import hooks, obey line length (#9595)
Deps
- chrome-launcher: update to 0.11.2 (#9515)
- details-element-polyfill: update to 2.4.0 (#9552)
- jsonlint-mod: update to 1.7.5 (#9465)
- update transitive deps (#9670)
Docs
I18n
- import translations from tc/ (#9577, #9620, #9454)
- add
registerLocaleData()
method (#9638) - rewrite
aria-required-children
titles (#9590) - reword
pwa-page-transitions
description (#9615) - throw on excess placeholder replacement values (#9580)
- remove translated messages when ICU arguments change (#9598)
- use better types for
intl-messageformat
(#9570) - add code spans to
uses-rel-preconnect
description (#9568) - fix bugs in locale-importing scripts (#9621)
- fix custom formatted ICU within plurals (#9460)
- capitalize
robots.txt
displayValue
(#9567) - add link to cldr parentLocales (#9520)
- move pwa audits to i18n system (#9105)
- use TypeScript compiler to collect
UIStrings
(#9487) - align type names with docs (#9461)
- expand placeholder support (#9114)
- rewrite
td-headers-attr
titles (#9587) - improve Intl polyfill and use it in Util (#9584)
Report
- make dropdown match ARIA action menu button pattern (#9433)
- move drop-down logic into a separate class (#9564)
- topbar: fix overflowing url (#9497)
- viewer: add option for loading from the PSI API (#9546)
- viewer: fix favicon typo (#9629)
- don't use unnessary monospace (#9626)
- remove PWA badge flicker workaround for Chrome (#9636)
- add utm params to web.dev links (#9555)
- update favicon to new logo (#9591)
- render unstyled json (rather than throwing) when LHR contains unknown details type (#9557)
Tests
- migrate travis to xenial for modern Chrome support (#9654)
- fixtures: use relative path in static server 404 page (d0e5c58)
- report: add
axe-core
validation of report output (#9421) - add index page for static server (#9541)
- smokehouse: use mime-types + proper encoding for response write (#9542)
- retry cli tests up to 3 times in appveyor (#9512)
- simplify serving of zone.js (#9672)
Misc
- add comment on diff between
document.write()
audit and intervention (#9644) - refactor
collect-strings
to useglob
and work on windows (#9406) - trim missed
yarn.lock
cruft & deduplicate dependencies (#9603, #9600) - replace deprecated
uglify-es
with terser (#9594) - share markdown parsing in collect-strings and the report (#9514)
- add note about global.URL in node 10 (#9449)
- build: include locale files in devtools roll (#9639)
v5.2.0
5.2.0 (2019-07-24)
Expected DevTools release in Chrome 77 (September 2019)
New Audits
- Third-Party Usage, a new performance diagnostic that shows a breakdown of third-party resources in the page and the time/bytes needed to load them (#9067)
- Total Blocking Time, an experimental new metric that serves as a companion to TTI to help prioritize unblocking the main thread. Since it is currently experimental, the audit is unscored and appears only in the raw LHR JSON, not in the HTML report. (#8975, #9409)
Notable changes
- tracehouse: performance trace processing has been moved to its own directory in
lib/tracehouse/
to serve as a more standalone library (9f80524, 1af2edd, 7ba6776, ddff3d6) - certificate security errors are no longer a fatal Lighthouse error, though the Chrome error page will still return few results in the report by default. See the docs for testing a page in this situation. (#8865)
New contributors!
Thanks to @angelogulina, @jamesgeorge007, @johnemau, @kaushikchaubal, @mitchellsimoens, @NickolasBenakis, @noelyoo, @PatOnTheBack, @rishichawda, and @Remexllee for their first contributions!
Core
- support saving and loading errors in artifacts (#9397)
- config: assert all audit
requiredArtifacts
will be gathered (#9284) domstats
: support an empty html body (#9340)font-display
: limit false positives (#9148)font-size
: calculate accurate line/column for styles (#9356)font-size
: comment why source 'Other' occurs (#9363)- localize invalid-URL error message (#9334)
gather-runner
: addPageLoadError
base artifact (#9236)gather-runner
: don't save trace on pass withpageLoadError
(#9198)gather-runner
: treat Chrome interstitials aspageLoadErrors
(#9176)gather-runner
: always reset scroll position (#9060)gather-runner
: convertPAGE_HUNG
to non-fatalruntimeError
(#9121)manifest-parser
: handle blob manifests (#9088)page-functions
: don't try to clone a ShadowRoot (#9079)- perf: speed up
tap-target
'sisVisible()
(#9056) - tracehouse: allow missing FCP (#9174)
CLI
- accept flags from a file (#9109)
Clients
- devtools: audits2->audits and defer reading resources (#8985, #9344)
- devtools: unset overflow in print (#9274)
- lightrider: update
processForProto
method signature,string
->LH.Result
(#9016) - lightrider: serialize errors in artifacts (#9410)
Deps
- update
axe-core
to 3.3.0 (#9343) - update
typescript
to 3.5.3 (#9357) - update
chrome-launcher
to 0.11.1 (#9339) intl
: move from devDep to dep (#9309)- update
debug
to 2.6.9 (#9398) - update to
open
fromopn
(#9267) - update outdated transitive deps (#9347)
- update
brfs
to 2.0.2 (#9312) - remove
commitizen
as local dep (#9246) - update
extend
to 3.0.2 (#9184) - bump transitive dep
js-yaml
(#9131) - update
bundlesize
, add more budgets (#9089)
Docs
- add i18n overview and authoring documentation (#9361)
- link to good first issues (#9440)
- add instructions for testing with self-signed certificate (#9112)
- update
understanding-results.md
(#9226) - change score type from 'string' to 'number' (#9225)
- readme: add
Exthouse
to related projects (#9243) - readme: add
lighthouse-jest-example
to related projects (#9172) - readme: add
lighthouse-persist
to related projects(#9161) - readme: add
gimbal
integration to related projects (#9083) - readme: update
lighthouse-mocha-example
related project (#9158) - readme: alphabetize related projects (#9110)
- fix various typos (#9411)
I18n
- introduce script to swap in new locale to LHR (#8755)
- enable local debug locale,
en-XL
(#9192) - begin localization of audits in
best-practices
(#9092) - add
es-419
(#9171) - localize column headers of budget audits (#9127)
Report
- fix audit explanation rendering (#9439)
- accessibility: add heading role to report category gauge (#9422)
- add link to docs on performance scoring (#9355)
- use full-bleed image thumbnails (#9238)
- show disabled checkbox when all/no urls are third party (#9299)
- remove unnecessary attribute in svg (#9301)
- make urls clickable (#9224)
- use css grid for metrics (#9273)
- center and style top-level runtimeError (#9271)
- create naming convention for css variables (#9149, 37f7261, ece89ec)
- add aria-labels to tools button and metric toggle (#9201)
- update permalink calculations for correct hash nav scroll position (#9188)
- devtools: enable report UI features (#9157)
- position sticky-header highlighter with css grid (#9186)
- ensure SVG elements in
<defs>
have unique ids (#9151) - only print light theme (#9173)
- make 'tools' menu focus-able (#9169)
- rename 'exports' to 'tools' (#9135)
- remove unused css vars (#9144)
Tests
v5.1.0
5.1.0 (2019-05-30)
New contributors!
Thanks to our new contributors 👽🐷🐰🐯🐻!
@thebengeu
@boyney123
Core
- gather-runner: treat NO_FCP as a pageLoadError (#8340)
- logging: change log messages for gathering and trace retrieval (#9029)
- tap-targets: don't exclude visible position absolute elements from audit (#7778)
- budget: throw error on duplicate budget types (#8915)
- config: split out config helpers (#9003)
- gather-runner: always reset scroll position (reverted) (#8625)
- image-elements: drop spritesheet logic (#8940)
- refactor gather-runner control flow (#8964)
- perf: speed up getNodePath (#9055)
- performance-budget: add MP-FID as budget metric (#8905)
- runner: fix missing timing properties in the browser (#9072)
Report
- two rows for filmstrip on mobile (#8563)
- move gauge styles to main stylesheet (#8893)
- show metric descriptions by default when errors exist (#9054)
- show fireworks only if all core categories score 100 (#9073)
- make gauge font size and positioning dynamic (#9057)
- hide 3rd party filter checkbox if all rows are 3rd party (#8966)
- fix word breaking of display text, move metric disclaimer (#9030)
- show nodeLabel for DOM nodes in addition to snippet (#8961)
Clients
- devtools: move topbar out of scrollable container (#9077)
- devtools: enable sticky header, top bar, and report ui features (#9023)
- devtools: ignore dark mode media query (#9082)
- devtools: update version in tests on lh roll (#8819)
- lr: insert assets in lhr for logging purposes (#9002)
CLI
- flags: accept comma-separated array values (#8933)
Docs
- plugins: add link to field-performance plugin (#9051)
- plugins: rename Google AdSpeed Insights to Publisher Ads Audit (#8906)
- add lighthouse-plugin-field-performance to plugins (#9049)
- add performance-budgets to related projects (#8971)
I18n
- minor fr and ta translation updates (#8999)
Misc
- assets: remove outdated extension screenshots (#9015)
- dot-js require() everywhere (#9006)
- remove unneeded reportCategories from LH.ReportResult (#9001)
- update minify-trace scripts; extract to lib/ (#8968)
- fix master: tmp revert of scroll change in #8625 (#9059)
Tests
v5.0.0
5.0.0 (2019-05-07)
Major new features
- Stack packs are a new way to present stack-specific advice within the Lighthouse report. This initial version detects if a site is running on WordPress and adds additional information to the report on how to take advantage of Wordpress plugins and configuration to improve performance (#7243, #8169, #8633, #8536, #8778).
- Performance budgets are a new feature of Lighthouse to help prevent your site performance from regressing over time. Set budgets for the resources a page should load and have Lighthouse alert if the budgets aren't met (#8539, #8522, #8727, #8709, #8427, #8708).
- Lighthouse plugins are a new way to add custom checks to a Lighthouse run. They are presented in the Lighthouse report alongside (or instead of) the standard results, and can leverage tools and results within Lighthouse to get their job done. See the docs for examples (#8728).
- In case you haven't noticed after all the screenshots, the HTML report has been redesigned!
New Audits
apple-touch-icon
PWA audit (#8857)performance-budget
(#8539)resource-summary
(#8522)max-potential-fid
(previously in the JSON output, new in the HTML report) (#8729, #8817)
Breaking changes
- Node 10 (LTS) or later is now required (#8117)
rawValue
has been removed from audit results. If the audit had a meaningful numeric result (like a metric), this result will now be onnumericValue
(#8343, #8385, #8421)- The accessibility category scoring has been reweighted based on severity (#8823)
- FCP accuracy has improved (in 'simulation' throttling) and may noticeably affect scores (#7513)
- The deprecated
--disable-device-emulation
flag has been removed. Use--emulated-form-factor
(#8289, #8334) - The
dom-size
now ignores elements in<head>
and limits scoring to only DOM nodes in the body (#7241) - The
diagnostics
audit details have had theirtype
value changed todebugdata
(#8298) - The format of the
screenshot-thumbnails
screenshots has changed. They are now a full image data URL (#8299)
New contributors!
Thanks to @arnabsen, @housseindjirdeh, @MarkelFe, @muuvmuuv, and @Meggin for their first contributions!
Core
- a11y: disable unused axe rules (#8373)
- artifacts: create a PublicGathererArtifacts type (#8382)
- runner: only pass requiredArtifacts to audits (#8760)
- crc: redirects leading to iframe shouldn't be marked as critical (#6704)
- driver: enable async stacks (#5504)
font-display
: do not use invalid sourceURLs (#8535)- jsonld: structured data validation updates (#8137)
- rect-helpers: make getBoundingRect take an array of rects (#8789)
- seo: support spanish in
link-text
audit (#7547) - filter blob urls from more audits (#8724)
- reword insecure error message (#8530)
- seo: add
image-alt
to SEO category (#8407) - add devtoolsNodePath property to ScriptElements artifact (#8133)
- always run axe gatherer last (#8216)
Report
- redesign: three dots for export button (#8629)
- redesign: design review feedback (#8785)
- redesign: whitespace, font weights (#8820, #8891, #8592, #8591, #8531, #8528)
- make v5 renderer compatible with v3 and v4 LHRs (#8822)
- redesign: fireworks (#8660)
- redesign: add toggle control to show metric descriptions (#8661, #8844)
- add table filter for third-party urls (#6351)
- redesign: remove units from table column headings (#8658))
- redesign: hide sparkline in mobile (#8562)
- redesign: add dark theme (#8425, #8843, #8845, #8842)
- redesign: add sticky scores header (#8524, #8883)
- redesign: runtime settings footer (#8229)
- add missing (#8240)
- redesign: new gauges, score scale, category headers, variables (#8121, #8300, #8329, #8307, #8222, #8529, #8532, #8590, #8653, #8720, #8722, #8763, #8872)
- extract init() function from report-template (#8228)
Clients
- devtools: remove ascii-encoded asset requirement (#8456, #8637)
- lr: increase Page.getAppManifest timeout to 10s (#8350)
- lr: apply, revert Lightrider timings to NetworkRequests (#8109, #8752)
- psi: pass score scale element to psi (#8827)
- lr: build report-generator-bundle (#8197)
Docs
- update throttling ([#8854](https:/...
v4.3.1
4.3.1 (2019-04-30)
Core
- support traces missing TracingStartedInBrowser (#7122)
- driver: only fail security state if scheme is not cryptographic (#8338)
Clients
- extension: remove github link in favor of copy to clipboard (#8294)
Deps
- snyk: update snyk snapshot (#8354)
Misc
- add releasing scripts (#8387)
v4.3.0
4.3.0 (2019-04-08)
New contributors!
Thanks to @rdlabo and @yashrajbharti for their first contributions!
Report
Core
- artifacts: rename Scripts to ScriptElements artifact (#7920)
- canonical: move canonical audit to LinkElements (#7080)
- font-display: handle carriage returns (#7712)
- font-display: ignore data URLs (#7684)
- image-aspect-ratio: ignore css background images (#7516)
- jsonld: add structured data validation (#6750)
- lhr: truncate measure timings to hundredths (#7748)
- logging: don't log when closing already closed page (#7576)
- main-thread-tasks: improve event-order error messages (#7745)
- main-thread-tasks: handle last task not finishing (#7728)
- main-thread-tasks: use toplevel tasks in main thread audit (#7711)
- oopif: attach to all descendants (#7608)
- oopif: skip OOPIF network records in some gatherers (#7640)
- optimized-images: cap execution to 5 seconds (#7237)
- settings: add lighthouse channel (#7312)
- remove hreflang gatherer (#7477)
- tap-targets: exclude sticky elements from tap targets audit (#7603)
- vuln-libs: match against all semver ranges provided by snyk (#7402)
- uses-http2: ignore requests from service-worker (#7197)
Docs
- add plugin recipe (#6965)
- readme: Foo integration (#8035)
- url-shim: add comment about public suffix lst (#7671)
Clients
- devtools: refactor build script (#7421, #7567)
- lr: always use transferSize from X-TotalFetchedSize header (#7478)
- lr: gather network timing numbers from headers (#7888)
- lr: add custom config support (#7613)
Tests
- better fatal trace logic error coverage (#7959)
- fix test coverage generation (#7475)
- finish removing mocha (#7429)
- upgrade jest to fix current node 11 build (#7413)
- smoke: remove trivial uses of rawValue from expectations (#7780)
- smoke: set Content-Type for files served by static-server.js (#7612, #8015, #8078)
Misc
- chore: remove old dep postinstall-prepare (#7647)
- remove unused typedef (#8075)
- specify types for some dependency-graph options objects (#7962)
- simplifications in simulator/connection-pool (#7894)
- drive-by code cleanup in BaseNode (#7723)
- remove lhr-lite.d.ts (#7991)
- remove obsolete Util.formatDisplayValue (#7628)
- various spelling fixes (#7370, #7492, #7427)
- fix unit-viewer command for windows (#7624)
- remove obsolete unused files (#7476)
- cli: add --plugins flag to load from the command line (#7407)
- gather: update comment re: ClientRect copying (#7785)
Deps
I18n
v4.2.0
4.2.0 (2019-03-06)
We expect this release to ship in the DevTools of Chrome 74.
New contributors!
@pra85, @tgfjt, @gidztech and @jburger424. Thank ya!
New Audits
- tap-targets: verify tap targets are well sized and distinct (#5846)
Report
- reorganize a11y audit groups (#7129)
- clip exceptionally long URLs in the header (#6858)
- details-renderer: use new audit-details types (#7192)
Core
- fid: add Max Potential FID to JSON (#5842)
- artifacts: unify AnchorElements into single gatherer (#7101)
- artifacts: include inline scripts in Scripts artifact (#7065)
- artifacts: create ViewportMeta computed artifact (#7264)
- artifacts: add TestedAsMobileDevice base artifact (#7280)
- bootup-time: better attribution (#7059)
- byte-efficiency: use more optimistic GZIP ratios (#7210)
- cache-headers: fix typo in must-revalidate (#7189)
- details-renderer: add snippet details renderer (#6999)
- diagnostics: add diagnostic audits (#7052)
- driver: add waitForFCP timeout (#7356)
- driver: collect network requests from out-of-process iframes (#6922)
- driver: add ' Chrome-Lighthouse' to useragent (#7297)
- emulation: bump chrome useragent to m74 (#7211)
- fcp-3g: remove unused i18n for LR compatibility (#7103)
- font-display: more accurately follow CSS spec (#7191)
- image-elements: cap natural-size fetch time (#7274)
- lantern: add configuration for precomputed network analysis (#7239)
- lhr: include resourceSize in network-requests audit (#7056)
- manifest: remove Manifest artifact in favor of new WebAppManifest (#7078)
- metrics: do not fail if TTI fails (#7132)
- network-analysis: set additional RTT to 0 not NaN (#7156)
- network-recorder: redirects started by script are set as initiators (#7352)
- plugins: add support for groups (#7304)
- seo: remove manual mobile-friendly audit (#7223)
- seo: add rel=canonical test for auditing a domain root (#7228)
- tap-targets: disable font size and tap targets audit on desktop (#7393)
- tap-targets: make tap targets failures more visible (#7373)
- tsc: fix audit details type hierarchy (#7177), #7154, #7285)
- unused-css: change title Defer -> Remove (#7235)
- give sort fallback for broken test details in node 11 (#7216)
- suppress protocol timeout for app manifest bug in LR (#7184)
- optimize tap-targets audit (#7130)
- remove NO_ERROR runtimeError when no error (#7358)
CLI
- write report in runLighthouse before quitting Chrome (#7339)
Deps
- snyk: update snyk snapshot (#7277, (#7233, #7167), #7116)
- updates to weed out transitive vulnerabilities (#7319)
- update cssstyle to parse more named colors, CSS4 colors (#7283)
Docs
- contributing.md: fix typos (#7170)
- fix throttling rate comment and tweak comcast bandwidth (#7374)
- improve explanations of extending and using config files (#7354)
- update throttling docs to public version (#7332)
- readme: add lighthouse-keeper to integrations (#7399)
- docs(related-projects) add react-lighthouse-viewer (#7262)
- readme: Add Fluxguard to the list of integrations (#7249)
- variability: add dedicated variance doc (#7175)
I18n
- fix max potential FID description (#7353)
- ICU syntax correction (#7320)
- seo strings prepped for i18n (#6860)
- translate strings in the tap-targets audit (#7111)
- a11y category title and description (#7113)
- import translated accessibility and lh-error messages (#7008)
Tests
- refactor driver, more gotoURL tests (#7270, #7242, #7212)
- run node 11 in CI (#7230)
- replace non-volatile snapshots with inline literals (#7217)
- smokehouse: refactor to enable Smokerider (#7284)
- smokehouse: +/- operator (#7343)
- smokehouse: gzip test to assert transfer and resource sizes (#7286)
- smokehouse: fail on finalUrl/errorCode mismatches (#7227)