lighthouse 13.2.0 → 13.4.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 (212) hide show
  1. package/cli/cli-flags.d.ts +8 -9
  2. package/cli/cli-flags.js +2 -2
  3. package/cli/test/smokehouse/config/exclusions.js +2 -0
  4. package/cli/test/smokehouse/lighthouse-runners/bundle.js +7 -3
  5. package/cli/test/smokehouse/lighthouse-runners/cli.js +5 -1
  6. package/cli/test/smokehouse/lighthouse-runners/devtools-mcp.js +7 -3
  7. package/cli/test/smokehouse/lighthouse-runners/devtools.js +4 -1
  8. package/cli/test/smokehouse/smokehouse.js +7 -2
  9. package/cli/test/smokehouse/version-check.d.ts +1 -1
  10. package/core/audits/accessibility/accesskeys.js +1 -1
  11. package/core/audits/accessibility/aria-allowed-attr.js +1 -1
  12. package/core/audits/accessibility/aria-allowed-role.js +1 -1
  13. package/core/audits/accessibility/aria-command-name.js +1 -1
  14. package/core/audits/accessibility/aria-conditional-attr.js +1 -1
  15. package/core/audits/accessibility/aria-deprecated-role.js +1 -1
  16. package/core/audits/accessibility/aria-dialog-name.js +1 -1
  17. package/core/audits/accessibility/aria-hidden-body.js +1 -1
  18. package/core/audits/accessibility/aria-hidden-focus.js +1 -1
  19. package/core/audits/accessibility/aria-input-field-name.js +1 -1
  20. package/core/audits/accessibility/aria-meter-name.js +1 -1
  21. package/core/audits/accessibility/aria-progressbar-name.js +1 -1
  22. package/core/audits/accessibility/aria-prohibited-attr.js +1 -1
  23. package/core/audits/accessibility/aria-required-attr.js +1 -1
  24. package/core/audits/accessibility/aria-required-children.js +1 -1
  25. package/core/audits/accessibility/aria-required-parent.js +1 -1
  26. package/core/audits/accessibility/aria-roles.js +1 -1
  27. package/core/audits/accessibility/aria-text.js +1 -1
  28. package/core/audits/accessibility/aria-toggle-field-name.js +1 -1
  29. package/core/audits/accessibility/aria-tooltip-name.js +1 -1
  30. package/core/audits/accessibility/aria-treeitem-name.js +1 -1
  31. package/core/audits/accessibility/aria-valid-attr-value.js +1 -1
  32. package/core/audits/accessibility/aria-valid-attr.js +1 -1
  33. package/core/audits/accessibility/autocomplete-valid.js +1 -1
  34. package/core/audits/accessibility/button-name.js +1 -1
  35. package/core/audits/accessibility/bypass.js +1 -1
  36. package/core/audits/accessibility/color-contrast.js +1 -1
  37. package/core/audits/accessibility/definition-list.js +1 -1
  38. package/core/audits/accessibility/dlitem.js +1 -1
  39. package/core/audits/accessibility/document-title.js +1 -1
  40. package/core/audits/accessibility/duplicate-id-aria.js +1 -1
  41. package/core/audits/accessibility/empty-heading.js +1 -1
  42. package/core/audits/accessibility/form-field-multiple-labels.js +1 -1
  43. package/core/audits/accessibility/frame-title.js +1 -1
  44. package/core/audits/accessibility/heading-order.js +1 -1
  45. package/core/audits/accessibility/html-has-lang.js +1 -1
  46. package/core/audits/accessibility/html-lang-valid.js +1 -1
  47. package/core/audits/accessibility/html-xml-lang-mismatch.js +1 -1
  48. package/core/audits/accessibility/identical-links-same-purpose.js +1 -1
  49. package/core/audits/accessibility/image-alt.js +1 -1
  50. package/core/audits/accessibility/image-redundant-alt.js +1 -1
  51. package/core/audits/accessibility/input-button-name.js +1 -1
  52. package/core/audits/accessibility/input-image-alt.js +1 -1
  53. package/core/audits/accessibility/label-content-name-mismatch.js +1 -1
  54. package/core/audits/accessibility/label.js +1 -1
  55. package/core/audits/accessibility/landmark-one-main.js +1 -1
  56. package/core/audits/accessibility/link-in-text-block.js +1 -1
  57. package/core/audits/accessibility/link-name.js +1 -1
  58. package/core/audits/accessibility/list.js +1 -1
  59. package/core/audits/accessibility/listitem.js +1 -1
  60. package/core/audits/accessibility/meta-refresh.js +1 -1
  61. package/core/audits/accessibility/meta-viewport.js +1 -1
  62. package/core/audits/accessibility/object-alt.js +1 -1
  63. package/core/audits/accessibility/presentation-role-conflict.js +1 -1
  64. package/core/audits/accessibility/select-name.js +1 -1
  65. package/core/audits/accessibility/skip-link.js +1 -1
  66. package/core/audits/accessibility/svg-img-alt.js +1 -1
  67. package/core/audits/accessibility/tabindex.js +1 -1
  68. package/core/audits/accessibility/table-duplicate-name.js +1 -1
  69. package/core/audits/accessibility/table-fake-caption.js +1 -1
  70. package/core/audits/accessibility/target-size.js +1 -1
  71. package/core/audits/accessibility/td-has-header.js +1 -1
  72. package/core/audits/accessibility/td-headers-attr.js +1 -1
  73. package/core/audits/accessibility/th-has-data-cells.js +1 -1
  74. package/core/audits/accessibility/valid-lang.js +1 -1
  75. package/core/audits/accessibility/video-caption.js +1 -1
  76. package/core/audits/agentic/agent-accessibility-tree.js +1 -1
  77. package/core/audits/agentic/llms-txt.js +10 -10
  78. package/core/audits/baseline.js +10 -12
  79. package/core/audits/dobetterweb/geolocation-on-start.js +2 -1
  80. package/core/audits/network-requests.js +2 -0
  81. package/core/audits/seo/canonical.js +19 -7
  82. package/core/audits/webmcp-form-coverage.js +2 -2
  83. package/core/audits/webmcp-registered-tools.js +1 -1
  84. package/core/audits/webmcp-schema-validity.js +1 -1
  85. package/core/computed/js-bundles.d.ts +1 -1
  86. package/core/computed/load-simulator.d.ts +1 -1
  87. package/core/computed/metrics/first-contentful-paint-all-frames.d.ts +1 -1
  88. package/core/computed/metrics/first-contentful-paint.d.ts +1 -1
  89. package/core/computed/metrics/interactive.d.ts +1 -1
  90. package/core/computed/metrics/lantern-metric.d.ts +6 -6
  91. package/core/computed/metrics/largest-contentful-paint-all-frames.d.ts +1 -1
  92. package/core/computed/metrics/largest-contentful-paint.d.ts +1 -1
  93. package/core/computed/metrics/max-potential-fid.d.ts +1 -1
  94. package/core/computed/metrics/speed-index.d.ts +1 -1
  95. package/core/computed/metrics/time-to-first-byte.d.ts +1 -1
  96. package/core/computed/metrics/total-blocking-time.d.ts +1 -1
  97. package/core/computed/module-duplication.d.ts +1 -1
  98. package/core/computed/page-dependency-graph.d.ts +1 -1
  99. package/core/computed/unused-css.d.ts +1 -1
  100. package/core/config/agentic-browsing-config.d.ts +1 -0
  101. package/core/config/agentic-browsing-config.js +3 -2
  102. package/core/config/config-helpers.d.ts +1 -0
  103. package/core/config/config-helpers.js +1 -1
  104. package/core/config/config-plugin.d.ts +1 -0
  105. package/core/config/config-plugin.js +1 -0
  106. package/core/config/config.d.ts +1 -0
  107. package/core/config/config.js +1 -0
  108. package/core/config/constants.d.ts +1 -0
  109. package/core/config/constants.js +1 -0
  110. package/core/config/default-config.js +45 -0
  111. package/core/config/experimental-config.d.ts +1 -9
  112. package/core/config/experimental-config.js +2 -0
  113. package/core/config/filters.d.ts +1 -0
  114. package/core/config/filters.js +1 -0
  115. package/core/config/full-config.d.ts +1 -5
  116. package/core/config/full-config.js +2 -0
  117. package/core/config/lr-desktop-config.d.ts +1 -0
  118. package/core/config/lr-desktop-config.js +1 -0
  119. package/core/config/lr-mobile-config.d.ts +1 -5
  120. package/core/config/lr-mobile-config.js +2 -0
  121. package/core/config/perf-config.d.ts +1 -5
  122. package/core/config/perf-config.js +2 -0
  123. package/core/config/validation.d.ts +1 -0
  124. package/core/config/validation.js +1 -0
  125. package/core/gather/driver/execution-context.d.ts +23 -0
  126. package/core/gather/driver/execution-context.js +86 -1
  127. package/core/gather/driver/storage.js +13 -0
  128. package/core/gather/driver.d.ts +1 -1
  129. package/core/gather/gatherers/accessibility.js +1 -0
  130. package/core/gather/gatherers/trace-elements.d.ts +4 -1
  131. package/core/gather/gatherers/trace-elements.js +24 -28
  132. package/core/gather/gatherers/webmcp-schema.js +9 -16
  133. package/core/gather/gatherers/webmcp.d.ts +5 -0
  134. package/core/gather/gatherers/webmcp.js +34 -27
  135. package/core/index.d.ts +0 -1
  136. package/core/index.js +0 -1
  137. package/core/lib/baseline/web-features-data.json +1177 -0
  138. package/core/lib/baseline/web-features-metadata.json +1 -1
  139. package/core/lib/deprecations-strings.d.ts +45 -23
  140. package/core/lib/deprecations-strings.js +23 -0
  141. package/core/lib/script-helpers.js +13 -1
  142. package/core/scoring.d.ts +58 -58
  143. package/dist/report/bundle.esm.js +4 -7
  144. package/dist/report/flow.js +6 -9
  145. package/dist/report/standalone.js +20 -12
  146. package/flow-report/types/flow-report.d.ts +2 -2
  147. package/package.json +23 -26
  148. package/report/assets/styles.css +1 -4
  149. package/report/renderer/components.js +1 -1
  150. package/report/renderer/details-renderer.d.ts +6 -1
  151. package/report/renderer/details-renderer.js +11 -3
  152. package/report/renderer/explodey-gauge.js +9 -7
  153. package/report/renderer/i18n-formatter.d.ts +1 -1
  154. package/report/renderer/logger.js +18 -4
  155. package/report/renderer/text-encoding.js +1 -1
  156. package/report/types/html-renderer.d.ts +2 -2
  157. package/shared/localization/locales/ar-XB.json +290 -65
  158. package/shared/localization/locales/ar.json +290 -65
  159. package/shared/localization/locales/bg.json +290 -65
  160. package/shared/localization/locales/ca.json +295 -70
  161. package/shared/localization/locales/cs.json +290 -65
  162. package/shared/localization/locales/da.json +294 -69
  163. package/shared/localization/locales/de.json +295 -70
  164. package/shared/localization/locales/el.json +290 -65
  165. package/shared/localization/locales/en-GB.json +290 -65
  166. package/shared/localization/locales/en-US.json +105 -75
  167. package/shared/localization/locales/en-XA.json +253 -64
  168. package/shared/localization/locales/en-XL.json +105 -75
  169. package/shared/localization/locales/es-419.json +290 -65
  170. package/shared/localization/locales/es.json +298 -73
  171. package/shared/localization/locales/fi.json +290 -65
  172. package/shared/localization/locales/fil.json +290 -65
  173. package/shared/localization/locales/fr.json +294 -69
  174. package/shared/localization/locales/he.json +293 -68
  175. package/shared/localization/locales/hi.json +291 -66
  176. package/shared/localization/locales/hr.json +290 -65
  177. package/shared/localization/locales/hu.json +290 -65
  178. package/shared/localization/locales/id.json +290 -65
  179. package/shared/localization/locales/it.json +294 -69
  180. package/shared/localization/locales/ja.json +290 -65
  181. package/shared/localization/locales/ko.json +290 -65
  182. package/shared/localization/locales/lt.json +290 -65
  183. package/shared/localization/locales/lv.json +290 -65
  184. package/shared/localization/locales/nl.json +290 -65
  185. package/shared/localization/locales/no.json +290 -65
  186. package/shared/localization/locales/pl.json +290 -65
  187. package/shared/localization/locales/pt-PT.json +291 -66
  188. package/shared/localization/locales/pt.json +290 -65
  189. package/shared/localization/locales/ro.json +290 -65
  190. package/shared/localization/locales/ru.json +301 -76
  191. package/shared/localization/locales/sk.json +291 -66
  192. package/shared/localization/locales/sl.json +290 -65
  193. package/shared/localization/locales/sr-Latn.json +290 -65
  194. package/shared/localization/locales/sr.json +290 -65
  195. package/shared/localization/locales/sv.json +297 -72
  196. package/shared/localization/locales/ta.json +291 -66
  197. package/shared/localization/locales/te.json +293 -68
  198. package/shared/localization/locales/th.json +291 -66
  199. package/shared/localization/locales/tr.json +290 -65
  200. package/shared/localization/locales/uk.json +290 -65
  201. package/shared/localization/locales/vi.json +291 -66
  202. package/shared/localization/locales/zh-HK.json +292 -67
  203. package/shared/localization/locales/zh-TW.json +291 -66
  204. package/shared/localization/locales/zh.json +291 -66
  205. package/shared/types/shared.d.ts +1 -1
  206. package/tsconfig-base.json +2 -1
  207. package/tsconfig.json +2 -0
  208. package/types/artifacts.d.ts +1 -1
  209. package/types/internal/rxjs.d.ts +1 -1
  210. package/types/internal/smokehouse.d.ts +8 -2
  211. package/types.d.ts +2 -0
  212. package/types.js +11 -0
@@ -1,3 +1,3 @@
1
1
  {
2
- "date": "2026-03-18"
2
+ "date": "2026-06-05"
3
3
  }
@@ -50,6 +50,7 @@ export namespace UIStrings {
50
50
  let PrefixedVideoExitFullScreen: string;
51
51
  let PrefixedVideoExitFullscreen: string;
52
52
  let PrefixedVideoSupportsFullscreen: string;
53
+ let PreventSvgFilterPaint: string;
53
54
  let RangeExpand: string;
54
55
  let RelatedWebsiteSets: string;
55
56
  let RequestedSubresourceWithEmbeddedCredentials: string;
@@ -65,6 +66,8 @@ export namespace UIStrings {
65
66
  let UnloadHandler: string;
66
67
  let V8SharedArrayBufferConstructedInExtensionWithoutIsolation: string;
67
68
  let WebBluetoothRemoteCharacteristicWriteValue: string;
69
+ let WebTransportDatagramDuplexStreamIncomingHighWaterMark: string;
70
+ let WebTransportDatagramDuplexStreamOutgoingHighWaterMark: string;
68
71
  let XHRJSONEncodingDetection: string;
69
72
  let XMLHttpRequestSynchronousInNonWorkerOutsideBeforeUnload: string;
70
73
  let XSLT: string;
@@ -237,6 +240,11 @@ export namespace DEPRECATIONS_METADATA {
237
240
  export { milestone_12 as milestone };
238
241
  }
239
242
  export { PersistentQuotaType_1 as PersistentQuotaType };
243
+ export namespace PreventSvgFilterPaint_1 {
244
+ let chromeStatusFeature_25: number;
245
+ export { chromeStatusFeature_25 as chromeStatusFeature };
246
+ }
247
+ export { PreventSvgFilterPaint_1 as PreventSvgFilterPaint };
240
248
  export namespace RTCConstraintEnableDtlsSrtpFalse_1 {
241
249
  let milestone_13: number;
242
250
  export { milestone_13 as milestone };
@@ -248,25 +256,25 @@ export namespace DEPRECATIONS_METADATA {
248
256
  }
249
257
  export { RTCConstraintEnableDtlsSrtpTrue_1 as RTCConstraintEnableDtlsSrtpTrue };
250
258
  export namespace RTCPeerConnectionGetStatsLegacyNonCompliant_1 {
251
- let chromeStatusFeature_25: number;
252
- export { chromeStatusFeature_25 as chromeStatusFeature };
259
+ let chromeStatusFeature_26: number;
260
+ export { chromeStatusFeature_26 as chromeStatusFeature };
253
261
  let milestone_15: number;
254
262
  export { milestone_15 as milestone };
255
263
  }
256
264
  export { RTCPeerConnectionGetStatsLegacyNonCompliant_1 as RTCPeerConnectionGetStatsLegacyNonCompliant };
257
265
  export namespace RelatedWebsiteSets_1 {
258
- let chromeStatusFeature_26: number;
259
- export { chromeStatusFeature_26 as chromeStatusFeature };
266
+ let chromeStatusFeature_27: number;
267
+ export { chromeStatusFeature_27 as chromeStatusFeature };
260
268
  }
261
269
  export { RelatedWebsiteSets_1 as RelatedWebsiteSets };
262
270
  export namespace RequestedSubresourceWithEmbeddedCredentials_1 {
263
- let chromeStatusFeature_27: number;
264
- export { chromeStatusFeature_27 as chromeStatusFeature };
271
+ let chromeStatusFeature_28: number;
272
+ export { chromeStatusFeature_28 as chromeStatusFeature };
265
273
  }
266
274
  export { RequestedSubresourceWithEmbeddedCredentials_1 as RequestedSubresourceWithEmbeddedCredentials };
267
275
  export namespace RtcpMuxPolicyNegotiate_1 {
268
- let chromeStatusFeature_28: number;
269
- export { chromeStatusFeature_28 as chromeStatusFeature };
276
+ let chromeStatusFeature_29: number;
277
+ export { chromeStatusFeature_29 as chromeStatusFeature };
270
278
  let milestone_16: number;
271
279
  export { milestone_16 as milestone };
272
280
  }
@@ -277,25 +285,25 @@ export namespace DEPRECATIONS_METADATA {
277
285
  }
278
286
  export { SharedArrayBufferConstructedWithoutIsolation_1 as SharedArrayBufferConstructedWithoutIsolation };
279
287
  export namespace SharedStorage_1 {
280
- let chromeStatusFeature_29: number;
281
- export { chromeStatusFeature_29 as chromeStatusFeature };
288
+ let chromeStatusFeature_30: number;
289
+ export { chromeStatusFeature_30 as chromeStatusFeature };
282
290
  }
283
291
  export { SharedStorage_1 as SharedStorage };
284
292
  export namespace StorageAccessAPI_requestStorageAccessFor_Method_1 {
285
- let chromeStatusFeature_30: number;
286
- export { chromeStatusFeature_30 as chromeStatusFeature };
293
+ let chromeStatusFeature_31: number;
294
+ export { chromeStatusFeature_31 as chromeStatusFeature };
287
295
  }
288
296
  export { StorageAccessAPI_requestStorageAccessFor_Method_1 as StorageAccessAPI_requestStorageAccessFor_Method };
289
297
  export namespace TextToSpeech_DisallowedByAutoplay_1 {
290
- let chromeStatusFeature_31: number;
291
- export { chromeStatusFeature_31 as chromeStatusFeature };
298
+ let chromeStatusFeature_32: number;
299
+ export { chromeStatusFeature_32 as chromeStatusFeature };
292
300
  let milestone_18: number;
293
301
  export { milestone_18 as milestone };
294
302
  }
295
303
  export { TextToSpeech_DisallowedByAutoplay_1 as TextToSpeech_DisallowedByAutoplay };
296
304
  export namespace UnloadHandler_1 {
297
- let chromeStatusFeature_32: number;
298
- export { chromeStatusFeature_32 as chromeStatusFeature };
305
+ let chromeStatusFeature_33: number;
306
+ export { chromeStatusFeature_33 as chromeStatusFeature };
299
307
  }
300
308
  export { UnloadHandler_1 as UnloadHandler };
301
309
  export namespace V8SharedArrayBufferConstructedInExtensionWithoutIsolation_1 {
@@ -304,21 +312,35 @@ export namespace DEPRECATIONS_METADATA {
304
312
  }
305
313
  export { V8SharedArrayBufferConstructedInExtensionWithoutIsolation_1 as V8SharedArrayBufferConstructedInExtensionWithoutIsolation };
306
314
  export namespace WebBluetoothRemoteCharacteristicWriteValue_1 {
307
- let chromeStatusFeature_33: number;
308
- export { chromeStatusFeature_33 as chromeStatusFeature };
315
+ let chromeStatusFeature_34: number;
316
+ export { chromeStatusFeature_34 as chromeStatusFeature };
309
317
  }
310
318
  export { WebBluetoothRemoteCharacteristicWriteValue_1 as WebBluetoothRemoteCharacteristicWriteValue };
311
- export namespace XHRJSONEncodingDetection_1 {
319
+ export namespace WebTransportDatagramDuplexStreamIncomingHighWaterMark_1 {
320
+ let chromeStatusFeature_35: number;
321
+ export { chromeStatusFeature_35 as chromeStatusFeature };
312
322
  let milestone_20: number;
313
323
  export { milestone_20 as milestone };
314
324
  }
315
- export { XHRJSONEncodingDetection_1 as XHRJSONEncodingDetection };
316
- export namespace XSLT_1 {
317
- let chromeStatusFeature_34: number;
318
- export { chromeStatusFeature_34 as chromeStatusFeature };
325
+ export { WebTransportDatagramDuplexStreamIncomingHighWaterMark_1 as WebTransportDatagramDuplexStreamIncomingHighWaterMark };
326
+ export namespace WebTransportDatagramDuplexStreamOutgoingHighWaterMark_1 {
327
+ let chromeStatusFeature_36: number;
328
+ export { chromeStatusFeature_36 as chromeStatusFeature };
319
329
  let milestone_21: number;
320
330
  export { milestone_21 as milestone };
321
331
  }
332
+ export { WebTransportDatagramDuplexStreamOutgoingHighWaterMark_1 as WebTransportDatagramDuplexStreamOutgoingHighWaterMark };
333
+ export namespace XHRJSONEncodingDetection_1 {
334
+ let milestone_22: number;
335
+ export { milestone_22 as milestone };
336
+ }
337
+ export { XHRJSONEncodingDetection_1 as XHRJSONEncodingDetection };
338
+ export namespace XSLT_1 {
339
+ let chromeStatusFeature_37: number;
340
+ export { chromeStatusFeature_37 as chromeStatusFeature };
341
+ let milestone_23: number;
342
+ export { milestone_23 as milestone };
343
+ }
322
344
  export { XSLT_1 as XSLT };
323
345
  }
324
346
  //# sourceMappingURL=deprecations-strings.d.ts.map
@@ -212,6 +212,10 @@ export const UIStrings = {
212
212
  * @description Standard message when one web API is deprecated in favor of another.
213
213
  */
214
214
  PrefixedVideoSupportsFullscreen: "HTMLVideoElement.webkitSupportsFullscreen is deprecated. Please use Document.fullscreenEnabled instead.",
215
+ /**
216
+ * @description Warning displayed to developers when an SVG filter is applied to a disallowed content type.
217
+ */
218
+ PreventSvgFilterPaint: "SVG filters cannot be applied to cross-origin iframes, restricted iframes (e.g., sandboxed), or plugins.",
215
219
  /**
216
220
  * @description Standard message when one web API is deprecated in favor of another.
217
221
  */
@@ -272,6 +276,14 @@ export const UIStrings = {
272
276
  * @description This warning occurs when the deprecated `BluetoothRemoteGATTCharacteristic.writeValue()` method is used. Developers should use `writeValueWithResponse()` or `writeValueWithoutResponse()` instead.
273
277
  */
274
278
  WebBluetoothRemoteCharacteristicWriteValue: "`BluetoothRemoteGATTCharacteristic.writeValue()` is deprecated. Use `writeValueWithResponse()` or `writeValueWithoutResponse()` instead.",
279
+ /**
280
+ * @description Warning for using the deprecated 'incomingHighWaterMark' attribute on WebTransportDatagramDuplexStream. Developers should use 'incomingMaxBufferedDatagrams' instead.
281
+ */
282
+ WebTransportDatagramDuplexStreamIncomingHighWaterMark: "WebTransportDatagramDuplexStream.incomingHighWaterMark has been renamed to incomingMaxBufferedDatagrams. incomingHighWaterMark will be removed in a future version of Chrome.",
283
+ /**
284
+ * @description Warning for using the deprecated 'outgoingHighWaterMark' attribute on WebTransportDatagramDuplexStream. Developers should use 'outgoingMaxBufferedDatagrams' instead.
285
+ */
286
+ WebTransportDatagramDuplexStreamOutgoingHighWaterMark: "WebTransportDatagramDuplexStream.outgoingHighWaterMark has been renamed to outgoingMaxBufferedDatagrams. outgoingHighWaterMark will be removed in a future version of Chrome.",
275
287
  /**
276
288
  * @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.
277
289
  */
@@ -391,6 +403,9 @@ export const DEPRECATIONS_METADATA = {
391
403
  "chromeStatusFeature": 5176235376246784,
392
404
  "milestone": 106
393
405
  },
406
+ "PreventSvgFilterPaint": {
407
+ "chromeStatusFeature": 5117170452398080
408
+ },
394
409
  "RTCConstraintEnableDtlsSrtpFalse": {
395
410
  "milestone": 97
396
411
  },
@@ -433,6 +448,14 @@ export const DEPRECATIONS_METADATA = {
433
448
  "WebBluetoothRemoteCharacteristicWriteValue": {
434
449
  "chromeStatusFeature": 5088568590598144
435
450
  },
451
+ "WebTransportDatagramDuplexStreamIncomingHighWaterMark": {
452
+ "chromeStatusFeature": 5143839699501056,
453
+ "milestone": 156
454
+ },
455
+ "WebTransportDatagramDuplexStreamOutgoingHighWaterMark": {
456
+ "chromeStatusFeature": 5143839699501056,
457
+ "milestone": 156
458
+ },
436
459
  "XHRJSONEncodingDetection": {
437
460
  "milestone": 93
438
461
  },
@@ -20,7 +20,19 @@ function isInline(script) {
20
20
  * @return {LH.Artifacts.NetworkRequest|undefined}
21
21
  */
22
22
  function getRequestForScript(networkRecords, script) {
23
- let networkRequest = networkRecords.find(request => request.url === script.url);
23
+ const frameId = script.executionContextAuxData?.frameId;
24
+ let networkRequest;
25
+
26
+ if (frameId) {
27
+ networkRequest = networkRecords.find(
28
+ request => request.url === script.url && request.frameId === frameId
29
+ );
30
+ }
31
+
32
+ if (!networkRequest) {
33
+ networkRequest = networkRecords.find(request => request.url === script.url);
34
+ }
35
+
24
36
  while (networkRequest?.redirectDestination) {
25
37
  networkRequest = networkRequest.redirectDestination;
26
38
  }
package/core/scoring.d.ts CHANGED
@@ -173,9 +173,6 @@ export class ReportScoring {
173
173
  } | {
174
174
  type: "text";
175
175
  value: import("./index.js").IcuMessage | string;
176
- } | {
177
- type: "subitems";
178
- items: /*elided*/ any[];
179
176
  } | {
180
177
  type: "source-location";
181
178
  url: string | import("./index.js").IcuMessage;
@@ -202,6 +199,9 @@ export class ReportScoring {
202
199
  type: "numeric";
203
200
  value: number;
204
201
  granularity?: number | undefined;
202
+ } | {
203
+ type: "subitems";
204
+ items: /*elided*/ any[];
205
205
  } | {
206
206
  type: "baseline-status";
207
207
  status: string | import("./index.js").IcuMessage;
@@ -227,25 +227,6 @@ export class ReportScoring {
227
227
  [x: string]: any;
228
228
  type: "debugdata";
229
229
  } | undefined;
230
- } | {
231
- type: "node";
232
- lhId?: string | import("./index.js").IcuMessage | undefined;
233
- path?: string | import("./index.js").IcuMessage | undefined;
234
- selector?: string | import("./index.js").IcuMessage | undefined;
235
- boundingRect?: {
236
- width: number;
237
- height: number;
238
- top: number;
239
- right: number;
240
- bottom: number;
241
- left: number;
242
- } | undefined;
243
- snippet?: string | import("./index.js").IcuMessage | undefined;
244
- nodeLabel?: string | import("./index.js").IcuMessage | undefined;
245
- explanation?: string | import("./index.js").IcuMessage | undefined;
246
- } | {
247
- type: "text";
248
- value: import("./index.js").IcuMessage | string;
249
230
  } | {
250
231
  type: "list-section";
251
232
  title?: (import("./index.js").IcuMessage | string) | undefined;
@@ -321,9 +302,6 @@ export class ReportScoring {
321
302
  } | {
322
303
  type: "text";
323
304
  value: import("./index.js").IcuMessage | string;
324
- } | {
325
- type: "subitems";
326
- items: /*elided*/ any[];
327
305
  } | {
328
306
  type: "source-location";
329
307
  url: string | import("./index.js").IcuMessage;
@@ -350,6 +328,9 @@ export class ReportScoring {
350
328
  type: "numeric";
351
329
  value: number;
352
330
  granularity?: number | undefined;
331
+ } | {
332
+ type: "subitems";
333
+ items: /*elided*/ any[];
353
334
  } | {
354
335
  type: "baseline-status";
355
336
  status: string | import("./index.js").IcuMessage;
@@ -395,6 +376,25 @@ export class ReportScoring {
395
376
  type: "text";
396
377
  value: import("./index.js").IcuMessage | string;
397
378
  };
379
+ } | {
380
+ type: "node";
381
+ lhId?: string | import("./index.js").IcuMessage | undefined;
382
+ path?: string | import("./index.js").IcuMessage | undefined;
383
+ selector?: string | import("./index.js").IcuMessage | undefined;
384
+ boundingRect?: {
385
+ width: number;
386
+ height: number;
387
+ top: number;
388
+ right: number;
389
+ bottom: number;
390
+ left: number;
391
+ } | undefined;
392
+ snippet?: string | import("./index.js").IcuMessage | undefined;
393
+ nodeLabel?: string | import("./index.js").IcuMessage | undefined;
394
+ explanation?: string | import("./index.js").IcuMessage | undefined;
395
+ } | {
396
+ type: "text";
397
+ value: import("./index.js").IcuMessage | string;
398
398
  })[];
399
399
  debugData?: {
400
400
  [x: string]: any;
@@ -438,6 +438,32 @@ export class ReportScoring {
438
438
  } | {
439
439
  type: "text";
440
440
  value: import("./index.js").IcuMessage | string;
441
+ } | {
442
+ type: "source-location";
443
+ url: string | import("./index.js").IcuMessage;
444
+ urlProvider: "network" | "comment";
445
+ line: number;
446
+ column: number;
447
+ original?: {
448
+ file: string | import("./index.js").IcuMessage;
449
+ line: number;
450
+ column: number;
451
+ } | undefined;
452
+ functionName?: string | import("./index.js").IcuMessage | undefined;
453
+ } | {
454
+ type: "link";
455
+ text: string | import("./index.js").IcuMessage;
456
+ url: string | import("./index.js").IcuMessage;
457
+ } | {
458
+ type: "url";
459
+ value: string | import("./index.js").IcuMessage;
460
+ } | {
461
+ type: "code";
462
+ value: import("./index.js").IcuMessage | string;
463
+ } | {
464
+ type: "numeric";
465
+ value: number;
466
+ granularity?: number | undefined;
441
467
  } | {
442
468
  type: "subitems";
443
469
  items: {
@@ -463,7 +489,7 @@ export class ReportScoring {
463
489
  } | {
464
490
  type: "text";
465
491
  value: import("./index.js").IcuMessage | string;
466
- } | /*elided*/ any | {
492
+ } | {
467
493
  type: "source-location";
468
494
  url: string | import("./index.js").IcuMessage;
469
495
  urlProvider: "network" | "comment";
@@ -489,7 +515,7 @@ export class ReportScoring {
489
515
  type: "numeric";
490
516
  value: number;
491
517
  granularity?: number | undefined;
492
- } | {
518
+ } | /*elided*/ any | {
493
519
  type: "baseline-status";
494
520
  status: string | import("./index.js").IcuMessage;
495
521
  displayString: import("./index.js").IcuMessage | string;
@@ -500,32 +526,6 @@ export class ReportScoring {
500
526
  } | undefined;
501
527
  subItems?: /*elided*/ any | undefined;
502
528
  }[];
503
- } | {
504
- type: "source-location";
505
- url: string | import("./index.js").IcuMessage;
506
- urlProvider: "network" | "comment";
507
- line: number;
508
- column: number;
509
- original?: {
510
- file: string | import("./index.js").IcuMessage;
511
- line: number;
512
- column: number;
513
- } | undefined;
514
- functionName?: string | import("./index.js").IcuMessage | undefined;
515
- } | {
516
- type: "link";
517
- text: string | import("./index.js").IcuMessage;
518
- url: string | import("./index.js").IcuMessage;
519
- } | {
520
- type: "url";
521
- value: string | import("./index.js").IcuMessage;
522
- } | {
523
- type: "code";
524
- value: import("./index.js").IcuMessage | string;
525
- } | {
526
- type: "numeric";
527
- value: number;
528
- granularity?: number | undefined;
529
529
  } | {
530
530
  type: "baseline-status";
531
531
  status: string | import("./index.js").IcuMessage;
@@ -564,7 +564,7 @@ export class ReportScoring {
564
564
  } | {
565
565
  type: "text";
566
566
  value: import("./index.js").IcuMessage | string;
567
- } | /*elided*/ any | {
567
+ } | {
568
568
  type: "source-location";
569
569
  url: string | import("./index.js").IcuMessage;
570
570
  urlProvider: "network" | "comment";
@@ -590,7 +590,7 @@ export class ReportScoring {
590
590
  type: "numeric";
591
591
  value: number;
592
592
  granularity?: number | undefined;
593
- } | {
593
+ } | /*elided*/ any | {
594
594
  type: "baseline-status";
595
595
  status: string | import("./index.js").IcuMessage;
596
596
  displayString: import("./index.js").IcuMessage | string;
@@ -671,9 +671,6 @@ export class ReportScoring {
671
671
  } | {
672
672
  type: "text";
673
673
  value: import("./index.js").IcuMessage | string;
674
- } | {
675
- type: "subitems";
676
- items: /*elided*/ any[];
677
674
  } | {
678
675
  type: "source-location";
679
676
  url: string | import("./index.js").IcuMessage;
@@ -700,6 +697,9 @@ export class ReportScoring {
700
697
  type: "numeric";
701
698
  value: number;
702
699
  granularity?: number | undefined;
700
+ } | {
701
+ type: "subitems";
702
+ items: /*elided*/ any[];
703
703
  } | {
704
704
  type: "baseline-status";
705
705
  status: string | import("./index.js").IcuMessage;