lighthouse 10.4.0 → 11.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (288) hide show
  1. package/CONTRIBUTING.md +1 -1
  2. package/cli/cli-flags.d.ts +1 -6
  3. package/cli/cli-flags.js +0 -5
  4. package/cli/run.js +3 -10
  5. package/cli/sentry-prompt.js +4 -2
  6. package/cli/test/smokehouse/core-tests.js +0 -2
  7. package/cli/test/smokehouse/frontends/smokehouse-bin.js +24 -14
  8. package/cli/test/smokehouse/lighthouse-runners/bundle.d.ts +1 -2
  9. package/cli/test/smokehouse/lighthouse-runners/bundle.js +12 -21
  10. package/cli/test/smokehouse/lighthouse-runners/cli.d.ts +1 -3
  11. package/cli/test/smokehouse/lighthouse-runners/cli.js +3 -7
  12. package/cli/test/smokehouse/lighthouse-runners/devtools.d.ts +1 -5
  13. package/cli/test/smokehouse/lighthouse-runners/devtools.js +1 -12
  14. package/cli/test/smokehouse/readme.md +0 -2
  15. package/cli/test/smokehouse/report-assert.d.ts +1 -3
  16. package/cli/test/smokehouse/report-assert.js +2 -19
  17. package/cli/test/smokehouse/smokehouse.js +3 -32
  18. package/core/audits/accessibility/aria-allowed-role.d.ts +10 -0
  19. package/core/audits/accessibility/aria-allowed-role.js +46 -0
  20. package/core/audits/accessibility/image-redundant-alt.d.ts +10 -0
  21. package/core/audits/accessibility/image-redundant-alt.js +45 -0
  22. package/core/audits/accessibility/label-content-name-mismatch.d.ts +10 -0
  23. package/core/audits/accessibility/label-content-name-mismatch.js +44 -0
  24. package/core/audits/accessibility/skip-link.d.ts +10 -0
  25. package/core/audits/accessibility/skip-link.js +43 -0
  26. package/core/audits/accessibility/table-duplicate-name.d.ts +10 -0
  27. package/core/audits/accessibility/table-duplicate-name.js +44 -0
  28. package/core/audits/accessibility/target-size.js +1 -1
  29. package/core/audits/byte-efficiency/duplicated-javascript.js +2 -2
  30. package/core/audits/byte-efficiency/render-blocking-resources.js +1 -0
  31. package/core/audits/dobetterweb/uses-http2.d.ts +18 -1
  32. package/core/audits/dobetterweb/uses-http2.js +62 -16
  33. package/core/audits/installable-manifest.d.ts +1 -5
  34. package/core/audits/installable-manifest.js +2 -7
  35. package/core/audits/largest-contentful-paint-element.d.ts +0 -6
  36. package/core/audits/largest-contentful-paint-element.js +13 -15
  37. package/core/audits/metrics/{experimental-interaction-to-next-paint.d.ts → interaction-to-next-paint.d.ts} +3 -3
  38. package/core/audits/metrics/{experimental-interaction-to-next-paint.js → interaction-to-next-paint.js} +3 -3
  39. package/core/audits/uses-rel-preconnect.js +23 -8
  40. package/core/audits/work-during-interaction.js +2 -2
  41. package/core/computed/processed-navigation.d.ts +1 -1
  42. package/core/config/config-helpers.d.ts +3 -3
  43. package/core/config/config-helpers.js +5 -12
  44. package/core/config/config.js +1 -7
  45. package/core/config/constants.d.ts +0 -2
  46. package/core/config/constants.js +2 -18
  47. package/core/config/default-config.js +59 -53
  48. package/core/config/filters.js +1 -1
  49. package/core/config/validation.d.ts +7 -12
  50. package/core/config/validation.js +16 -26
  51. package/core/gather/base-artifacts.d.ts +4 -4
  52. package/core/gather/base-artifacts.js +2 -6
  53. package/core/gather/base-gatherer.d.ts +12 -37
  54. package/core/gather/base-gatherer.js +7 -54
  55. package/core/gather/driver/dom.d.ts +4 -4
  56. package/core/gather/driver/dom.js +2 -2
  57. package/core/gather/driver/environment.d.ts +4 -4
  58. package/core/gather/driver/environment.js +2 -2
  59. package/core/gather/driver/execution-context.d.ts +12 -3
  60. package/core/gather/driver/execution-context.js +34 -3
  61. package/core/gather/driver/navigation.d.ts +2 -2
  62. package/core/gather/driver/navigation.js +2 -5
  63. package/core/gather/driver/network-monitor.d.ts +7 -6
  64. package/core/gather/driver/network-monitor.js +4 -4
  65. package/core/gather/driver/network.d.ts +2 -2
  66. package/core/gather/driver/network.js +1 -1
  67. package/core/gather/driver/prepare.d.ts +10 -10
  68. package/core/gather/driver/prepare.js +10 -10
  69. package/core/gather/driver/service-workers.d.ts +4 -4
  70. package/core/gather/driver/service-workers.js +2 -2
  71. package/core/gather/driver/storage.d.ts +6 -6
  72. package/core/gather/driver/storage.js +3 -3
  73. package/core/gather/driver/target-manager.d.ts +6 -5
  74. package/core/gather/driver/target-manager.js +3 -3
  75. package/core/gather/driver/wait-for-condition.d.ts +14 -14
  76. package/core/gather/driver/wait-for-condition.js +8 -8
  77. package/core/gather/driver.d.ts +9 -6
  78. package/core/gather/driver.js +14 -4
  79. package/core/gather/fetcher.d.ts +3 -3
  80. package/core/gather/fetcher.js +1 -1
  81. package/core/gather/gatherers/accessibility.d.ts +4 -4
  82. package/core/gather/gatherers/accessibility.js +8 -3
  83. package/core/gather/gatherers/anchor-elements.d.ts +4 -4
  84. package/core/gather/gatherers/anchor-elements.js +4 -4
  85. package/core/gather/gatherers/bf-cache-failures.d.ts +8 -14
  86. package/core/gather/gatherers/bf-cache-failures.js +5 -14
  87. package/core/gather/gatherers/cache-contents.d.ts +4 -4
  88. package/core/gather/gatherers/cache-contents.js +3 -3
  89. package/core/gather/gatherers/console-messages.d.ts +6 -6
  90. package/core/gather/gatherers/console-messages.js +4 -4
  91. package/core/gather/gatherers/css-usage.d.ts +14 -14
  92. package/core/gather/gatherers/css-usage.js +9 -9
  93. package/core/gather/gatherers/devtools-log-compat.d.ts +5 -5
  94. package/core/gather/gatherers/devtools-log-compat.js +4 -4
  95. package/core/gather/gatherers/devtools-log.d.ts +6 -6
  96. package/core/gather/gatherers/devtools-log.js +4 -4
  97. package/core/gather/gatherers/dobetterweb/doctype.d.ts +4 -4
  98. package/core/gather/gatherers/dobetterweb/doctype.js +3 -3
  99. package/core/gather/gatherers/dobetterweb/domstats.d.ts +4 -4
  100. package/core/gather/gatherers/dobetterweb/domstats.js +3 -3
  101. package/core/gather/gatherers/dobetterweb/optimized-images.d.ts +10 -22
  102. package/core/gather/gatherers/dobetterweb/optimized-images.js +10 -27
  103. package/core/gather/gatherers/dobetterweb/response-compression.d.ts +6 -12
  104. package/core/gather/gatherers/dobetterweb/response-compression.js +14 -21
  105. package/core/gather/gatherers/dobetterweb/tags-blocking-first-paint.d.ts +8 -14
  106. package/core/gather/gatherers/dobetterweb/tags-blocking-first-paint.js +5 -14
  107. package/core/gather/gatherers/full-page-screenshot.d.ts +10 -10
  108. package/core/gather/gatherers/full-page-screenshot.js +7 -10
  109. package/core/gather/gatherers/global-listeners.d.ts +4 -4
  110. package/core/gather/gatherers/global-listeners.js +3 -3
  111. package/core/gather/gatherers/iframe-elements.d.ts +4 -4
  112. package/core/gather/gatherers/iframe-elements.js +3 -3
  113. package/core/gather/gatherers/image-elements.d.ts +10 -10
  114. package/core/gather/gatherers/image-elements.js +6 -6
  115. package/core/gather/gatherers/inputs.d.ts +4 -4
  116. package/core/gather/gatherers/inputs.js +3 -3
  117. package/core/gather/gatherers/inspector-issues.d.ts +8 -19
  118. package/core/gather/gatherers/inspector-issues.js +9 -26
  119. package/core/gather/gatherers/installability-errors.d.ts +6 -6
  120. package/core/gather/gatherers/installability-errors.js +4 -4
  121. package/core/gather/gatherers/js-usage.d.ts +6 -6
  122. package/core/gather/gatherers/js-usage.js +4 -4
  123. package/core/gather/gatherers/link-elements.d.ts +8 -20
  124. package/core/gather/gatherers/link-elements.js +7 -24
  125. package/core/gather/gatherers/main-document-content.d.ts +4 -16
  126. package/core/gather/gatherers/main-document-content.js +5 -23
  127. package/core/gather/gatherers/meta-elements.d.ts +4 -4
  128. package/core/gather/gatherers/meta-elements.js +3 -3
  129. package/core/gather/gatherers/network-user-agent.d.ts +5 -5
  130. package/core/gather/gatherers/network-user-agent.js +4 -4
  131. package/core/gather/gatherers/script-elements.d.ts +6 -11
  132. package/core/gather/gatherers/script-elements.js +4 -13
  133. package/core/gather/gatherers/scripts.d.ts +7 -6
  134. package/core/gather/gatherers/scripts.js +7 -9
  135. package/core/gather/gatherers/seo/embedded-content.d.ts +4 -4
  136. package/core/gather/gatherers/seo/embedded-content.js +3 -3
  137. package/core/gather/gatherers/seo/font-size.d.ts +6 -6
  138. package/core/gather/gatherers/seo/font-size.js +5 -5
  139. package/core/gather/gatherers/seo/robots-txt.d.ts +4 -4
  140. package/core/gather/gatherers/seo/robots-txt.js +3 -3
  141. package/core/gather/gatherers/seo/tap-targets.d.ts +8 -8
  142. package/core/gather/gatherers/seo/tap-targets.js +5 -5
  143. package/core/gather/gatherers/service-worker.d.ts +4 -10
  144. package/core/gather/gatherers/service-worker.js +3 -15
  145. package/core/gather/gatherers/source-maps.d.ts +11 -23
  146. package/core/gather/gatherers/source-maps.js +22 -53
  147. package/core/gather/gatherers/stacks.d.ts +7 -7
  148. package/core/gather/gatherers/stacks.js +6 -6
  149. package/core/gather/gatherers/trace-compat.d.ts +5 -5
  150. package/core/gather/gatherers/trace-compat.js +4 -4
  151. package/core/gather/gatherers/trace-elements.d.ts +13 -25
  152. package/core/gather/gatherers/trace-elements.js +19 -32
  153. package/core/gather/gatherers/trace.d.ts +8 -8
  154. package/core/gather/gatherers/trace.js +5 -5
  155. package/core/gather/gatherers/viewport-dimensions.d.ts +4 -4
  156. package/core/gather/gatherers/viewport-dimensions.js +3 -3
  157. package/core/gather/gatherers/web-app-manifest.d.ts +8 -8
  158. package/core/gather/gatherers/web-app-manifest.js +5 -5
  159. package/core/gather/navigation-runner.d.ts +9 -9
  160. package/core/gather/navigation-runner.js +14 -8
  161. package/core/gather/runner-helpers.d.ts +3 -3
  162. package/core/gather/runner-helpers.js +12 -4
  163. package/core/gather/session.d.ts +2 -2
  164. package/core/gather/session.js +1 -1
  165. package/core/gather/snapshot-runner.d.ts +2 -2
  166. package/core/gather/snapshot-runner.js +1 -1
  167. package/core/gather/timespan-runner.d.ts +2 -2
  168. package/core/gather/timespan-runner.js +1 -1
  169. package/core/index.cjs +0 -7
  170. package/core/index.d.ts +0 -15
  171. package/core/index.js +2 -40
  172. package/core/lib/asset-saver.js +14 -4
  173. package/core/lib/axe.js +1 -1
  174. package/core/lib/dependency-graph/simulator/network-analyzer.d.ts +28 -12
  175. package/core/lib/dependency-graph/simulator/network-analyzer.js +128 -100
  176. package/core/lib/emulation.d.ts +14 -14
  177. package/core/lib/emulation.js +7 -7
  178. package/core/lib/navigation-error.js +5 -0
  179. package/core/lib/network-recorder.d.ts +2 -1
  180. package/core/lib/network-recorder.js +1 -0
  181. package/core/lib/network-request.js +12 -3
  182. package/core/lib/page-functions.d.ts +10 -2
  183. package/core/lib/page-functions.js +85 -8
  184. package/core/lib/sentry.js +9 -2
  185. package/core/lib/stack-packs.js +4 -0
  186. package/core/runner.d.ts +8 -30
  187. package/core/runner.js +8 -39
  188. package/core/user-flow.d.ts +4 -4
  189. package/core/user-flow.js +2 -2
  190. package/dist/report/bundle.esm.js +2221 -5832
  191. package/dist/report/flow.js +2631 -235
  192. package/dist/report/standalone.js +2586 -234
  193. package/flow-report/src/i18n/i18n.d.ts +2 -2
  194. package/package.json +17 -24
  195. package/readme.md +3 -1
  196. package/report/assets/templates.html +3 -1
  197. package/report/renderer/category-renderer.d.ts +3 -2
  198. package/report/renderer/category-renderer.js +8 -4
  199. package/report/renderer/components.js +11 -5
  200. package/report/renderer/pwa-category-renderer.js +1 -1
  201. package/report/renderer/report-ui-features.js +9 -6
  202. package/report/renderer/report-utils.d.ts +1 -1
  203. package/report/renderer/report-utils.js +2 -2
  204. package/report/renderer/topbar-features.js +3 -0
  205. package/shared/localization/locales/ar-XB.json +185 -44
  206. package/shared/localization/locales/ar.json +185 -44
  207. package/shared/localization/locales/bg.json +185 -44
  208. package/shared/localization/locales/ca.json +190 -49
  209. package/shared/localization/locales/cs.json +185 -44
  210. package/shared/localization/locales/da.json +185 -44
  211. package/shared/localization/locales/de.json +185 -44
  212. package/shared/localization/locales/el.json +185 -44
  213. package/shared/localization/locales/en-GB.json +185 -44
  214. package/shared/localization/locales/en-US.json +99 -45
  215. package/shared/localization/locales/en-XA.json +185 -44
  216. package/shared/localization/locales/en-XL.json +99 -45
  217. package/shared/localization/locales/es-419.json +185 -44
  218. package/shared/localization/locales/es.json +185 -44
  219. package/shared/localization/locales/fi.json +185 -44
  220. package/shared/localization/locales/fil.json +185 -44
  221. package/shared/localization/locales/fr.json +185 -44
  222. package/shared/localization/locales/he.json +186 -45
  223. package/shared/localization/locales/hi.json +185 -44
  224. package/shared/localization/locales/hr.json +185 -44
  225. package/shared/localization/locales/hu.json +185 -44
  226. package/shared/localization/locales/id.json +185 -44
  227. package/shared/localization/locales/it.json +185 -44
  228. package/shared/localization/locales/ja.json +185 -44
  229. package/shared/localization/locales/ko.json +185 -44
  230. package/shared/localization/locales/lt.json +185 -44
  231. package/shared/localization/locales/lv.json +185 -44
  232. package/shared/localization/locales/nl.json +185 -44
  233. package/shared/localization/locales/no.json +185 -44
  234. package/shared/localization/locales/pl.json +185 -44
  235. package/shared/localization/locales/pt-PT.json +185 -44
  236. package/shared/localization/locales/pt.json +190 -49
  237. package/shared/localization/locales/ro.json +185 -44
  238. package/shared/localization/locales/ru.json +185 -44
  239. package/shared/localization/locales/sk.json +185 -44
  240. package/shared/localization/locales/sl.json +185 -44
  241. package/shared/localization/locales/sr-Latn.json +185 -44
  242. package/shared/localization/locales/sr.json +185 -44
  243. package/shared/localization/locales/sv.json +185 -44
  244. package/shared/localization/locales/ta.json +185 -44
  245. package/shared/localization/locales/te.json +185 -44
  246. package/shared/localization/locales/th.json +185 -44
  247. package/shared/localization/locales/tr.json +185 -44
  248. package/shared/localization/locales/uk.json +185 -44
  249. package/shared/localization/locales/vi.json +185 -44
  250. package/shared/localization/locales/zh-HK.json +185 -44
  251. package/shared/localization/locales/zh-TW.json +185 -44
  252. package/shared/localization/locales/zh.json +185 -44
  253. package/third-party/esbuild-plugins-polyfills/LICENSE +3 -0
  254. package/third-party/esbuild-plugins-polyfills/README.md +7 -0
  255. package/third-party/esbuild-plugins-polyfills/esbuild-polyfills.d.ts +9 -0
  256. package/third-party/esbuild-plugins-polyfills/esbuild-polyfills.js +129 -0
  257. package/tsconfig.json +2 -1
  258. package/types/artifacts.d.ts +16 -45
  259. package/types/config.d.ts +10 -52
  260. package/types/externs.d.ts +0 -2
  261. package/types/gatherer.d.ts +24 -47
  262. package/types/internal/rxjs.d.ts +26 -0
  263. package/types/internal/smokehouse.d.ts +1 -3
  264. package/types/lh.d.ts +0 -2
  265. package/types/lhr/settings.d.ts +1 -1
  266. package/core/audits/metrics/first-contentful-paint-3g.d.ts +0 -15
  267. package/core/audits/metrics/first-contentful-paint-3g.js +0 -69
  268. package/core/audits/resource-summary.d.ts +0 -16
  269. package/core/audits/resource-summary.js +0 -104
  270. package/core/audits/service-worker.d.ts +0 -46
  271. package/core/audits/service-worker.js +0 -182
  272. package/core/gather/gatherers/gatherer.d.ts +0 -46
  273. package/core/gather/gatherers/gatherer.js +0 -58
  274. package/core/legacy/config/config.d.ts +0 -107
  275. package/core/legacy/config/config.js +0 -566
  276. package/core/legacy/config/legacy-default-config.d.ts +0 -4
  277. package/core/legacy/config/legacy-default-config.js +0 -87
  278. package/core/legacy/gather/connections/connection.d.ts +0 -77
  279. package/core/legacy/gather/connections/connection.js +0 -196
  280. package/core/legacy/gather/connections/cri.d.ts +0 -27
  281. package/core/legacy/gather/connections/cri.js +0 -162
  282. package/core/legacy/gather/connections/raw.d.ts +0 -20
  283. package/core/legacy/gather/connections/raw.js +0 -57
  284. package/core/legacy/gather/driver.d.ts +0 -216
  285. package/core/legacy/gather/driver.js +0 -480
  286. package/core/legacy/gather/gather-runner.d.ts +0 -166
  287. package/core/legacy/gather/gather-runner.js +0 -590
  288. package/types/internal/lighthouse-logger.d.ts +0 -34
@@ -1,5 +1,5 @@
1
1
  export default ResponseCompression;
2
- declare class ResponseCompression extends FRGatherer {
2
+ declare class ResponseCompression extends BaseGatherer {
3
3
  /**
4
4
  * @param {LH.Artifacts.NetworkRequest[]} networkRecords
5
5
  * @return {LH.Artifacts['ResponseCompression']}
@@ -8,23 +8,17 @@ declare class ResponseCompression extends FRGatherer {
8
8
  /** @type {LH.Gatherer.GathererMeta<'DevtoolsLog'>} */
9
9
  meta: LH.Gatherer.GathererMeta<'DevtoolsLog'>;
10
10
  /**
11
- * @param {LH.Gatherer.FRTransitionalContext} context
11
+ * @param {LH.Gatherer.Context} context
12
12
  * @param {LH.Artifacts.NetworkRequest[]} networkRecords
13
13
  * @return {Promise<LH.Artifacts['ResponseCompression']>}
14
14
  */
15
- _getArtifact(context: LH.Gatherer.FRTransitionalContext, networkRecords: LH.Artifacts.NetworkRequest[]): Promise<LH.Artifacts['ResponseCompression']>;
15
+ getCompressibleRecords(context: LH.Gatherer.Context, networkRecords: LH.Artifacts.NetworkRequest[]): Promise<LH.Artifacts['ResponseCompression']>;
16
16
  /**
17
- * @param {LH.Gatherer.FRTransitionalContext<'DevtoolsLog'>} context
17
+ * @param {LH.Gatherer.Context<'DevtoolsLog'>} context
18
18
  * @return {Promise<LH.Artifacts['ResponseCompression']>}
19
19
  */
20
- getArtifact(context: LH.Gatherer.FRTransitionalContext<'DevtoolsLog'>): Promise<LH.Artifacts['ResponseCompression']>;
21
- /**
22
- * @param {LH.Gatherer.PassContext} passContext
23
- * @param {LH.Gatherer.LoadData} loadData
24
- * @return {Promise<LH.Artifacts['ResponseCompression']>}
25
- */
26
- afterPass(passContext: LH.Gatherer.PassContext, loadData: LH.Gatherer.LoadData): Promise<LH.Artifacts['ResponseCompression']>;
20
+ getArtifact(context: LH.Gatherer.Context<'DevtoolsLog'>): Promise<LH.Artifacts['ResponseCompression']>;
27
21
  }
28
- import FRGatherer from '../../base-gatherer.js';
22
+ import BaseGatherer from '../../base-gatherer.js';
29
23
  import { NetworkRequest } from '../../../lib/network-request.js';
30
24
  //# sourceMappingURL=response-compression.d.ts.map
@@ -13,9 +13,10 @@
13
13
  import {Buffer} from 'buffer';
14
14
  import {gzip} from 'zlib';
15
15
 
16
- import FRGatherer from '../../base-gatherer.js';
16
+ import log from 'lighthouse-logger';
17
+
18
+ import BaseGatherer from '../../base-gatherer.js';
17
19
  import UrlUtils from '../../../lib/url-utils.js';
18
- import {Sentry} from '../../../lib/sentry.js';
19
20
  import {NetworkRequest} from '../../../lib/network-request.js';
20
21
  import DevtoolsLog from '../devtools-log.js';
21
22
  import {fetchResponseBodyFromCache} from '../../driver/network.js';
@@ -39,7 +40,7 @@ const textResourceTypes = [
39
40
  NetworkRequest.TYPES.EventSource,
40
41
  ];
41
42
 
42
- class ResponseCompression extends FRGatherer {
43
+ class ResponseCompression extends BaseGatherer {
43
44
  /** @type {LH.Gatherer.GathererMeta<'DevtoolsLog'>} */
44
45
  meta = {
45
46
  supportedModes: ['timespan', 'navigation'],
@@ -91,11 +92,11 @@ class ResponseCompression extends FRGatherer {
91
92
  }
92
93
 
93
94
  /**
94
- * @param {LH.Gatherer.FRTransitionalContext} context
95
+ * @param {LH.Gatherer.Context} context
95
96
  * @param {LH.Artifacts.NetworkRequest[]} networkRecords
96
97
  * @return {Promise<LH.Artifacts['ResponseCompression']>}
97
98
  */
98
- async _getArtifact(context, networkRecords) {
99
+ async getCompressibleRecords(context, networkRecords) {
99
100
  const session = context.driver.defaultSession;
100
101
  const textRecords = ResponseCompression.filterUnoptimizedResponses(networkRecords);
101
102
 
@@ -119,12 +120,13 @@ class ResponseCompression extends FRGatherer {
119
120
  });
120
121
  });
121
122
  }).catch(err => {
122
- Sentry.captureException(err, {
123
- tags: {gatherer: 'ResponseCompression'},
124
- extra: {url: UrlUtils.elideDataURI(record.url)},
125
- level: 'warning',
126
- });
123
+ const isExpectedError = err?.message?.includes('No resource with given identifier found');
124
+ if (!isExpectedError) {
125
+ err.extra = {url: UrlUtils.elideDataURI(record.url)};
126
+ throw err;
127
+ }
127
128
 
129
+ log.error('ResponseCompression', err.message);
128
130
  record.gzipSize = undefined;
129
131
  return record;
130
132
  });
@@ -132,22 +134,13 @@ class ResponseCompression extends FRGatherer {
132
134
  }
133
135
 
134
136
  /**
135
- * @param {LH.Gatherer.FRTransitionalContext<'DevtoolsLog'>} context
137
+ * @param {LH.Gatherer.Context<'DevtoolsLog'>} context
136
138
  * @return {Promise<LH.Artifacts['ResponseCompression']>}
137
139
  */
138
140
  async getArtifact(context) {
139
141
  const devtoolsLog = context.dependencies.DevtoolsLog;
140
142
  const networkRecords = await NetworkRecords.request(devtoolsLog, context);
141
- return this._getArtifact(context, networkRecords);
142
- }
143
-
144
- /**
145
- * @param {LH.Gatherer.PassContext} passContext
146
- * @param {LH.Gatherer.LoadData} loadData
147
- * @return {Promise<LH.Artifacts['ResponseCompression']>}
148
- */
149
- async afterPass(passContext, loadData) {
150
- return this._getArtifact({...passContext, dependencies: {}}, loadData.networkRecords);
143
+ return this.getCompressibleRecords(context, networkRecords);
151
144
  }
152
145
  }
153
146
 
@@ -19,35 +19,29 @@ export type ScriptTag = {
19
19
  url: string;
20
20
  src: string;
21
21
  };
22
- declare class TagsBlockingFirstPaint extends FRGatherer {
22
+ declare class TagsBlockingFirstPaint extends BaseGatherer {
23
23
  /**
24
24
  * @param {Array<LH.Artifacts.NetworkRequest>} networkRecords
25
25
  * @return {Map<string, LH.Artifacts.NetworkRequest>}
26
26
  */
27
27
  static _filteredAndIndexedByUrl(networkRecords: Array<LH.Artifacts.NetworkRequest>): Map<string, LH.Artifacts.NetworkRequest>;
28
28
  /**
29
- * @param {LH.Gatherer.FRTransitionalDriver} driver
29
+ * @param {LH.Gatherer.Driver} driver
30
30
  * @param {Array<LH.Artifacts.NetworkRequest>} networkRecords
31
31
  * @return {Promise<Array<LH.Artifacts.TagBlockingFirstPaint>>}
32
32
  */
33
- static findBlockingTags(driver: LH.Gatherer.FRTransitionalDriver, networkRecords: Array<LH.Artifacts.NetworkRequest>): Promise<Array<LH.Artifacts.TagBlockingFirstPaint>>;
33
+ static findBlockingTags(driver: LH.Gatherer.Driver, networkRecords: Array<LH.Artifacts.NetworkRequest>): Promise<Array<LH.Artifacts.TagBlockingFirstPaint>>;
34
34
  /** @type {LH.Gatherer.GathererMeta<'DevtoolsLog'>} */
35
35
  meta: LH.Gatherer.GathererMeta<'DevtoolsLog'>;
36
36
  /**
37
- * @param {LH.Gatherer.FRTransitionalContext} context
37
+ * @param {LH.Gatherer.Context} context
38
38
  */
39
- startSensitiveInstrumentation(context: LH.Gatherer.FRTransitionalContext): Promise<void>;
39
+ startSensitiveInstrumentation(context: LH.Gatherer.Context): Promise<void>;
40
40
  /**
41
- * @param {LH.Gatherer.FRTransitionalContext<'DevtoolsLog'>} context
41
+ * @param {LH.Gatherer.Context<'DevtoolsLog'>} context
42
42
  * @return {Promise<LH.Artifacts['TagsBlockingFirstPaint']>}
43
43
  */
44
- getArtifact(context: LH.Gatherer.FRTransitionalContext<'DevtoolsLog'>): Promise<LH.Artifacts['TagsBlockingFirstPaint']>;
45
- /**
46
- * @param {LH.Gatherer.PassContext} passContext
47
- * @param {LH.Gatherer.LoadData} loadData
48
- * @return {Promise<LH.Artifacts['TagsBlockingFirstPaint']>}
49
- */
50
- afterPass(passContext: LH.Gatherer.PassContext, loadData: LH.Gatherer.LoadData): Promise<LH.Artifacts['TagsBlockingFirstPaint']>;
44
+ getArtifact(context: LH.Gatherer.Context<'DevtoolsLog'>): Promise<LH.Artifacts['TagsBlockingFirstPaint']>;
51
45
  }
52
- import FRGatherer from '../../base-gatherer.js';
46
+ import BaseGatherer from '../../base-gatherer.js';
53
47
  //# sourceMappingURL=tags-blocking-first-paint.d.ts.map
@@ -19,7 +19,7 @@
19
19
 
20
20
  import {NetworkRecords} from '../../../computed/network-records.js';
21
21
  import DevtoolsLog from '../devtools-log.js';
22
- import FRGatherer from '../../base-gatherer.js';
22
+ import BaseGatherer from '../../base-gatherer.js';
23
23
 
24
24
  /* global document, window, HTMLLinkElement, SVGScriptElement */
25
25
 
@@ -113,7 +113,7 @@ async function collectTagsThatBlockFirstPaint() {
113
113
  }
114
114
  /* c8 ignore stop */
115
115
 
116
- class TagsBlockingFirstPaint extends FRGatherer {
116
+ class TagsBlockingFirstPaint extends BaseGatherer {
117
117
  /** @type {LH.Gatherer.GathererMeta<'DevtoolsLog'>} */
118
118
  meta = {
119
119
  supportedModes: ['navigation'],
@@ -149,7 +149,7 @@ class TagsBlockingFirstPaint extends FRGatherer {
149
149
  }
150
150
 
151
151
  /**
152
- * @param {LH.Gatherer.FRTransitionalDriver} driver
152
+ * @param {LH.Gatherer.Driver} driver
153
153
  * @param {Array<LH.Artifacts.NetworkRequest>} networkRecords
154
154
  * @return {Promise<Array<LH.Artifacts.TagBlockingFirstPaint>>}
155
155
  */
@@ -206,7 +206,7 @@ class TagsBlockingFirstPaint extends FRGatherer {
206
206
  }
207
207
 
208
208
  /**
209
- * @param {LH.Gatherer.FRTransitionalContext} context
209
+ * @param {LH.Gatherer.Context} context
210
210
  */
211
211
  async startSensitiveInstrumentation(context) {
212
212
  const {executionContext} = context.driver;
@@ -215,7 +215,7 @@ class TagsBlockingFirstPaint extends FRGatherer {
215
215
  }
216
216
 
217
217
  /**
218
- * @param {LH.Gatherer.FRTransitionalContext<'DevtoolsLog'>} context
218
+ * @param {LH.Gatherer.Context<'DevtoolsLog'>} context
219
219
  * @return {Promise<LH.Artifacts['TagsBlockingFirstPaint']>}
220
220
  */
221
221
  async getArtifact(context) {
@@ -223,15 +223,6 @@ class TagsBlockingFirstPaint extends FRGatherer {
223
223
  const networkRecords = await NetworkRecords.request(devtoolsLog, context);
224
224
  return TagsBlockingFirstPaint.findBlockingTags(context.driver, networkRecords);
225
225
  }
226
-
227
- /**
228
- * @param {LH.Gatherer.PassContext} passContext
229
- * @param {LH.Gatherer.LoadData} loadData
230
- * @return {Promise<LH.Artifacts['TagsBlockingFirstPaint']>}
231
- */
232
- afterPass(passContext, loadData) {
233
- return TagsBlockingFirstPaint.findBlockingTags(passContext.driver, loadData.networkRecords);
234
- }
235
226
  }
236
227
 
237
228
  export default TagsBlockingFirstPaint;
@@ -1,19 +1,19 @@
1
1
  export default FullPageScreenshot;
2
- declare class FullPageScreenshot extends FRGatherer {
2
+ declare class FullPageScreenshot extends BaseGatherer {
3
3
  /**
4
- * @param {LH.Gatherer.FRTransitionalContext} context
4
+ * @param {LH.Gatherer.Context} context
5
5
  * @param {{height: number, width: number, mobile: boolean}} deviceMetrics
6
6
  */
7
- _resizeViewport(context: LH.Gatherer.FRTransitionalContext, deviceMetrics: {
7
+ _resizeViewport(context: LH.Gatherer.Context, deviceMetrics: {
8
8
  height: number;
9
9
  width: number;
10
10
  mobile: boolean;
11
11
  }): Promise<void>;
12
12
  /**
13
- * @param {LH.Gatherer.FRTransitionalContext} context
13
+ * @param {LH.Gatherer.Context} context
14
14
  * @return {Promise<LH.Result.FullPageScreenshot['screenshot']>}
15
15
  */
16
- _takeScreenshot(context: LH.Gatherer.FRTransitionalContext): Promise<LH.Result.FullPageScreenshot['screenshot']>;
16
+ _takeScreenshot(context: LH.Gatherer.Context): Promise<LH.Result.FullPageScreenshot['screenshot']>;
17
17
  /**
18
18
  * Gatherers can collect details about DOM nodes, including their position on the page.
19
19
  * Layout shifts occuring after a gatherer runs can cause these positions to be incorrect,
@@ -21,15 +21,15 @@ declare class FullPageScreenshot extends FRGatherer {
21
21
  * `getNodeDetails` maintains a collection of DOM objects in the page, which we can iterate
22
22
  * to re-collect the bounding client rectangle.
23
23
  * @see pageFunctions.getNodeDetails
24
- * @param {LH.Gatherer.FRTransitionalContext} context
24
+ * @param {LH.Gatherer.Context} context
25
25
  * @return {Promise<LH.Result.FullPageScreenshot['nodes']>}
26
26
  */
27
- _resolveNodes(context: LH.Gatherer.FRTransitionalContext): Promise<LH.Result.FullPageScreenshot['nodes']>;
27
+ _resolveNodes(context: LH.Gatherer.Context): Promise<LH.Result.FullPageScreenshot['nodes']>;
28
28
  /**
29
- * @param {LH.Gatherer.FRTransitionalContext} context
29
+ * @param {LH.Gatherer.Context} context
30
30
  * @return {Promise<LH.Artifacts['FullPageScreenshot']>}
31
31
  */
32
- getArtifact(context: LH.Gatherer.FRTransitionalContext): Promise<LH.Artifacts['FullPageScreenshot']>;
32
+ getArtifact(context: LH.Gatherer.Context): Promise<LH.Artifacts['FullPageScreenshot']>;
33
33
  }
34
- import FRGatherer from '../base-gatherer.js';
34
+ import BaseGatherer from '../base-gatherer.js';
35
35
  //# sourceMappingURL=full-page-screenshot.d.ts.map
@@ -6,10 +6,9 @@
6
6
 
7
7
  /* globals window getBoundingClientRect requestAnimationFrame */
8
8
 
9
- import FRGatherer from '../base-gatherer.js';
9
+ import BaseGatherer from '../base-gatherer.js';
10
10
  import * as emulation from '../../lib/emulation.js';
11
11
  import {pageFunctions} from '../../lib/page-functions.js';
12
- import {NetworkMonitor} from '../driver/network-monitor.js';
13
12
  import {waitForNetworkIdle} from '../driver/wait-for-condition.js';
14
13
 
15
14
  // JPEG quality setting
@@ -65,14 +64,14 @@ function waitForDoubleRaf() {
65
64
 
66
65
  /* c8 ignore stop */
67
66
 
68
- class FullPageScreenshot extends FRGatherer {
67
+ class FullPageScreenshot extends BaseGatherer {
69
68
  /** @type {LH.Gatherer.GathererMeta} */
70
69
  meta = {
71
70
  supportedModes: ['snapshot', 'timespan', 'navigation'],
72
71
  };
73
72
 
74
73
  /**
75
- * @param {LH.Gatherer.FRTransitionalContext} context
74
+ * @param {LH.Gatherer.Context} context
76
75
  * @param {{height: number, width: number, mobile: boolean}} deviceMetrics
77
76
  */
78
77
  async _resizeViewport(context, deviceMetrics) {
@@ -89,7 +88,7 @@ class FullPageScreenshot extends FRGatherer {
89
88
  const height = Math.min(fullHeight, MAX_WEBP_SIZE);
90
89
 
91
90
  // Setup network monitor before we change the viewport.
92
- const networkMonitor = new NetworkMonitor(context.driver.targetManager);
91
+ const networkMonitor = context.driver.networkMonitor;
93
92
  const waitForNetworkIdleResult = waitForNetworkIdle(session, networkMonitor, {
94
93
  pretendDCLAlreadyFired: true,
95
94
  networkQuietThresholdMs: 1000,
@@ -97,7 +96,6 @@ class FullPageScreenshot extends FRGatherer {
97
96
  idleEvent: 'network-critical-idle',
98
97
  isIdle: recorder => recorder.isCriticalIdle(),
99
98
  });
100
- await networkMonitor.enable();
101
99
 
102
100
  await session.sendCommand('Emulation.setDeviceMetricsOverride', {
103
101
  mobile: deviceMetrics.mobile,
@@ -113,14 +111,13 @@ class FullPageScreenshot extends FRGatherer {
113
111
  waitForNetworkIdleResult.promise,
114
112
  ]);
115
113
  waitForNetworkIdleResult.cancel();
116
- await networkMonitor.disable();
117
114
 
118
115
  // Now that new resources are (probably) fetched, wait long enough for a layout.
119
116
  await context.driver.executionContext.evaluate(waitForDoubleRaf, {args: []});
120
117
  }
121
118
 
122
119
  /**
123
- * @param {LH.Gatherer.FRTransitionalContext} context
120
+ * @param {LH.Gatherer.Context} context
124
121
  * @return {Promise<LH.Result.FullPageScreenshot['screenshot']>}
125
122
  */
126
123
  async _takeScreenshot(context) {
@@ -150,7 +147,7 @@ class FullPageScreenshot extends FRGatherer {
150
147
  * `getNodeDetails` maintains a collection of DOM objects in the page, which we can iterate
151
148
  * to re-collect the bounding client rectangle.
152
149
  * @see pageFunctions.getNodeDetails
153
- * @param {LH.Gatherer.FRTransitionalContext} context
150
+ * @param {LH.Gatherer.Context} context
154
151
  * @return {Promise<LH.Result.FullPageScreenshot['nodes']>}
155
152
  */
156
153
  async _resolveNodes(context) {
@@ -189,7 +186,7 @@ class FullPageScreenshot extends FRGatherer {
189
186
  }
190
187
 
191
188
  /**
192
- * @param {LH.Gatherer.FRTransitionalContext} context
189
+ * @param {LH.Gatherer.Context} context
193
190
  * @return {Promise<LH.Artifacts['FullPageScreenshot']>}
194
191
  */
195
192
  async getArtifact(context) {
@@ -1,5 +1,5 @@
1
1
  export default GlobalListeners;
2
- declare class GlobalListeners extends FRGatherer {
2
+ declare class GlobalListeners extends BaseGatherer {
3
3
  /**
4
4
  * @param {LH.Crdp.DOMDebugger.EventListener} listener
5
5
  * @return {listener is {type: 'pagehide'|'unload'|'visibilitychange'} & LH.Crdp.DOMDebugger.EventListener}
@@ -18,10 +18,10 @@ declare class GlobalListeners extends FRGatherer {
18
18
  */
19
19
  dedupeListeners(listeners: LH.Artifacts['GlobalListeners']): LH.Artifacts['GlobalListeners'];
20
20
  /**
21
- * @param {LH.Gatherer.FRTransitionalContext} passContext
21
+ * @param {LH.Gatherer.Context} passContext
22
22
  * @return {Promise<LH.Artifacts['GlobalListeners']>}
23
23
  */
24
- getArtifact(passContext: LH.Gatherer.FRTransitionalContext): Promise<LH.Artifacts['GlobalListeners']>;
24
+ getArtifact(passContext: LH.Gatherer.Context): Promise<LH.Artifacts['GlobalListeners']>;
25
25
  }
26
- import FRGatherer from '../base-gatherer.js';
26
+ import BaseGatherer from '../base-gatherer.js';
27
27
  //# sourceMappingURL=global-listeners.d.ts.map
@@ -13,9 +13,9 @@
13
13
 
14
14
  import log from 'lighthouse-logger';
15
15
 
16
- import FRGatherer from '../base-gatherer.js';
16
+ import BaseGatherer from '../base-gatherer.js';
17
17
 
18
- class GlobalListeners extends FRGatherer {
18
+ class GlobalListeners extends BaseGatherer {
19
19
  /** @type {LH.Gatherer.GathererMeta} */
20
20
  meta = {
21
21
  supportedModes: ['snapshot', 'timespan', 'navigation'],
@@ -57,7 +57,7 @@ class GlobalListeners extends FRGatherer {
57
57
  }
58
58
 
59
59
  /**
60
- * @param {LH.Gatherer.FRTransitionalContext} passContext
60
+ * @param {LH.Gatherer.Context} passContext
61
61
  * @return {Promise<LH.Artifacts['GlobalListeners']>}
62
62
  */
63
63
  async getArtifact(passContext) {
@@ -1,11 +1,11 @@
1
1
  export default IFrameElements;
2
- declare class IFrameElements extends FRGatherer {
2
+ declare class IFrameElements extends BaseGatherer {
3
3
  /**
4
- * @param {LH.Gatherer.FRTransitionalContext} passContext
4
+ * @param {LH.Gatherer.Context} passContext
5
5
  * @return {Promise<LH.Artifacts['IFrameElements']>}
6
6
  * @override
7
7
  */
8
- override getArtifact(passContext: LH.Gatherer.FRTransitionalContext): Promise<LH.Artifacts['IFrameElements']>;
8
+ override getArtifact(passContext: LH.Gatherer.Context): Promise<LH.Artifacts['IFrameElements']>;
9
9
  }
10
- import FRGatherer from '../base-gatherer.js';
10
+ import BaseGatherer from '../base-gatherer.js';
11
11
  //# sourceMappingURL=iframe-elements.d.ts.map
@@ -6,7 +6,7 @@
6
6
 
7
7
  /* global getNodeDetails */
8
8
 
9
- import FRGatherer from '../base-gatherer.js';
9
+ import BaseGatherer from '../base-gatherer.js';
10
10
  import {pageFunctions} from '../../lib/page-functions.js';
11
11
 
12
12
  /* eslint-env browser, node */
@@ -37,14 +37,14 @@ function collectIFrameElements() {
37
37
  }
38
38
  /* c8 ignore stop */
39
39
 
40
- class IFrameElements extends FRGatherer {
40
+ class IFrameElements extends BaseGatherer {
41
41
  /** @type {LH.Gatherer.GathererMeta} */
42
42
  meta = {
43
43
  supportedModes: ['snapshot', 'navigation'],
44
44
  };
45
45
 
46
46
  /**
47
- * @param {LH.Gatherer.FRTransitionalContext} passContext
47
+ * @param {LH.Gatherer.Context} passContext
48
48
  * @return {Promise<LH.Artifacts['IFrameElements']>}
49
49
  * @override
50
50
  */
@@ -1,35 +1,35 @@
1
1
  export default ImageElements;
2
- declare class ImageElements extends FRGatherer {
2
+ declare class ImageElements extends BaseGatherer {
3
3
  /** @type {Map<string, {naturalWidth: number, naturalHeight: number}>} */
4
4
  _naturalSizeCache: Map<string, {
5
5
  naturalWidth: number;
6
6
  naturalHeight: number;
7
7
  }>;
8
8
  /**
9
- * @param {LH.Gatherer.FRTransitionalDriver} driver
9
+ * @param {LH.Gatherer.Driver} driver
10
10
  * @param {LH.Artifacts.ImageElement} element
11
11
  */
12
- fetchElementWithSizeInformation(driver: LH.Gatherer.FRTransitionalDriver, element: LH.Artifacts.ImageElement): Promise<void>;
12
+ fetchElementWithSizeInformation(driver: LH.Gatherer.Driver, element: LH.Artifacts.ImageElement): Promise<void>;
13
13
  /**
14
14
  * Images might be sized via CSS. In order to compute unsized-images failures, we need to collect
15
15
  * matched CSS rules to see if this is the case.
16
16
  * @url http://go/dwoqq (googlers only)
17
- * @param {LH.Gatherer.FRProtocolSession} session
17
+ * @param {LH.Gatherer.ProtocolSession} session
18
18
  * @param {string} devtoolsNodePath
19
19
  * @param {LH.Artifacts.ImageElement} element
20
20
  */
21
- fetchSourceRules(session: LH.Gatherer.FRProtocolSession, devtoolsNodePath: string, element: LH.Artifacts.ImageElement): Promise<void>;
21
+ fetchSourceRules(session: LH.Gatherer.ProtocolSession, devtoolsNodePath: string, element: LH.Artifacts.ImageElement): Promise<void>;
22
22
  /**
23
23
  *
24
- * @param {LH.Gatherer.FRTransitionalDriver} driver
24
+ * @param {LH.Gatherer.Driver} driver
25
25
  * @param {LH.Artifacts.ImageElement[]} elements
26
26
  */
27
- collectExtraDetails(driver: LH.Gatherer.FRTransitionalDriver, elements: LH.Artifacts.ImageElement[]): Promise<void>;
27
+ collectExtraDetails(driver: LH.Gatherer.Driver, elements: LH.Artifacts.ImageElement[]): Promise<void>;
28
28
  /**
29
- * @param {LH.Gatherer.FRTransitionalContext} context
29
+ * @param {LH.Gatherer.Context} context
30
30
  * @return {Promise<LH.Artifacts['ImageElements']>}
31
31
  */
32
- getArtifact(context: LH.Gatherer.FRTransitionalContext): Promise<LH.Artifacts['ImageElements']>;
32
+ getArtifact(context: LH.Gatherer.Context): Promise<LH.Artifacts['ImageElements']>;
33
33
  }
34
- import FRGatherer from '../base-gatherer.js';
34
+ import BaseGatherer from '../base-gatherer.js';
35
35
  //# sourceMappingURL=image-elements.d.ts.map
@@ -11,7 +11,7 @@
11
11
 
12
12
  import log from 'lighthouse-logger';
13
13
 
14
- import FRGatherer from '../base-gatherer.js';
14
+ import BaseGatherer from '../base-gatherer.js';
15
15
  import {pageFunctions} from '../../lib/page-functions.js';
16
16
  import * as FontSize from './seo/font-size.js';
17
17
 
@@ -235,7 +235,7 @@ function getPixelArea(element) {
235
235
  return element.displayedHeight * element.displayedWidth;
236
236
  }
237
237
 
238
- class ImageElements extends FRGatherer {
238
+ class ImageElements extends BaseGatherer {
239
239
  /** @type {LH.Gatherer.GathererMeta} */
240
240
  meta = {
241
241
  supportedModes: ['snapshot', 'timespan', 'navigation'],
@@ -248,7 +248,7 @@ class ImageElements extends FRGatherer {
248
248
  }
249
249
 
250
250
  /**
251
- * @param {LH.Gatherer.FRTransitionalDriver} driver
251
+ * @param {LH.Gatherer.Driver} driver
252
252
  * @param {LH.Artifacts.ImageElement} element
253
253
  */
254
254
  async fetchElementWithSizeInformation(driver, element) {
@@ -276,7 +276,7 @@ class ImageElements extends FRGatherer {
276
276
  * Images might be sized via CSS. In order to compute unsized-images failures, we need to collect
277
277
  * matched CSS rules to see if this is the case.
278
278
  * @url http://go/dwoqq (googlers only)
279
- * @param {LH.Gatherer.FRProtocolSession} session
279
+ * @param {LH.Gatherer.ProtocolSession} session
280
280
  * @param {string} devtoolsNodePath
281
281
  * @param {LH.Artifacts.ImageElement} element
282
282
  */
@@ -302,7 +302,7 @@ class ImageElements extends FRGatherer {
302
302
 
303
303
  /**
304
304
  *
305
- * @param {LH.Gatherer.FRTransitionalDriver} driver
305
+ * @param {LH.Gatherer.Driver} driver
306
306
  * @param {LH.Artifacts.ImageElement[]} elements
307
307
  */
308
308
  async collectExtraDetails(driver, elements) {
@@ -334,7 +334,7 @@ class ImageElements extends FRGatherer {
334
334
  }
335
335
 
336
336
  /**
337
- * @param {LH.Gatherer.FRTransitionalContext} context
337
+ * @param {LH.Gatherer.Context} context
338
338
  * @return {Promise<LH.Artifacts['ImageElements']>}
339
339
  */
340
340
  async getArtifact(context) {
@@ -1,10 +1,10 @@
1
1
  export default Inputs;
2
- declare class Inputs extends FRGatherer {
2
+ declare class Inputs extends BaseGatherer {
3
3
  /**
4
- * @param {LH.Gatherer.FRTransitionalContext} passContext
4
+ * @param {LH.Gatherer.Context} passContext
5
5
  * @return {Promise<LH.Artifacts['Inputs']>}
6
6
  */
7
- getArtifact(passContext: LH.Gatherer.FRTransitionalContext): Promise<LH.Artifacts['Inputs']>;
7
+ getArtifact(passContext: LH.Gatherer.Context): Promise<LH.Artifacts['Inputs']>;
8
8
  }
9
- import FRGatherer from '../base-gatherer.js';
9
+ import BaseGatherer from '../base-gatherer.js';
10
10
  //# sourceMappingURL=inputs.d.ts.map
@@ -6,7 +6,7 @@
6
6
 
7
7
  /* global getNodeDetails */
8
8
 
9
- import FRGatherer from '../base-gatherer.js';
9
+ import BaseGatherer from '../base-gatherer.js';
10
10
  import {pageFunctions} from '../../lib/page-functions.js';
11
11
 
12
12
  /* eslint-env browser, node */
@@ -93,14 +93,14 @@ function collectElements() {
93
93
  }
94
94
  /* c8 ignore stop */
95
95
 
96
- class Inputs extends FRGatherer {
96
+ class Inputs extends BaseGatherer {
97
97
  /** @type {LH.Gatherer.GathererMeta} */
98
98
  meta = {
99
99
  supportedModes: ['snapshot', 'navigation'],
100
100
  };
101
101
 
102
102
  /**
103
- * @param {LH.Gatherer.FRTransitionalContext} passContext
103
+ * @param {LH.Gatherer.Context} passContext
104
104
  * @return {Promise<LH.Artifacts['Inputs']>}
105
105
  */
106
106
  async getArtifact(passContext) {
@@ -1,5 +1,5 @@
1
1
  export default InspectorIssues;
2
- declare class InspectorIssues extends FRGatherer {
2
+ declare class InspectorIssues extends BaseGatherer {
3
3
  /** @type {LH.Gatherer.GathererMeta<'DevtoolsLog'>} */
4
4
  meta: LH.Gatherer.GathererMeta<'DevtoolsLog'>;
5
5
  /** @type {Array<LH.Crdp.Audits.InspectorIssue>} */
@@ -10,29 +10,18 @@ declare class InspectorIssues extends FRGatherer {
10
10
  */
11
11
  onIssueAdded(entry: LH.Crdp.Audits.IssueAddedEvent): void;
12
12
  /**
13
- * @param {LH.Gatherer.FRTransitionalContext} context
13
+ * @param {LH.Gatherer.Context} context
14
14
  */
15
- startInstrumentation(context: LH.Gatherer.FRTransitionalContext): Promise<void>;
15
+ startInstrumentation(context: LH.Gatherer.Context): Promise<void>;
16
16
  /**
17
- * @param {LH.Gatherer.FRTransitionalContext} context
17
+ * @param {LH.Gatherer.Context} context
18
18
  */
19
- stopInstrumentation(context: LH.Gatherer.FRTransitionalContext): Promise<void>;
19
+ stopInstrumentation(context: LH.Gatherer.Context): Promise<void>;
20
20
  /**
21
- * @param {Array<LH.Artifacts.NetworkRequest>} networkRecords
21
+ * @param {LH.Gatherer.Context<'DevtoolsLog'>} context
22
22
  * @return {Promise<LH.Artifacts['InspectorIssues']>}
23
23
  */
24
- _getArtifact(networkRecords: Array<LH.Artifacts.NetworkRequest>): Promise<LH.Artifacts['InspectorIssues']>;
25
- /**
26
- * @param {LH.Gatherer.FRTransitionalContext<'DevtoolsLog'>} context
27
- * @return {Promise<LH.Artifacts['InspectorIssues']>}
28
- */
29
- getArtifact(context: LH.Gatherer.FRTransitionalContext<'DevtoolsLog'>): Promise<LH.Artifacts['InspectorIssues']>;
30
- /**
31
- * @param {LH.Gatherer.PassContext} passContext
32
- * @param {LH.Gatherer.LoadData} loadData
33
- * @return {Promise<LH.Artifacts['InspectorIssues']>}
34
- */
35
- afterPass(passContext: LH.Gatherer.PassContext, loadData: LH.Gatherer.LoadData): Promise<LH.Artifacts['InspectorIssues']>;
24
+ getArtifact(context: LH.Gatherer.Context<'DevtoolsLog'>): Promise<LH.Artifacts['InspectorIssues']>;
36
25
  }
37
- import FRGatherer from '../base-gatherer.js';
26
+ import BaseGatherer from '../base-gatherer.js';
38
27
  //# sourceMappingURL=inspector-issues.d.ts.map