Skip to content

Releases: GoogleChrome/lighthouse

4.1.0 (2019-01-28)

28 Jan 20:49
aa68eae
Compare
Choose a tag to compare

Full Changelog

New contributors!

@castilloandres you da man, man.

Core

  • font-size audit: count code points for text length (#6973)
  • cache headers audit: ignore private, must-validate, no-cache (#6835)
  • introduce Lighthouse plugins (#6959)
  • new audit: add FCP on 3G (#7062)

Refactor

  • refactor meta element artifacts to single meta-elements artifact (#7025)
  • images: cleanup ImageUsage to match other *Elements artifacts (#7030)
  • add baseArtifacts (with new WebAppManifest) to passContext (#6957)
  • use async/await in evaluateAsync (#7038)

Report / Viewer

  • renderer: do not attempt fireworks for devtools (#7090)
  • viewer: allow loading RunnerResult json (#7031)

Misc

  • readme: Add DebugBear to the list of integrations (#7036)
  • snyk: update snyk snapshot (#7079)
  • viewer: fix types to reference LH.Result (#7051)
  • replace TODOs with github issue links (#7049)
  • fix extension package path and viewer comments (#7032)

4.0.0 (2019-01-16)

16 Jan 22:05
bfa10f1
Compare
Choose a tag to compare

New contributors!

@mattzeunert, @dima74, @jeffbcross, @knoxmic, and @shogunsea. Thanks!

Major changes

  • A bevy of bug fixes and performance improvements.

  • A special reward for getting a perfect score.

  • A new layout for the PWA category, emphasizing speed, installability, and polish.

Lighthouse 4.0 PWA category

Breaking changes

  • New PWA category, organization, and scoring (#6395)
    • the PWA section of the report has a set of badges instead of a numeric score gauge (#6526, #6670)
    • the webapp-install-banner audit is now installable-manifest (#6630)
    • the offline check formerly in webapp-install-banner is the new audit offline-start-url (#6397)
  • audits' scoreDisplayMode 'not-applicable' is now 'notApplicable' (#6783)
  • no-websql audit removed due to performance cost (#6293)
  • speed-index scoring now scales based on throttling (#7007)
  • empty children arrays are now removed from critical-request-chain audit result (#6211)
  • the correct Nexus 5X screen height of 660 now used instead of 732 (#6932)
  • throttling constants under mobile3G renamed to the more accurate mobileSlow4G with no change in values (#6163)
  • typescript definition files are now located under types/ (#6617)
  • computed artifact files are now located under lighthouse-core/computed/ (#6618)

Full Changelog (in addition to the changes in 4.0.0-beta, 4.0.0-alpha.1, and 4.0.0-alpha.0)

Core

  • config: reorder categories to match new score gauge order (#6848)
  • driver: handle navigation rejections within Driver.gotoURL (#6739)
  • driver: exit early when testing page with insecure certificate (#6608)
  • driver: waitForFCP when tracing (#6944)
  • handle invalid network timing data (#6780)
  • fix usesObjectFit property for ImageElement (#6761)
  • fonts: resolve URLs relative to stylesheet (#6782)
  • lantern: remove unnecessary sort calls (#6900)
  • lantern: drop node id from error message (#6774)
  • minification: properly handle regex character classes (#6745)
  • preconnect: add warning if preconnect link is not used (#6694)
  • preload: warn when duplicate requests issued (#6849)
  • scoreDisplayMode: change 'not-applicable' to 'notApplicable' (#6783)
  • service-worker: check that start_url is within SW's scope (#6678)
  • speedindex: scale scoring coefficients based on throttling (#7007)
  • tap-targets: helper functions for working with ClientRects (#6703)
  • url: add intent protocol to NON_NETWORK_PROTOCOLS (#6711)
  • user-timings: move into computed artifact (#6719)
  • change displayValue to be string only (#6767)
  • add type checking to pwmetrics-events (#6980)
  • stricter LR-desktop metric scoring (#6969)
  • in-page functions refactor (#6702)

Deps

  • update axe-core to latest (#7020)
  • update details-element-polyfill to 2.2.0 (#6928)
  • update tsc to 3.2.2 (#6684)
  • snyk: update snyk snapshot (#6888, #6842)

Docs

  • readme: add speedrank to integrations list (#6987)
  • readme: added simple guidance on install options (#6810)
  • configuration.md: update link to pwmetrics (#6816)
  • scoring: update TTI references (#6865)
  • --help: use HTTPS link to bit.ly/chrome-flags (#6692)
  • ask people to test a11y issues upstream first (#6764)

Extension

  • return runnerResult from runLighthouseInExtension() (#6839)

I18n

  • localize LighthouseError messages (#6457, #6812)

Report

  • pwa: add tooltip to badge gauge (#6689)
  • add top-level section for passed audits that had warnings (#6989)
  • celebrate all 100s (#5455)
  • expand groups within "Passed Audits" by default (#6930)
  • fix margin on score gauge wrappers (#6948, #6972)
  • support narrow screens (#6857)
  • larger margins for audit group summaries (#6688)
  • clean up more clump/group/expandable cruft (#6982)

Tests

  • smokehouse: assert errorCode in expectations (#6851)
  • smokehouse: use node's native URLSearchParams (#6929)
  • add type checking to cli/tests/ (#6874)
  • report: restore old, disabled failed grouping test (#7006)

Misc

  • descriptions: more accurate metric descriptions (#6508)
  • emulation: use correct Nexus 5X screen size (#6932)
  • snyk: only keep vuln data for detectable libs (#6919)
  • clean up local names within Config (#6950)

4.0.0-beta (2018-11-29)

11 Dec 22:20
9f58eb4
Compare
Choose a tag to compare
Pre-release

Full Changelog

Core

  • service-worker: check that test page is in SW scope (#6609)
  • throw fatally on page hang (#6497)
  • define new DNS failure LH Error (#6579)
  • assert securityIssues before getPageLoadError (#6578)
  • remove protocol timeout for Page.navigate (#6413)
  • rename webapp-install-banner audit to installable-manifest (#6630)
  • computed-artifacts: fix cache and add perf timing (#6619)

Report

  • add PWA category badge gauge (#6526, #6670)
  • give passed-opportunities group an icon (#6594)
  • safari: fix dropdown overlap translateZ (#6546)
  • use details-element-polyfill from node_modules (#6593, #6607)

CLI

  • exit and kill Chrome on unhandledRejection (#6394)

Tests

  • add smoketest for slow service worker (#6648)

Misc

  • tsc: infer dom.createElement type from tag name (#6637)
  • rename core/gather/computed/ to core/computed/ (#6618)
  • rename typings/ to types/ (#6617)
  • bump extension version (#6569)

v4.0.0-alpha.2-3.2.1

16 Nov 00:08
Compare
Choose a tag to compare
v4.0.0-alpha.2-3.2.1 Pre-release
Pre-release

We accidentally published an alpha release to NPM without the @next publish tag as v4.0.0-alpha.1.

This new release (v4.0.0-alpha.2-3.2.1) is just a republish of our latest stable v3.2.1, to fix the bug for anyone using lighthouse@latest.

4.0.0-alpha.1 (2018-11-15)

16 Nov 00:06
6610036
Compare
Choose a tag to compare
Pre-release

Warning: This release was accidentally published to NPM without the @next publish tag. To address this, the stable v3.2.1 release was republished as v4.0.0-alpha.2-3.2.1. Sorry y'all.

Full Changelog

Core

  • skip h2 audit in LR (#6564)
  • config: faster category validation (#6445)
  • driver: wait for Page.frameNavigated for about:blank (#6446)
  • lib: add chrome-extension to URL allowedProtocols and add test (#6447)
  • pwa: audit and report group renames (#6494)
  • seo: properly handle anchors in SVG (#6483)
  • increase protocol timeout to 30s (#6505, #6531)

Report

  • pwa: give badges to groups with all passing audits (#6504)
  • pwa: add pwa-category-renderer (#6486)
  • compat: add details-element polyfill for Edge (#6465)
  • compat: fix support for edge (#6459)
  • compat: ignore Edge's Invalid Argument error (#6456)
  • compat: fix summary rendering in FF (#6448)
  • handle underscored not_applicable scoreDisplayMode (#6549)
  • css: make performance category more compact (#6437)
  • rename clump classes; give classes to all audit groups (#6482)
  • refactor rendering of top-level failed/passing/etc clumps (#6460)

Misc

  • build: fix viewer deploy (#6449)
  • timing: move timing-trace to async events (#6440)
  • update puppeteer to version 1.10.0 (#6493)
  • readme: use official appveyor badge (#6443)
  • i18n: convert accessibility audits (#6229)

4.0.0-alpha.0 (2018-10-31)

01 Nov 19:47
Compare
Choose a tag to compare
Pre-release

Full Changelog

New Contributors!

Thanks to @carlesnunez and @justin0022 for their first contributions!

Thanks to @CodeDem for improving how the image-aspect-ratio audit handles small images!

Huge thanks to myself (@hoten) for joining Lighthouse! Go me!

New Audits

  • offline-start-url (#6397)

Core

  • aspectratio: ignore placeholder images (#6305)
  • audit: add utm parameters when calling snyk (#6172)
  • audits: clarify diff between load-fast-enough-for-pwa's TTI and perf TTI (#6286)
  • axe: disable unused audits (#6180)
  • computed: fix new computed artifact interface (#6151)
  • config: add new PWA category groups (#6396)
  • critical-request-chain: remove empty children from LHR (#6211)
  • driver: save performance.now() to avoid conflict (#6387)
  • driver: request smaller trace in m71+ (#6117)
  • driver: stringify protocol error messages (#6302)
  • driver: address bckenny feedback on #6117 (#6285)
  • driver: reduce required traceCategories again (54baf91)
  • driver: recover from rejection on handleJavaScriptDialog (#6327)
  • emulation: fix missing space in mobile UA (#6161)
  • icons: defer to manifest-icon type hint for image type (#6230)
  • network: handle invalid NetworkRequests (#6157)
  • network-analyzer: move throughput to NetworkAnalyzer (#5900)
  • perf: add timing instrumentation to measure runtime perf (#3745)
  • proto: add proto definition for LHR (#6183)
  • simulator: start nodes in observed order (#5362)
  • unminified-javascript: replace esprima with custom tokenizer (#5925)
  • remove recoverOrThrow / err.fatal (#6343)
  • convert computed artifact loading to regular require() (#6204)
  • remove no-websql audit (#6293)
  • bail on run if insecure ssl certification (#6300)
  • make throttled offscreen-images work without TTI (#6039)
  • save HTMLElement.p.matches function to avoid conflict (#6283)
  • remove fonts gatherer, move font-display to use CSSUsage artifact (#6166)
  • remove last dependency on WebInspector (#6209)
  • add timeout to all protocol commands (#6347)
  • don't load blank page twice in first pass (#6369)
  • refactor finding of trace start (#6370)
  • increase Page.navigate timeout (#6412)

Report

  • fix tooltip hover animation (#6288)
  • reframe Fast 3G as Slow 4G (#6163)
  • fix html report viewing bugs for Safari (#6143)
  • dom-size: right-align the value column (#6372)

Clients

  • simplify viewer build process (#6426)
  • reorganize file structure and build process (#6344)
  • build: ignore all locales from devtools & extension build (#6170)
  • lr: skip early emulation now that lr-desktop is defined (#6158)
  • split browserifying and extension packaging into separate scripts (#6295)
  • simplify bundle building (#6282)
  • stop report bug prompt for file:// urls (#6278)

Deps

  • update typescript to latest patch release (#6235)
  • update to tsc 3.1.1 (#6126)
  • jsdom: upgrade to support Element.prototype.closest (#6411)
  • snyk: update snyk snapshot (#6377)

Docs

  • contributing: consistent capitalization (#6174)
  • new-audits: revise issue template (#6233)
  • readme: Add new related project, lighthouse-github-reporter (#6307)
  • readme: change image references be commit hash raw gh urls (#6116)
  • add primer on viewing the timing data (#6393)
  • typo fix (#6335)
  • Remove "sh" format for CLI --help output (#6311)
  • update docs for --output-path re: multiple output types (#6339)

I18n

  • roll latest messages from TC (#6388)
  • update test for new canonical locale codes (#6360)

Tests

  • use predictable numbers in golden LHR (#6404)
  • add basic sentry tests (#6308)
  • restore lr-entry test (#6214)
  • remove more mock computed artifacts (#6195)
  • add trace creator (#6196)
  • add networkRecord-to-devtoolsLog mocking utility (#6171)
  • add angular test for JS minification (#6138)
  • run node 10 on Travis (#6361)

Misc

  • tweaks for devtools client (#6127)
  • simplify proto npm scripts (#6406)
  • add cli module diagram (#6129)
  • keep download-chrome script in npm package (#6153)
  • lantern script path resolution fix (#6380)
  • add integrity data to yarn.lock (#6212)
  • add yarn integrity hashes for extension/viewer (#6277)
  • only allow 1 error from each audit/gatherer (#6215)
  • Revert "core(driver): stringify protocol error messages (#6302)" (#6328)
  • fix typo in feature request template (#6431)
  • remove plots/ (#6346)
  • build: cleanup extension package zip using gulp (#6210)
  • build: rename bundled files (devtools/ext/lr) (#6179)
  • eslint: enforce infix-op spacing (#6382)
  • logger: isVerbose(), getTimeEntries() (#6383)
  • logging: add hanging request logging in driver (#6297)
  • proto: made default LighthouseError enum 'UNDEFINED' (#6334)
  • proto: align proto whitespace (#6374)
  • proto: convert int32's into DoubleValue in proto (#6332)
  • proto: adjust configSetting.output in preprocessor (#6310)
  • proto: add audit_mode and timings (#6363)
  • proto: fix linting and add LR hook ([#6373](...
Read more

3.2.1 (2018-10-01)

01 Oct 17:46
3c03e2c
Compare
Choose a tag to compare

Full Changelog

Core

  • await js-libraries detection to fix Workbox always showing up (#6141)
  • emulation: set desktop viewport to 1350x940 (#6131)

3.2.0 (2018-09-26)

27 Sep 01:34
081864e
Compare
Choose a tag to compare

Full Changelog

New Audits

  • add js-libraries audit, just listing detected js libs (#6081)

Faster

  • driver: deliver trace as events rather than a stream (#6056)
  • network-recorder: consider iframe responses finished. helps avoid pageload timeout (#6078)
  • replace WebInspector traceparser with native JSON.parse (#6099)

Core

  • add emulatedFormFactor setting (#6098)
  • remove some trivial uses of WebInspector (#6090)
  • use cssstyle to parse CSS colors instead of WebInspector (#6091)
  • initial refactor of computedArtifact import/caching (#5907)
  • asset-saver: stop creating screenshot files during --save-assets (#6066)
  • content-width: not applicable on desktop (#5893)
  • driver: add check to make sure Runtime.evaluate result exists (#6089)
  • icons: Add PNG check to manifest icon validation (#6024)
  • lhr: add top-level runtimeError (#6014)
    • gather-runner: include error status codes in pageLoadError (#6051)
    • smooth rough edges of pageLoadError display and reporting (#6083)
  • net-request: transferSize now shared via 'X-TotalFetchedSize' (#6050)
  • don't allow analysis of file:// urls (#5936)

Report

  • dont show zero ms savings in preconnect, preload audits (#5983)
  • align table headings & columns left/right (#6063)
  • audit: make dom-size table prettier (#6065)
  • cursor:pointer on Passed Audits, etc (#5977)
  • psi: remove redundant varience disclaimer (#6110)
  • util: ✅ audits should be in Passed Audits (#5963)
  • vulnerable-jslibs: tweak snyk link for highlighted matches (#6096)
  • xbrowser: replace Typed OM getComputedStyle() with CSSOM equivalent (#5984)

CLI

  • add --print-config flag (#6107)

Deps

Docs

  • readme: add lighthouse4u (#6008)
  • readme: updated report screenshot to 3.1.0 (#6042)
  • readme: add lighthouse-badges to related projects (#5969)
  • recipes: update custom-audit package.json (#6007)
  • releasing: minor updates (#5345)

i18n

  • roll latest strings from TC (#6109)
  • mv locale files (#5981)
  • speed up replacement regex (#6072)

Misc

  • bump bundlesize threshold a little more (#6055)
  • runner: added locale to settings that can change between -G and -A (#6080)
  • tsc: add type checking to sentry usage (#5993)

v3.1.1

07 Sep 18:14
44dcc5d
Compare
Choose a tag to compare

Full Changelog

v3.1.0

06 Sep 22:42
6d6b3b6
Compare
Choose a tag to compare

Full Changelog since previous release

New Contributors!

Huge thanks to @midzer and @justinribeiro for being so darn helpful. Great stuff. :D

And thanks to @mettamatt for some helpful documentation. Who doesn't love better docs?! @kenguest also fixed up our grammar. 👍

Notable changes

  • red/orange/green color buckets for scores are tougher now. (#5831)
Previously Now
Red (bad) 0-44 0-49
Orange (average) 45-74 50-89
Green (good) 75-100 90-100

Scoring itself hasn't changed; only what color is used to decorate a score.

  • trace-processor: fix bug where top-level events weren't being found in the trace (#5841)

Core

  • normalize URL before checking equality (#5960)
  • expose LighthouseRunWarnings on audit context (#5684)
  • adjust audit titles for consistency (#5717)
  • export any page-functions as string (#5902)
  • all ByteEfficiency audits require a trace (#5840)
  • enhanced noopener output (#5857)
  • errors: class rename and re-source page load errors (#5972)
  • fix defaultConfig UIStrings and exit code for test (#5884)
  • remove last debugString references (#5856)
  • redirects: update redirects to use OpportunityDetails (#5791)
  • warn when extensions affected perf (#5666)
  • driver: handle when page redefines global.URL (#5748)
  • gather-runner: call clearDataForOrigin on teardown (#5933)
  • lhr: expose environment info (#5871)
  • lr: add LR presets for desktop and mobile (#5886)
  • lr: drop maxWaitForLoad 45 -> 35 (#5938)
  • network: handle LR transferSize (#5895)
  • network-analyzer: infer RTT from receiveHeadersEnd (#5694)
  • optimized-images: support non-standard mime types (#5688)
  • preload: remove CRC dependency (#5901)
  • screenshot-thumbnails: improve caching (#5976)
  • ttfb: reuse requestMainResource (#5657)
  • trace-of-tab: only use navstart of chrome/http documents (#5917)
  • tracing-processor: throw on no top level events (#5878)
  • uses-long-cache-ttl: handle multiple cache-control headers (#5745)

Extension

  • access core through module instead of Runner (#5855)
  • tweak runLighthouseAsInCLI jsdoc (#5812)
  • refactor option/flag passing (#5769)
  • remove X-UA-Compatible meta (#5739)
  • popup: keep feedback class (#5872)

i18n

  • add i18n 'type' for prlint (#5880)
  • minor message and description changes based on translator feedback (#5829)
  • reframe the ICU message descriptions with placeholders (#5737)
  • export rendererFormattedStrings (#5713)
  • extract performance category strings to UIStrings (#5716)
  • always use english for status logs (#5727)
  • add 'ln' locale which maps to 'fr' (#5879)
  • support descriptions (#5718)
  • add [ICU Syntax] label to relevant message descriptions (#5736)
  • import psuedo-locale json from TC (#5726)
  • incorporate 52 languages into messages pipeline (#5781)
  • add descriptions to UI strings (#5743)
  • add strings of the opportunity group split (first paint, overall) (#5744)
  • add locale fallback when language not supported (#5746)
  • localize strings at end of run (#5655)
  • always use formatted strings for extension popup (#5761)
  • add strings for user timing entries table (#5806)
  • sort the ICU messages when saved (#5771)
  • roll latest TC messages (#5802)
  • add localized messages for 52 locales (#5780)
  • add assertion script (#5686)
  • report: use LHR locale for toLocaleString (#5734)
  • report: localize CRC renderer strings (#5730)

Types

  • don't use index signature in LHErrors (#5896)
  • type check config files (#5858)
  • don't use index signature in simulator.js (#5897)
  • update debugger protocol type checking (#5836)
  • remove more reliance on implicit index signatures (#5874)
  • update types in emulation.js (#5830)
  • tighten traceOfTab timing types (#5887)
  • update to ts 3.1 to support new protocol defs (#5942)
  • update to latest tsc (#5581)
  • NetworkRequest.RESOURCE_TYPES type fix (#5851)
  • add explicit index signature in mainthread-work-breakdown (#5859)
  • cli: make LH.Flags type correct and consistent (#5849)

Report

  • link to our own "unused css" reference doc (#5698)
  • make red/orange/green score color thresholds tougher (#5831)
  • expose prepareLabData directly as a fn (#5818)
  • responsive styles (#5706)
  • add PSI.prepareLabData() (#5804)
  • adopt 80-char line-length license (#5757)
  • add method to get the final screenshot (#5673)
  • metrics: display metrics in seconds (#5914)
  • psi: add Util.prepareReportResult method (#5766)
  • psi: reset template styles on every call of prepareLabData (#5877)
  • psi: add lab data summary sentence (#5961)

New Audits

  • a11y: add manual audit for interactive element affordance (#5764) thx @joelhsmith!

Tests

  • quiet down collect-scripts during CI (#5801)
  • better display value tests with i18n (#5720)
  • dbw: remove createShadowRoot call (#5906)
  • jest: disable coverage collection by default (#5772)
  • smokehouse: update expectations for HTML Imports deprecation (#5943)
  • smokehouse: update passive listener expectations (#5899)

Deps

  • snyk: update snyk snapshot ([#5774](#577...
Read more