Skip to content

@connorjclark connorjclark released this May 31, 2019 · 62 commits to master since this release

Full Changelog

New contributors!

Thanks to our new contributors 👽🐷🐰🐯🐻!
@thebengeu
@boyney123

Core

  • gather-runner: treat NO_FCP as a pageLoadError (#8340)
  • logging: change log messages for gathering and trace retrieval (#9029)
  • tap-targets: don't exclude visible position absolute elements from audit (#7778)
  • budget: throw error on duplicate budget types (#8915)
  • config: split out config helpers (#9003)
  • gather-runner: always reset scroll position (reverted) (#8625)
  • image-elements: drop spritesheet logic (#8940)
  • refactor gather-runner control flow (#8964)
  • perf: speed up getNodePath (#9055)
  • performance-budget: add MP-FID as budget metric (#8905)
  • runner: fix missing timing properties in the browser (#9072)

Report

  • two rows for filmstrip on mobile (#8563)
  • move gauge styles to main stylesheet (#8893)
  • show metric descriptions by default when errors exist (#9054)
  • show fireworks only if all core categories score 100 (#9073)
  • make gauge font size and positioning dynamic (#9057)
  • hide 3rd party filter checkbox if all rows are 3rd party (#8966)
  • fix word breaking of display text, move metric disclaimer (#9030)
  • show nodeLabel for DOM nodes in addition to snippet (#8961)

Clients

  • devtools: move topbar out of scrollable container (#9077)
  • devtools: enable sticky header, top bar, and report ui features (#9023)
  • devtools: ignore dark mode media query (#9082)
  • devtools: update version in tests on lh roll (#8819)
  • lr: insert assets in lhr for logging purposes (#9002)

CLI

  • flags: accept comma-separated array values (#8933)

Docs

  • plugins: add link to field-performance plugin (#9051)
  • plugins: rename Google AdSpeed Insights to Publisher Ads Audit (#8906)
  • add lighthouse-plugin-field-performance to plugins (#9049)
  • add performance-budgets to related projects (#8971)

I18n

  • minor fr and ta translation updates (#8999)

Misc

  • assets: remove outdated extension screenshots (#9015)
  • dot-js require() everywhere (#9006)
  • remove unneeded reportCategories from LH.ReportResult (#9001)
  • update minify-trace scripts; extract to lib/ (#8968)
  • fix master: tmp revert of scroll change in #8625 (#9059)

Tests

  • lint: require file extension in require() (#9017)
  • update a11y sample artifacts (#9010)
  • remove compile-devtools on travis (#8988)
  • smoke: re-enable dialog prompt (#8894)
Assets 2

@brendankenny brendankenny released this May 8, 2019 · 102 commits to master since this release

5.0.0 (2019-05-07)

Full Changelog

Major new features

  • Stack packs are a new way to present stack-specific advice within the Lighthouse report. This initial version detects if a site is running on WordPress and adds additional information to the report on how to take advantage of Wordpress plugins and configuration to improve performance (#7243, #8169, #8633, #8536, #8778).

picture of Wordpress stack pack advice in the Lighthouse HTML report

  • Performance budgets are a new feature of Lighthouse to help prevent your site performance from regressing over time. Set budgets for the resources a page should load and have Lighthouse alert if the budgets aren't met (#8539, #8522, #8727, #8709, #8427, #8708).

picture of a Lighthouse performance budget in the HTML report

  • Lighthouse plugins are a new way to add custom checks to a Lighthouse run. They are presented in the Lighthouse report alongside (or instead of) the standard results, and can leverage tools and results within Lighthouse to get their job done. See the docs for examples (#8728).

picture of Lighthouse plugin results in the HTML report

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)

New contributors!

Thanks to @arnabsen, @housseindjirdeh, @MarkelFe, @muuvmuuv, and @Meggin for their first contributions!

Core

  • a11y: disable unused axe rules (#8373)
  • artifacts: create a PublicGathererArtifacts type (#8382)
  • runner: only pass requiredArtifacts to audits (#8760)
  • crc: redirects leading to iframe shouldn't be marked as critical (#6704)
  • driver: enable async stacks (#5504)
  • font-display: do not use invalid sourceURLs (#8535)
  • jsonld: structured data validation updates (#8137)
  • rect-helpers: make getBoundingRect take an array of rects (#8789)
  • seo: support spanish in link-text audit (#7547)
  • filter blob urls from more audits (#8724)
  • reword insecure error message (#8530)
  • seo: add image-alt to SEO category (#8407)
  • add devtoolsNodePath property to ScriptElements artifact (#8133)
  • always run axe gatherer last (#8216)

Report

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

  • chrome-launcher@0.10.7 (#8781)
  • axe-core@3.2.2 (#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)

I18n

  • import tamil translated strings (#8886)
  • SEO group titles and descriptions (#8719)
  • stack pack translations (#8154, #8415)
  • update seo group titles and descriptions (#8378)

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)
Assets 2

@connorjclark connorjclark released this May 2, 2019 · 228 commits to master since this release

4.3.1 (2019-04-30)

Full Changelog

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)
Assets 2

@connorjclark connorjclark released this Apr 9, 2019 · 228 commits to master since this release

4.3.0 (2019-04-08)

Full Changelog

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

I18n

  • Hindi for seo and a11y (#7786, #8070)
  • add new translations for SEO; updates for a11y and perf (#7720)
Assets 2
Mar 7, 2019
core(link-text): add japanese support (#5322)

@connorjclark connorjclark released this Mar 14, 2019 · 288 commits to master since this release

4.2.0 (2019-03-06)

Full Changelog

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

New contributors!

@pra85, @tgfjt, @gidztech and @jburger424. Thank ya!

New Audits

  • tap-targets: verify tap targets are well sized and distinct (#5846)

Report

  • reorganize a11y audit groups (#7129)
  • clip exceptionally long URLs in the header (#6858)
  • details-renderer: use new audit-details types (#7192)

Core

  • fid: add Max Potential FID to JSON (#5842)
  • artifacts: unify AnchorElements into single gatherer (#7101)
  • artifacts: include inline scripts in Scripts artifact (#7065)
  • artifacts: create ViewportMeta computed artifact (#7264)
  • artifacts: add TestedAsMobileDevice base artifact (#7280)
  • bootup-time: better attribution (#7059)
  • byte-efficiency: use more optimistic GZIP ratios (#7210)
  • cache-headers: fix typo in must-revalidate (#7189)
  • details-renderer: add snippet details renderer (#6999)
  • diagnostics: add diagnostic audits (#7052)
  • driver: add waitForFCP timeout (#7356)
  • driver: collect network requests from out-of-process iframes (#6922)
  • driver: add ' Chrome-Lighthouse' to useragent (#7297)
  • emulation: bump chrome useragent to m74 (#7211)
  • fcp-3g: remove unused i18n for LR compatibility (#7103)
  • font-display: more accurately follow CSS spec (#7191)
  • image-elements: cap natural-size fetch time (#7274)
  • lantern: add configuration for precomputed network analysis (#7239)
  • lhr: include resourceSize in network-requests audit (#7056)
  • manifest: remove Manifest artifact in favor of new WebAppManifest (#7078)
  • metrics: do not fail if TTI fails (#7132)
  • network-analysis: set additional RTT to 0 not NaN (#7156)
  • network-recorder: redirects started by script are set as initiators (#7352)
  • plugins: add support for groups (#7304)
  • seo: remove manual mobile-friendly audit (#7223)
  • seo: add rel=canonical test for auditing a domain root (#7228)
  • tap-targets: disable font size and tap targets audit on desktop (#7393)
  • tap-targets: make tap targets failures more visible (#7373)
  • tsc: fix audit details type hierarchy (#7177), #7154, #7285)
  • unused-css: change title Defer -> Remove (#7235)
  • give sort fallback for broken test details in node 11 (#7216)
  • suppress protocol timeout for app manifest bug in LR (#7184)
  • optimize tap-targets audit (#7130)
  • remove NO_ERROR runtimeError when no error (#7358)

CLI

  • write report in runLighthouse before quitting Chrome (#7339)

Deps

  • snyk: update snyk snapshot (#7277, (#7233, #7167), #7116)
  • updates to weed out transitive vulnerabilities (#7319)
  • update cssstyle to parse more named colors, CSS4 colors (#7283)

Docs

  • contributing.md: fix typos (#7170)
  • fix throttling rate comment and tweak comcast bandwidth (#7374)
  • improve explanations of extending and using config files (#7354)
  • update throttling docs to public version (#7332)
  • readme: add lighthouse-keeper to integrations (#7399)
  • docs(related-projects) add react-lighthouse-viewer (#7262)
  • readme: Add Fluxguard to the list of integrations (#7249)
  • variability: add dedicated variance doc (#7175)

I18n

  • fix max potential FID description (#7353)
  • ICU syntax correction (#7320)
  • seo strings prepped for i18n (#6860)
  • translate strings in the tap-targets audit (#7111)
  • a11y category title and description (#7113)
  • import translated accessibility and lh-error messages (#7008)

Tests

  • refactor driver, more gotoURL tests (#7270, #7242, #7212)
  • run node 11 in CI (#7230)
  • replace non-volatile snapshots with inline literals (#7217)
  • smokehouse: refactor to enable Smokerider (#7284)
  • smokehouse: +/- operator (#7343)
  • smokehouse: gzip test to assert transfer and resource sizes (#7286)
  • smokehouse: fail on finalUrl/errorCode mismatches (#7227)

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)
Assets 2

@paulirish paulirish released this Jan 28, 2019 · 365 commits to master since this release

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)
Assets 2

@brendankenny brendankenny released this Jan 16, 2019 · 381 commits to master since this release

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)
Assets 2

@paulirish paulirish released this Dec 11, 2018 · 435 commits to master since this 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)
Assets 2
Pre-release

@paulirish paulirish released this Nov 16, 2018 · 576 commits to master since this 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.

Assets 2
You can’t perform that action at this time.