Lighthouse Changelog

What's new in Lighthouse 5.1.0

May 31, 2019
  • 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:
  • Lint: require file extension in require() (#9017)
  • Update a11y sample artifacts (#9010)
  • Remove compile-devtools on travis (#8988)
  • Smoke: re-enable dialog prompt (#8894)

New in Lighthouse 5.0.0 (May 8, 2019)

  • 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,
  • 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 on numericValue (#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 their type value changed to debugdata (#8298)
  • The format of the screenshot-thumbnails screenshots has changed. They are now a full image data URL (#8299)
  • 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)
  • Readme: add mention of free tier of Foo integration (#8160)
  • Readme: remove link to archived lighthouse-security project (#8141)
  • CLI:
  • Always handle chrome connection errors (#8583)
  • Document that CSV is output to file (#8520)
  • Deps:
  • [email protected] (#8781)
  • [email protected] (#8370)
  • Tests:
  • Lightwallet: add perf-budget smoke test (#8853)
  • Lightwallet: add budget to sample artifacts config (#8783, #8870)
  • Add tap targets to dobetterweb sample page (#8803)
  • Make update:sample-artifacts work for a single artifact type (#8802)
  • Smokehouse: capture microtask regression (#8379)
  • Smokehouse: support artifacts assertions in smoke tests (#8044)
  • Smokehouse: fix tests from sharing artifacts (#8897)
  • Smokehouse: change metric assertions from score to numericValue (#8805)
  • Fix sample_v2 generation, proto errors (#8605)
  • Misc
  • Proto: require protobuf 3.7.1, add stricter audit details test (#8863, #8867)
  • Proto: remove trailing whitespace; add contributing help (#8818)
  • Fix roundtrip sample_v2.json (#8815)
  • Rename release scripts properly (#8751)
  • Simplify LH.Config settings types (#8630)
  • Add correct listitem.js @fileoverview (#8586)
  • Update sample_v2 artifacts (#8243)
  • Ci: build report and deploy to now.sh on every commit (#8194)
  • Fix bad auto-merge (#8201)
  • Update collected i18n string (#8158)
  • --help: remove screenshots mention from --save-assets (#8263)
  • Lightwallet: update budget link (#8871)
  • Fix common typos (#8726)

New in Lighthouse 4.3.1 (May 3, 2019)

  • 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)

New in Lighthouse 4.3.0 (Apr 9, 2019)

  • New contributors!:
  • Thanks to @rdlabo and @yashrajbharti for their first contributions!
  • Report:
  • Include utm params in links to docs (#7441)
  • Fix PWA badge from disappearing on scroll (#7512)
  • 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:
  • Update nyc to latest (#7431)
  • Snyk: update snyk snapshot (#7392, #7589, #7943)
  • I18n
  • Hindi for seo and a11y (#7786, #8070)
  • Add new translations for SEO; updates for a11y and perf (#7720)

New in Lighthouse 4.2.0 (Mar 7, 2019)

  • 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)
  • Misc:
  • tap-targets: remove lines with trailing whitespace (#7105)
  • clean node_modules/.cache before travis builds its cache (#7388)
  • convert Flags comments to jsdoc for better intellisense (#7359)
  • export UA strings from emulation.js (#7318)
  • fix typo in comment (#7296)

New in Lighthouse 3.2.1 (Oct 2, 2018)

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

New in Lighthouse 3.1.1 (Sep 9, 2018)

  • Update report score legend to match 3.1.0's updated color buckets (#5985)

New in Lighthouse 3.1.0 (Sep 7, 2018)

  • 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)
  • Trace-processor: use new toplevel task event name (#5841)
  • 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 (breaking change) (#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)
  • 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), (#5773), (#5762), (#5691)
  • Depend on speedline-core, rather than the cli (#5800)
  • Docs:
  • Headless: Require Node 8 and apt install chromium (#5974)
  • Headless: example script to post report as gist (#5975)
  • Integrations: Add SpeedCurve to "Lighthouse Integrations" (#5732)
  • Link FCP audit description to lighthouse docs (#5850)
  • Puppeteer: remove appMode mention (#5923)
  • Readme: mention chrome-flags troubleshooting in getting started (#5916)
  • Report: add a renderer readme (#5725)
  • Scoring: http2 redirect PWA score issue (#5929)
  • Misc:
  • Cli: enableErrorReporting must be undefined by default (#5854)
  • Asset-saver: tweak output format of logAssets (#5696)
  • Logger: add time/timeEnd methods (#5905)
  • Fix grocers apostrophe typo (API's v APIs) (#5948)

New in Lighthouse 3.0.3 (Jul 18, 2018)

  • Core:
  • emulation: use setTouchEmulationEnabled (#5661)
  • response-compression: graceful recovery (#5578)
  • simulator: add DNS timing (#5607)
  • Misc:
  • convert strings to NetworkRequest.TYPES (#5674)
  • sentry: lower "could not load stylesheet" sampling to 0.01 (#5677)

New in Lighthouse 2.9.2 (Mar 16, 2018)

  • Audit fixes
  • render-blocking: handle amp-style stylesheets ([#4555]
  • font-size: recalibrate the legible font sizes ([#4550]
  • http-redirect: drop use of getSecurityState() to gain Android support ([#4661]
  • is-crawlable: determine if page indexing is blocked by robots.txt ([#4548]
  • is-on-https: consider about:* secure ([#4749]
  • main-resource: adjust main resource identification logic ([#4475]
  • response-compression: also check x-original-content-encoding ([#4607]
  • Core
  • driver: add timeout to getRequestContent ([#4718]
  • emulation: update Chrome userAgent to 66 ([#4779]
  • antern: improve RTT estimates ([#4552]
  • network-requests: add network requests audit ([#4631]
  • config: add support for audit/gatherer options ([#4394]
  • config: look up custom gatherer relative to the config file path ([#4751]
  • Deps
  • update axe-core to 3.0.0-beta.2 release for performance gains ([#4595](https://github.com/googlechrome/lighthouse/pull/4595)).
  • a11y test on mlb.com went from 27s to 9s! Thank you axe-core team!
  • Report
  • category: enable all categories to show audit groups, refactor CategoryRenderer ([#4278](https://github.com/googlechrome/lighthouse/pull/4278))
  • seo: link to "meta description" reference ([#4566](https://github.com/googlechrome/lighthouse/pull/4566))
  • description: update helpText for document.title audit ([#4677]
  • update docs links: rel=canonical reference ([#4701], bootup-time audit ([#4537](https://github.com/googlechrome/lighthouse/pull/4537)), s-crawlable/indexing reference ([#4678](https://github.com/googlechrome/lighthouse/pull/4678))
  • Misc
  • typecheck: add dependency graph to tsc ([#4605]
  • clean *.screenshots.json ([#4754]
  • polish the status updates within the popup ([#4780]
  • closure: fix BSD sed calls within compile-devtools ([#4736]
  • config: add merge-options test ([#4747]
  • Docs
  • contributing: fix link for closure annotations ([#4680]
  • headless-chrome: switch to prioritize headless ([#4553]
  • programmatic: add caveat about removing artifacts ([#4540]
  • understanding-results: description can dynamically be the failureDescription

New in Lighthouse 2.9.0 (Feb 8, 2018)

  • New Audits:
  • mixed-content https upgradeability (#3953)
  • preload: Adding <link rel=preload> audit (#3450)
  • font-display: Recommend font-display: optional (#3831)
  • CLI:
  • Add --extra-headers: Enable sending additional HTTP Headers (#3732)
  • Add --mixed-content: triggers the mixed content audit (#4441)
  • Core:
  • centralize error strings (#4280)
  • gather-runner: load a branded data URI, rather than about:blank (#4310)
  • mobile-friendly: convey MFT covers add'l mobile-friendly auditing (#4307)
  • response-compression: Exclude binary files from auditing (#4144)
  • screenshot-thumbnails: increase size to 120px (#4383)
  • start-url: switch to plain old fetch (#4301)
  • unminified-js: add tolerant option to esprima (#4338)
  • a11y: aXe perf: only collect provided resultTypes (#4380)
  • Deps:
  • bump metaviewport-parser to 0.2.0 (#4382)
  • snyk: update snyk snapshot (#4439)
  • Misc:
  • coverage: minimize impact of timeout due to istanbul's instrumentation (#4396)
  • escape usage of '#' in data URIs (#4381)
  • package: scripts don't require "--" for options to be forwarded (#4437)
  • sentry: update sampled errors list (#4277)
  • travis: Only build on Node 6 for PRs. Don't do the push build for non-master. (af8dbd0)
  • Extension: Fix scrollbar from showing on Options page (#4263)

New in Lighthouse 2.8.0 (Jan 13, 2018)

  • New Audits:
  • avoid plugins (#4218)
  • rel canonical: document has a valid rel=canonical (#4163)
  • unminified-css: identifies savings from unminified CSS (#4127)
  • unminified-javascript: detect savings from minifcation (#3950)
  • manual SEO audits (structured data & mobile friendly) (#4108)
  • Core:
  • lifecycle: allow gathering & auditing to run separately (#3743)
  • gather-runner: covert assertPageLoaded into soft failure (#4048)
  • network-recorder: use findNetworkQuietPeriods for networkIdle (#4102)
  • report-generator: extract scoring into separate module (#4161)
  • screenshots: fix getParsedImage of null (#4189)
  • trace-of-tab: error when TracingStartedInPage is missing (#4164)
  • errors-in-console: If exception info is not present use exception text (#4191)
  • estimated-input-latency: remove target reference (#4069)
  • bootup-time: Add 10ms threshold to bootup-time audits (#4223)
  • font-size: make font size artifact serializable (#4194)
  • Report:
  • a11y: Don't count non-applicable a11y audits toward score (#4052)
  • more attractive table/URL rendering (#4190)
  • improve devtools dark mode rendering (#4232)
  • categories: performance first, then pwa, then the others (#4095)
  • grammar: do not finalize audit titles with a period (c5f6d05)
  • change 'app' => 'web app' (29eecce)
  • Update vulnerability links (#4198)
  • Deps
  • bump js-library-detector (#4086)
  • chrome-launcher: Upgrade chrome-launcher to 0.10.2 (#4192)
  • Docs:
  • readme: update CLI options, output examples. add GAR/Lifecycle examples (#4185)
  • readme: demo flags in example of programmatic use (#3841)
  • lantern: update accuracy data (#4180)
  • extract Release Guide into own docs file (#4200)
  • releasing: document the LH Release Process (#4201)
  • results: describe audit's notApplicable/error (#4186)
  • Extension:
  • extract a new ext-bg file, splitting extn/devtools usecases (#4162)
  • Tests:
  • remove global timeout, set timeouts individually (#4224)
  • trace-parser: use fs over require (#4209)
  • travis: force use of GCE, remove dSE calls (#4222)
  • travis: remove upload artifacts (#4219)
  • travis: test on Node 9, drop testing on Node 7 (#4181)
  • Misc:
  • remove CLI's legacy domhtml output (#4176)
  • viewer: retain /plots/ when deploying new viewer version (#4079)

New in Lighthouse 2.7.0 (Dec 15, 2017)

  • New Audits:
  • accessibility: add accessibility manual audits (#3834)
  • font-size: legible font sizes audit (#3533)
  • hreflang: document has a valid hreflang code (#3815)
  • CLI:
  • compile out remaining typescript; add tsc type checking via jsdocs (#3747)
  • sentry: handle configstore errors; don't enabling error reporting (#3878)
  • Core:
  • config: show SEO audits in the UI (#4057)
  • critical-request-chains: corrected help text (#4009)
  • devtools-timeline-model: extract model generation to a computed artifact... (46f6d2a)
  • driver: add driver.wsEndpoint() (#3864)
  • gather-runner: fix headless chrome UA check (#4019)
  • noopener-audit: Only test http/https links (#4036)
  • optimized-images: skip mismatched mimeTypes (#4045)
  • seo: consistent help text links (#3901)
  • uses-webp: tweak text to be more next-gen focused (#3985)
  • vulnerable-libs: add fix for recovering from bad versions (#3932)
  • web-inspector: keep all experiments disabled, fixing conflict when running in DevTools (#4010)
  • Deps:
  • Bump ws to 3.3.2 (#3949)
  • Docs:
  • error-reporting: improve clarity for opt-out folks (#3876)
  • add lantern accuracy data (#3826)
  • fox mobile device testing example (#3887)
  • readme: Add Greta Lighthouse to list of Integrations (#4031)
  • Report:
  • perf-audits: adjust presentation of runtime cost audits (#4020)
  • warnings: warn only if using an old headless (#4021)
  • Tests:
  • smokehouse: adopt URLSearchParams for querystring manipulation (#3941)
  • Misc:
  • changelog: tweaks to changelog template and instructions (#3849)
  • changelog: minor changelog generation usability bumps (#3847)
  • codeowners: represent brendan's leave (#3991)
  • error-reporting: report unhandled promise rejections, take 2 (#3930)
  • error-reporting: tweak sentry levels and ignore list (#3890)
  • error-reporting: report unhandled promise rejections (#3886)
  • Update wording (6036117)

New in Lighthouse 2.6.0 (Nov 18, 2017)

  • New Audits:
  • redirects: avoid page redirects (#3308)
  • link-text: descriptive anchor text audit (#3490)
  • is-crawlable: page is blocked from indexing (#3657)
  • bootup-time: JS bootup time per script (#3563)
  • uses-long-cache-ttl: detects savings from leveraging caching (#3531)
  • mainthread-work-breakdown: audit for page-execution timings (#3520)
  • CLI:
  • do not double quote chromeFlags (#3775)
  • Core:
  • aspect-ratio: skip aspect ratio audit for svg (#3722)
  • audit: Ignore href=javascript:.* for rel=noopener audit (#3574)
  • bootup-time: refactor task/group iteration (33b1574)
  • config: add silent seo audits to default config (#3582)
  • config: re-weight a11y scores based on severity and frequency (#3515)
  • config: add category weight to perf config (#3529)
  • critical-request-chains: Remove iframe as Critical Request (#3583)
  • dependency-graph: add acyclic check (#3592)
  • devtools-model: fix missing Runtime.experiments object (#3514)
  • driver: increase default timeout to 45s (#3741)
  • driver: use execution context isolation when necessary (#3500)
  • emulation: remove use of deprecated Emulation.setVisibleSize (#3536)
  • errors-in-console: include runtime exceptions (#3494)
  • image-aspect-ratio: pass audit when no images are missized (#3552)
  • image-usage: add null check for parentElement (#3779)
  • add error reporting (CLI only) (#2420)
  • meta tag gatherers: meta tag search should be case-insensitive (#3729)
  • predictive-perf: predict FCP (#3730)
  • predictive-perf: refactor simulation logic (#3489)
  • response-compression: add transferSize sanity check (#3606)
  • record top-level warnings in LHR and display in report (#3692)
  • remove useless optimalValue (#3774)
  • speed-index: only compute perceptual speed index (#3845)
  • tags blocking first-paint: exclude script type=module (#3676)
  • Docs:
  • changelog-generator: Generate changelogs (#3632)
  • scoring: create documentation on scoring (#3436)
  • bug-labels.md: Create bug-labels.md (#3522, #3525, #3535)
  • contributing: pr title guidelines (#3590)
  • correct capitalization of GitHub (#3669)
  • add results object explainer (#3495)
  • new-audits.md: Principles and guidance for new audits (#3617)
  • readme: add MagicLight WebBLE integration (#3613)
  • readme: add Treo to the list of integrations (#3484)
  • throttling: because comcast throttles the websocket (bedb9a1)
  • Report:
  • Add print summary and print expanded options (#3578)
  • image-aspect-ratio: fix audit description (#3843)
  • redirects: reformat results, incl all requests and wasted time, (#3492)
  • render-blocking-stylesheets: improve actionability of helpText (#3544)
  • Tests:
  • update eslint (and goog config) to latest (#3396)
  • eslint: use --quiet flag rather than --silent (#3491)
  • smokehouse: add long task to byte-efficiency tester to deflake appveyor (#3804)
  • smokehouse: disable multiple shadow root deprecation test (#3695)
  • smokehouse: Passive event listener violation doesn't report on passive:false now (#3498)
  • web-inspector: add test for setImmediate polyfill (#3670)
  • Misc:
  • codereview: add CODEOWNERS file (#3591)
  • Bump chrome-launcher to 0.8.1 (#3479)
  • web-inspector: fall back to page's Runtime and queryParam() (#3497)
  • use undated Apache 2 LICENSE file (#3700)
  • audits: removed unused audit meta.category (#3554)
  • changelog: add commitlint config (for commitlintbot) (21e25aa)
  • commitizen: new-audit => new_audit (#3534)
  • jsconfig: Enable type checking for JavaScript (#3589)
  • logos: provide svg logo as png (8b3d7f0)
  • Fix minor grammatical error (#3638)
  • add cz-customizable to establish a commit message convention (#3499)
  • typo: fix typo in image-aspect-ratio audit (#3513)

New in Lighthouse 2.5.0 (Oct 5, 2017)

  • New Contributors!:
  • New contributors brought huge contributions of all-new audits, Chrome-launching improvements, and more complete documentation. Thanks to @mikecardwell, @rviscomi, @siddharthkp, @ThisIzKp, @rootulp, @kdzwinel, @LCartwright, @siteriaitaliana, @vinamratasingal, @alanyin0322, and @tkadlec!
  • New audits:
  • image-aspect-ratio best practice audit (#3084)
  • time-to-first-byte perf audit (last fixes and now enabled) (#2231)
  • errors-in-console best practice audit (#2836)
  • no-vulnerable-libraries best practice audit (#2372)
  • New audits in full-config:
  • unused-javascript coverage audit (#3085)
  • New audits in new SEO config (#2999):
  • meta-description SEO audit (#3227)
  • http-status-code SEO audit (#3311)
  • FastMode:
  • add predictive-perf shell and base audit (#2720, #3189)
  • add network estimation (#3187, cf5638d)
  • add CPU estimation (#3162, 18837da, 5b459a1)
  • Core:
  • update unused-css-rules audit to support new coverage format (full-config only) (#2518)
  • perf: use Audits.getEncodedResponse in optimized-images audit (#3087)
  • don't wait for Page.navigate to resolve to listen for page load (#3413)
  • include v8.execute trace event category (ab6aabd)
  • Report:
  • clarify wording of category descriptions (#3000)
  • add a linked-text type to details renderer (#3165)
  • fix: tame greedy markdown-link regex (#3312)
  • fix: prevent u2028 and u2029 from breaking the report (#3442)
  • improve descriptions for a11y audits (#3474)
  • Testing:
  • smokehouse: adjust unused-css-rules audit expectations (#3036)
  • bundlesize: fix reporting in github UI (ede05c0, #3392)
  • smokehouse: add basic smoke test for SEO audits (#3267)
  • travis: unset _JAVA_OPTIONS for DevTools' compile_frontend.py test (#3354)
  • eslint: enable comma-dangle rule, fix all new errors (#3324)
  • smokehouse: add time-to-first-byte smoke test (#3310)
  • Docs:
  • import audit glossary from SEO doc (#3207)
  • add advanced throttling guide (#3205)
  • readme: reduce minimum Chrome version to current stable (#3287, 5382f37)
  • readme: add explanation for Lighthouse Integrations section (#3418)
  • contributing.md: fix grammatical errors (#3419)
  • CLI:
  • add blockedUrlPatterns support to CLI (#3125)
  • adopt yargsParser directly for chromeFlags parsing (#3408)
  • Chrome-launcher:
  • chrome-launcher has moved to a standalone npm package
  • docs: add changelog (#2987)
  • improve SIGINT handling (#2959)
  • mute audio (#3028)
  • rev to 0.6.0 (ec38bcd, 970d3ca, e9d569c, 5e9a3ab)
  • handle errors inside spawnPromise (#2939)
  • switch to using standalone package (#3410)
  • Misc:
  • apply small license header to remaining files (#3309)
  • fix: remove redundant lighthouse-logger/ from npm package (#3411)
  • remove old perfX code (#3431)
  • update plots-config to use newer quiet parameters (#3464)
  • collect even malformed error messages in extension (#3473)
  • Deps:
  • upgrade bundlesize to 0.13.2 (#3122)
  • upgrade axe-core to 2.4.1 (#3284, #3320)
  • upgrade ws to 1.1.2 (2d2206b)
  • add yargs-parser at 7.0.0 (#3477, #3478)

New in Lighthouse 2.4.0 (Oct 5, 2017)

  • Core:
  • Refactor error throwing from assertPageLoaded (#2785) (07817f9)
  • refactor: cleanup unused waitFor properties (#2716) (9d8a32f)
  • All audits must specify helpText and failureDescription (#2737) (db3f324)
  • "shrink-to-fit" property in "viewport" meta is no longer invalid (#2863) (e1a04dd)
  • driver: add compat comment on PerfObserver GC bug (d7ffec1)
  • emulation comment: can remove injectedTouchEventsFunction in October (#2889) (a6b71c9)
  • Ignoring other extension assets in request compression audit (#2733) (428f637)
  • fix(anchors-with-no-rel): ignore same origin links (#2749) (78ec647)
  • add flag to FMP to indicate if it fell back to FMP candidate (#2851) (46d9ba7)
  • fix(script-blocking-first-paint): ignore latent resources (#2721) (ac99084)
  • Include version and commit in lighthouse-background.js bundle (#2236) (7fe3574)
  • Report:
  • link all a11y audits to 2.2 aXe docs (#2709) (924e1f1)
  • Update consistently-interactive.js helpText (#2740) (6f7bf29)
  • Update first-interactive.js helpText (#2739) (a829811)
  • Report: add lighthouse query param to axe helpText links (#2767) (4b9cbb5)
  • Report: Close export dropdown when printing (#2914) (a45ece8), closes #2914
  • report: draw metric lines over the screenshots. (#2848) (5832761)
  • fix(report): proper arrow state and consistent capitalization (#2750) (7c461bf)
  • Testing:
  • testing: prune smokehouse configs to improve testing perf (#2732) (e72483b)
  • CLI:
  • Fix: Basic chrome-flags parsing for embedded quotes (#2754) (78a8bd7)
  • Add hostname CLI flag and option for CriConnection (#2728) (0455283), closes GoogleChrome/lighthouse#2727
  • Chrome launcher
  • launcher: clarify priority of chromePath options (494f991)
  • chrome-launcher: add support for finding Chromium on Linux (#2950) (1c11021)
  • launcher: support enabling extension loading (#2650) (c942d17)
  • [chrome-launcher] Publish type definitions instead of source TypeScript files (#2898) (391e204)
  • Misc:
  • Lowercase fix for "service worker" (#2729) (15068bd), closes #2729
  • open extension's report in new window. (fix for incognito) (#2734) (934aa42), closes #2734
  • pass --enable-extensions on from manual-chrome-launcher (#2735) (37fd38c)
  • Update lighthouse-logger location in readme (#2867) (1347b15)
  • readme: added CHROME_PATH description from CLI help (#2757) (af003d4)
  • readme: update example using deprecated LIGHTHOUSE_CHROMIUM_PATH (#2929) (de408ad)
  • docs: Add a changelog.md (#2986) (626ce68)
  • Viewer: log expected URL (#2724) (6478f15)
  • Fix eslint max length in github-api.js (#2730) (1ca40de), closes #2730
  • add license file to launcher package. (#2849) (8bc6d18)
  • Add license to lighthouse-logger. (#2846) (367ea7a)
  • Clarification of hasOfflineStartUrl rule (#2775) (7097d5c)
  • gulpfile. add commented out lines for sourcemap generation. (6f53ab9)

New in Lighthouse 2.2.1 Beta (Jul 3, 2017)

  • chrome-launcher shipped as a standalone module:
  • The chrome-launcher module is now on npm. Great for working with Chrome headless.
  • Lighthouse viewer updated for Lighthouse 2.0:
  • The Lighthouse Report Viewer can now view data from Lighthouse 2.x, including JSON saved from the CLI, exported from the Chrome extension or DevTools Audits panel. (#2521)
  • New contributors:
  • Thanks to Katie Hempenius, Artur M, Kevin Farrugia, Piper Chester, Robin Drexler, and Mike Deverell. Due to the effort of these developers we now have an audit for checking for paste-blocked password fields, unified usage of toLocaleString(), a correct gulp recipe, a well-functioning chrome-launcher module, and improved clarity in the audit test descriptions. We truly appreciate all these improvements!
  • Since 2.1.0 we've had a number of other features, fixes, and improvements. Presented by category:
  • Report:
  • use locale string for all our number output (#2553)
  • fixes viewer CSS specificity and event listener removal (#2575)
  • freshen up audit helpText
  • Report: don't display score gauge header if there's only one. (#2261)
  • Remove report v1 and dependencies (#2596)
  • better debug message for missing network times (#2451)
  • spelling fix in link-name audit (#2496)
  • Theme Color wording fixes (#2466)
  • Audit + Gather:
  • fix(driver): wait for CPU idle via clientside perfObserver (#2473)
  • Remove /deep/ usage as it is being deprecated (#2371)
  • Remove BOM encoding from manifest (#2175)
  • Throw better error message when url is not auditable (#2527)
  • Critical Request Chain audit: fix incorrect transfersize. (#2610)
  • domstats: prevent infinite loop (#2561)
  • Performance & Traces:
  • docs: add trace interpretation guide (#2472)
  • use a stable sort for trace events (#2415)
  • remove old TTI code (#2452)
  • refactor(trace-of-tab): return timestamps in microseconds (#2454)
  • add streaming json parser
  • add streaming trace writer in saveAssets
  • Plots:
  • better support power use cases (#2464)
  • disable flaky smoke test (#2606)
  • smoke test for happy case (#2411)
  • Configurability:
  • feat(config): add audit blacklist support (#2499)
  • feat(config): add extends lighthouse:full (#2557)
  • docs(config): add config documentation (#2592)
  • Misc:
  • Add script to capture travis build durations (#2541)
  • Expose launch/lighthouse/report flow to consuming modules (#2602)
  • harden security of static-server (#2563)
  • is-on-https: check record.protocol for blob urls (#2538)
  • LH implementation of LogNormalDistribution; remove traceviewer (#2456)
  • move computed artifacts dependent on networkRecords to devtoolsLog (#2467)
  • Enable typescript coverage metrics for coveralls.