lighthouse 12.5.1 → 12.6.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 (269) hide show
  1. package/cli/run.js +1 -1
  2. package/cli/test/smokehouse/config/exclusions.js +2 -0
  3. package/cli/test/smokehouse/lib/concurrent-mapper.d.ts +3 -3
  4. package/core/audits/audit.d.ts +1 -1
  5. package/core/audits/audit.js +3 -2
  6. package/core/audits/bootup-time.d.ts +1 -1
  7. package/core/audits/bootup-time.js +3 -3
  8. package/core/audits/byte-efficiency/byte-efficiency-audit.js +1 -1
  9. package/core/audits/byte-efficiency/duplicated-javascript.js +1 -1
  10. package/core/audits/byte-efficiency/efficient-animated-content.js +1 -1
  11. package/core/audits/byte-efficiency/legacy-javascript.js +2 -3
  12. package/core/audits/byte-efficiency/modern-image-formats.js +1 -1
  13. package/core/audits/byte-efficiency/offscreen-images.js +4 -4
  14. package/core/audits/byte-efficiency/render-blocking-resources.js +4 -4
  15. package/core/audits/byte-efficiency/total-byte-weight.d.ts +1 -1
  16. package/core/audits/byte-efficiency/total-byte-weight.js +2 -2
  17. package/core/audits/byte-efficiency/unminified-css.js +1 -1
  18. package/core/audits/byte-efficiency/unminified-javascript.js +1 -1
  19. package/core/audits/byte-efficiency/unused-css-rules.js +2 -2
  20. package/core/audits/byte-efficiency/unused-javascript.js +1 -1
  21. package/core/audits/byte-efficiency/uses-long-cache-ttl.d.ts +1 -1
  22. package/core/audits/byte-efficiency/uses-long-cache-ttl.js +2 -2
  23. package/core/audits/byte-efficiency/uses-optimized-images.js +2 -2
  24. package/core/audits/byte-efficiency/uses-responsive-images.d.ts +1 -1
  25. package/core/audits/byte-efficiency/uses-responsive-images.js +1 -1
  26. package/core/audits/byte-efficiency/uses-text-compression.js +1 -1
  27. package/core/audits/clickjacking-mitigation.js +2 -2
  28. package/core/audits/critical-request-chains.js +3 -3
  29. package/core/audits/csp-xss.js +2 -2
  30. package/core/audits/diagnostics.js +3 -3
  31. package/core/audits/dobetterweb/charset.js +2 -2
  32. package/core/audits/dobetterweb/doctype.js +2 -2
  33. package/core/audits/dobetterweb/dom-size.d.ts +1 -1
  34. package/core/audits/dobetterweb/dom-size.js +3 -3
  35. package/core/audits/dobetterweb/uses-http2.js +2 -2
  36. package/core/audits/final-screenshot.js +2 -2
  37. package/core/audits/font-display.js +2 -2
  38. package/core/audits/has-hsts.js +2 -2
  39. package/core/audits/image-size-responsive.d.ts +3 -2
  40. package/core/audits/image-size-responsive.js +30 -4
  41. package/core/audits/insights/{use-cache-insight.d.ts → cache-insight.d.ts} +3 -3
  42. package/core/audits/insights/{use-cache-insight.js → cache-insight.js} +15 -13
  43. package/core/audits/insights/cls-culprits-insight.js +3 -3
  44. package/core/audits/insights/document-latency-insight.js +1 -1
  45. package/core/audits/insights/dom-size-insight.js +1 -1
  46. package/core/audits/insights/duplicated-javascript-insight.d.ts +13 -0
  47. package/core/audits/insights/duplicated-javascript-insight.js +36 -9
  48. package/core/audits/insights/font-display-insight.js +1 -1
  49. package/core/audits/insights/forced-reflow-insight.js +1 -1
  50. package/core/audits/insights/image-delivery-insight.js +1 -1
  51. package/core/audits/insights/insight-audit.d.ts +11 -9
  52. package/core/audits/insights/insight-audit.js +37 -35
  53. package/core/audits/insights/interaction-to-next-paint-insight.js +3 -6
  54. package/core/audits/insights/lcp-discovery-insight.js +6 -3
  55. package/core/audits/insights/lcp-phases-insight.js +3 -6
  56. package/core/audits/insights/legacy-javascript-insight.d.ts +23 -0
  57. package/core/audits/insights/legacy-javascript-insight.js +101 -0
  58. package/core/audits/insights/modern-http-insight.d.ts +11 -0
  59. package/core/audits/insights/modern-http-insight.js +53 -0
  60. package/core/audits/insights/network-dependency-tree-insight.d.ts +5 -0
  61. package/core/audits/insights/network-dependency-tree-insight.js +35 -13
  62. package/core/audits/insights/render-blocking-insight.js +1 -1
  63. package/core/audits/insights/slow-css-selector-insight.js +3 -1
  64. package/core/audits/insights/third-parties-insight.d.ts +3 -3
  65. package/core/audits/insights/third-parties-insight.js +28 -23
  66. package/core/audits/insights/viewport-insight.js +1 -1
  67. package/core/audits/is-on-https.js +2 -2
  68. package/core/audits/largest-contentful-paint-element.js +3 -3
  69. package/core/audits/layout-shifts.js +4 -4
  70. package/core/audits/lcp-lazy-loaded.js +1 -1
  71. package/core/audits/long-tasks.d.ts +1 -1
  72. package/core/audits/long-tasks.js +3 -3
  73. package/core/audits/main-thread-tasks.js +2 -2
  74. package/core/audits/mainthread-work-breakdown.d.ts +1 -1
  75. package/core/audits/mainthread-work-breakdown.js +2 -2
  76. package/core/audits/manual/manual-audit.d.ts +1 -1
  77. package/core/audits/metrics/cumulative-layout-shift.d.ts +1 -1
  78. package/core/audits/metrics/cumulative-layout-shift.js +2 -2
  79. package/core/audits/metrics/first-contentful-paint.js +3 -3
  80. package/core/audits/metrics/first-meaningful-paint.js +1 -1
  81. package/core/audits/metrics/interaction-to-next-paint.d.ts +1 -1
  82. package/core/audits/metrics/interaction-to-next-paint.js +2 -2
  83. package/core/audits/metrics/interactive.js +3 -3
  84. package/core/audits/metrics/largest-contentful-paint.js +3 -3
  85. package/core/audits/metrics/max-potential-fid.d.ts +1 -1
  86. package/core/audits/metrics/max-potential-fid.js +3 -3
  87. package/core/audits/metrics/speed-index.js +3 -3
  88. package/core/audits/metrics/total-blocking-time.js +3 -3
  89. package/core/audits/metrics.js +3 -3
  90. package/core/audits/network-requests.js +2 -2
  91. package/core/audits/network-rtt.js +2 -2
  92. package/core/audits/network-server-latency.js +2 -2
  93. package/core/audits/origin-isolation.js +2 -2
  94. package/core/audits/predictive-perf.js +3 -3
  95. package/core/audits/preload-fonts.js +2 -2
  96. package/core/audits/prioritize-lcp-image.js +3 -3
  97. package/core/audits/redirects.js +3 -3
  98. package/core/audits/resource-summary.js +2 -2
  99. package/core/audits/screenshot-thumbnails.js +2 -2
  100. package/core/audits/script-treemap-data.js +32 -2
  101. package/core/audits/seo/canonical.js +2 -2
  102. package/core/audits/seo/http-status-code.js +2 -2
  103. package/core/audits/seo/is-crawlable.js +2 -2
  104. package/core/audits/server-response-time.js +2 -2
  105. package/core/audits/third-party-cookies.js +1 -1
  106. package/core/audits/third-party-facades.js +2 -2
  107. package/core/audits/third-party-summary.js +2 -2
  108. package/core/audits/user-timings.d.ts +1 -1
  109. package/core/audits/user-timings.js +2 -2
  110. package/core/audits/uses-rel-preconnect.js +3 -3
  111. package/core/audits/uses-rel-preload.js +3 -3
  112. package/core/audits/valid-source-maps.js +2 -2
  113. package/core/audits/work-during-interaction.js +3 -3
  114. package/core/computed/critical-request-chains.d.ts +1 -1
  115. package/core/computed/document-urls.d.ts +4 -1
  116. package/core/computed/entity-classification.d.ts +1 -1
  117. package/core/computed/image-records.d.ts +1 -1
  118. package/core/computed/js-bundles.d.ts +1 -1
  119. package/core/computed/lcp-image-record.d.ts +1 -1
  120. package/core/computed/load-simulator.d.ts +1 -1
  121. package/core/computed/main-resource.d.ts +1 -1
  122. package/core/computed/main-thread-tasks.d.ts +1 -1
  123. package/core/computed/metrics/cumulative-layout-shift.d.ts +10 -1
  124. package/core/computed/metrics/first-contentful-paint-all-frames.d.ts +1 -1
  125. package/core/computed/metrics/first-contentful-paint.d.ts +1 -1
  126. package/core/computed/metrics/interactive.d.ts +1 -1
  127. package/core/computed/metrics/lantern-first-contentful-paint.d.ts +1 -1
  128. package/core/computed/metrics/lantern-interactive.d.ts +1 -1
  129. package/core/computed/metrics/lantern-largest-contentful-paint.d.ts +1 -1
  130. package/core/computed/metrics/lantern-max-potential-fid.d.ts +1 -1
  131. package/core/computed/metrics/lantern-speed-index.d.ts +1 -1
  132. package/core/computed/metrics/lantern-total-blocking-time.d.ts +1 -1
  133. package/core/computed/metrics/largest-contentful-paint-all-frames.d.ts +1 -1
  134. package/core/computed/metrics/largest-contentful-paint.d.ts +1 -1
  135. package/core/computed/metrics/lcp-breakdown.d.ts +5 -1
  136. package/core/computed/metrics/max-potential-fid.d.ts +1 -1
  137. package/core/computed/metrics/responsiveness.d.ts +1 -1
  138. package/core/computed/metrics/speed-index.d.ts +1 -1
  139. package/core/computed/metrics/time-to-first-byte.d.ts +1 -1
  140. package/core/computed/metrics/timing-summary.d.ts +4 -1
  141. package/core/computed/metrics/total-blocking-time.d.ts +1 -1
  142. package/core/computed/module-duplication.d.ts +5 -1
  143. package/core/computed/navigation-insights.d.ts +1 -1
  144. package/core/computed/network-analysis.d.ts +1 -1
  145. package/core/computed/network-records.d.ts +1 -1
  146. package/core/computed/page-dependency-graph.d.ts +1 -1
  147. package/core/computed/processed-navigation.d.ts +1 -1
  148. package/core/computed/processed-trace.d.ts +1 -1
  149. package/core/computed/resource-summary.d.ts +1 -1
  150. package/core/computed/screenshots.d.ts +4 -1
  151. package/core/computed/speedline.d.ts +1 -1
  152. package/core/computed/tbt-impact-tasks.d.ts +1 -1
  153. package/core/computed/trace-engine-result.d.ts +1 -1
  154. package/core/computed/unused-css.d.ts +1 -1
  155. package/core/computed/unused-javascript-summary.d.ts +1 -1
  156. package/core/computed/user-timings.d.ts +1 -1
  157. package/core/computed/viewport-meta.d.ts +1 -1
  158. package/core/config/default-config.js +11 -6
  159. package/core/config/experimental-config.js +3 -2
  160. package/core/gather/driver/network-monitor.d.ts +1 -1
  161. package/core/gather/driver/network.d.ts +1 -1
  162. package/core/gather/driver.d.ts +1 -1
  163. package/core/gather/gatherers/devtools-log.d.ts +1 -1
  164. package/core/gather/gatherers/dobetterweb/optimized-images.js +3 -10
  165. package/core/gather/gatherers/trace-elements.d.ts +3 -4
  166. package/core/gather/gatherers/trace-elements.js +6 -8
  167. package/core/gather/gatherers/trace.js +0 -3
  168. package/core/gather/navigation-runner.d.ts +1 -1
  169. package/core/gather/snapshot-runner.d.ts +1 -1
  170. package/core/gather/timespan-runner.d.ts +1 -1
  171. package/core/index.d.ts +6 -6
  172. package/core/lib/asset-saver.d.ts +1 -1
  173. package/core/lib/asset-saver.js +1 -1
  174. package/core/lib/bf-cache-strings.js +2 -0
  175. package/core/lib/deprecations-strings.d.ts +71 -76
  176. package/core/lib/deprecations-strings.js +22 -25
  177. package/core/lib/i18n/README.md +1 -1
  178. package/core/lib/i18n/i18n.d.ts +1 -1
  179. package/core/lib/i18n/i18n.js +4 -4
  180. package/core/lib/legacy-javascript/legacy-javascript.js +4 -11
  181. package/core/lib/legacy-javascript/package.json +14 -0
  182. package/core/lib/page-functions.d.ts +1 -1
  183. package/core/lib/stack-packs.js +1 -1
  184. package/core/lib/tracehouse/cpu-profile-model.d.ts +1 -1
  185. package/core/lib/tracehouse/main-thread-tasks.d.ts +3 -3
  186. package/core/lib/tracehouse/main-thread-tasks.js +8 -0
  187. package/core/lib/tracehouse/trace-processor.d.ts +1 -1
  188. package/core/lib/traces/metric-trace-events.d.ts +2 -2
  189. package/core/runner.js +2 -1
  190. package/core/scoring.d.ts +539 -3
  191. package/core/user-flow.d.ts +6 -6
  192. package/dist/report/bundle.esm.js +89 -19
  193. package/dist/report/flow.js +92 -22
  194. package/dist/report/standalone.js +89 -19
  195. package/flow-report/src/i18n/i18n.d.ts +6 -2
  196. package/package.json +17 -16
  197. package/readme.md +1 -1
  198. package/report/README.md +1 -1
  199. package/report/assets/styles.css +76 -9
  200. package/report/assets/templates.html +3 -1
  201. package/report/clients/standalone.js +6 -4
  202. package/report/renderer/category-renderer.d.ts +2 -2
  203. package/report/renderer/components.js +3 -9
  204. package/report/renderer/crc-details-renderer.d.ts +13 -31
  205. package/report/renderer/crc-details-renderer.js +49 -47
  206. package/report/renderer/details-renderer.d.ts +1 -1
  207. package/report/renderer/details-renderer.js +6 -0
  208. package/report/renderer/dom.js +7 -0
  209. package/report/renderer/features-util.d.ts +1 -1
  210. package/report/renderer/performance-category-renderer.d.ts +28 -2
  211. package/report/renderer/performance-category-renderer.js +121 -3
  212. package/report/renderer/report-utils.d.ts +3 -1
  213. package/report/renderer/report-utils.js +11 -4
  214. package/report/renderer/topbar-features.js +1 -9
  215. package/shared/localization/format.d.ts +1 -1
  216. package/shared/localization/locales/ar-XB.json +66 -6
  217. package/shared/localization/locales/ar.json +66 -6
  218. package/shared/localization/locales/bg.json +66 -6
  219. package/shared/localization/locales/ca.json +66 -6
  220. package/shared/localization/locales/cs.json +66 -6
  221. package/shared/localization/locales/da.json +66 -6
  222. package/shared/localization/locales/de.json +66 -6
  223. package/shared/localization/locales/el.json +66 -6
  224. package/shared/localization/locales/en-GB.json +66 -6
  225. package/shared/localization/locales/en-US.json +87 -36
  226. package/shared/localization/locales/en-XA.json +0 -6
  227. package/shared/localization/locales/en-XL.json +87 -36
  228. package/shared/localization/locales/es-419.json +66 -6
  229. package/shared/localization/locales/es.json +67 -7
  230. package/shared/localization/locales/fi.json +66 -6
  231. package/shared/localization/locales/fil.json +66 -6
  232. package/shared/localization/locales/fr.json +66 -6
  233. package/shared/localization/locales/he.json +66 -6
  234. package/shared/localization/locales/hi.json +66 -6
  235. package/shared/localization/locales/hr.json +66 -6
  236. package/shared/localization/locales/hu.json +66 -6
  237. package/shared/localization/locales/id.json +66 -6
  238. package/shared/localization/locales/it.json +67 -7
  239. package/shared/localization/locales/ja.json +66 -6
  240. package/shared/localization/locales/ko.json +66 -6
  241. package/shared/localization/locales/lt.json +66 -6
  242. package/shared/localization/locales/lv.json +66 -6
  243. package/shared/localization/locales/nl.json +66 -6
  244. package/shared/localization/locales/no.json +66 -6
  245. package/shared/localization/locales/pl.json +66 -6
  246. package/shared/localization/locales/pt-PT.json +66 -6
  247. package/shared/localization/locales/pt.json +67 -7
  248. package/shared/localization/locales/ro.json +66 -6
  249. package/shared/localization/locales/ru.json +66 -6
  250. package/shared/localization/locales/sk.json +66 -6
  251. package/shared/localization/locales/sl.json +66 -6
  252. package/shared/localization/locales/sr-Latn.json +66 -6
  253. package/shared/localization/locales/sr.json +66 -6
  254. package/shared/localization/locales/sv.json +66 -6
  255. package/shared/localization/locales/ta.json +69 -9
  256. package/shared/localization/locales/te.json +66 -6
  257. package/shared/localization/locales/th.json +66 -6
  258. package/shared/localization/locales/tr.json +66 -6
  259. package/shared/localization/locales/uk.json +66 -6
  260. package/shared/localization/locales/vi.json +66 -6
  261. package/shared/localization/locales/zh-HK.json +67 -7
  262. package/shared/localization/locales/zh-TW.json +67 -7
  263. package/shared/localization/locales/zh.json +66 -6
  264. package/tsconfig-base.json +1 -1
  265. package/tsconfig.json +1 -0
  266. package/types/artifacts.d.ts +0 -2
  267. package/types/internal/node.d.ts +0 -16
  268. package/types/lhr/audit-details.d.ts +33 -1
  269. package/types/lhr/treemap.d.ts +5 -1
@@ -38,7 +38,7 @@ export class DevtoolsMessageLog {
38
38
  /**
39
39
  * @return {LH.DevtoolsLog}
40
40
  */
41
- get messages(): import("../../index.js").DevtoolsLog;
41
+ get messages(): LH.DevtoolsLog;
42
42
  reset(): void;
43
43
  beginRecording(): void;
44
44
  endRecording(): void;
@@ -5,11 +5,9 @@
5
5
  */
6
6
 
7
7
  /**
8
- * @fileoverview Determines optimized jpeg/webp filesizes for all same-origin and dataURI images by
9
- * running the images through canvas in the browser context.
8
+ * @fileoverview Determines optimized jpeg/webp filesizes for all same-origin and dataURI images
10
9
  */
11
10
 
12
-
13
11
  import log from 'lighthouse-logger';
14
12
 
15
13
  import BaseGatherer from '../../base-gatherer.js';
@@ -133,7 +131,7 @@ class OptimizedImages extends BaseGatherer {
133
131
  const image = {failed: false, ...stats, ...record};
134
132
  results.push(image);
135
133
  } catch (err) {
136
- log.warn('optimized-images', err.message);
134
+ log.warn('optimized-images', err.message, record.url);
137
135
 
138
136
  // Track this with Sentry since these errors aren't surfaced anywhere else, but we don't
139
137
  // want to tank the entire run due to a single image.
@@ -164,12 +162,7 @@ class OptimizedImages extends BaseGatherer {
164
162
  .filterImageRequests(networkRecords)
165
163
  .sort((a, b) => b.resourceSize - a.resourceSize);
166
164
 
167
- const results = await this.computeOptimizedImages(context.driver.defaultSession, imageRecords);
168
- const successfulResults = results.filter(result => !result.failed);
169
- if (results.length && !successfulResults.length) {
170
- throw new Error('All image optimizations failed');
171
- }
172
- return results;
165
+ return await this.computeOptimizedImages(context.driver.defaultSession, imageRecords);
173
166
  }
174
167
  }
175
168
 
@@ -34,11 +34,10 @@ declare class TraceElements extends BaseGatherer {
34
34
  *
35
35
  * @param {LH.Trace} trace
36
36
  * @param {LH.Artifacts.TraceEngineResult['data']} traceEngineResult
37
- * @param {LH.Artifacts.TraceEngineRootCauses} rootCauses
38
37
  * @param {LH.Gatherer.Context} context
39
38
  * @return {Promise<Array<{nodeId: number}>>}
40
39
  */
41
- static getTopLayoutShifts(trace: LH.Trace, traceEngineResult: LH.Artifacts.TraceEngineResult["data"], rootCauses: LH.Artifacts.TraceEngineRootCauses, context: LH.Gatherer.Context): Promise<Array<{
40
+ static getTopLayoutShifts(trace: LH.Trace, traceEngineResult: LH.Artifacts.TraceEngineResult["data"], context: LH.Gatherer.Context): Promise<Array<{
42
41
  nodeId: number;
43
42
  }>>;
44
43
  /**
@@ -82,10 +81,10 @@ declare class TraceElements extends BaseGatherer {
82
81
  */
83
82
  getNodeDetails(session: LH.Gatherer.ProtocolSession, backendNodeId: number): Promise<import("devtools-protocol").Protocol.Runtime.CallFunctionOnResponse | null>;
84
83
  /**
85
- * @param {LH.Gatherer.Context<'Trace'|'RootCauses'|'SourceMaps'>} context
84
+ * @param {LH.Gatherer.Context<'Trace'|'SourceMaps'>} context
86
85
  * @return {Promise<LH.Artifacts.TraceElement[]>}
87
86
  */
88
- getArtifact(context: LH.Gatherer.Context<"Trace" | "RootCauses" | "SourceMaps">): Promise<LH.Artifacts.TraceElement[]>;
87
+ getArtifact(context: LH.Gatherer.Context<"Trace" | "SourceMaps">): Promise<LH.Artifacts.TraceElement[]>;
89
88
  }
90
89
  import BaseGatherer from '../base-gatherer.js';
91
90
  //# sourceMappingURL=trace-elements.d.ts.map
@@ -132,15 +132,15 @@ class TraceElements extends BaseGatherer {
132
132
  /** @type {number[]} */
133
133
  const nodeIds = [];
134
134
  recursiveObjectEnumerate(insightSet.model, (val, key) => {
135
- const keys = ['nodeId', 'node_id'];
135
+ const keys = ['nodeId', 'node_id', 'backendNodeId'];
136
136
  if (typeof val === 'number' && keys.includes(key)) {
137
137
  nodeIds.push(val);
138
138
  }
139
139
  }, new Set());
140
140
 
141
- // TODO: would be better if unsizedImages was `Array<{nodeId}>`.
141
+ // TODO: handle digging into Map in recursiveObjectEnumerate.
142
142
  for (const shift of insightSet.model.CLSCulprits.shifts.values()) {
143
- nodeIds.push(...shift.unsizedImages);
143
+ nodeIds.push(...shift.unsizedImages.map(s => s.backendNodeId));
144
144
  }
145
145
 
146
146
  return [...new Set(nodeIds)].map(id => ({nodeId: id}));
@@ -204,11 +204,10 @@ class TraceElements extends BaseGatherer {
204
204
  *
205
205
  * @param {LH.Trace} trace
206
206
  * @param {LH.Artifacts.TraceEngineResult['data']} traceEngineResult
207
- * @param {LH.Artifacts.TraceEngineRootCauses} rootCauses
208
207
  * @param {LH.Gatherer.Context} context
209
208
  * @return {Promise<Array<{nodeId: number}>>}
210
209
  */
211
- static async getTopLayoutShifts(trace, traceEngineResult, rootCauses, context) {
210
+ static async getTopLayoutShifts(trace, traceEngineResult, context) {
212
211
  const {impactByNodeId} = await CumulativeLayoutShift.request(trace, context);
213
212
  const clusters = traceEngineResult.LayoutShifts.clusters ?? [];
214
213
  const layoutShiftEvents =
@@ -380,7 +379,7 @@ class TraceElements extends BaseGatherer {
380
379
  }
381
380
 
382
381
  /**
383
- * @param {LH.Gatherer.Context<'Trace'|'RootCauses'|'SourceMaps'>} context
382
+ * @param {LH.Gatherer.Context<'Trace'|'SourceMaps'>} context
384
383
  * @return {Promise<LH.Artifacts.TraceElement[]>}
385
384
  */
386
385
  async getArtifact(context) {
@@ -391,7 +390,6 @@ class TraceElements extends BaseGatherer {
391
390
  const settings = context.settings;
392
391
  const traceEngineResult =
393
392
  await TraceEngineResult.request({trace, settings, SourceMaps}, context);
394
- const rootCauses = context.dependencies.RootCauses;
395
393
 
396
394
  const processedTrace = await ProcessedTrace.request(trace, context);
397
395
  const {mainThreadEvents} = processedTrace;
@@ -401,7 +399,7 @@ class TraceElements extends BaseGatherer {
401
399
  traceEngineResult, navigationId);
402
400
  const lcpNodeData = await TraceElements.getLcpElement(trace, context);
403
401
  const shiftsData = await TraceElements.getTopLayoutShifts(
404
- trace, traceEngineResult.data, rootCauses, context);
402
+ trace, traceEngineResult.data, context);
405
403
  const animatedElementData = await this.getAnimatedElements(mainThreadEvents);
406
404
  const responsivenessElementData = await TraceElements.getResponsivenessElement(trace, context);
407
405
 
@@ -56,9 +56,6 @@ class Trace extends BaseGatherer {
56
56
  'disabled-by-default-devtools.timeline.frame',
57
57
  'latencyInfo',
58
58
 
59
- // For CLS root causes.
60
- 'disabled-by-default-devtools.timeline.invalidationTracking',
61
-
62
59
  // Enhanced traces.
63
60
  'disabled-by-default-devtools.target-rundown',
64
61
  'disabled-by-default-devtools.v8-source-rundown-sources',
@@ -16,7 +16,7 @@ export type PhaseState = Omit<Parameters<typeof collectPhaseArtifacts>[0], "phas
16
16
  export function navigationGather(page: LH.Puppeteer.Page | undefined, requestor: LH.NavigationRequestor | undefined, options?: {
17
17
  config?: LH.Config;
18
18
  flags?: LH.Flags;
19
- } | undefined): Promise<LH.Gatherer.GatherResult>;
19
+ }): Promise<LH.Gatherer.GatherResult>;
20
20
  /**
21
21
  * @param {{driver: Driver, resolvedConfig: LH.Config.ResolvedConfig, requestor: LH.NavigationRequestor}} args
22
22
  * @return {Promise<{baseArtifacts: LH.BaseArtifacts}>}
@@ -6,5 +6,5 @@
6
6
  export function snapshotGather(page: LH.Puppeteer.Page, options?: {
7
7
  config?: LH.Config;
8
8
  flags?: LH.Flags;
9
- } | undefined): Promise<LH.Gatherer.GatherResult>;
9
+ }): Promise<LH.Gatherer.GatherResult>;
10
10
  //# sourceMappingURL=snapshot-runner.d.ts.map
@@ -6,7 +6,7 @@
6
6
  export function startTimespanGather(page: LH.Puppeteer.Page, options?: {
7
7
  config?: LH.Config;
8
8
  flags?: LH.Flags;
9
- } | undefined): Promise<{
9
+ }): Promise<{
10
10
  endTimespanGather(): Promise<LH.Gatherer.GatherResult>;
11
11
  }>;
12
12
  export namespace UIStrings {
package/core/index.d.ts CHANGED
@@ -20,7 +20,7 @@ declare function lighthouse(url?: string | undefined, flags?: LH.Flags | undefin
20
20
  * @param {LH.Puppeteer.Page} page
21
21
  * @param {LH.UserFlow.Options} [options]
22
22
  */
23
- export function startFlow(page: LH.Puppeteer.Page, options?: LH.UserFlow.Options | undefined): Promise<UserFlow>;
23
+ export function startFlow(page: LH.Puppeteer.Page, options?: LH.UserFlow.Options): Promise<UserFlow>;
24
24
  /**
25
25
  * @param {LH.Puppeteer.Page|undefined} page
26
26
  * @param {LH.NavigationRequestor|undefined} requestor
@@ -30,7 +30,7 @@ export function startFlow(page: LH.Puppeteer.Page, options?: LH.UserFlow.Options
30
30
  export function navigation(page: LH.Puppeteer.Page | undefined, requestor: LH.NavigationRequestor | undefined, options?: {
31
31
  config?: LH.Config;
32
32
  flags?: LH.Flags;
33
- } | undefined): Promise<LH.RunnerResult | undefined>;
33
+ }): Promise<LH.RunnerResult | undefined>;
34
34
  /**
35
35
  * @param {LH.Puppeteer.Page} page
36
36
  * @param {{config?: LH.Config, flags?: LH.Flags}} [options]
@@ -39,7 +39,7 @@ export function navigation(page: LH.Puppeteer.Page | undefined, requestor: LH.Na
39
39
  export function startTimespan(page: LH.Puppeteer.Page, options?: {
40
40
  config?: LH.Config;
41
41
  flags?: LH.Flags;
42
- } | undefined): Promise<{
42
+ }): Promise<{
43
43
  endTimespan: () => Promise<LH.RunnerResult | undefined>;
44
44
  }>;
45
45
  /**
@@ -50,19 +50,19 @@ export function startTimespan(page: LH.Puppeteer.Page, options?: {
50
50
  export function snapshot(page: LH.Puppeteer.Page, options?: {
51
51
  config?: LH.Config;
52
52
  flags?: LH.Flags;
53
- } | undefined): Promise<LH.RunnerResult | undefined>;
53
+ }): Promise<LH.RunnerResult | undefined>;
54
54
  /**
55
55
  * @template {LH.Result|LH.FlowResult} R
56
56
  * @param {R} result
57
57
  * @param {[R] extends [LH.Result] ? LH.OutputMode : Exclude<LH.OutputMode, 'csv'>} [format]
58
58
  * @return {string}
59
59
  */
60
- export function generateReport<R extends LH.Result | LH.FlowResult>(result: R, format?: ([R] extends [LH.Result] ? LH.OutputMode : "json" | "html") | undefined): string;
60
+ export function generateReport<R extends LH.Result | LH.FlowResult>(result: R, format?: [R] extends [LH.Result] ? LH.OutputMode : Exclude<LH.OutputMode, "csv">): string;
61
61
  /**
62
62
  * @param {LH.UserFlow.FlowArtifacts} flowArtifacts
63
63
  * @param {LH.Config} [config]
64
64
  */
65
- export function auditFlowArtifacts(flowArtifacts: LH.UserFlow.FlowArtifacts, config?: LH.Config | undefined): Promise<{
65
+ export function auditFlowArtifacts(flowArtifacts: LH.UserFlow.FlowArtifacts, config?: LH.Config): Promise<{
66
66
  steps: LH.FlowResult.Step[];
67
67
  name: string;
68
68
  }>;
@@ -60,7 +60,7 @@ export function saveAssets(artifacts: LH.Artifacts, audits: LH.Result["audits"],
60
60
  * @param {LH.Result['audits']} [audits]
61
61
  * @return {Promise<Array<PreparedAssets>>}
62
62
  */
63
- export function prepareAssets(artifacts: LH.Artifacts, audits?: Record<string, import("../../types/lhr/audit-result.js").Result> | undefined): Promise<Array<PreparedAssets>>;
63
+ export function prepareAssets(artifacts: LH.Artifacts, audits?: LH.Result["audits"]): Promise<Array<PreparedAssets>>;
64
64
  /**
65
65
  * Save a trace as JSON by streaming to disk at traceFilename.
66
66
  * @param {LH.Trace} traceData
@@ -263,7 +263,7 @@ async function saveArtifacts(artifacts, basePath, options = {}) {
263
263
  }
264
264
 
265
265
  // `devtoolsLogs` and `traces` are duplicate compat artifacts.
266
- // We don't need to save them twice, so extract them here.
266
+ // We don't need to save them twice, so extract them here. TODO(v13): remove
267
267
  const {
268
268
  // eslint-disable-next-line no-unused-vars
269
269
  traces,
@@ -703,6 +703,8 @@ const NotRestoredReasonDescription = {
703
703
  WebViewMessageListenerInjected: {name: ('WebViewMessageListenerInjected')},
704
704
  WebViewSafeBrowsingAllowlistChanged: {name: ('WebViewSafeBrowsingAllowlistChanged')},
705
705
  WebViewDocumentStartJavascriptChanged: {name: ('WebViewDocumentStartJavascriptChanged')},
706
+ CacheControlNoStoreDeviceBoundSessionTerminated: {name: str_(UIStrings.cacheControlNoStore)},
707
+ CacheLimitPruned: {name: ('CacheLimitPruned')},
706
708
  };
707
709
 
708
710
  export {
@@ -15,10 +15,13 @@ export namespace UIStrings {
15
15
  let GeolocationInsecureOrigin: string;
16
16
  let GeolocationInsecureOriginDeprecatedNotRemoved: string;
17
17
  let GetUserMediaInsecureOrigin: string;
18
+ let H1UserAgentFontSizeInSection: string;
18
19
  let HostCandidateAttributeGetter: string;
20
+ let IdentityDigitalCredentials: string;
19
21
  let IdentityInCanMakePaymentEvent: string;
20
22
  let InsecurePrivateNetworkSubresourceRequest: string;
21
23
  let InterestGroupDailyUpdateUrl: string;
24
+ let IntlV8BreakIterator: string;
22
25
  let LocalCSSFileExtensionRejected: string;
23
26
  let MediaSourceAbortRemove: string;
24
27
  let MediaSourceDurationTruncatingBuffered: string;
@@ -51,11 +54,8 @@ export namespace UIStrings {
51
54
  let TextToSpeech_DisallowedByAutoplay: string;
52
55
  let UnloadHandler: string;
53
56
  let V8SharedArrayBufferConstructedInExtensionWithoutIsolation: string;
54
- let WebGPULimitMaxInterStageShaderComponents: string;
55
- let WebSQL: string;
56
57
  let XHRJSONEncodingDetection: string;
57
58
  let XMLHttpRequestSynchronousInNonWorkerOutsideBeforeUnload: string;
58
- let XRSupportsSession: string;
59
59
  }
60
60
  export namespace DEPRECATIONS_METADATA {
61
61
  export namespace AuthorizationCoveredByWildcard_1 {
@@ -115,151 +115,146 @@ export namespace DEPRECATIONS_METADATA {
115
115
  export { milestone_4 as milestone };
116
116
  }
117
117
  export { DataUrlInSvgUse_1 as DataUrlInSvgUse };
118
- export namespace IdentityInCanMakePaymentEvent_1 {
118
+ export namespace H1UserAgentFontSizeInSection_1 {
119
119
  let chromeStatusFeature_8: number;
120
120
  export { chromeStatusFeature_8 as chromeStatusFeature };
121
+ let milestone_5: number;
122
+ export { milestone_5 as milestone };
121
123
  }
122
- export { IdentityInCanMakePaymentEvent_1 as IdentityInCanMakePaymentEvent };
123
- export namespace InsecurePrivateNetworkSubresourceRequest_1 {
124
+ export { H1UserAgentFontSizeInSection_1 as H1UserAgentFontSizeInSection };
125
+ export namespace IdentityDigitalCredentials_1 {
124
126
  let chromeStatusFeature_9: number;
125
127
  export { chromeStatusFeature_9 as chromeStatusFeature };
126
- let milestone_5: number;
127
- export { milestone_5 as milestone };
128
128
  }
129
- export { InsecurePrivateNetworkSubresourceRequest_1 as InsecurePrivateNetworkSubresourceRequest };
130
- export namespace LocalCSSFileExtensionRejected_1 {
129
+ export { IdentityDigitalCredentials_1 as IdentityDigitalCredentials };
130
+ export namespace IdentityInCanMakePaymentEvent_1 {
131
+ let chromeStatusFeature_10: number;
132
+ export { chromeStatusFeature_10 as chromeStatusFeature };
133
+ }
134
+ export { IdentityInCanMakePaymentEvent_1 as IdentityInCanMakePaymentEvent };
135
+ export namespace InsecurePrivateNetworkSubresourceRequest_1 {
136
+ let chromeStatusFeature_11: number;
137
+ export { chromeStatusFeature_11 as chromeStatusFeature };
131
138
  let milestone_6: number;
132
139
  export { milestone_6 as milestone };
133
140
  }
141
+ export { InsecurePrivateNetworkSubresourceRequest_1 as InsecurePrivateNetworkSubresourceRequest };
142
+ export namespace LocalCSSFileExtensionRejected_1 {
143
+ let milestone_7: number;
144
+ export { milestone_7 as milestone };
145
+ }
134
146
  export { LocalCSSFileExtensionRejected_1 as LocalCSSFileExtensionRejected };
135
147
  export namespace MediaSourceAbortRemove_1 {
136
- let chromeStatusFeature_10: number;
137
- export { chromeStatusFeature_10 as chromeStatusFeature };
148
+ let chromeStatusFeature_12: number;
149
+ export { chromeStatusFeature_12 as chromeStatusFeature };
138
150
  }
139
151
  export { MediaSourceAbortRemove_1 as MediaSourceAbortRemove };
140
152
  export namespace MediaSourceDurationTruncatingBuffered_1 {
141
- let chromeStatusFeature_11: number;
142
- export { chromeStatusFeature_11 as chromeStatusFeature };
153
+ let chromeStatusFeature_13: number;
154
+ export { chromeStatusFeature_13 as chromeStatusFeature };
143
155
  }
144
156
  export { MediaSourceDurationTruncatingBuffered_1 as MediaSourceDurationTruncatingBuffered };
145
157
  export namespace NoSysexWebMIDIWithoutPermission_1 {
146
- let chromeStatusFeature_12: number;
147
- export { chromeStatusFeature_12 as chromeStatusFeature };
148
- let milestone_7: number;
149
- export { milestone_7 as milestone };
158
+ let chromeStatusFeature_14: number;
159
+ export { chromeStatusFeature_14 as chromeStatusFeature };
160
+ let milestone_8: number;
161
+ export { milestone_8 as milestone };
150
162
  }
151
163
  export { NoSysexWebMIDIWithoutPermission_1 as NoSysexWebMIDIWithoutPermission };
152
164
  export namespace NotificationPermissionRequestedIframe_1 {
153
- let chromeStatusFeature_13: number;
154
- export { chromeStatusFeature_13 as chromeStatusFeature };
165
+ let chromeStatusFeature_15: number;
166
+ export { chromeStatusFeature_15 as chromeStatusFeature };
155
167
  }
156
168
  export { NotificationPermissionRequestedIframe_1 as NotificationPermissionRequestedIframe };
157
169
  export namespace ObsoleteCreateImageBitmapImageOrientationNone_1 {
158
- let milestone_8: number;
159
- export { milestone_8 as milestone };
170
+ let milestone_9: number;
171
+ export { milestone_9 as milestone };
160
172
  }
161
173
  export { ObsoleteCreateImageBitmapImageOrientationNone_1 as ObsoleteCreateImageBitmapImageOrientationNone };
162
174
  export namespace ObsoleteWebRtcCipherSuite_1 {
163
- let milestone_9: number;
164
- export { milestone_9 as milestone };
175
+ let milestone_10: number;
176
+ export { milestone_10 as milestone };
165
177
  }
166
178
  export { ObsoleteWebRtcCipherSuite_1 as ObsoleteWebRtcCipherSuite };
167
179
  export namespace OverflowVisibleOnReplacedElement_1 {
168
- let chromeStatusFeature_14: number;
169
- export { chromeStatusFeature_14 as chromeStatusFeature };
170
- let milestone_10: number;
171
- export { milestone_10 as milestone };
180
+ let chromeStatusFeature_16: number;
181
+ export { chromeStatusFeature_16 as chromeStatusFeature };
182
+ let milestone_11: number;
183
+ export { milestone_11 as milestone };
172
184
  }
173
185
  export { OverflowVisibleOnReplacedElement_1 as OverflowVisibleOnReplacedElement };
174
186
  export namespace PaymentInstruments_1 {
175
- let chromeStatusFeature_15: number;
176
- export { chromeStatusFeature_15 as chromeStatusFeature };
187
+ let chromeStatusFeature_17: number;
188
+ export { chromeStatusFeature_17 as chromeStatusFeature };
177
189
  }
178
190
  export { PaymentInstruments_1 as PaymentInstruments };
179
191
  export namespace PaymentRequestCSPViolation_1 {
180
- let chromeStatusFeature_16: number;
181
- export { chromeStatusFeature_16 as chromeStatusFeature };
192
+ let chromeStatusFeature_18: number;
193
+ export { chromeStatusFeature_18 as chromeStatusFeature };
182
194
  }
183
195
  export { PaymentRequestCSPViolation_1 as PaymentRequestCSPViolation };
184
196
  export namespace PersistentQuotaType_1 {
185
- let chromeStatusFeature_17: number;
186
- export { chromeStatusFeature_17 as chromeStatusFeature };
187
- let milestone_11: number;
188
- export { milestone_11 as milestone };
197
+ let chromeStatusFeature_19: number;
198
+ export { chromeStatusFeature_19 as chromeStatusFeature };
199
+ let milestone_12: number;
200
+ export { milestone_12 as milestone };
189
201
  }
190
202
  export { PersistentQuotaType_1 as PersistentQuotaType };
191
203
  export namespace RTCConstraintEnableDtlsSrtpFalse_1 {
192
- let milestone_12: number;
193
- export { milestone_12 as milestone };
204
+ let milestone_13: number;
205
+ export { milestone_13 as milestone };
194
206
  }
195
207
  export { RTCConstraintEnableDtlsSrtpFalse_1 as RTCConstraintEnableDtlsSrtpFalse };
196
208
  export namespace RTCConstraintEnableDtlsSrtpTrue_1 {
197
- let milestone_13: number;
198
- export { milestone_13 as milestone };
209
+ let milestone_14: number;
210
+ export { milestone_14 as milestone };
199
211
  }
200
212
  export { RTCConstraintEnableDtlsSrtpTrue_1 as RTCConstraintEnableDtlsSrtpTrue };
201
213
  export namespace RTCPeerConnectionGetStatsLegacyNonCompliant_1 {
202
- let chromeStatusFeature_18: number;
203
- export { chromeStatusFeature_18 as chromeStatusFeature };
204
- let milestone_14: number;
205
- export { milestone_14 as milestone };
214
+ let chromeStatusFeature_20: number;
215
+ export { chromeStatusFeature_20 as chromeStatusFeature };
216
+ let milestone_15: number;
217
+ export { milestone_15 as milestone };
206
218
  }
207
219
  export { RTCPeerConnectionGetStatsLegacyNonCompliant_1 as RTCPeerConnectionGetStatsLegacyNonCompliant };
208
220
  export namespace RequestedSubresourceWithEmbeddedCredentials_1 {
209
- let chromeStatusFeature_19: number;
210
- export { chromeStatusFeature_19 as chromeStatusFeature };
221
+ let chromeStatusFeature_21: number;
222
+ export { chromeStatusFeature_21 as chromeStatusFeature };
211
223
  }
212
224
  export { RequestedSubresourceWithEmbeddedCredentials_1 as RequestedSubresourceWithEmbeddedCredentials };
213
225
  export namespace RtcpMuxPolicyNegotiate_1 {
214
- let chromeStatusFeature_20: number;
215
- export { chromeStatusFeature_20 as chromeStatusFeature };
216
- let milestone_15: number;
217
- export { milestone_15 as milestone };
226
+ let chromeStatusFeature_22: number;
227
+ export { chromeStatusFeature_22 as chromeStatusFeature };
228
+ let milestone_16: number;
229
+ export { milestone_16 as milestone };
218
230
  }
219
231
  export { RtcpMuxPolicyNegotiate_1 as RtcpMuxPolicyNegotiate };
220
232
  export namespace SharedArrayBufferConstructedWithoutIsolation_1 {
221
- let milestone_16: number;
222
- export { milestone_16 as milestone };
233
+ let milestone_17: number;
234
+ export { milestone_17 as milestone };
223
235
  }
224
236
  export { SharedArrayBufferConstructedWithoutIsolation_1 as SharedArrayBufferConstructedWithoutIsolation };
225
237
  export namespace TextToSpeech_DisallowedByAutoplay_1 {
226
- let chromeStatusFeature_21: number;
227
- export { chromeStatusFeature_21 as chromeStatusFeature };
228
- let milestone_17: number;
229
- export { milestone_17 as milestone };
238
+ let chromeStatusFeature_23: number;
239
+ export { chromeStatusFeature_23 as chromeStatusFeature };
240
+ let milestone_18: number;
241
+ export { milestone_18 as milestone };
230
242
  }
231
243
  export { TextToSpeech_DisallowedByAutoplay_1 as TextToSpeech_DisallowedByAutoplay };
232
244
  export namespace UnloadHandler_1 {
233
- let chromeStatusFeature_22: number;
234
- export { chromeStatusFeature_22 as chromeStatusFeature };
245
+ let chromeStatusFeature_24: number;
246
+ export { chromeStatusFeature_24 as chromeStatusFeature };
235
247
  }
236
248
  export { UnloadHandler_1 as UnloadHandler };
237
249
  export namespace V8SharedArrayBufferConstructedInExtensionWithoutIsolation_1 {
238
- let milestone_18: number;
239
- export { milestone_18 as milestone };
240
- }
241
- export { V8SharedArrayBufferConstructedInExtensionWithoutIsolation_1 as V8SharedArrayBufferConstructedInExtensionWithoutIsolation };
242
- export namespace WebGPULimitMaxInterStageShaderComponents_1 {
243
- let chromeStatusFeature_23: number;
244
- export { chromeStatusFeature_23 as chromeStatusFeature };
245
- }
246
- export { WebGPULimitMaxInterStageShaderComponents_1 as WebGPULimitMaxInterStageShaderComponents };
247
- export namespace WebSQL_1 {
248
- let chromeStatusFeature_24: number;
249
- export { chromeStatusFeature_24 as chromeStatusFeature };
250
250
  let milestone_19: number;
251
251
  export { milestone_19 as milestone };
252
252
  }
253
- export { WebSQL_1 as WebSQL };
253
+ export { V8SharedArrayBufferConstructedInExtensionWithoutIsolation_1 as V8SharedArrayBufferConstructedInExtensionWithoutIsolation };
254
254
  export namespace XHRJSONEncodingDetection_1 {
255
255
  let milestone_20: number;
256
256
  export { milestone_20 as milestone };
257
257
  }
258
258
  export { XHRJSONEncodingDetection_1 as XHRJSONEncodingDetection };
259
- export namespace XRSupportsSession_1 {
260
- let milestone_21: number;
261
- export { milestone_21 as milestone };
262
- }
263
- export { XRSupportsSession_1 as XRSupportsSession };
264
259
  }
265
260
  //# sourceMappingURL=deprecations-strings.d.ts.map
@@ -4,8 +4,8 @@
4
4
  // Use of this source code is governed by a BSD-style license that can be
5
5
  // found in the LICENSE file.
6
6
 
7
- // This file is auto-generated, do not edit manually.
8
- // Re-generate with: npm run generate-protocol-resources
7
+
8
+
9
9
 
10
10
  export const UIStrings = {
11
11
  /**
@@ -72,10 +72,18 @@ export const UIStrings = {
72
72
  * @description This warning occurs when the `getUserMedia()` API is invoked on an insecure (e.g., HTTP) site. This is only permitted on secure sites (e.g., HTTPS).
73
73
  */
74
74
  GetUserMediaInsecureOrigin: "`getUserMedia()` no longer works on insecure origins. To use this feature, you should consider switching your application to a secure origin, such as HTTPS. See https://goo.gle/chrome-insecure-origins for more details.",
75
+ /**
76
+ * @description This warning occurs when a site uses <h1> inside <article>, <aside>, <nav>, or <section>. It means the behavior (font size) may change in a future Chrome release, when some special rules are removed from the browser.
77
+ */
78
+ H1UserAgentFontSizeInSection: "Found an <h1> tag within an <article>, <aside>, <nav>, or <section> which does not have a specified font-size. The size of this heading text will be changing in this browser in the near future. See https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Heading_Elements#specifying_a_uniform_font_size_for_h1 for more information.",
75
79
  /**
76
80
  * @description A deprecation warning shown to developers in the DevTools Issues tab when code tries to use the deprecated hostCandidate field, guiding developers to use the equivalent information in the .address and .port fields instead.
77
81
  */
78
82
  HostCandidateAttributeGetter: "`RTCPeerConnectionIceErrorEvent.hostCandidate` is deprecated. Please use `RTCPeerConnectionIceErrorEvent.address` or `RTCPeerConnectionIceErrorEvent.port` instead.",
83
+ /**
84
+ * @description A deprecation warning shown in the DevTools Issues tab, when a request for digital credentials API is formatted using a deprecated format.
85
+ */
86
+ IdentityDigitalCredentials: "This format for the navigator.credentials.get() request for digital credentials is deprecated, please update your call to use the new format.",
79
87
  /**
80
88
  * @description A deprecation warning shown in the DevTools Issues tab, when a service worker reads one of the fields from an event named 'canmakepayment'.
81
89
  */
@@ -88,6 +96,10 @@ export const UIStrings = {
88
96
  * @description This is a deprecated warning to developers that a field in a structure has been renamed.
89
97
  */
90
98
  InterestGroupDailyUpdateUrl: "The `dailyUpdateUrl` field of `InterestGroups` passed to `joinAdInterestGroup()` has been renamed to `updateUrl`, to more accurately reflect its behavior.",
99
+ /**
100
+ * @description Warning displayed to developers that instead of calling the `Intl.v8BreakIterator` constructor, which is not a standard JavaScript API, use ECMA402 standard API Intl.Segmenter shipped in end of 2020 instead.
101
+ */
102
+ IntlV8BreakIterator: "`Intl.v8BreakIterator` is deprecated. Please use `Intl.Segmenter` instead.",
91
103
  /**
92
104
  * @description This warning occurs when a stylesheet loaded from a local file directive does not end in the file type `.css`.
93
105
  */
@@ -115,7 +127,7 @@ export const UIStrings = {
115
127
  /**
116
128
  * @description Warning displayed to developers when CreateImageBitmap is used with the newly deprecated option imageOrientation: 'none'.
117
129
  */
118
- ObsoleteCreateImageBitmapImageOrientationNone: "Option `imageOrientation: 'none'` in createImageBitmap is deprecated. Please use createImageBitmap with option \\{imageOrientation: 'from-image'\\} instead.",
130
+ ObsoleteCreateImageBitmapImageOrientationNone: "Option `imageOrientation: 'none'` in createImageBitmap is deprecated. Please use createImageBitmap with option '\\{imageOrientation: 'from-image'\\}' instead.",
119
131
  /**
120
132
  * @description This warning occurs when the WebRTC protocol attempts to negotiate a connection using an obsolete cipher and risks connection security.
121
133
  */
@@ -216,14 +228,6 @@ export const UIStrings = {
216
228
  * @description A deprecation warning shown in the DevTools Issues tab. The placeholder is always the noun 'SharedArrayBuffer' which refers to a JavaScript construct. 'Extensions' refers to Chrome extensions. The warning is shown when Chrome Extensions attempt to use 'SharedArrayBuffer's under insecure circumstances.
217
229
  */
218
230
  V8SharedArrayBufferConstructedInExtensionWithoutIsolation: "Extensions should opt into cross-origin isolation to continue using `SharedArrayBuffer`. See https://developer.chrome.com/docs/extensions/mv3/cross-origin-isolation/.",
219
- /**
220
- * @description This warning occurs when the website attempts to use the deprecated WebGPU limit `maxInterStageShaderComponents`.
221
- */
222
- WebGPULimitMaxInterStageShaderComponents: "The WebGPU limit `maxInterStageShaderComponents` is deprecated, instead use the WebGPU limit `maxInterStageShaderVariables`.",
223
- /**
224
- * @description Warning displayed to developers when the Web SQL API is used to let them know this API is deprecated.
225
- */
226
- WebSQL: "Web SQL is deprecated. Please use SQLite WebAssembly or Indexed Database",
227
231
  /**
228
232
  * @description Warning displayed to developers that they are using `XMLHttpRequest` API in a way that they expect an unsupported character encoding `UTF-16` could be used in the server reply.
229
233
  */
@@ -232,10 +236,6 @@ export const UIStrings = {
232
236
  * @description Warning displayed to developers. It is shown when the `XMLHttpRequest` API is used in a way that it slows down the page load of the next page. The `main thread` refers to an operating systems thread used to run most of the processing of HTML documents, so please use a consistent wording.
233
237
  */
234
238
  XMLHttpRequestSynchronousInNonWorkerOutsideBeforeUnload: "Synchronous `XMLHttpRequest` on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check https://xhr.spec.whatwg.org/.",
235
- /**
236
- * @description Warning displayed to developers that instead of using `supportsSession()`, which returns a promise that resolves if the XR session can be supported and rejects if not, they should use `isSessionSupported()` which will return a promise which resolves to a boolean indicating if the XR session can be supported or not, but may reject to throw an exception.
237
- */
238
- XRSupportsSession: "`supportsSession()` is deprecated. Please use `isSessionSupported()` and check the resolved boolean value instead.",
239
239
  };
240
240
 
241
241
 
@@ -278,6 +278,13 @@ export const DEPRECATIONS_METADATA = {
278
278
  "chromeStatusFeature": 5128825141198848,
279
279
  "milestone": 119
280
280
  },
281
+ "H1UserAgentFontSizeInSection": {
282
+ "chromeStatusFeature": 6192419898654720,
283
+ "milestone": 136
284
+ },
285
+ "IdentityDigitalCredentials": {
286
+ "chromeStatusFeature": 5166035265650688
287
+ },
281
288
  "IdentityInCanMakePaymentEvent": {
282
289
  "chromeStatusFeature": 5190978431352832
283
290
  },
@@ -351,17 +358,7 @@ export const DEPRECATIONS_METADATA = {
351
358
  "V8SharedArrayBufferConstructedInExtensionWithoutIsolation": {
352
359
  "milestone": 96
353
360
  },
354
- "WebGPULimitMaxInterStageShaderComponents": {
355
- "chromeStatusFeature": 4853767735083008
356
- },
357
- "WebSQL": {
358
- "chromeStatusFeature": 5134293578285056,
359
- "milestone": 115
360
- },
361
361
  "XHRJSONEncodingDetection": {
362
362
  "milestone": 93
363
- },
364
- "XRSupportsSession": {
365
- "milestone": 80
366
363
  }
367
364
  };
@@ -220,7 +220,7 @@ When the `message` needs to be the same as another string but another property m
220
220
 
221
221
  In Lighthouse, this is done by having a different `description` for the strings, which is then copied to `meaning` in `resolveMessageCollisions()`. `meaning` cannot be manually set.
222
222
 
223
- For instance, the string "Potential Savings" currently refers to both saved KiB and saved milliseconds in different audits. The string is defined twice, each with a different `description` describing the units being saved, in case some locales' translations will use a different word choice depending on the unit.
223
+ For instance, the string "Est Savings" currently refers to both saved KiB and saved milliseconds in different audits. The string is defined twice, each with a different `description` describing the units being saved, in case some locales' translations will use a different word choice depending on the unit.
224
224
 
225
225
  Internally, TC uses a message ID that's a hash of `message` and `meaning` to check for collisions. Somewhat confusingly, if two messages do have colliding IDs, then `message`, `meaning`, `description`, and `placeholders` are all required to match or an error is thrown. This is why all message properties could cause a collision but `meaning` is the only way to dedupe them.
226
226
 
@@ -71,7 +71,7 @@ export function lookupLocale(locales?: (string | string[]) | undefined, possible
71
71
  * @param {string} filename
72
72
  * @param {Record<string, string>=} fileStrings
73
73
  */
74
- export function createIcuMessageFn(filename: string, fileStrings?: Record<string, string> | undefined): (message: string, values?: Record<string, string | number> | undefined) => LH.IcuMessage;
74
+ export function createIcuMessageFn(filename: string, fileStrings?: Record<string, string> | undefined): (message: string, values?: Record<string, string | number>) => LH.IcuMessage;
75
75
  /**
76
76
  * Returns true if the given value is a string or an LH.IcuMessage.
77
77
  * @param {unknown} value