Skip to content

Releases: GoogleChrome/lighthouse

1.5.1

10 Feb 21:23
Compare
Choose a tag to compare

1.5.1 (2017-02-10)

Bug Fixes

1.5.0

10 Feb 08:22
Compare
Choose a tag to compare

1.5.0 (2017-02-09)

There were 128 PRs landed for this release. These are their stories.

New Contributors!

@graph1994, @denar90, and @kiermasp

Notable Changes

  • Dropped support for Node earlier than v6 - #1519

    Node v6 became the Node long-term-support version in October 2016. After a suitable mourning period for v4 with a --harmony flag, Lighthouse has moved on and will only support v6+ going forward.

  • Improved selection of First Contentful and Meaningful Paint events from unusual traces - #1632, #1634

    Lighthouse has banished the dreaded -1 score that has long plagued runs for certain sites.

    image

    First Meaningful Paint is now detected much more robustly. While it is not yet a completely solved problem, a large class of these errors should be eliminated. Reporting on these errors has also improved over the ambiguous -1, clearly differentiating between an issue with Lighthouse and an issue with the page being tested.

  • Open local report in online report Viewer - #1179

    When viewing a Lighthouse HTML report generated locally—in the extension or from the command line—a new option is available in the "Export..." dropdown that allows you to upload to the Lighthouse Online Viewer.

    localreport

    viewer

    You can then use the Viewer share button to get a report URL that you can share freely.

    Behind the scenes, Viewer gets your permission via OAuth to create a GitHub secret gist and saves the report there. Since it's done as your gist, you maintain full control over the sharing of the report and you can delete it at any time. You can revoke the Viewer's permission to create gists under your GitHub settings.

  • Performance metrics are injected into trace saved with --save-assets for viewing in timeline - #1446

    Lighthouse metrics like "First meaningful paint", "Time to Interactive", etc are mocked out as User Timing measures and injected back into the trace taken by Lighthouse.

    image

    If you save a run's trace with --save-assets and then open it in DevTools or Timeline Viewer, you'll be able to see your key metrics in context with the full trace of the page load.

  • Throttling and emulation information in report - #1485, #1608, fc858ea

    screen shot 2017-02-09 at 22 43 27

    It's easy to forget what throttling and emulation settings were used for a particular Lighthouse run after some time has passed. The settings used are now saved in the raw JSON results and are printed at the top of the HTML report under the arrow dropdown.

  • UI to interactively block certain page resources and measure the load performance difference

    The first version of the Performance Experiment project is landing in 1.5.0. When Lighthouse is run with the --interactive flag, a special report is generated that allows interactive selection of costly page resources. The experiment server then reruns Lighthouse on that page with those resources blocked.

    screen shot 2017-02-09 at 23 45 34

    This lets you experiment with your page load performance, interactively testing the effects of blocking or delaying assets in your critical path.

New Audits

  • CSS usage - #1421, #1479, #1466, #1496, #1557

    Reports the number of unused style rules in your page and the byte/time savings of removing them:

    screen shot 2017-02-09 at 23 43 17
  • Image optimization - #1452, #1579

    Reports images that are unoptimized and the byte/time savings of optimizing them:

    screen shot 2017-02-09 at 23 43 49
  • Report Chrome's deprecated API warnings - #1470

    Lists console warnings from Chrome if your page is using deprecated APIs or features that have interventions:

    screen shot 2017-02-10 at 00 05 25
  • Responsive image sizing - #1497

    Reports images that are too big and the potential byte/time savings of sizing them correctly for the given device:

    screen shot 2017-02-09 at 23 44 23

Improvements

  • Audit: Catch more obsolete cases in no-old-flexbox audit - #1374
  • Audit: Add extended timing data to speed-index audit results - #1430, #1558
  • Audit: Base bytes- and time-saved estimates on mean throughput for that load - #1536
  • CLI: Disable more Chrome background features that may interfere with auditing - #1416
  • CLI: Close tab when Lighthouse is done with it - #1543, #1592
  • CLI: Use --output-path when saving artifacts and assets from run - #1601
  • CLI: Update --perf config to include latest perf audits - #1640
  • Extension: Move from a persistent background page to an event page - #1487
  • Extension: Option to disable other extensions during run for improved accuracy - #1492, #1604 (see #1689)
  • Gatherer: Issue all-event-listeners collection commands in parallel to improve performance - #1667
  • PerformanceExperiment: Create server to rerun Lighthouse with new options on POST request - #1393
  • PerformanceExperiment: Add UI for options to block asset loading on rerun - #1455, #1577
  • PerformanceExperiment: Add report sidebar to switch between multiple Lighthouse run results - #1477, #1597
  • Report: Expand audit <details> on print - #1468
  • Report: Add table formatter for audit details - #1505, #1538, #1546, #1547, #1545, #1622, #1636, #1678
  • Report: Reduce visual noise by auto-collapsing audit details and removing redundant info - #1561, #1598, #1606, #1617
  • Report: Remove 'Coming Soon' results from report - #1637
  • Report: Share save and export code in report and Viewer - #1594
  • Viewer: Make Viewer a PWA - #1554, #1571

Bug Fixes

  • Stop Lighthouse run if initial page request fails (404, domain not found, etc) - #1174, #1603, #1677
  • Audit: Check for proper mimetype in tags-that-block audit - #1432
  • Audit: Add proper parsing of meta viewport content - #1267
  • Audit: Ignore fragment in document URL comparison to correctly test offline loading - #1319, #1566
  • Audit: Filter out goog_* from user timings - #1563
  • Audit: Report proper first paint delay for blocking tags audits - #1555
  • Audit: Handle empty chain in critical-request-chains audit - #1620
  • Audit: Warn that geolocation-on-start gatherer cannot be run on insecure origins - #1679
  • CLI: Guard against launching multiple Chrome processes - #1436
  • CLI: Add support to find Chrome via LIGHTHOUSE_CHROMIUM_PATH variable on Windows - #1572
  • PerformanceExperiment: Fix various cross-browser report issues - #1593
  • Report: Improve filename eliding in audit details - #1437
  • Report: Various fixes for mobile and cross-browser issues - #1429, #1551, #1590, #1626
  • Report: Change generated HTML to be mostly valid; improve CSS consistency - #1575, #1627

Testing

  • Viewer: Add tests for file uploader - #1184
  • Update smokehouse to support deep comparisons of test expectations - #1450, #1457
  • Fix eslint base config, improve rules - #1462, #1440
  • Deal with Shop test site flakiness - #1491, #1493, #1654
  • Remove global installation of typescript on Travis - #1520
  • Use bash and node explicitly in npm scripts for cross-platform compatibility - #1510
  • Switch to a more concise unit test reporter - #1650

Docs

Refactor

  • Use json-stringify-safe only when necessary - #1435
  • Centralize console special characters for cross-platform compatibility - #1438, #1509
  • Add JS information to categories traced - #1442, #1444
  • Track enabled debugger domains for safe simultaneous use - #1474
  • Node v6+: switch to rest parameters, [].includes(), and default parameters - #1524, #1580, #1633
  • Introduce TraceOfTab computed artifact to centralize extraction of key trace events - #1549
  • Handle gatherer errors as native exceptions instead of -1 ad hoc system - #1560, #1623, #1641, #1624
  • Create audit error result to rid report of -1s and score more consistent...
Read more

1.4.1

05 Jan 03:10
Compare
Choose a tag to compare

1.4.1 (2017-01-04)

Bug Fixes

  • Don't subclass URL in url-shim so es5 transpilation is supported - #1407
  • Audit: Allow FMP trace event to appear slightly before the FCP - #1404

Docs

1.4.0

05 Jan 00:47
Compare
Choose a tag to compare

1.4.0 (2017-01-04)

New Contributors!

@dracos, @Lokson, and @AdrianoCahete

Improvements

  • Add URL blocking by pattern to driver - #1195
  • Extension: Add test URL to "Report Error" template - #1357
  • Extension: Keep Lighthouse extension popup active while running - #1185
  • Extension: Use live icon and badge text while running - #1367
  • Gather: Only run axe tests that we have audits for - #1257
  • Report: Only use markdown for injected HTML - #1226
  • Report: Style tweaks for DevTools report - 4a2f97a, 68ccb64
  • Report: Include total score in JSON and pretty output modes - #1356
  • Viewer: Add input for gist URL on mobile - #1341

Bug Fixes

  • Audit: Handle invalid URLs in external-anchors-use-rel-noopener audit - #1358
  • Audit: Handle invalid URLs in no-console-time and no-datenow audits - #1288
  • Audit: Make zero-length critical-request chains pass the test - #1303
  • Audit: Add "minimal-ui" as an allowed Manifest display value - #1268
  • Audit: Improved handling of invalid URLs in call site and event listener audits - #1390
  • Audit: Async stylesheet handling to limit false positives for stylesheets blocking first paint - #1389
  • CLI: Improve Windows console support - #1307
  • CLI: Ignore which failures when looking for Linux Chrome executable - #1395

Docs

  • Closure type check fixes - #1293

Refactor

  • Return artifacts from Runner (and move assets/artifacts saving to CLI) - #1163, #1400
  • PerformanceExperiment: Centralize more implementation in server.js - #1189

Dependencies

  • Only list mkdirp dependency once - #1284
  • Add marked - #1226

1.3.2

23 Dec 20:30
Compare
Choose a tag to compare

1.3.2 (2016-12-23)

Bug Fixes

  • Audit: handle Date.now uses with no call site URL in no-datenow audit - #1238

1.3.1

23 Dec 20:28
Compare
Choose a tag to compare

1.3.1 (2016-12-22)

New Contributor!

@XhmikosR

Improvements

  • Report: remove noreferrer from helpText links (#1190)
  • Viewer: add consolidated export button - #1182

Bug Fixes

  • Remove Node v7 URL parsing while bugs are being fixed - #1187
  • Fix driver.captureFunctionCallSites in the face of Error polyfills - #1218
  • Audit: handle anchor tags with no href in 'external-anchors-use-rel-noopener' audit - #1238
  • CLI: use exec, not spawn, to kill Chrome process on Windows - #1206
  • Viewer: don't check upload's file type, try to parse json file directly - #1234

Docs

  • readme: improve definition - #1216

1.3.0

20 Dec 00:51
Compare
Choose a tag to compare

1.3.0 (2016-12-19)

New Contributors!

@Janpot, @robdodson, and @WeiweiAtGit

Major Changes

Improvements

  • Use whatwg-url to parse URLs - #997
  • Use firstMeaningfulPaint trace event directly - #1066
  • Remove whitespace and comments from traceviewer-js - #1095, #1103
  • Audit: Remove browser-generated paintNonDefaultBackgroundColor event from user-timings - #1077
  • Audit: Handle where tracingStartedInPage doesn't precede navStart in trace - #1152, 9c8d13e
  • Audit: Add new required attr and attr-value accessibility audits - #1156
  • CLI: Add improved search for Chrome executable on Linux - #856
  • CLI: Add check that TypeScript files have been compiled before running - #1113
  • CLI: Add --view flag which serves generated report after Lighthouse run - #1130, f6afd22
  • Driver: Return meaningful errors from page context when evaluateAsync rejects - #1037
  • Report: Create "Fancier Stuff" section for newer (but not necessarily better) APIs - #1087
  • Report: Convert helpText toggle to pure CSS - #1104
  • Report: Stick header to top of page - #1121, #1132, #1133
  • Report: Make mobile-friendly and responsive - #1134
  • Report: Don't emit script tags in devtools report - #1105
  • Report: Use same favicon throughout all reports - #1172
  • Viewer: Move share button to core report - #1117
  • Viewer: Add support for copy and paste of report JSON - #1126, #1128
  • Viewer: Concat CSS files - #1153

Bug Fixes

  • Unmute some smoke test failures - #1081
  • CLI: Make rimraf async for deleting Chrome temp profile - #1127
  • CLI: Eliminate errors from calling ChromeLauncher.kill() twice - #1131
  • CLI: Fix html reportContext when generated by the CLI - #1171
  • Driver: Fix evaluateAsync when page has overridden native Promise - #1037, #1178
  • Report: Fix for formatting with unknown time zone - #1086
  • Report: Fix report color issues in Safari - #1114
  • Report: Fix print styling - #1180
  • Testing: Handle critical-request-chains audit promise rejections - #1100
  • Testing: Fix failing lint test - aa6d38b
  • Viewer: Disable sharing button if gist is already saved - #1118

Testing

  • Don't run Closure type checking on Travis - 558a26
  • Update eslint and eslint-config-google to latest - #1136, #1159, #1160
  • Audit: Add tests for notification-on-start - #1089
  • CLI: Add test for obsolete CLI flags - #1168
  • Viewer: Add analytics #1120, #1162
  • Viewer: Add build of viewer to CI test suite - #1160

Docs

  • Update jsconfig for intellisense - 835ae98
  • Audit: Fix type in no-console-time helpText - #1142
  • Audit: Add links to DoBetterWeb helpText docs - #1161
  • readme: Add Viewer to readme - #1164

Refactor

  • Audit: Add check for an audit's requiredArtifacts before running - #1088
  • Audit: Centralize auditing of axe-core results - #1167
  • CLI: Unify bin.ts execution and error-handling paths - #1141
  • Gatherer: Gatherers now return artifacts directly rather than setting this.artifact - #1122
  • Viewer: Split code into modules - #1116
  • Viewer: Use tsc to es3ify viewer code - #1150

Dependencies

1.2.2

30 Nov 00:22
Compare
Choose a tag to compare

1.2.2 (2016-11-29)

New Contributor!

@beaufortfrancois

Improvements

  • Extension: remove "tabs" extension permission - #1032

Bug Fixes

  • Ensure driver.captureFunctionCallSites resolves to an array - #1036
  • Handle call sites in eval'd code in driver.captureFunctionCallSites - #1073
  • Audit: identify noopener when in list of link types in rel - #1035
  • CLI: explicitly close outfile and errfile in chrome launcher - #1057
  • Extension: set minimum supported Chrome to m54 - #1027
  • Extension: better error message if user attempts to audit the Chrome Web Store - #1025
  • Report: work around unsupported timezones when pretty printing dates - #1067
  • Report: fix coloring by score - #1070

Docs

  • Report: better formatting for Manifest icon size list - #1041, #1044
  • Report: improve language consistency in audit description strings - #1045
  • Report: add helpText to remaining audits - #998
  • Report: remove scores from performance metrics; change to pass/fail - #1072

1.2.1

23 Nov 02:38
Compare
Choose a tag to compare

1.2.1 (2016-11-22)

Improvements

  • Audit: add DBW audit for <script> elements in head that block first paint - #965
  • Extension: Add error description to title of auto-generated github issues - #992

Bug Fixes

  • fix typo in default config file - f9f7c25
  • Audit: treat non-strings as an error in without-javascript gatherer and audit - #971
  • Audit: catch driver errors (and set on artifact.debugString) in geolocation gatherer - #999
  • Audit: fix property name used for error value in all-event-listeners gatherer - #1013
  • CLI: fix implicit-any-typed _ in chrome launcher - #981
  • Extension: fix aggregation category filtering based on selection in options panel - #973
  • Report: escape </script> tags when embedding raw results in the html page - #1003

Testing

  • Force npm install (for now) on Travis after their change to prefer yarn - #994

Docs

  • readme: new report screenshot - cb2ebfd

Refactor

  • Unify CLI and extension implementations of debugger protocol error handling - #977

1.2.0

17 Nov 22:48
Compare
Choose a tag to compare

1.2.0 (2016-11-17)

New Contributors!

@Bassoon08, @karanjthakkar, @chowse, @hsingh23, @olingern, and @patrickhulce

Major Changes

  • Launch DoBetterWeb (DBW) audits and gatherers as part of default Lighthouse run - #917
  • Report: Lighthouse report refactor and refresh - #926, #935

Improvements

  • Log errors in red, warnings in yellow - #860, #915
  • Audit: Add DBW audit for Mutation Events - #786
  • Audit: Add DBW audit for <link> elements in head that block first paint - #892
  • Audit: Add DBW audit for rel=noopener on external links - #912
  • Audit: Make geolocation audit return error if permission already granted - #925
  • CLI: Handle --quiet logging as silent - #881
  • Extension: Add integrated 'Report Error' button with pre-populated data - #944
  • Gatherer: Add support for collecting event listeners across all DOM nodes - #930
  • Report: Remove excessive EIL percentiles from report - #851
  • Report: Update TTI scoring label to 5000ms to match guidance - #947
  • Report: Cleanup of event listener extended info display - #952
  • Report: Group event listener extended info by call site location - #960

Bug Fixes

  • Restore log's status event payload - #883
  • Ignore protocol error from defensive DOM.disable call - #895, #907
  • Remove cache-contents gatherer from default config since currently no audit requires it - #900
  • Enforce audit naming consistency in the config file and filenames - #914
  • Audit: Handle error case from htmlwithoutjs gatherer and audit - #891
  • Audit: Prevent attempts to parse script URLs when no URL was found - #893
  • Audit: Don't include disabled <link>s in link-blocking-first-paint audit - #911
  • Audit: Handle undefined Accessibility violations array - #942
  • Audit: Only create a manifest display debugString when there is an error - #954
  • Audit: Look for non-async <link>s and fix unit of time in link-blocking-first-paint audit - #963
  • CLI: Add main field to CLI's package.json - #875
  • CLI: Disable Chrome's Google Translate service during Lighthouse run - #897
  • CLI: Disable Chrome's default Apps during Lighthouse run - #918
  • Driver: Dedupe function call site entries on location, not stack trace - #958
  • Extension: Properly filter the audits to run - #946
  • Gatherer: Handle CSS parse errors in stylesheet gatherer - #906
  • Report: Move gt handlebars helper to accessibility formatter - #929
  • Report: Fix handlebars and helper to show displayValue in reports - #938

Testing

  • Add DBW to smokehouse tests - #843, #901
  • Add script for bumping Travis to restart timing-out test runs - #913
  • Fix Travis timeouts by rerunning with random Chrome debug ports - #922

Docs

  • Audit: Update EQT/EIL design doc links to latest docs - #923
  • Audit: Fix no-datenow helpText typo - #955
  • Audit: Update uses-passive-event-listeners `description text - #956
  • readme: Add DBW to readme - #863
  • readme: Update development section with TypeScript info - #859
  • readme: Document yarn install command - #939

Refactor

  • Audit: Rewrite geolocation-on-start audit to use DBW tooling and testing - #903
  • CLI: Migrate chrome-debug binary to use internal Chrome launcher - #898
  • Report: Refactor report generation to be blob based and simpler - #908

Dependencies