UNPKG

344 kBMarkdownView Raw
1 <a name="7.1.0"></a>
2# 7.1.0 (2021-02-11)
3[Full Changelog](https://github.com/GoogleChrome/lighthouse/compare/v7.0.1...v7.1.0)
4
5We expect this release to ship in the DevTools of [Chrome 90](https://chromiumdash.appspot.com/schedule), and to PageSpeed Insights within 2 weeks.
6
7## New contributors
8
9Thanks to our new contributors 👽🐷🐰🐯🐻!
10
11- EEEEEEYHN @EYHN
12
13## Core
14
15* add hidden layout-shift variant metrics ([#12046](https://github.com/GoogleChrome/lighthouse/pull/12046))
16* cls: refactor CLS and CLS-AF ([#12069](https://github.com/GoogleChrome/lighthouse/pull/12069), [#12034](https://github.com/GoogleChrome/lighthouse/pull/12034))
17* image-elements: set 5s time budget, add _privateCssSizing ([#12065](https://github.com/GoogleChrome/lighthouse/pull/12065))
18* unsized-images: skip images that are zero-sized ([#12054](https://github.com/GoogleChrome/lighthouse/pull/12054))
19* tap-targets: drop custom node rect creation ([#12005](https://github.com/GoogleChrome/lighthouse/pull/12005))
20* alias element.currentSrc to element.src in node snippet ([#12007](https://github.com/GoogleChrome/lighthouse/pull/12007))
21* fix js edge case in minification estimator ([#12067](https://github.com/GoogleChrome/lighthouse/pull/12067))
22
23## Fraggle Rock
24
25Support for auditing user flows ([#11313](https://github.com/GoogleChrome/lighthouse/issues/11313))
26
27* fr: eliminate driver delegate from internal invocations ([#12015](https://github.com/GoogleChrome/lighthouse/pull/12015))
28* fr: add more gatherers to config ([#12016](https://github.com/GoogleChrome/lighthouse/pull/12016))
29* fr: add artifact dependency support ([#12045](https://github.com/GoogleChrome/lighthouse/pull/12045))
30* fr: extract network monitor class ([#12006](https://github.com/GoogleChrome/lighthouse/pull/12006))
31* fr: initial gatherer migration for snapshot, navigation ([#11993](https://github.com/GoogleChrome/lighthouse/pull/11993))
32* fr: add session.onAnyProtocolMessage listener ([#11995](https://github.com/GoogleChrome/lighthouse/pull/11995))
33
34## CLI
35
36* do not set AutofillShowTypePredictions ([#12038](https://github.com/GoogleChrome/lighthouse/pull/12038))
37
38## Deps
39
40* axe-core: upgrade to 4.1.2 ([#12075](https://github.com/GoogleChrome/lighthouse/pull/12075))
41* snyk: update snyk snapshot ([#12071](https://github.com/GoogleChrome/lighthouse/pull/12071))
42
43## Tests
44
45* smoke: tweak expectations based on feedback from LR ([#11962](https://github.com/GoogleChrome/lighthouse/pull/11962))
46* trace-elements: test node eviction with unit rather than smoke ([#12056](https://github.com/GoogleChrome/lighthouse/pull/12056))
47
48## Misc
49
50* ci: increase fetch-depth for codecov SHA ([#12079](https://github.com/GoogleChrome/lighthouse/pull/12079))
51* git3po: merge when green for unstable state too ([#12078](https://github.com/GoogleChrome/lighthouse/pull/12078))
52* add issue assigner bot ([#12052](https://github.com/GoogleChrome/lighthouse/pull/12052))
53* tighten querySelector types ([#12013](https://github.com/GoogleChrome/lighthouse/pull/12013))
54
55<a name="7.0.1"></a>
56# 7.0.1 (2021-01-26)
57[Full Changelog](https://github.com/GoogleChrome/lighthouse/compare/v7.0.0...v7.0.1)
58
59We expect this release to ship in the DevTools of [Chrome 90](https://chromiumdash.appspot.com/schedule), and to PageSpeed Insights within 2 weeks.
60
61## New contributors
62
63Thanks to our new contributors 👽🐷🐰🐯🐻!
64
65- Tyler Kindy @tkindy
66
67## Core
68
69* handle timer throttling in DevTools to avoid timeouts ([#11987](https://github.com/GoogleChrome/lighthouse/pull/11987))
70* console-messages: use source-location ([#11899](https://github.com/GoogleChrome/lighthouse/pull/11899))
71* errors-in-console: ignore BLOCKED_BY_CLIENT.Inspector errors ([#11901](https://github.com/GoogleChrome/lighthouse/pull/11901))
72* font-size: handle valueless attributes for inline styles ([#11934](https://github.com/GoogleChrome/lighthouse/pull/11934))
73* full-page-screenshot: get the MAX_TEXTURE_SIZE from the browser ([#11847](https://github.com/GoogleChrome/lighthouse/pull/11847))
74* metrics: support FCP for all frames with devtools throttling ([#11874](https://github.com/GoogleChrome/lighthouse/pull/11874))
75* normalize creation of NodeValue ([#11877](https://github.com/GoogleChrome/lighthouse/pull/11877))
76* full-page-screenshot: do not render zero size rects ([#11853](https://github.com/GoogleChrome/lighthouse/pull/11853))
77* replace most usages of evaluateAsync with structured evaluate ([#11754](https://github.com/GoogleChrome/lighthouse/pull/11754))
78* trace: compute trace for main frame and any child frames ([#11760](https://github.com/GoogleChrome/lighthouse/pull/11760))
79
80## Fraggle Rock
81
82Support for auditing user flows ([#11313](https://github.com/GoogleChrome/lighthouse/issues/11313))
83
84* add navigation runner ([#11975](https://github.com/GoogleChrome/lighthouse/pull/11975))
85* config: refactor config cloning for fraggle rock ([#11759](https://github.com/GoogleChrome/lighthouse/pull/11759))
86* add navigations to config ([#11957](https://github.com/GoogleChrome/lighthouse/pull/11957))
87* add timespan runner ([#11944](https://github.com/GoogleChrome/lighthouse/pull/11944))
88* filter configs by gather mode ([#11941](https://github.com/GoogleChrome/lighthouse/pull/11941))
89* add base config ([#11915](https://github.com/GoogleChrome/lighthouse/pull/11915))
90* add base gatherer class ([#11917](https://github.com/GoogleChrome/lighthouse/pull/11917))
91
92## Report
93
94* remove title from audit clump expand ([#11989](https://github.com/GoogleChrome/lighthouse/pull/11989))
95* use source maps to show original file name ([#10930](https://github.com/GoogleChrome/lighthouse/pull/10930))
96* convert v6 emulatedFormFactor to v7 formFactor ([#11876](https://github.com/GoogleChrome/lighthouse/pull/11876))
97
98## Deps
99
100* snyk: update snyk snapshot ([#11979](https://github.com/GoogleChrome/lighthouse/pull/11979), [#11952](https://github.com/GoogleChrome/lighthouse/pull/11952))
101
102## I18n
103
104* prevent strings with identical message and description ([#11976](https://github.com/GoogleChrome/lighthouse/pull/11976))
105* import ([#11947](https://github.com/GoogleChrome/lighthouse/pull/11947))
106
107## Docs
108
109* chromium-web-tests: add debugging tips ([#11684](https://github.com/GoogleChrome/lighthouse/pull/11684))
110* readme: add plugin: lighthouse-plugin-crux ([#11868](https://github.com/GoogleChrome/lighthouse/pull/11868))
111
112## Tests
113
114* legacy-javascript: sync results ([#11980](https://github.com/GoogleChrome/lighthouse/pull/11980))
115* smoke: add category to run some perf tests in parallel ([#11932](https://github.com/GoogleChrome/lighthouse/pull/11932))
116* revert mistaken change to yarn unit-core ([#11955](https://github.com/GoogleChrome/lighthouse/pull/11955))
117* run code coverage in github actions ([#11770](https://github.com/GoogleChrome/lighthouse/pull/11770))
118* remove travis ([#11902](https://github.com/GoogleChrome/lighthouse/pull/11902))
119* increase treemap pptr timeouts ([#11916](https://github.com/GoogleChrome/lighthouse/pull/11916))
120* add missing arrays to InspectorIssues sample artifact ([#11871](https://github.com/GoogleChrome/lighthouse/pull/11871))
121* add more files in lighthouse-core/tests to tsconfig ([#11728](https://github.com/GoogleChrome/lighthouse/pull/11728))
122* add warn-not-offline-capable smoketest ([#11842](https://github.com/GoogleChrome/lighthouse/pull/11842))
123
124## Misc
125
126* add type checking to page functions ([#11958](https://github.com/GoogleChrome/lighthouse/pull/11958))
127* proto: clarify deprecated state of EmulatedFormFactor enum ([#11946](https://github.com/GoogleChrome/lighthouse/pull/11946))
128* fix "fast" npm script ([#11997](https://github.com/GoogleChrome/lighthouse/pull/11997))
129* use typed-query-selector for native querySelector ([#11990](https://github.com/GoogleChrome/lighthouse/pull/11990))
130* return specific html element type for dom.find ([#11526](https://github.com/GoogleChrome/lighthouse/pull/11526))
131* build: extract 'yarn link…' rigamarole to own npm script ([#11977](https://github.com/GoogleChrome/lighthouse/pull/11977))
132* proto: backport proto formatting fixes ([#11978](https://github.com/GoogleChrome/lighthouse/pull/11978))
133* scripts: fix unbound variable in open-devtools ([#11845](https://github.com/GoogleChrome/lighthouse/pull/11845))
134* update-report-fixtures: use a consistent server port ([#11848](https://github.com/GoogleChrome/lighthouse/pull/11848))
135* add type checking to TagsBlockingFirstPaint ([#11841](https://github.com/GoogleChrome/lighthouse/pull/11841))
136
137<a name="7.0.0"></a>
138# 7.0.0 (2020-12-16)
139[Full Changelog](https://github.com/GoogleChrome/lighthouse/compare/v6.5.0...v7.0.0)
140
141Lighthouse 7.0 includes a number of programmatic breaking changes and new audits in the **Accessibility** and **PWA** categories. There were some improvements in the accuracy of metric calculations, but it is not expected that **Performance** scores will change significantly for almost all sites. There may be larger changes in **Accessibility** and **PWA** scores due to the new audits.
142
143This release is expected to ship in the DevTools of [Chrome 89](https://chromiumdash.appspot.com/schedule), and to PageSpeed Insights within 2 weeks.
144
145## Notable changes
146* A **full-page screenshot** is taken and used to improve the experience of viewing DOM element details. Now a thumbnail will be shown and clicking reveals a lightbox showing where in the page the DOM node lived. This screenshot increases the size of the Lighthouse JSON by ~33%. ([#11769](https://github.com/GoogleChrome/lighthouse/pull/11769), [#11768](https://github.com/GoogleChrome/lighthouse/pull/11768), [#11829](https://github.com/GoogleChrome/lighthouse/pull/11829), [#11846](https://github.com/GoogleChrome/lighthouse/pull/11846), [#11852](https://github.com/GoogleChrome/lighthouse/pull/11852))
147* The **PWA Category** changed fairly significantly.
148 - The _Installable_ group is powered entirely by the capability checks that enable Chrome's installable criteria. These are the same signals seen in the _Manifest_ pane in Chrome DevTools. As such, the "Registers a service worker…" audit moves to the _PWA Optimized_ group, and the "Uses HTTPS" audit is now included as part of the key "installability requirements" audit.
149 - The _Fast and reliable_ group has evaporated into thin air. 🌬 Now that revamped "installability requirements" audit includes offline-capability checking, we've removed the dedicated audits for checking if the current page and `start_url` respond with 200 when offline. Separately, the "Page load is fast enough on mobile network" audit was removed—while it's no longer part of the PWA section, we encourage folks building a PWA to consult the Performance category to ensure their web app is speedy and delightful.
150* A **nightly Lighthouse build** is now available as [`lighthouse@next`](https://www.npmjs.com/package/lighthouse?activeTab=versions) on npm. Note that while automated tests pass before publishing, it's expected that this version will be more unstable than the regular releases ([#11792](https://github.com/GoogleChrome/lighthouse/pull/11792), [#11805](https://github.com/GoogleChrome/lighthouse/pull/11805), [#11810](https://github.com/GoogleChrome/lighthouse/pull/11810))
151* The accessibility-testing library **`axe-core`** has been updated to the latest 4.1.1 release. The accessibility audits are now faster, more robust, and include multiple new checks ([#11661](https://github.com/GoogleChrome/lighthouse/pull/11661))
152* Lighthouse runs a small benchmark at startup, and will now include a warning if the [test machine appears underpowered](https://github.com/GoogleChrome/lighthouse/blob/master/docs/throttling.md#cpu-throttling) and may be affecting the accuracy of the Lighthouse metrics ([#11350](https://github.com/GoogleChrome/lighthouse/pull/11350))
153* Joomla and October CMS detection has been added, so pages on those platforms will now get customized advice on some Lighthouse audits ([#11788](https://github.com/GoogleChrome/lighthouse/pull/11788))
154
155## New contributors
156
157Thanks to Kohta Ito (@koh110) and Sam Stoelinga (@samos123) for their first contributions!
158
159## 🆕 New audits
160
161* The new `installable-manifest` PWA audit, mentioned above, uses Chrome's own installability criteria so it will always stay in sync with installability requirements ([#11745](https://github.com/GoogleChrome/lighthouse/pull/11745))
162* `third-party-facades` looks for third-party embeds in the test page that can be lazy loaded with a static "facade". If the embed isn't necessary for immediate interaction by a user, consider using one of the facades to speed up page load ([#11290](https://github.com/GoogleChrome/lighthouse/pull/11290))
163* With the axe version upgrade comes new audits ensuring accessible naming: `aria-treeitem-name`, `aria-command-name`, `aria-tooltip-name`, `aria-meter-name`, and `aria-progressbar-name` ([#11661](https://github.com/GoogleChrome/lighthouse/pull/11661))
164
165## ♻️ Removed audits
166
167* The update to latest `axe-core` also removes two audits that weren't checking much: [`layout-table`](https://github.com/dequelabs/axe-core/pull/1885) and [`video-description`](https://github.com/dequelabs/axe-core/pull/1737) ([#11661](https://github.com/GoogleChrome/lighthouse/pull/11661))
168* `works-offline` and `offline-start-url` audits were removed as their checks are now covered by the new `installable-manifest` implementation ([#11806](https://github.com/GoogleChrome/lighthouse/pull/11806))
169* The `load-fast-enough-for-pwa` audit has also been removed since Lighthouse's existing performance metrics more than cover the needs there ([#11764](https://github.com/GoogleChrome/lighthouse/pull/11764))
170* `without-javascript` has been removed ([#11711](https://github.com/GoogleChrome/lighthouse/pull/11711))
171
172## 💥 Breaking changes
173
174* Device-emulation config settings and CLI flags have changed to be clearer and have less overlap. If you've used `--emulated-form-factor` or other emulation-related configuration, you'll need to make changes. The new settings should be considerably simpler to use with custom Lighthouse runners using real devices, Puppeteer, or system-level throttling. See the [emulation docs](https://github.com/GoogleChrome/lighthouse/blob/9dbb0a57ff523325bb04437c4202780756afda90/docs/emulation.md#changes-made-in-v7) for migration guidance. ([#11779](https://github.com/GoogleChrome/lighthouse/pull/11779))
175* When waiting for the page to be fully loaded, Lighthouse will now wait if there are active high-priority network requests. In rare cases, like where the app initialization is dependent on a single, slow-returning XHR, some performance metrics may worsen; however, the new measurements are now accurate. ([#11738](https://github.com/GoogleChrome/lighthouse/pull/11738), [#11851](https://github.com/GoogleChrome/lighthouse/pull/11851))
176* Support for Node 10 has been dropped. The minimum required Node version is now 12 ([#11656](https://github.com/GoogleChrome/lighthouse/pull/11656))
177
178## 🤖💥 Breaking changes for programmatic users
179
180These changes are unlikely to affect end users, but may be important if you are writing custom configs, plugins, or processing the Lighthouse JSON output.
181
182* `ConsoleMessages` is a [new artifact](https://github.com/GoogleChrome/lighthouse/blob/a6738e0033e7e5ca308b97c1c36f298b7d399402/types/artifacts.d.ts#L753-L802) that is a combination of the old `ConsoleMessages` and `RuntimeExceptions` artifacts, with some expanded data on items logged to the console. `RuntimeExceptions` has been removed ([#11663](https://github.com/GoogleChrome/lighthouse/pull/11663))
183* DOM "node details" data formerly spread throughout existing artifacts are now gathered in a [`NodeDetails`](https://github.com/GoogleChrome/lighthouse/blob/a6738e0033e7e5ca308b97c1c36f298b7d399402/types/artifacts.d.ts#L150-L157) property on each element ([#11474](https://github.com/GoogleChrome/lighthouse/pull/11474), [#11695](https://github.com/GoogleChrome/lighthouse/pull/11695), [#11752](https://github.com/GoogleChrome/lighthouse/pull/11752))
184* The [`ImageElements` artifact](https://github.com/GoogleChrome/lighthouse/blob/a6738e0033e7e5ca308b97c1c36f298b7d399402/types/artifacts.d.ts#L395-L440) has been [streamlined](https://github.com/GoogleChrome/lighthouse/issues/11642) to better represent the data collected and how it's used ([#11703](https://github.com/GoogleChrome/lighthouse/pull/11703), [#11707](https://github.com/GoogleChrome/lighthouse/pull/11707), [#11733](https://github.com/GoogleChrome/lighthouse/pull/11733))
185* Previously, `extends: true` was allowed as an alias for `extends: 'lighthouse:default'` to [extend a config](https://github.com/GoogleChrome/lighthouse/blob/master/docs/configuration.md#config-extension) from the default Lighthouse config file. The boolean option has been removed to prepare the way for extending from any valid config file ([#11835](https://github.com/GoogleChrome/lighthouse/pull/11835))
186* A never-used feature to pass options from the config to gatherers has been removed to be compatible with future changes ([#11743](https://github.com/GoogleChrome/lighthouse/pull/11743))
187
188## 🧱 Core
189
190### Improvements, bug fixes, clarifications
191
192* lantern: allow non-XHRs to depend on CPU Nodes ([#11767](https://github.com/GoogleChrome/lighthouse/pull/11767))
193* lantern: maximize throughput under HTTP/2 ([#11666](https://github.com/GoogleChrome/lighthouse/pull/11666))
194* properly split node labels in the report around unicode surrogate pairs ([#11698](https://github.com/GoogleChrome/lighthouse/pull/11698))
195* move the `service-worker` audit to the pwa-optimized group; its path in the JSON and metadata on scope URLs are unchanged ([#11798](https://github.com/GoogleChrome/lighthouse/pull/11798))
196* support local plugins from a globally-installed Lighthouse ([#11696](https://github.com/GoogleChrome/lighthouse/pull/11696))
197
198### Internal refactors and improvements
199
200* driver: create typed `Runtime.evaluate` from function code ([#10816](https://github.com/GoogleChrome/lighthouse/pull/10816))
201* gather-runner: remove &lt;M82 compat for `InstallabilityErrors` ([#11782](https://github.com/GoogleChrome/lighthouse/pull/11782))
202* simulator: clearer intermediate timing types ([#11744](https://github.com/GoogleChrome/lighthouse/pull/11744))
203* types: remove unneeded casts ([#11753](https://github.com/GoogleChrome/lighthouse/pull/11753))
204* lightrider: skip `uses-http2` audit (again) ([#11777](https://github.com/GoogleChrome/lighthouse/pull/11777))
205* `script-treemap-data`: fix sourceRoot and missing coverage bugs ([#11825](https://github.com/GoogleChrome/lighthouse/pull/11825))
206* fraggle-rock: add base snapshot runner ([#11748](https://github.com/GoogleChrome/lighthouse/pull/11748))
207* fraggle-rock: add driver ([#11742](https://github.com/GoogleChrome/lighthouse/pull/11742))
208
209## Tests
210
211* re-enable change-related tests in github actions ([#11801](https://github.com/GoogleChrome/lighthouse/pull/11801))
212* smoke: use font-size for a non-composited animation in tests ([#11808](https://github.com/GoogleChrome/lighthouse/pull/11808), [#11836](https://github.com/GoogleChrome/lighthouse/pull/11836))
213* smoke: handle `warn-not-offline-capable` in test ([#11799](https://github.com/GoogleChrome/lighthouse/pull/11799))
214* smoke: fix failureReasonsMask flake ([#11791](https://github.com/GoogleChrome/lighthouse/pull/11791))
215* smoke: update flaky `third-party-facades` test ([#11786](https://github.com/GoogleChrome/lighthouse/pull/11786))
216* make devtools webtests stable and reliable ([#11717](https://github.com/GoogleChrome/lighthouse/pull/11717), [#11731](https://github.com/GoogleChrome/lighthouse/pull/11731), [#11751](https://github.com/GoogleChrome/lighthouse/pull/11751), [#11789](https://github.com/GoogleChrome/lighthouse/pull/11789), [#11790](https://github.com/GoogleChrome/lighthouse/pull/11790), [#11804](https://github.com/GoogleChrome/lighthouse/pull/11804), [#11809](https://github.com/GoogleChrome/lighthouse/pull/11809), [6ad47fa](https://github.com/GoogleChrome/lighthouse/commit/6ad47fa))
217
218## Misc
219
220* `uses-http2`: remove mention of h2 push in docs ([#11834](https://github.com/GoogleChrome/lighthouse/pull/11834))
221* readme: add integration ([#11775](https://github.com/GoogleChrome/lighthouse/pull/11775))
222* add log files to GCP run results ([#11833](https://github.com/GoogleChrome/lighthouse/pull/11833))
223* temporarily allow css in `redirectPass` to work around crbug ([#11813](https://github.com/GoogleChrome/lighthouse/pull/11813))
224* eslintignore `*.d.ts` files ([#11793](https://github.com/GoogleChrome/lighthouse/pull/11793))
225* buildtracker: skip `git --deepen` if no token ([#11785](https://github.com/GoogleChrome/lighthouse/pull/11785))
226* build: quiet the `npm pack` command ([#11783](https://github.com/GoogleChrome/lighthouse/pull/11783))
227* build: fix bundling `lighthouse-plugin-publisher-ads` in Lightrider ([#11648](https://github.com/GoogleChrome/lighthouse/pull/11648))
228* release: add `print-contributors.js` script ([#11736](https://github.com/GoogleChrome/lighthouse/pull/11736))
229
230## Deps
231
232* update yargs to latest ([#11794](https://github.com/GoogleChrome/lighthouse/pull/11794))
233* update old transitive deps ([#11811](https://github.com/GoogleChrome/lighthouse/pull/11811))
234
235<a name="6.5.0"></a>
236# 6.5.0 (2020-11-30)
237[Full Changelog](https://github.com/GoogleChrome/lighthouse/compare/v6.4.1...v6.5.0)
238
239We expect this release to ship in the DevTools of [Chrome 89](https://chromiumdash.appspot.com/schedule), and to PageSpeed Insights within 2 weeks.
240
241## New Contributors
242
243Thanks to our new contributors 👽🐷🐰🐯🐻!
244
245- Ashley Claymore @acutmore
246- Brad Frost @bradfrosty
247- Daniel Arthur Gallagher @DanArthurGallagher
248- Stephen @stephenyu
249- Vladimir Makhaev @vmakhaev
250
251## New Audits
252
253* preload an image if it is the LCP element ([#11486](https://github.com/GoogleChrome/lighthouse/pull/11486))
254* issues logged in the Devtools Issues panel ([#11409](https://github.com/GoogleChrome/lighthouse/pull/11409), [#11710](https://github.com/GoogleChrome/lighthouse/pull/11710))
255
256## Core
257
258* metrics: support CLS for all frames ([#11713](https://github.com/GoogleChrome/lighthouse/pull/11713))
259* metrics: support LCP in all frames for devtools throttling ([#11701](https://github.com/GoogleChrome/lighthouse/pull/11701))
260* stacks: update to support october cms and joomla ([#11729](https://github.com/GoogleChrome/lighthouse/pull/11729))
261* artifacts: encapsulate node details in an object ([#11474](https://github.com/GoogleChrome/lighthouse/pull/11474))
262* critical-requests: refactor to use lantern graph ([#11533](https://github.com/GoogleChrome/lighthouse/pull/11533))
263* hidpr-images: never recommend more than 2x ([#11518](https://github.com/GoogleChrome/lighthouse/pull/11518))
264* driver: resume on debugger statements ([#11727](https://github.com/GoogleChrome/lighthouse/pull/11727))
265* is-crawlable: always ignore mailto anchors ([#11554](https://github.com/GoogleChrome/lighthouse/pull/11554))
266* error: add dedicated error string for NO_FCP ([#11579](https://github.com/GoogleChrome/lighthouse/pull/11579))
267* dom-size: remove formatNumber ([#11563](https://github.com/GoogleChrome/lighthouse/pull/11563))
268* gather-runner: use final document when reporting non-HTML error ([#11620](https://github.com/GoogleChrome/lighthouse/pull/11620))
269* preload-lcp-image: properly calculate the potential savings ([#11612](https://github.com/GoogleChrome/lighthouse/pull/11612))
270* tracehouse: improve CPU profiler timing refinement ([#11608](https://github.com/GoogleChrome/lighthouse/pull/11608))
271* add devtools path to DOMStats ([#11578](https://github.com/GoogleChrome/lighthouse/pull/11578))
272* tracehouse: split timeOrigin determination out of computeTraceOfTab ([#11253](https://github.com/GoogleChrome/lighthouse/pull/11253))
273* tracehouse: use tasks to improve profiler timing data ([#11446](https://github.com/GoogleChrome/lighthouse/pull/11446))
274* unsized-images: respect CSS rules from stylesheets ([#11590](https://github.com/GoogleChrome/lighthouse/pull/11590))
275* runner: abstract gather phase out of runner ([#11623](https://github.com/GoogleChrome/lighthouse/pull/11623))
276* driver: extract waitFor methods ([#11685](https://github.com/GoogleChrome/lighthouse/pull/11685))
277* driver: extract evaluateAsync logic for FR driver ([#11633](https://github.com/GoogleChrome/lighthouse/pull/11633))
278* lantern: traverse generator method ([#11636](https://github.com/GoogleChrome/lighthouse/pull/11636))
279* js-bundles: return error object when sizes cannot be determined ([#10449](https://github.com/GoogleChrome/lighthouse/pull/10449))
280* add timing instrumentation for base artifacts ([#11672](https://github.com/GoogleChrome/lighthouse/pull/11672))
281
282## Experimental
283
284* full-page-screenshot: resolve node rects during emulation ([#11536](https://github.com/GoogleChrome/lighthouse/pull/11536))
285* full-page-screenshot: drop max datauri size constraints ([#11689](https://github.com/GoogleChrome/lighthouse/pull/11689))
286* full-page-screenshot: use dpr 1 ([#11688](https://github.com/GoogleChrome/lighthouse/pull/11688))
287* full-page-screenshot: use layoutViewport width ([#11402](https://github.com/GoogleChrome/lighthouse/pull/11402))
288* do not show element screenshot if out of bounds ([#11538](https://github.com/GoogleChrome/lighthouse/pull/11538))
289* add script-treemap-data to experimental ([#11271](https://github.com/GoogleChrome/lighthouse/pull/11271))
290* treemap: initialize app structure ([#11635](https://github.com/GoogleChrome/lighthouse/pull/11635))
291* treemap opener, ?dev for localhost viewer and treemap ([#11667](https://github.com/GoogleChrome/lighthouse/pull/11667))
292
293## Deps
294
295* remove cz-customizable as local dep ([#11719](https://github.com/GoogleChrome/lighthouse/pull/11719))
296* update to typescript 4.1.2 ([#11690](https://github.com/GoogleChrome/lighthouse/pull/11690))
297* bump various dependencies to quiet security alerts ([#11693](https://github.com/GoogleChrome/lighthouse/pull/11693))
298* update brfs to fix build in node 15 ([#11676](https://github.com/GoogleChrome/lighthouse/pull/11676))
299* upgrade lighthouse-plugin-publisher-ads to 1.3.0 ([#11660](https://github.com/GoogleChrome/lighthouse/pull/11660))
300* add @types/yargs-parser ([#11517](https://github.com/GoogleChrome/lighthouse/pull/11517))
301
302## Clients
303
304* viewer: extract the LHR from PSI json ([#11650](https://github.com/GoogleChrome/lighthouse/pull/11650))
305
306## I18n
307
308* format bytes with consistent fractional width ([#11489](https://github.com/GoogleChrome/lighthouse/pull/11489))
309* import ([#11715](https://github.com/GoogleChrome/lighthouse/pull/11715))
310
311## Docs
312
313* readme: add Apdex to integrations ([#11655](https://github.com/GoogleChrome/lighthouse/pull/11655))
314* update throttling reference ([#11645](https://github.com/GoogleChrome/lighthouse/pull/11645))
315* configuration: update description of `extends` property ([#11488](https://github.com/GoogleChrome/lighthouse/pull/11488))
316* releasing: update release process ([#11502](https://github.com/GoogleChrome/lighthouse/pull/11502))
317
318## Tests
319
320* rebaseline devtools test, print each .lh-audit id ([#11702](https://github.com/GoogleChrome/lighthouse/pull/11702))
321* smoke: attempt to fix cls-elements flake ([#11426](https://github.com/GoogleChrome/lighthouse/pull/11426))
322* update github actions to use env files ([#11674](https://github.com/GoogleChrome/lighthouse/pull/11674))
323* remove unnecessary jest babel transform ([#11664](https://github.com/GoogleChrome/lighthouse/pull/11664))
324* use setup-protoc bugfix branch ([#11665](https://github.com/GoogleChrome/lighthouse/pull/11665))
325* update static content shell version ([#11634](https://github.com/GoogleChrome/lighthouse/pull/11634))
326* limit LCP element audit to m87 and earlier ([#11625](https://github.com/GoogleChrome/lighthouse/pull/11625))
327* update MixedContent test to match ToT ([#11584](https://github.com/GoogleChrome/lighthouse/pull/11584))
328* add devtools test for important data warning ([#11544](https://github.com/GoogleChrome/lighthouse/pull/11544))
329* reset smoke transferSize expectations to reality ([#11534](https://github.com/GoogleChrome/lighthouse/pull/11534))
330* add tests for networkRecordsToDevtoolsLog ([#11523](https://github.com/GoogleChrome/lighthouse/pull/11523))
331* mock saveLhr and assert no unit test source changes ([#11519](https://github.com/GoogleChrome/lighthouse/pull/11519))
332
333## Misc
334
335* build: give build-tracker a shared git history on PRs ([#11449](https://github.com/GoogleChrome/lighthouse/pull/11449))
336* build: refactor viewer bundler into reusable GhPagesApp ([#11564](https://github.com/GoogleChrome/lighthouse/pull/11564))
337* add script to automatically test lighthouse on a page from devtools ([#11539](https://github.com/GoogleChrome/lighthouse/pull/11539))
338* add save latest run script ([#11516](https://github.com/GoogleChrome/lighthouse/pull/11516))
339* remove compile-against-devtools.sh ([#11520](https://github.com/GoogleChrome/lighthouse/pull/11520))
340
341<a name="6.4.1"></a>
342# 6.4.1 (2020-10-02)
343[Full Changelog](https://github.com/GoogleChrome/lighthouse/compare/v6.4.0...v6.4.1)
344
345This is a minor release to fix an issue in the npm package where v6.4.0 was published with a lot of unncessary files.
346
347## New Contributors
348
349Thanks to our new contributor 👽🐷🐰🐯🐻!
350
351- Csaba Palfi @csabapalfi
352
353## Core
354
355* prevent attribute truncation side-effects ([#11503](https://github.com/GoogleChrome/lighthouse/pull/11503))
356* save lhr on -A ([#11509](https://github.com/GoogleChrome/lighthouse/pull/11509))
357
358## Tests
359
360* run every smoke test (except forms) for bundle ([#11493](https://github.com/GoogleChrome/lighthouse/pull/11493))
361
362## Misc
363
364* add chromium webtests to npmignore ([#11512](https://github.com/GoogleChrome/lighthouse/pull/11512))
365
366<a name="6.4.0"></a>
367# 6.4.0 (2020-09-30)
368[Full Changelog](https://github.com/GoogleChrome/lighthouse/compare/v6.3.0...v6.4.0)
369
370We expect this release to ship in the DevTools of [Chrome 88](https://chromiumdash.appspot.com/schedule), and to PageSpeed Insights within 2 weeks.
371
372## New Contributors
373
374Thanks to our new contributors 👽🐷🐰🐯🐻!
375
376- Denis Seleznev @hcodes
377- Irfan Maulana @mazipan
378- James Garbutt @43081j
379- Matt Hobbs @Nooshu
380- Mohammed J. Razem @moerazem
381- Pujitha.E @pujitha7
382- Quentin @qwright10
383- andreizet @andreizet
384
385## Notable Changes
386
387* large-javascript-libraries: move to experimental ([#11484](https://github.com/GoogleChrome/lighthouse/pull/11484))
388* driver: don't clear indexedb, websql, or localstorage before run ([#11438](https://github.com/GoogleChrome/lighthouse/pull/11438))
389
390## New Audits
391
392* unsized-images reland ([#11340](https://github.com/GoogleChrome/lighthouse/pull/11340)): This audit confirms users' images are explicitly sized; ultimately preventing layout shift and improving CLS.
393
394## Core
395
396* tracehouse: add CPU trace profiler model ([#11072](https://github.com/GoogleChrome/lighthouse/pull/11072))
397* stack-packs: add Drupal pack ([#10522](https://github.com/GoogleChrome/lighthouse/pull/10522))
398* stack-packs: move to lighthouse-stack-packs npm package ([#11370](https://github.com/GoogleChrome/lighthouse/pull/11370))
399* axe: use our html snippet rather than axe's ([#11362](https://github.com/GoogleChrome/lighthouse/pull/11362))
400* benchmarkindex: add workaround for Intel microcode fixes ([#11483](https://github.com/GoogleChrome/lighthouse/pull/11483))
401* config: correct typo on throttling profile name ([#11355](https://github.com/GoogleChrome/lighthouse/pull/11355))
402* image-elements: do not set untrusted natural dimensions ([#11457](https://github.com/GoogleChrome/lighthouse/pull/11457))
403* installable-manifest: expose app manifest url ([#11330](https://github.com/GoogleChrome/lighthouse/pull/11330))
404* is-on-https: add missing space in description ([#11466](https://github.com/GoogleChrome/lighthouse/pull/11466))
405* is-on-https: remove <M84 codepaths ([#11373](https://github.com/GoogleChrome/lighthouse/pull/11373))
406* js-usage: normalize url key ([#11302](https://github.com/GoogleChrome/lighthouse/pull/11302))
407* password-inputs-can-be-pasted-into: add devtoolsNodePath ([#11416](https://github.com/GoogleChrome/lighthouse/pull/11416))
408* normalize node information in gathering ([#11405](https://github.com/GoogleChrome/lighthouse/pull/11405))
409* traverse shadow hosts in getNodePath ([#10956](https://github.com/GoogleChrome/lighthouse/pull/10956))
410* minification-estimator: minify nested template literals in JavaScript ([#11395](https://github.com/GoogleChrome/lighthouse/pull/11395))
411* expose service worker url on service worker audit ([#11329](https://github.com/GoogleChrome/lighthouse/pull/11329))
412* preconnect: ignore unimportant origins ([#11306](https://github.com/GoogleChrome/lighthouse/pull/11306))
413* autocomplete: add chrome suggestions, invalid warning ([#11342](https://github.com/GoogleChrome/lighthouse/pull/11342))
414
415## Report
416
417* let fireworks eligibility ignore PWA category ([#11200](https://github.com/GoogleChrome/lighthouse/pull/11200))
418* csv: add overall category scores ([#11404](https://github.com/GoogleChrome/lighthouse/pull/11404))
419* normalize -0 to 0 ([#11353](https://github.com/GoogleChrome/lighthouse/pull/11353))
420* set min-width on code table column ([#11359](https://github.com/GoogleChrome/lighthouse/pull/11359))
421
422## Deps
423
424* lighthouse-stack-packs: update ([#11492](https://github.com/GoogleChrome/lighthouse/pull/11492))
425* update third-party-web ([#11469](https://github.com/GoogleChrome/lighthouse/pull/11469))
426* chrome-launcher to v0.13.4 ([#11434](https://github.com/GoogleChrome/lighthouse/pull/11434))
427* update transitive lodash ([#11448](https://github.com/GoogleChrome/lighthouse/pull/11448))
428* inquirer: upgrade to 7.3.3 ([#11441](https://github.com/GoogleChrome/lighthouse/pull/11441))
429* snyk: update snyk snapshot ([#11347](https://github.com/GoogleChrome/lighthouse/pull/11347))
430
431## Clients
432
433* devtools: update report-generator.js to match DevTools changes ([#11411](https://github.com/GoogleChrome/lighthouse/pull/11411))
434* lr: enable uses-http2, add protocol override header ([#11439](https://github.com/GoogleChrome/lighthouse/pull/11439))
435
436## I18n
437
438* import ([#11494](https://github.com/GoogleChrome/lighthouse/pull/11494))
439* remove incorrect aliases ([#11487](https://github.com/GoogleChrome/lighthouse/pull/11487))
440* use placeholders more for html terms ([#11406](https://github.com/GoogleChrome/lighthouse/pull/11406))
441* use IcuMessage objects instead of string IDs ([#10630](https://github.com/GoogleChrome/lighthouse/pull/10630))
442* code-escape <link> in preconnect and preload ([#11401](https://github.com/GoogleChrome/lighthouse/pull/11401))
443* accept array of locales in lookupLocale ([#11349](https://github.com/GoogleChrome/lighthouse/pull/11349))
444* add more translator strings to font-size ([#11338](https://github.com/GoogleChrome/lighthouse/pull/11338))
445
446## Docs
447
448* auth: add setCookie example ([#11473](https://github.com/GoogleChrome/lighthouse/pull/11473))
449* variability: expand on lighthouse-ci usage ([#11377](https://github.com/GoogleChrome/lighthouse/pull/11377))
450* remove PageSpeed Green from integrations ([#11390](https://github.com/GoogleChrome/lighthouse/pull/11390))
451* add microlink to integrations ([#11048](https://github.com/GoogleChrome/lighthouse/pull/11048))
452* releasing: align 2 days before branch. update managers ([#11333](https://github.com/GoogleChrome/lighthouse/pull/11333))
453* add CPU throttling guide ([#11325](https://github.com/GoogleChrome/lighthouse/pull/11325))
454
455## Tests
456
457* page-functions: add test for getNodePath ([#11433](https://github.com/GoogleChrome/lighthouse/pull/11433))
458* check for dependencies when setting up blink tools ([#11437](https://github.com/GoogleChrome/lighthouse/pull/11437))
459* hash more files for devtools test cache ([#11417](https://github.com/GoogleChrome/lighthouse/pull/11417))
460* smoke: fix preconnect flake w/ a non-locally installed font ([#11425](https://github.com/GoogleChrome/lighthouse/pull/11425))
461* add markdown link checker ([#11358](https://github.com/GoogleChrome/lighthouse/pull/11358))
462* webtests: test pub ads plugin ([#11364](https://github.com/GoogleChrome/lighthouse/pull/11364))
463* rebaseline webtests ([#11351](https://github.com/GoogleChrome/lighthouse/pull/11351))
464* devtools: fail on unset/unbound env variable ([#11331](https://github.com/GoogleChrome/lighthouse/pull/11331))
465
466## Misc
467
468* build: fix mangling for tap-targets gatherer ([#11463](https://github.com/GoogleChrome/lighthouse/pull/11463))
469* script for analyzing results from gcp data collection ([#11296](https://github.com/GoogleChrome/lighthouse/pull/11296))
470* make FormElements not a public artifact ([#11476](https://github.com/GoogleChrome/lighthouse/pull/11476))
471* yarn open-devtools ([#11445](https://github.com/GoogleChrome/lighthouse/pull/11445))
472* build: use terser on inline assets ([#11461](https://github.com/GoogleChrome/lighthouse/pull/11461))
473* tweak typescript jsdoc for list format ([#11447](https://github.com/GoogleChrome/lighthouse/pull/11447))
474* build: minify bundles with terser ([#9605](https://github.com/GoogleChrome/lighthouse/pull/9605))
475* add score shapes to legend ([#11440](https://github.com/GoogleChrome/lighthouse/pull/11440))
476* axe: rename axe types ([#11432](https://github.com/GoogleChrome/lighthouse/pull/11432))
477* update stack packs, remove duplicated stack pack files ([#11396](https://github.com/GoogleChrome/lighthouse/pull/11396))
478* build: fix devtools tests by making empty type files ([#11418](https://github.com/GoogleChrome/lighthouse/pull/11418))
479* hide locale files by default in PRs ([#11363](https://github.com/GoogleChrome/lighthouse/pull/11363))
480* fix typos in jsdoc types ([#11367](https://github.com/GoogleChrome/lighthouse/pull/11367))
481* build: include publisher ads plugin in lightrider bundle ([#11366](https://github.com/GoogleChrome/lighthouse/pull/11366))
482* flatten new service-worker audit details ([#11361](https://github.com/GoogleChrome/lighthouse/pull/11361))
483* fix run-web-tests.sh ([#11346](https://github.com/GoogleChrome/lighthouse/pull/11346))
484
485<a name="6.3.0"></a>
486# 6.3.0 (2020-08-26)
487[Full Changelog](https://github.com/GoogleChrome/lighthouse/compare/v6.2.0...v6.3.0)
488
489We expect this release to ship in the DevTools of [Chrome 87](https://chromiumdash.appspot.com/schedule), and to PageSpeed Insights within 2 weeks.
490
491## New Contributors
492
493Thanks to our new contributors 👽🐷🐰🐯🐻!
494
495* Adriana Ixba @adrianaixba
496* Daniel Hollas @danielhollas
497* Danilo Velasquez Urrutia @dvelasquez
498* Jivthesh M R @jivthesh
499* Pete Nykänen @petetnt
500* Radu Micu @radum
501* ryo @ryoAccount
502* Saavan Nanavati @saavannanavati
503* Stanislav Popov @popstas
504* Wicked @Wicked7000
505
506## Notable Changes
507
508* revert: move unsized-images to experimental due to perf impact ([#11317](https://github.com/GoogleChrome/lighthouse/pull/11317))
509
510## New Audits
511
512* add preload-fonts audit ([#11255](https://github.com/GoogleChrome/lighthouse/pull/11255))
513* add large-javascript-libraries audit ([#11096](https://github.com/GoogleChrome/lighthouse/pull/11096))
514* add valid-source-maps audit ([#11236](https://github.com/GoogleChrome/lighthouse/pull/11236))
515* add autocomplete to experimental config ([#11186](https://github.com/GoogleChrome/lighthouse/pull/11186))
516
517## Core
518
519* global-listeners: dedupe duplicate events in GlobalListener gatherer ([#11303](https://github.com/GoogleChrome/lighthouse/pull/11303))
520* module-duplication: ignore smaller modules ([#11277](https://github.com/GoogleChrome/lighthouse/pull/11277))
521* non-composited-animations: add unsupported css properties ([#11246](https://github.com/GoogleChrome/lighthouse/pull/11246))
522* non-composited-animations: add more actionable failure reasons ([#11268](https://github.com/GoogleChrome/lighthouse/pull/11268))
523* non-composited-animations: update the "learn more" link ([#11258](https://github.com/GoogleChrome/lighthouse/pull/11258))
524* renderer: improve the unknown timezone checks in util.js ([#9822](https://github.com/GoogleChrome/lighthouse/pull/9822))
525* response-time: add time spent to details ([#11307](https://github.com/GoogleChrome/lighthouse/pull/11307))
526* trace-elements: do not break on unresolvable node id ([#11298](https://github.com/GoogleChrome/lighthouse/pull/11298))
527* font-size: remove deprecated DOM.getFlattenedDocument ([#11248](https://github.com/GoogleChrome/lighthouse/pull/11248))
528
529## Report
530
531* third-party-summary: show resources for entity ([#11219](https://github.com/GoogleChrome/lighthouse/pull/11219))
532* handle invalid urls for source location items ([#11299](https://github.com/GoogleChrome/lighthouse/pull/11299))
533* show axe version in runtime settings ([#10729](https://github.com/GoogleChrome/lighthouse/pull/10729))
534* use dash gauge for categories with entirely n/a audits ([#11024](https://github.com/GoogleChrome/lighthouse/pull/11024))
535
536## Deps
537
538* update lighthouse-plugin-publisher-ads to 1.2.0 ([#11301](https://github.com/GoogleChrome/lighthouse/pull/11301))
539
540## I18n
541
542* import ([#11324](https://github.com/GoogleChrome/lighthouse/pull/11324))
543* translate remaining strings in font-size ([#11327](https://github.com/GoogleChrome/lighthouse/pull/11327))
544* make double dollar validation less strict ([#10299](https://github.com/GoogleChrome/lighthouse/pull/10299))
545
546## Docs
547
548* add Code of Conduct to project ([#11212](https://github.com/GoogleChrome/lighthouse/pull/11212))
549* add audit naming guide ([#11308](https://github.com/GoogleChrome/lighthouse/pull/11308))
550* throttling: replace comcast with throttle and add more windows options ([#11143](https://github.com/GoogleChrome/lighthouse/pull/11143))
551* readme: add related projects: site-audit-seo ([#11305](https://github.com/GoogleChrome/lighthouse/pull/11305), [#11250](https://github.com/GoogleChrome/lighthouse/pull/11250))
552* readme: align headings with table of contents ([#11288](https://github.com/GoogleChrome/lighthouse/pull/11288))
553
554## Tests
555
556* run chromium webtests for devtools integration ([#11176](https://github.com/GoogleChrome/lighthouse/pull/11176), [#11328](https://github.com/GoogleChrome/lighthouse/pull/11328))
557
558## Misc
559
560* benchmark: update BenchmarkIndex for m86 changes ([#11304](https://github.com/GoogleChrome/lighthouse/pull/11304))
561* add benchmark script with octane and speedometer ([#11247](https://github.com/GoogleChrome/lighthouse/pull/11247))
562* add gcp fleet creation scripts ([#11257](https://github.com/GoogleChrome/lighthouse/pull/11257), [#11233](https://github.com/GoogleChrome/lighthouse/pull/11233))
563* rephrase comments to be more inclusive ([#11228](https://github.com/GoogleChrome/lighthouse/pull/11228))
564* fix types in duplicated-javascript ([#11278](https://github.com/GoogleChrome/lighthouse/pull/11278))
565* fix typo in method name ([#11239](https://github.com/GoogleChrome/lighthouse/pull/11239))
566* move doc link ([#11300](https://github.com/GoogleChrome/lighthouse/pull/11300))
567
568<a name="6.2.0"></a>
569# 6.2.0 (2020-08-06)
570[Full Changelog](https://github.com/GoogleChrome/lighthouse/compare/v6.1.1...v6.2.0)
571
572We expect this release to ship in the DevTools of [Chrome 86](https://chromiumdash.appspot.com/schedule), and to PageSpeed
573Insights within 2 weeks.
574
575## New Contributors
576
577Thanks to our new contributors 👽🐷🐰🐯🐻!
578
579* Adam Raine @adamraine
580* Saavan Nanavati @saavannanavati
581* lemcardenas @lemcardenas
582* George Makunde Martin @gMakunde
583* David Gilman @dgilman
584* Emilio Garza @emiliogarza
585* LukasAuerMstage @LukasAuerMstage
586* Mustafa Aydemir @mstfydmr
587* Pramod Mali @malipramod
588* Robin Tom @robintom
589* Stacey Tay @staceytay
590* Wojciech Maj @wojtekmaj
591* moli @phpmoli
592* Муравьёв Семён @Zulcom
593
594## New Audits
595
596* move duplicated-javascript and legacy-javascript audits to default config ([#10881](https://github.com/GoogleChrome/lighthouse/pull/10881), [#11103](https://github.com/GoogleChrome/lighthouse/pull/11103))
597* report animations not run on compositor ([#11138](https://github.com/GoogleChrome/lighthouse/pull/11138), [#11168](https://github.com/GoogleChrome/lighthouse/pull/11168), [#11105](https://github.com/GoogleChrome/lighthouse/pull/11105))
598* add unsized-images audit ([#11188](https://github.com/GoogleChrome/lighthouse/pull/11188), [#11115](https://github.com/GoogleChrome/lighthouse/pull/11115), [#11217](https://github.com/GoogleChrome/lighthouse/pull/11217))
599* add no-unload-listeners audit ([#11085](https://github.com/GoogleChrome/lighthouse/pull/11085))
600
601## Core
602
603* uses-http2: convert into opportunity ([#10626](https://github.com/GoogleChrome/lighthouse/pull/10626))
604* lantern: fallback to FCP in 0-weight SI situations ([#11174](https://github.com/GoogleChrome/lighthouse/pull/11174))
605* stacks: timeout stack detection ([#11172](https://github.com/GoogleChrome/lighthouse/pull/11172))
606* add FormElements gatherer ([#11062](https://github.com/GoogleChrome/lighthouse/pull/11062))
607* cls: add back early shift events if they were ignored ([#11079](https://github.com/GoogleChrome/lighthouse/pull/11079))
608* critical-request-chains: prune requests without an initiator ([#11151](https://github.com/GoogleChrome/lighthouse/pull/11151))
609* error if chrome version does not support lcp metric ([#11016](https://github.com/GoogleChrome/lighthouse/pull/11016))
610* font-display: dedupe warnings by font origin ([#11068](https://github.com/GoogleChrome/lighthouse/pull/11068))
611* gather-runner: error on non-HTML ([#11042](https://github.com/GoogleChrome/lighthouse/pull/11042))
612* hreflang: assert that the href is fully qualified ([#11022](https://github.com/GoogleChrome/lighthouse/pull/11022))
613* image-elements: gather correct natural size for srcset ([#11101](https://github.com/GoogleChrome/lighthouse/pull/11101))
614* is-on-https: add mixed-content resolution ([#10975](https://github.com/GoogleChrome/lighthouse/pull/10975))
615* lantern: ignore circular initiators ([#11148](https://github.com/GoogleChrome/lighthouse/pull/11148))
616* link-elements: add devtoolsNodePath ([#11061](https://github.com/GoogleChrome/lighthouse/pull/11061))
617* link-text: removing inicio from blocklist resolves #11026 ([#11073](https://github.com/GoogleChrome/lighthouse/pull/11073))
618* page-functions: expose simulated throttling requestIdleCallback shim ([#11032](https://github.com/GoogleChrome/lighthouse/pull/11032))
619* redirects: surface client-side redirects ([#11027](https://github.com/GoogleChrome/lighthouse/pull/11027))
620* tracehouse: expose navigationStart only as timeOrigin ([#11034](https://github.com/GoogleChrome/lighthouse/pull/11034))
621* add cap to amp stylesheet links for simulated throttling ([#11069](https://github.com/GoogleChrome/lighthouse/pull/11069))
622* remove uses of deprecated extendedInfo field ([#10779](https://github.com/GoogleChrome/lighthouse/pull/10779))
623* config: remove typo in a11y tables lists group ([#11099](https://github.com/GoogleChrome/lighthouse/pull/11099))
624
625## CLI
626
627* clearTimeout for faster exit ([#11170](https://github.com/GoogleChrome/lighthouse/pull/11170))
628* warn if Chrome died on its own instead of exit ([#11139](https://github.com/GoogleChrome/lighthouse/pull/11139))
629
630## Report
631
632* correctly display CLS in budget table ([#11209](https://github.com/GoogleChrome/lighthouse/pull/11209))
633* add full-page-screenshot to experimental config ([#10716](https://github.com/GoogleChrome/lighthouse/pull/10716))
634* vertically center thumbnails ([#11220](https://github.com/GoogleChrome/lighthouse/pull/11220))
635* truncate long attribute values in HTML snippets ([#10984](https://github.com/GoogleChrome/lighthouse/pull/10984))
636* unused-javascript: update "learn more" link ([#10985](https://github.com/GoogleChrome/lighthouse/pull/10985))
637
638## Deps
639
640* snyk: update script to prune <0.0.0 and update snapshot ([#11223](https://github.com/GoogleChrome/lighthouse/pull/11223))
641* snyk: update snyk snapshot ([#11046](https://github.com/GoogleChrome/lighthouse/pull/11046))
642* update dot-prop secondary dependency ([#11198](https://github.com/GoogleChrome/lighthouse/pull/11198))
643* update jpeg-js to 0.4.x ([#11167](https://github.com/GoogleChrome/lighthouse/pull/11167))
644* update third-party-web ([#11137](https://github.com/GoogleChrome/lighthouse/pull/11137))
645
646## I18n
647
648* import strings ([#11082](https://github.com/GoogleChrome/lighthouse/pull/11082), [#11225](https://github.com/GoogleChrome/lighthouse/pull/11225))
649* disallow invalid text outside complex ICU arguments ([#11135](https://github.com/GoogleChrome/lighthouse/pull/11135))
650* update AMP Optimizer URLs ([#11088](https://github.com/GoogleChrome/lighthouse/pull/11088))
651* log the percentage of translated messages ([#11149](https://github.com/GoogleChrome/lighthouse/pull/11149))
652
653## Docs
654
655* configuration: updates and tweaks ([#11141](https://github.com/GoogleChrome/lighthouse/pull/11141))
656* update architecture.md ([#11040](https://github.com/GoogleChrome/lighthouse/pull/11040), [#11089](https://github.com/GoogleChrome/lighthouse/pull/11089))
657* readme: add Screpy to list of integrations ([#11126](https://github.com/GoogleChrome/lighthouse/pull/11126))
658* readme: fix logging in programmatic use code example ([#11116](https://github.com/GoogleChrome/lighthouse/pull/11116))
659* update devtools screenshot ([#11092](https://github.com/GoogleChrome/lighthouse/pull/11092))
660* fix typo in viewer readme for loading json from url ([#11080](https://github.com/GoogleChrome/lighthouse/pull/11080))
661* readme: update Foo integration ([#11050](https://github.com/GoogleChrome/lighthouse/pull/11050))
662
663## Tests
664
665* istanbul ignore inpage function ([#11229](https://github.com/GoogleChrome/lighthouse/pull/11229))
666* update chromestatus expecatations ([#11221](https://github.com/GoogleChrome/lighthouse/pull/11221))
667* minification-est: add testcase with pre-minified bundle ([#11191](https://github.com/GoogleChrome/lighthouse/pull/11191))
668* update to typescript 3.9.7 ([#11158](https://github.com/GoogleChrome/lighthouse/pull/11158))
669* smoke: skip expectation with _chromeMajorVersion ([#10976](https://github.com/GoogleChrome/lighthouse/pull/10976))
670* smoke: use caltrainschedule instead of polymer shop ([#11052](https://github.com/GoogleChrome/lighthouse/pull/11052))
671* relax requestIdleCallback smoke expectation ([#11041](https://github.com/GoogleChrome/lighthouse/pull/11041))
672* parallelize all the tests ([#11009](https://github.com/GoogleChrome/lighthouse/pull/11009))
673* upgrade codecov to 3.7.0 ([#11039](https://github.com/GoogleChrome/lighthouse/pull/11039))
674* update minor version of angular fixture redux ([#11192](https://github.com/GoogleChrome/lighthouse/pull/11192))
675* run GitHub Actions on master and PRs ([#11035](https://github.com/GoogleChrome/lighthouse/pull/11035))
676* run test-viewer in github actions ([#11195](https://github.com/GoogleChrome/lighthouse/pull/11195))
677* add windows to GitHub actions CI ([#11087](https://github.com/GoogleChrome/lighthouse/pull/11087))
678* use latest windows image on appveyor ([#11083](https://github.com/GoogleChrome/lighthouse/pull/11083))
679* remove appveyor ([#11171](https://github.com/GoogleChrome/lighthouse/pull/11171))
680
681## Misc
682
683* remove last extendedInfo in LH.Audit.Product ([#11067](https://github.com/GoogleChrome/lighthouse/pull/11067))
684* add GCP collection scripts ([#11189](https://github.com/GoogleChrome/lighthouse/pull/11189))
685* tighten RecursivePartial type ([#11175](https://github.com/GoogleChrome/lighthouse/pull/11175))
686* release: tweaks ([#11021](https://github.com/GoogleChrome/lighthouse/pull/11021))
687* compare-runs: fix error when no lh-flags arg passed ([#11015](https://github.com/GoogleChrome/lighthouse/pull/11015))
688* annotate version-specific logic with COMPAT comments ([#11019](https://github.com/GoogleChrome/lighthouse/pull/11019))
689* add tools to track issue response time ([#11020](https://github.com/GoogleChrome/lighthouse/pull/11020))
690* tweak naming in element-screenshot renderer ([#11152](https://github.com/GoogleChrome/lighthouse/pull/11152))
691* ignore coverage of page-functions ([#11136](https://github.com/GoogleChrome/lighthouse/pull/11136))
692
693<a name="6.1.1"></a>
694# 6.1.1 (2020-07-07)
695[Full Changelog](https://github.com/GoogleChrome/lighthouse/compare/v6.1.0...v6.1.1)
696
697This is a patch release to fix an issue that only occurred in 6.1.0 for Node environments. It will only be released to npm.
698
699## Core
700
701* fetcher: ensure fetch doesn't cause unhandled promise ([#11036](https://github.com/GoogleChrome/lighthouse/pull/11036))
702
703<a name="6.1.0"></a>
704# 6.1.0 (2020-06-25)
705[Full Changelog](https://github.com/GoogleChrome/lighthouse/compare/v6.0.0...v6.1.0)
706
707We expect this release to ship to DevTools in [Chrome 85](https://chromiumdash.appspot.com/schedule), and to PageSpeed Insights within 2 weeks.
708
709## New Contributors
710
711Thanks to our new contributors 👽🐷🐰🐯🐻!
712
713* Loftie Ellis @lpellis
714* Marvin Frachet @mfrachet
715* Matt Hobbs @Nooshu
716* Peter Marshall @psmarshall
717
718## Notable Changes
719
720* If a page has publicly-accessible JavaScript source maps, Lighthouse will collect them to enhance the `unused-javascript` audit. In future versions of Lighthouse, source maps will be used for entirely new audits ([#10990](https://github.com/GoogleChrome/lighthouse/pull/10990)).
721* The report now uses `KiB` instead of `KB`. This is simply a label change; the value was and still is equal to `1024 bytes` ([#10870](https://github.com/GoogleChrome/lighthouse/pull/10870)).
722
723<img src="https://i.imgur.com/1gSdPw5.png" alt="Unused JavaScript with source maps" width="800px">
724
725## New Audits
726
727* long-tasks: a new performance diagnostic that shows the longest main-thread-blocking tasks during load ([#10736](https://github.com/GoogleChrome/lighthouse/pull/10736))
728* crawlable-anchors: a new SEO audit that checks that anchors link to resolvable URLs ([#10662](https://github.com/GoogleChrome/lighthouse/pull/10662))
729
730## Core
731
732* unused-javascript: increase threshold to 20KiB ([#10906](https://github.com/GoogleChrome/lighthouse/pull/10906))
733* layout-shift-elements: surface CLS contribution per shifted element ([#10968](https://github.com/GoogleChrome/lighthouse/pull/10968))
734* emulation: bump chrome versions ([#10787](https://github.com/GoogleChrome/lighthouse/pull/10787))
735* image-size-responsive: quantize DPRs ([#10801](https://github.com/GoogleChrome/lighthouse/pull/10801))
736* long-tasks: add startTime property ([#10942](https://github.com/GoogleChrome/lighthouse/pull/10942))
737* improve resilience of nodeId-dependent gatherers ([#10877](https://github.com/GoogleChrome/lighthouse/pull/10877))
738* median-run: add computeMedianRun to lib ([#10859](https://github.com/GoogleChrome/lighthouse/pull/10859))
739* preload: ignore cross-frame requests ([#10847](https://github.com/GoogleChrome/lighthouse/pull/10847))
740* new inspector issues gatherer for Audit.IssueAdded events ([#10664](https://github.com/GoogleChrome/lighthouse/pull/10664))
741* subRow refactor, rename to subItem ([#10867](https://github.com/GoogleChrome/lighthouse/pull/10867), [#10978](https://github.com/GoogleChrome/lighthouse/pull/10978))
742
743## Experimental
744
745Features hidden behind the `--preset=experimental` flag.
746
747* legacy-javascript: reduce polyfills, fix core-js import in test ([#10937](https://github.com/GoogleChrome/lighthouse/pull/10937))
748* legacy-javascript: use prescriptive language in title ([#10850](https://github.com/GoogleChrome/lighthouse/pull/10850))
749* legacy-javascript: fix core-js 3 detection ([#10852](https://github.com/GoogleChrome/lighthouse/pull/10852))
750* legacy-javascript: use third-party-web for scoring ([#10849](https://github.com/GoogleChrome/lighthouse/pull/10849))
751* duplicated-javascript: display transfer size ([#10701](https://github.com/GoogleChrome/lighthouse/pull/10701))
752
753## Deps
754
755* axe-core: upgrade to 3.5.5 ([#10986](https://github.com/GoogleChrome/lighthouse/pull/10986))
756* upgrade chrome-launcher@0.13.3 ([#10911](https://github.com/GoogleChrome/lighthouse/pull/10911))
757* snyk: update snyk snapshot ([#10840](https://github.com/GoogleChrome/lighthouse/pull/10840), [#10940](https://github.com/GoogleChrome/lighthouse/pull/10940), [#10980](https://github.com/GoogleChrome/lighthouse/pull/10980), [#11010](https://github.com/GoogleChrome/lighthouse/pull/11010))
758* remove bundlesize ([#10999](https://github.com/GoogleChrome/lighthouse/pull/10999))
759* update to lhci 0.4.0 ([#10828](https://github.com/GoogleChrome/lighthouse/pull/10828))
760
761## Report
762
763* metrics: use css grid so metrics are aligned ([#10789](https://github.com/GoogleChrome/lighthouse/pull/10789))
764* don't dim disclaimer anchor links ([#10981](https://github.com/GoogleChrome/lighthouse/pull/10981))
765* use acronyms and round metrics for shorter calc url ([#10954](https://github.com/GoogleChrome/lighthouse/pull/10954))
766* update link for budgets audit ([#10944](https://github.com/GoogleChrome/lighthouse/pull/10944))
767* add trailing slash to web.dev links ([#10967](https://github.com/GoogleChrome/lighthouse/pull/10967))
768* fix the width of the 3-dots menu in topbar ([#10855](https://github.com/GoogleChrome/lighthouse/pull/10855))
769* updated method signature typing to remove focusevent cast ([#10858](https://github.com/GoogleChrome/lighthouse/pull/10858))
770* adjust LCP element description ([#11018](https://github.com/GoogleChrome/lighthouse/pull/11018))
771* renderer: fix null Util.i18n in PSI renderer ([#10822](https://github.com/GoogleChrome/lighthouse/pull/10822))
772* psi: show disclaimer and calclink ([#10936](https://github.com/GoogleChrome/lighthouse/pull/10936))
773
774## Docs
775
776* add note about git repo required for @lhci/cli usage ([#11006](https://github.com/GoogleChrome/lighthouse/pull/11006))
777* contributing: add tips for audit and gatherer PRs ([#10690](https://github.com/GoogleChrome/lighthouse/pull/10690))
778* readme: update programmatic usage recipe ([#10878](https://github.com/GoogleChrome/lighthouse/pull/10878))
779* readme: add new and updated integrations ([#10838](https://github.com/GoogleChrome/lighthouse/pull/10838), [#10901](https://github.com/GoogleChrome/lighthouse/pull/10901), [#10826](https://github.com/GoogleChrome/lighthouse/pull/10826), [#10818](https://github.com/GoogleChrome/lighthouse/pull/10818))
780
781## Tests
782
783* move proto roundtrip json to .tmp/ ([#10995](https://github.com/GoogleChrome/lighthouse/pull/10995))
784* add heading key tests ([#10746](https://github.com/GoogleChrome/lighthouse/pull/10746))
785* run ToT and stable Chrome for smoke tests in github workflow ([#10989](https://github.com/GoogleChrome/lighthouse/pull/10989))
786* legacy-javascript: exit code 1 on failure ([#10946](https://github.com/GoogleChrome/lighthouse/pull/10946))
787* smoke: use --debug in github action ([#10919](https://github.com/GoogleChrome/lighthouse/pull/10919))
788* smokehouse: do not assert on flaky node path ([#10827](https://github.com/GoogleChrome/lighthouse/pull/10827))
789
790## Misc
791
792* rename subHeading to subItemsHeading ([#10979](https://github.com/GoogleChrome/lighthouse/pull/10979), [#10983](https://github.com/GoogleChrome/lighthouse/pull/10983))
793* viewer: expose LHR as `__LIGHTHOUSE_JSON__` ([#10879](https://github.com/GoogleChrome/lighthouse/pull/10879))
794* use more inclusive and descriptive language ([#10949](https://github.com/GoogleChrome/lighthouse/pull/10949))
795* update changelog for v6.0.0 ([#10821](https://github.com/GoogleChrome/lighthouse/pull/10821), [#10807](https://github.com/GoogleChrome/lighthouse/pull/10807))
796
797<a name="6.0.0"></a>
798# 6.0.0 (2020-05-19)
799[Raw commit changelog](https://github.com/GoogleChrome/lighthouse/compare/v5.6.0...v6.0.0)
800
801We expect this release to ship in the DevTools of Chrome 84.
802
803## Notable changes
804
805So many! See the [**Lighthouse 6.0: What's New** blog post](https://web.dev/lighthouse-whats-new-6.0/) for an in-depth look.
806
807## 🆕 New audits
808
809* [Largest Contentful Paint](https://web.dev/lighthouse-largest-contentful-paint/) (LCP) is a new metric that measures the time from navigation until the largest content element in the viewport is rendered ([#9905](https://github.com/GoogleChrome/lighthouse/pull/9905), [#10213](https://github.com/GoogleChrome/lighthouse/pull/10213), [#10452](https://github.com/GoogleChrome/lighthouse/pull/10452), [#10529](https://github.com/GoogleChrome/lighthouse/pull/10529)).
810 - `largest-contentful-paint-element` is a companion audit that gives information about which element triggered the LCP ([#10517](https://github.com/GoogleChrome/lighthouse/pull/10517), [#10713](https://github.com/GoogleChrome/lighthouse/pull/10713)).
811* [Cumulative Layout Shift](https://web.dev/cls/) (CLS) is a new metric that measures the amount of unexpected movement of content as a page loads ([#9037](https://github.com/GoogleChrome/lighthouse/pull/9037), [#10427](https://github.com/GoogleChrome/lighthouse/pull/10427), [#10495](https://github.com/GoogleChrome/lighthouse/pull/10495), [#10570](https://github.com/GoogleChrome/lighthouse/pull/10570), [#10728](https://github.com/GoogleChrome/lighthouse/pull/10728)).
812 - `layout-shift-elements` is another companion diagnostic that gives information about the elements that shifted as the page loaded ([#10702](https://github.com/GoogleChrome/lighthouse/pull/10702)).
813* `unused-javascript` is an audit that has been kicking around for some time but is only now turned on by default. It accounts for what JavaScript was loaded but never executed during page load and estimates the load time that could be saved via code splitting, dead code elimination, or judicious use of the delete key ([#9854](https://github.com/GoogleChrome/lighthouse/pull/9854)).
814* A PWA [`maskable-icon`](https://web.dev/maskable-icon-audit/) just looks better on your homescreen, so this new audit encourages you to have at least one available in your manifest ([#10370](https://github.com/GoogleChrome/lighthouse/pull/10370)).
815* `timing-budget` expands [budget assertions](https://github.com/GoogleChrome/lighthouse/blob/7e4fa55/docs/performance-budgets.md) to now be settable on all the performance metrics ([#9901](https://github.com/GoogleChrome/lighthouse/pull/9901), [#9925](https://github.com/GoogleChrome/lighthouse/pull/9925)).
816* The new [`charset`](https://web.dev/charset) audit ensures a proper character encoding for page content ([#10284](https://github.com/GoogleChrome/lighthouse/pull/10284), [#10389](https://github.com/GoogleChrome/lighthouse/pull/10389), [#10689](https://github.com/GoogleChrome/lighthouse/pull/10689)).
817* `image-size-responsive` checks that images have an aspect ratio and resolution that match well with how they are displayed on a page ([#10460](https://github.com/GoogleChrome/lighthouse/pull/10460)).
818* Updating to the latest version of `axe-core` has unlocked a number of new accessibility audits: [`aria-hidden-body`](https://web.dev/aria-hidden-body/), [`aria-hidden-focus`](https://web.dev/aria-hidden-focus/), [`aria-input-field-name`](https://web.dev/aria-input-field-name/), [`aria-toggle-field-name`](https://web.dev/aria-toggle-field-name/), [`duplicate-id-active`](https://web.dev/duplicate-id-active/), [`duplicate-id-aria`](https://web.dev/duplicate-id-aria/), [`form-field-multiple-labels`](https://web.dev/form-field-multiple-labels/), [`heading-order`](https://web.dev/heading-order/) ([#9798](https://github.com/GoogleChrome/lighthouse/pull/9798)).
819
820## ⚗️ Experimental audits
821
822These audits are not yet part of the default Lighthouse experience, but they will provide performance advice based on analysis of a page's JavaScript bundles. They can be tested today on the command line with the `--preset=experimental` flag.
823
824* `legacy-javascript` rummages through your bundles looking for polyfills and bundler transforms that aren't necessary or are outdated ([#10303](https://github.com/GoogleChrome/lighthouse/pull/10303), [#10568](https://github.com/GoogleChrome/lighthouse/pull/10568), [#10564](https://github.com/GoogleChrome/lighthouse/pull/10564)).
825* `duplicated-javascript` also takes a dive through a page's JavaScript looking for code that has ended up duplicated within bundles or across multiple bundles ([#10314](https://github.com/GoogleChrome/lighthouse/pull/10314)).
826* `unused-javascript` now runs by default (as mentioned above), but when run under `experimental`, the audit can use source maps to show what _original_ source code was never run and could be postponed or eliminated ([#10090](https://github.com/GoogleChrome/lighthouse/pull/10090)).
827
828## New contributors!
829
830Thanks to @TGiles, @roelfjan, @chruxin, @warrengm, @alexgreencode, @mikedijkstra, @egsweeny, @johnsampson, @jazyan, @b3none, @mattjared, @Malvoz, @Beytoven, @Munter, @jayaddison, @msomji, @piotrzarycki, @awdltd, @mathiasbynens, @Carr1005, @staabm, @SphinxKnight, @sk-, @AndreasKubasa, @jantimon, @kmanuel, @Kikobeats, @RolandBurrows, @nxqamar, @catalinred, and @baseeee for their first contributions! So many!
831
832## 💥 Breaking changes
833
834* Performance metric scores [have been reweighted](https://web.dev/performance-scoring/) to better reflect a user's loading experience ([#9949](https://github.com/GoogleChrome/lighthouse/pull/9949)).
835* Metric score curves have been updated when running a desktop Lighthouse test to account for the faster connection and CPU ([#9911](https://github.com/GoogleChrome/lighthouse/pull/9911), [#10756](https://github.com/GoogleChrome/lighthouse/pull/10756)).
836* `frameNavigated` events are now used to track redirects, which means JS redirects are now accounted for when determining the run's `finalUrl` ([#10339](https://github.com/GoogleChrome/lighthouse/pull/10339)).
837* The emulated mobile device has moved from the Nexus 5x to the Moto G4 (but the existing DPR has been left unchanged) ([#10191](https://github.com/GoogleChrome/lighthouse/pull/10191), [#10749](https://github.com/GoogleChrome/lighthouse/pull/10749)).
838* The `mixed-content` preset has been removed as it was not widely used and takes too long to be added to the default Lighthouse experience ([#10159](https://github.com/GoogleChrome/lighthouse/pull/10159), [#10750](https://github.com/GoogleChrome/lighthouse/pull/10750)).
839* The `full` preset has been renamed `experimental` to signify that the code there may not be ready for running by default ([#9930](https://github.com/GoogleChrome/lighthouse/pull/9930), [#10311](https://github.com/GoogleChrome/lighthouse/pull/10311), [#10333](https://github.com/GoogleChrome/lighthouse/pull/10333), [#10585](https://github.com/GoogleChrome/lighthouse/pull/10585)).
840* The emulated Chrome UA string has been updated to Chrome 80 ([#9967](https://github.com/GoogleChrome/lighthouse/pull/9967)).
841* `installable-manifest`: icons in the Web app manifest must be fetchable to be considered installable ([#10168](https://github.com/GoogleChrome/lighthouse/pull/10168), [#10320](https://github.com/GoogleChrome/lighthouse/pull/10320))
842
843## 🤖💥 Breaking Changes for programmatic users
844
845These changes are unlikely to affect end users, but may be important if you are writing custom configs, plugins, or processing the Lighthouse JSON output.
846
847* `LH.Audit.Context` passed into audits is now treated as immutable. If code previously pushed to `context.LighthouseRunWarnings` to get a top-level warning, it should now pass that back in `runWarnings` on the audit's product ([#10555](https://github.com/GoogleChrome/lighthouse/pull/10555)).
848* `Audit.computeLogNormalScore` has been redefined to specify log-normal curves with median and p10 points (dropping the "point of diminishing returns"). Existing audits have been moved to this new definition so that no score changes should occur ([#10715](https://github.com/GoogleChrome/lighthouse/pull/10715)).
849* A `loadFailureMode` setting has been added to `Config` passes to control behavior in case of page load failure. Previously this was implicitly controlled (e.g. no offline page available did not cause an error) ([#9987](https://github.com/GoogleChrome/lighthouse/pull/9987))
850* `time-to-first-byte` has been renamed `server-response-time` to better reflect what is being measured by the audit ([#10735](https://github.com/GoogleChrome/lighthouse/pull/10735)).
851* `resource-summary`: `details.items.size` has been renamed to `transferSize` for clarity ([#10700](https://github.com/GoogleChrome/lighthouse/pull/10700), [#10743](https://github.com/GoogleChrome/lighthouse/pull/10743)).
852
853## 🧱 Core
854
855### Improvements, bug fixes, clarifications
856
857The following changes are considered to be bug fixes or updates to better match what was intended to be audited, but the changes may cause adjustments in audit scores or behavior.
858
859* add top-level warning if Lighthouse hit a timeout before load was complete ([#10538](https://github.com/GoogleChrome/lighthouse/pull/10538))
860* add top-level warning if tested URL was redirected ([#10157](https://github.com/GoogleChrome/lighthouse/pull/10157))
861* FCP + 5 seconds is now included as a minimum time that must be reached before the test page is considered loaded ([#10505](https://github.com/GoogleChrome/lighthouse/pull/10505), [#10516](https://github.com/GoogleChrome/lighthouse/pull/10516))
862* load simulation: add edges from `initiatorRequest` when there are duplicate records ([#10097](https://github.com/GoogleChrome/lighthouse/pull/10097))
863* load simulation: keep first layout/paint/parse events regardless of duration ([#9922](https://github.com/GoogleChrome/lighthouse/pull/9922))
864* load simulation: do not create self-dependencies via timers ([#10280](https://github.com/GoogleChrome/lighthouse/pull/10280))
865* load simulation: remove min task duration on CPU nodes ([#9910](https://github.com/GoogleChrome/lighthouse/pull/9910))
866* load simulation: use fixed times for data URLs since they've already been loaded ([#9932](https://github.com/GoogleChrome/lighthouse/pull/9932))
867* load simulation: link layout nodes to root frame request ([#9727](https://github.com/GoogleChrome/lighthouse/pull/9727))
868* tracehouse: improved attribution for XHRs + paint/layout/HTML ([#10001](https://github.com/GoogleChrome/lighthouse/pull/10001))
869* `offscreen-images`: look outside three viewports for possible images to defer ([#10643](https://github.com/GoogleChrome/lighthouse/pull/10643))
870* `uses-responsive-images`: include offscreen images larger than viewport ([#10506](https://github.com/GoogleChrome/lighthouse/pull/10506), [#10561](https://github.com/GoogleChrome/lighthouse/pull/10561))
871* `accessibility`: include `axe-core` ['incomplete'](https://github.com/dequelabs/axe-core/blob/ffa666972d2c82fe198c76a3491988def64769ee/doc/rule-development.md#check-properties) results in artifact to include even partial a11y results ([#10072](https://github.com/GoogleChrome/lighthouse/pull/10072), [#10270](https://github.com/GoogleChrome/lighthouse/pull/10270))
872* `audio-caption`: remove check that has been disabled by `axe-core` ([#10453](https://github.com/GoogleChrome/lighthouse/pull/10453))
873* `link-text`: Add more keywords to blocklist ([#9986](https://github.com/GoogleChrome/lighthouse/pull/9986))
874* `font-size`: don't allow a deleted node to fail gatherer ([#9928](https://github.com/GoogleChrome/lighthouse/pull/9928))
875* `installable-manifest`: lower required icon size from 192px to 144px ([#10175](https://github.com/GoogleChrome/lighthouse/pull/10175))
876* `is-on-https`: add `filesystem` to secure schemes ([#10073](https://github.com/GoogleChrome/lighthouse/pull/10073))
877* `offscreen-images`: exclude `lazy` or `eager` `loading` images ([#10117](https://github.com/GoogleChrome/lighthouse/pull/10117))
878* `resource-summary`: don't include favicon.ico in summary ([#10190](https://github.com/GoogleChrome/lighthouse/pull/10190))
879* `uses-rel-preconnect`: warn if more than three preconnects found ([#9903](https://github.com/GoogleChrome/lighthouse/pull/9903), [#10293](https://github.com/GoogleChrome/lighthouse/pull/10293))
880* `third-party-summary`: don't include main resource if origin in third-party list ([#10006](https://github.com/GoogleChrome/lighthouse/pull/10006))
881* `js-lib-detector`: handle new fast lib detection entries, version heterogeneity ([#9888](https://github.com/GoogleChrome/lighthouse/pull/9888), [#10295](https://github.com/GoogleChrome/lighthouse/pull/10295), [#10176](https://github.com/GoogleChrome/lighthouse/pull/10176))
882* `is-on-https`: update description to reference mixed content ([#10712](https://github.com/GoogleChrome/lighthouse/pull/10712))
883* `definition-list`: mention `<div>` is allowed to group content in `<dl>` ([#10479](https://github.com/GoogleChrome/lighthouse/pull/10479))
884* `offline-start-url`: improve failure messages ([#9982](https://github.com/GoogleChrome/lighthouse/pull/9982))
885* update and fix links to docs in audit and stack-pack descriptions ([#9850](https://github.com/GoogleChrome/lighthouse/pull/9850), [#9863](https://github.com/GoogleChrome/lighthouse/pull/9863), [#10019](https://github.com/GoogleChrome/lighthouse/pull/10019), [#10069](https://github.com/GoogleChrome/lighthouse/pull/10069), [#10246](https://github.com/GoogleChrome/lighthouse/pull/10246), [#10496](https://github.com/GoogleChrome/lighthouse/pull/10496), [#10714](https://github.com/GoogleChrome/lighthouse/pull/10714))
886
887### New things for programmatic users
888
889* audit results now have a `numericUnit` property to specify the units for their `numericResult` ([#9979](https://github.com/GoogleChrome/lighthouse/pull/9979))
890* `ImageElements`: add `usesPixelArtScaling` and `usesSrcSetDensityDescriptor` properties ([#10481](https://github.com/GoogleChrome/lighthouse/pull/10481))
891* `MetaElements`: include `property` attribute ([#9978](https://github.com/GoogleChrome/lighthouse/pull/9978))
892* add new base artifact `HostFormFactor` ([#9923](https://github.com/GoogleChrome/lighthouse/pull/9923))
893* refactor to share `unused-javascript-summary` as a computed artifact ([#10387](https://github.com/GoogleChrome/lighthouse/pull/10387), [#10634](https://github.com/GoogleChrome/lighthouse/pull/10634))
894* add new source-map computed artifact, `js-bundles` ([#10078](https://github.com/GoogleChrome/lighthouse/pull/10078))
895* refactor to share `unused-css` as a computed artifact ([#10160](https://github.com/GoogleChrome/lighthouse/pull/10160))
896* refactor to share metric timing as a computed artifact ([#9814](https://github.com/GoogleChrome/lighthouse/pull/9814))
897* budgets: add support for CLS and LCP budgets ([#10579](https://github.com/GoogleChrome/lighthouse/pull/10579), [#10625](https://github.com/GoogleChrome/lighthouse/pull/10625))
898* budgets: add `firstPartyHostnames` to the API ([#10105](https://github.com/GoogleChrome/lighthouse/pull/10105), [#10324](https://github.com/GoogleChrome/lighthouse/pull/10324))
899* budgets: remove unused `tolerance` property from API ([#9770](https://github.com/GoogleChrome/lighthouse/pull/9770))
900
901### Internal refactors and improvements
902
903* ensure `axe-core` errors are properly serialized ([#10646](https://github.com/GoogleChrome/lighthouse/pull/10646))
904* cleanup of `audit-details` type names ([#10603](https://github.com/GoogleChrome/lighthouse/pull/10603))
905* include `finished` state on hidden `network-requests` audit ([#10530](https://github.com/GoogleChrome/lighthouse/pull/10530))
906* fetch source maps outside of test page so not blocked by CORS ([#9459](https://github.com/GoogleChrome/lighthouse/pull/9459))
907* `driver`: dead code cleanup ([#10491](https://github.com/GoogleChrome/lighthouse/pull/10491), [#10571](https://github.com/GoogleChrome/lighthouse/pull/10571))
908* add internal-only `__internalOptionalArtifacts` for experimental artifacts ([#10355](https://github.com/GoogleChrome/lighthouse/pull/10355))
909* `font-size`: use `DOMSnapshot.captureSnapshot` for better performance ([#10200](https://github.com/GoogleChrome/lighthouse/pull/10200))
910* use isolated `evaluateAsync` when fetching content from the test page ([#10130](https://github.com/GoogleChrome/lighthouse/pull/10130))
911* budgets: centralize path-matching logic ([#9895](https://github.com/GoogleChrome/lighthouse/pull/9895))
912* `script-elements`: fetch script content in parallel ([#9713](https://github.com/GoogleChrome/lighthouse/pull/9713))
913* include `GatherRunner.runPass` in internal perf timing numbers ([#10205](https://github.com/GoogleChrome/lighthouse/pull/10205))
914* rename `GatherRunner.isPerfPass` for clarity ([#9896](https://github.com/GoogleChrome/lighthouse/pull/9896))
915* migrate to flattened Chrome DevTools Protocol ([#9783](https://github.com/GoogleChrome/lighthouse/pull/9783))
916
917## 💻 CLI
918
919* add support for multiple `--chrome-flags` ([#10607](https://github.com/GoogleChrome/lighthouse/pull/10607))
920* allow comma-separated values for `--output` ([#10188](https://github.com/GoogleChrome/lighthouse/pull/10188))
921* add `--chrome-ignore-default-flags` ([#10184](https://github.com/GoogleChrome/lighthouse/pull/10184))
922* allow `--extra-headers` as object ([#9962](https://github.com/GoogleChrome/lighthouse/pull/9962))
923
924## 📔 Report
925
926* add "Trust and Safety" group in the Best Practices category ([#10623](https://github.com/GoogleChrome/lighthouse/pull/10623))
927* add link to score calculator populated with current metric scores ([#10754](https://github.com/GoogleChrome/lighthouse/pull/10754), [#10763](https://github.com/GoogleChrome/lighthouse/pull/10763), [#10773](https://github.com/GoogleChrome/lighthouse/pull/10773), [#10767](https://github.com/GoogleChrome/lighthouse/pull/10767))
928* improve display of top-level warnings ([#10636](https://github.com/GoogleChrome/lighthouse/pull/10636), [#10765](https://github.com/GoogleChrome/lighthouse/pull/10765))
929* `external-anchors-use-rel-noopener`: use `node` audit details type ([#10242](https://github.com/GoogleChrome/lighthouse/pull/10242))
930* `is-crawlable`: include `robots.txt` line number that blocks crawling ([#10154](https://github.com/GoogleChrome/lighthouse/pull/10154))
931* temporary test of css grid for metrics ([#10695](https://github.com/GoogleChrome/lighthouse/pull/10695), [#10778](https://github.com/GoogleChrome/lighthouse/pull/10778))
932* define monospace `font-size` relative to `report-font-size` ([#10761](https://github.com/GoogleChrome/lighthouse/pull/10761))
933* link to updated scoring documentation ([#10725](https://github.com/GoogleChrome/lighthouse/pull/10725))
934* add non-`null` jsdoc type annotations for internal linter ([#10454](https://github.com/GoogleChrome/lighthouse/pull/10454))
935* clarify "size" as either transfer or resource size ([#10420](https://github.com/GoogleChrome/lighthouse/pull/10420))
936* update table and inline code formatting ([#10437](https://github.com/GoogleChrome/lighthouse/pull/10437))
937* fix link contrast in dark mode ([#10364](https://github.com/GoogleChrome/lighthouse/pull/10364))
938* add `channel` to runtime settings ([#10099](https://github.com/GoogleChrome/lighthouse/pull/10099))
939* align audit warnings ([#10232](https://github.com/GoogleChrome/lighthouse/pull/10232))
940* close drop-down menu when focus is lost ([#10208](https://github.com/GoogleChrome/lighthouse/pull/10208))
941* hide drop-down menu when printing ([#10216](https://github.com/GoogleChrome/lighthouse/pull/10216))
942* move `Util.UIStrings` to `Util.i18n` ([#10153](https://github.com/GoogleChrome/lighthouse/pull/10153))
943* add initial support for subrows within a table ([#10084](https://github.com/GoogleChrome/lighthouse/pull/10084))
944* adjust score gauge's arc length to account for rounded linecap ([#9913](https://github.com/GoogleChrome/lighthouse/pull/9913))
945* fix header-shifting flicker during scrolling ([#9955](https://github.com/GoogleChrome/lighthouse/pull/9955))
946* add `source-location` details for linking to source code ([#9354](https://github.com/GoogleChrome/lighthouse/pull/9354))
947* CSV report: add tested URLs to entries ([#10656](https://github.com/GoogleChrome/lighthouse/pull/10656), [#10675](https://github.com/GoogleChrome/lighthouse/pull/10675))
948* viewer: add option for loading JSON from any URL ([#10608](https://github.com/GoogleChrome/lighthouse/pull/10608))
949* viewer: mention other lighthouse channels ([#10384](https://github.com/GoogleChrome/lighthouse/pull/10384))
950* viewer: add page and cursor styling to signal loading ([#10305](https://github.com/GoogleChrome/lighthouse/pull/10305), [#10348](https://github.com/GoogleChrome/lighthouse/pull/10348))
951* viewer: use new logo ([#9991](https://github.com/GoogleChrome/lighthouse/pull/9991), [#9999](https://github.com/GoogleChrome/lighthouse/pull/9999), [#10002](https://github.com/GoogleChrome/lighthouse/pull/10002))
952
953## 👥 Clients
954
955* retire extension; replace with PSI launcher ([#9193](https://github.com/GoogleChrome/lighthouse/pull/9193), [#9988](https://github.com/GoogleChrome/lighthouse/pull/9988), [#9989](https://github.com/GoogleChrome/lighthouse/pull/9989))
956* extension: add firefox support ([#10332](https://github.com/GoogleChrome/lighthouse/pull/10332))
957* extension: remove content security policy ([#10380](https://github.com/GoogleChrome/lighthouse/pull/10380))
958* devtools: share desktop throttling settings with lightrider ([#10322](https://github.com/GoogleChrome/lighthouse/pull/10322))
959* devtools: split up `runLighthouseInWorker` and expose to worker ([#10005](https://github.com/GoogleChrome/lighthouse/pull/10005))
960* devtools: add `settings.internalDisableDeviceScreenEmulation` ([#9377](https://github.com/GoogleChrome/lighthouse/pull/9377))
961* devtools: include `lighthouse-plugin-publisher-ads` in bundle ([#9924](https://github.com/GoogleChrome/lighthouse/pull/9924), [#10583](https://github.com/GoogleChrome/lighthouse/pull/10583), [#10682](https://github.com/GoogleChrome/lighthouse/pull/10682))
962* devtools: update `roll-to-devtools` and track upstream changes ([#9942](https://github.com/GoogleChrome/lighthouse/pull/9942), [#10310](https://github.com/GoogleChrome/lighthouse/pull/10310), [#10036](https://github.com/GoogleChrome/lighthouse/pull/10036), [#10758](https://github.com/GoogleChrome/lighthouse/pull/10758), [#10762](https://github.com/GoogleChrome/lighthouse/pull/10762))
963
964## 🌍 i18n
965
966* new strings: audits, stack packs, headings, and corrections ([#9940](https://github.com/GoogleChrome/lighthouse/pull/9940), [#10244](https://github.com/GoogleChrome/lighthouse/pull/10244), [#10245](https://github.com/GoogleChrome/lighthouse/pull/10245), [#10645](https://github.com/GoogleChrome/lighthouse/pull/10645))
967* localize runtime settings and tools in report ([#9166](https://github.com/GoogleChrome/lighthouse/pull/9166))
968* don't give unused arguments for localized protocol errors ([#9935](https://github.com/GoogleChrome/lighthouse/pull/9935))
969* use `log.verbose()` for outdated-strings warning ([#9931](https://github.com/GoogleChrome/lighthouse/pull/9931))
970* centralize strings for metric names ([#9871](https://github.com/GoogleChrome/lighthouse/pull/9871))
971
972## Docs
973
974* plugins: update recipe and docs to use `NODE_PATH` ([#9997](https://github.com/GoogleChrome/lighthouse/pull/9997), [#10028](https://github.com/GoogleChrome/lighthouse/pull/10028))
975* plugins: update example list ([#9917](https://github.com/GoogleChrome/lighthouse/pull/9917))
976* scoring: update for v6, defer to web.dev for performance ([#10223](https://github.com/GoogleChrome/lighthouse/pull/10223), [#10633](https://github.com/GoogleChrome/lighthouse/pull/10633), [#10676](https://github.com/GoogleChrome/lighthouse/pull/10676))
977* lantern: add deep-dive video ([#10546](https://github.com/GoogleChrome/lighthouse/pull/10546))
978* new-audits: emphasize what makes a good audit ([#10376](https://github.com/GoogleChrome/lighthouse/pull/10376))
979* hacking-tips: link to gist on using audit results directly ([#10480](https://github.com/GoogleChrome/lighthouse/pull/10480))
980* variability: expand on hardware recommendations ([#10483](https://github.com/GoogleChrome/lighthouse/pull/10483))
981* throttling: add devtools-throttling deprecation notice ([#9933](https://github.com/GoogleChrome/lighthouse/pull/9933))
982* auth: use `--disable-storage-reset` in recipe ([#10189](https://github.com/GoogleChrome/lighthouse/pull/10189))
983* tweak authenticated-pages and puppeteer docs ([#10277](https://github.com/GoogleChrome/lighthouse/pull/10277))
984* add integration-test recipe for using Lighthouse and Jest ([#9722](https://github.com/GoogleChrome/lighthouse/pull/9722))
985* add performance-budgets doc ([#10542](https://github.com/GoogleChrome/lighthouse/pull/10542))
986* add recipe for using puppeteer in a custom gatherer ([#10253](https://github.com/GoogleChrome/lighthouse/pull/10253), [#10447](https://github.com/GoogleChrome/lighthouse/pull/10447))
987* add readme for `build/` directory ([#10004](https://github.com/GoogleChrome/lighthouse/pull/10004))
988* readme: add variability and throttling to FAQ ([#10631](https://github.com/GoogleChrome/lighthouse/pull/10631))
989* readme: add a table of contents ([#10283](https://github.com/GoogleChrome/lighthouse/pull/10283))
990* readme: add note about `yarn test-docs` ([#10263](https://github.com/GoogleChrome/lighthouse/pull/10263))
991* readme: fix typos ([#10179](https://github.com/GoogleChrome/lighthouse/pull/10179), [#10694](https://github.com/GoogleChrome/lighthouse/pull/10694))
992* readme: add protobuf install directions ([#10250](https://github.com/GoogleChrome/lighthouse/pull/10250))
993* readme: separate free and paid integrations ([#10027](https://github.com/GoogleChrome/lighthouse/pull/10027))
994* readme: add new and updated integrations ([#9954](https://github.com/GoogleChrome/lighthouse/pull/9954), [#9984](https://github.com/GoogleChrome/lighthouse/pull/9984), [#10018](https://github.com/GoogleChrome/lighthouse/pull/10018), [#9985](https://github.com/GoogleChrome/lighthouse/pull/9985), [#10156](https://github.com/GoogleChrome/lighthouse/pull/10156), [#9836](https://github.com/GoogleChrome/lighthouse/pull/9836), [#10385](https://github.com/GoogleChrome/lighthouse/pull/10385), [#10466](https://github.com/GoogleChrome/lighthouse/pull/10466), [#10475](https://github.com/GoogleChrome/lighthouse/pull/10475), [#10609](https://github.com/GoogleChrome/lighthouse/pull/10609), [#10745](https://github.com/GoogleChrome/lighthouse/pull/10745))
995
996## Tests
997
998* remove protobuf roundtrip check (and local protobuf dev requirement) from `yarn update:sample-json` ([#10557](https://github.com/GoogleChrome/lighthouse/pull/10557), [#10661](https://github.com/GoogleChrome/lighthouse/pull/10661))
999* run CI tests on new github action ([#10418](https://github.com/GoogleChrome/lighthouse/pull/10418), [#10551](https://github.com/GoogleChrome/lighthouse/pull/10551), [#10620](https://github.com/GoogleChrome/lighthouse/pull/10620), [#10622](https://github.com/GoogleChrome/lighthouse/pull/10622), [#10627](https://github.com/GoogleChrome/lighthouse/pull/10627))
1000* report to buildtracker on commit via CI github action ([#10550](https://github.com/GoogleChrome/lighthouse/pull/10550), [#10718](https://github.com/GoogleChrome/lighthouse/pull/10718))
1001* lantern: update golden trace collection script and recollect them ([#9662](https://github.com/GoogleChrome/lighthouse/pull/9662), [#10129](https://github.com/GoogleChrome/lighthouse/pull/10129), [#10209](https://github.com/GoogleChrome/lighthouse/pull/10209), [#10279](https://github.com/GoogleChrome/lighthouse/pull/10279), [#10663](https://github.com/GoogleChrome/lighthouse/pull/10663))
1002* smokehouse: refactor to be able to integration test all lighthouse clients ([#9843](https://github.com/GoogleChrome/lighthouse/pull/9843), [#10158](https://github.com/GoogleChrome/lighthouse/pull/10158))
1003* smokehouse: add `bundle.js` runner for driving bundled lighthouse tests ([#9943](https://github.com/GoogleChrome/lighthouse/pull/9943))
1004* bundle smokehouse + `bundle.js` runner + bundled lighthouse for integration testing in a browser ([#9873](https://github.com/GoogleChrome/lighthouse/pull/9873), [#10727](https://github.com/GoogleChrome/lighthouse/pull/10727))
1005* smokehouse: use ranges for some expectations to work in varying environments ([#10227](https://github.com/GoogleChrome/lighthouse/pull/10227), [#10473](https://github.com/GoogleChrome/lighthouse/pull/10473))
1006* smokehouse: add `static-server` hook to modify response body ([#9872](https://github.com/GoogleChrome/lighthouse/pull/9872))
1007* smokehouse: adjust expectation handling and logging for compatibility ([#10361](https://github.com/GoogleChrome/lighthouse/pull/10361))
1008* smokehouse: commit copy of `pwa.rocks` for testing ([#10648](https://github.com/GoogleChrome/lighthouse/pull/10648))
1009* add type checking to `driver-test` ([#10135](https://github.com/GoogleChrome/lighthouse/pull/10135), [#10123](https://github.com/GoogleChrome/lighthouse/pull/10123))
1010* add type checking to `gather-runner-test` ([#10136](https://github.com/GoogleChrome/lighthouse/pull/10136), [#10215](https://github.com/GoogleChrome/lighthouse/pull/10215), [#10230](https://github.com/GoogleChrome/lighthouse/pull/10230))
1011* fix `i18n-test.js` bugs in Node 13 ([#10595](https://github.com/GoogleChrome/lighthouse/pull/10595))
1012* i18n: add check of locale files for strings that are probably wrong ([#9847](https://github.com/GoogleChrome/lighthouse/pull/9847))
1013* use `assert` in strict assertion mode ([#10606](https://github.com/GoogleChrome/lighthouse/pull/10606), [#10733](https://github.com/GoogleChrome/lighthouse/pull/10733))
1014* `report-ui-features`: add tests and remove interdependencies ([#10199](https://github.com/GoogleChrome/lighthouse/pull/10199), [#10201](https://github.com/GoogleChrome/lighthouse/pull/10201))
1015* update `coveragePathIgnore` jest configuration ([#10448](https://github.com/GoogleChrome/lighthouse/pull/10448))
1016* `speedline`: remove flaky test ([#10181](https://github.com/GoogleChrome/lighthouse/pull/10181))
1017* remove `global.URL` for jsdom tests ([#10186](https://github.com/GoogleChrome/lighthouse/pull/10186))
1018* viewer-test: don't override `puppeteer`'s chromium ([#9877](https://github.com/GoogleChrome/lighthouse/pull/9877))
1019* fix appveyor cache failures ([#10281](https://github.com/GoogleChrome/lighthouse/pull/10281))
1020* use lighthouse tarball for recipe tests ([#10254](https://github.com/GoogleChrome/lighthouse/pull/10254))
1021* stage viewer per PR with `yarn now-build` ([#10151](https://github.com/GoogleChrome/lighthouse/pull/10151))
1022
1023## Misc
1024
1025* update license headers to credit `Lighthouse Authors` ([#10469](https://github.com/GoogleChrome/lighthouse/pull/10469))
1026* add `timings-data/` to `.npmignore` ([#10584](https://github.com/GoogleChrome/lighthouse/pull/10584))
1027* update commitlint config to latest, loosen subject-case ([#10371](https://github.com/GoogleChrome/lighthouse/pull/10371))
1028* tweak `CODEOWNERS` for codereview assignment ([#10265](https://github.com/GoogleChrome/lighthouse/pull/10265), [#10274](https://github.com/GoogleChrome/lighthouse/pull/10274), [#10282](https://github.com/GoogleChrome/lighthouse/pull/10282))
1029* release script push tag ([#10193](https://github.com/GoogleChrome/lighthouse/pull/10193))
1030* add a `bump-versions.js` release script ([#9998](https://github.com/GoogleChrome/lighthouse/pull/9998))
1031* add comment about minimum chrome version for LCP ([#9889](https://github.com/GoogleChrome/lighthouse/pull/9889))
1032* update changelog order and add chrome note placeholder ([#9859](https://github.com/GoogleChrome/lighthouse/pull/9859))
1033* add `.mailmap` file ([#10766](https://github.com/GoogleChrome/lighthouse/pull/10766))
1034* add chrome version field to bug report template ([#9866](https://github.com/GoogleChrome/lighthouse/pull/9866))
1035* upgrade Lighthouse CI dogfood script ([#9879](https://github.com/GoogleChrome/lighthouse/pull/9879), [#9951](https://github.com/GoogleChrome/lighthouse/pull/9951), [#9972](https://github.com/GoogleChrome/lighthouse/pull/9972), [#10482](https://github.com/GoogleChrome/lighthouse/pull/10482))
1036* updates and new features for internal `compare-runs` script ([#10296](https://github.com/GoogleChrome/lighthouse/pull/10296), [#10519](https://github.com/GoogleChrome/lighthouse/pull/10519), [#10526](https://github.com/GoogleChrome/lighthouse/pull/10526), [#10652](https://github.com/GoogleChrome/lighthouse/pull/10652))
1037* add `git3po` scripts for managing Github issues and PRs ([#10231](https://github.com/GoogleChrome/lighthouse/pull/10231), [#10266](https://github.com/GoogleChrome/lighthouse/pull/10266), [#10255](https://github.com/GoogleChrome/lighthouse/pull/10255), [#10271](https://github.com/GoogleChrome/lighthouse/pull/10271), [#10338](https://github.com/GoogleChrome/lighthouse/pull/10338), [#10256](https://github.com/GoogleChrome/lighthouse/pull/10256), [#10304](https://github.com/GoogleChrome/lighthouse/pull/10304), [#10658](https://github.com/GoogleChrome/lighthouse/pull/10658), [#10257](https://github.com/GoogleChrome/lighthouse/pull/10257))
1038
1039## Deps
1040
1041* `lighthouse-plugin-publisher-ads`: upgrade to 1.1.0-beta.0 ([#10544](https://github.com/GoogleChrome/lighthouse/pull/10544), [#10776](https://github.com/GoogleChrome/lighthouse/pull/10776))
1042* `chrome-launcher`: upgrade to 0.13.2 ([#9904](https://github.com/GoogleChrome/lighthouse/pull/9904), [#10535](https://github.com/GoogleChrome/lighthouse/pull/10535), [#10724](https://github.com/GoogleChrome/lighthouse/pull/10724))
1043* `yargs-parser`: upgrade to 18.1.3 ([#10723](https://github.com/GoogleChrome/lighthouse/pull/10723))
1044* `third-party-web`: upgrade to 0.11.1 ([#10711](https://github.com/GoogleChrome/lighthouse/pull/10711))
1045* `axe-core`: upgrade to 3.5.3 ([#10056](https://github.com/GoogleChrome/lighthouse/pull/10056), [#10344](https://github.com/GoogleChrome/lighthouse/pull/10344), [#10637](https://github.com/GoogleChrome/lighthouse/pull/10637))
1046* `typescript`: upgrade to 3.8.3 ([#10461](https://github.com/GoogleChrome/lighthouse/pull/10461))
1047* `puppeteer`: upgrade to 1.20.0 ([#10275](https://github.com/GoogleChrome/lighthouse/pull/10275))
1048* `bundlesize`: upgrade to to 0.18.0 ([#10272](https://github.com/GoogleChrome/lighthouse/pull/10272))
1049* `devtools-protocol`: upgrade to 0.0.729809 ([#10207](https://github.com/GoogleChrome/lighthouse/pull/10207))
1050* check `angular` test fixture into repo ([#10086](https://github.com/GoogleChrome/lighthouse/pull/10086))
1051* remove `mkdirp` and `make-dir` for `fs.mkdir` ([#9858](https://github.com/GoogleChrome/lighthouse/pull/9858))
1052* update snyk snapshot ([#10771](https://github.com/GoogleChrome/lighthouse/pull/10771), [#10670](https://github.com/GoogleChrome/lighthouse/pull/10670), [#10621](https://github.com/GoogleChrome/lighthouse/pull/10621), [#10559](https://github.com/GoogleChrome/lighthouse/pull/10559), [#10066](https://github.com/GoogleChrome/lighthouse/pull/10066), [#9929](https://github.com/GoogleChrome/lighthouse/pull/9929), [#10531](https://github.com/GoogleChrome/lighthouse/pull/10531), [#10478](https://github.com/GoogleChrome/lighthouse/pull/10478), [#10423](https://github.com/GoogleChrome/lighthouse/pull/10423), [#10163](https://github.com/GoogleChrome/lighthouse/pull/10163), [#9965](https://github.com/GoogleChrome/lighthouse/pull/9965))
1053
1054 <a name="6.0.0-beta.0"></a>
1055# 6.0.0-beta.0 (2020-03-11)
1056[Full Changelog](https://github.com/GoogleChrome/lighthouse/compare/v5.6.0...v6.0.0-beta.0)
1057
1058This beta release will not ship in Chrome DevTools, but we'll ship the final 6.0 release.
1059
1060## Notable Changes
1061* Brand new metrics and performance score calculation (seeking feedback)
1062* Lots more, complete release notes brewing..
1063
1064See the [6.0.0 release notes](https://github.com/GoogleChrome/lighthouse/releases/tag/v6.0.0) for full changelog.
1065
1066<a name="5.6.0"></a>
1067# 5.6.0 (2019-10-17)
1068[Full Changelog](https://github.com/googlechrome/lighthouse/compare/v5.5.0...v5.6.0)
1069
1070We expect this release to ship in the DevTools of Chrome 79.
1071
1072## New contributors!
1073
1074Thanks to @dpacassi, @lirantal and @yeonjuan for their first contributions!
1075
1076## Notable
1077
1078* gather: add new MainDocumentContent public artifact ([#9781](https://github.com/googlechrome/lighthouse/pull/9781))
1079* stack-packs: add angular, react, amp, and magento packs ([#9797](https://github.com/googlechrome/lighthouse/pull/9797))
1080
1081## Core
1082
1083* tracehouse: allow child to start <1ms before parent ([#9786](https://github.com/googlechrome/lighthouse/pull/9786))
1084* driver: fix error handling for Runtime.evaluate ([#9831](https://github.com/googlechrome/lighthouse/pull/9831))
1085* errors-in-console: add ignoredPatterns option ([#9480](https://github.com/googlechrome/lighthouse/pull/9480), [#9829](https://github.com/googlechrome/lighthouse/pull/9829))
1086* image-elements: cache naturalSize results ([#9818](https://github.com/googlechrome/lighthouse/pull/9818))
1087* link-elements: ignore non-HTMLLinkElements ([#9765](https://github.com/googlechrome/lighthouse/pull/9765))
1088* optimized-images: log errors ([#9782](https://github.com/googlechrome/lighthouse/pull/9782))
1089* seo: support korean in link-text audit ([#9804](https://github.com/googlechrome/lighthouse/pull/9804))
1090* tracehouse: allow nested trace events without an end ([#9785](https://github.com/googlechrome/lighthouse/pull/9785))
1091* rename Element to LHElement ([#9832](https://github.com/googlechrome/lighthouse/pull/9832))
1092
1093## Deps
1094
1095* update third-party-web to 0.11.0 ([#9849](https://github.com/googlechrome/lighthouse/pull/9849))
1096* snyk: update snyk snapshot ([#9793](https://github.com/googlechrome/lighthouse/pull/9793))
1097
1098## Report
1099
1100* rephrase titles for 3rdparty & crc ([#9419](https://github.com/googlechrome/lighthouse/pull/9419))
1101* rewrite dom-size description ([#9821](https://github.com/googlechrome/lighthouse/pull/9821))
1102* update logo in top bar ([#9728](https://github.com/googlechrome/lighthouse/pull/9728))
1103* remove some dead code ([#9800](https://github.com/googlechrome/lighthouse/pull/9800))
1104
1105## Clients
1106
1107* lr: don't include html report assets in bundle ([#9828](https://github.com/googlechrome/lighthouse/pull/9828))
1108* viewer: minify inlined report-generator bundle ([#9596](https://github.com/googlechrome/lighthouse/pull/9596))
1109
1110## I18n
1111
1112* import: web.dev links and small corrections ([#9846](https://github.com/googlechrome/lighthouse/pull/9846))
1113* import translations ([#9802](https://github.com/googlechrome/lighthouse/pull/9802))
1114
1115## Docs
1116
1117* related-projects: add lighthouse-check ([#9753](https://github.com/googlechrome/lighthouse/pull/9753))
1118* related-projects: add the is-website-vulnerable CLI tool ([#9810](https://github.com/googlechrome/lighthouse/pull/9810))
1119* related-projects: add the gradle lighthouse plugin ([#9789](https://github.com/googlechrome/lighthouse/pull/9789))
1120* document 'meaning' field in i18n readme ([#9787](https://github.com/googlechrome/lighthouse/pull/9787))
1121* update stale references to audits ([#9760](https://github.com/googlechrome/lighthouse/pull/9760))
1122
1123## Tests
1124
1125* use firehouse smoke test runner to test bundle ([#9791](https://github.com/googlechrome/lighthouse/pull/9791))
1126* attempt bundle test three times in CI ([#9830](https://github.com/googlechrome/lighthouse/pull/9830))
1127* smokehouse: fix tmp directory creation ([#9855](https://github.com/googlechrome/lighthouse/pull/9855))
1128* smokehouse: use static requires for test definitions ([#9501](https://github.com/googlechrome/lighthouse/pull/9501))
1129
1130## Misc
1131
1132* build: minify report javascript for lightrider report generator ([#9823](https://github.com/googlechrome/lighthouse/pull/9823))
1133* more releasing tweaks ([#9772](https://github.com/googlechrome/lighthouse/pull/9772))
1134* add compare-timings script ([#9723](https://github.com/googlechrome/lighthouse/pull/9723), [#9776](https://github.com/googlechrome/lighthouse/pull/9776))
1135
1136<a name="5.5.0"></a>
1137# 5.5.0 (2019-10-02)
1138
1139## Notable changes
1140* Preliminary implementation of the [Largest Contentful Paint](https://web.dev/largest-contentful-paint) metric has landed (`devtools` and `provided` throttling only) and can be found in the hidden `metrics` audit in the raw LHR JSON ([#9706](https://github.com/googlechrome/lighthouse/pull/9706))
1141* The creation of main-thread tasks from a trace is now more robust. This should significantly reduce the occurrence of Issue [#7764](https://github.com/GoogleChrome/lighthouse/issues/7764), `"Fatal trace logic error - expected start event, got X"` ([#9491](https://github.com/googlechrome/lighthouse/pull/9491))
1142* `<script>` element `id` has been added to the `ScriptElements` artifact ([#9718](https://github.com/googlechrome/lighthouse/pull/9718))
1143
1144## New contributors!
1145Thanks to @LarsKumbier, @TimvdLippe, and @uchoudh for their first contributions!
1146
1147## Core
1148
1149* network-recorder: remove quic-request-finished workaround ([#9744](https://github.com/googlechrome/lighthouse/pull/9744))
1150* network-recorder: optimize network idle detection ([#9712](https://github.com/googlechrome/lighthouse/pull/9712))
1151* unused-css-rules: no more infinity savings ([#9731](https://github.com/googlechrome/lighthouse/pull/9731))
1152
1153## Clients
1154
1155* devtools: expose `registerLocaleData` to worker ([#9645](https://github.com/googlechrome/lighthouse/pull/9645))
1156* devtools: update references to `Runtime.cachedResources` ([#9758](https://github.com/googlechrome/lighthouse/pull/9758))
1157
1158## Docs
1159
1160* new documentation for running Lighthouse on [authenticated pages](https://github.com/GoogleChrome/lighthouse/blob/a7e823ebf017224a3528a5a337e3b79c2983fee5/docs/authenticated-pages.md) ([#9628](https://github.com/googlechrome/lighthouse/pull/9628), [#9705](https://github.com/googlechrome/lighthouse/pull/9705))
1161* point more docs links to web.dev ([#9540](https://github.com/googlechrome/lighthouse/pull/9540), [#9711](https://github.com/googlechrome/lighthouse/pull/9711), [#9761](https://github.com/googlechrome/lighthouse/pull/9761))
1162* readme: add more related projects ([#9716](https://github.com/googlechrome/lighthouse/pull/9716), [#9743](https://github.com/googlechrome/lighthouse/pull/9743))
1163* releasing: add schedule, more integration testing ([#9695](https://github.com/googlechrome/lighthouse/pull/9695))
1164* add links to more info about throttling and variability ([#9734](https://github.com/googlechrome/lighthouse/pull/9734))
1165* update scoring calculator link to v5 ([#9729](https://github.com/googlechrome/lighthouse/pull/9729))
1166
1167## Tests
1168
1169* add Lighthouse CI dogfood script to travis ([#9677](https://github.com/googlechrome/lighthouse/pull/9677), [#9745](https://github.com/googlechrome/lighthouse/pull/9745))
1170* report: update `utm_medium` check for web.dev links ([#9737](https://github.com/googlechrome/lighthouse/pull/9737))
1171* smokehouse: add check for any `runWarnings` ([#9732](https://github.com/googlechrome/lighthouse/pull/9732))
1172* attempt to download lantern test trace set a few times ([#9766](https://github.com/googlechrome/lighthouse/pull/9766))
1173
1174## Misc
1175
1176* devtools: remove version replacement for expectations ([#9702](https://github.com/googlechrome/lighthouse/pull/9702))
1177* remove unnecessary return in Promise ([#9703](https://github.com/googlechrome/lighthouse/pull/9703))
1178* assets: update logo ([#9694](https://github.com/googlechrome/lighthouse/pull/9694))
1179
1180[Full Changelog](https://github.com/googlechrome/lighthouse/compare/v5.4.0...v5.5.0)
1181
1182 <a name="5.4.0"></a>
1183# 5.4.0 (2019-09-18)
1184
1185Expected DevTools release in Chrome 79 ([December 2019](https://chromestatus.com/features/schedule))
1186
1187## Core
1188
1189* iframe-elements: Include new IFrameElements gatherer ([#8979](https://github.com/googlechrome/lighthouse/pull/8979))
1190
1191## Report
1192
1193* update favicon ([#9688](https://github.com/googlechrome/lighthouse/pull/9688))
1194
1195## Docs
1196
1197* plugins: update recipe's lighthouse peerDependency version ([#9653](https://github.com/googlechrome/lighthouse/pull/9653))
1198
1199## I18n
1200
1201* treat Infinity and NaN as numeric values ([#9687](https://github.com/googlechrome/lighthouse/pull/9687))
1202
1203## Tests
1204
1205* smokehouse: fix unintentional 404, relax max-len ([#9665](https://github.com/googlechrome/lighthouse/pull/9665))
1206
1207<a name="5.3.0"></a>
1208# 5.3.0 (2019-09-13)
1209
1210Expected DevTools release in Chrome 79 ([December 2019](https://chromestatus.com/features/schedule))
1211
1212## New contributors!
1213Thanks to our new contributors @alabiaga, @olore, @letanure, and @mfriesenhahn!
1214
1215## Core
1216* point audit descriptions to new web.dev Lighthouse docs ([#9538](https://github.com/googlechrome/lighthouse/pull/9538), [#9539](https://github.com/googlechrome/lighthouse/pull/9539), [#9084](https://github.com/googlechrome/lighthouse/pull/9084), [#9537](https://github.com/googlechrome/lighthouse/pull/9537))
1217* constants: increase default `maxWaitForFcp` to 30s ([#9509](https://github.com/googlechrome/lighthouse/pull/9509))
1218* font-size: gather style declaration of type attributes ([#9414](https://github.com/googlechrome/lighthouse/pull/9414))
1219* gather-runner: only fail on interstitials interrupting the `mainRecord` ([#9576](https://github.com/googlechrome/lighthouse/pull/9576))
1220* lightwallet: add path property to `budget.json` ([#9453](https://github.com/googlechrome/lighthouse/pull/9453))
1221* seo: support portuguese in `link-text` audit ([#9446](https://github.com/googlechrome/lighthouse/pull/9446))
1222* start-url: stay offline for entirety of `offlinePass` ([#9451](https://github.com/googlechrome/lighthouse/pull/9451))
1223* third-party-summary: add blocking-time impact ([#9486](https://github.com/googlechrome/lighthouse/pull/9486))
1224* tracehouse: sort trace events by nesting order ([#9230](https://github.com/googlechrome/lighthouse/pull/9230))
1225* add `source-maps` gatherer ([#9101](https://github.com/googlechrome/lighthouse/pull/9101))
1226* unused-css: allow up to 10KB of unused CSS per file ([#9479](https://github.com/googlechrome/lighthouse/pull/9479))
1227
1228## CLI
1229
1230* list audit categories in help text ([#9399](https://github.com/googlechrome/lighthouse/pull/9399))
1231
1232## Clients
1233
1234* devtools: fix collapsing-width svg in flexbox ([#9602](https://github.com/googlechrome/lighthouse/pull/9602))
1235* devtools: update test command to run only .js files ([#9532](https://github.com/googlechrome/lighthouse/pull/9532))
1236* proto: don't filter `channel` from `configSettings` ([#9554](https://github.com/googlechrome/lighthouse/pull/9554))
1237* viewer: remove obsolete polyfills ([#9553](https://github.com/googlechrome/lighthouse/pull/9553))
1238* proto: update import hooks, obey line length ([#9595](https://github.com/googlechrome/lighthouse/pull/9595))
1239
1240## Deps
1241
1242* chrome-launcher: update to 0.11.2 ([#9515](https://github.com/googlechrome/lighthouse/pull/9515))
1243* details-element-polyfill: update to 2.4.0 ([#9552](https://github.com/googlechrome/lighthouse/pull/9552))
1244* jsonlint-mod: update to 1.7.5 ([#9465](https://github.com/googlechrome/lighthouse/pull/9465))
1245* update transitive deps ([#9670](https://github.com/googlechrome/lighthouse/pull/9670))
1246
1247## Docs
1248
1249* fix broken plugin example link ([#9524](https://github.com/googlechrome/lighthouse/pull/9524))
1250* lightwallet: add link to budget.json repo ([#9579](https://github.com/googlechrome/lighthouse/pull/9579))
1251
1252## I18n
1253
1254* import translations from tc/ ([#9577](https://github.com/googlechrome/lighthouse/pull/9577), [#9620](https://github.com/googlechrome/lighthouse/pull/9620), [#9454](https://github.com/googlechrome/lighthouse/pull/9454))
1255* add `registerLocaleData()` method ([#9638](https://github.com/googlechrome/lighthouse/pull/9638))
1256* rewrite `aria-required-children` titles ([#9590](https://github.com/googlechrome/lighthouse/pull/9590))
1257* reword `pwa-page-transitions` description ([#9615](https://github.com/googlechrome/lighthouse/pull/9615))
1258* throw on excess placeholder replacement values ([#9580](https://github.com/googlechrome/lighthouse/pull/9580))
1259* remove translated messages when ICU arguments change ([#9598](https://github.com/googlechrome/lighthouse/pull/9598))
1260* use better types for `intl-messageformat` ([#9570](https://github.com/googlechrome/lighthouse/pull/9570))
1261* add code spans to `uses-rel-preconnect` description ([#9568](https://github.com/googlechrome/lighthouse/pull/9568))
1262* fix bugs in locale-importing scripts ([#9621](https://github.com/googlechrome/lighthouse/pull/9621))
1263* fix custom formatted ICU within plurals ([#9460](https://github.com/googlechrome/lighthouse/pull/9460))
1264* capitalize `robots.txt` `displayValue` ([#9567](https://github.com/googlechrome/lighthouse/pull/9567))
1265* add link to cldr parentLocales ([#9520](https://github.com/googlechrome/lighthouse/pull/9520))
1266* move pwa audits to i18n system ([#9105](https://github.com/googlechrome/lighthouse/pull/9105))
1267* use TypeScript compiler to collect `UIStrings` ([#9487](https://github.com/googlechrome/lighthouse/pull/9487))
1268* align type names with docs ([#9461](https://github.com/googlechrome/lighthouse/pull/9461))
1269* expand placeholder support ([#9114](https://github.com/googlechrome/lighthouse/pull/9114))
1270* rewrite `td-headers-attr` titles ([#9587](https://github.com/googlechrome/lighthouse/pull/9587))
1271* improve Intl polyfill and use it in Util ([#9584](https://github.com/googlechrome/lighthouse/pull/9584))
1272
1273## Report
1274
1275* make dropdown match ARIA action menu button pattern ([#9433](https://github.com/googlechrome/lighthouse/pull/9433))
1276* move drop-down logic into a separate class ([#9564](https://github.com/googlechrome/lighthouse/pull/9564))
1277* topbar: fix overflowing url ([#9497](https://github.com/googlechrome/lighthouse/pull/9497))
1278* viewer: add option for loading from the PSI API ([#9546](https://github.com/googlechrome/lighthouse/pull/9546))
1279* viewer: fix favicon typo ([#9629](https://github.com/googlechrome/lighthouse/pull/9629))
1280* don't use unnessary monospace ([#9626](https://github.com/googlechrome/lighthouse/pull/9626))
1281* remove PWA badge flicker workaround for Chrome ([#9636](https://github.com/googlechrome/lighthouse/pull/9636))
1282* add utm params to web.dev links ([#9555](https://github.com/googlechrome/lighthouse/pull/9555))
1283* update favicon to new logo ([#9591](https://github.com/googlechrome/lighthouse/pull/9591))
1284* render unstyled json (rather than throwing) when LHR contains unknown details type ([#9557](https://github.com/googlechrome/lighthouse/pull/9557))
1285
1286## Tests
1287
1288* migrate travis to xenial for modern Chrome support ([#9654](https://github.com/googlechrome/lighthouse/pull/9654))
1289* fixtures: use relative path in static server 404 page ([d0e5c58](https://github.com/googlechrome/lighthouse/commit/d0e5c58))
1290* report: add `axe-core` validation of report output ([#9421](https://github.com/googlechrome/lighthouse/pull/9421))
1291* add index page for static server ([#9541](https://github.com/googlechrome/lighthouse/pull/9541))
1292* smokehouse: use mime-types + proper encoding for response write ([#9542](https://github.com/googlechrome/lighthouse/pull/9542))
1293* retry cli tests up to 3 times in appveyor ([#9512](https://github.com/googlechrome/lighthouse/pull/9512))
1294* simplify serving of zone.js ([#9672](https://github.com/googlechrome/lighthouse/pull/9672))
1295
1296## Misc
1297
1298* add comment on diff between `document.write()` audit and intervention ([#9644](https://github.com/googlechrome/lighthouse/pull/9644))
1299* refactor `collect-strings` to use `glob` and work on windows ([#9406](https://github.com/googlechrome/lighthouse/pull/9406))
1300* trim missed `yarn.lock` cruft & deduplicate dependencies ([#9603](https://github.com/googlechrome/lighthouse/pull/9603), [#9600](https://github.com/googlechrome/lighthouse/pull/9600))
1301* replace deprecated `uglify-es` with terser ([#9594](https://github.com/googlechrome/lighthouse/pull/9594))
1302* share markdown parsing in collect-strings and the report ([#9514](https://github.com/googlechrome/lighthouse/pull/9514))
1303* add note about global.URL in node 10 ([#9449](https://github.com/googlechrome/lighthouse/pull/9449))
1304* build: include locale files in devtools roll ([#9639](https://github.com/googlechrome/lighthouse/pull/9639))
1305
1306 <a name="5.2.0"></a>
1307# 5.2.0 (2019-07-24)
1308
1309Expected DevTools release in Chrome 77 ([September 2019](https://chromestatus.com/features/schedule))
1310
1311## New contributors!
1312Thanks to @AngeloGulina, @jamesgeorge007, @johnemau, @kaushikchaubal, @mitchellsimoens, @NickolasBenakis, @noelyoo, @PatOnTheBack, @rishichawda, and @Remexllee for their first contributions!
1313
1314## New Audits
1315
1316* `Third-Party Usage`, a new performance diagnostic that shows a breakdown of third-party resources in the page and the time/bytes needed to load them ([#9067](https://github.com/googlechrome/lighthouse/pull/9067))
1317* `Total Blocking Time` an experimental new metric that serves as a companion to TTI to help prioritize unblocking the main thread. Since it is currently experimental, it is unscored and appears only in the raw LHR JSON, not in the HTML report. ([#8975](https://github.com/googlechrome/lighthouse/pull/8975), [#9409](https://github.com/googlechrome/lighthouse/pull/9409))
1318
1319## Notable changes
1320* **tracehouse**: performance trace processing has been moved to its own directory in `lib/tracehouse/` to serve as a more standalone library ([9f80524](https://github.com/googlechrome/lighthouse/commit/9f80524), [1af2edd](https://github.com/googlechrome/lighthouse/commit/1af2edd), [7ba6776](https://github.com/googlechrome/lighthouse/commit/7ba6776), [ddff3d6](https://github.com/googlechrome/lighthouse/commit/ddff3d6))
1321* certificate security errors are no longer a fatal Lighthouse error, though the Chrome error page will still return few results in the report by default. See [the docs](https://github.com/GoogleChrome/lighthouse/tree/82835eb6e4bcece5ac1ce9c575a8d2d9ecd995d1/docs#testing-on-a-site-with-an-untrusted-certificate) for testing a page in this situation. ([#8865](https://github.com/googlechrome/lighthouse/pull/8865))
1322
1323## Core
1324
1325* support saving and loading errors in artifacts ([#9397](https://github.com/googlechrome/lighthouse/pull/9397))
1326* config: assert all audit `requiredArtifacts` will be gathered ([#9284](https://github.com/googlechrome/lighthouse/pull/9284))
1327* `domstats`: support an empty html body ([#9340](https://github.com/googlechrome/lighthouse/pull/9340))
1328* `font-display`: limit false positives ([#9148](https://github.com/googlechrome/lighthouse/pull/9148))
1329* `font-size`: calculate accurate line/column for styles ([#9356](https://github.com/googlechrome/lighthouse/pull/9356))
1330* `font-size`: comment why source 'Other' occurs ([#9363](https://github.com/googlechrome/lighthouse/pull/9363))
1331* localize invalid-URL error message ([#9334](https://github.com/googlechrome/lighthouse/pull/9334))
1332* `gather-runner`: add `PageLoadError` base artifact ([#9236](https://github.com/googlechrome/lighthouse/pull/9236))
1333* `gather-runner`: don't save trace on pass with `pageLoadError` ([#9198](https://github.com/googlechrome/lighthouse/pull/9198))
1334* `gather-runner`: treat Chrome interstitials as `pageLoadErrors` ([#9176](https://github.com/googlechrome/lighthouse/pull/9176))
1335* `gather-runner`: always reset scroll position ([#9060](https://github.com/googlechrome/lighthouse/pull/9060))
1336* `gather-runner`: convert `PAGE_HUNG` to non-fatal `runtimeError` ([#9121](https://github.com/googlechrome/lighthouse/pull/9121))
1337* `manifest-parser`: handle blob manifests ([#9088](https://github.com/googlechrome/lighthouse/pull/9088))
1338* `page-functions`: don't try to clone a ShadowRoot ([#9079](https://github.com/googlechrome/lighthouse/pull/9079))
1339* perf: speed up `tap-target`'s `isVisible()` ([#9056](https://github.com/googlechrome/lighthouse/pull/9056))
1340* tracehouse: allow missing FCP ([#9174](https://github.com/googlechrome/lighthouse/pull/9174))
1341
1342## CLI
1343* accept flags from a file ([#9109](https://github.com/googlechrome/lighthouse/pull/9109))
1344
1345## Clients
1346
1347* devtools: audits2->audits and defer reading resources ([#8985](https://github.com/googlechrome/lighthouse/pull/8985), [#9344](https://github.com/googlechrome/lighthouse/pull/9344))
1348* devtools: unset overflow in print ([#9274](https://github.com/googlechrome/lighthouse/pull/9274))
1349* lightrider: update `processForProto` method signature, `string` -> `LH.Result` ([#9016](https://github.com/googlechrome/lighthouse/pull/9016))
1350* lightrider: serialize errors in artifacts ([#9410](https://github.com/googlechrome/lighthouse/pull/9410))
1351
1352## Deps
1353
1354* update `axe-core` to 3.3.0 ([#9343](https://github.com/googlechrome/lighthouse/pull/9343))
1355* update `typescript` to 3.5.3 ([#9357](https://github.com/googlechrome/lighthouse/pull/9357))
1356* update `chrome-launcher` to 0.11.1 ([#9339](https://github.com/googlechrome/lighthouse/pull/9339))
1357* `intl`: move from devDep to dep ([#9309](https://github.com/googlechrome/lighthouse/pull/9309))
1358* update `debug` to 2.6.9 ([#9398](https://github.com/googlechrome/lighthouse/pull/9398))
1359* update to `open` from `opn` ([#9267](https://github.com/googlechrome/lighthouse/pull/9267))
1360* update outdated transitive deps ([#9347](https://github.com/googlechrome/lighthouse/pull/9347))
1361* update `brfs` to 2.0.2 ([#9312](https://github.com/googlechrome/lighthouse/pull/9312))
1362* remove `commitizen` as local dep ([#9246](https://github.com/googlechrome/lighthouse/pull/9246))
1363* update `extend` to 3.0.2 ([#9184](https://github.com/googlechrome/lighthouse/pull/9184))
1364* bump transitive dep `js-yaml` ([#9131](https://github.com/googlechrome/lighthouse/pull/9131))
1365* update `bundlesize`, add more budgets ([#9089](https://github.com/googlechrome/lighthouse/pull/9089))
1366
1367## Docs
1368
1369* add i18n overview and authoring documentation ([#9361](https://github.com/googlechrome/lighthouse/pull/9361))
1370* link to good first issues ([#9440](https://github.com/googlechrome/lighthouse/pull/9440))
1371* add instructions for testing with self-signed certificate ([#9112](https://github.com/googlechrome/lighthouse/pull/9112))
1372* update `understanding-results.md` ([#9226](https://github.com/googlechrome/lighthouse/pull/9226))
1373* change score type from 'string' to 'number' ([#9225](https://github.com/googlechrome/lighthouse/pull/9225))
1374* readme: add `Exthouse` to related projects ([#9243](https://github.com/googlechrome/lighthouse/pull/9243))
1375* readme: add `lighthouse-jest-example` to related projects ([#9172](https://github.com/googlechrome/lighthouse/pull/9172))
1376* readme: add `lighthouse-persist` to related projects([#9161](https://github.com/googlechrome/lighthouse/pull/9161))
1377* readme: add `gimbal` integration to related projects ([#9083](https://github.com/googlechrome/lighthouse/pull/9083))
1378* readme: update `lighthouse-mocha-example` related project ([#9158](https://github.com/googlechrome/lighthouse/pull/9158))
1379* readme: alphabetize related projects ([#9110](https://github.com/googlechrome/lighthouse/pull/9110))
1380* fix various typos ([#9411](https://github.com/googlechrome/lighthouse/pull/9411))
1381
1382## I18n
1383
1384* introduce script to swap in new locale to LHR ([#8755](https://github.com/googlechrome/lighthouse/pull/8755))
1385* enable local debug locale, `en-XL` ([#9192](https://github.com/googlechrome/lighthouse/pull/9192))
1386* begin localization of audits in `best-practices` ([#9092](https://github.com/googlechrome/lighthouse/pull/9092))
1387* add `es-419` ([#9171](https://github.com/googlechrome/lighthouse/pull/9171))
1388* localize column headers of budget audits ([#9127](https://github.com/googlechrome/lighthouse/pull/9127))
1389
1390## Report
1391
1392* fix audit explanation rendering ([#9439](https://github.com/googlechrome/lighthouse/pull/9439))
1393* accessibility: add heading role to report category gauge ([#9422](https://github.com/googlechrome/lighthouse/pull/9422))
1394* add link to docs on performance scoring ([#9355](https://github.com/googlechrome/lighthouse/pull/9355))
1395* use full-bleed image thumbnails ([#9238](https://github.com/googlechrome/lighthouse/pull/9238))
1396* show disabled checkbox when all/no urls are third party ([#9299](https://github.com/googlechrome/lighthouse/pull/9299))
1397* remove unnecessary attribute in svg ([#9301](https://github.com/googlechrome/lighthouse/pull/9301))
1398* make urls clickable ([#9224](https://github.com/googlechrome/lighthouse/pull/9224))
1399* use css grid for metrics ([#9273](https://github.com/googlechrome/lighthouse/pull/9273))
1400* center and style top-level runtimeError ([#9271](https://github.com/googlechrome/lighthouse/pull/9271))
1401* create naming convention for css variables ([#9149](https://github.com/googlechrome/lighthouse/pull/9149), [37f7261](https://github.com/googlechrome/lighthouse/commit/37f7261), [ece89ec](https://github.com/googlechrome/lighthouse/commit/ece89ec))
1402* add aria-labels to tools button and metric toggle ([#9201](https://github.com/googlechrome/lighthouse/pull/9201))
1403* update permalink calculations for correct hash nav scroll position ([#9188](https://github.com/googlechrome/lighthouse/pull/9188))
1404* devtools: enable report UI features ([#9157](https://github.com/googlechrome/lighthouse/pull/9157))
1405* position sticky-header highlighter with css grid ([#9186](https://github.com/googlechrome/lighthouse/pull/9186))
1406* ensure SVG elements in `<defs>` have unique ids ([#9151](https://github.com/googlechrome/lighthouse/pull/9151))
1407* only print light theme ([#9173](https://github.com/googlechrome/lighthouse/pull/9173))
1408* make 'tools' menu focus-able ([#9169](https://github.com/googlechrome/lighthouse/pull/9169))
1409* rename 'exports' to 'tools' ([#9135](https://github.com/googlechrome/lighthouse/pull/9135))
1410* remove unused css vars ([#9144](https://github.com/googlechrome/lighthouse/pull/9144))
1411
1412## Tests
1413
1414* relax contrast font size expectation ([#9441](https://github.com/googlechrome/lighthouse/pull/9441))
1415* `font-size`: assert on source ([#9400](https://github.com/googlechrome/lighthouse/pull/9400), [#9413](https://github.com/googlechrome/lighthouse/pull/9413))
1416* assert `vulnerable-library` ranges have upper bounds ([#9308](https://github.com/googlechrome/lighthouse/pull/9308))
1417* i18n: update canonical locale test for node 12.6 ([#9396](https://github.com/googlechrome/lighthouse/pull/9396))
1418* i18n: throw when no ICU replacement value is given ([#9384](https://github.com/googlechrome/lighthouse/pull/9384))
1419* run CI with a frozen `yarn.lock` ([#9362](https://github.com/googlechrome/lighthouse/pull/9362))
1420* smokehouse: assert on expected array length ([#9292](https://github.com/googlechrome/lighthouse/pull/9292))
1421* smokehouse: always assert `lhr.runtimeError` ([#9130](https://github.com/googlechrome/lighthouse/pull/9130))
1422* `tags-blocking-first-paint`: make alternate stylesheets not blocking ([#9248](https://github.com/googlechrome/lighthouse/pull/9248))
1423* improve drag-and-drop test coverage ([#9314](https://github.com/googlechrome/lighthouse/pull/9314))
1424* clean up crufty `gather-runner` tests ([#9227](https://github.com/googlechrome/lighthouse/pull/9227))
1425
1426## Misc
1427
1428* fix `yarn.lock` and translations master drift ([#9404](https://github.com/googlechrome/lighthouse/pull/9404))
1429* build: adjust deployment filenames ([#9338](https://github.com/googlechrome/lighthouse/pull/9338), [#9434](https://github.com/googlechrome/lighthouse/pull/9434))
1430* build: create error-y LHR for the deploy ([#9283](https://github.com/googlechrome/lighthouse/pull/9283))
1431* `network-server-latency`: fix serverResponseTime typo ([#9388](https://github.com/googlechrome/lighthouse/pull/9388))
1432* localize logged `GatherRunner` error ([#9291](https://github.com/googlechrome/lighthouse/pull/9291))
1433* remove duplicate colon from regex ([#9295](https://github.com/googlechrome/lighthouse/pull/9295))
1434* runner: add assertion for `devtoolsLog` as `requiredArtifact` ([#9290](https://github.com/googlechrome/lighthouse/pull/9290))
1435* add `yarn static-server` script ([#9293](https://github.com/googlechrome/lighthouse/pull/9293))
1436* fix typo in `performance-budget` smoke test ([#9244](https://github.com/googlechrome/lighthouse/pull/9244))
1437* add `.idea` to `.gitignore` for WebStorm developers ([#9275](https://github.com/googlechrome/lighthouse/pull/9275))
1438* build: generate report variants in deployment ([#9280](https://github.com/googlechrome/lighthouse/pull/9280))
1439* suggest uploading issue repro ([#9217](https://github.com/googlechrome/lighthouse/pull/9217))
1440* use `CHROME_PATH` variable in CI and scripts ([#9202](https://github.com/googlechrome/lighthouse/pull/9202))
1441* update broken tracing-processor require ([#9123](https://github.com/googlechrome/lighthouse/pull/9123))
1442* address release script feedback ([#9111](https://github.com/googlechrome/lighthouse/pull/9111))
1443* release script should commit with format vX.Y.Z ([#9090](https://github.com/googlechrome/lighthouse/pull/9090))
1444
1445[Full 5.2.0 Changelog](https://github.com/googlechrome/lighthouse/compare/v5.1.0...v5.2.0)
1446
1447<a name="5.1.0"></a>
1448# 5.1.0 (2019-05-30)
1449[Full Changelog](https://github.com/googlechrome/lighthouse/compare/v5.0.0...v5.1.0)
1450
1451## New contributors!
1452
1453Thanks to our new contributors 👽🐷🐰🐯🐻!
1454@thebengeu
1455@boyney123
1456
1457## Core
1458
1459* gather-runner: treat NO_FCP as a pageLoadError ([#8340](https://github.com/googlechrome/lighthouse/pull/8340))
1460* logging: change log messages for gathering and trace retrieval ([#9029](https://github.com/googlechrome/lighthouse/pull/9029))
1461* tap-targets: don't exclude visible position absolute elements from audit ([#7778](https://github.com/googlechrome/lighthouse/pull/7778))
1462* budget: throw error on duplicate budget types ([#8915](https://github.com/googlechrome/lighthouse/pull/8915))
1463* config: split out config helpers ([#9003](https://github.com/googlechrome/lighthouse/pull/9003))
1464* gather-runner: always reset scroll position (reverted) ([#8625](https://github.com/googlechrome/lighthouse/pull/8625))
1465* image-elements: drop spritesheet logic ([#8940](https://github.com/googlechrome/lighthouse/pull/8940))
1466* refactor gather-runner control flow ([#8964](https://github.com/googlechrome/lighthouse/pull/8964))
1467* perf: speed up getNodePath ([#9055](https://github.com/googlechrome/lighthouse/pull/9055))
1468* performance-budget: add MP-FID as budget metric ([#8905](https://github.com/googlechrome/lighthouse/pull/8905))
1469* runner: fix missing timing properties in the browser ([#9072](https://github.com/googlechrome/lighthouse/pull/9072))
1470
1471## Report
1472
1473* two rows for filmstrip on mobile ([#8563](https://github.com/googlechrome/lighthouse/pull/8563))
1474* move gauge styles to main stylesheet ([#8893](https://github.com/googlechrome/lighthouse/pull/8893))
1475* show metric descriptions by default when errors exist ([#9054](https://github.com/googlechrome/lighthouse/pull/9054))
1476* show fireworks only if all core categories score 100 ([#9073](https://github.com/googlechrome/lighthouse/pull/9073))
1477* make gauge font size and positioning dynamic ([#9057](https://github.com/googlechrome/lighthouse/pull/9057))
1478* hide 3rd party filter checkbox if all rows are 3rd party ([#8966](https://github.com/googlechrome/lighthouse/pull/8966))
1479* fix word breaking of display text, move metric disclaimer ([#9030](https://github.com/googlechrome/lighthouse/pull/9030))
1480* show nodeLabel for DOM nodes in addition to snippet ([#8961](https://github.com/googlechrome/lighthouse/pull/8961))
1481
1482## Clients
1483
1484* devtools: move topbar out of scrollable container ([#9077](https://github.com/googlechrome/lighthouse/pull/9077))
1485* devtools: enable sticky header, top bar, and report ui features ([#9023](https://github.com/googlechrome/lighthouse/pull/9023))
1486* devtools: ignore dark mode media query ([#9082](https://github.com/googlechrome/lighthouse/pull/9082))
1487* devtools: update version in tests on lh roll ([#8819](https://github.com/googlechrome/lighthouse/pull/8819))
1488* lr: insert assets in lhr for logging purposes ([#9002](https://github.com/googlechrome/lighthouse/pull/9002))
1489
1490## CLI
1491
1492* flags: accept comma-separated array values ([#8933](https://github.com/googlechrome/lighthouse/pull/8933))
1493
1494## Docs
1495
1496* plugins: add link to field-performance plugin ([#9051](https://github.com/googlechrome/lighthouse/pull/9051))
1497* plugins: rename Google AdSpeed Insights to Publisher Ads Audit ([#8906](https://github.com/googlechrome/lighthouse/pull/8906))
1498* add lighthouse-plugin-field-performance to plugins ([#9049](https://github.com/googlechrome/lighthouse/pull/9049))
1499* add performance-budgets to related projects ([#8971](https://github.com/googlechrome/lighthouse/pull/8971))
1500
1501## I18n
1502
1503* minor fr and ta translation updates ([#8999](https://github.com/googlechrome/lighthouse/pull/8999))
1504
1505## Misc
1506
1507* assets: remove outdated extension screenshots ([#9015](https://github.com/googlechrome/lighthouse/pull/9015))
1508* dot-js require() everywhere ([#9006](https://github.com/googlechrome/lighthouse/pull/9006))
1509* remove unneeded reportCategories from LH.ReportResult ([#9001](https://github.com/googlechrome/lighthouse/pull/9001))
1510* update minify-trace scripts; extract to lib/ ([#8968](https://github.com/googlechrome/lighthouse/pull/8968))
1511* fix master: tmp revert of scroll change in #8625 ([#9059](https://github.com/googlechrome/lighthouse/pull/9059))
1512
1513## Tests
1514
1515* lint: require file extension in require() ([#9017](https://github.com/googlechrome/lighthouse/pull/9017))
1516* update a11y sample artifacts ([#9010](https://github.com/googlechrome/lighthouse/pull/9010))
1517* remove compile-devtools on travis ([#8988](https://github.com/googlechrome/lighthouse/pull/8988))
1518* smoke: re-enable dialog prompt ([#8894](https://github.com/googlechrome/lighthouse/pull/8894))
1519
1520 <a name="5.0.0"></a>
1521# 5.0.0 (2019-05-07)
1522[Full Changelog](https://github.com/googlechrome/lighthouse/compare/v4.3.0...v5.0.0)
1523
1524## Major new features
1525
1526* [Stack packs](https://github.com/GoogleChrome/lighthouse-stack-packs) are a new way to present stack-specific advice wihin 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](https://github.com/googlechrome/lighthouse/pull/7243), [#8169](https://github.com/googlechrome/lighthouse/pull/8169), [#8633](https://github.com/googlechrome/lighthouse/pull/8633), [#8536](https://github.com/googlechrome/lighthouse/pull/8536), [#8778](https://github.com/googlechrome/lighthouse/pull/8778))
1527* [Performance budgets](https://developers.google.com/web/tools/lighthouse/audits/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](https://github.com/googlechrome/lighthouse/pull/8539), [#8522](https://github.com/googlechrome/lighthouse/pull/8522), [#8727](https://github.com/googlechrome/lighthouse/pull/8727), [#8709](https://github.com/googlechrome/lighthouse/pull/8709), [#8427](https://github.com/googlechrome/lighthouse/pull/8427), [#8708](https://github.com/googlechrome/lighthouse/pull/8708))
1528* The HTML report has been redesigned!
1529
1530## New Audits
1531
1532* `apple-touch-icon` PWA audit ([#8857](https://github.com/googlechrome/lighthouse/pull/8857))
1533* `max-potential-fid` (new in HTML report) ([#8729](https://github.com/googlechrome/lighthouse/pull/8729), [#8817](https://github.com/googlechrome/lighthouse/pull/8817))
1534* `performance-budget` ([#8539](https://github.com/googlechrome/lighthouse/pull/8539))
1535* `resource-summary` ([#8522](https://github.com/googlechrome/lighthouse/pull/8522))
1536
1537## Breaking changes
1538* Node 10 (LTS) or later is now required. ([#8117](https://github.com/googlechrome/lighthouse/pull/8117))
1539* `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](https://github.com/googlechrome/lighthouse/pull/8343), [#8385](https://github.com/googlechrome/lighthouse/pull/8385), [#8421](https://github.com/googlechrome/lighthouse/pull/8421))
1540* The accessibility category scoring has been reweighted based on severity. ([#8823](https://github.com/googlechrome/lighthouse/pull/8823))
1541* FCP accuracy has improved (in 'simulation' throttling) and may noticeably affect scores. ([#7513](https://github.com/googlechrome/lighthouse/pull/7513))
1542* The deprecated `--disable-device-emulation` flag has been removed. Use `--emulated-form-factor`. ([#8289](https://github.com/googlechrome/lighthouse/pull/8289), [#8334](https://github.com/googlechrome/lighthouse/pull/8334))
1543* The `dom-size` now ignores elements in `<head>` and limits scoring to only DOM nodes in the body. ([#7241](https://github.com/googlechrome/lighthouse/pull/7241))
1544* The `diagnostics` audit details have had their `type` value changed to `debugdata` ([#8298](https://github.com/googlechrome/lighthouse/pull/8298))
1545* The format of the `screenshot-thumbnails` screenshots has changed. They are now a full image data URL. ([#8299](https://github.com/googlechrome/lighthouse/pull/8299))
1546
1547## New contributors!
1548
1549Thanks to @arnabsen, @housseindjirdeh, @MarkelFe, @muuvmuuv, and @Meggin for their first contributions!
1550
1551
1552## Core
1553
1554* a11y: disable unused axe rules ([#8373](https://github.com/googlechrome/lighthouse/pull/8373))
1555* artifacts: create a PublicGathererArtifacts type ([#8382](https://github.com/googlechrome/lighthouse/pull/8382))
1556* runner: only pass requiredArtifacts to audits ([#8760](https://github.com/googlechrome/lighthouse/pull/8760))
1557* crc: redirects leading to iframe shouldn't be marked as critical ([#6704](https://github.com/googlechrome/lighthouse/pull/6704))
1558* driver: enable async stacks ([#5504](https://github.com/googlechrome/lighthouse/pull/5504))
1559* `font-display`: do not use invalid sourceURLs ([#8535](https://github.com/googlechrome/lighthouse/pull/8535))
1560* jsonld: structured data validation updates ([#8137](https://github.com/googlechrome/lighthouse/pull/8137))
1561* rect-helpers: make getBoundingRect take an array of rects ([#8789](https://github.com/googlechrome/lighthouse/pull/8789))
1562* seo: support spanish in `link-text` audit ([#7547](https://github.com/googlechrome/lighthouse/pull/7547))
1563* filter blob urls from more audits ([#8724](https://github.com/googlechrome/lighthouse/pull/8724))
1564* reword insecure error message ([#8530](https://github.com/googlechrome/lighthouse/pull/8530))
1565* seo: add `image-alt` to SEO category ([#8407](https://github.com/googlechrome/lighthouse/pull/8407))
1566* add devtoolsNodePath property to ScriptElements artifact ([#8133](https://github.com/googlechrome/lighthouse/pull/8133))
1567* always run axe gatherer last ([#8216](https://github.com/googlechrome/lighthouse/pull/8216))
1568
1569## Report
1570
1571* redesign: three dots for export button ([#8629](https://github.com/googlechrome/lighthouse/pull/8629))
1572* redesign: design review feedback ([#8785](https://github.com/googlechrome/lighthouse/pull/8785))
1573* redesign: whitespace, font weights ([#8820](https://github.com/googlechrome/lighthouse/pull/8820), [#8891](https://github.com/googlechrome/lighthouse/pull/8891), [#8592](https://github.com/googlechrome/lighthouse/pull/8592), [#8591](https://github.com/googlechrome/lighthouse/pull/8591), [#8531](https://github.com/googlechrome/lighthouse/pull/8531), [#8528](https://github.com/googlechrome/lighthouse/pull/8528))
1574* make v5 renderer compatible with v3 and v4 LHRs ([#8822](https://github.com/googlechrome/lighthouse/pull/8822))
1575* redesign: fireworks ([#8660](https://github.com/googlechrome/lighthouse/pull/8660))
1576* redesign: add toggle control to show metric descriptions ([#8661](https://github.com/googlechrome/lighthouse/pull/8661), [#8844](https://github.com/googlechrome/lighthouse/pull/8844))
1577* add table filter for third-party urls ([#6351](https://github.com/googlechrome/lighthouse/pull/6351))
1578* redesign: remove units from table column headings ([#8658](https://github.com/googlechrome/lighthouse/pull/8658)))
1579* redesign: hide sparkline in mobile ([#8562](https://github.com/googlechrome/lighthouse/pull/8562))
1580* redesign: add dark theme ([#8425](https://github.com/googlechrome/lighthouse/pull/8425), [#8843](https://github.com/googlechrome/lighthouse/pull/8843), [#8845](https://github.com/googlechrome/lighthouse/pull/8845), [#8842](https://github.com/googlechrome/lighthouse/pull/8842))
1581* redesign: add sticky scores header ([#8524](https://github.com/googlechrome/lighthouse/pull/8524), [#8883](https://github.com/googlechrome/lighthouse/pull/8883))
1582* redesign: runtime settings footer ([#8229](https://github.com/googlechrome/lighthouse/pull/8229))
1583* add missing </div> ([#8240](https://github.com/googlechrome/lighthouse/pull/8240))
1584* redesign: new gauges, score scale, category headers, variables ([#8121](https://github.com/googlechrome/lighthouse/pull/8121), [#8300](https://github.com/googlechrome/lighthouse/pull/8300), [#8329](https://github.com/googlechrome/lighthouse/pull/8329), [#8307](https://github.com/googlechrome/lighthouse/pull/8307), [#8222](https://github.com/googlechrome/lighthouse/pull/8222), [#8529](https://github.com/googlechrome/lighthouse/pull/8529), [#8532](https://github.com/googlechrome/lighthouse/pull/8532), [#8590](https://github.com/googlechrome/lighthouse/pull/8590), [#8653](https://github.com/googlechrome/lighthouse/pull/8653), [#8720](https://github.com/googlechrome/lighthouse/pull/8720), [#8722](https://github.com/googlechrome/lighthouse/pull/8722), [#8763](https://github.com/googlechrome/lighthouse/pull/8763), [#8872](https://github.com/googlechrome/lighthouse/pull/8872))
1585* extract init() function from report-template ([#8228](https://github.com/googlechrome/lighthouse/pull/8228))
1586
1587## Clients
1588
1589* devtools: remove ascii-encoded asset requirement ([#8456](https://github.com/googlechrome/lighthouse/pull/8456), [#8637](https://github.com/googlechrome/lighthouse/pull/8637))
1590* lr: increase Page.getAppManifest timeout to 10s ([#8350](https://github.com/googlechrome/lighthouse/pull/8350))
1591* lr: apply, revert Lightrider timings to NetworkRequests ([#8109](https://github.com/googlechrome/lighthouse/pull/8109), [#8752](https://github.com/googlechrome/lighthouse/pull/8752))
1592* psi: pass score scale element to psi ([#8827](https://github.com/googlechrome/lighthouse/pull/8827))
1593* lr: build report-generator-bundle ([#8197](https://github.com/googlechrome/lighthouse/pull/8197))
1594
1595## Docs
1596
1597* update throttling ([#8854](https://github.com/googlechrome/lighthouse/pull/8854))
1598* add plugin guide ([#8728](https://github.com/googlechrome/lighthouse/pull/8728))
1599* readme: add mention of free tier of Foo integration ([#8160](https://github.com/googlechrome/lighthouse/pull/8160))
1600* readme: remove link to archived lighthouse-security project ([#8141](https://github.com/googlechrome/lighthouse/pull/8141))
1601
1602## CLI
1603
1604* always handle chrome connection errors ([#8583](https://github.com/googlechrome/lighthouse/pull/8583))
1605* document that CSV is output to file ([#8520](https://github.com/googlechrome/lighthouse/pull/8520))
1606
1607## Deps
1608
1609* chrome-launcher@0.10.7 ([#8781](https://github.com/googlechrome/lighthouse/pull/8781))
1610* axe-core@3.2.2 ([#8370](https://github.com/googlechrome/lighthouse/pull/8370))
1611
1612## Tests
1613
1614* lightwallet: add perf-budget smoke test ([#8853](https://github.com/googlechrome/lighthouse/pull/8853))
1615* lightwallet: add budget to sample artifacts config ([#8783](https://github.com/googlechrome/lighthouse/pull/8783), [#8870](https://github.com/googlechrome/lighthouse/pull/8870))
1616* add tap targets to dobetterweb sample page ([#8803](https://github.com/googlechrome/lighthouse/pull/8803))
1617* make update:sample-artifacts work for a single artifact type ([#8802](https://github.com/googlechrome/lighthouse/pull/8802))
1618* smokehouse: capture microtask regression ([#8379](https://github.com/googlechrome/lighthouse/pull/8379))
1619* smokehouse: support artifacts assertions in smoke tests ([#8044](https://github.com/googlechrome/lighthouse/pull/8044))
1620* smokehouse: fix tests from sharing artifacts ([#8897](https://github.com/googlechrome/lighthouse/pull/8897))
1621* smokehouse: change metric assertions from score to numericValue ([#8805](https://github.com/googlechrome/lighthouse/pull/8805))
1622* fix sample_v2 generation, proto errors ([#8605](https://github.com/googlechrome/lighthouse/pull/8605))
1623
1624## I18n
1625
1626* import tamil translated strings ([#8886](https://github.com/googlechrome/lighthouse/pull/8886))
1627* SEO group titles and descriptions ([#8719](https://github.com/googlechrome/lighthouse/pull/8719))
1628* stack pack translations ([#8154](https://github.com/googlechrome/lighthouse/pull/8154), [#8415](https://github.com/googlechrome/lighthouse/pull/8415))
1629* update seo group titles and descriptions ([#8378](https://github.com/googlechrome/lighthouse/pull/8378))
1630
1631## Misc
1632
1633* proto: require protobuf 3.7.1, add stricter audit details test ([#8863](https://github.com/googlechrome/lighthouse/pull/8863), [#8867](https://github.com/googlechrome/lighthouse/pull/8867))
1634* proto: remove trailing whitespace; add contributing help ([#8818](https://github.com/googlechrome/lighthouse/pull/8818))
1635* fix roundtrip sample_v2.json ([#8815](https://github.com/googlechrome/lighthouse/pull/8815))
1636* rename release scripts properly ([#8751](https://github.com/googlechrome/lighthouse/pull/8751))
1637* simplify LH.Config settings types ([#8630](https://github.com/googlechrome/lighthouse/pull/8630))
1638* add correct listitem.js @fileoverview ([#8586](https://github.com/googlechrome/lighthouse/pull/8586))
1639* update sample_v2 artifacts ([#8243](https://github.com/googlechrome/lighthouse/pull/8243))
1640* ci: build report and deploy to now.sh on every commit ([#8194](https://github.com/googlechrome/lighthouse/pull/8194))
1641* fix bad auto-merge ([#8201](https://github.com/googlechrome/lighthouse/pull/8201))
1642* update collected i18n string ([#8158](https://github.com/googlechrome/lighthouse/pull/8158))
1643* `--help`: remove screenshots mention from `--save-assets` ([#8263](https://github.com/googlechrome/lighthouse/pull/8263))
1644* lightwallet: update budget link ([#8871](https://github.com/googlechrome/lighthouse/pull/8871))
1645* fix common typos ([#8726](https://github.com/googlechrome/lighthouse/pull/8726))
1646
1647 <a name="4.3.1"></a>
1648# 4.3.1 (2019-04-30)
1649[Full Changelog](https://github.com/googlechrome/lighthouse/compare/v4.3.0...v4.3.1)
1650
1651## Core
1652
1653* support traces missing TracingStartedInBrowser ([#7122](https://github.com/googlechrome/lighthouse/pull/7122))
1654* driver: only fail security state if scheme is not cryptographic ([#8338](https://github.com/googlechrome/lighthouse/pull/8338))
1655
1656## Clients
1657
1658* extension: remove github link in favor of copy to clipboard ([#8294](https://github.com/googlechrome/lighthouse/pull/8294))
1659
1660## Deps
1661
1662* snyk: update snyk snapshot ([#8354](https://github.com/googlechrome/lighthouse/pull/8354))
1663
1664## Misc
1665
1666* add releasing scripts ([#8387](https://github.com/googlechrome/lighthouse/pull/8387))
1667
1668 <a name="4.3.0"></a>
1669# 4.3.0 (2019-04-08)
1670[Full Changelog](https://github.com/googlechrome/lighthouse/compare/4.2.0...4.3.0)
1671
1672## New contributors!
1673
1674Thanks to @rdlabo and @yashrajbharti for their first contributions!
1675
1676## Report
1677
1678* include utm params in links to docs ([#7441](https://github.com/googlechrome/lighthouse/pull/7441))
1679* fix PWA badge from disappearing on scroll ([#7512](https://github.com/googlechrome/lighthouse/pull/7512))
1680
1681## Core
1682
1683* artifacts: rename Scripts to ScriptElements artifact ([#7920](https://github.com/googlechrome/lighthouse/pull/7920))
1684* canonical: move canonical audit to LinkElements ([#7080](https://github.com/googlechrome/lighthouse/pull/7080))
1685* font-display: handle carriage returns ([#7712](https://github.com/googlechrome/lighthouse/pull/7712))
1686* font-display: ignore data URLs ([#7684](https://github.com/googlechrome/lighthouse/pull/7684))
1687* image-aspect-ratio: ignore css background images ([#7516](https://github.com/googlechrome/lighthouse/pull/7516))
1688* jsonld: add structured data validation ([#6750](https://github.com/googlechrome/lighthouse/pull/6750))
1689* lhr: truncate measure timings to hundredths ([#7748](https://github.com/googlechrome/lighthouse/pull/7748))
1690* logging: don't log when closing already closed page ([#7576](https://github.com/googlechrome/lighthouse/pull/7576))
1691* main-thread-tasks: improve event-order error messages ([#7745](https://github.com/googlechrome/lighthouse/pull/7745))
1692* main-thread-tasks: handle last task not finishing ([#7728](https://github.com/googlechrome/lighthouse/pull/7728))
1693* main-thread-tasks: use toplevel tasks in main thread audit ([#7711](https://github.com/googlechrome/lighthouse/pull/7711))
1694* oopif: attach to all descendants ([#7608](https://github.com/googlechrome/lighthouse/pull/7608))
1695* oopif: skip OOPIF network records in some gatherers ([#7640](https://github.com/googlechrome/lighthouse/pull/7640))
1696* optimized-images: cap execution to 5 seconds ([#7237](https://github.com/googlechrome/lighthouse/pull/7237))
1697* settings: add lighthouse channel ([#7312](https://github.com/googlechrome/lighthouse/pull/7312))
1698* remove hreflang gatherer ([#7477](https://github.com/googlechrome/lighthouse/pull/7477))
1699* tap-targets: exclude sticky elements from tap targets audit ([#7603](https://github.com/googlechrome/lighthouse/pull/7603))
1700* vuln-libs: match against all semver ranges provided by snyk ([#7402](https://github.com/googlechrome/lighthouse/pull/7402))
1701* uses-http2: ignore requests from service-worker ([#7197](https://github.com/googlechrome/lighthouse/pull/7197))
1702
1703## Docs
1704
1705* add plugin recipe ([#6965](https://github.com/googlechrome/lighthouse/pull/6965))
1706* readme: Foo integration ([#8035](https://github.com/googlechrome/lighthouse/pull/8035))
1707* url-shim: add comment about public suffix lst ([#7671](https://github.com/googlechrome/lighthouse/pull/7671))
1708
1709## Clients
1710
1711* devtools: refactor build script ([#7421](https://github.com/googlechrome/lighthouse/pull/7421), [#7567](https://github.com/googlechrome/lighthouse/pull/7567))
1712* lr: always use transferSize from X-TotalFetchedSize header ([#7478](https://github.com/googlechrome/lighthouse/pull/7478))
1713* lr: gather network timing numbers from headers ([#7888](https://github.com/googlechrome/lighthouse/pull/7888))
1714* lr: add custom config support ([#7613](https://github.com/googlechrome/lighthouse/pull/7613))
1715
1716## Tests
1717
1718* better fatal trace logic error coverage ([#7959](https://github.com/googlechrome/lighthouse/pull/7959))
1719* fix test coverage generation ([#7475](https://github.com/googlechrome/lighthouse/pull/7475))
1720* finish removing mocha ([#7429](https://github.com/googlechrome/lighthouse/pull/7429))
1721* upgrade jest to fix current node 11 build ([#7413](https://github.com/googlechrome/lighthouse/pull/7413))
1722* smoke: remove trivial uses of rawValue from expectations ([#7780](https://github.com/googlechrome/lighthouse/pull/7780))
1723* smoke: set Content-Type for files served by static-server.js ([#7612](https://github.com/googlechrome/lighthouse/pull/7612), [#8015](https://github.com/googlechrome/lighthouse/pull/8015), [#8078](https://github.com/googlechrome/lighthouse/pull/8078))
1724
1725## Misc
1726
1727* chore: remove old dep postinstall-prepare ([#7647](https://github.com/googlechrome/lighthouse/pull/7647))
1728* remove unused typedef ([#8075](https://github.com/googlechrome/lighthouse/pull/8075))
1729* specify types for some dependency-graph options objects ([#7962](https://github.com/googlechrome/lighthouse/pull/7962))
1730* simplifications in simulator/connection-pool ([#7894](https://github.com/googlechrome/lighthouse/pull/7894))
1731* drive-by code cleanup in BaseNode ([#7723](https://github.com/googlechrome/lighthouse/pull/7723))
1732* remove lhr-lite.d.ts ([#7991](https://github.com/googlechrome/lighthouse/pull/7991))
1733* remove obsolete Util.formatDisplayValue ([#7628](https://github.com/googlechrome/lighthouse/pull/7628))
1734* various spelling fixes ([#7370](https://github.com/googlechrome/lighthouse/pull/7370), [#7492](https://github.com/googlechrome/lighthouse/pull/7492), [#7427](https://github.com/googlechrome/lighthouse/pull/7427))
1735* fix unit-viewer command for windows ([#7624](https://github.com/googlechrome/lighthouse/pull/7624))
1736* remove obsolete unused files ([#7476](https://github.com/googlechrome/lighthouse/pull/7476))
1737* cli: add --plugins flag to load from the command line ([#7407](https://github.com/googlechrome/lighthouse/pull/7407))
1738* gather: update comment re: ClientRect copying ([#7785](https://github.com/googlechrome/lighthouse/pull/7785))
1739
1740## Deps
1741
1742* update nyc to latest ([#7431](https://github.com/googlechrome/lighthouse/pull/7431))
1743* snyk: update snyk snapshot ([#7392](https://github.com/googlechrome/lighthouse/pull/7392), [#7589](https://github.com/googlechrome/lighthouse/pull/7589), [#7943](https://github.com/googlechrome/lighthouse/pull/7943))
1744
1745## I18n
1746
1747* Hindi for seo and a11y ([#7786](https://github.com/googlechrome/lighthouse/pull/7786), [#8070](https://github.com/googlechrome/lighthouse/pull/8070))
1748* add new translations for SEO; updates for a11y and perf ([#7720](https://github.com/googlechrome/lighthouse/pull/7720))
1749
1750 <a name="4.2.0"></a>
1751# 4.2.0 (2019-03-06)
1752[Full Changelog](https://github.com/googlechrome/lighthouse/compare/v4.1.0...v4.2.0)
1753
1754## New contributors!
1755
1756@pra85, @tgfjt, @gidztech and @jburger424. Thank ya!
1757
1758## New Audits
1759
1760* tap-targets: verify tap targets are well sized and distinct ([#5846](https://github.com/googlechrome/lighthouse/pull/5846))
1761
1762## CLI
1763
1764* write report in runLighthouse before quitting Chrome ([#7339](https://github.com/googlechrome/lighthouse/pull/7339))
1765
1766## Core
1767
1768* fid: add Max Potential FID to JSON ([#5842](https://github.com/googlechrome/lighthouse/pull/5842))
1769* artifacts: unify AnchorElements into single gatherer ([#7101](https://github.com/googlechrome/lighthouse/pull/7101))
1770* artifacts: include inline scripts in Scripts artifact ([#7065](https://github.com/googlechrome/lighthouse/pull/7065))
1771* artifacts: create ViewportMeta computed artifact ([#7264](https://github.com/googlechrome/lighthouse/pull/7264))
1772* artifacts: add TestedAsMobileDevice base artifact ([#7280](https://github.com/googlechrome/lighthouse/pull/7280))
1773* bootup-time: better attribution ([#7059](https://github.com/googlechrome/lighthouse/pull/7059))
1774* byte-efficiency: use more optimistic GZIP ratios ([#7210](https://github.com/googlechrome/lighthouse/pull/7210))
1775* cache-headers: fix typo in must-revalidate ([#7189](https://github.com/googlechrome/lighthouse/pull/7189))
1776* details-renderer: add snippet details renderer ([#6999](https://github.com/googlechrome/lighthouse/pull/6999))
1777* diagnostics: add diagnostic audits ([#7052](https://github.com/googlechrome/lighthouse/pull/7052))
1778* driver: add waitForFCP timeout ([#7356](https://github.com/googlechrome/lighthouse/pull/7356))
1779* driver: collect network requests from out-of-process iframes ([#6922](https://github.com/googlechrome/lighthouse/pull/6922))
1780* driver: add ' Chrome-Lighthouse' to useragent ([#7297](https://github.com/googlechrome/lighthouse/pull/7297))
1781* emulation: bump chrome useragent to m74 ([#7211](https://github.com/googlechrome/lighthouse/pull/7211))
1782* fcp-3g: remove unused i18n for LR compatibility ([#7103](https://github.com/googlechrome/lighthouse/pull/7103))
1783* font-display: more accurately follow CSS spec ([#7191](https://github.com/googlechrome/lighthouse/pull/7191))
1784* image-elements: cap natural-size fetch time ([#7274](https://github.com/googlechrome/lighthouse/pull/7274))
1785* lantern: add configuration for precomputed network analysis ([#7239](https://github.com/googlechrome/lighthouse/pull/7239))
1786* lhr: include resourceSize in network-requests audit ([#7056](https://github.com/googlechrome/lighthouse/pull/7056))
1787* manifest: remove Manifest artifact in favor of new WebAppManifest ([#7078](https://github.com/googlechrome/lighthouse/pull/7078))
1788* metrics: do not fail if TTI fails ([#7132](https://github.com/googlechrome/lighthouse/pull/7132))
1789* network-analysis: set additional RTT to 0 not NaN ([#7156](https://github.com/googlechrome/lighthouse/pull/7156))
1790* network-recorder: redirects started by script are set as initiators ([#7352](https://github.com/googlechrome/lighthouse/pull/7352))
1791* plugins: add support for groups ([#7304](https://github.com/googlechrome/lighthouse/pull/7304))
1792* seo: remove manual mobile-friendly audit ([#7223](https://github.com/googlechrome/lighthouse/pull/7223))
1793* seo: add rel=canonical test for auditing a domain root ([#7228](https://github.com/googlechrome/lighthouse/pull/7228))
1794* tap-targets: disable font size and tap targets audit on desktop ([#7393](https://github.com/googlechrome/lighthouse/pull/7393))
1795* tap-targets: make tap targets failures more visible ([#7373](https://github.com/googlechrome/lighthouse/pull/7373))
1796* tsc: fix audit details type hierarchy ([#7177](https://github.com/googlechrome/lighthouse/pull/7177), [#7154](https://github.com/googlechrome/lighthouse/pull/7154), [#7285](https://github.com/googlechrome/lighthouse/pull/7285))
1797* unused-css: change title Defer -> Remove ([#7235](https://github.com/googlechrome/lighthouse/pull/7235))
1798* give sort fallback for broken test details in node 11 ([#7216](https://github.com/googlechrome/lighthouse/pull/7216))
1799* suppress protocol timeout for app manifest bug in LR ([#7184](https://github.com/googlechrome/lighthouse/pull/7184))
1800* optimize tap-targets audit ([#7130](https://github.com/googlechrome/lighthouse/pull/7130))
1801* remove NO_ERROR runtimeError when no error ([#7358](https://github.com/googlechrome/lighthouse/pull/7358))
1802
1803
1804## Deps
1805
1806* snyk: update snyk snapshot ([#7277](https://github.com/googlechrome/lighthouse/pull/7277), [#7233](https://github.com/googlechrome/lighthouse/pull/7233), [#7167](https://github.com/googlechrome/lighthouse/pull/7167), [#7116](https://github.com/googlechrome/lighthouse/pull/7116))
1807* updates to weed out transitive vulnerabilities ([#7319](https://github.com/googlechrome/lighthouse/pull/7319))
1808* update cssstyle to parse more named colors, CSS4 colors ([#7283](https://github.com/googlechrome/lighthouse/pull/7283))
1809
1810## Docs
1811
1812* contributing.md: fix typos ([#7170](https://github.com/googlechrome/lighthouse/pull/7170))
1813* fix throttling rate comment and tweak comcast bandwidth ([#7374](https://github.com/googlechrome/lighthouse/pull/7374))
1814* improve explanations of extending and using config files ([#7354](https://github.com/googlechrome/lighthouse/pull/7354))
1815* update throttling docs to public version ([#7332](https://github.com/googlechrome/lighthouse/pull/7332))
1816* readme: add lighthouse-keeper to integrations ([#7399](https://github.com/googlechrome/lighthouse/pull/7399))
1817* docs(related-projects) add react-lighthouse-viewer ([#7262](https://github.com/googlechrome/lighthouse/pull/7262))
1818* readme: Add Fluxguard to the list of integrations ([#7249](https://github.com/googlechrome/lighthouse/pull/7249))
1819* variability: add dedicated variance doc ([#7175](https://github.com/googlechrome/lighthouse/pull/7175))
1820
1821## I18n
1822
1823* fix max potential FID description ([#7353](https://github.com/googlechrome/lighthouse/pull/7353))
1824* ICU syntax correction ([#7320](https://github.com/googlechrome/lighthouse/pull/7320))
1825* seo strings prepped for i18n ([#6860](https://github.com/googlechrome/lighthouse/pull/6860))
1826* translate strings in the tap-targets audit ([#7111](https://github.com/googlechrome/lighthouse/pull/7111))
1827* a11y category title and description ([#7113](https://github.com/googlechrome/lighthouse/pull/7113))
1828* import translated accessibility and lh-error messages ([#7008](https://github.com/googlechrome/lighthouse/pull/7008))
1829
1830## Report
1831
1832* reorganize a11y audit groups ([#7129](https://github.com/googlechrome/lighthouse/pull/7129))
1833* clip exceptionally long URLs in the header ([#6858](https://github.com/googlechrome/lighthouse/pull/6858))
1834* details-renderer: use new audit-details types ([#7192](https://github.com/googlechrome/lighthouse/pull/7192))
1835
1836## Tests
1837
1838* refactor driver, more gotoURL tests ([#7270](https://github.com/googlechrome/lighthouse/pull/7270), [#7242](https://github.com/googlechrome/lighthouse/pull/7242), [#7212](https://github.com/googlechrome/lighthouse/pull/7212))
1839* run node 11 in CI ([#7230](https://github.com/googlechrome/lighthouse/pull/7230))
1840* replace non-volatile snapshots with inline literals ([#7217](https://github.com/googlechrome/lighthouse/pull/7217))
1841* smokehouse: refactor to enable Smokerider ([#7284](https://github.com/googlechrome/lighthouse/pull/7284))
1842* smokehouse: +/- operator ([#7343](https://github.com/googlechrome/lighthouse/pull/7343))
1843* smokehouse: gzip test to assert transfer and resource sizes ([#7286](https://github.com/googlechrome/lighthouse/pull/7286))
1844* smokehouse: fail on finalUrl/errorCode mismatches ([#7227](https://github.com/googlechrome/lighthouse/pull/7227))
1845
1846## Misc
1847
1848* tap-targets: remove lines with trailing whitespace ([#7105](https://github.com/googlechrome/lighthouse/pull/7105))
1849* clean node_modules/.cache before travis builds its cache ([#7388](https://github.com/googlechrome/lighthouse/pull/7388))
1850* convert Flags comments to jsdoc for better intellisense ([#7359](https://github.com/googlechrome/lighthouse/pull/7359))
1851* export UA strings from emulation.js ([#7318](https://github.com/googlechrome/lighthouse/pull/7318))
1852* fix typo in comment ([#7296](https://github.com/googlechrome/lighthouse/pull/7296))
1853
1854 <a name="4.1.0"></a>
1855# 4.1.0 (2019-01-28)
1856[Full Changelog](https://github.com/googlechrome/lighthouse/compare/v4.0.0...v4.1.0)
1857
1858## New contributors!
1859
1860@castilloandres you da man, man.
1861
1862## Core
1863
1864* font-size audit: count code points for text length ([#6973](https://github.com/googlechrome/lighthouse/pull/6973))
1865* cache headers audit: ignore private, must-validate, no-cache ([#6835](https://github.com/googlechrome/lighthouse/pull/6835))
1866* introduce Lighthouse plugins ([#6959](https://github.com/googlechrome/lighthouse/pull/6959))
1867* new audit: add FCP on 3G ([#7062](https://github.com/googlechrome/lighthouse/pull/7062))
1868
1869## Refactor
1870
1871* refactor meta element artifacts to single `meta-elements` artifact ([#7025](https://github.com/googlechrome/lighthouse/pull/7025))
1872* images: cleanup `ImageUsage` to match other `*Elements` artifacts ([#7030](https://github.com/googlechrome/lighthouse/pull/7030))
1873* add baseArtifacts (with new WebAppManifest) to passContext ([#6957](https://github.com/googlechrome/lighthouse/pull/6957))
1874* use async/await in evaluateAsync ([#7038](https://github.com/googlechrome/lighthouse/pull/7038))
1875
1876## Report / Viewer
1877
1878* renderer: do not attempt fireworks for devtools ([#7090](https://github.com/googlechrome/lighthouse/pull/7090))
1879* viewer: allow loading RunnerResult json ([#7031](https://github.com/googlechrome/lighthouse/pull/7031))
1880
1881## Misc
1882
1883* readme: Add DebugBear to the list of integrations ([#7036](https://github.com/googlechrome/lighthouse/pull/7036))
1884* snyk: update snyk snapshot ([#7079](https://github.com/googlechrome/lighthouse/pull/7079))
1885* viewer: fix types to reference `LH.Result` ([#7051](https://github.com/googlechrome/lighthouse/pull/7051))
1886* replace TODOs with github issue links ([#7049](https://github.com/googlechrome/lighthouse/pull/7049))
1887* fix extension package path and viewer comments ([#7032](https://github.com/googlechrome/lighthouse/pull/7032))
1888
1889 <a name="4.0.0"></a>
1890# 4.0.0 (2019-01-16)
1891
1892## New contributors!
1893
1894@mattzeunert, @dima74, @jeffbcross, @knoxmic, and @shogunsea. Thanks!
1895
1896## Major changes
1897
1898* A bevy of bug fixes and performance improvements.
1899
1900* A special reward for getting a perfect score.
1901
1902* A new layout for the PWA category, emphasizing speed, installability, and polish.
1903
1904<a href="https://user-images.githubusercontent.com/316891/51218948-6e60ef00-18e3-11e9-8a48-535b59a41301.png"><img height="300" alt="Lighthouse 4.0 PWA category" src="https://user-images.githubusercontent.com/316891/51218948-6e60ef00-18e3-11e9-8a48-535b59a41301.png"></a>
1905
1906## Breaking changes
1907
1908* New PWA category, organization, and scoring ([#6395](https://github.com/GoogleChrome/lighthouse/issues/6395))
1909 - the PWA section of the report has a set of badges instead of a numeric score gauge ([#6526](https://github.com/googlechrome/lighthouse/pull/6526), [#6670](https://github.com/googlechrome/lighthouse/pull/6670))
1910 - the `webapp-install-banner` audit is now `installable-manifest` ([#6630](https://github.com/googlechrome/lighthouse/pull/6630))
1911 - the offline check formerly in `webapp-install-banner` is the new audit `offline-start-url` ([#6397](https://github.com/googlechrome/lighthouse/pull/6397))
1912* audits' `scoreDisplayMode` `'not-applicable'` is now `'notApplicable'` ([#6783](https://github.com/googlechrome/lighthouse/pull/6783))
1913* `no-websql` audit removed due to performance cost ([#6293](https://github.com/googlechrome/lighthouse/pull/6293))
1914* `speed-index` scoring now scales based on throttling ([#7007](https://github.com/googlechrome/lighthouse/pull/7007))
1915* empty children arrays are now removed from `critical-request-chain` audit result ([#6211](https://github.com/googlechrome/lighthouse/pull/6211))
1916* the correct Nexus 5X screen height of 660 now used instead of 732 ([#6932](https://github.com/googlechrome/lighthouse/pull/6932))
1917* throttling constants under `mobile3G` renamed to the more accurate `mobileSlow4G` with no change in values ([#6163](https://github.com/googlechrome/lighthouse/pull/6163))
1918* typescript definition files are now located under `types/` ([#6617](https://github.com/googlechrome/lighthouse/pull/6617))
1919* computed artifact files are now located under `lighthouse-core/computed/` ([#6618](https://github.com/googlechrome/lighthouse/pull/6618))
1920
1921<hr>
1922
1923[Full Changelog](https://github.com/googlechrome/lighthouse/compare/v4.0.0-beta...v4.0.0) (in addition to the changes in [4.0.0-beta](https://github.com/GoogleChrome/lighthouse/releases/tag/v4.0.0-beta), [4.0.0-alpha.1](https://github.com/GoogleChrome/lighthouse/releases/tag/v4.0.0-alpha.1), and [4.0.0-alpha.0](https://github.com/GoogleChrome/lighthouse/releases/tag/4.0.0-alpha.0))
1924
1925## Core
1926
1927* config: reorder categories to match new score gauge order ([#6848](https://github.com/googlechrome/lighthouse/pull/6848))
1928* driver: handle navigation rejections within `Driver.gotoURL` ([#6739](https://github.com/googlechrome/lighthouse/pull/6739))
1929* driver: exit early when testing page with insecure certificate ([#6608](https://github.com/googlechrome/lighthouse/pull/6608))
1930* driver: `waitForFCP` when tracing ([#6944](https://github.com/googlechrome/lighthouse/pull/6944))
1931* handle invalid network timing data ([#6780](https://github.com/googlechrome/lighthouse/pull/6780))
1932* fix `usesObjectFit` property for ImageElement ([#6761](https://github.com/googlechrome/lighthouse/pull/6761))
1933* fonts: resolve URLs relative to stylesheet ([#6782](https://github.com/googlechrome/lighthouse/pull/6782))
1934* lantern: remove unnecessary sort calls ([#6900](https://github.com/googlechrome/lighthouse/pull/6900))
1935* lantern: drop node id from error message ([#6774](https://github.com/googlechrome/lighthouse/pull/6774))
1936* minification: properly handle regex character classes ([#6745](https://github.com/googlechrome/lighthouse/pull/6745))
1937* preconnect: add warning if preconnect link is not used ([#6694](https://github.com/googlechrome/lighthouse/pull/6694))
1938* preload: warn when duplicate requests issued ([#6849](https://github.com/googlechrome/lighthouse/pull/6849))
1939* scoreDisplayMode: change `'not-applicable'` to `'notApplicable'` ([#6783](https://github.com/googlechrome/lighthouse/pull/6783))
1940* service-worker: check that `start_url` is within SW's scope ([#6678](https://github.com/googlechrome/lighthouse/pull/6678))
1941* speedindex: scale scoring coefficients based on throttling ([#7007](https://github.com/googlechrome/lighthouse/pull/7007))
1942* tap-targets: helper functions for working with `ClientRects` ([#6703](https://github.com/googlechrome/lighthouse/pull/6703))
1943* url: add intent protocol to `NON_NETWORK_PROTOCOLS` ([#6711](https://github.com/googlechrome/lighthouse/pull/6711))
1944* user-timings: move into computed artifact ([#6719](https://github.com/googlechrome/lighthouse/pull/6719))
1945* change `displayValue` to be string only ([#6767](https://github.com/googlechrome/lighthouse/pull/6767))
1946* add type checking to `pwmetrics-events` ([#6980](https://github.com/googlechrome/lighthouse/pull/6980))
1947* stricter LR-desktop metric scoring ([#6969](https://github.com/googlechrome/lighthouse/pull/6969))
1948* in-page functions refactor ([#6702](https://github.com/googlechrome/lighthouse/pull/6702))
1949
1950## Deps
1951
1952* update axe-core to latest ([#7020](https://github.com/googlechrome/lighthouse/pull/7020))
1953* update details-element-polyfill to 2.2.0 ([#6928](https://github.com/googlechrome/lighthouse/pull/6928))
1954* update tsc to 3.2.2 ([#6684](https://github.com/googlechrome/lighthouse/pull/6684))
1955* snyk: update snyk snapshot ([#6888](https://github.com/googlechrome/lighthouse/pull/6888), [#6842](https://github.com/googlechrome/lighthouse/pull/6842))
1956
1957## Docs
1958
1959* readme: add speedrank to integrations list ([#6987](https://github.com/googlechrome/lighthouse/pull/6987))
1960* readme: added simple guidance on install options ([#6810](https://github.com/googlechrome/lighthouse/pull/6810))
1961* configuration.md: update link to pwmetrics ([#6816](https://github.com/googlechrome/lighthouse/pull/6816))
1962* scoring: update TTI references ([#6865](https://github.com/googlechrome/lighthouse/pull/6865))
1963* `--help`: use HTTPS link to bit.ly/chrome-flags ([#6692](https://github.com/googlechrome/lighthouse/pull/6692))
1964* ask people to test a11y issues upstream first ([#6764](https://github.com/googlechrome/lighthouse/pull/6764))
1965
1966## Extension
1967
1968* return `runnerResult` from `runLighthouseInExtension()` ([#6839](https://github.com/googlechrome/lighthouse/pull/6839))
1969
1970## I18n
1971
1972* localize `LighthouseError` messages ([#6457](https://github.com/googlechrome/lighthouse/pull/6457), [#6812](https://github.com/googlechrome/lighthouse/pull/6812))
1973
1974## Report
1975
1976* pwa: add tooltip to badge gauge ([#6689](https://github.com/googlechrome/lighthouse/pull/6689))
1977* add top-level section for passed audits that had warnings ([#6989](https://github.com/googlechrome/lighthouse/pull/6989))
1978* celebrate all 100s ([#5455](https://github.com/googlechrome/lighthouse/pull/5455))
1979* expand groups within "Passed Audits" by default ([#6930](https://github.com/googlechrome/lighthouse/pull/6930))
1980* fix margin on score gauge wrappers ([#6948](https://github.com/googlechrome/lighthouse/pull/6948), [#6972](https://github.com/googlechrome/lighthouse/pull/6972))
1981* support narrow screens ([#6857](https://github.com/googlechrome/lighthouse/pull/6857))
1982* larger margins for audit group summaries ([#6688](https://github.com/googlechrome/lighthouse/pull/6688))
1983* clean up more clump/group/expandable cruft ([#6982](https://github.com/googlechrome/lighthouse/pull/6982))
1984
1985## Tests
1986
1987* smokehouse: assert `errorCode` in expectations ([#6851](https://github.com/googlechrome/lighthouse/pull/6851))
1988* smokehouse: use node's native `URLSearchParams` ([#6929](https://github.com/googlechrome/lighthouse/pull/6929))
1989* add type checking to `cli/tests/` ([#6874](https://github.com/googlechrome/lighthouse/pull/6874))
1990* report: restore old, disabled failed grouping test ([#7006](https://github.com/googlechrome/lighthouse/pull/7006))
1991
1992## Misc
1993
1994* descriptions: more accurate metric descriptions ([#6508](https://github.com/googlechrome/lighthouse/pull/6508))
1995* emulation: use correct Nexus 5X screen size ([#6932](https://github.com/googlechrome/lighthouse/pull/6932))
1996* snyk: only keep vuln data for detectable libs ([#6919](https://github.com/googlechrome/lighthouse/pull/6919))
1997* clean up local names within Config ([#6950](https://github.com/googlechrome/lighthouse/pull/6950))
1998
1999 <a name="4.0.0-beta"></a>
2000# 4.0.0-beta (2018-11-29)
2001[Full Changelog](https://github.com/googlechrome/lighthouse/compare/v4.0.0-alpha.1...v4.0.0-beta)
2002
2003## Core
2004
2005* service-worker: check that test page is in SW scope ([#6609](https://github.com/googlechrome/lighthouse/pull/6609))
2006* throw fatally on page hang ([#6497](https://github.com/googlechrome/lighthouse/pull/6497))
2007* define new DNS failure LH Error ([#6579](https://github.com/googlechrome/lighthouse/pull/6579))
2008* assert securityIssues before getPageLoadError ([#6578](https://github.com/googlechrome/lighthouse/pull/6578))
2009* remove protocol timeout for Page.navigate ([#6413](https://github.com/googlechrome/lighthouse/pull/6413))
2010* rename webapp-install-banner audit to installable-manifest ([#6630](https://github.com/googlechrome/lighthouse/pull/6630))
2011* computed-artifacts: fix cache and add perf timing ([#6619](https://github.com/googlechrome/lighthouse/pull/6619))
2012
2013## Report
2014
2015* add PWA category badge gauge ([#6526](https://github.com/googlechrome/lighthouse/pull/6526), [#6670](https://github.com/googlechrome/lighthouse/pull/6670))
2016* give passed-opportunities group an icon ([#6594](https://github.com/googlechrome/lighthouse/pull/6594))
2017* safari: fix dropdown overlap translateZ ([#6546](https://github.com/googlechrome/lighthouse/pull/6546))
2018* use details-element-polyfill from node_modules ([#6593](https://github.com/googlechrome/lighthouse/pull/6593), [#6607](https://github.com/googlechrome/lighthouse/pull/6607))
2019
2020## CLI
2021
2022* exit and kill Chrome on unhandledRejection ([#6394](https://github.com/googlechrome/lighthouse/pull/6394))
2023
2024## Tests
2025
2026* add smoketest for slow service worker ([#6648](https://github.com/googlechrome/lighthouse/pull/6648))
2027
2028## Misc
2029
2030* tsc: infer dom.createElement type from tag name ([#6637](https://github.com/googlechrome/lighthouse/pull/6637))
2031* rename core/gather/computed/ to core/computed/ ([#6618](https://github.com/googlechrome/lighthouse/pull/6618))
2032* rename typings/ to types/ ([#6617](https://github.com/googlechrome/lighthouse/pull/6617))
2033* bump extension version ([#6569](https://github.com/googlechrome/lighthouse/pull/6569))
2034
2035 <a name="4.0.0-alpha.1"></a>
2036# 4.0.0-alpha.1 (2018-11-15)
2037[Full Changelog](https://github.com/googlechrome/lighthouse/compare/v4.0.0-alpha.0...v4.0.0-alpha.1)
2038
2039## Core
2040
2041* skip h2 audit in LR ([#6564](https://github.com/googlechrome/lighthouse/pull/6564))
2042* config: faster category validation ([#6445](https://github.com/googlechrome/lighthouse/pull/6445))
2043* driver: wait for Page.frameNavigated for about:blank ([#6446](https://github.com/googlechrome/lighthouse/pull/6446))
2044* lib: add chrome-extension to URL allowedProtocols and add test ([#6447](https://github.com/googlechrome/lighthouse/pull/6447))
2045* pwa: audit and report group renames ([#6494](https://github.com/googlechrome/lighthouse/pull/6494))
2046* seo: properly handle anchors in SVG ([#6483](https://github.com/googlechrome/lighthouse/pull/6483))
2047* increase protocol timeout to 30s ([#6505](https://github.com/googlechrome/lighthouse/pull/6505), [#6531](https://github.com/googlechrome/lighthouse/pull/6531))
2048
2049## Report
2050
2051* pwa: give badges to groups with all passing audits ([#6504](https://github.com/googlechrome/lighthouse/pull/6504))
2052* pwa: add pwa-category-renderer ([#6486](https://github.com/googlechrome/lighthouse/pull/6486))
2053* compat: add details-element polyfill for Edge ([#6465](https://github.com/googlechrome/lighthouse/pull/6465))
2054* compat: fix support for edge ([#6459](https://github.com/googlechrome/lighthouse/pull/6459))
2055* compat: ignore Edge's Invalid Argument error ([#6456](https://github.com/googlechrome/lighthouse/pull/6456))
2056* compat: fix summary rendering in FF ([#6448](https://github.com/googlechrome/lighthouse/pull/6448))
2057* handle underscored not_applicable scoreDisplayMode ([#6549](https://github.com/googlechrome/lighthouse/pull/6549))
2058* css: make performance category more compact ([#6437](https://github.com/googlechrome/lighthouse/pull/6437))
2059* rename clump classes; give classes to all audit groups ([#6482](https://github.com/googlechrome/lighthouse/pull/6482))
2060* refactor rendering of top-level failed/passing/etc clumps ([#6460](https://github.com/googlechrome/lighthouse/pull/6460))
2061
2062## Misc
2063
2064* build: fix viewer deploy ([#6449](https://github.com/googlechrome/lighthouse/pull/6449))
2065* timing: move timing-trace to async events ([#6440](https://github.com/googlechrome/lighthouse/pull/6440))
2066* update puppeteer to version 1.10.0 ([#6493](https://github.com/googlechrome/lighthouse/pull/6493))
2067* readme: use official appveyor badge ([#6443](https://github.com/googlechrome/lighthouse/pull/6443))
2068* i18n: convert accessibility audits ([#6229](https://github.com/googlechrome/lighthouse/pull/6229))
2069
2070 <a name="4.0.0-alpha.0"></a>
2071# 4.0.0-alpha.0 (2018-10-31)
2072[Full Changelog](https://github.com/googlechrome/lighthouse/compare/v3.2.0...v4.0.0-alpha.0)
2073
2074## New Contributors!
2075Thanks to @carlesnunez and @justin0022 for their first contributions!
2076
2077Thanks to @CodeDem for improving how the image-aspect-ratio audit handles small images!
2078
2079Huge thanks to myself (@Hoten) for joining Lighthouse! Go me!
2080
2081## New Audits
2082
2083* offline-start-url ([#6397](https://github.com/googlechrome/lighthouse/pull/6397))
2084
2085## Core
2086
2087* aspectratio: ignore placeholder images ([#6305](https://github.com/googlechrome/lighthouse/pull/6305))
2088* audit: add utm parameters when calling snyk ([#6172](https://github.com/googlechrome/lighthouse/pull/6172))
2089* audits: clarify diff between load-fast-enough-for-pwa's TTI and perf TTI ([#6286](https://github.com/googlechrome/lighthouse/pull/6286))
2090* axe: disable unused audits ([#6180](https://github.com/googlechrome/lighthouse/pull/6180))
2091* computed: fix new computed artifact interface ([#6151](https://github.com/googlechrome/lighthouse/pull/6151))
2092* config: add new PWA category groups ([#6396](https://github.com/googlechrome/lighthouse/pull/6396))
2093* critical-request-chain: remove empty children from LHR ([#6211](https://github.com/googlechrome/lighthouse/pull/6211))
2094* driver: save performance.now() to avoid conflict ([#6387](https://github.com/googlechrome/lighthouse/pull/6387))
2095* driver: request smaller trace in m71+ ([#6117](https://github.com/googlechrome/lighthouse/pull/6117))
2096* driver: stringify protocol error messages ([#6302](https://github.com/googlechrome/lighthouse/pull/6302))
2097* driver: address bckenny feedback on #6117 ([#6285](https://github.com/googlechrome/lighthouse/pull/6285))
2098* driver: reduce required traceCategories again ([54baf91](https://github.com/googlechrome/lighthouse/commit/54baf91))
2099* driver: recover from rejection on handleJavaScriptDialog ([#6327](https://github.com/googlechrome/lighthouse/pull/6327))
2100* emulation: fix missing space in mobile UA ([#6161](https://github.com/googlechrome/lighthouse/pull/6161))
2101* icons: defer to manifest-icon type hint for image type ([#6230](https://github.com/googlechrome/lighthouse/pull/6230))
2102* network: handle invalid NetworkRequests ([#6157](https://github.com/googlechrome/lighthouse/pull/6157))
2103* network-analyzer: move throughput to NetworkAnalyzer ([#5900](https://github.com/googlechrome/lighthouse/pull/5900))
2104* perf: add timing instrumentation to measure runtime perf ([#3745](https://github.com/googlechrome/lighthouse/pull/3745))
2105* proto: add proto definition for LHR ([#6183](https://github.com/googlechrome/lighthouse/pull/6183))
2106* simulator: start nodes in observed order ([#5362](https://github.com/googlechrome/lighthouse/pull/5362))
2107* unminified-javascript: replace esprima with custom tokenizer ([#5925](https://github.com/googlechrome/lighthouse/pull/5925))
2108* remove recoverOrThrow / err.fatal ([#6343](https://github.com/googlechrome/lighthouse/pull/6343))
2109* convert computed artifact loading to regular require() ([#6204](https://github.com/googlechrome/lighthouse/pull/6204))
2110* remove no-websql audit ([#6293](https://github.com/googlechrome/lighthouse/pull/6293))
2111* bail on run if insecure ssl certification ([#6300](https://github.com/googlechrome/lighthouse/pull/6300))
2112* make throttled offscreen-images work without TTI ([#6039](https://github.com/googlechrome/lighthouse/pull/6039))
2113* save HTMLElement.p.matches function to avoid conflict ([#6283](https://github.com/googlechrome/lighthouse/pull/6283))
2114* remove fonts gatherer, move font-display to use CSSUsage artifact ([#6166](https://github.com/googlechrome/lighthouse/pull/6166))
2115* remove last dependency on WebInspector ([#6209](https://github.com/googlechrome/lighthouse/pull/6209))
2116* add timeout to all protocol commands ([#6347](https://github.com/googlechrome/lighthouse/pull/6347))
2117* don't load blank page twice in first pass ([#6369](https://github.com/googlechrome/lighthouse/pull/6369))
2118* refactor finding of trace start ([#6370](https://github.com/googlechrome/lighthouse/pull/6370))
2119* increase Page.navigate timeout ([#6412](https://github.com/googlechrome/lighthouse/pull/6412))
2120
2121## Report
2122
2123* fix tooltip hover animation ([#6288](https://github.com/googlechrome/lighthouse/pull/6288))
2124* reframe Fast 3G as Slow 4G ([#6163](https://github.com/googlechrome/lighthouse/pull/6163))
2125* fix html report viewing bugs for Safari ([#6143](https://github.com/googlechrome/lighthouse/pull/6143))
2126* dom-size: right-align the value column ([#6372](https://github.com/googlechrome/lighthouse/pull/6372))
2127
2128## Clients
2129
2130* simplify viewer build process ([#6426](https://github.com/googlechrome/lighthouse/pull/6426))
2131* reorganize file structure and build process ([#6344](https://github.com/googlechrome/lighthouse/pull/6344))
2132* build: ignore all locales from devtools & extension build ([#6170](https://github.com/googlechrome/lighthouse/pull/6170))
2133* lr: skip early emulation now that lr-desktop is defined ([#6158](https://github.com/googlechrome/lighthouse/pull/6158))
2134* split browserifying and extension packaging into separate scripts ([#6295](https://github.com/googlechrome/lighthouse/pull/6295))
2135* simplify bundle building ([#6282](https://github.com/googlechrome/lighthouse/pull/6282))
2136* stop report bug prompt for file:// urls ([#6278](https://github.com/googlechrome/lighthouse/pull/6278))
2137
2138## Deps
2139
2140* update typescript to latest patch release ([#6235](https://github.com/googlechrome/lighthouse/pull/6235))
2141* update to tsc 3.1.1 ([#6126](https://github.com/googlechrome/lighthouse/pull/6126))
2142* jsdom: upgrade to support Element.prototype.closest ([#6411](https://github.com/googlechrome/lighthouse/pull/6411))
2143* snyk: update snyk snapshot ([#6377](https://github.com/googlechrome/lighthouse/pull/6377))
2144
2145## Docs
2146
2147* contributing: consistent capitalization ([#6174](https://github.com/googlechrome/lighthouse/pull/6174))
2148* new-audits: revise issue template ([#6233](https://github.com/googlechrome/lighthouse/pull/6233))
2149* readme: Add new related project, lighthouse-github-reporter ([#6307](https://github.com/googlechrome/lighthouse/pull/6307))
2150* readme: change image references be commit hash raw gh urls ([#6116](https://github.com/googlechrome/lighthouse/pull/6116))
2151* add primer on viewing the timing data ([#6393](https://github.com/googlechrome/lighthouse/pull/6393))
2152* typo fix ([#6335](https://github.com/googlechrome/lighthouse/pull/6335))
2153* Remove "sh" format for CLI --help output ([#6311](https://github.com/googlechrome/lighthouse/pull/6311))
2154* update docs for --output-path re: multiple output types ([#6339](https://github.com/googlechrome/lighthouse/pull/6339))
2155
2156## I18n
2157
2158* roll latest messages from TC ([#6388](https://github.com/googlechrome/lighthouse/pull/6388))
2159* update test for new canonical locale codes ([#6360](https://github.com/googlechrome/lighthouse/pull/6360))
2160
2161## Tests
2162
2163* use predictable numbers in golden LHR ([#6404](https://github.com/googlechrome/lighthouse/pull/6404))
2164* add basic sentry tests ([#6308](https://github.com/googlechrome/lighthouse/pull/6308))
2165* restore lr-entry test ([#6214](https://github.com/googlechrome/lighthouse/pull/6214))
2166* remove more mock computed artifacts ([#6195](https://github.com/googlechrome/lighthouse/pull/6195))
2167* add trace creator ([#6196](https://github.com/googlechrome/lighthouse/pull/6196))
2168* add networkRecord-to-devtoolsLog mocking utility ([#6171](https://github.com/googlechrome/lighthouse/pull/6171))
2169* add angular test for JS minification ([#6138](https://github.com/googlechrome/lighthouse/pull/6138))
2170* run node 10 on Travis ([#6361](https://github.com/googlechrome/lighthouse/pull/6361))
2171
2172## Misc
2173
2174* tweaks for devtools client ([#6127](https://github.com/googlechrome/lighthouse/pull/6127))
2175* simplify proto npm scripts ([#6406](https://github.com/googlechrome/lighthouse/pull/6406))
2176* add cli module diagram ([#6129](https://github.com/googlechrome/lighthouse/pull/6129))
2177* keep download-chrome script in npm package ([#6153](https://github.com/googlechrome/lighthouse/pull/6153))
2178* lantern script path resolution fix ([#6380](https://github.com/googlechrome/lighthouse/pull/6380))
2179* add integrity data to yarn.lock ([#6212](https://github.com/googlechrome/lighthouse/pull/6212))
2180* add yarn integrity hashes for extension/viewer ([#6277](https://github.com/googlechrome/lighthouse/pull/6277))
2181* only allow 1 error from each audit/gatherer ([#6215](https://github.com/googlechrome/lighthouse/pull/6215))
2182* Revert "core(driver): stringify protocol error messages (#6302)" ([#6328](https://github.com/googlechrome/lighthouse/pull/6328))
2183* fix typo in feature request template ([#6431](https://github.com/googlechrome/lighthouse/pull/6431))
2184* remove plots/ ([#6346](https://github.com/googlechrome/lighthouse/pull/6346))
2185* build: cleanup extension package zip using gulp ([#6210](https://github.com/googlechrome/lighthouse/pull/6210))
2186* build: rename bundled files (devtools/ext/lr) ([#6179](https://github.com/googlechrome/lighthouse/pull/6179))
2187* eslint: enforce infix-op spacing ([#6382](https://github.com/googlechrome/lighthouse/pull/6382))
2188* logger: isVerbose(), getTimeEntries() ([#6383](https://github.com/googlechrome/lighthouse/pull/6383))
2189* logging: add hanging request logging in driver ([#6297](https://github.com/googlechrome/lighthouse/pull/6297))
2190* proto: made default LighthouseError enum 'UNDEFINED' ([#6334](https://github.com/googlechrome/lighthouse/pull/6334))
2191* proto: align proto whitespace ([#6374](https://github.com/googlechrome/lighthouse/pull/6374))
2192* proto: convert int32's into DoubleValue in proto ([#6332](https://github.com/googlechrome/lighthouse/pull/6332))
2193* proto: adjust configSetting.output in preprocessor ([#6310](https://github.com/googlechrome/lighthouse/pull/6310))
2194* proto: add audit_mode and timings ([#6363](https://github.com/googlechrome/lighthouse/pull/6363))
2195* proto: fix linting and add LR hook ([#6373](https://github.com/googlechrome/lighthouse/pull/6373))
2196* proto: make NO_ERROR default in proto ([#6358](https://github.com/googlechrome/lighthouse/pull/6358))
2197* proto: reduce configSettings in proto to minimum ([88b2829](https://github.com/googlechrome/lighthouse/commit/88b2829))
2198* yarn: update lockfile for micromatch ([#6384](https://github.com/googlechrome/lighthouse/pull/6384))
2199
2200<a name="3.2.1"></a>
2201# 3.2.1 (2018-10-01)
2202[Full Changelog](https://github.com/googlechrome/lighthouse/compare/v3.2.0...v3.2.1)
2203
2204## Core
2205
2206* emulation: set desktop viewport to 1350x940 ([#6131](https://github.com/googlechrome/lighthouse/pull/6131))
2207* await js-libraries detection ([#6141](https://github.com/googlechrome/lighthouse/pull/6141))
2208
2209 <a name="3.2.0"></a>
2210# 3.2.0 (2018-09-27)
2211[Full Changelog](https://github.com/googlechrome/lighthouse/compare/v3.1.1...v3.2.0)
2212
2213## New Audits
2214
2215* add js-libraries audit, just listing detected js libs ([#6081](https://github.com/googlechrome/lighthouse/pull/6081))
2216
2217## Faster
2218
2219* driver: deliver trace as events rather than a stream ([#6056](https://github.com/googlechrome/lighthouse/pull/6056))
2220* network-recorder: consider iframe responses finished. helps avoid pageload timeout ([#6078](https://github.com/googlechrome/lighthouse/pull/6078))
2221* replace WebInspector traceparser with native JSON.parse ([#6099](https://github.com/googlechrome/lighthouse/pull/6099))
2222
2223## Core
2224
2225* add `emulatedFormFactor` setting ([#6098](https://github.com/googlechrome/lighthouse/pull/6098))
2226* remove some trivial uses of WebInspector ([#6090](https://github.com/googlechrome/lighthouse/pull/6090))
2227* use cssstyle to parse CSS colors instead of WebInspector ([#6091](https://github.com/googlechrome/lighthouse/pull/6091))
2228* initial refactor of computedArtifact import/caching ([#5907](https://github.com/googlechrome/lighthouse/pull/5907))
2229* asset-saver: stop creating screenshot files during --save-assets ([#6066](https://github.com/googlechrome/lighthouse/pull/6066))
2230* content-width: not applicable on desktop ([#5893](https://github.com/googlechrome/lighthouse/pull/5893))
2231* driver: add check to make sure Runtime.evaluate result exists ([#6089](https://github.com/googlechrome/lighthouse/pull/6089))
2232* icons: Add PNG check to manifest icon validation ([#6024](https://github.com/googlechrome/lighthouse/pull/6024))
2233* lhr: add top-level runtimeError ([#6014](https://github.com/googlechrome/lighthouse/pull/6014))
2234 * gather-runner: include error status codes in pageLoadError ([#6051](https://github.com/googlechrome/lighthouse/pull/6051))
2235 * smooth rough edges of pageLoadError display and reporting ([#6083](https://github.com/googlechrome/lighthouse/pull/6083))
2236* net-request: transferSize now shared via 'X-TotalFetchedSize' ([#6050](https://github.com/googlechrome/lighthouse/pull/6050))
2237* don't allow analysis of file:// urls ([#5936](https://github.com/googlechrome/lighthouse/pull/5936))
2238
2239## Report
2240
2241* dont show zero ms savings in preconnect, preload audits ([#5983](https://github.com/googlechrome/lighthouse/pull/5983))
2242* align table headings & columns left/right ([#6063](https://github.com/googlechrome/lighthouse/pull/6063))
2243* audit: make dom-size table prettier ([#6065](https://github.com/googlechrome/lighthouse/pull/6065))
2244* `cursor:pointer` on Passed Audits, etc ([#5977](https://github.com/googlechrome/lighthouse/pull/5977))
2245* psi: remove redundant varience disclaimer ([#6110](https://github.com/googlechrome/lighthouse/pull/6110))
2246* util: ✅ audits should be in Passed Audits ([#5963](https://github.com/googlechrome/lighthouse/pull/5963))
2247* vulnerable-jslibs: tweak snyk link for highlighted matches ([#6096](https://github.com/googlechrome/lighthouse/pull/6096))
2248* xbrowser: replace Typed OM getComputedStyle() with CSSOM equivalent ([#5984](https://github.com/googlechrome/lighthouse/pull/5984))
2249
2250## CLI
2251
2252* add --print-config flag ([#6107](https://github.com/googlechrome/lighthouse/pull/6107))
2253
2254## Deps
2255
2256* snyk: update snyk snapshot ([#6074](https://github.com/googlechrome/lighthouse/pull/6074))
2257* chrome-launcher@0.10.5 ([#6106](https://github.com/googlechrome/lighthouse/pull/6106))
2258* js-library-detector@5.1.0 ([#6102](https://github.com/googlechrome/lighthouse/pull/6102))
2259* speedline@1.4.2 (faster sort) ([#6073](https://github.com/googlechrome/lighthouse/pull/6073))
2260* chrome-devtools-frontend@latest ([#6101](https://github.com/googlechrome/lighthouse/pull/6101))
2261
2262## Docs
2263
2264* readme: add lighthouse4u ([#6008](https://github.com/googlechrome/lighthouse/pull/6008))
2265* readme: updated report screenshot to 3.1.0 ([#6042](https://github.com/googlechrome/lighthouse/pull/6042))
2266* readme: add lighthouse-badges to related projects ([#5969](https://github.com/googlechrome/lighthouse/pull/5969))
2267* recipes: update custom-audit package.json ([#6007](https://github.com/googlechrome/lighthouse/pull/6007))
2268* releasing: minor updates ([#5345](https://github.com/googlechrome/lighthouse/pull/5345))
2269
2270## i18n
2271
2272* roll latest strings from TC ([#6109](https://github.com/googlechrome/lighthouse/pull/6109))
2273* mv locale files ([#5981](https://github.com/googlechrome/lighthouse/pull/5981))
2274* speed up replacement regex ([#6072](https://github.com/googlechrome/lighthouse/pull/6072))
2275
2276## Misc
2277
2278* bump bundlesize threshold a little more ([#6055](https://github.com/googlechrome/lighthouse/pull/6055))
2279* runner: added locale to settings that can change between -G and -A ([#6080](https://github.com/googlechrome/lighthouse/pull/6080))
2280* tsc: add type checking to sentry usage ([#5993](https://github.com/googlechrome/lighthouse/pull/5993))
2281
2282
2283 <a name="3.1.1"></a>
2284# 3.1.1 (2018-09-07)
2285[Full Changelog](https://github.com/googlechrome/lighthouse/compare/v3.1.0...v3.1.1)
2286
2287* update report score legend to match updated color buckets ([#5985](https://github.com/googlechrome/lighthouse/pull/5985))
2288
2289<a name="3.1.0"></a>
2290# 3.1.0 (2018-09-06)
2291[Full Changelog](https://github.com/googlechrome/lighthouse/compare/v3.0.3...v3.1.0)
2292
2293## New Contributors!
2294Huge thanks to @midzer and @justinribeiro for being so darn helpful. Great stuff. :D
2295
2296And thanks to @mettamatt for some helpful documentation. Who doesn't love better docs?!
2297
2298## Notable changes
2299
2300* red/orange/green color buckets for scores are tougher now. ([#5831](https://github.com/googlechrome/lighthouse/pull/5831))
2301
2302| | Previously | Now |
2303|-|-|-|
2304| Red (bad) | 0-44 | 0-49 |
2305| Orange (average)| 45-74 | 50-89 |
2306| Green (good)| 75-100 | 90-100 |
2307
2308Scoring itself hasn't changed; only what color is used to decorate a score.
2309
2310* trace-processor: fix bug where top-level events weren't being found in the trace ([#5841](https://github.com/googlechrome/lighthouse/pull/5841))
2311
2312## Core
2313
2314* normalize URL before checking equality ([#5960](https://github.com/googlechrome/lighthouse/pull/5960))
2315* expose LighthouseRunWarnings on audit context ([#5684](https://github.com/googlechrome/lighthouse/pull/5684))
2316* adjust audit titles for consistency ([#5717](https://github.com/googlechrome/lighthouse/pull/5717))
2317* export any page-functions as string ([#5902](https://github.com/googlechrome/lighthouse/pull/5902))
2318* all ByteEfficiency audits require a trace ([#5840](https://github.com/googlechrome/lighthouse/pull/5840))
2319* enhanced noopener output ([#5857](https://github.com/googlechrome/lighthouse/pull/5857))
2320* errors: class rename and re-source page load errors ([#5972](https://github.com/googlechrome/lighthouse/pull/5972))
2321* fix defaultConfig UIStrings and exit code for test ([#5884](https://github.com/googlechrome/lighthouse/pull/5884))
2322* remove last debugString references ([#5856](https://github.com/googlechrome/lighthouse/pull/5856))
2323* redirects: update redirects to use OpportunityDetails ([#5791](https://github.com/googlechrome/lighthouse/pull/5791))
2324* warn when extensions affected perf ([#5666](https://github.com/googlechrome/lighthouse/pull/5666))
2325* driver: handle when page redefines global.URL ([#5748](https://github.com/googlechrome/lighthouse/pull/5748))
2326* gather-runner: call clearDataForOrigin on teardown ([#5933](https://github.com/googlechrome/lighthouse/pull/5933))
2327* lhr: expose environment info ([#5871](https://github.com/googlechrome/lighthouse/pull/5871))
2328* lr: add LR presets for desktop and mobile ([#5886](https://github.com/googlechrome/lighthouse/pull/5886))
2329* lr: drop maxWaitForLoad 45 -> 35 ([#5938](https://github.com/googlechrome/lighthouse/pull/5938))
2330* network: handle LR transferSize ([#5895](https://github.com/googlechrome/lighthouse/pull/5895))
2331* network-analyzer: infer RTT from receiveHeadersEnd ([#5694](https://github.com/googlechrome/lighthouse/pull/5694))
2332* optimized-images: support non-standard mime types ([#5688](https://github.com/googlechrome/lighthouse/pull/5688))
2333* preload: remove CRC dependency ([#5901](https://github.com/googlechrome/lighthouse/pull/5901))
2334* screenshot-thumbnails: improve caching ([#5976](https://github.com/googlechrome/lighthouse/pull/5976))
2335* ttfb: reuse requestMainResource ([#5657](https://github.com/googlechrome/lighthouse/pull/5657))
2336* trace-of-tab: only use navstart of chrome/http documents ([#5917](https://github.com/googlechrome/lighthouse/pull/5917))
2337* tracing-processor: throw on no top level events ([#5878](https://github.com/googlechrome/lighthouse/pull/5878))
2338* uses-long-cache-ttl: handle multiple cache-control headers ([#5745](https://github.com/googlechrome/lighthouse/pull/5745))
2339
2340## Extension
2341
2342* access core through module instead of Runner ([#5855](https://github.com/googlechrome/lighthouse/pull/5855))
2343* tweak runLighthouseAsInCLI jsdoc ([#5812](https://github.com/googlechrome/lighthouse/pull/5812))
2344* refactor option/flag passing (breaking change) ([#5769](https://github.com/googlechrome/lighthouse/pull/5769))
2345* remove X-UA-Compatible meta ([#5739](https://github.com/googlechrome/lighthouse/pull/5739))
2346* popup: keep feedback class ([#5872](https://github.com/googlechrome/lighthouse/pull/5872))
2347
2348## i18n
2349
2350* add i18n 'type' for prlint ([#5880](https://github.com/googlechrome/lighthouse/pull/5880))
2351* minor message and description changes based on translator feedback ([#5829](https://github.com/googlechrome/lighthouse/pull/5829))
2352* reframe the ICU message descriptions with placeholders ([#5737](https://github.com/googlechrome/lighthouse/pull/5737))
2353* export rendererFormattedStrings ([#5713](https://github.com/googlechrome/lighthouse/pull/5713))
2354* extract performance category strings to UIStrings ([#5716](https://github.com/googlechrome/lighthouse/pull/5716))
2355* always use english for status logs ([#5727](https://github.com/googlechrome/lighthouse/pull/5727))
2356* add 'ln' locale which maps to 'fr' ([#5879](https://github.com/googlechrome/lighthouse/pull/5879))
2357* support descriptions ([#5718](https://github.com/googlechrome/lighthouse/pull/5718))
2358* add [ICU Syntax] label to relevant message descriptions ([#5736](https://github.com/googlechrome/lighthouse/pull/5736))
2359* import psuedo-locale json from TC ([#5726](https://github.com/googlechrome/lighthouse/pull/5726))
2360* incorporate 52 languages into messages pipeline ([#5781](https://github.com/googlechrome/lighthouse/pull/5781))
2361* add descriptions to UI strings ([#5743](https://github.com/googlechrome/lighthouse/pull/5743))
2362* add strings of the opportunity group split (first paint, overall) ([#5744](https://github.com/googlechrome/lighthouse/pull/5744))
2363* add locale fallback when language not supported ([#5746](https://github.com/googlechrome/lighthouse/pull/5746))
2364* localize strings at end of run ([#5655](https://github.com/googlechrome/lighthouse/pull/5655))
2365* always use formatted strings for extension popup ([#5761](https://github.com/googlechrome/lighthouse/pull/5761))
2366* add strings for user timing entries table ([#5806](https://github.com/googlechrome/lighthouse/pull/5806))
2367* sort the ICU messages when saved ([#5771](https://github.com/googlechrome/lighthouse/pull/5771))
2368* roll latest TC messages ([#5802](https://github.com/googlechrome/lighthouse/pull/5802))
2369* add localized messages for 52 locales ([#5780](https://github.com/googlechrome/lighthouse/pull/5780))
2370* add assertion script ([#5686](https://github.com/googlechrome/lighthouse/pull/5686))
2371* report: use LHR locale for toLocaleString ([#5734](https://github.com/googlechrome/lighthouse/pull/5734))
2372* report: localize CRC renderer strings ([#5730](https://github.com/googlechrome/lighthouse/pull/5730))
2373
2374## Types
2375
2376* don't use index signature in LHErrors ([#5896](https://github.com/googlechrome/lighthouse/pull/5896))
2377* type check config files ([#5858](https://github.com/googlechrome/lighthouse/pull/5858))
2378* don't use index signature in simulator.js ([#5897](https://github.com/googlechrome/lighthouse/pull/5897))
2379* update debugger protocol type checking ([#5836](https://github.com/googlechrome/lighthouse/pull/5836))
2380* remove more reliance on implicit index signatures ([#5874](https://github.com/googlechrome/lighthouse/pull/5874))
2381* update types in emulation.js ([#5830](https://github.com/googlechrome/lighthouse/pull/5830))
2382* tighten traceOfTab timing types ([#5887](https://github.com/googlechrome/lighthouse/pull/5887))
2383* update to ts 3.1 to support new protocol defs ([#5942](https://github.com/googlechrome/lighthouse/pull/5942))
2384* update to latest tsc ([#5581](https://github.com/googlechrome/lighthouse/pull/5581))
2385* NetworkRequest.RESOURCE_TYPES type fix ([#5851](https://github.com/googlechrome/lighthouse/pull/5851))
2386* add explicit index signature in mainthread-work-breakdown ([#5859](https://github.com/googlechrome/lighthouse/pull/5859))
2387* cli: make LH.Flags type correct and consistent ([#5849](https://github.com/googlechrome/lighthouse/pull/5849))
2388
2389## Report
2390
2391* link to our own "unused css" reference doc ([#5698](https://github.com/googlechrome/lighthouse/pull/5698))
2392* expose prepareLabData directly as a fn ([#5818](https://github.com/googlechrome/lighthouse/pull/5818))
2393* responsive styles ([#5706](https://github.com/googlechrome/lighthouse/pull/5706))
2394* add PSI.prepareLabData() ([#5804](https://github.com/googlechrome/lighthouse/pull/5804))
2395* adopt 80-char line-length license ([#5757](https://github.com/googlechrome/lighthouse/pull/5757))
2396* add method to get the final screenshot ([#5673](https://github.com/googlechrome/lighthouse/pull/5673))
2397* metrics: display metrics in seconds ([#5914](https://github.com/googlechrome/lighthouse/pull/5914))
2398* psi: add Util.prepareReportResult method ([#5766](https://github.com/googlechrome/lighthouse/pull/5766))
2399* psi: reset template styles on every call of prepareLabData ([#5877](https://github.com/googlechrome/lighthouse/pull/5877))
2400* psi: add lab data summary sentence ([#5961](https://github.com/googlechrome/lighthouse/pull/5961))
2401
2402## New Audits
2403
2404* a11y: add manual audit for interactive element affordance ([#5764](https://github.com/googlechrome/lighthouse/pull/5764))
2405
2406## Tests
2407
2408* quiet down collect-scripts during CI ([#5801](https://github.com/googlechrome/lighthouse/pull/5801))
2409* better display value tests with i18n ([#5720](https://github.com/googlechrome/lighthouse/pull/5720))
2410* dbw: remove createShadowRoot call ([#5906](https://github.com/googlechrome/lighthouse/pull/5906))
2411* jest: disable coverage collection by default ([#5772](https://github.com/googlechrome/lighthouse/pull/5772))
2412* smokehouse: update expectations for HTML Imports deprecation ([#5943](https://github.com/googlechrome/lighthouse/pull/5943))
2413* smokehouse: update passive listener expectations ([#5899](https://github.com/googlechrome/lighthouse/pull/5899))
2414
2415## Deps
2416
2417* snyk: update snyk snapshot ([#5774](https://github.com/googlechrome/lighthouse/pull/5774)), ([#5773](https://github.com/googlechrome/lighthouse/pull/5773)), ([#5762](https://github.com/googlechrome/lighthouse/pull/5762)), ([#5691](https://github.com/googlechrome/lighthouse/pull/5691))
2418* depend on speedline-core, rather than the cli ([#5800](https://github.com/googlechrome/lighthouse/pull/5800))
2419
2420
2421## Docs
2422
2423* headless: Require Node 8 and apt install chromium ([#5974](https://github.com/googlechrome/lighthouse/pull/5974))
2424* headless: example script to post report as gist ([#5975](https://github.com/googlechrome/lighthouse/pull/5975))\
2425* integrations: Add SpeedCurve to "Lighthouse Integrations" ([#5732](https://github.com/googlechrome/lighthouse/pull/5732))
2426* link FCP audit description to lighthouse docs ([#5850](https://github.com/googlechrome/lighthouse/pull/5850))
2427* puppeteer: remove appMode mention ([#5923](https://github.com/googlechrome/lighthouse/pull/5923))
2428* readme: mention chrome-flags troubleshooting in getting started ([#5916](https://github.com/googlechrome/lighthouse/pull/5916))
2429* report: add a renderer readme ([#5725](https://github.com/googlechrome/lighthouse/pull/5725))
2430* scoring: http2 redirect PWA score issue ([#5929](https://github.com/googlechrome/lighthouse/pull/5929))
2431
2432## Misc
2433
2434* cli: enableErrorReporting must be undefined by default ([#5854](https://github.com/googlechrome/lighthouse/pull/5854))
2435* asset-saver: tweak output format of logAssets ([#5696](https://github.com/googlechrome/lighthouse/pull/5696))
2436* logger: add time/timeEnd methods ([#5905](https://github.com/googlechrome/lighthouse/pull/5905))
2437* fix grocers apostrophe typo (API's v APIs) ([#5948](https://github.com/googlechrome/lighthouse/pull/5948))
2438
2439 <a name="3.0.3"></a>
2440# 3.0.3 (2018-07-17)
2441[Full Changelog](https://github.com/googlechrome/lighthouse/compare/v3.0.2...v3.0.3)
2442
2443## Core
2444
2445* emulation: use setTouchEmulationEnabled ([#5661](https://github.com/googlechrome/lighthouse/pull/5661))
2446* response-compression: graceful recovery ([#5578](https://github.com/googlechrome/lighthouse/pull/5578))
2447* simulator: add DNS timing ([#5607](https://github.com/googlechrome/lighthouse/pull/5607))
2448
2449## Misc
2450
2451* convert strings to NetworkRequest.TYPES ([#5674](https://github.com/googlechrome/lighthouse/pull/5674))
2452* sentry: lower "could not load stylesheet" sampling to 0.01 ([#5677](https://github.com/googlechrome/lighthouse/pull/5677))
2453
2454<a name="3.0.2"></a>
2455# 3.0.2 (2018-07-11)
2456[Full Changelog](https://github.com/googlechrome/lighthouse/compare/v3.0.1...v3.0.2)
2457
2458## New Contributors!
2459Thanks to @schalkneethling and @eduardosada for their first contributions!
2460
2461## New Audits
2462
2463* assert a present and valid doctype ([#5274](https://github.com/googlechrome/lighthouse/pull/5274))
2464
2465## Core
2466
2467* fonts: bump gatherer timeout to 5s ([#5643](https://github.com/googlechrome/lighthouse/pull/5643))
2468* network-request: cleanup DevTools property names ([#5606](https://github.com/googlechrome/lighthouse/pull/5606))
2469* preload: remove blob protocol from preload audit ([#5409](https://github.com/googlechrome/lighthouse/pull/5409))
2470* without-javascript: allow noscript pages ([#5571](https://github.com/googlechrome/lighthouse/pull/5571))
2471
2472## Docs
2473
2474* architecture: add diagram of module dependencies ([#5615](https://github.com/googlechrome/lighthouse/pull/5615))
2475* custom-audit: update custom-audit to 3.0.0 api ([#5612](https://github.com/googlechrome/lighthouse/pull/5612))
2476* [minor] issue template tweaks ([#5641](https://github.com/googlechrome/lighthouse/pull/5641))
2477
2478## Extension
2479
2480* fix "extension Error: couldn't resolve current tab" ([#5591](https://github.com/googlechrome/lighthouse/pull/5591))
2481* 3.0.0 as well ([#5584](https://github.com/googlechrome/lighthouse/pull/5584))
2482
2483## Tests
2484
2485* [minor] rename robots.txt test file ([#5610](https://github.com/googlechrome/lighthouse/pull/5610))
2486* run the golden LHR check earlier ([#5609](https://github.com/googlechrome/lighthouse/pull/5609))
2487
2488## Misc
2489
2490* scripts: more succinct lantern output ([#5523](https://github.com/googlechrome/lighthouse/pull/5523))
2491
2492 <a name="3.0.1"></a>
2493# 3.0.1 (2018-07-02)
2494[Full Changelog](https://github.com/googlechrome/lighthouse/compare/v3.0.0...v3.0.1)
2495
2496## Core
2497
2498* fonts: handle CORS cssRules ([#5592](https://github.com/googlechrome/lighthouse/pull/5592))
2499
2500## Tests
2501
2502* adopt jest (leaving mocha) for core & cli ([#5386](https://github.com/googlechrome/lighthouse/pull/5386))
2503
2504 <a name="3.0.0"></a>
2505# 3.0.0 Final (2018-06-29)
2506[Changelog of v3.0.0-beta.0 to 3.0 final](https://github.com/googlechrome/lighthouse/compare/v3.0.0-beta.0...v3.0.0)
2507
2508## New Contributors!
2509Thanks to @underbyte, @nourikhalass and @ernstmul for their first contributions! Awesome stuff.
2510
2511## Core
2512
2513* a11y: add back html/tags/impact ([#5439](https://github.com/googlechrome/lighthouse/pull/5439))
2514* audit: align meta properties with LHR ([#5540](https://github.com/googlechrome/lighthouse/pull/5540))
2515* audit-mode: do not require a URL ([#5495](https://github.com/googlechrome/lighthouse/pull/5495))
2516* driver: [minor] fix spelling of evaluate ([#5553](https://github.com/googlechrome/lighthouse/pull/5553))
2517* fcp: fix scoring curve ([#5507](https://github.com/googlechrome/lighthouse/pull/5507))
2518* image-aspect-ratio: loosen ratio check ([#5358](https://github.com/googlechrome/lighthouse/pull/5358))
2519* lhr: migrate opportunity details to new format ([#5296](https://github.com/googlechrome/lighthouse/pull/5296))
2520* main-resource: work with hash URLs ([#5422](https://github.com/googlechrome/lighthouse/pull/5422))
2521* multi-check: expose manifest checks in details ([#5405](https://github.com/googlechrome/lighthouse/pull/5405))
2522* network-requests: handle negative endTime ([#5530](https://github.com/googlechrome/lighthouse/pull/5530))
2523* offscreen-images: add lantern filter ([#5361](https://github.com/googlechrome/lighthouse/pull/5361))
2524* opportunities: more granular score ([#5331](https://github.com/googlechrome/lighthouse/pull/5331))
2525* preload: only allow same origin (domain + subdomains) ([#5065](https://github.com/googlechrome/lighthouse/pull/5065))
2526* pwa: revamp and move short_name_length audit ([#4860](https://github.com/googlechrome/lighthouse/pull/4860))
2527* pwa: adjust score weights ([#5233](https://github.com/googlechrome/lighthouse/pull/5233))
2528* faster saveTrace by streaming 500 events at a time ([#5387](https://github.com/googlechrome/lighthouse/pull/5387))
2529* convert requestIds before sending to backend ([#5580](https://github.com/googlechrome/lighthouse/pull/5580))
2530* remove dependency on DevtoolsTimelineModel ([#5533](https://github.com/googlechrome/lighthouse/pull/5533))
2531* remove no-mutation-events audit ([#5509](https://github.com/googlechrome/lighthouse/pull/5509))
2532* remove WebInspector.resourceTypes references ([#5556](https://github.com/googlechrome/lighthouse/pull/5556))
2533* [minor] migrate remaining .description -> .title ([cee9d55](https://github.com/googlechrome/lighthouse/commit/cee9d55))
2534* support traces with TracingStartedInBrowser event ([#5271](https://github.com/googlechrome/lighthouse/pull/5271))
2535* remove dependency on devtools-frontend NetworkRequest ([#5451](https://github.com/googlechrome/lighthouse/pull/5451))
2536* convert gather-runner.js to async/await ([#5462](https://github.com/googlechrome/lighthouse/pull/5462))
2537* handle DOM.resolveNode errors ([#5427](https://github.com/googlechrome/lighthouse/pull/5427))
2538* split out BaseArtifacts, those always provided by LH itself ([#5506](https://github.com/googlechrome/lighthouse/pull/5506))
2539* simulator: convert node timings to trace ([#5350](https://github.com/googlechrome/lighthouse/pull/5350))
2540* simulator: improved timing typedef ([#5347](https://github.com/googlechrome/lighthouse/pull/5347))
2541* trace-of-tab: remove DevTools stableSort dependency ([#5532](https://github.com/googlechrome/lighthouse/pull/5532))
2542* traces: move findTracingStartedEvt to tracingProcessor ([4826a77](https://github.com/googlechrome/lighthouse/commit/4826a77))
2543* tsc: make CPUNode and NetworkNode a discriminated union ([#5548](https://github.com/googlechrome/lighthouse/pull/5548))
2544* tsc: use Config class to define Config type ([#5525](https://github.com/googlechrome/lighthouse/pull/5525))
2545* tsc: add initial trivial type info to config.js ([#5481](https://github.com/googlechrome/lighthouse/pull/5481))
2546* tsc: refactor config.js (and add type checking) ([#5486](https://github.com/googlechrome/lighthouse/pull/5486))
2547* tsc: migrate renderer & viewer off typedefs to .d.ts ([#5342](https://github.com/googlechrome/lighthouse/pull/5342))
2548* user-timings: add back startTime ([#5442](https://github.com/googlechrome/lighthouse/pull/5442))
2549
2550## Deps
2551
2552* bump gulp's `natives` dep for node 10.4 compat ([#5497](https://github.com/googlechrome/lighthouse/pull/5497))
2553
2554## Docs
2555
2556* update required chrome version ([#5425](https://github.com/googlechrome/lighthouse/pull/5425))
2557* update docs for v3 ([#5357](https://github.com/googlechrome/lighthouse/pull/5357))
2558* audit: add jsdoc descriptions to the audit meta properties ([#5567](https://github.com/googlechrome/lighthouse/pull/5567))
2559* readme: lighthouse-ci ([#5410](https://github.com/googlechrome/lighthouse/pull/5410))
2560* scoring: update metric explanations ([#5528](https://github.com/googlechrome/lighthouse/pull/5528))
2561
2562## Extension
2563
2564* popup: integration test for popup ([#5412](https://github.com/googlechrome/lighthouse/pull/5412))
2565* tsc: add type checking to extension entry points ([#5346](https://github.com/googlechrome/lighthouse/pull/5346))
2566* expose devtools hooks reliably ([#5579](https://github.com/googlechrome/lighthouse/pull/5579))
2567* allow use of ES2018 features ([#5377](https://github.com/googlechrome/lighthouse/pull/5377))
2568* update minimum Chrome version to 66 ([#5403](https://github.com/googlechrome/lighthouse/pull/5403))
2569* close the popup once the report has opened ([#5341](https://github.com/googlechrome/lighthouse/pull/5341))
2570
2571## Tests
2572
2573* lantern: add lantern regression test scripts ([#5435](https://github.com/googlechrome/lighthouse/pull/5435))
2574* fix golden LHR ([#5529](https://github.com/googlechrome/lighthouse/pull/5529))
2575* smoke: remove console.timeline() call ([#5560](https://github.com/googlechrome/lighthouse/pull/5560))
2576
2577## Misc
2578
2579* externs: import crdp from root node_modules ([#5366](https://github.com/googlechrome/lighthouse/pull/5366))
2580* golden-lhr: exclude audit descriptions ([#5538](https://github.com/googlechrome/lighthouse/pull/5538))
2581* scripts: more useful lantern debugging output ([#5517](https://github.com/googlechrome/lighthouse/pull/5517))
2582* viewer: load *.json if no *.lighthouse.report.json ([#5343](https://github.com/googlechrome/lighthouse/pull/5343))
2583* update codeowners file ([#5564](https://github.com/googlechrome/lighthouse/pull/5564))
2584* move metrics into dedicated metrics/ folder ([9def0a6](https://github.com/googlechrome/lighthouse/commit/9def0a6))
2585* needs NPM as well as Node installed ([114ebf5](https://github.com/googlechrome/lighthouse/commit/114ebf5))
2586* add links to lighthouse docs ([c7304a7](https://github.com/googlechrome/lighthouse/commit/c7304a7))
2587
2588 <a name="3.0.0-beta.0"></a>
2589# 3.0.0-beta.0 (2018-05-24)
2590[Full Changelog](https://github.com/googlechrome/lighthouse/compare/v3.0.0-alpha.2...v3.0.0-beta.0)
2591
2592## Core
2593
2594* lantern: handle disk cache simulation ([#5221](https://github.com/googlechrome/lighthouse/pull/5221))
2595* network-recorder: handle QUIC requests ([#5256](https://github.com/googlechrome/lighthouse/pull/5256))
2596* tsc: add type checking to viewer ([#5258](https://github.com/googlechrome/lighthouse/pull/5258))
2597* tsc: add tsc type checking to report ([#5195](https://github.com/googlechrome/lighthouse/pull/5195))
2598
2599## Deps
2600
2601* snyk: prettify snyk snapshot ([#5080](https://github.com/googlechrome/lighthouse/pull/5080))
2602
2603## Docs
2604
2605* readme: add Garie to related projects ([#5272](https://github.com/googlechrome/lighthouse/pull/5272))
2606
2607## Extension
2608
2609* expose URL shim ([#5293](https://github.com/googlechrome/lighthouse/pull/5293))
2610* another speculative fix for getCurrentTabURL; more logging ([#5323](https://github.com/googlechrome/lighthouse/pull/5323))
2611
2612## Report
2613
2614* updates for devtools roll ([#5326](https://github.com/googlechrome/lighthouse/pull/5326))
2615* audit warnings are no longer top-level ([#5270](https://github.com/googlechrome/lighthouse/pull/5270))
2616* move runtime settings to footer ([#5295](https://github.com/googlechrome/lighthouse/pull/5295))
2617* avoid paint storms on scrolly header ([#5207](https://github.com/googlechrome/lighthouse/pull/5207))
2618* restore missing non-applicable icon ([#5267](https://github.com/googlechrome/lighthouse/pull/5267))
2619* animated chevrons ([#5137](https://github.com/googlechrome/lighthouse/pull/5137))
2620* DRY up audit & opportunity rendering ([#5136](https://github.com/googlechrome/lighthouse/pull/5136))
2621
2622## Misc
2623
2624* github: add github PR and issue templates ([#5163](https://github.com/googlechrome/lighthouse/pull/5163))
2625* plots: extend default config ([#5309](https://github.com/googlechrome/lighthouse/pull/5309))
2626* scripts: add lantern evaluation scripts ([#5257](https://github.com/googlechrome/lighthouse/pull/5257))
2627* scripts: add trace/devtoolslog minification scripts ([#5237](https://github.com/googlechrome/lighthouse/pull/5237))
2628* viewer: fix saving as gist ([#5251](https://github.com/googlechrome/lighthouse/pull/5251))
2629* remove checkboxes from bug report template ([#5330](https://github.com/googlechrome/lighthouse/pull/5330))
2630
2631 <a name="3.0.0-alpha.2"></a>
2632# 3.0.0-alpha.2 (2018-05-16)
2633[Full Changelog](https://github.com/googlechrome/lighthouse/compare/v3.0.0-alpha...v3.0.0-alpha.2)
2634
2635## Core
2636
2637* lhr: audit id, title, description ([#5190](https://github.com/googlechrome/lighthouse/pull/5190))
2638* lhr: revert default wait bump ([06205ef](https://github.com/googlechrome/lighthouse/commit/06205ef))
2639* uses-preload: prevent infinite loop ([#5184](https://github.com/googlechrome/lighthouse/pull/5184))
2640* violation-audit: de-dupe items by URL and label ([#5219](https://github.com/googlechrome/lighthouse/pull/5219))
2641
2642## Docs
2643
2644* readme: add lighthouse-lambda to related projects ([#5227](https://github.com/googlechrome/lighthouse/pull/5227))
2645
2646## Report
2647
2648* dom-size: use correct learn more link ([#5192](https://github.com/googlechrome/lighthouse/pull/5192))
2649* header: fix stacking contexts within header ([#5185](https://github.com/googlechrome/lighthouse/pull/5185))
2650* minimum time scale for opportunities & filmstrip ([#5183](https://github.com/googlechrome/lighthouse/pull/5183))
2651
2652## Tests
2653
2654* compile: fix broken compile-devtools script ([#5234](https://github.com/googlechrome/lighthouse/pull/5234))
2655* viewer: upgrade pptr to handle new CSSOM use in the report ([#5191](https://github.com/googlechrome/lighthouse/pull/5191))
2656
2657## Misc
2658
2659* npmignore: include chrome launcher script ([aa0e089](https://github.com/googlechrome/lighthouse/commit/aa0e089))
2660* viewer: switch to 2x viewer within the same tab ([#5231](https://github.com/googlechrome/lighthouse/pull/5231))
2661* viewer: support legacy 2.x reports in viewer ([#5204](https://github.com/googlechrome/lighthouse/pull/5204))
2662* closure cleanup in viewer from #5231 ([#5235](https://github.com/googlechrome/lighthouse/pull/5235))
2663* 3.0.0-alpha.1 ([c7c0044](https://github.com/googlechrome/lighthouse/commit/c7c0044))
2664
2665 <a name="3.0.0-alpha"></a>
2666# 3.0.0-alpha (2018-05-09)
2667[Full Changelog](https://github.com/googlechrome/lighthouse/compare/v2.9.1...v3.0.0-alpha)
2668
2669## New Audits
2670
2671* robots-txt: /robots.txt validation ([#4845](https://github.com/googlechrome/lighthouse/pull/4845))
2672* efficient-animated-content, use videos instead of gifs ([#4885](https://github.com/googlechrome/lighthouse/pull/4885))
2673* add preconnect audit (avoid costly origin roundtrips) ([#4362](https://github.com/googlechrome/lighthouse/pull/4362))
2674
2675## CLI
2676
2677* chore: remove chrome-launcher stubs ([#4945](https://github.com/googlechrome/lighthouse/pull/4945))
2678* output: Add ability to export results to CSV ([#4912](https://github.com/googlechrome/lighthouse/pull/4912))
2679* update documented throttling flags ([#5000](https://github.com/googlechrome/lighthouse/pull/5000))
2680
2681## Core
2682
2683* byte-efficiency: use lantern for opportunity estimates ([#4601](https://github.com/googlechrome/lighthouse/pull/4601))
2684* canonical-audit: allow multiple identical canonical links ([#4973](https://github.com/googlechrome/lighthouse/pull/4973))
2685* category: add manualDescription ([#5100](https://github.com/googlechrome/lighthouse/pull/5100))
2686* computed-artifact: remove requiredNumberOfArtifacts ([#4764](https://github.com/googlechrome/lighthouse/pull/4764))
2687* config: add support for audit/gatherer options ([#4394](https://github.com/googlechrome/lighthouse/pull/4394))
2688* config: remove config.artifacts; always use auditMode ([#4986](https://github.com/googlechrome/lighthouse/pull/4986))
2689* config: clean flags for config settings ([#4960](https://github.com/googlechrome/lighthouse/pull/4960))
2690* config: augment settings/passes with defaults ([#4894](https://github.com/googlechrome/lighthouse/pull/4894))
2691* config: switch to throttling settings object ([#4879](https://github.com/googlechrome/lighthouse/pull/4879))
2692* config: switch to lantern by default, add presets ([#5041](https://github.com/googlechrome/lighthouse/pull/5041))
2693* critical-request-chains: exclude preloaded requests from crc ([#5011](https://github.com/googlechrome/lighthouse/pull/5011))
2694* displayValue: fancier displayValue type ([#5111](https://github.com/googlechrome/lighthouse/pull/5111))
2695* domstats: useIsolation within domstats ([#4811](https://github.com/googlechrome/lighthouse/pull/4811))
2696* driver: add timeout to getRequestContent ([#4718](https://github.com/googlechrome/lighthouse/pull/4718))
2697* emulation: update Chrome userAgent to 66 ([#4779](https://github.com/googlechrome/lighthouse/pull/4779))
2698* estimated-input-latency: use a 5s rolling window ([#4989](https://github.com/googlechrome/lighthouse/pull/4989))
2699* fast-config: bring back a11y & SEO categories ([#4932](https://github.com/googlechrome/lighthouse/pull/4932))
2700* font-size: recalibrate the legible font sizes ([#4550](https://github.com/googlechrome/lighthouse/pull/4550))
2701* http-redirect: drop use of getSecurityState() to gain Android support ([#4661](https://github.com/googlechrome/lighthouse/pull/4661))
2702* image-usage: use min of resourceSize/transferSize ([#4968](https://github.com/googlechrome/lighthouse/pull/4968))
2703* img-usage: handle invalid images within determineNaturalSize ([#4812](https://github.com/googlechrome/lighthouse/pull/4812))
2704* is-crawlable: fix empty row in the details table ([#4820](https://github.com/googlechrome/lighthouse/pull/4820))
2705* is-crawlable: determine if page indexing is blocked by robots.txt ([#4548](https://github.com/googlechrome/lighthouse/pull/4548))
2706* is-on-https: consider about:* secure ([#4749](https://github.com/googlechrome/lighthouse/pull/4749))
2707* lantern: cleanup Simulator construction ([#4910](https://github.com/googlechrome/lighthouse/pull/4910))
2708* lantern: more flexible graph edge creation ([#4933](https://github.com/googlechrome/lighthouse/pull/4933))
2709* lantern: move metrics to computed artifacts ([#4766](https://github.com/googlechrome/lighthouse/pull/4766))
2710* lantern: improve RTT estimates ([#4552](https://github.com/googlechrome/lighthouse/pull/4552))
2711* lantern: use securityOrigin on record ([#5071](https://github.com/googlechrome/lighthouse/pull/5071))
2712* lantern: never exclude main document from graphs ([#5124](https://github.com/googlechrome/lighthouse/pull/5124))
2713* lantern: rename Simulation.Result.nodeTiming to be plural ([#5038](https://github.com/googlechrome/lighthouse/pull/5038))
2714* lhr: eliminate cards and list details ([#4789](https://github.com/googlechrome/lighthouse/pull/4789))
2715* lhr: convert reportCategories to categories object ([#5155](https://github.com/googlechrome/lighthouse/pull/5155))
2716* lhr: support printf displayValues ([#5099](https://github.com/googlechrome/lighthouse/pull/5099))
2717* lhr: rename perf-hint, perf-info, etc ([#5102](https://github.com/googlechrome/lighthouse/pull/5102))
2718* lhr: make reportCategories shallow; move audit scores to AuditResult ([#4711](https://github.com/googlechrome/lighthouse/pull/4711))
2719* lhr: support null scores ([#5128](https://github.com/googlechrome/lighthouse/pull/5128))
2720* lhr: s/initialUrl/requestedUrl, s/url/finalUrl ([#5127](https://github.com/googlechrome/lighthouse/pull/5127))
2721* lhr: s/audits/auditRefs, s/category.name/category.title/ ([#5157](https://github.com/googlechrome/lighthouse/pull/5157))
2722* lhr: strictly numeric scores, add scoreDisplayMode ([#4690](https://github.com/googlechrome/lighthouse/pull/4690))
2723* lhr: move runtime config to report => lhr.configSettings ([#5122](https://github.com/googlechrome/lighthouse/pull/5122))
2724* lhr: remove extendedInfo ([#5160](https://github.com/googlechrome/lighthouse/pull/5160))
2725* lhr: drop informative/manual, moving them to scoreDisplayMode ([#5105](https://github.com/googlechrome/lighthouse/pull/5105))
2726* lhr: overhaul LHR details, introduce details.summary ([#4616](https://github.com/googlechrome/lighthouse/pull/4616))
2727* lhr: remove debugString, add explantion/errorMessage ([#5132](https://github.com/googlechrome/lighthouse/pull/5132))
2728* lhr: s/fetchedAt/fetchTime ([#5112](https://github.com/googlechrome/lighthouse/pull/5112))
2729* lhr: lhr-lite type declaration ([#4983](https://github.com/googlechrome/lighthouse/pull/4983))
2730* lhr: overallSavingsMs, overallSavingsBytes ([#5035](https://github.com/googlechrome/lighthouse/pull/5035))
2731* load-fast-4-pwa: use computed artifacts ([#4981](https://github.com/googlechrome/lighthouse/pull/4981))
2732* main-resource: adjust main resource identification logic ([#4475](https://github.com/googlechrome/lighthouse/pull/4475))
2733* mainthreadwork: multiply by cpuSlowdownMultiplier ([#5126](https://github.com/googlechrome/lighthouse/pull/5126))
2734* metrics: consumable metrics audit output ([#5101](https://github.com/googlechrome/lighthouse/pull/5101))
2735* metrics: move TTCI to computed artifact ([#4943](https://github.com/googlechrome/lighthouse/pull/4943))
2736* metrics: switch to speedIndex from perceptualSpeedIndex ([#4980](https://github.com/googlechrome/lighthouse/pull/4980))
2737* metrics: add lantern speed index ([#4695](https://github.com/googlechrome/lighthouse/pull/4695))
2738* metrics: update lantern coefficients ([#5120](https://github.com/googlechrome/lighthouse/pull/5120))
2739* metrics: move first-interactive to first-cpu-idle ([#4982](https://github.com/googlechrome/lighthouse/pull/4982))
2740* metrics: rename ConsistentlyInteractive -> Interactive ([#5068](https://github.com/googlechrome/lighthouse/pull/5068))
2741* metrics: add lantern EIL ([#5024](https://github.com/googlechrome/lighthouse/pull/5024))
2742* metrics: add FCP metric ([#4948](https://github.com/googlechrome/lighthouse/pull/4948))
2743* metrics: add first CPU idle lantern metric ([#4966](https://github.com/googlechrome/lighthouse/pull/4966))
2744* metrics: move FMP to computed artifact ([#4951](https://github.com/googlechrome/lighthouse/pull/4951))
2745* network-analyzer: more distrustful of chrome connection info ([#4828](https://github.com/googlechrome/lighthouse/pull/4828))
2746* network-recorder: fix typo in once() call on super ([#4926](https://github.com/googlechrome/lighthouse/pull/4926))
2747* response-compression: also check x-original-content-encoding ([#4607](https://github.com/googlechrome/lighthouse/pull/4607))
2748* unify config and CLI settings ([#4849](https://github.com/googlechrome/lighthouse/pull/4849))
2749* network-requests: add resource type ([#4743](https://github.com/googlechrome/lighthouse/pull/4743))
2750* network-requests: add network requests audit ([#4631](https://github.com/googlechrome/lighthouse/pull/4631))
2751* noopener-audit: allow noreferrer as well ([#4920](https://github.com/googlechrome/lighthouse/pull/4920))
2752* opportunities: take max of savings on TTI, load ([#5084](https://github.com/googlechrome/lighthouse/pull/5084))
2753* preconnect: use lantern to compute savings ([#5070](https://github.com/googlechrome/lighthouse/pull/5070))
2754* preload: use lantern to compute savings ([#5062](https://github.com/googlechrome/lighthouse/pull/5062))
2755* redirects: use lantern to compute savings ([#5081](https://github.com/googlechrome/lighthouse/pull/5081))
2756* render-blocking: address followup feedback ([#5039](https://github.com/googlechrome/lighthouse/pull/5039))
2757* render-blocking: handle amp-style stylesheets ([#4555](https://github.com/googlechrome/lighthouse/pull/4555))
2758* runner: split lhr, artifacts return, respect output type ([#4999](https://github.com/googlechrome/lighthouse/pull/4999))
2759* runner: support multiple output modes ([#5154](https://github.com/googlechrome/lighthouse/pull/5154))
2760* runner: add custom folder support to -G/-A ([#4792](https://github.com/googlechrome/lighthouse/pull/4792))
2761* runner: rename generatedTime to fetchedAt ([#4783](https://github.com/googlechrome/lighthouse/pull/4783))
2762* scoring: tweak performance weights ([#5083](https://github.com/googlechrome/lighthouse/pull/5083))
2763* scoring: loosen metric thresholds ([#5092](https://github.com/googlechrome/lighthouse/pull/5092))
2764* scoring: tweak scoring thresholds based on HTTPArchive data ([#5022](https://github.com/googlechrome/lighthouse/pull/5022))
2765* screenshots: align filmstrip to observed metrics ([#4965](https://github.com/googlechrome/lighthouse/pull/4965))
2766* seo: link to "meta description" reference ([#4566](https://github.com/googlechrome/lighthouse/pull/4566))
2767* start_url: fix start_url audit while offline ([#4710](https://github.com/googlechrome/lighthouse/pull/4710))
2768* start-url: use window.location over fetch ([#5159](https://github.com/googlechrome/lighthouse/pull/5159))
2769* tsc: more type checking of top-level audits ([#5089](https://github.com/googlechrome/lighthouse/pull/5089))
2770* tsc: add type checking to dbw audits ([#5069](https://github.com/googlechrome/lighthouse/pull/5069))
2771* tsc: update for new @types/css-font-loading-module ([#5061](https://github.com/googlechrome/lighthouse/pull/5061))
2772* tsc: add type checking to Driver ([#4827](https://github.com/googlechrome/lighthouse/pull/4827))
2773* tsc: add type checking to gather-runner ([#4944](https://github.com/googlechrome/lighthouse/pull/4944))
2774* tsc: add type checking to asset-saver ([#4949](https://github.com/googlechrome/lighthouse/pull/4949))
2775* tsc: add types for DevtoolsLog and NetworkRecorder ([#4918](https://github.com/googlechrome/lighthouse/pull/4918))
2776* tsc: add type defs for Chrome Remote Debugging Protocol ([#4816](https://github.com/googlechrome/lighthouse/pull/4816))
2777* tsc: add type checking to remote protocol commands ([#4914](https://github.com/googlechrome/lighthouse/pull/4914))
2778* tsc: add type checking to fonts gatherer ([#5018](https://github.com/googlechrome/lighthouse/pull/5018))
2779* tsc: add type checking to use of CRDP events ([#4886](https://github.com/googlechrome/lighthouse/pull/4886))
2780* tsc: add type checking to dbw gatherers ([#5005](https://github.com/googlechrome/lighthouse/pull/5005))
2781* tsc: add type checking to most byte efficiency audits ([#5072](https://github.com/googlechrome/lighthouse/pull/5072))
2782* tsc: add type checking of first top-level audits ([#5086](https://github.com/googlechrome/lighthouse/pull/5086))
2783* tsc: fix OptimizedImages type; type check dep audits ([#5129](https://github.com/googlechrome/lighthouse/pull/5129))
2784* tsc: add type checking to seo gatherers ([#4991](https://github.com/googlechrome/lighthouse/pull/4991))
2785* tsc: add type checking to a11y and manual audits ([#5055](https://github.com/googlechrome/lighthouse/pull/5055))
2786* tsc: fix ImageUsage artifact type and gather bug ([#5113](https://github.com/googlechrome/lighthouse/pull/5113))
2787* tsc: add type checking to remaining top-level audits ([#5090](https://github.com/googlechrome/lighthouse/pull/5090))
2788* tsc: add type checking to computed artifacts ([#5051](https://github.com/googlechrome/lighthouse/pull/5051))
2789* tsc: add type checking to runner ([#4961](https://github.com/googlechrome/lighthouse/pull/4961))
2790* tsc: gather type-checking cleanup ([#5019](https://github.com/googlechrome/lighthouse/pull/5019))
2791* tsc: add type checking for seo audits ([#5103](https://github.com/googlechrome/lighthouse/pull/5103))
2792* add type checking to audit and gatherer base classes ([#4762](https://github.com/googlechrome/lighthouse/pull/4762))
2793* tsc: add type checking to many core gatherers ([#4975](https://github.com/googlechrome/lighthouse/pull/4975))
2794* convert diagnostics to numeric scores ([#4778](https://github.com/googlechrome/lighthouse/pull/4778))
2795* remove cache-start-url audit ([#4760](https://github.com/googlechrome/lighthouse/pull/4760))
2796* audit.details features numbers, not strings. introduce itemKey ([#4384](https://github.com/googlechrome/lighthouse/pull/4384))
2797* add default audit options for scores ([#4927](https://github.com/googlechrome/lighthouse/pull/4927))
2798* look up custom gatherer relative to the config file path ([#4751](https://github.com/googlechrome/lighthouse/pull/4751))
2799* add type checking to connection ([#4738](https://github.com/googlechrome/lighthouse/pull/4738))
2800* make url-shim extend native URL module; add type checking ([#4712](https://github.com/googlechrome/lighthouse/pull/4712))
2801* merge render blocking audits to lantern ([#4995](https://github.com/googlechrome/lighthouse/pull/4995))
2802* bump version to 3.0 alpha ([#5082](https://github.com/googlechrome/lighthouse/pull/5082))
2803* de-dupe URLs in is-on-http, uses-http2 ([#4950](https://github.com/googlechrome/lighthouse/pull/4950))
2804* rename uses-request-compression ([#4763](https://github.com/googlechrome/lighthouse/pull/4763))
2805* tti: update ignorable network requests and use FCP ([#5021](https://github.com/googlechrome/lighthouse/pull/5021))
2806* webapp-install: simplify start_url warning when no SW is found ([#5067](https://github.com/googlechrome/lighthouse/pull/5067))
2807
2808## Deps
2809
2810* axe-core: update axe-core to 3.0.0-beta.2 release ([#4595](https://github.com/googlechrome/lighthouse/pull/4595))
2811* browserify: update deep transitive dep to use recent acorn ([#4813](https://github.com/googlechrome/lighthouse/pull/4813))
2812* browserify: bump browserify for async/await ([#4767](https://github.com/googlechrome/lighthouse/pull/4767))
2813* extension: bump browserify version and sub-deps ([#5076](https://github.com/googlechrome/lighthouse/pull/5076))
2814* robots-parser: patch robots-parser to work in browser env ([#4819](https://github.com/googlechrome/lighthouse/pull/4819))
2815* snyk: update snyk snapshot ([#5074](https://github.com/googlechrome/lighthouse/pull/5074))
2816* speedline: use speedline's types instead of our own ([#5078](https://github.com/googlechrome/lighthouse/pull/5078))
2817
2818## Docs
2819
2820* contributing: fix link for closure annotations ([#4680](https://github.com/googlechrome/lighthouse/pull/4680))
2821* headless-chrome: switch to prioritize headless ([#4553](https://github.com/googlechrome/lighthouse/pull/4553))
2822* headless-chrome.md: fix broken link ([#4523](https://github.com/googlechrome/lighthouse/pull/4523))
2823* programmatic: add caveat about removing artifacts ([#4540](https://github.com/googlechrome/lighthouse/pull/4540))
2824* readme: remove ts command for lighthouse-cli dev ([#5088](https://github.com/googlechrome/lighthouse/pull/5088))
2825* readme: Bye Bye Greta ([#5036](https://github.com/googlechrome/lighthouse/pull/5036))
2826* releasing: updates ([fcec593](https://github.com/googlechrome/lighthouse/commit/fcec593))
2827* update docker image id ([f092a8a](https://github.com/googlechrome/lighthouse/commit/f092a8a))
2828* remove dated domhtml reference from README ([#4900](https://github.com/googlechrome/lighthouse/pull/4900))
2829* "LHR" is "Lighthouse Result" ([8861386](https://github.com/googlechrome/lighthouse/commit/8861386))
2830* add html report overview writeup ([#5059](https://github.com/googlechrome/lighthouse/pull/5059))
2831* report: minor fix of markdown link ([#5063](https://github.com/googlechrome/lighthouse/pull/5063))
2832* understanding-results: description can dynamically be the failureDescription ([cc53688](https://github.com/googlechrome/lighthouse/commit/cc53688))
2833
2834## Extension
2835
2836* compilation: add object rest support ([#4954](https://github.com/googlechrome/lighthouse/pull/4954))
2837* tests: add extension pptr smoketest ([#4640](https://github.com/googlechrome/lighthouse/pull/4640))
2838* add checkbox for using Lantern/DevTools throttling ([#5156](https://github.com/googlechrome/lighthouse/pull/5156))
2839* pass flags through to config ([#4936](https://github.com/googlechrome/lighthouse/pull/4936))
2840* use browserify url library ([#4875](https://github.com/googlechrome/lighthouse/pull/4875))
2841* polish the status updates within the popup ([#4780](https://github.com/googlechrome/lighthouse/pull/4780))
2842* fix issue where gatheres cannot be found ([#4592](https://github.com/googlechrome/lighthouse/pull/4592))
2843
2844## Report
2845
2846* bootup-time: fix learn more link ([#4962](https://github.com/googlechrome/lighthouse/pull/4962))
2847* score gauges, metrics display, add rich tooltips ([#5009](https://github.com/googlechrome/lighthouse/pull/5009))
2848* category: enable all categories to show audit groups, refactor CategoryRenderer ([#4278](https://github.com/googlechrome/lighthouse/pull/4278))
2849* final metrics display, icons, whitespace polish ([#5130](https://github.com/googlechrome/lighthouse/pull/5130))
2850* improved text-wrapping ([#5138](https://github.com/googlechrome/lighthouse/pull/5138))
2851* new audit list display, indexes & new icons ([#5109](https://github.com/googlechrome/lighthouse/pull/5109))
2852* error'd audits get 'Error!' treatment ([#5077](https://github.com/googlechrome/lighthouse/pull/5077))
2853* add docs link to bootup-time audit ([#4537](https://github.com/googlechrome/lighthouse/pull/4537))
2854* tweak tooltips ([2993522](https://github.com/googlechrome/lighthouse/commit/2993522))
2855* add auditIds to DOM. update pptr tests to assert against them ([#5058](https://github.com/googlechrome/lighthouse/pull/5058))
2856* rework the DOM of audits ([#5045](https://github.com/googlechrome/lighthouse/pull/5045))
2857* only appendScoreScale to scoreHeader if it exists ([#5040](https://github.com/googlechrome/lighthouse/pull/5040))
2858* move html report from v2/ dir to html/ ([#5034](https://github.com/googlechrome/lighthouse/pull/5034))
2859* audit details not longer collapsible. fixup width and margin ([#5151](https://github.com/googlechrome/lighthouse/pull/5151))
2860* update link to rel=canonical reference ([#4701](https://github.com/googlechrome/lighthouse/pull/4701))
2861* implement new design for opportunities ([#5115](https://github.com/googlechrome/lighthouse/pull/5115))
2862* fix audit description typos ([#4882](https://github.com/googlechrome/lighthouse/pull/4882))
2863* update SEO audit descriptions & links ([#4903](https://github.com/googlechrome/lighthouse/pull/4903))
2864* add jsdoc for lhr.artifacts ([#4859](https://github.com/googlechrome/lighthouse/pull/4859))
2865* new header branding ([#5125](https://github.com/googlechrome/lighthouse/pull/5125))
2866* description: update helpText for document.title audit ([#4677](https://github.com/googlechrome/lighthouse/pull/4677))
2867* font-size, link-text: update docs links ([#4829](https://github.com/googlechrome/lighthouse/pull/4829))
2868* is-crawlable: fix broken learn more link ([#4844](https://github.com/googlechrome/lighthouse/pull/4844))
2869* scores: make sure scores are represented out of 100 ([#4750](https://github.com/googlechrome/lighthouse/pull/4750))
2870* seo: update link to the is-crawlable/indexing reference ([#4678](https://github.com/googlechrome/lighthouse/pull/4678))
2871* table: handle null cells ([#5075](https://github.com/googlechrome/lighthouse/pull/5075))
2872* util: fix formatDuration, add tests ([#5023](https://github.com/googlechrome/lighthouse/pull/5023))
2873
2874## Tests
2875
2876* appeveyor: exclude perf smoketest until flake is fixed. ([#5060](https://github.com/googlechrome/lighthouse/pull/5060))
2877* exclude audit helpText from 'yarn diff:sample-json' assertion ([#4964](https://github.com/googlechrome/lighthouse/pull/4964))
2878* closure: avoid failing closure compilation ([#4737](https://github.com/googlechrome/lighthouse/pull/4737))
2879* closure: fix BSD sed calls within compile-devtools ([#4736](https://github.com/googlechrome/lighthouse/pull/4736))
2880* config: add merge-options test ([#4747](https://github.com/googlechrome/lighthouse/pull/4747))
2881* extension: add reminder about building the extension ([#4902](https://github.com/googlechrome/lighthouse/pull/4902))
2882* fixtures: introduce update-report-fixtures script ([#4793](https://github.com/googlechrome/lighthouse/pull/4793))
2883* smoke: add smoke test code coverage ([#4967](https://github.com/googlechrome/lighthouse/pull/4967))
2884* fix run-smoke handoff of testResults ([#4959](https://github.com/googlechrome/lighthouse/pull/4959))
2885* smokehouse: increase timeout ([#4990](https://github.com/googlechrome/lighthouse/pull/4990))
2886* smokehouse: split pwa2, perf batches ([#4988](https://github.com/googlechrome/lighthouse/pull/4988))
2887* smokehouse: adjust byte efficiency CPU multiplier ([#4809](https://github.com/googlechrome/lighthouse/pull/4809))
2888* smokehouse: retry failed tests ([#5143](https://github.com/googlechrome/lighthouse/pull/5143))
2889* smokehouse: run smoketests in parallel ([#4748](https://github.com/googlechrome/lighthouse/pull/4748))
2890* rename seo test files ([#4853](https://github.com/googlechrome/lighthouse/pull/4853))
2891* bump bundlesize threshold ([#5050](https://github.com/googlechrome/lighthouse/pull/5050))
2892* use nyc instead of istanbul for coverage ([#4919](https://github.com/googlechrome/lighthouse/pull/4919))
2893* node 10 compat ([#5106](https://github.com/googlechrome/lighthouse/pull/5106))
2894* disable compile-devtools on travis ([48792ae](https://github.com/googlechrome/lighthouse/commit/48792ae))
2895* add CI test to confirm sample_v2.json is up to date ([#4956](https://github.com/googlechrome/lighthouse/pull/4956))
2896* split up parallel smoketests into 2 batches ([#4996](https://github.com/googlechrome/lighthouse/pull/4996))
2897* drop port number from dbw_tester for golden lhr ([#5006](https://github.com/googlechrome/lighthouse/pull/5006))
2898* remove unused fixtures ([#5107](https://github.com/googlechrome/lighthouse/pull/5107))
2899* fix cli handling empty runnerResult during gatherMode ([#5052](https://github.com/googlechrome/lighthouse/pull/5052))
2900* viewer: add pptr test for viewer ([#5025](https://github.com/googlechrome/lighthouse/pull/5025))
2901
2902## Misc
2903
2904* codeowners: revert brendan's leave ([#4716](https://github.com/googlechrome/lighthouse/pull/4716))
2905* eslint: add no-floating-decimal (leading zero) rule ([#4893](https://github.com/googlechrome/lighthouse/pull/4893))
2906* eslint: update to es2017 to allow async/await ([#4791](https://github.com/googlechrome/lighthouse/pull/4791))
2907* tsc: reorganize and expose external interfaces ([#4788](https://github.com/googlechrome/lighthouse/pull/4788))
2908* typecheck: add dependency graph to tsc ([#4605](https://github.com/googlechrome/lighthouse/pull/4605))
2909* remove timing from golden lhr ([#5020](https://github.com/googlechrome/lighthouse/pull/5020))
2910* clean *.screenshots.json ([#4754](https://github.com/googlechrome/lighthouse/pull/4754))
2911* drop support of Node 6 ([#4703](https://github.com/googlechrome/lighthouse/pull/4703))
2912* minor whitespace fix on unminified-css audit ([16da670](https://github.com/googlechrome/lighthouse/commit/16da670))
2913
2914 <a name="2.9.1"></a>
2915# 2.9.1 (2018-02-12)
2916[Full Changelog](https://github.com/googlechrome/lighthouse/compare/v2.9.0...v2.9.1)
2917
2918
2919## New Contributors!
2920Thanks to @GaryJones for [helping us spel gud](https://github.com/GoogleChrome/lighthouse/pull/4485)!
2921
2922
2923## Core
2924
2925* REVERT: gather-runner: load a blank data URI, rather than about:blank ([#4518](https://github.com/googlechrome/lighthouse/pull/4518))
2926* fonts: fix infinite loop ([#4488](https://github.com/googlechrome/lighthouse/pull/4488))
2927* responsive-images: move images with no dimensions to offscreen audit ([#4487](https://github.com/googlechrome/lighthouse/pull/4487))
2928* tracing-processor: fix scheduleable task logic ([#4480](https://github.com/googlechrome/lighthouse/pull/4480))
2929* webfonts: patch fonts gatherer to handle missing font item ([#4465](https://github.com/googlechrome/lighthouse/pull/4465))
2930* computed-artifact: use deep equality over strict ([#4409](https://github.com/googlechrome/lighthouse/pull/4409))
2931
2932## Docs & Tests
2933
2934* docs: examples of combining puppeteer & lighthouse ([#4408](https://github.com/googlechrome/lighthouse/pull/4408))
2935* appveyor: quietly unzip Chrome to keep appveyor logs cleaner ([ecedb32](https://github.com/googlechrome/lighthouse/commit/ecedb32))
2936* appveyor: only run tests against master and PRs ([#4484](https://github.com/googlechrome/lighthouse/pull/4484))
2937* smokehouse: improve smokehouse failure output ([#4482](https://github.com/googlechrome/lighthouse/pull/4482))
2938* spelling: fix discernable to discernible ([#4485](https://github.com/googlechrome/lighthouse/pull/4485))
2939
2940
2941 <a name="2.9.0"></a>
2942# 2.9.0 (2018-02-08)
2943[Full Changelog](https://github.com/googlechrome/lighthouse/compare/v2.8.0...v2.9.0)
2944
2945## New Contributors!
2946Thanks to @FadySamirSadek, @christhompson and @rupesh1 for their first contributions! Awesome stuff.
2947
2948
2949## New Audits
2950
2951* mixed-content https upgradeability ([#3953](https://github.com/googlechrome/lighthouse/pull/3953))
2952* preload: Adding `<link rel=preload>` audit ([#3450](https://github.com/googlechrome/lighthouse/pull/3450))
2953* font-display: Recommend `font-display: optional` ([#3831](https://github.com/googlechrome/lighthouse/pull/3831))
2954
2955## CLI
2956
2957* Add `--extra-headers`: Enable sending additional HTTP Headers ([#3732](https://github.com/googlechrome/lighthouse/pull/3732))
2958* Add `--mixed-content`: triggers the mixed content audit ([#4441](https://github.com/googlechrome/lighthouse/pull/4441))
2959
2960## Core
2961
2962* centralize error strings ([#4280](https://github.com/googlechrome/lighthouse/pull/4280))
2963* gather-runner: load a branded data URI, rather than `about:blank` ([#4310](https://github.com/googlechrome/lighthouse/pull/4310))
2964* mobile-friendly: convey MFT covers add'l mobile-friendly auditing ([#4307](https://github.com/googlechrome/lighthouse/pull/4307))
2965* response-compression: Exclude binary files from auditing ([#4144](https://github.com/googlechrome/lighthouse/pull/4144))
2966* screenshot-thumbnails: increase size to 120px ([#4383](https://github.com/googlechrome/lighthouse/pull/4383))
2967* start-url: switch to plain old fetch ([#4301](https://github.com/googlechrome/lighthouse/pull/4301))
2968* unminified-js: add tolerant option to esprima ([#4338](https://github.com/googlechrome/lighthouse/pull/4338))
2969* a11y: aXe perf: only collect provided resultTypes ([#4380](https://github.com/googlechrome/lighthouse/pull/4380))
2970
2971## Deps
2972
2973* bump metaviewport-parser to 0.2.0 ([#4382](https://github.com/googlechrome/lighthouse/pull/4382))
2974* snyk: update snyk snapshot ([#4439](https://github.com/googlechrome/lighthouse/pull/4439))
2975
2976## Misc
2977
2978* coverage: minimize impact of timeout due to istanbul's instrumentation ([#4396](https://github.com/googlechrome/lighthouse/pull/4396))
2979* escape usage of '#' in data URIs ([#4381](https://github.com/googlechrome/lighthouse/pull/4381))
2980* package: scripts don't require "--" for options to be forwarded ([#4437](https://github.com/googlechrome/lighthouse/pull/4437))
2981* sentry: update sampled errors list ([#4277](https://github.com/googlechrome/lighthouse/pull/4277))
2982* travis: Only build on Node 6 for PRs. Don't do the `push` build for non-master. ([af8dbd0](https://github.com/googlechrome/lighthouse/commit/af8dbd0))
2983* Extension: Fix scrollbar from showing on Options page ([#4263](https://github.com/googlechrome/lighthouse/pull/4263))
2984
2985 <a name="2.8.0"></a>
2986# 2.8.0 (2018-01-12)
2987[Full Changelog](https://github.com/googlechrome/lighthouse/compare/v2.7.0...v2.8.0)
2988
2989## New Contributors!
2990Thanks to @jianzhoufeng and @nhodges for their first contributions!
2991
2992## New Audits
2993
2994* avoid plugins ([#4218](https://github.com/googlechrome/lighthouse/pull/4218))
2995* rel canonical: document has a valid rel=canonical ([#4163](https://github.com/googlechrome/lighthouse/pull/4163))
2996* unminified-css: identifies savings from unminified CSS ([#4127](https://github.com/googlechrome/lighthouse/pull/4127))
2997* unminified-javascript: detect savings from minifcation ([#3950](https://github.com/googlechrome/lighthouse/pull/3950))
2998* manual SEO audits (structured data & mobile friendly) ([#4108](https://github.com/googlechrome/lighthouse/pull/4108))
2999
3000## Core
3001
3002* lifecycle: allow gathering & auditing to run separately ([#3743](https://github.com/googlechrome/lighthouse/pull/3743))
3003* gather-runner: covert assertPageLoaded into soft failure ([#4048](https://github.com/googlechrome/lighthouse/pull/4048))
3004* network-recorder: use findNetworkQuietPeriods for networkIdle ([#4102](https://github.com/googlechrome/lighthouse/pull/4102))
3005* report-generator: extract scoring into separate module ([#4161](https://github.com/googlechrome/lighthouse/pull/4161))
3006* screenshots: fix getParsedImage of null ([#4189](https://github.com/googlechrome/lighthouse/pull/4189))
3007* trace-of-tab: error when TracingStartedInPage is missing ([#4164](https://github.com/googlechrome/lighthouse/pull/4164))
3008* errors-in-console: If exception info is not present use exception text ([#4191](https://github.com/googlechrome/lighthouse/pull/4191))
3009* estimated-input-latency: remove target reference ([#4069](https://github.com/googlechrome/lighthouse/pull/4069))
3010* bootup-time: Add 10ms threshold to bootup-time audits ([#4223](https://github.com/googlechrome/lighthouse/pull/4223))
3011* font-size: make font size artifact serializable ([#4194](https://github.com/googlechrome/lighthouse/pull/4194))
3012
3013## Report
3014
3015* a11y: Don't count non-applicable a11y audits toward score ([#4052](https://github.com/googlechrome/lighthouse/pull/4052))
3016* more attractive table/URL rendering ([#4190](https://github.com/googlechrome/lighthouse/pull/4190))
3017* improve devtools dark mode rendering ([#4232](https://github.com/googlechrome/lighthouse/pull/4232))
3018* categories: performance first, then pwa, then the others ([#4095](https://github.com/googlechrome/lighthouse/pull/4095))
3019* grammar: do not finalize audit titles with a period ([c5f6d05](https://github.com/googlechrome/lighthouse/commit/c5f6d05))
3020* change 'app' => 'web app' ([29eecce](https://github.com/googlechrome/lighthouse/commit/29eecce))
3021* Update vulnerability links ([#4198](https://github.com/googlechrome/lighthouse/pull/4198))
3022
3023## Deps
3024
3025* bump js-library-detector ([#4086](https://github.com/googlechrome/lighthouse/pull/4086))
3026* chrome-launcher: Upgrade chrome-launcher to 0.10.2 ([#4192](https://github.com/googlechrome/lighthouse/pull/4192))
3027
3028## Docs
3029
3030* readme: update CLI options, output examples. add GAR/Lifecycle examples ([#4185](https://github.com/googlechrome/lighthouse/pull/4185))
3031* readme: demo flags in example of programmatic use ([#3841](https://github.com/googlechrome/lighthouse/pull/3841))
3032* lantern: update accuracy data ([#4180](https://github.com/googlechrome/lighthouse/pull/4180))
3033* extract Release Guide into own docs file ([#4200](https://github.com/googlechrome/lighthouse/pull/4200))
3034* releasing: document the LH Release Process ([#4201](https://github.com/googlechrome/lighthouse/pull/4201))
3035* results: describe audit's notApplicable/error ([#4186](https://github.com/googlechrome/lighthouse/pull/4186))
3036
3037## Extension
3038
3039* extract a new ext-bg file, splitting extn/devtools usecases ([#4162](https://github.com/googlechrome/lighthouse/pull/4162))
3040
3041## Tests
3042
3043* remove global timeout, set timeouts individually ([#4224](https://github.com/googlechrome/lighthouse/pull/4224))
3044* trace-parser: use fs over require ([#4209](https://github.com/googlechrome/lighthouse/pull/4209))
3045* travis: force use of GCE, remove dSE calls ([#4222](https://github.com/googlechrome/lighthouse/pull/4222))
3046* travis: remove upload artifacts ([#4219](https://github.com/googlechrome/lighthouse/pull/4219))
3047* travis: test on Node 9, drop testing on Node 7 ([#4181](https://github.com/googlechrome/lighthouse/pull/4181))
3048
3049## Misc
3050
3051* remove CLI's legacy domhtml output ([#4176](https://github.com/googlechrome/lighthouse/pull/4176))
3052* viewer: retain /plots/ when deploying new viewer version ([#4079](https://github.com/googlechrome/lighthouse/pull/4079))
3053
3054
3055 <a name="2.7.0"></a>
3056# 2.7.0 (2017-12-14)
3057[Full Changelog](https://github.com/googlechrome/lighthouse/compare/v2.6.0...v2.7.0)
3058
3059## New Contributors!
3060Thanks to @sanjsanj, @dennismartensson, @daannijkamp, @crimeminister!
3061
3062## New Audits
3063
3064* accessibility: add accessibility manual audits ([#3834](https://github.com/googlechrome/lighthouse/pull/3834))
3065* font-size: legible font sizes audit ([#3533](https://github.com/googlechrome/lighthouse/pull/3533))
3066* hreflang: document has a valid hreflang code ([#3815](https://github.com/googlechrome/lighthouse/pull/3815))
3067
3068## CLI
3069
3070* compile out remaining typescript; add tsc type checking via jsdocs ([#3747](https://github.com/googlechrome/lighthouse/pull/3747))
3071* sentry: handle configstore errors; don't enabling error reporting ([#3878](https://github.com/googlechrome/lighthouse/pull/3878))
3072
3073## Core
3074
3075* config: show SEO audits in the UI ([#4057](https://github.com/googlechrome/lighthouse/pull/4057))
3076* critical-request-chains: corrected help text ([#4009](https://github.com/googlechrome/lighthouse/pull/4009))
3077* devtools-timeline-model: extract model generation to a computed artifact... ([46f6d2a](https://github.com/googlechrome/lighthouse/commit/46f6d2a))
3078* driver: add driver.wsEndpoint() ([#3864](https://github.com/googlechrome/lighthouse/pull/3864))
3079* gather-runner: fix headless chrome UA check ([#4019](https://github.com/googlechrome/lighthouse/pull/4019))
3080* noopener-audit: Only test http/https links ([#4036](https://github.com/googlechrome/lighthouse/pull/4036))
3081* optimized-images: skip mismatched mimeTypes ([#4045](https://github.com/googlechrome/lighthouse/pull/4045))
3082* seo: consistent help text links ([#3901](https://github.com/googlechrome/lighthouse/pull/3901))
3083* uses-webp: tweak text to be more next-gen focused ([#3985](https://github.com/googlechrome/lighthouse/pull/3985))
3084* vulnerable-libs: add fix for recovering from bad versions ([#3932](https://github.com/googlechrome/lighthouse/pull/3932))
3085* web-inspector: keep all experiments disabled, fixing conflict when running in DevTools ([#4010](https://github.com/googlechrome/lighthouse/pull/4010))
3086
3087## Deps
3088
3089* Bump ws to 3.3.2 ([#3949](https://github.com/googlechrome/lighthouse/pull/3949))
3090
3091## Docs
3092
3093* error-reporting: improve clarity for opt-out folks ([#3876](https://github.com/googlechrome/lighthouse/pull/3876))
3094* add lantern accuracy data ([#3826](https://github.com/googlechrome/lighthouse/pull/3826))
3095* fox mobile device testing example ([#3887](https://github.com/googlechrome/lighthouse/pull/3887))
3096* readme: Add Greta Lighthouse to list of Integrations ([#4031](https://github.com/googlechrome/lighthouse/pull/4031))
3097
3098## Report
3099
3100* perf-audits: adjust presentation of runtime cost audits ([#4020](https://github.com/googlechrome/lighthouse/pull/4020))
3101* warnings: warn only if using an old headless ([#4021](https://github.com/googlechrome/lighthouse/pull/4021))
3102
3103## Tests
3104
3105* smokehouse: adopt URLSearchParams for querystring manipulation ([#3941](https://github.com/googlechrome/lighthouse/pull/3941))
3106
3107## Misc
3108
3109* changelog: tweaks to changelog template and instructions ([#3849](https://github.com/googlechrome/lighthouse/pull/3849))
3110* changelog: minor changelog generation usability bumps ([#3847](https://github.com/googlechrome/lighthouse/pull/3847))
3111* codeowners: represent brendan's leave ([#3991](https://github.com/googlechrome/lighthouse/pull/3991))
3112* error-reporting: report unhandled promise rejections, take 2 ([#3930](https://github.com/googlechrome/lighthouse/pull/3930))
3113* error-reporting: tweak sentry levels and ignore list ([#3890](https://github.com/googlechrome/lighthouse/pull/3890))
3114* error-reporting: report unhandled promise rejections ([#3886](https://github.com/googlechrome/lighthouse/pull/3886))
3115* Update wording ([6036117](https://github.com/googlechrome/lighthouse/commit/6036117))
3116
3117 <a name="2.6.0"></a>
3118# 2.6.0 (2017-11-18)
3119[Full Changelog](https://github.com/googlechrome/lighthouse/compare/v2.5.1...v2.6.0)
3120
3121## New Contributors!
3122@peterjanes, @stevector, @AkshayIyer12, @manekinekko, @alekseykulikov, @coliff, @emazzotta
3123
3124## New Audits
3125
3126* `redirects`: avoid page redirects ([#3308](https://github.com/googlechrome/lighthouse/pull/3308))
3127* `link-text`: descriptive anchor text audit ([#3490](https://github.com/googlechrome/lighthouse/pull/3490))
3128* `is-crawlable`: page is blocked from indexing ([#3657](https://github.com/googlechrome/lighthouse/pull/3657))
3129* `bootup-time`: JS bootup time per script ([#3563](https://github.com/googlechrome/lighthouse/pull/3563))
3130* `uses-long-cache-ttl`: detects savings from leveraging caching ([#3531](https://github.com/googlechrome/lighthouse/pull/3531))
3131* `mainthread-work-breakdown`: audit for page-execution timings ([#3520](https://github.com/googlechrome/lighthouse/pull/3520))
3132
3133## CLI
3134
3135* do not double quote `chromeFlags` ([#3775](https://github.com/googlechrome/lighthouse/pull/3775))
3136
3137## Core
3138
3139* `aspect-ratio`: skip aspect ratio audit for svg ([#3722](https://github.com/googlechrome/lighthouse/pull/3722))
3140* audit: Ignore `href=javascript:.*` for `rel=noopener` audit ([#3574](https://github.com/googlechrome/lighthouse/pull/3574))
3141* bootup-time: refactor task/group iteration ([33b1574](https://github.com/googlechrome/lighthouse/commit/33b1574))
3142* config: add silent seo audits to default config ([#3582](https://github.com/googlechrome/lighthouse/pull/3582))
3143* config: re-weight a11y scores based on severity and frequency ([#3515](https://github.com/googlechrome/lighthouse/pull/3515))
3144* config: add category weight to perf config ([#3529](https://github.com/googlechrome/lighthouse/pull/3529))
3145* `critical-request-chains`: Remove iframe as Critical Request ([#3583](https://github.com/googlechrome/lighthouse/pull/3583))
3146* `dependency-graph`: add acyclic check ([#3592](https://github.com/googlechrome/lighthouse/pull/3592))
3147* `devtools-model`: fix missing `Runtime.experiments` object ([#3514](https://github.com/googlechrome/lighthouse/pull/3514))
3148* driver: increase default timeout to 45s ([#3741](https://github.com/googlechrome/lighthouse/pull/3741))
3149* driver: use execution context isolation when necessary ([#3500](https://github.com/googlechrome/lighthouse/pull/3500))
3150* emulation: remove use of deprecated `Emulation.setVisibleSize` ([#3536](https://github.com/googlechrome/lighthouse/pull/3536))
3151* `errors-in-console`: include runtime exceptions ([#3494](https://github.com/googlechrome/lighthouse/pull/3494))
3152* `image-aspect-ratio`: pass audit when no images are missized ([#3552](https://github.com/googlechrome/lighthouse/pull/3552))
3153* `image-usage`: add null check for parentElement ([#3779](https://github.com/googlechrome/lighthouse/pull/3779))
3154* add error reporting (CLI only) ([#2420](https://github.com/googlechrome/lighthouse/pull/2420))
3155* meta tag gatherers: meta tag search should be case-insensitive ([#3729](https://github.com/googlechrome/lighthouse/pull/3729))
3156* `predictive-perf`: predict FCP ([#3730](https://github.com/googlechrome/lighthouse/pull/3730))
3157* `predictive-perf`: refactor simulation logic ([#3489](https://github.com/googlechrome/lighthouse/pull/3489))
3158* `response-compression`: add transferSize sanity check ([#3606](https://github.com/googlechrome/lighthouse/pull/3606))
3159* record top-level warnings in LHR and display in report ([#3692](https://github.com/googlechrome/lighthouse/pull/3692))
3160* remove useless `optimalValue` ([#3774](https://github.com/googlechrome/lighthouse/pull/3774))
3161* `speed-index`: only compute perceptual speed index ([#3845](https://github.com/googlechrome/lighthouse/pull/3845))
3162* tags blocking first-paint: exclude script type=module ([#3676](https://github.com/googlechrome/lighthouse/pull/3676))
3163
3164## Docs
3165
3166* `changelog-generator`: Generate changelogs ([#3632](https://github.com/googlechrome/lighthouse/pull/3632))
3167* scoring: create documentation on scoring ([#3436](https://github.com/googlechrome/lighthouse/pull/3535))
3168* `bug-labels.md`: Create bug-labels.md ([#3522](https://github.com/googlechrome/lighthouse/pull/3535), [#3525](https://github.com/googlechrome/lighthouse/pull/3525), [#3535](https://github.com/googlechrome/lighthouse/pull/3535))
3169* contributing: pr title guidelines ([#3590](https://github.com/googlechrome/lighthouse/pull/3590))
3170* correct capitalization of GitHub ([#3669](https://github.com/googlechrome/lighthouse/pull/3669))
3171* add results object explainer ([#3495](https://github.com/googlechrome/lighthouse/pull/3495))
3172* `new-audits.md`: Principles and guidance for new audits ([#3617](https://github.com/googlechrome/lighthouse/pull/3617))
3173* readme: add MagicLight WebBLE integration ([#3613](https://github.com/googlechrome/lighthouse/pull/3613))
3174* readme: add Treo to the list of integrations ([#3484](https://github.com/googlechrome/lighthouse/pull/3484))
3175* throttling: because `comcast` throttles the websocket ([bedb9a1](https://github.com/googlechrome/lighthouse/commit/bedb9a1))
3176
3177## Report
3178
3179* Add print summary and print expanded options ([#3578](https://github.com/googlechrome/lighthouse/pull/3578))
3180* `image-aspect-ratio`: fix audit description ([#3843](https://github.com/googlechrome/lighthouse/pull/3843))
3181* redirects: reformat results, incl all requests and wasted time, ([#3492](https://github.com/googlechrome/lighthouse/pull/3492))
3182* `render-blocking-stylesheets`: improve actionability of helpText ([#3544](https://github.com/googlechrome/lighthouse/pull/3544))
3183
3184## Tests
3185
3186* update `eslint` (and goog config) to latest ([#3396](https://github.com/googlechrome/lighthouse/pull/3396))
3187* `eslint`: use `--quiet` flag rather than `--silent` ([#3491](https://github.com/googlechrome/lighthouse/pull/3491))
3188* smokehouse: add long task to `byte-efficiency` tester to deflake appveyor ([#3804](https://github.com/googlechrome/lighthouse/pull/3804))
3189* smokehouse: disable multiple shadow root deprecation test ([#3695](https://github.com/googlechrome/lighthouse/pull/3695))
3190* smokehouse: Passive event listener violation doesn't report on passive:false now ([#3498](https://github.com/googlechrome/lighthouse/pull/3498))
3191* `web-inspector`: add test for `setImmediate` polyfill ([#3670](https://github.com/googlechrome/lighthouse/pull/3670))
3192
3193## Misc
3194
3195* codereview: add CODEOWNERS file ([#3591](https://github.com/googlechrome/lighthouse/pull/3591))
3196* Bump `chrome-launcher` to 0.8.1 ([#3479](https://github.com/googlechrome/lighthouse/pull/3479))
3197* web-inspector: fall back to page's `Runtime` and `queryParam()` ([#3497](https://github.com/googlechrome/lighthouse/pull/3497))
3198* use undated Apache 2 LICENSE file ([#3700](https://github.com/googlechrome/lighthouse/pull/3700))
3199* audits: removed unused audit `meta.category` ([#3554](https://github.com/googlechrome/lighthouse/pull/3554))
3200* changelog: add commitlint config (for commitlintbot) ([21e25aa](https://github.com/googlechrome/lighthouse/commit/21e25aa))
3201* `commitizen`: new-audit => new_audit ([#3534](https://github.com/googlechrome/lighthouse/pull/3534))
3202* jsconfig: Enable type checking for JavaScript ([#3589](https://github.com/googlechrome/lighthouse/pull/3589))
3203* logos: provide svg logo as png ([8b3d7f0](https://github.com/googlechrome/lighthouse/commit/8b3d7f0))
3204* Fix minor grammatical error ([#3638](https://github.com/googlechrome/lighthouse/pull/3638))
3205* add `cz-customizable` to establish a commit message convention ([#3499](https://github.com/googlechrome/lighthouse/pull/3499))
3206* typo: fix typo in `image-aspect-ratio` audit ([#3513](https://github.com/googlechrome/lighthouse/pull/3513))
3207
3208<a name="2.5.1"></a>
3209# 2.5.1 (2017-10-06)
3210[Full Changelog](https://github.com/GoogleChrome/lighthouse/compare/v2.5.0...v2.5.1)
3211
3212* Fix compat with DevTools via Runtime mock object
3213
3214<a name="2.5.0"></a>
3215# 2.5.0 (2017-10-04)
3216[Full Changelog](https://github.com/GoogleChrome/lighthouse/compare/v2.4.0...v2.5.0)
3217
3218## New Contributors!
3219* Huge contributions from new contributors with all-new audits, Chrome launching improvements, and more complete documentation. Thanks to @mikecardwell, @rviscomi, @siddharthkp, @ThisIzKp, @rootulp, @kdzwinel, @LCartwright, @siteriaitaliana, @vinamratasingal, @alanyin0322, and @tkadlec!
3220
3221## New audits
3222* `image-aspect-ratio` best practice audit (#3084)
3223* `time-to-first-byte` perf audit (last fixes and now enabled) (#2231)
3224* `errors-in-console` best practice audit (#2836)
3225* `no-vulnerable-libraries` best practice audit (#2372)
3226
3227### New audits in [full-config](https://github.com/GoogleChrome/lighthouse/blob/master/lighthouse-core/config/full-config.js)
3228* `unused-javascript` coverage audit (#3085)
3229
3230### New audits in new [SEO config](https://github.com/GoogleChrome/lighthouse/blob/master/lighthouse-core/config/seo.js) (#2999)
3231* `meta-description` SEO audit (#3227)
3232* `http-status-code` SEO audit (#3311)
3233
3234## [FastMode](https://github.com/GoogleChrome/lighthouse/issues/2703)
3235* add `predictive-perf` shell and base audit (#2720, #3189)
3236* add network estimation (#3187, cf5638d6)
3237* add CPU estimation (#3162, 18837dad, 5b459a1e)
3238
3239## Core
3240* update `unused-css-rules` audit to support new coverage format (full-config only) (#2518)
3241* perf: use `Audits.getEncodedResponse` in `optimized-images` audit (#3087)
3242* don't wait for `Page.navigate` to resolve to listen for page load (#3413)
3243* include `v8.execute` trace event category (ab6aabde)
3244
3245## Report
3246* clarify wording of category descriptions (#3000)
3247* add a linked-text type to details renderer (#3165)
3248* fix: tame greedy markdown-link regex (#3312)
3249* fix: prevent `\u2028` and `\u2029` from breaking the report (#3442)
3250* improve descriptions for a11y audits (#3474)
3251
3252## Testing
3253* smokehouse: adjust `unused-css-rules` audit expectations (#3036)
3254* bundlesize: fix reporting in github UI (ede05c0a, #3392)
3255* smokehouse: add basic smoke test for SEO audits (#3267)
3256* travis: unset `\_JAVA_OPTIONS` for DevTools' `compile_frontend.py` test (#3354)
3257* eslint: enable `comma-dangle` rule, fix all new errors (#3324)
3258* smokehouse: add `time-to-first-byte` smoke test (#3310)
3259
3260## Docs
3261* import [audit glossary](https://github.com/GoogleChrome/lighthouse/blob/190b8abb9c39d469c09aa167e6a72fa9e01740d1/docs/architecture.md#components--terminology) from SEO doc (#3207)
3262* add [advanced throttling guide](https://github.com/GoogleChrome/lighthouse/blob/190b8abb9c39d469c09aa167e6a72fa9e01740d1/docs/throttling.md) (#3205)
3263* readme: reduce minimum Chrome version to current stable (#3287, 5382f37c)
3264* readme: add explanation for [Lighthouse Integrations](https://github.com/GoogleChrome/lighthouse/blob/190b8abb9c39d469c09aa167e6a72fa9e01740d1/readme.md#lighthouse-integrations) section (#3418)
3265contributing.md: fix grammatical errors (#3419)
3266
3267## CLI
3268* add [`blockedUrlPatterns` support to CLI](https://github.com/GoogleChrome/lighthouse/blob/190b8abb9c39d469c09aa167e6a72fa9e01740d1/readme.md#cli-options) (#3125)
3269* adopt `yargsParser` directly for `chromeFlags` parsing (#3408)
3270
3271## Chrome-launcher
3272_chrome-launcher has moved to a [standalone npm package](https://npmjs.org/package/chrome-launcher)_
3273* docs: add changelog (#2987)
3274* improve `SIGINT` handling (#2959)
3275* mute audio (#3028)
3276* rev to 0.6.0 (ec38bcd9, 970d3cad, e9d569c5, 5e9a3aba)
3277* handle errors inside `spawnPromise` (#2939)
3278* switch to using standalone package (#3410)
3279
3280## Misc
3281* apply small license header to remaining files (#3309)
3282* fix: remove redundant `lighthouse-logger/` from npm package (#3411)
3283* remove old `perfX` code (#3431)
3284* update plots-config to use newer quiet parameters (#3464)
3285* collect even malformed error messages in extension (#3473)
3286
3287## Deps
3288* upgrade `bundlesize` to 0.13.2 (#3122)
3289* upgrade `axe-core` to 2.4.1 (#3284, #3320)
3290* upgrade `ws` to 1.1.2 (2d2206b8)
3291* add yargs-parser at 7.0.0 (#3477, #3478)
3292
3293<a name="2.4.0"></a>
3294# 2.4.0 (2017-08-14)
3295[Full Changelog](https://github.com/GoogleChrome/lighthouse/compare/v2.3.0...v2.4.0)
3296
3297## Core
3298* Refactor error throwing from assertPageLoaded (#2785) ([07817f9](https://github.com/GoogleChrome/lighthouse/commit/07817f9))
3299* refactor: cleanup unused waitFor properties (#2716) ([9d8a32f](https://github.com/GoogleChrome/lighthouse/commit/9d8a32f))
3300* All audits must specify helpText and failureDescription (#2737) ([db3f324](https://github.com/GoogleChrome/lighthouse/commit/db3f324))
3301* "shrink-to-fit" property in "viewport" meta is no longer invalid (#2863) ([e1a04dd](https://github.com/GoogleChrome/lighthouse/commit/e1a04dd))
3302* driver: add compat comment on PerfObserver GC bug ([d7ffec1](https://github.com/GoogleChrome/lighthouse/commit/d7ffec1))
3303* emulation comment: can remove injectedTouchEventsFunction in October (#2889) ([a6b71c9](https://github.com/GoogleChrome/lighthouse/commit/a6b71c9))
3304* Ignoring other extension assets in request compression audit (#2733) ([428f637](https://github.com/GoogleChrome/lighthouse/commit/428f637))
3305* fix(anchors-with-no-rel): ignore same origin links (#2749) ([78ec647](https://github.com/GoogleChrome/lighthouse/commit/78ec647))
3306* add flag to FMP to indicate if it fell back to FMP candidate (#2851) ([46d9ba7](https://github.com/GoogleChrome/lighthouse/commit/46d9ba7))
3307* fix(script-blocking-first-paint): ignore latent resources (#2721) ([ac99084](https://github.com/GoogleChrome/lighthouse/commit/ac99084))
3308* Include version and commit in lighthouse-background.js bundle (#2236) ([7fe3574](https://github.com/GoogleChrome/lighthouse/commit/7fe3574))
3309
3310
3311## Report
3312* link all a11y audits to 2.2 aXe docs (#2709) ([924e1f1](https://github.com/GoogleChrome/lighthouse/commit/924e1f1))
3313* Update consistently-interactive.js helpText (#2740) ([6f7bf29](https://github.com/GoogleChrome/lighthouse/commit/6f7bf29))
3314* Update first-interactive.js helpText (#2739) ([a829811](https://github.com/GoogleChrome/lighthouse/commit/a829811))
3315* Report: add lighthouse query param to axe helpText links (#2767) ([4b9cbb5](https://github.com/GoogleChrome/lighthouse/commit/4b9cbb5))
3316* Report: Close export dropdown when printing (#2914) ([a45ece8](https://github.com/GoogleChrome/lighthouse/commit/a45ece8)), closes [#2914](https://github.com/GoogleChrome/lighthouse/issues/2914)
3317* report: draw metric lines over the screenshots. (#2848) ([5832761](https://github.com/GoogleChrome/lighthouse/commit/5832761))
3318* fix(report): proper arrow state and consistent capitalization (#2750) ([7c461bf](https://github.com/GoogleChrome/lighthouse/commit/7c461bf))
3319
3320## Testing
3321* testing: prune smokehouse configs to improve testing perf (#2732) ([e72483b](https://github.com/GoogleChrome/lighthouse/commit/e72483b))
3322
3323## CLI
3324* Fix: Basic chrome-flags parsing for embedded quotes (#2754) ([78a8bd7](https://github.com/GoogleChrome/lighthouse/commit/78a8bd7))
3325* Add hostname CLI flag and option for CriConnection (#2728) ([0455283](https://github.com/GoogleChrome/lighthouse/commit/0455283)), closes [GoogleChrome/lighthouse#2727](https://github.com/GoogleChrome/lighthouse/issues/2727)
3326
3327## Chrome launcher
3328* launcher: clarify priority of chromePath options ([494f991](https://github.com/GoogleChrome/lighthouse/commit/494f991))
3329* chrome-launcher: add support for finding Chromium on Linux (#2950) ([1c11021](https://github.com/GoogleChrome/lighthouse/commit/1c11021))
3330* launcher: support enabling extension loading (#2650) ([c942d17](https://github.com/GoogleChrome/lighthouse/commit/c942d17))
3331* [chrome-launcher] Publish type definitions instead of source TypeScript files (#2898) ([391e204](https://github.com/GoogleChrome/lighthouse/commit/391e204))
3332
3333## Misc
3334* Lowercase fix for "service worker" (#2729) ([15068bd](https://github.com/GoogleChrome/lighthouse/commit/15068bd)), closes [#2729](https://github.com/GoogleChrome/lighthouse/issues/2729)
3335* open extension's report in new window. (fix for incognito) (#2734) ([934aa42](https://github.com/GoogleChrome/lighthouse/commit/934aa42)), closes [#2734](https://github.com/GoogleChrome/lighthouse/issues/2734)
3336* pass --enable-extensions on from manual-chrome-launcher (#2735) ([37fd38c](https://github.com/GoogleChrome/lighthouse/commit/37fd38c))
3337* Update lighthouse-logger location in readme (#2867) ([1347b15](https://github.com/GoogleChrome/lighthouse/commit/1347b15))
3338* readme: added CHROME_PATH description from CLI help (#2757) ([af003d4](https://github.com/GoogleChrome/lighthouse/commit/af003d4))
3339* readme: update example using deprecated `LIGHTHOUSE_CHROMIUM_PATH` (#2929) ([de408ad](https://github.com/GoogleChrome/lighthouse/commit/de408ad))
3340* docs: Add a changelog.md (#2986) ([626ce68](https://github.com/GoogleChrome/lighthouse/commit/626ce68))
3341* Viewer: log expected URL (#2724) ([6478f15](https://github.com/GoogleChrome/lighthouse/commit/6478f15))
3342* Fix eslint max length in github-api.js (#2730) ([1ca40de](https://github.com/GoogleChrome/lighthouse/commit/1ca40de)), closes [#2730](https://github.com/GoogleChrome/lighthouse/issues/2730)
3343* add license file to launcher package. (#2849) ([8bc6d18](https://github.com/GoogleChrome/lighthouse/commit/8bc6d18))
3344* Add license to lighthouse-logger. (#2846) ([367ea7a](https://github.com/GoogleChrome/lighthouse/commit/367ea7a))
3345* Clarification of hasOfflineStartUrl rule (#2775) ([7097d5c](https://github.com/GoogleChrome/lighthouse/commit/7097d5c))
3346* gulpfile. add commented out lines for sourcemap generation. ([6f53ab9](https://github.com/GoogleChrome/lighthouse/commit/6f53ab9))
3347
3348
3349<a name="2.3.0"></a>
3350# 2.3.0 (2017-07-20)
3351[Full Changelog](https://github.com/GoogleChrome/lighthouse/compare/v2.2.0...v2.3.0)
3352
3353* test: fix clang-format error (#2691) ([fedc76a](https://github.com/GoogleChrome/lighthouse/commit/fedc76a)), closes [#2691](https://github.com/GoogleChrome/lighthouse/issues/2691)
3354* test(format-helpers): TZ independent check (#2653) ([56e8f9b](https://github.com/GoogleChrome/lighthouse/commit/56e8f9b))
3355* add bundlesize to track our build size (#2676) ([5172ff7](https://github.com/GoogleChrome/lighthouse/commit/5172ff7))
3356* Add failureDescription to audit. display on fail (#2478) ([b0df777](https://github.com/GoogleChrome/lighthouse/commit/b0df777))
3357* Added CHROME_PATH to readme (#2694) ([5728695](https://github.com/GoogleChrome/lighthouse/commit/5728695))
3358* bump extension to 2.2.1 ([e5f3a7b](https://github.com/GoogleChrome/lighthouse/commit/e5f3a7b))
3359* Expose LHR to modules consuming cli/run.ts (#2654) ([9c0c078](https://github.com/GoogleChrome/lighthouse/commit/9c0c078))
3360* Fix chrome finder on linux/osx when process.env isn't populated (#2687) ([112c2c7](https://github.com/GoogleChrome/lighthouse/commit/112c2c7)), closes [#2687](https://github.com/GoogleChrome/lighthouse/issues/2687)
3361* fix launcher w/ arbitrary flags (#2670) ([8c9724e](https://github.com/GoogleChrome/lighthouse/commit/8c9724e)), closes [#2670](https://github.com/GoogleChrome/lighthouse/issues/2670)
3362* Gather-runner: Get useragent before emulating (#2715) ([f8c1dc1](https://github.com/GoogleChrome/lighthouse/commit/f8c1dc1))
3363* launcher to 0.3.1 ([2004363](https://github.com/GoogleChrome/lighthouse/commit/2004363))
3364* launcher to 0.3.2 ([fc48c8a](https://github.com/GoogleChrome/lighthouse/commit/fc48c8a))
3365* remove duplicate url check in core/index.js (#2658) ([425b5fb](https://github.com/GoogleChrome/lighthouse/commit/425b5fb))
3366* track number of completed requests in total-byte-weight extendedInfo (#2697) ([eecf525](https://github.com/GoogleChrome/lighthouse/commit/eecf525))
3367* tweak codecov config. ([e9d5a0f](https://github.com/GoogleChrome/lighthouse/commit/e9d5a0f))
3368* update "page load fast enough on 3G" helpText ([1d0d4ff](https://github.com/GoogleChrome/lighthouse/commit/1d0d4ff))
3369* Update the helpText in uses-webp-images.js (#2681) ([b93ca14](https://github.com/GoogleChrome/lighthouse/commit/b93ca14))
3370* update uses-optimized-images.js helpText (#2669) ([5b41ebc](https://github.com/GoogleChrome/lighthouse/commit/5b41ebc))
3371* update webapp-install-banner.js helpText (#2622) ([a2e4e1e](https://github.com/GoogleChrome/lighthouse/commit/a2e4e1e))
3372* upgrade rimraf to latest (#2641) ([ef08106](https://github.com/GoogleChrome/lighthouse/commit/ef08106))
3373* v2.3.0 ([232c99b](https://github.com/GoogleChrome/lighthouse/commit/232c99b))
3374* perf(uses-http2): check protocol first (#2701) ([bbe2191](https://github.com/GoogleChrome/lighthouse/commit/bbe2191))
3375* feat: add base fast mode config (#2702) ([5d61056](https://github.com/GoogleChrome/lighthouse/commit/5d61056))
3376* feat(computed-artifact): support arbitrarily many inputs (#2705) ([4143aac](https://github.com/GoogleChrome/lighthouse/commit/4143aac))
3377* refactor: extract computeLogNormalScore method (#2710) ([648cce6](https://github.com/GoogleChrome/lighthouse/commit/648cce6))
3378* refactor(StartUrl): switch from error to debugString object (#2549) ([64b015e](https://github.com/GoogleChrome/lighthouse/commit/64b015e))
3379* docs(config): add explanations for gatherers property (#2704) ([76cdb54](https://github.com/GoogleChrome/lighthouse/commit/76cdb54))
3380* docs(readme): link to config docs from readme ([98d85cc](https://github.com/GoogleChrome/lighthouse/commit/98d85cc))
3381* Report: improvements w/ new density... (#2706) ([97c7170](https://github.com/GoogleChrome/lighthouse/commit/97c7170))
3382* Report: Updated styles (#2297) ([a9867d5](https://github.com/GoogleChrome/lighthouse/commit/a9867d5))
3383* fix(config): keep defaultPass on rebuild (#2671) ([78e761a](https://github.com/GoogleChrome/lighthouse/commit/78e761a))
3384* fix(domstats): enable DOM domain (#2640) ([3ee5215](https://github.com/GoogleChrome/lighthouse/commit/3ee5215))
3385* fix(driver): prevent PerfObserver from being garbage collected (#2682) ([36c2df5](https://github.com/GoogleChrome/lighthouse/commit/36c2df5))
3386* launcher: log the specific chrome spawn command. ([3f143b1](https://github.com/GoogleChrome/lighthouse/commit/3f143b1))
3387* launcher: nuke 'as string' ([a6bbcab](https://github.com/GoogleChrome/lighthouse/commit/a6bbcab))
3388* launcher: support custom port via chrome-debug binary (#2644) ([6df6b0e](https://github.com/GoogleChrome/lighthouse/commit/6df6b0e))
3389* cli: remove --select-chrome,--skip-autolaunch. Support CHROME_PATH env (#2659) ([41df647](https://github.com/GoogleChrome/lighthouse/commit/41df647))
3390* connection: log the protocol error data field (#2645) ([d587357](https://github.com/GoogleChrome/lighthouse/commit/d587357))
3391* plots: dashboard - identify variance over lighthouse versions (#2520) ([9561330](https://github.com/GoogleChrome/lighthouse/commit/9561330))
3392
3393
3394
3395<a name="2.2.1"></a>
3396## 2.2.1 (2017-06-30)
3397
3398* v2.2.1 ([187c6d5](https://github.com/GoogleChrome/lighthouse/commit/187c6d5))
3399* fix(extension): Restore status logging to extension (#2629) ([fe99052](https://github.com/GoogleChrome/lighthouse/commit/fe99052))
3400
3401
3402
3403<a name="2.2.0"></a>
3404# 2.2.0 (2017-06-30)
3405[Full Changelog](https://github.com/GoogleChrome/lighthouse/compare/v2.1.0...v2.2.0)
3406
3407### `chrome-launcher` shipped as a standalone module
3408The [`chrome-launcher`](https://www.npmjs.com/package/chrome-launcher) module is now on npm. Great for working with [Chrome headless](https://developers.google.com/web/updates/2017/04/headless-chrome).
3409
3410### Lighthouse viewer updated for Lighthouse 2.0
3411The [Lighthouse Report Viewer](https://googlechrome.github.io/lighthouse/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)
3412
3413### New contributors
3414Thanks 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!**
3415
3416-------------
3417
3418Since 2.1.0 we've had a number of other features, fixes, and improvements. Presented by category:
3419
3420#### Report
3421* use locale string for all our number output (#2553)
3422* fixes viewer CSS specificity and event listener removal (#2575)
3423* freshen up audit helpText
3424* Report: don't display score gauge header if there's only one. (#2261)
3425* Remove report v1 and dependencies (#2596)
3426* better debug message for missing network times (#2451)
3427* spelling fix in link-name audit (#2496)
3428* Theme Color wording fixes (#2466)
3429
3430#### Audit + Gather
3431* fix(driver): wait for CPU idle via clientside perfObserver (#2473)
3432* Remove /deep/ usage as it is being deprecated (#2371)
3433* Remove BOM encoding from manifest (#2175)
3434* Throw better error message when url is not auditable (#2527)
3435* Critical Request Chain audit: fix incorrect transfersize. (#2610)
3436* domstats: prevent infinite loop (#2561)
3437
3438#### Performance & Traces
3439* docs: add trace interpretation guide (#2472)
3440* use a stable sort for trace events (#2415)
3441* remove old TTI code (#2452)
3442* refactor(trace-of-tab): return timestamps in microseconds (#2454)
3443* add streaming json parser
3444* add streaming trace writer in saveAssets
3445
3446#### Plots
3447* better support power use cases (#2464)
3448* disable flaky smoke test (#2606)
3449* smoke test for happy case (#2411)
3450
3451
3452#### Configurability
3453* feat(config): add audit skipping support (#2499)
3454* feat(config): add extends lighthouse:full (#2557)
3455* docs(config): add config documentation (#2592)
3456
3457#### Misc
3458* Add script to capture travis build durations (#2541)
3459* Expose launch/lighthouse/report flow to consuming modules (#2602)
3460* harden security of static-server (#2563)
3461* is-on-https: check record.protocol for blob urls (#2538)
3462* LH implementation of LogNormalDistribution; remove traceviewer (#2456)
3463* move computed artifacts dependent on networkRecords to devtoolsLog (#2467)
3464* Enable typescript coverage metrics for coveralls.
3465
3466
3467<a name="2.1.0"></a>
3468# 2.1.0 (2017-06-07)
3469[Full Changelog](https://github.com/GoogleChrome/lighthouse/compare/v2.0.0...v2.1.0)
3470
3471**Fixed bugs:**
3472
3473- Friendlier message for multiple tabs to same origin [\#2299](https://github.com/GoogleChrome/lighthouse/issues/2299)
3474- de-jsonify default.js [\#2445](https://github.com/GoogleChrome/lighthouse/pull/2445)
3475- Compact the license headers [\#2444](https://github.com/GoogleChrome/lighthouse/pull/2444)
3476- update smokehouse PWA expectations [\#2443](https://github.com/GoogleChrome/lighthouse/pull/2443)
3477- Disable the dismissJavaScriptDialogs smoketest. [\#2437](https://github.com/GoogleChrome/lighthouse/pull/2437)
3478- Large DOM size increases memory usage, not memory \(fix wording\) [\#2433](https://github.com/GoogleChrome/lighthouse/pull/2433) ([khempenius](https://github.com/khempenius))
3479- Fix US-centric wording [\#2432](https://github.com/GoogleChrome/lighthouse/pull/2432) ([khempenius](https://github.com/khempenius))
3480- add units to LoadFastEnough debug string [\#2427](https://github.com/GoogleChrome/lighthouse/pull/2427)
3481- remove aggregations [\#2426](https://github.com/GoogleChrome/lighthouse/pull/2426)
3482- link to "offscreen images" reference [\#2417](https://github.com/GoogleChrome/lighthouse/pull/2417) ([kaycebasques](https://github.com/kaycebasques))
3483- readme: add notes on per runs [\#2410](https://github.com/GoogleChrome/lighthouse/pull/2410)
3484- Updated readme to add port number when testing a site with authentication [\#2409](https://github.com/GoogleChrome/lighthouse/pull/2409) ([mikerhyssmith](https://github.com/mikerhyssmith))
3485- Update optimized-images overview jsdoc [\#2408](https://github.com/GoogleChrome/lighthouse/pull/2408)
3486- fix\(report\): footer height on small viewports [\#2400](https://github.com/GoogleChrome/lighthouse/pull/2400)
3487- rmtraceviewer branch: reduce -\> for..of [\#2399](https://github.com/GoogleChrome/lighthouse/pull/2399)
3488- feat: tooltips for all formatted URLs [\#2398](https://github.com/GoogleChrome/lighthouse/pull/2398)
3489- travis: include node 8.0.0 [\#2395](https://github.com/GoogleChrome/lighthouse/pull/2395)
3490- fixed incorrect comments [\#2392](https://github.com/GoogleChrome/lighthouse/pull/2392) ([mixed](https://github.com/mixed))
3491- Appveyor fixes: fresh yarn, only node6 build [\#2382](https://github.com/GoogleChrome/lighthouse/pull/2382)
3492- Run npm install/build tasks in parallel [\#2381](https://github.com/GoogleChrome/lighthouse/pull/2381)
3493- Re-enable AppVeyor support. [\#2380](https://github.com/GoogleChrome/lighthouse/pull/2380) ([XhmikosR](https://github.com/XhmikosR))
3494- Fix icons on firefox by decoding svg imgs [\#2378](https://github.com/GoogleChrome/lighthouse/pull/2378) ([ev1stensberg](https://github.com/ev1stensberg))
3495- revise package.json script to the correct folder [\#2373](https://github.com/GoogleChrome/lighthouse/pull/2373) ([ev1stensberg](https://github.com/ev1stensberg))
3496- update help text for a11y audits [\#2370](https://github.com/GoogleChrome/lighthouse/pull/2370) ([kaycebasques](https://github.com/kaycebasques))
3497- fix: deprecate old HTML report [\#2367](https://github.com/GoogleChrome/lighthouse/pull/2367)
3498- add audit to check if paste is allowed in password inputs [\#2366](https://github.com/GoogleChrome/lighthouse/pull/2366) ([robin-drexler](https://github.com/robin-drexler))
3499- swap math.round with util.formatNumber [\#2361](https://github.com/GoogleChrome/lighthouse/pull/2361) ([ev1stensberg](https://github.com/ev1stensberg))
3500- 😈 Fix disconnect promise race. [\#2359](https://github.com/GoogleChrome/lighthouse/pull/2359) ([samccone](https://github.com/samccone))
3501- Enable passing of a custom userDataDir to launcher [\#2357](https://github.com/GoogleChrome/lighthouse/pull/2357) ([samccone](https://github.com/samccone))
3502- test\(smokehouse\): add numeric comparisons [\#2356](https://github.com/GoogleChrome/lighthouse/pull/2356)
3503- ✨ Add Calibre and WPT to Readme [\#2355](https://github.com/GoogleChrome/lighthouse/pull/2355) ([benschwarz](https://github.com/benschwarz))
3504- fix: bump jpeg quality [\#2354](https://github.com/GoogleChrome/lighthouse/pull/2354)
3505- fix: hide violations with no URL information [\#2352](https://github.com/GoogleChrome/lighthouse/pull/2352)
3506- fix\(connection\): gracefully handle missing method [\#2351](https://github.com/GoogleChrome/lighthouse/pull/2351)
3507- fix: normalize all times to navStart, remove traceviewer model [\#2347](https://github.com/GoogleChrome/lighthouse/pull/2347)
3508- extension: Fix formatting of bug reports [\#2343](https://github.com/GoogleChrome/lighthouse/pull/2343)
3509- Docs: update readme, add docs/readme, modernize a bit [\#2341](https://github.com/GoogleChrome/lighthouse/pull/2341)
3510- Total byte audit reports full URL [\#2312](https://github.com/GoogleChrome/lighthouse/pull/2312) ([johnboxall](https://github.com/johnboxall))
3511- polish: show audits with debug string, don't fail loadfast4pwa on network latencies, works-offline change [\#2294](https://github.com/GoogleChrome/lighthouse/pull/2294)
3512- fix: always ensure tracing is off before starting [\#2279](https://github.com/GoogleChrome/lighthouse/pull/2279)
3513- polish: listen for network idle after DCL [\#2271](https://github.com/GoogleChrome/lighthouse/pull/2271)
3514- Switch to containerized Trusty [\#2234](https://github.com/GoogleChrome/lighthouse/pull/2234) ([stramel](https://github.com/stramel))
3515- Plots: make measure script more flexible \(CLI args\) [\#2183](https://github.com/GoogleChrome/lighthouse/pull/2183) ([wwwillchen](https://github.com/wwwillchen))
3516
3517
3518# 2.0.0 (2017-05-19)
3519[Full Changelog](https://github.com/GoogleChrome/lighthouse/compare/v1.6.0...v2.0.0)
3520
3521## Big changes
3522### Brand new report
3523<a href="https://user-images.githubusercontent.com/39191/28991453-b9061d48-793c-11e7-957f-1399ae992e84.png"><img src="https://user-images.githubusercontent.com/39191/28991453-b9061d48-793c-11e7-957f-1399ae992e84.png" height=300 align=right></a>
3524Everything is brand new UI. header footer, left nav, export, score gauges… screenshots! filmstrip . pass and failures seperated. Sparklines. Accessibility by section. Perf sections..
3525
3526<br clear=all>
3527
3528### Chrome DevTools Integration
3529Take a look at the DevTools' Audit tab, where Lighthouse is now integrated
3530
3531### Lighthouse is much faster now
3532<img src="https://user-images.githubusercontent.com/39191/28991472-1a1f0b9e-793d-11e7-95c1-34effccb8126.png" align=right>
3533
3534Overall the **Operation Yaquina Bay** (Issue #2146) effort made massive improvements to the total lighthouse runtime:
3535
3536* 476e7806 fix: remove afterPass throttling (#1901)
3537* 7d7bac66 perf: enable speedline fastMode (#2230)
3538* f7ea9354 perf(config): disable styles gatherer (#2153)
3539* d99778b4 perf: consolidate DBW pass into defaultPass (#2160)
3540* ff21a33a fix: only record a trace if needed by an audit (#2117)
3541* 740c2e99 perf(gather-runner): Clear cache selectively per-pass (#2156)
3542* 4c515cfa block stylesheets and images on redirect pass (#2168)
3543* d0cb646a perf(gatherers): skip optimization of cross origin images (#2154)
3544* d99b5ada perf: make network quiet threshold configurable per pass (#2220)
3545
3546## New Contributors!
3547
3548Huge thanks to who contributed 27 epic PRs.
3549
3550* @abacon - remove images from critical request chains
3551* @benschwarz - Calibre and WPT to readme
3552* @chrisdwheatley - add related projects section
3553* @dandv - Mention where the documentation is
3554* @dgozman - Add basic rendering to report generator v2
3555* @ev1stensberg - math.round scores, firefox svg images, package.json correct folder
3556* @jinjorge - Fix typo in readme
3557* @jimthedev - readme instructions for running behind a login
3558* @johnboxall - Total byte audit reports full URL
3559* @mrbusche - Update outdated link for "Web App Install Banners" article
3560* @maya - Fix "Installation" spelling mistake
3561* @stramel - non-critical images, template literal linting, containerized trusty
3562* @mikerhyssmith - Updated readme to add port number when testing a site with authentication
3563* @sendilkumarn - handlebars precompiled (we'll pour one out), clearer iconography, helpText fixes.
3564* @ZZhaoTireless - report `<details>` printing fix
3565* @cedricbellet - handleJavascriptDialogs
3566* @thearegee - Readme: Adding lighthouse-cron to Related Projects
3567
3568
3569
3570## Audits
3571* Added the "is fast on 3g" audit
3572* 4c34e28f Fix service worker gatherer by waiting for active state (#1864)
3573* bbe7f3b9 allow computed artifacts to request other computed artifacts (#2018)
3574* ba01e2a2 Added audit for request compression (gzip & br) (#1513)
3575* ef520256 feat(image-usage): add support for CSS images (#1868)
3576* 17088655 fix: default(.json -> .js). Disable css usage audit (#1911)
3577* 50349613 Collapse the 9 manifest PWA audits into 3 (#1847)
3578* 902585b8 feat: add OffscreenImages Audit (#1807)
3579* bad5bdae Add TTI < 10s audit for PWA (#1840)
3580* d2cb5a21 feat: add consistently interactive audit (#2023)
3581* d3a06925 DOMStat Audit: shadow roots don't have .classList (#2131)
3582* 691157f2 Add audit to check if start_url is cached by SW (#2040)
3583* df2fae5e PWA Audits: add placeholders for rest of baseline checks. (#2248)
3584* 3c752a0c refactor: split optimized images into WebP and optimize audit (#2216)
3585* c908e817 retire TTI (alpha) audit (#2266)
3586
3587
3588## Metrics & Precision
3589* ade2d88f Enable CPU throttling (4.5x) (#1778)
3590* added the TTFI and TTCI metrics
3591* f1aeb581 Fix screenshot capture bounds (#1839)
3592* 7b86c71e Enhance error wording around busy traces. (#2247)
3593* 008c5d91 add lighthouse execution time to json results (#2241)
3594* f0e0dfaf tests: exclude score checking and flaky link preload assertion. (#2202)
3595* bd7f862d Update: Use array of non-critical resource types (#2191)
3596* 0549cca7 fix: always use navStart as speedline timeOrigin (#2114)
3597* da8e0979 NEW feat: add firstInteractive (#2013)
3598* 2212ca2e Update network throttling to simulate more realistic network conditions (#2238)
3599* b5bf067b Remove images from critical request chains. (#2085)
3600* 0bf1744b fix: add more helpful error messages when fMP is missing (#1959)
3601* ca2600ac Improve reliability of finding navStart (#1895)
3602* 04579fe3 Ignore cache hits for "fast on 3g" check (#2143)
3603* b1784d12 Ignore memory cache hits too. ref #2143
3604* e84530e7 fix: bump jpeg quality for image optimization audit (#2354)
3605* 0d0e93f3 fix: do not flag blob urls as insecure (#2330)
3606* 782acc59 polish: do not fail loadfast4pwa for internal redirects (#2296)
3607
3608
3609## Plots
3610* b2eaa086 Plots: A/B screenshot viewer (#2026)
3611* 618d5f0a plots: metrics-per-site view (#2041)
3612* c43eb098 plots: measure and visualize perf metrics (#1936)
3613* 3f7e5a1c Plots: make measure script more flexible (CLI args) (#2183)
3614
3615
3616## CLI
3617* Chrome launcher is a thing now.
3618* 2bb9c5b3 readme: tell developer to have yarn installed. ref #2072
3619* 65bec1bd feat(cli): add support for custom trace categories (#1866)
3620* b9bce62b Warn users if they have not yet generated the file. (#2176)
3621
3622
3623## Testing
3624* 47ee1b8d travis: include node 8.0.0 (#2395)
3625* Re-enable AppVeyor support #2380, #2382
3626* d5854b64 test(smokehouse): add numeric comparisons (#2356)
3627* 8b47006e Smokehouse: log out the node command we spawn (#2074)
3628* 4f598c50 ci: save perf trace to S3 on failure (#2051)
3629* 5945332c Switch to containerized Trusty (#2234)
3630* fb791e40 update eslint `curly` rule to google js style (#2263)
3631
3632
3633## Misc
3634* 07e0aab1 Remove recordNetwork from config (#2102)
3635* 16b0b048 feat: support Config running only specified categories or audits (#1988)
3636* b2ccdfcb Allow opn & update-notifier CLI deps to be optional. (#2150)
3637* 283af871 dismiss any Javascript Dialogs automatically (#1939) (#2106)
3638* e475bdb5 refactor(aggregations): switch usage of aggregations to categories (#1935)
3639* 48b72a85 fix: always ensure tracing is off before starting (#2279)
3640* 131df278 polish: listen for network idle after DCL (#2271)
3641* d7e4d1bb always construct networkRecords from devtoolsLog (#2133)
3642* 11a1db3c networkRecords => computed artifact. generate networkRecords during gather via the networkRecorder dispatcher breaking change: performanceLog => devtoolsLogs
3643* fb3cfbd5 makes non-finished network records available (#2197)
3644* d7064290 extension: Fix formatting of bug reports (#2343)
3645* 9f5a8aa9 Add error to chrome extension when url is using the chrome protocol (#2346)
3646
3647## Docs
3648* Many readme/contributing changes, related projects
3649* e46f5401 Architecture docs: add arch diagram and lingo updates (#2158)
3650* af479e9f Architecture diagram
3651* 8047ef36 Add custom audit recipe (#2255)
3652* 6898d09e add CI gulp recipe (#1886)
3653* 909a4638 add doc for testing site with authentication (#1906)
3654* 7c1c1c59 improve instructions for running behind a login (#2123)
3655* fb86d507 Docs: add docs/readme (#2341)
3656* d926f321 README: update CLI help with latest. Give common examples (#2182)
3657* 15c5ef13 add related projects section (#1835)
3658
3659## Deps
3660* e46244d6 Bump axe-core (#2090)
3661* 638760ee Migrate all dev scripts + docs from npm to yarn. (#2071, #2072, #2067)
3662* d90bce3b fix: bump speedline to fix perceptual speed index (#2046)
3663* 3716658b Rev axe to address #2206 (#2335)
3664
3665
3666<a name="1.6.5"></a>
3667# 1.6.5 (2017-03-04)
3668[Full Changelog](https://github.com/GoogleChrome/lighthouse/compare/v1.6.0...1.6.5)
3669
3670This is a **maintenance release** on the stable [1.6 branch](https://github.com/GoogleChrome/lighthouse/tree/1.6).
3671
3672Master branch (tagged at 2.0.0-alpha) is under some heavy refactors, so we're holding off on shipping a new version. Expect one by mid-May.
3673_( Poke around recent PRs and issues if you're curious what we're up to ;)_
3674
3675In the meantime, only a few changes here in 1.6.5:
3676
3677### Audits
3678
3679* Improve HTTPS audit by using network records rather than Security domain, which is broken on Android.(original pr #1918) (#2054)
3680* Disable unused css rules audit for now, as we want to revisit correctness later (#1912)
3681
3682### Report
3683* Add legend to decipher iconography left to us by the ancient ones (#1841)
3684* Print doesn't cut off expanded audit details (#1870)
3685* Biggin icons for a11y (#1856)
3686* Tweak report colors so that we are WCAG2AA valid.
3687
3688### CLI
3689* support multiple output modes (#1813)
3690* add update-notifier. (#1890)
3691
3692### Testing
3693* smokehouse: fix flakiness of dom-size expectation (#1881)
3694* include a normal CLI run in the travis build.
3695
3696### Misc
3697* remove npm prepublish (#1889)
3698
3699Thanks to @ebidel and @paulirish for merging this stuff back to stable branch.
3700
3701<a name="1.6.0"></a>
3702# 1.6.0 (2017-03-04)
3703[Full Changelog](https://github.com/GoogleChrome/lighthouse/compare/v1.5.2...1.6.0)
3704
3705There were 44 PRs landed for this release. These are their stories.
3706
3707### New Contributors!
3708
3709Huge thanks to @sendilkumarn, who contributed [four epic PRs](https://github.com/GoogleChrome/lighthouse/commits?author=sendilkumarn). Also welcome to @tommycli, @narendrashetty, @mohsen1 and @dentemple. Readme tweaks are how it all starts. ;)
3710
3711### Notable Changes
3712
3713- **WebPageTest integration is in beta**
3714
3715 By popular demand, you will soon have a way to run Lighthouse on demand in the cloud. We've worked closely with WebPageTest to enable Lighthouse auditing and analysis from within a WPT run.
3716 Our contribution [WPO-Foundation/webpagetest#825](https://github.com/WPO-Foundation/webpagetest/pull/825) was just merged and Lighthouse on WPT is currently in private beta.
3717
3718<p align="center"><img alt="lighthouse-webpagetest-beta" src="https://cloud.githubusercontent.com/assets/39191/23574976/96be73fa-003a-11e7-9f08-45e104ef2560.gif"></p>
3719
3720- **Lighthouse's CLI output has taken a chill pill** - #1764
3721
3722 While you can view all Lighthouse results on the command line, it hasn't scaled well. A few screenworths of report was generally dumped to stdout right as Lighthouse finished up. Now, to keep your terminal happy, you will no longer see the reams of results printed to stdout.
3723 The HTML report is saved to disk by default, and you can automatically open it with `lighthouse --view`.
3724
3725<p align="center"><img alt="lighthouse --view flag" src="https://cloud.githubusercontent.com/assets/39191/23574913/8f733424-0039-11e7-8ecd-3fe4758e735a.gif"></p>
3726
3727 If you still want the stdout output, use `--output=pretty`. Oh so pretty.
3728
3729- **CI coverage for Windows via AppVeyor** - #1280
3730
3731<p align="center"><img src="https://cloud.githubusercontent.com/assets/39191/23574765/2f787e50-0037-11e7-9bba-ccf57423a815.png" width="450"></p>
3732
3733 Thanks to a large effort from @XhmikosR, we now have an eye in the sky on Lighthouse's Windows compatibility. Now, all PRs are tested on both Linux and Windows.
3734
3735## New audits
3736* **New audit**: DOM stats (total nodes, depth, width). (#1673) Get flagged if the size or depth of your DOM is big enough to cause big slowdowns.
3737![image](https://cloud.githubusercontent.com/assets/39191/23575128/34caa486-003d-11e7-8cb1-98e7805900ce.png)
3738
3739* **New audit**: Total byte weight audit (#1759). An extra check to make sure folks don't ship 5MB webpages.
3740![image](https://cloud.githubusercontent.com/assets/39191/23575150/76da8292-003d-11e7-8288-1c58eb579d87.png)
3741
3742
3743
3744### Improvements
3745* **CLI**: Add -`-chrome-flags` option to CLI. (#1761)
3746* **CLI**: Add `--disable-storage-reset` flag to skip clearing cache and storage (#1675)
3747* **Report:** Centralize perf audits within Performance section (#1724)
3748* **Report:** Collapse sections when all audits pass (#1742)
3749* **Config**: Allow extension of default config (#1731)
3750* **Config**: Configurable blank page options (#1732)
3751* **Config**: Configurable page timeout (#1672)
3752* Disable throttling for non-performance passes (#1740)
3753* Reduce build size by 33% (#1756)
3754* Enhanced display URLs (#1793)
3755
3756### Bug Fixes
3757* Improve reliability of TTI metric by extending trace (#1785)
3758* Do not fail if chrome could not be killed (#1735)
3759* Headless fix: reuse existing tab if creating new tab fails (#1760)
3760* Fix code escaping (#1790)
3761* Speculative fix for getCurrentTabURL (#1753)
3762* Rewrite chrome:// URLs to compare them. (#1777)
3763* Responsive image audit correctly handles SVG and duplicates (#1749)
3764
3765### Testing
3766* Use download-chrome.sh to download Chrome on Windows too.
3767* Add AppVeyor CI support for Windows testing.
3768
3769### Docs
3770* Link to PWA Checklist (#1734)
3771* Reorganization and new "Using programmatically" section (#1721)
3772* fix typo in promise chain
3773* minor yarn typo fix (#1736)
3774* Fix typo s/console.err/console.error (#1772)
3775
3776### Refactor
3777* DRY byte efficiency audits (#1635)
3778* Add explicit strict null checks for TS. (#1763)
3779* CSS consistency changes. (#1698)
3780* Switch to two space indention. (#1693)
3781* Refactor handlebar helpers into static methods
3782
3783### Report Improvements
3784* Use ! for aggregation icon when some audits dont pass (#1789)
3785* Clearer iconography in Perf metrics and Fancier Stuff (#1750)
3786* Adopt the non-failure iconography for perf audits (#1812)
3787* Reformat the critical chain details (#1647)
3788* Reformat the usertiming details (#1810)
3789* Adjust table em color val for WCAG2AA. (#1743)
3790* Better colors. Still accessible (#1758)
3791* Brand the header (#1797)
3792* Quazzle the tardiplums for best quality fleekdrops.
3793
3794### Report Bug fixes
3795* Fix table overflow with Firefox. (#1704)
3796* Use pre instead of inline code for listener snippets. (#1786)
3797* Use the same favicon as the viewer. (#1657)
3798* Tweak colors so that we are WCAG2AA valid. (#1686)
3799* CSS icon alignment for FF (#1796)
3800* Clean up table styling (#1726)
3801
3802
3803
3804<a name="1.5.1"></a>
3805## 1.5.1 (2017-02-10)
3806
3807[Full changelog](https://github.com/GoogleChrome/lighthouse/compare/1.5.0...1.5.1) (2017-02-10)
3808
3809### Bug Fixes
3810- HTML hygiene - #1682, #1683, #1684
3811- **Extension:** Rollback of `management` permission to study effect first (#1689) - #1687
3812
3813
3814
3815
3816<a name="1.5.0"></a>
3817# 1.5.0 (2017-02-10)
3818[Full Changelog](https://github.com/GoogleChrome/lighthouse/compare/v1.4.1...1.5.0)
3819
3820There were 128 PRs landed for this release. These are their stories.
3821
3822### New Contributors!
3823
3824@graph1994, @denar90, and @kiermasp
3825
3826### Notable Changes
3827- **Dropped support for Node earlier than v6** - #1519
3828
3829 Node v6 became the [Node long-term-support version](https://github.com/nodejs/LTS#lts-schedule) 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.
3830- **Improved selection of First Contentful and Meaningful Paint events from unusual traces** - #1632, #1634
3831
3832 Lighthouse has banished the dreaded `-1` score that has long plagued runs for [certain sites](https://airhorner.com/).
3833
3834 ![image](https://cloud.githubusercontent.com/assets/316891/22815981/ea000d68-ef13-11e6-95f5-258e2cacdd54.png)
3835
3836 First Meaningful Paint is now detected much more robustly. While it is [not yet a completely solved problem](https://github.com/GoogleChrome/lighthouse/issues/1464), 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.
3837- **Open local report in online report Viewer** - #1179
3838
3839 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](https://googlechrome.github.io/lighthouse/viewer/).
3840
3841 ![localreport](https://cloud.githubusercontent.com/assets/316891/22817784/3d865302-ef1e-11e6-9535-50937f5929ef.png)
3842
3843 ![viewer](https://cloud.githubusercontent.com/assets/316891/22817839/9b477ab6-ef1e-11e6-8fc7-bafbedfd2872.png)
3844
3845 You can then use the Viewer share button to get a report URL that you can share freely.
3846
3847 Behind the scenes, Viewer gets your permission via OAuth to create a GitHub [secret gist](https://help.github.com/articles/about-gists/#secret-gists) 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](https://github.com/settings/applications).
3848- **Performance metrics are injected into trace saved with `--save-assets` for viewing in timeline** - #1446
3849
3850 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.
3851
3852 ![image](https://cloud.githubusercontent.com/assets/39191/21796487/f35ad136-d6bd-11e6-9447-2260adcf1d65.png)
3853
3854 If you save a run's trace with `--save-assets` and then open it in DevTools or [Timeline Viewer](https://chromedevtools.github.io/timeline-viewer/), you'll be able to see your key metrics in context with the full trace of the page load.
3855- **Throttling and emulation information in report** - #1485, #1608, fc858ea
3856
3857 <img width="719" alt="screen shot 2017-02-09 at 22 43 27" src="https://cloud.githubusercontent.com/assets/316891/22816879/3c913ac0-ef19-11e6-812b-7e728543318b.png">
3858
3859 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.
3860- **UI to interactively block certain page resources and measure the load performance difference**
3861
3862 The first version of the [Performance Experiment](https://docs.google.com/document/d/1FYt5Es_Kf5IyC_bkTHj2G_a_sTvRvIq5iZCEN8VZY5o/edit#heading=h.cetla8h0y4o) 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.
3863
3864 <img width="720" alt="screen shot 2017-02-09 at 23 45 34" src="https://cloud.githubusercontent.com/assets/316891/22818415/f19058e0-ef21-11e6-82f6-aa6b49013e11.png">
3865
3866 This lets you experiment with your page load performance, interactively testing the effects of blocking or delaying assets in your critical path.
3867
3868### New Audits
3869- **CSS usage** - #1421, #1479, #1466, #1496, #1557
3870
3871 Reports the number of unused style rules in your page and the byte/time savings of removing them:
3872
3873 <img width="831" alt="screen shot 2017-02-09 at 23 43 17" src="https://cloud.githubusercontent.com/assets/316891/22818581/d4fd379c-ef22-11e6-9143-36cc7c7245ae.png">
3874- **Image optimization** - #1452, #1579
3875
3876 Reports images that are unoptimized and the byte/time savings of optimizing them:
3877
3878 <img width="630" alt="screen shot 2017-02-09 at 23 43 49" src="https://cloud.githubusercontent.com/assets/316891/22818588/dd3994aa-ef22-11e6-8fee-7469a8866aa6.png">
3879- **Report Chrome's deprecated API warnings** - #1470
3880
3881 Lists console warnings from Chrome if your page is using deprecated APIs or features that have [interventions](https://www.chromestatus.com/features#intervention):
3882
3883 <img width="675" alt="screen shot 2017-02-10 at 00 05 25" src="https://cloud.githubusercontent.com/assets/316891/22818969/b317e9d6-ef24-11e6-89db-9ee596ba8539.png">
3884- **Responsive image sizing** - #1497
3885
3886 Reports images that are too big and the potential byte/time savings of sizing them correctly for the given device:
3887
3888 <img width="758" alt="screen shot 2017-02-09 at 23 44 23" src="https://cloud.githubusercontent.com/assets/316891/22818602/ef802c82-ef22-11e6-9e77-138bd743aca8.png">
3889
3890### Improvements
3891- **Audit:** Catch more obsolete cases in `no-old-flexbox` audit - #1374
3892- **Audit:** Add extended timing data to `speed-index` audit results - #1430, #1558
3893- **Audit:** Base bytes- and time-saved estimates on mean throughput for that load - #1536
3894- **CLI:** Disable more Chrome background features that may interfere with auditing - #1416
3895- **CLI:** Close tab when Lighthouse is done with it - #1543, #1592
3896- **CLI:** Use `--output-path` when saving artifacts and assets from run - #1601
3897- **CLI:** Update `--perf` config to include latest perf audits - #1640
3898- **Extension:** Move from a persistent background page to an event page - #1487
3899- **Extension:** ~~Option to disable other extensions during run for improved accuracy~~ - #1492, #1604 (see #1689)
3900- **Gatherer:** Issue `all-event-listeners` collection commands in parallel to improve performance - #1667
3901- **PerformanceExperiment:** Create server to rerun Lighthouse with new options on POST request - #1393
3902- **PerformanceExperiment:** Add UI for options to block asset loading on rerun - #1455, #1577
3903- **PerformanceExperiment:** Add report sidebar to switch between multiple Lighthouse run results - #1477, #1597
3904- **Report:** Expand audit `<details>` on print - #1468
3905- **Report:** Add table formatter for audit details - #1505, #1538, #1546, #1547, #1545, #1622, #1636, #1678
3906- **Report:** Reduce visual noise by auto-collapsing audit details and removing redundant info - #1561, #1598, #1606, #1617
3907- **Report:** Remove 'Coming Soon' results from report - #1637
3908- **Report:** Share save and export code in report and Viewer - #1594
3909- **Viewer:** Make Viewer a PWA - #1554, #1571
3910
3911### Bug Fixes
3912- Stop Lighthouse run if initial page request fails (404, domain not found, etc) - #1174, #1603, #1677
3913- **Audit:** Check for proper mimetype in tags-that-block audit - #1432
3914- **Audit:** Add proper parsing of meta viewport content - #1267
3915- **Audit:** Ignore fragment in document URL comparison to correctly test offline loading - #1319, #1566
3916- **Audit:** Filter out `goog_*` from user timings - #1563
3917- **Audit:** Report proper first paint delay for blocking tags audits - #1555
3918- **Audit:** Handle empty chain in critical-request-chains audit - #1620
3919- **Audit:** Warn that `geolocation-on-start` gatherer cannot be run on insecure origins - #1679
3920- **CLI:** Guard against launching multiple Chrome processes - #1436
3921- **CLI:** Add support to find Chrome via `LIGHTHOUSE_CHROMIUM_PATH` variable on Windows - #1572
3922- **PerformanceExperiment:** Fix various cross-browser report issues - #1593
3923- **Report:** Improve filename eliding in audit details - #1437
3924- **Report:** Various fixes for mobile and cross-browser issues - #1429, #1551, #1590, #1626
3925- **Report:** Change generated HTML to be mostly valid; improve CSS consistency - #1575, #1627
3926
3927### Testing
3928- Viewer: Add tests for file uploader - #1184
3929- Update smokehouse to support deep comparisons of test expectations - #1450, #1457
3930- Fix eslint base config, improve rules - #1462, #1440
3931- Deal with Shop test site flakiness - #1491, #1493, #1654
3932- Remove global installation of typescript on Travis - #1520
3933- Use `bash` and `node` explicitly in npm scripts for cross-platform compatibility - #1510
3934- Switch to a more concise unit test reporter - #1650
3935
3936### Docs
3937- Add Chrome webstore extension screenshots - #1481, #1531, #1526
3938- Various JSDoc, markdown, and capitalization fixes - #1441, #1494, #1503, #1533, #1523, #1553, #1565
3939- **Audit:** Change messaging for uses-h2 audit - #1445
3940- **Report:** Add help text (with links to docs) to manifest and a11y audits - #1428, #1589
3941
3942### Refactor
3943- Use `json-stringify-safe` only when necessary - #1435
3944- Centralize console special characters for cross-platform compatibility - #1438, #1509
3945- Add JS information to categories traced - #1442, #1444
3946- Track enabled debugger domains for safe simultaneous use - #1474
3947- Node v6+: switch to rest parameters, `[].includes()`, and default parameters - #1524, #1580, #1633
3948- Introduce `TraceOfTab` computed artifact to centralize extraction of key trace events - #1549
3949- Handle gatherer errors as native exceptions instead of `-1` ad hoc system - #1560, #1623, #1641, #1624
3950- Create audit error result to rid report of `-1`s and score more consistently - #1591, #1649, f92b8ed
3951- Save log of debugger protocol messages for `Page` and `Network` events - #1665, #1669
3952- Move `tracingModel` to computed artifact to halve time spent constructing timeline model - #1668
3953- **CLI:** Simplification of asset saving format and filenames - #1433, bba5818
3954- **Report:** Turn report script into class, Viewer into subclass - #1471, #1559
3955- **Report:** Include each partial's CSS only once - #1652
3956
3957### Release
3958- Add release checklist to contribution guide - #1409, #1423
3959- Add npmignore file - #1411, #1681
3960- Add install/build scripts for each `package.json` - #1439, #1488, #1522
3961
3962### Dependencies
3963- Lock `package.json` dependencies to specific versions - #1422
3964- Update `mocha` to 3.2.0 - #1585
3965
3966
3967
3968<a name="1.4.1"></a>
3969## 1.4.1 (2017-01-05)
3970
3971* 1.4.1 (#1406) ([179783b](https://github.com/GoogleChrome/lighthouse/commit/179783b))
3972* Add LH images assets. Fixes #1401 ([0d5a4bc](https://github.com/GoogleChrome/lighthouse/commit/0d5a4bc)), closes [#1401](https://github.com/GoogleChrome/lighthouse/issues/1401)
3973* Allow FMP trace event to appear slightly before the FCP (#1404) ([a7648e7](https://github.com/GoogleChrome/lighthouse/commit/a7648e7))
3974* fix: don't extend URL in url-shim to support es5 transpilation (#1407) ([b03b0db](https://github.com/GoogleChrome/lighthouse/commit/b03b0db))
3975
3976
3977
3978<a name="1.4.0"></a>
3979# 1.4.0 (2017-01-04)
3980[Full changelog](https://github.com/GoogleChrome/lighthouse/compare/1.4.0...1.3.2)
3981
3982### New Contributors!
3983
3984@dracos, @lokson, and @AdrianoCahete
3985
3986### Improvements
3987- Add URL blocking by pattern to driver - #1195
3988- **Extension:** Add test URL to "Report Error" template - #1357
3989- **Extension:** Keep Lighthouse extension popup active while running - #1185
3990- **Extension:** Use live icon and badge text while running - #1367
3991- **Gather:** Only run axe tests that we have audits for - #1257
3992- **Report:** Only use markdown for injected HTML - #1226
3993- **Report:** Style tweaks for DevTools report - 4a2f97a21644989c325e1203be2af7230773934f, 68ccb6401143f18ac9702bb8d05a82936c1c8b0e
3994- **Report:** Include total score in JSON and pretty output modes - #1356
3995- **Viewer:** Add input for gist URL on mobile - #1341
3996
3997### Bug Fixes
3998- **Audit:** Handle invalid URLs in `external-anchors-use-rel-noopener` audit - #1358
3999- **Audit:** Handle invalid URLs in `no-console-time` and `no-datenow` audits - #1288
4000- **Audit:** Make zero-length critical-request chains pass the test - #1303
4001- **Audit:** Add `"minimal-ui"` as an allowed Manifest `display` value - #1268
4002- **Audit:** Improved handling of invalid URLs in call site and event listener audits - #1390
4003- **Audit:** Async stylesheet handling to limit false positives for stylesheets blocking first paint - #1389
4004- **CLI:** Improve Windows console support - #1307
4005- **CLI:** Ignore `which` failures when looking for Linux Chrome executable - #1395
4006
4007### Docs
4008- Closure type check fixes - #1293
4009
4010### Refactor
4011- Return artifacts from Runner (and move assets/artifacts saving to CLI) - #1163, #1400
4012- **PerformanceExperiment:** Centralize more implementation in `server.js` - #1189
4013
4014### Dependencies
4015- Only list `mkdirp` dependency once - #1284
4016- Add `marked` - #1226
4017
4018
4019
4020<a name="1.3.2"></a>
4021## 1.3.2 (2016-12-23)
4022
4023* 1.3.2 (#1281) ([aa1059b](https://github.com/GoogleChrome/lighthouse/commit/aa1059b))
4024* handle Date.now uses with call site URL (#1277) ([2299f94](https://github.com/GoogleChrome/lighthouse/commit/2299f94))
4025
4026
4027
4028<a name="1.3.1"></a>
4029## 1.3.1 (2016-12-22)
4030
4031
4032### New Contributor!
4033
4034@XhmikosR
4035
4036### Improvements
4037- **Report:** remove `noreferrer` from `helpText` links (#1190)
4038- **Viewer:** add consolidated export button - #1182
4039
4040### Bug Fixes
4041- Remove Node v7 URL parsing while bugs are being fixed - #1187
4042- Fix `driver.captureFunctionCallSites` in the face of Error polyfills - #1218
4043- **Audit:** handle anchor tags with no href in 'external-anchors-use-rel-noopener' audit - #1238
4044- **CLI:** use exec, not spawn, to kill Chrome process on Windows - #1206
4045- **Viewer:** don't check upload's file type, try to parse json file directly - #1234
4046
4047### Docs
4048- **readme:** improve definition - #1216
4049
4050
4051
4052
4053<a name="1.3.0"></a>
4054# 1.3.0 (2016-12-20)
4055[full changelog](https://github.com/GoogleChrome/lighthouse/compare/1.2.2...1.3.0)
4056
4057### New Contributors!
4058
4059@Janpot, @robdodson, and @WeiweiAtGit
4060
4061### Major Changes
4062- New hosted [Lighthouse report viewer](https://googlechrome.github.io/lighthouse/viewer/) - #1109, #1139
4063- New Lighthouse [logo](https://github.com/GoogleChrome/lighthouse/blob/029e1f0d7809e27f9826dae4d31cced468e135c3/lighthouse-viewer/app/images/lh_logo_bg.png) - #1129, #1144
4064
4065### Improvements
4066- Use [`whatwg-url`](https://www.npmjs.com/package/whatwg-url) to parse URLs - #997
4067- Use `firstMeaningfulPaint` trace event directly - #1066
4068- Remove whitespace and comments from traceviewer-js - #1095, #1103
4069- **Audit:** Remove browser-generated `paintNonDefaultBackgroundColor` event from `user-timings` - #1077
4070- **Audit:** Handle where `tracingStartedInPage` doesn't precede `navStart` in trace - #1152, 9c8d13e5
4071- **Audit:** Add new required attr and attr-value accessibility audits - #1156
4072- **CLI:** Add improved search for Chrome executable on Linux - #856
4073- **CLI:** Add check that TypeScript files have been compiled before running - #1113
4074- **CLI:** Add `--view` flag which serves generated report after Lighthouse run - #1130, f6afd225
4075- **Driver:** Return meaningful errors from page context when `evaluateAsync` rejects - #1037
4076- **Report:** Create "Fancier Stuff" section for newer (but not necessarily better) APIs - #1087
4077- **Report:** Convert `helpText` toggle to pure CSS - #1104
4078- **Report:** Stick header to top of page - #1121, #1132, #1133
4079- **Report:** Make mobile-friendly and responsive - #1134
4080- **Report:** Don't emit script tags in devtools report - #1105
4081- **Report:** Use same favicon throughout all reports - #1172
4082- **Viewer:** Move share button to core report - #1117
4083- **Viewer:** Add support for copy and paste of report JSON - #1126, #1128
4084- **Viewer:** Concat CSS files - #1153
4085
4086### Bug Fixes
4087- Unmute some smoke test failures - #1081
4088- **CLI:** Make `rimraf` async for deleting Chrome temp profile - #1127
4089- **CLI:** Eliminate errors from calling `ChromeLauncher.kill()` twice - #1131
4090- **CLI:** Fix html `reportContext` when generated by the CLI - #1171
4091- **Driver:** Fix `evaluateAsync` when page has overridden native Promise - #1037, #1178
4092- **Report:** Fix for formatting with unknown time zone - #1086
4093- **Report:** Fix report color issues in Safari - #1114
4094- **Report:** Fix print styling - #1180
4095- **Testing:** Handle critical-request-chains audit promise rejections - #1100
4096- **Testing:** Fix failing lint test - aa6d38b3
4097- **Viewer:** Disable sharing button if gist is already saved - #1118
4098
4099### Testing
4100- Don't run Closure type checking on Travis - 558a26
4101- Update `eslint` and `eslint-config-google` to latest - #1136, #1159, #1160
4102- **Audit:** Add tests for `notification-on-start` - #1089
4103- **CLI:** Add test for obsolete CLI flags - #1168
4104- **Viewer:** Add analytics #1120, #1162
4105- **Viewer:** Add build of viewer to CI test suite - #1160
4106
4107### Docs
4108- Update jsconfig for intellisense - 835ae985
4109- **Audit:** Fix type in `no-console-time` `helpText` - #1142
4110- **Audit:** Add links to DoBetterWeb `helpText` docs - #1161
4111- **readme:** Add Viewer to readme - #1164
4112
4113### Refactor
4114- **Audit:** Add check for an audit's `requiredArtifacts` before running - #1088
4115- **Audit:** Centralize auditing of `axe-core` results - #1167
4116- **CLI:** Unify `bin.ts` execution and error-handling paths - #1141
4117- **Gatherer:** Gatherers now return artifacts directly rather than setting `this.artifact` - #1122
4118- **Viewer:** Split code into modules - #1116
4119- **Viewer:** Use `tsc` to es3ify viewer code - #1150
4120
4121### Dependencies
4122- Add [`whatwg-url`](https://www.npmjs.com/package/whatwg-url) - #997
4123- Add [`opn`](https://www.npmjs.com/package/opn) - #1130
4124- Remove [`jszip`](https://www.npmjs.com/package/jszip) - #1094
4125- Update [`eslint`](https://www.npmjs.com/package/eslint) and [`eslint-config-google`](https://www.npmjs.com/package/eslint-config-google) - #1136
4126- Update [`axe-core`](https://www.npmjs.com/package/axe-core) to 2.1.7; now 8x faster - #1155
4127
4128
4129
4130
4131<a name="1.2.2"></a>
4132## 1.2.2 (2016-11-29)
4133
4134[full changelog](https://github.com/GoogleChrome/lighthouse/compare/1.2.1...1.2.2)
4135
4136### New Contributor!
4137
4138@beaufortfrancois
4139
4140### Improvements
4141- **Extension:** remove "tabs" extension permission - #1032
4142
4143### Bug Fixes
4144- Ensure `driver.captureFunctionCallSites` resolves to an array - #1036
4145- Handle call sites in `eval`'d code in `driver.captureFunctionCallSites` - #1073
4146- **Audit:** identify `noopener` when in list of link types in `rel` - #1035
4147- **CLI:** explicitly close outfile and errfile in chrome launcher - #1057
4148- **Extension:** set minimum supported Chrome to m54 - #1027
4149- **Extension:** better error message if user attempts to audit the Chrome Web Store - #1025
4150- **Report:** work around unsupported timezones when pretty printing dates - #1067
4151- **Report:** fix coloring by score - #1070
4152
4153### Docs
4154- **Report:** better formatting for Manifest icon size list - #1041, #1044
4155- **Report:** improve language consistency in audit `description` strings - #1045
4156- **Report:** add `helpText` to remaining audits - #998
4157- **Report:** remove scores from performance metrics; change to pass/fail - #1072
4158
4159
4160
4161<a name="1.2.1"></a>
4162## 1.2.1 (2016-11-23)
4163[full changelog](https://github.com/GoogleChrome/lighthouse/compare/1.2.0...1.2.1)
4164
4165### Improvements
4166- **Audit:** add DBW audit for `<script>` elements in head that block first paint - #965
4167- **Extension:** Add error description to title of auto-generated github issues - #992
4168
4169### Bug Fixes
4170- fix typo in default config file - f9f7c25
4171- **Audit:** treat non-strings as an error in `without-javascript` gatherer and audit - #971
4172- **Audit:** catch driver errors (and set on `artifact.debugString`) in geolocation gatherer - #999
4173- **Audit:** fix property name used for error value in `all-event-listeners` gatherer - #1013
4174- **CLI:** fix implicit-any-typed `_` in chrome launcher - #981
4175- **Extension:** fix aggregation category filtering based on selection in options panel - #973
4176- **Report:** escape </script> tags when embedding raw results in the html page - #1003
4177
4178### Testing
4179- Force `npm install` (for now) on Travis after [their change](https://github.com/travis-ci/travis-build/pull/895) to prefer yarn - #994
4180
4181### Docs
4182- **readme:** new report screenshot - cb2ebfd
4183
4184### Refactor
4185- Unify CLI and extension implementations of debugger protocol error handling - #977
4186
4187
4188
4189<a name="1.2.0"></a>
4190# 1.2.0 (2016-11-17)
4191[full changelog](https://github.com/GoogleChrome/lighthouse/compare/1.1.7...1.2.0)
4192
4193### New Contributors!
4194
4195@Bassoon08, @karanjthakkar, @chowse, @hsingh23, @olingern, and @patrickhulce
4196
4197### Major Changes
4198- Launch [DoBetterWeb](https://github.com/GoogleChrome/lighthouse#do-better-web) (DBW) audits and gatherers as part of default Lighthouse run - #917
4199- **Report:** Lighthouse report refactor and refresh - #926, #935
4200
4201### Improvements
4202- Log errors in red, warnings in yellow - #860, #915
4203- **Audit:** Add DBW audit for Mutation Events - #786
4204- **Audit:** Add DBW audit for `<link>` elements in head that block first paint - #892
4205- **Audit:** Add DBW audit for `rel=noopener` on external links - #912
4206- **Audit:** Make geolocation audit return error if permission already granted - #925
4207- **CLI:** Handle `--quiet` logging as silent - #881
4208- **Extension:** Add integrated 'Report Error' button with pre-populated data - #944
4209- **Gatherer:** Add support for collecting event listeners across all DOM nodes - #930
4210- **Report:** Remove excessive EIL percentiles from report - #851
4211- **Report:** Update TTI scoring label to 5000ms to match guidance - #947
4212- **Report:** Cleanup of event listener extended info display - #952
4213- **Report:** Group event listener extended info by call site location - #960
4214
4215### Bug Fixes
4216- Restore log's status event payload - #883
4217- Ignore protocol error from defensive `DOM.disable` call - #895, #907
4218- Remove cache-contents gatherer from default config since currently no audit requires it - #900
4219- Enforce audit naming consistency in the config file and filenames - #914
4220- **Audit:** Handle error case from htmlwithoutjs gatherer and audit - #891
4221- **Audit:** Prevent attempts to parse script URLs when no URL was found - #893
4222- **Audit:** Don't include disabled `<link>`s in link-blocking-first-paint audit - #911
4223- **Audit:** Handle undefined Accessibility violations array - #942
4224- **Audit:** Only create a manifest display debugString when there is an error - #954
4225- **Audit:** Look for non-async `<link>`s and fix unit of time in link-blocking-first-paint audit - #963
4226- **CLI:** Add `main` field to CLI's package.json - #875
4227- **CLI:** Disable Chrome's Google Translate service during Lighthouse run - #897
4228- **CLI:** Disable Chrome's default Apps during Lighthouse run - #918
4229- **Driver:** Dedupe function call site entries on location, not stack trace - #958
4230- **Extension:** Properly filter the audits to run - #946
4231- **Gatherer:** Handle CSS parse errors in stylesheet gatherer - #906
4232- **Report:** Move `gt` handlebars helper to accessibility formatter - #929
4233- **Report:** Fix handlebars `and` helper to show `displayValue` in reports - #938
4234
4235### Testing
4236- Add DBW to smokehouse tests - #843, #901
4237- Add script for bumping Travis to restart timing-out test runs - #913
4238- Fix Travis timeouts by rerunning with random Chrome debug ports - #922
4239
4240### Docs
4241- **Audit:** Update EQT/EIL design doc links to latest docs - #923
4242- **Audit:** Fix no-datenow `helpText` typo - #955
4243- **Audit:** Update uses-passive-event-listeners `description` text - #956
4244- **readme:** Add DBW to readme - #863
4245- **readme:** Update development section with TypeScript info - #859
4246- **readme:** Document yarn install command - #939
4247
4248### Refactor
4249- **Audit:** Rewrite geolocation-on-start audit to use DBW tooling and testing - #903
4250- **CLI:** Migrate `chrome-debug` binary to use internal Chrome launcher - #898
4251- **Report:** Refactor report generation to be blob based and simpler - #908
4252
4253### Dependencies
4254- Yarn lock file cleanup - 3e9e88c
4255
4256
4257<a name="1.1.7"></a>
4258## 1.1.7 (2016-10-31)
4259
4260[full changelog](https://github.com/GoogleChrome/lighthouse/compare/1.1.6...1.1.7)
4261
4262### Features
4263- Add cpu throttling option (initially disabled by default) - #747
4264- Stop Lighthouse run if tabs with a shared Service Worker are found - #639
4265- Add Web Worker entry point to `lighthouse-background.js` - #803
4266- **Audit:** add DBW stylesheet gatherer and old flexbox audit - #767
4267- **Audit:** adopt [Perceptual Speed Index](http://www.parvez-ahammad.org/blog/perceptual-speed-index-psi-for-measuring-above-fold-visual-performance-of-webpages) - #785
4268- **Audit:** add DBW audit for passive event listeners - #830
4269- **CLI:** add support for using stable Google Chrome on MacOS - #782
4270
4271### Bug Fixes
4272- Fix function call location from `driver.captureJSCallUsage` - #779
4273- Update `driver.captureFunctionCallSites` to use updated `driver.evaluateAsync` - #809
4274- Stop interpreting manifest parse errors as failure to fetch manifest - #823
4275- Update `npm run dbw` to use new emulation flags - #834
4276- Make network emulation numbers always integers - #839
4277- Trim `extendedInfo` returned from DBW http2 audit to prevent circular references - #842
4278- Navigate to about:blank before driver setup - #850
4279- Fix handling of errors from the debugging protocol - #853
4280- Stop spreading strings in `log` - #835
4281- Allow debugger protocol's `DOM` domain to be redundantly disabled - #861
4282- Remove tab `targetId` requirement for checking if other tabs will share a service worker - #852
4283- Consistently reject Promises with an `Error` - #862
4284- Don't throw an error in stylesheet gatherer if no stylesheets are found - #864
4285- **CLI:** Disable extension system in launched Chrome instance - #771
4286- **CLI:** make Chrome Launcher respect `--quiet` flag - #774
4287- **CLI:** use about:blank as initial URL - #776
4288- **CLI:** make HTML report have gitignorable filename - #790
4289- **CLI:** fix `outputMode` conditional - #846
4290- **CLI:** add warning if `tsc` has not been run before use - #857
4291- **Report:** fix pluralization of "resources" - #773
4292
4293### Testing
4294- Add smokehouse, an end-to-end test runner, and use for smoke tests - #781, #788
4295- Run default smoke tests with full config - #801
4296- Add `prefer-const` eslint rule - #804
4297- Run well-known-PWA smokehouse tests in CI - #824
4298- Fix several eslint warnings - #831
4299- Test node v6 and v7 explicitly in CI - #832
4300- Add tests for `getLogNormalDistribution` and `getRiskToResponsiveness` on `TracingProcessor` - #806
4301
4302### Docs
4303- **CLI:** clarify description of `--select-chrome` flag - #829
4304- **readme:** add basic instructions for custom audits/gatherers - 8d696af
4305- **readme:** update module diagram - ee1dc0d
4306- **readme:** add node debugging getting started tip - #807
4307- **readme:** add CLI TS development notes - #818
4308- **readme:** matching parentheses - #855
4309
4310### Refactor
4311- Make [`web-inspector.js`](https://github.com/GoogleChrome/lighthouse/blob/694baf61d587eda360e89fde4bb17e6cd46fcbf0/lighthouse-core/lib/web-inspector.js) worker friendly - #795
4312- Migrate `driver.evaluateAsync` to `Runtime.evaluate(awaitPromise)` - #793
4313- Extract a `Connection` abstraction from driver - #800
4314- Create `connections/` directory for debugger protocol connection classes - #822
4315- **CLI:** convert CLI to typescript - #702
4316- **CLI:** split mobile emulation and network emulation into separate `--disable-device-emulation` and `--disable-network-throttling` flags - #747
4317- **CLI:** add more explicit TS typing - #825
4318- **Extension:** simplify reloading clean state at end of run - #813, #816
4319
4320### Dependencies
4321- Bump speedline to 1.0.3 - #785
4322- Added [typescript](https://www.npmjs.com/package/typescript) - #702
4323- Removed [chrome-remote-interface](https://www.npmjs.com/package/chrome-remote-interface); added [ws](https://www.npmjs.com/package/ws) - #800
4324
4325
4326
4327
4328<a name="1.1.6"></a>
4329## 1.1.6 (2016-10-12)
4330
4331* 1.1.6 ([f80e121](https://github.com/GoogleChrome/lighthouse/commit/f80e121))
4332* Add yarn.lock (#765) ([b44e69d](https://github.com/GoogleChrome/lighthouse/commit/b44e69d))
4333* Fix NaN% in CLI report (#763) ([a21ec65](https://github.com/GoogleChrome/lighthouse/commit/a21ec65)), closes [#763](https://github.com/GoogleChrome/lighthouse/issues/763)
4334* Replace instances of 'not unfunctioning' with 'still functional' (#764) ([5476243](https://github.com/GoogleChrome/lighthouse/commit/5476243))
4335* Temporarily disable cache contains start_url audit in config (#766) ([f444703](https://github.com/GoogleChrome/lighthouse/commit/f444703))
4336* docs: favor installing stable package from npm instead of Github master ([4b8ef79](https://github.com/GoogleChrome/lighthouse/commit/4b8ef79))
4337* chore: tweak eslintignore. ([fde5452](https://github.com/GoogleChrome/lighthouse/commit/fde5452))
4338
4339
4340
4341<a name="1.1.5"></a>
4342## 1.1.5 (2016-10-10)
4343[full changelog](https://github.com/GoogleChrome/lighthouse/compare/1.1.4...1.1.5)
4344
4345### Features
4346- Enable passing in a custom `pauseAfterLoad` option #697
4347- Wait until network has settled before considering page as loaded #714
4348- Support dynamic plugins in lighthouse config #730
4349- **Audit:** add DBW AppCache audit #681, #687
4350- **Audit:** add DBW WebSQL audit #691
4351- **Audit:** add DBW requests-should-be-over-h2 audit #700
4352- **Audit:** add DBW `Date.now()` -> `performance.now()` audit #707
4353- **Audit:** add DBW `console.time()` -> `performance.mark()` audit #712
4354- **Audit:** add DBW `document.write()` audit #716
4355- **CLI:** add `chrome-debug` binary to launch the debuggable standalone chrome #678
4356- **CLI:** reporter pretty formatting #682
4357- **CLI:** add `npm run dbw` to run DoBetterWeb audits #696
4358- **Extension:** print errors thrown from handlebars #731
4359- **Report:** add version number #673
4360- **Report:** add `helpText` associated with audit results #695
4361- **Report:** add version number on all report formats #749
4362- **Report:** tighter vertical whitespace in HTML report #754
4363- **Report:** add `generatedTime` property in json output #752
4364- **Report:** add toggle to display `helpText` #751
4365
4366### Bug Fixes
4367- Remove old `auditWhitelist` argument #676
4368- Stop clearing cookies when run #717
4369- Allow updated speedline to display results for traces with fewer than three frames #745
4370- Sort trace events by timestamp before calculating FMP #756
4371- **CLI:** add support for Windows 10 without Chrome Canary #690
4372- **CLI:** fix screenshot save via `--save-assets` #711
4373- **CLI:** fix `--mobile` flag #721
4374- **Extension:** fixes for updated dependencies #734
4375- **Report:** add fallback font for url heading #674
4376- **Testing:** loosen path requirement for closure formatter replacement #701
4377- **Testing:** handle http-redirect gatherer promise rejections #729
4378- **Testing:** handle https gatherer promise rejections #738
4379- **Testing:** handle promise rejections in runner testing #739
4380
4381### Refactor
4382- Automatically cache computed artifacts #675
4383- Streamline extensible gather and audit loading #679, #692
4384- Add `'use strict';` to files where it was missing #694
4385- Handle `sendCommand` promise rejections #703
4386- Rename of some `config.json` properties #727
4387- **Extension:** improve `queryCurrentTab` impl #680
4388- **Testing:** stronger `user-timing` test assertions #732
4389- **Testing:** run coveralls only after build success #733
4390- **Testing:** fix tests which were unconditionally passing failed assertions #737
4391
4392### Dependencies
4393- Bump [catapult/traceviewer](https://github.com/catapult-project/catapult/) to latest #723
4394- Bump [chrome-devtools-frontend](https://github.com/ChromeDevTools/devtools-frontend) to 1.0.401423 #724
4395- Bump speedline to 1.0.0 #726
4396- Bump speedline to 1.0.1 (now handles traces with one, two, or three screenshots) #728
4397
4398
4399
4400
4401<a name="1.1.3"></a>
4402## 1.1.3 (2016-09-06)
4403
4404* 1.1.3 ([a5bbe23](https://github.com/GoogleChrome/lighthouse/commit/a5bbe23))
4405* about:blank navigation moved to before gatherer.beforeClass() ([8cf3841](https://github.com/GoogleChrome/lighthouse/commit/8cf3841))
4406* add comment on npm explore ([5b36ebb](https://github.com/GoogleChrome/lighthouse/commit/5b36ebb))
4407* add context to aggregator error strings ([ab96e71](https://github.com/GoogleChrome/lighthouse/commit/ab96e71))
4408* Add custom config example. Just the perf stuff. (#603) ([ef4044a](https://github.com/GoogleChrome/lighthouse/commit/ef4044a))
4409* Add empty API-and-internals.md doc ([fb690be](https://github.com/GoogleChrome/lighthouse/commit/fb690be))
4410* add goOffline/goOnline methods to driver ([ceb5f36](https://github.com/GoogleChrome/lighthouse/commit/ceb5f36))
4411* added some docs about running LH headless. ([8a176e1](https://github.com/GoogleChrome/lighthouse/commit/8a176e1))
4412* Added test suffix to all tests ([e9110bf](https://github.com/GoogleChrome/lighthouse/commit/e9110bf))
4413* Addresses comments ([8c0c05c](https://github.com/GoogleChrome/lighthouse/commit/8c0c05c))
4414* Adds support for custom audits and gatherers ([bab838b](https://github.com/GoogleChrome/lighthouse/commit/bab838b))
4415* Asset saver test fixup. ([d24c91e](https://github.com/GoogleChrome/lighthouse/commit/d24c91e))
4416* assetsaver. write real traces to disk. ([034e9a6](https://github.com/GoogleChrome/lighthouse/commit/034e9a6))
4417* Attempt to fix the tests ([34509b1](https://github.com/GoogleChrome/lighthouse/commit/34509b1))
4418* cache start url audit is Alpha ([65778d1](https://github.com/GoogleChrome/lighthouse/commit/65778d1))
4419* Changed config/index.js to config/config.js ([2e717fe](https://github.com/GoogleChrome/lighthouse/commit/2e717fe))
4420* config/config. ([5572aab](https://github.com/GoogleChrome/lighthouse/commit/5572aab))
4421* correctly fall back on erroneous manifest display modes ([fc10f5b](https://github.com/GoogleChrome/lighthouse/commit/fc10f5b))
4422* delete page reload/navigate logic since we always navigate ([1810c61](https://github.com/GoogleChrome/lighthouse/commit/1810c61))
4423* eliminate non-functional loadPage cli flag ([990a3c7](https://github.com/GoogleChrome/lighthouse/commit/990a3c7))
4424* filterPasses -> validatePasses (#608) ([1fb77ae](https://github.com/GoogleChrome/lighthouse/commit/1fb77ae))
4425* fix audit, gatherer, artifact browserify import ([1ddb8b1](https://github.com/GoogleChrome/lighthouse/commit/1ddb8b1))
4426* Fix eslint issues in extension ([6be4acf](https://github.com/GoogleChrome/lighthouse/commit/6be4acf))
4427* fix jsconfig for vscode. ([02dfba2](https://github.com/GoogleChrome/lighthouse/commit/02dfba2))
4428* Fixed headless documentation ([58e5be5](https://github.com/GoogleChrome/lighthouse/commit/58e5be5))
4429* Fixes TTI not being counted in overall score ([82c5051](https://github.com/GoogleChrome/lighthouse/commit/82c5051))
4430* headless docs: adjustments to pr #623 ([364ba40](https://github.com/GoogleChrome/lighthouse/commit/364ba40))
4431* Introduce computedArtifacts (#583) ([c8662e3](https://github.com/GoogleChrome/lighthouse/commit/c8662e3))
4432* Keep track of the document URL post-redirects (#582) ([ac70731](https://github.com/GoogleChrome/lighthouse/commit/ac70731))
4433* launch-chrome: inform user about Chrome launch. refactor & cleanup. ([fdff2ae](https://github.com/GoogleChrome/lighthouse/commit/fdff2ae))
4434* merge latest manifest/display tests. ([af716df](https://github.com/GoogleChrome/lighthouse/commit/af716df))
4435* mocha tests unfortch can't rely on globbing ([35e649a](https://github.com/GoogleChrome/lighthouse/commit/35e649a))
4436* move manifest parser test to correct directory ([35eb5a1](https://github.com/GoogleChrome/lighthouse/commit/35eb5a1))
4437* move SW version test to audit to use possibly redirected URL ([46e1458](https://github.com/GoogleChrome/lighthouse/commit/46e1458))
4438* Moves from XHR to DevTools Protocol for manifest retrieval (#600) ([74690f1](https://github.com/GoogleChrome/lighthouse/commit/74690f1))
4439* overwrite loadData only when configured to ([b798f89](https://github.com/GoogleChrome/lighthouse/commit/b798f89))
4440* parse URLs in Web App Manifest relative to manifest itself ([f45ae69](https://github.com/GoogleChrome/lighthouse/commit/f45ae69))
4441* properly throw debug error when page does not include manifest ([6d2ae74](https://github.com/GoogleChrome/lighthouse/commit/6d2ae74))
4442* Readded $DISPLAY ([1b14da8](https://github.com/GoogleChrome/lighthouse/commit/1b14da8))
4443* refactor of gather-runner to clarify lifecycle ([8c5e7d1](https://github.com/GoogleChrome/lighthouse/commit/8c5e7d1))
4444* Refactor the JSON output. (#567) ([703ded6](https://github.com/GoogleChrome/lighthouse/commit/703ded6))
4445* Remove find command in runmocha ([81653a4](https://github.com/GoogleChrome/lighthouse/commit/81653a4))
4446* remove redundant gatherer lifecycle methods ([ac2f62d](https://github.com/GoogleChrome/lighthouse/commit/ac2f62d))
4447* rename computed artifact tests. ([5d20fa8](https://github.com/GoogleChrome/lighthouse/commit/5d20fa8))
4448* Rename lighthouse-cli tests as well ([9ee4c57](https://github.com/GoogleChrome/lighthouse/commit/9ee4c57))
4449* Revamp of the offline.js gatherer ([2b39d27](https://github.com/GoogleChrome/lighthouse/commit/2b39d27))
4450* Revamp smoketest, include offline & SW test ([543b422](https://github.com/GoogleChrome/lighthouse/commit/543b422))
4451* review feedback ([6add53a](https://github.com/GoogleChrome/lighthouse/commit/6add53a))
4452* Run audits sequentially. ([8fe81d8](https://github.com/GoogleChrome/lighthouse/commit/8fe81d8))
4453* s/traceName/passName ([f300f67](https://github.com/GoogleChrome/lighthouse/commit/f300f67))
4454* Save audit list into storage so it's kept for the next run (#595) ([5c72d72](https://github.com/GoogleChrome/lighthouse/commit/5c72d72))
4455* smoke test: clean up backgrounded processes. ([74c5f9c](https://github.com/GoogleChrome/lighthouse/commit/74c5f9c))
4456* squish saveArtifacts and saveAssets together. ([ea23dbd](https://github.com/GoogleChrome/lighthouse/commit/ea23dbd))
4457* support collecting network records per pass ([4ef3c98](https://github.com/GoogleChrome/lighthouse/commit/4ef3c98))
4458* terminology fixes and docs added to extension ([8dbd6fa](https://github.com/GoogleChrome/lighthouse/commit/8dbd6fa))
4459* Update first-meaningful-paint.js ([add0f03](https://github.com/GoogleChrome/lighthouse/commit/add0f03))
4460* update offline gatherer to use network recording changes ([db69edd](https://github.com/GoogleChrome/lighthouse/commit/db69edd))
4461* Update tracing-processor.js ([b526eb3](https://github.com/GoogleChrome/lighthouse/commit/b526eb3))
4462* readme: updates about m52, etc. ([54b93b9](https://github.com/GoogleChrome/lighthouse/commit/54b93b9))
4463* eslint: no longer ignore all of lighthouse-extension (#613) ([5e42394](https://github.com/GoogleChrome/lighthouse/commit/5e42394))
4464* docs: headless setup. ([9cb1536](https://github.com/GoogleChrome/lighthouse/commit/9cb1536))
4465* README: add link to debugging protocol and viewer ([7ba8830](https://github.com/GoogleChrome/lighthouse/commit/7ba8830))
4466* README: remove outdated install instructions ([5996db7](https://github.com/GoogleChrome/lighthouse/commit/5996db7))
4467
4468
4469
4470<a name="1.1.2"></a>
4471## 1.1.2 (2016-08-06)
4472
4473* 1.1.2 ([0269917](https://github.com/GoogleChrome/lighthouse/commit/0269917))
4474* addressing brendan's review for ALL the brownie points. ([685bda0](https://github.com/GoogleChrome/lighthouse/commit/685bda0))
4475* bump extension to 1.1.2 ([1d745c3](https://github.com/GoogleChrome/lighthouse/commit/1d745c3))
4476* Fixed links to small buttons ([f9de055](https://github.com/GoogleChrome/lighthouse/commit/f9de055))
4477* Generate audit list from configJson ([1b1cbdf](https://github.com/GoogleChrome/lighthouse/commit/1b1cbdf))
4478* Generate audit options in extension from configJSON ([a4bfc04](https://github.com/GoogleChrome/lighthouse/commit/a4bfc04))
4479* Update manifest-background-color.js ([38ba8a2](https://github.com/GoogleChrome/lighthouse/commit/38ba8a2))
4480
4481
4482
4483<a name="1.1.1"></a>
4484## 1.1.1 (2016-08-05)
4485
4486* 1.1.1 ([ed8e056](https://github.com/GoogleChrome/lighthouse/commit/ed8e056))
4487* Add and adjust cache-start-url test coverage ([81e98d0](https://github.com/GoogleChrome/lighthouse/commit/81e98d0))
4488* Add extra assertions on the state of debugString ([c7884d7](https://github.com/GoogleChrome/lighthouse/commit/c7884d7))
4489* Added audit configurations to extension ([561efc2](https://github.com/GoogleChrome/lighthouse/commit/561efc2))
4490* bump extension to 1.1.0 (now matches npm module) ([699eafd](https://github.com/GoogleChrome/lighthouse/commit/699eafd))
4491* bump extension to 1.1.1 ([ac4785e](https://github.com/GoogleChrome/lighthouse/commit/ac4785e))
4492* Clean up CLI logging, moving protocol work to --verbose. (#556) ([6663f6b](https://github.com/GoogleChrome/lighthouse/commit/6663f6b))
4493* cleanTrace acts on the whole trace ([fa837c3](https://github.com/GoogleChrome/lighthouse/commit/fa837c3))
4494* Delete launch-chrome.sh ([e90b128](https://github.com/GoogleChrome/lighthouse/commit/e90b128))
4495* Fix exception on missing manifest start_url ([269b5a8](https://github.com/GoogleChrome/lighthouse/commit/269b5a8))
4496* handle old and new trace object format ([7c9c44f](https://github.com/GoogleChrome/lighthouse/commit/7c9c44f))
4497* Manifest tests: Always use the manifest parser ([12bfb3a](https://github.com/GoogleChrome/lighthouse/commit/12bfb3a))
4498* sourcemaps for the extension off, to avoid the 4MB of tax. ([bfd3b02](https://github.com/GoogleChrome/lighthouse/commit/bfd3b02))
4499* Tweak to status messages. ([b914ea1](https://github.com/GoogleChrome/lighthouse/commit/b914ea1))
4500
4501
4502
4503<a name="1.1.0"></a>
4504# 1.1.0 (2016-08-02)
4505
4506* 1.1.0 ([d9a7f84](https://github.com/GoogleChrome/lighthouse/commit/d9a7f84))
4507* add test for traceviewer's require not throwing. ([7293f6e](https://github.com/GoogleChrome/lighthouse/commit/7293f6e))
4508* bump traceviewer to master. ([a628f62](https://github.com/GoogleChrome/lighthouse/commit/a628f62))
4509* clarify chrome remote interface var in CLI driver ([b6592d4](https://github.com/GoogleChrome/lighthouse/commit/b6592d4))
4510* cleanup of extension driver attachment and event registration ([69622b8](https://github.com/GoogleChrome/lighthouse/commit/69622b8))
4511* fix off-by-one error causing Infinity in 100% EIL ([2737165](https://github.com/GoogleChrome/lighthouse/commit/2737165))
4512* Fix traceviewer update instructions in README ([2f29085](https://github.com/GoogleChrome/lighthouse/commit/2f29085))
4513* Fixed version argument in yargs to display current cli version ([504ea95](https://github.com/GoogleChrome/lighthouse/commit/504ea95))
4514* handle new require for Mann-Whitney U statistics test. ([e0e1052](https://github.com/GoogleChrome/lighthouse/commit/e0e1052))
4515* Improve check for used JS features (#544) ([4f43470](https://github.com/GoogleChrome/lighthouse/commit/4f43470))
4516* move driver event handling to base class ([07b3ccb](https://github.com/GoogleChrome/lighthouse/commit/07b3ccb))
4517* Refactor npm scripts for mocha ([59fdea9](https://github.com/GoogleChrome/lighthouse/commit/59fdea9))
4518* switch to trace viewer's lean_config, instead of including ALL importers. ([7202494](https://github.com/GoogleChrome/lighthouse/commit/7202494))
4519* trace reading: only bind to the first tracingComplete event. ([fe634e7](https://github.com/GoogleChrome/lighthouse/commit/fe634e7))
4520* Update readme.md with trace changes. ([ab76af1](https://github.com/GoogleChrome/lighthouse/commit/ab76af1))
4521* extension: Don't lint in the watch loop. ([999d3bf](https://github.com/GoogleChrome/lighthouse/commit/999d3bf))
4522* extension: exclude source-map module from browserified bundles. ([61b8de3](https://github.com/GoogleChrome/lighthouse/commit/61b8de3))
4523* extension: log exceptions to bg page console. ([9d9642c](https://github.com/GoogleChrome/lighthouse/commit/9d9642c))
4524
4525
4526
4527<a name="1.0.6"></a>
4528## 1.0.6 (2016-07-28)
4529
4530* 1.0.6 ([e8bb926](https://github.com/GoogleChrome/lighthouse/commit/e8bb926))
4531* Adds auto-requested geolocation audit (#510) ([60a06c5](https://github.com/GoogleChrome/lighthouse/commit/60a06c5))
4532* Adds content width audit (#493) ([f9bdc7f](https://github.com/GoogleChrome/lighthouse/commit/f9bdc7f))
4533* Checks cache for start URL (#507) ([4a66309](https://github.com/GoogleChrome/lighthouse/commit/4a66309))
4534* Cleanup harmony scripts #513 (#516) ([da09ffb](https://github.com/GoogleChrome/lighthouse/commit/da09ffb))
4535* compat note about firstContentfulPaint trace event. ([3e81a6d](https://github.com/GoogleChrome/lighthouse/commit/3e81a6d))
4536* config requires absolute paths ([9560a42](https://github.com/GoogleChrome/lighthouse/commit/9560a42))
4537* delete lighthouse-core/package.json ([d07719e](https://github.com/GoogleChrome/lighthouse/commit/d07719e))
4538* Do the last (clean-state) reload in parallel with finishing the report (#522) ([c14e7a3](https://github.com/GoogleChrome/lighthouse/commit/c14e7a3))
4539* Extension popup: styling ([50c3ced](https://github.com/GoogleChrome/lighthouse/commit/50c3ced))
4540* Faster smoketest. Fix Flaky works-offline gather (#506) ([2fdde48](https://github.com/GoogleChrome/lighthouse/commit/2fdde48)), closes [#506](https://github.com/GoogleChrome/lighthouse/issues/506)
4541* Fix (and speed up) extension browserify post-config refactor. (#499) ([563ae0c](https://github.com/GoogleChrome/lighthouse/commit/563ae0c)), closes [#499](https://github.com/GoogleChrome/lighthouse/issues/499)
4542* Fix cachecontents test on HTTP pages ([e6fa594](https://github.com/GoogleChrome/lighthouse/commit/e6fa594))
4543* Fix scoring exception in handlebars (#509) ([bcff128](https://github.com/GoogleChrome/lighthouse/commit/bcff128)), closes [#509](https://github.com/GoogleChrome/lighthouse/issues/509)
4544* Fixes lint errors ([bd5f8e1](https://github.com/GoogleChrome/lighthouse/commit/bd5f8e1))
4545* Handles ports for SW. (#535) ([8c39f91](https://github.com/GoogleChrome/lighthouse/commit/8c39f91)), closes [#532](https://github.com/GoogleChrome/lighthouse/issues/532)
4546* incl critical-request-chains in traceprocessor example ([4636ffe](https://github.com/GoogleChrome/lighthouse/commit/4636ffe))
4547* manifest display must be one of the 3 allowed values. ([98c4980](https://github.com/GoogleChrome/lighthouse/commit/98c4980))
4548* move driver/ to gather/ ([35d0360](https://github.com/GoogleChrome/lighthouse/commit/35d0360))
4549* Moved everything from lighthouse-core to ligthouse ([1b998a3](https://github.com/GoogleChrome/lighthouse/commit/1b998a3))
4550* note about excluded cpu profile trace category. ([4f66e0d](https://github.com/GoogleChrome/lighthouse/commit/4f66e0d))
4551* Removes the 'module' folder from main. ([07e4958](https://github.com/GoogleChrome/lighthouse/commit/07e4958))
4552* Removes unused test ([3585eef](https://github.com/GoogleChrome/lighthouse/commit/3585eef))
4553* rename gatherer base class to gatherer ([0c7bef7](https://github.com/GoogleChrome/lighthouse/commit/0c7bef7))
4554* Reuse existing tab fallback (for Chrome headless) ([27d3ed8](https://github.com/GoogleChrome/lighthouse/commit/27d3ed8))
4555* Show the test progress (#517) ([ffde8e7](https://github.com/GoogleChrome/lighthouse/commit/ffde8e7))
4556* Skip offline-ready smoketest (#520) ([5d97d38](https://github.com/GoogleChrome/lighthouse/commit/5d97d38))
4557* smoke test: simplify --harmony branching. check for viewport ([d45883a](https://github.com/GoogleChrome/lighthouse/commit/d45883a))
4558* This is a 0.1 definition of Time to Interactive (TTI) which considers ([d0d3829](https://github.com/GoogleChrome/lighthouse/commit/d0d3829))
4559* Trace buckets (#531) ([1275762](https://github.com/GoogleChrome/lighthouse/commit/1275762))
4560* Traces that are passed in through the config file are cleaned ([1c62db3](https://github.com/GoogleChrome/lighthouse/commit/1c62db3))
4561* update error message on failed connection to use the npm explore npm run chrome cmd ([466beff](https://github.com/GoogleChrome/lighthouse/commit/466beff))
4562* Update manifest-display.js ([3b3e3de](https://github.com/GoogleChrome/lighthouse/commit/3b3e3de))
4563* Wait for trace data to arrive before continuing (#541) ([df6e013](https://github.com/GoogleChrome/lighthouse/commit/df6e013))
4564* tti: simplify logic grabbing 85% vis complete ([3906dee](https://github.com/GoogleChrome/lighthouse/commit/3906dee))
4565* smoketest: do full default run against our basic html page. (#534) ([3e632f9](https://github.com/GoogleChrome/lighthouse/commit/3e632f9))
4566* cli: use logger to print status messages (#530) ([cc3cca4](https://github.com/GoogleChrome/lighthouse/commit/cc3cca4))
4567* travis: force install extension deps. ([b17f026](https://github.com/GoogleChrome/lighthouse/commit/b17f026))
4568* readme: include CLI flags ([d34e5bb](https://github.com/GoogleChrome/lighthouse/commit/d34e5bb))
4569* readme: notes for config & trace-processor usage ([eb81929](https://github.com/GoogleChrome/lighthouse/commit/eb81929))
4570* readme: notes on node/chrome version compat ([d960c79](https://github.com/GoogleChrome/lighthouse/commit/d960c79))
4571* readme: update dep graph visualization ([0435803](https://github.com/GoogleChrome/lighthouse/commit/0435803))
4572* Travis: enable testing of node v4 + --harmony (#501) ([fe5f57d](https://github.com/GoogleChrome/lighthouse/commit/fe5f57d))
4573
4574
4575
4576<a name="1.0.5"></a>
4577## 1.0.5 (2016-07-08)
4578
4579* 1.0.5 ([90ffa1a](https://github.com/GoogleChrome/lighthouse/commit/90ffa1a))
4580* CLI shouldn't necc exit on semver check ([dec44de](https://github.com/GoogleChrome/lighthouse/commit/dec44de))
4581* Install child folder deps through helper script (#500) ([e28ee77](https://github.com/GoogleChrome/lighthouse/commit/e28ee77))
4582
4583
4584
4585<a name="1.0.4"></a>
4586## 1.0.4 (2016-07-08)