Skip to content

Releases: GoogleChrome/lighthouse

v7.0.0

18 Dec 00:12
96eda60
Compare
Choose a tag to compare

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](https://github.co...
Read more

v6.5.0

01 Dec 15:15
f71cfc0
Compare
Choose a tag to compare

Full Changelog

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

New Contributors

Thanks to our new contributors 👽🐷🐰🐯🐻!

New Audits

  • preload an image if it is the LCP element (#11486)
  • issues logged in the Devtools Issues panel (#11409, #11710)

Core

  • metrics: support CLS for all frames (#11713)
  • metrics: support LCP in all frames for devtools throttling (#11701)
  • stacks: update to support october cms and joomla (#11729)
  • artifacts: encapsulate node details in an object (#11474)
  • critical-requests: refactor to use lantern graph (#11533)
  • hidpr-images: never recommend more than 2x (#11518)
  • driver: resume on debugger statements (#11727)
  • is-crawlable: always ignore mailto anchors (#11554)
  • error: add dedicated error string for NO_FCP (#11579)
  • dom-size: remove formatNumber (#11563)
  • gather-runner: use final document when reporting non-HTML error (#11620)
  • preload-lcp-image: properly calculate the potential savings (#11612)
  • tracehouse: improve CPU profiler timing refinement (#11608)
  • add devtools path to DOMStats (#11578)
  • tracehouse: split timeOrigin determination out of computeTraceOfTab (#11253)
  • tracehouse: use tasks to improve profiler timing data (#11446)
  • unsized-images: respect CSS rules from stylesheets (#11590)
  • runner: abstract gather phase out of runner (#11623)
  • driver: extract waitFor methods (#11685)
  • driver: extract evaluateAsync logic for FR driver (#11633)
  • lantern: traverse generator method (#11636)
  • js-bundles: return error object when sizes cannot be determined (#10449)
  • add timing instrumentation for base artifacts (#11672)

Experimental

  • full-page-screenshot: resolve node rects during emulation (#11536)
  • full-page-screenshot: drop max datauri size constraints (#11689)
  • full-page-screenshot: use dpr 1 (#11688)
  • full-page-screenshot: use layoutViewport width (#11402)
  • do not show element screenshot if out of bounds (#11538)
  • add script-treemap-data to experimental (#11271)
  • treemap: initialize app structure (#11635)
  • treemap opener, ?dev for localhost viewer and treemap (#11667)

Deps

  • remove cz-customizable as local dep (#11719)
  • update to typescript 4.1.2 (#11690)
  • bump various dependencies to quiet security alerts (#11693)
  • update brfs to fix build in node 15 (#11676)
  • upgrade lighthouse-plugin-publisher-ads to 1.3.0 (#11660)
  • add @types/yargs-parser (#11517)

Clients

  • viewer: extract the LHR from PSI json (#11650)

I18n

  • format bytes with consistent fractional width (#11489)
  • import (#11715)

Docs

  • readme: add Apdex to integrations (#11655)
  • update throttling reference (#11645)
  • configuration: update description of extends property (#11488)
  • releasing: update release process (#11502)

Tests

  • rebaseline devtools test, print each .lh-audit id (#11702)
  • smoke: attempt to fix cls-elements flake (#11426)
  • update github actions to use env files (#11674)
  • remove unnecessary jest babel transform (#11664)
  • use setup-protoc bugfix branch (#11665)
  • update static content shell version (#11634)
  • limit LCP element audit to m87 and earlier (#11625)
  • update MixedContent test to match ToT (#11584)
  • add devtools test for important data warning (#11544)
  • reset smoke transferSize expectations to reality (#11534)
  • add tests for networkRecordsToDevtoolsLog (#11523)
  • mock saveLhr and assert no unit test source changes (#11519)

Misc

  • build: give build-tracker a shared git history on PRs (#11449)
  • build: refactor viewer bundler into reusable GhPagesApp (#11564)
  • add script to automatically test lighthouse on a page from devtools (#11539)
  • add save latest run script (#11516)
  • remove compile-against-devtools.sh (#11520)

v6.4.1

02 Oct 20:40
6b199b2
Compare
Choose a tag to compare

6.4.1 (2020-10-02)

Full Changelog

This is a minor release to fix an issue in the npm package where v6.4.0 was published with a lot of unncessary files.

New Contributors

Thanks to our new contributor 👽🐷🐰🐯🐻!

Core

  • prevent attribute truncation side-effects (#11503)
  • save lhr on -A (#11509)

Tests

  • run every smoke test (except forms) for bundle (#11493)

Misc

  • add chromium webtests to npmignore (#11512)

v6.4.0

01 Oct 19:00
ae69bd6
Compare
Choose a tag to compare

6.4.0 (2020-09-30)

Full Changelog

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

New Contributors

Thanks to our new contributors 👽🐷🐰🐯🐻!

Notable Changes

  • large-javascript-libraries: move to experimental (#11484)
  • driver: don't clear indexedb, websql, or localstorage before run (#11438)

New Audits

  • unsized-images reland (#11340): This audit confirms users' images are explicitly sized; ultimately preventing layout shift and improving CLS.

Core

  • tracehouse: add CPU trace profiler model (#11072)
  • stack-packs: add Drupal pack (#10522)
  • stack-packs: move to lighthouse-stack-packs npm package (#11370)
  • axe: use our html snippet rather than axe's (#11362)
  • benchmarkindex: add workaround for Intel microcode fixes (#11483)
  • config: correct typo on throttling profile name (#11355)
  • image-elements: do not set untrusted natural dimensions (#11457)
  • installable-manifest: expose app manifest url (#11330)
  • is-on-https: add missing space in description (#11466)
  • is-on-https: remove <M84 codepaths (#11373)
  • js-usage: normalize url key (#11302)
  • password-inputs-can-be-pasted-into: add devtoolsNodePath (#11416)
  • normalize node information in gathering (#11405)
  • traverse shadow hosts in getNodePath (#10956)
  • minification-estimator: minify nested template literals in JavaScript (#11395)
  • expose service worker url on service worker audit (#11329)
  • preconnect: ignore unimportant origins (#11306)
  • autocomplete: add chrome suggestions, invalid warning (#11342)

Report

  • let fireworks eligibility ignore PWA category (#11200)
  • csv: add overall category scores (#11404)
  • normalize -0 to 0 (#11353)
  • set min-width on code table column (#11359)

Deps

  • lighthouse-stack-packs: update (#11492)
  • update third-party-web (#11469)
  • chrome-launcher to v0.13.4 (#11434)
  • update transitive lodash (#11448)
  • inquirer: upgrade to 7.3.3 (#11441)
  • snyk: update snyk snapshot (#11347)

Clients

  • devtools: update report-generator.js to match DevTools changes (#11411)
  • lr: enable uses-http2, add protocol override header (#11439)

I18n

  • import (#11494)
  • remove incorrect aliases (#11487)
  • use placeholders more for html terms (#11406)
  • use IcuMessage objects instead of string IDs (#10630)
  • code-escape in preconnect and preload (#11401)
  • accept array of locales in lookupLocale (#11349)
  • add more translator strings to font-size (#11338)

Docs

  • auth: add setCookie example (#11473)
  • variability: expand on lighthouse-ci usage (#11377)
  • remove PageSpeed Green from integrations (#11390)
  • add microlink to integrations (#11048)
  • releasing: align 2 days before branch. update managers (#11333)
  • add CPU throttling guide (#11325)

Tests

  • page-functions: add test for getNodePath (#11433)
  • check for dependencies when setting up blink tools (#11437)
  • hash more files for devtools test cache (#11417)
  • smoke: fix preconnect flake w/ a non-locally installed font (#11425)
  • add markdown link checker (#11358)
  • webtests: test pub ads plugin (#11364)
  • rebaseline webtests (#11351)
  • devtools: fail on unset/unbound env variable (#11331)

Misc

  • build: fix mangling for tap-targets gatherer (#11463)
  • script for analyzing results from gcp data collection (#11296)
  • make FormElements not a public artifact (#11476)
  • yarn open-devtools (#11445)
  • build: use terser on inline assets (#11461)
  • tweak typescript jsdoc for list format (#11447)
  • build: minify bundles with terser (#9605)
  • add score shapes to legend (#11440)
  • axe: rename axe types (#11432)
  • update stack packs, remove duplicated stack pack files (#11396)
  • build: fix devtools tests by making empty type files (#11418)
  • hide locale files by default in PRs (#11363)
  • fix typos in jsdoc types (#11367)
  • build: include publisher ads plugin in lightrider bundle (#11366)
  • flatten new service-worker audit details (#11361)
  • fix run-web-tests.sh (#11346)

v6.3.0

27 Aug 03:42
c2b7fcb
Compare
Choose a tag to compare

6.3.0 (2020-08-26)

Full Changelog

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

New Contributors

Thanks to our new contributors 👽🐷🐰🐯🐻!

Notable Changes

  • revert: move unsized-images to experimental due to perf impact (#11317)

New Audits

  • add preload-fonts audit (#11255)
  • add large-javascript-libraries audit (#11096)
  • add valid-source-maps audit (#11236)
  • add autocomplete to experimental config (#11186)

Core

  • global-listeners: dedupe duplicate events in GlobalListener gatherer (#11303)
  • module-duplication: ignore smaller modules (#11277)
  • non-composited-animations: add unsupported css properties (#11246)
  • non-composited-animations: add more actionable failure reasons (#11268)
  • non-composited-animations: update the "learn more" link (#11258)
  • renderer: improve the unknown timezone checks in util.js (#9822)
  • response-time: add time spent to details (#11307)
  • trace-elements: do not break on unresolvable node id (#11298)
  • font-size: remove deprecated DOM.getFlattenedDocument (#11248)

Report

  • third-party-summary: show resources for entity (#11219)
  • handle invalid urls for source location items (#11299)
  • show axe version in runtime settings (#10729)
  • use dash gauge for categories with entirely n/a audits (#11024)

Deps

  • update lighthouse-plugin-publisher-ads to 1.2.0 (#11301)

I18n

  • import (#11324)
  • translate remaining strings in font-size (#11327)
  • make double dollar validation less strict (#10299)

Docs

  • add Code of Conduct to project (#11212)
  • add audit naming guide (#11308)
  • throttling: replace comcast with throttle and add more windows options (#11143)
  • readme: add related projects: site-audit-seo (#11305, #11250)
  • readme: align headings with table of contents (#11288)

Tests

  • run chromium webtests for devtools integration (#11176, #11328)

Misc

  • benchmark: update BenchmarkIndex for m86 changes (#11304)
  • add benchmark script with octane and speedometer (#11247)
  • add gcp fleet creation scripts (#11257, #11233)
  • rephrase comments to be more inclusive (#11228)
  • fix types in duplicated-javascript (#11278)
  • fix typo in method name (#11239)
  • move doc link (#11300)

v6.2.0

06 Aug 21:33
3f73a48
Compare
Choose a tag to compare

6.2.0 (2020-08-06)

Full Changelog

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

New Contributors

Thanks to our new contributors 👽🐷🐰🐯🐻!

New Audits

Core

  • uses-http2: convert into opportunity (#10626)
  • lantern: fallback to FCP in 0-weight SI situations (#11174)
  • stacks: timeout stack detection (#11172)
  • add FormElements gatherer (#11062)
  • cls: add back early shift events if they were ignored (#11079)
  • critical-request-chains: prune requests without an initiator (#11151)
  • error if chrome version does not support lcp metric (#11016)
  • font-display: dedupe warnings by font origin (#11068)
  • gather-runner: error on non-HTML (#11042)
  • hreflang: assert that the href is fully qualified (#11022)
  • image-elements: gather correct natural size for srcset (#11101)
  • is-on-https: add mixed-content resolution (#10975)
  • lantern: ignore circular initiators (#11148)
  • link-elements: add devtoolsNodePath (#11061)
  • link-text: removing inicio from blocklist resolves #11026 (#11073)
  • page-functions: expose simulated throttling requestIdleCallback shim (#11032)
  • redirects: surface client-side redirects (#11027)
  • tracehouse: expose navigationStart only as timeOrigin (#11034)
  • add cap to amp stylesheet links for simulated throttling (#11069)
  • remove uses of deprecated extendedInfo field (#10779)
  • config: remove typo in a11y tables lists group (#11099)

CLI

  • clearTimeout for faster exit (#11170)
  • warn if Chrome died on its own instead of exit (#11139)

Report

  • correctly display CLS in budget table (#11209)
  • add full-page-screenshot to experimental config (#10716)
  • vertically center thumbnails (#11220)
  • truncate long attribute values in HTML snippets (#10984)
  • unused-javascript: update "learn more" link (#10985)

Deps

  • snyk: update script to prune <0.0.0 and update snapshot (#11223)
  • snyk: update snyk snapshot (#11046)
  • update dot-prop secondary dependency (#11198)
  • update jpeg-js to 0.4.x (#11167)
  • update third-party-web (#11137)

I18n

  • import strings (#11082, #11225)
  • disallow invalid text outside complex ICU arguments (#11135)
  • update AMP Optimizer URLs (#11088)
  • log the percentage of translated messages (#11149)

Docs

  • configuration: updates and tweaks (#11141)
  • update architecture.md (#11040, #11089)
  • readme: add Screpy to list of integrations (#11126)
  • readme: fix logging in programmatic use code example (#11116)
  • update devtools screenshot (#11092)
  • fix typo in viewer readme for loading json from url (#11080)
  • readme: update Foo integration (#11050)

Tests

  • istanbul ignore inpage function (#11229)
  • update chromestatus expecatations (#11221)
  • minification-est: add testcase with pre-minified bundle (#11191)
  • update to typescript 3.9.7 (#11158)
  • smoke: skip expectation with _chromeMajorVersion (#10976)
  • smoke: use caltrainschedule instead of polymer shop (#11052)
  • relax requestIdleCallback smoke expectation (#11041)
  • parallelize all the tests (#11009)
  • upgrade codecov to 3.7.0 (#11039)
  • update minor version of angular fixture redux (#11192)
  • run GitHub Actions on master and PRs (#11035)
  • run test-viewer in github actions (#11195)
  • add windows to GitHub actions CI (#11087)
  • use latest windows image on appveyor (#11083)
  • remove appveyor (#11171)

Misc

  • remove last extendedInfo in LH.Audit.Product (#11067)
  • add GCP collection scripts (#11189)
  • tighten RecursivePartial type (#11175)
  • release: tweaks (#11021)
  • compare-runs: fix error when no lh-flags arg passed (#11015)
  • annotate version-specific logic with COMPAT comments (#11019)
  • add tools to track issue response time (#11020)
  • tweak naming in element-screenshot renderer (#11152)
  • ignore coverage of page-functions (#11136)

v6.1.1

07 Jul 19:11
590111c
Compare
Choose a tag to compare

6.1.1 (2020-07-07)

Full Changelog

This is a patch release to fix an issue that only occurred in 6.1.0 for Node environments. It will only be released to npm.

Core

  • fetcher: ensure fetch doesn't cause unhandled promise (#11036)

v6.1.0

25 Jun 20:41
4c4b628
Compare
Choose a tag to compare

6.1.0 (2020-06-25)

Full Changelog

We expect this release to ship to DevTools in Chrome 85 86, and to PageSpeed Insights within 2 weeks.

New Contributors

Thanks to our new contributors 👽🐷🐰🐯🐻!

Notable Changes

  • If a page has publicly-accessible JavaScript source maps, Lighthouse will collect them to enhance the unused-javascript audit. In future versions of Lighthouse, source maps will be used for entirely new audits (#10990).
  • The report now uses KiB instead of KB. This is simply a label change; the value was and still is equal to 1024 bytes (#10870).

Unused JavaScript with source maps

New Audits

  • long-tasks: a new performance diagnostic that shows the longest main-thread-blocking tasks during load (#10736)
  • crawlable-anchors: a new SEO audit that checks that anchors link to resolvable URLs (#10662)

Core

  • unused-javascript: increase threshold to 20KiB (#10906)
  • layout-shift-elements: surface CLS contribution per shifted element (#10968)
  • emulation: bump chrome versions (#10787)
  • image-size-responsive: quantize DPRs (#10801)
  • long-tasks: add startTime property (#10942)
  • improve resilience of nodeId-dependent gatherers (#10877)
  • median-run: add computeMedianRun to lib (#10859)
  • preload: ignore cross-frame requests (#10847)
  • new inspector issues gatherer for Audit.IssueAdded events (#10664)
  • subRow refactor, rename to subItem (#10867, #10978)

Experimental

Features hidden behind the --preset=experimental flag.

  • legacy-javascript: reduce polyfills, fix core-js import in test (#10937)
  • legacy-javascript: use prescriptive language in title (#10850)
  • legacy-javascript: fix core-js 3 detection (#10852)
  • legacy-javascript: use third-party-web for scoring (#10849)
  • duplicated-javascript: display transfer size (#10701)

Deps

Report

  • metrics: use css grid so metrics are aligned (#10789)
  • don't dim disclaimer anchor links (#10981)
  • use acronyms and round metrics for shorter calc url (#10954)
  • update link for budgets audit (#10944)
  • add trailing slash to web.dev links (#10967)
  • fix the width of the 3-dots menu in topbar (#10855)
  • updated method signature typing to remove focusevent cast (#10858)
  • adjust LCP element description (#11018)
  • renderer: fix null Util.i18n in PSI renderer (#10822)
  • psi: show disclaimer and calclink (#10936)

Docs

  • add note about git repo required for @lhci/cli usage (#11006)
  • contributing: add tips for audit and gatherer PRs (#10690)
  • readme: update programmatic usage recipe (#10878)
  • readme: add new and updated integrations (#10838, #10901, #10826, #10818)

Tests

  • move proto roundtrip json to .tmp/ (#10995)
  • add heading key tests (#10746)
  • run ToT and stable Chrome for smoke tests in github workflow (#10989)
  • legacy-javascript: exit code 1 on failure (#10946)
  • smoke: use --debug in github action (#10919)
  • smokehouse: do not assert on flaky node path (#10827)

Misc

  • rename subHeading to subItemsHeading (#10979, #10983)
  • viewer: expose LHR as __LIGHTHOUSE_JSON__ (#10879)
  • use more inclusive and descriptive language (#10949)
  • update changelog for v6.0.0 (#10821, #10807)

v6.0.0

19 May 14:58
Compare
Choose a tag to compare

Raw commit changelog

We expect this release to ship in the DevTools of Chrome 84.

Notable changes

So many! See the Lighthouse 6.0: What's New blog post for an in-depth look.

🆕 New audits

⚗️ Experimental audits

These audits are not yet part of the default Lighthouse experience, but they will provide performance advice based on analysis of a page's JavaScript bundles. They can be tested today on the command line with the --preset=experimental flag.

  • legacy-javascript rummages through your bundles looking for polyfills and bundler transforms that aren't necessary or are outdated (#10303, #10568, #10564).
  • duplicated-javascript also takes a dive through a page's JavaScript looking for code that has ended up duplicated within bundles or across multiple bundles (#10314).
  • unused-javascript now runs by default (as mentioned above), but when run under experimental, the audit can use source maps to show what original source code was never run and could be postponed or eliminated (#10090).

New contributors!

Thanks to @TGiles, @roelfjan, @chruxin, @warrengm, @alexgreencode, @mikedijkstra, @egsweeny, @johnsampson, @jazyan, @B3none, @mattjared, @Malvoz, @Beytoven, @Munter, @jayaddison, @msomji, @piotrzarycki, @awdltd, @mathiasbynens, @Carr1005, @staabm, @SphinxKnight, @sk-, @AndreasKubasa, @jantimon, @kmanuel, @Kikobeats, @RolandBurrows, @nxqamar, @catalinred, and @baseeee for their first contributions! So many!

💥 Breaking changes

  • Performance metric scores have been reweighted to better reflect a user's loading experience (#9949).
  • Metric score curves have been updated when running a desktop Lighthouse test to account for the faster connection and CPU (#9911, #10756).
  • frameNavigated events are now used to track redirects, which means JS redirects are now accounted for when determining the run's finalUrl (#10339).
  • The emulated mobile device has moved from the Nexus 5x to the Moto G4 (but the existing DPR has been left unchanged) (#10191, #10749).
  • The mixed-content preset has been removed as it was not widely used and takes too long to be added to the default Lighthouse experience (#10159, #10750).
  • The full preset has been renamed experimental to signify that the code there may not be ready for running by default (#9930, #10311, #10333, #10585).
  • The emulated Chrome UA string has been updated to Chrome 80 (#9967).
  • installable-manifest: icons in the Web app manifest must be fetchable to be considered installable (#10168, #10320)

🤖💥 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.

  • LH.Audit.Context passed into audits is now treated as immutable. If code previously pushed to context.LighthouseRunWarnings to get a top-level warning, it should now pass that back in runWarnings on the audit's product (#10555).
  • Audit.computeLogNormalScore has been redefined to specify log-normal curves with median and p10 points (dropping the "point of diminishing returns"). Existing audits have been moved to this new definition so that no score changes should occur (#10715).
  • A loadFailureMode setting has been added to Config passes to control behavior in case of page load failure. Previously this was implicitly controlled (e.g. no offline page available did not cause an error) (#9987)
  • time-to-first-byte has been renamed server-response-time to better reflect what is being measured by the audit (#10735).
  • resource-summary: details.items.size has been renamed to transferSize for clarity (#10700, #10743).

🧱 Core

Improvements, bug fixes, clarifications

The following changes are considered to be bug fixes or updates to better match what was intended to be audited, but the changes may cause adjustments in audit scores or behavior.

  • add top-level warning if Lighthouse hit a timeout before load was complete (#10538)
  • add top-level warning if tested URL was redirected (#10157)
  • FCP + 5 seconds is now included as a minimum time that must be reached before the test page is considered loaded (#10505, #10516)
  • load simulation: add edges from initiatorRequest when there are duplicate records (#10097)
  • load simulation: keep first layout/paint/parse events regardless of duration (#9922)
  • load simulation: do not create self-dependencies via timers ([#10280...
Read more

6.0.0-beta.0 (2020-03-11)

16 Mar 20:46
468c10b
Compare
Choose a tag to compare
Pre-release

Full Changelog

This beta release will not ship in Chrome DevTools, but we'll ship the final 6.0 release.