lighthouse 9.6.6 → 9.6.8

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.
@@ -0,0 +1,573 @@
1
+ // auto-generated by build/build-cdt-strings.js
2
+ /* eslint-disable */
3
+
4
+ const i18n = require('../lib/i18n/i18n.js');
5
+
6
+ const UIStrings = {
7
+ // Store strings used across messages in this block.
8
+ /**
9
+ * @description This links to the chrome feature status page when one exists.
10
+ */
11
+ feature: 'Check the feature status page for more details.',
12
+ /**
13
+ * @description This links to the chromium dash schedule when a milestone is set.
14
+ * @example {100} milestone
15
+ */
16
+ milestone: 'This change will go into effect with milestone {milestone}.',
17
+ /**
18
+ * @description Title of issue raised when a deprecated feature is used
19
+ */
20
+ title: 'Deprecated Feature Used',
21
+
22
+ /**
23
+ * @description We show this warning when 1) an "authorization" header is
24
+ * attached to the request by scripts, 2) there is no "authorization" in
25
+ * the "access-control-allow-headers" header in the response, and 3) there
26
+ * is a wildcard symbol ("*") in the "access-control-allow-header" header
27
+ * in the response. This is allowed now, but we're planning to reject such
28
+ * responses and require responses to have an "access-control-allow-headers"
29
+ * containing "authorization".
30
+ */
31
+ authorizationCoveredByWildcard:
32
+ 'Authorization will not be covered by the wildcard symbol (*) in CORS `Access-Control-Allow-Headers` handling.',
33
+ /**
34
+ * @description This warning occurs when a page attempts to request a resource
35
+ * whose URL contained both a newline character (`\n` or `\r`), and a
36
+ * less-than character (`<`). These resources are blocked.
37
+ */
38
+ canRequestURLHTTPContainingNewline:
39
+ 'Resource requests whose URLs contained both removed whitespace `(n|r|t)` characters and less-than characters (`<`) are blocked. Please remove newlines and encode less-than characters from places like element attribute values in order to load these resources.',
40
+ /**
41
+ * @description TODO(crbug.com/1320335): Description needed for translation
42
+ */
43
+ chromeLoadTimesConnectionInfo:
44
+ '`chrome.loadTimes()` is deprecated, instead use standardized API: Navigation Timing 2.',
45
+ /**
46
+ * @description TODO(crbug.com/1320336): Description needed for translation
47
+ */
48
+ chromeLoadTimesFirstPaintAfterLoadTime:
49
+ '`chrome.loadTimes()` is deprecated, instead use standardized API: Paint Timing.',
50
+ /**
51
+ * @description TODO(crbug.com/1320337): Description needed for translation
52
+ */
53
+ chromeLoadTimesWasAlternateProtocolAvailable:
54
+ '`chrome.loadTimes()` is deprecated, instead use standardized API: `nextHopProtocol` in Navigation Timing 2.',
55
+ /**
56
+ * @description TODO(crbug.com/1318847): Description needed for translation
57
+ */
58
+ cookieWithTruncatingChar: 'Cookies containing a `(0|r|n)` character will be rejected instead of truncated.',
59
+ /**
60
+ * @description This warning occurs when a frame accesses another frame's
61
+ * data after having set `document.domain` without having set the
62
+ * `Origin-Agent-Cluster` http header. This is a companion warning to
63
+ * `documentDomainSettingWithoutOriginAgentClusterHeader`, where that
64
+ * warning occurs when `document.domain` is set, and this warning
65
+ * occurs when an access has been made, based on that previous
66
+ * `document.domain` setting.
67
+ */
68
+ crossOriginAccessBasedOnDocumentDomain:
69
+ 'Relaxing the same-origin policy by setting `document.domain` is deprecated, and will be disabled by default. This deprecation warning is for a cross-origin access that was enabled by setting `document.domain`.',
70
+ /**
71
+ * @description Issue text shown when the web page uses a deprecated web API. The placeholder is
72
+ * the deprecated web API function.
73
+ * @example {window.alert} PH1
74
+ */
75
+ crossOriginWindowApi: 'Triggering {PH1} from cross origin iframes has been deprecated and will be removed in the future.',
76
+ /**
77
+ * @description Warning displayed to developers when they hide the Cast button
78
+ * on a video element using the deprecated CSS selector instead of using the
79
+ * disableRemotePlayback attribute on the element.
80
+ */
81
+ cssSelectorInternalMediaControlsOverlayCastButton:
82
+ 'The `disableRemotePlayback` attribute should be used in order to disable the default Cast integration instead of using `-internal-media-controls-overlay-cast-button` selector.',
83
+ /**
84
+ * @description This message is shown when the example deprecated feature is used
85
+ */
86
+ deprecationExample: 'This is an example of a translated deprecation issue message.',
87
+ /**
88
+ * @description This warning occurs when a script modifies `document.domain`
89
+ * without having set on `Origin-Agent-Cluster` http header. In other
90
+ * words, when a script relies on the default behaviour of
91
+ * `Origin-Agent-Cluster` when setting document.domain.
92
+ */
93
+ documentDomainSettingWithoutOriginAgentClusterHeader:
94
+ 'Relaxing the same-origin policy by setting `document.domain` is deprecated, and will be disabled by default. To continue using this feature, please opt-out of origin-keyed agent clusters by sending an `Origin-Agent-Cluster: ?0` header along with the HTTP response for the document and frames. See https://developer.chrome.com/blog/immutable-document-domain/ for more details.',
95
+ /**
96
+ * @description Warning displayed to developers when the non-standard `Event.path` API is used to notify them that this API is deprecated.
97
+ */
98
+ eventPath: '`Event.path` is deprecated and will be removed. Please use `Event.composedPath()` instead.',
99
+ /**
100
+ * @description This message is shown when the deprecated Expect-CT header is present.
101
+ */
102
+ expectCTHeader: 'The `Expect-CT` header is deprecated and will be removed. Chrome requires Certificate Transparency for all publicly trusted certificates issued after April 30, 2018.',
103
+ /**
104
+ * @description Warning displayed to developers when the Geolocation API is used from an insecure origin (one that isn't localhost or doesn't use HTTPS) to notify them that this use is no longer supported.
105
+ */
106
+ geolocationInsecureOrigin:
107
+ '`getCurrentPosition()` and `watchPosition()` no longer work 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.',
108
+ /**
109
+ * @description Warning displayed to developers when the Geolocation API is used from an insecure origin (one that isn't localhost or doesn't use HTTPS) to notify them that this use is deprecated.
110
+ */
111
+ geolocationInsecureOriginDeprecatedNotRemoved:
112
+ '`getCurrentPosition()` and `watchPosition()` are deprecated 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.',
113
+ /**
114
+ * @description TODO(crbug.com/1318858): Description needed for translation
115
+ */
116
+ getUserMediaInsecureOrigin:
117
+ '`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.',
118
+ /**
119
+ * @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 the equivalent information in the .address and .port fields instead.
120
+ */
121
+ hostCandidateAttributeGetter:
122
+ '`RTCPeerConnectionIceErrorEvent.hostCandidate` is deprecated. Please use `RTCPeerConnectionIceErrorEvent.address` or `RTCPeerConnectionIceErrorEvent.port` instead.',
123
+ /**
124
+ * @description A deprecation warning shown in the DevTools Issues tab,
125
+ * when a service worker reads one of the fields from an event named
126
+ * "canmakepayment".
127
+ */
128
+ identityInCanMakePaymentEvent: 'The merchant origin and arbitrary data from the `canmakepayment` service worker event are deprecated and will be removed: `topOrigin`, `paymentRequestOrigin`, `methodData`, `modifiers`.',
129
+ /**
130
+ * @description TODO(crbug.com/1320343): Description needed for translation
131
+ */
132
+ insecurePrivateNetworkSubresourceRequest:
133
+ 'The website requested a subresource from a network that it could only access because of its users\' privileged network position. These requests expose non-public devices and servers to the internet, increasing the risk of a cross-site request forgery (CSRF) attack, and/or information leakage. To mitigate these risks, Chrome deprecates requests to non-public subresources when initiated from non-secure contexts, and will start blocking them.',
134
+ /**
135
+ * @description A deprecation warning shown in the DevTools Issues tab.
136
+ * It's shown when a video conferencing website attempts to disable
137
+ * use of IPv6 addresses with a non-standard API.
138
+ */
139
+ legacyConstraintGoogIPv6:
140
+ 'IPv6 is enabled-by-default and the ability to disable it using `googIPv6` is targeted to be removed in M108, after which it will be ignored. Please stop using this legacy constraint.',
141
+ /**
142
+ * @description TODO(crbug.com/1318865): Description needed for translation
143
+ */
144
+ localCSSFileExtensionRejected:
145
+ 'CSS cannot be loaded from `file:` URLs unless they end in a `.css` file extension.',
146
+ /**
147
+ * @description TODO(crbug.com/1320345): Description needed for translation
148
+ */
149
+ mediaSourceAbortRemove:
150
+ 'Using `SourceBuffer.abort()` to abort `remove()`\'s asynchronous range removal is deprecated due to specification change. Support will be removed in the future. You should listen to the `updateend` event instead. `abort()` is intended to only abort an asynchronous media append or reset parser state.',
151
+ /**
152
+ * @description TODO(crbug.com/1320346): Description needed for translation
153
+ */
154
+ mediaSourceDurationTruncatingBuffered:
155
+ 'Setting `MediaSource.duration` below the highest presentation timestamp of any buffered coded frames is deprecated due to specification change. Support for implicit removal of truncated buffered media will be removed in the future. You should instead perform explicit `remove(newDuration, oldDuration)` on all `sourceBuffers`, where `newDuration < oldDuration`.',
156
+ /**
157
+ * @description TODO(crbug.com/1320347): Description needed for translation
158
+ */
159
+ noSysexWebMIDIWithoutPermission:
160
+ 'Web MIDI will ask a permission to use even if the sysex is not specified in the `MIDIOptions`.',
161
+ /**
162
+ * @description Warning displayed to developers when the Notification API is used from an insecure origin (one that isn't localhost or doesn't use HTTPS) to notify them that this use is no longer supported.
163
+ */
164
+ notificationInsecureOrigin:
165
+ 'The Notification API may no longer be used from insecure origins. You should consider switching your application to a secure origin, such as HTTPS. See https://goo.gle/chrome-insecure-origins for more details.',
166
+ /**
167
+ * @description Warning displayed to developers when permission to use notifications has been requested by a cross-origin iframe, to notify them that this use is no longer supported.
168
+ */
169
+ notificationPermissionRequestedIframe:
170
+ 'Permission for the Notification API may no longer be requested from a cross-origin iframe. You should consider requesting permission from a top-level frame or opening a new window instead.',
171
+ /**
172
+ * @description TODO(crbug.com/1318867): Description needed for translation
173
+ */
174
+ obsoleteWebRtcCipherSuite:
175
+ 'Your partner is negotiating an obsolete (D)TLS version. Please check with your partner to have this fixed.',
176
+ /**
177
+ * @description Warning displayed to developers when `window.openDatabase` is used in non-secure contexts to notify that the API is deprecated and will be removed.
178
+ */
179
+ openWebDatabaseInsecureContext:
180
+ 'WebSQL in non-secure contexts is deprecated and will be removed soon. Please use Web Storage or Indexed Database.',
181
+ /**
182
+ * @description Warning displayed to developers when persistent storage type is used to notify that storage type is deprecated.
183
+ */
184
+ persistentQuotaType:
185
+ '`StorageType.persistent` is deprecated. Please use standardized `navigator.storage` instead.',
186
+ /**
187
+ * @description This issue indicates that a `<source>` element with a `<picture>` parent was using an `src` attribute, which is not valid and is ignored by the browser. The `srcset` attribute should be used instead.
188
+ */
189
+ pictureSourceSrc:
190
+ '`<source src>` with a `<picture>` parent is invalid and therefore ignored. Please use `<source srcset>` instead.',
191
+ /**
192
+ * @description Warning displayed to developers when the vendor-prefixed method is used rather than the equivalent unprefixed method.
193
+ * Both placeholders are Web API functions (single words).
194
+ * @example {webkitCancelAnimationFrame} PH1
195
+ * @example {cancelAnimationFrame} PH2
196
+ */
197
+ vendorSpecificApi: '{PH1} is vendor-specific. Please use the standard {PH2} instead.',
198
+ /**
199
+ * @description Warning displayed to developers when `window.webkitStorageInfo` is used to notify that the API is deprecated.
200
+ */
201
+ prefixedStorageInfo:
202
+ '`window.webkitStorageInfo` is deprecated. Please use standardized `navigator.storage` instead.',
203
+ /**
204
+ * @description Standard message when one web API is deprecated in favor of another. Both
205
+ * placeholders are always web API functions.
206
+ * @example {HTMLVideoElement.webkitDisplayingFullscreen} PH1
207
+ * @example {Document.fullscreenElement} PH2
208
+ */
209
+ deprecatedWithReplacement: '{PH1} is deprecated. Please use {PH2} instead.',
210
+ /**
211
+ * @description TODO(crbug.com/1320357): Description needed for translation
212
+ */
213
+ requestedSubresourceWithEmbeddedCredentials:
214
+ 'Subresource requests whose URLs contain embedded credentials (e.g. `https://user:pass@host/`) are blocked.',
215
+ /**
216
+ * @description A deprecation warning shown in the DevTools Issues tab.
217
+ * It's shown when a video conferencing website attempts to use a
218
+ * non-standard crypto method when performing a handshake to set up a
219
+ * connection with another endpoint.
220
+ */
221
+ rtcConstraintEnableDtlsSrtpFalse:
222
+ 'The constraint `DtlsSrtpKeyAgreement` is removed. You have specified a `false` value for this constraint, which is interpreted as an attempt to use the removed `SDES key negotiation` method. This functionality is removed; use a service that supports `DTLS key negotiation` instead.',
223
+ /**
224
+ * @description A deprecation warning shown in the DevTools Issues tab.
225
+ * It's shown when a video conferencing website uses a non-standard
226
+ * API for controlling the crypto method used, but is not having an
227
+ * effect because the desired behavior is already enabled-by-default.
228
+ */
229
+ rtcConstraintEnableDtlsSrtpTrue:
230
+ 'The constraint `DtlsSrtpKeyAgreement` is removed. You have specified a `true` value for this constraint, which had no effect, but you can remove this constraint for tidiness.',
231
+ /**
232
+ * @description A deprecation warning shown in the DevTools Issues tab.
233
+ * The `Session Description Protocol`, or `SDP` for short, is a
234
+ * protocol used by video conferencing websites to establish the
235
+ * number of audio and/or video streams to send and/or receive. This
236
+ * warning is emitted when a web site attempts to use a deprecated
237
+ * version of the protocol, called `Plan B`, that is no longer
238
+ * supported. The spec compliant version of the protocol is called
239
+ * `Unified Plan`.
240
+ */
241
+ rtcPeerConnectionComplexPlanBSdpUsingDefaultSdpSemantics:
242
+ '`Complex Plan B SDP` detected. This dialect of the `Session Description Protocol` is no longer supported. Please use `Unified Plan SDP` instead.',
243
+ /**
244
+ * @description A deprecation warning shown in the DevTools Issues tab.
245
+ * The `Session Description Protocol`, or `SDP` for short, is a
246
+ * protocol used by video conferencing websites to establish the
247
+ * number of audio and/or video streams to send and/or receive. This
248
+ * warning is emitted when a web site attempts to use a deprecated
249
+ * version of the protocol, called `Plan B`, that is no longer
250
+ * supported. The spec compliant version of the protocol is called
251
+ * `Unified Plan`.
252
+ */
253
+ rtcPeerConnectionSdpSemanticsPlanB:
254
+ '`Plan B SDP semantics`, which is used when constructing an `RTCPeerConnection` with `{sdpSemantics:plan-b}`, is a legacy non-standard version of the `Session Description Protocol` that has been permanently deleted from the Web Platform. It is still available when building with `IS_FUCHSIA`, but we intend to delete it as soon as possible. Stop depending on it. See https://crbug.com/1302249 for status.',
255
+ /**
256
+ * @description A deprecation warning shown in the DevTools Issues tab.
257
+ * It's shown then a video conferencing website attempts to use the
258
+ * `RTCP MUX` policy.
259
+ */
260
+ rtcpMuxPolicyNegotiate: 'The `rtcpMuxPolicy` option is deprecated and will be removed.',
261
+ /**
262
+ * @description A deprecation warning shown in the DevTools Issues tab. The placeholder is always the noun
263
+ * "SharedArrayBuffer" which refers to a JavaScript construct.
264
+ */
265
+ sharedArrayBufferConstructedWithoutIsolation:
266
+ '`SharedArrayBuffer` will require cross-origin isolation. See https://developer.chrome.com/blog/enabling-shared-array-buffer/ for more details.',
267
+ /**
268
+ * @description A deprecation warning shown in the DevTools Issues tab.
269
+ * It's shown when the speech synthesis API is called before the page
270
+ * receives a user activation.
271
+ */
272
+ textToSpeech_DisallowedByAutoplay:
273
+ '`speechSynthesis.speak()` without user activation is deprecated and will be removed.',
274
+ /**
275
+ * @description A deprecation warning shown in the DevTools Issues tab. The placeholder is always the noun
276
+ * "SharedArrayBuffer" which refers to a JavaScript construct. "Extensions" refers to Chrome extensions. The warning is shown
277
+ * when Chrome Extensions attempt to use "SharedArrayBuffer"s under insecure circumstances.
278
+ */
279
+ v8SharedArrayBufferConstructedInExtensionWithoutIsolation:
280
+ 'Extensions should opt into cross-origin isolation to continue using `SharedArrayBuffer`. See https://developer.chrome.com/docs/extensions/mv3/cross-origin-isolation/.',
281
+ /**
282
+ * @description Warning displayed to developers that they are using
283
+ * `XMLHttpRequest` API in a way that they expect an unsupported character
284
+ * encoding `UTF-16` could be used in the server reply.
285
+ */
286
+ xhrJSONEncodingDetection: 'UTF-16 is not supported by response json in `XMLHttpRequest`',
287
+ /**
288
+ * @description Warning displayed to developers. It is shown when
289
+ * the `XMLHttpRequest` API is used in a way that it slows down the page load
290
+ * of the next page. The `main thread` refers to an operating systems thread
291
+ * used to run most of the processing of HTML documents, so please use a
292
+ * consistent wording.
293
+ */
294
+ xmlHttpRequestSynchronousInNonWorkerOutsideBeforeUnload:
295
+ 'Synchronous `XMLHttpRequest` on the main thread is deprecated because of its detrimental effects to the end user\u2019s experience. For more help, check https://xhr.spec.whatwg.org/.',
296
+ /**
297
+ * @description Warning displayed to developers that instead of using
298
+ * `supportsSession()`, which returns a promise that resolves if
299
+ * the XR session can be supported and rejects if not, they should
300
+ * use `isSessionSupported()` which will return a promise which
301
+ * resolves to a boolean indicating if the XR session can be
302
+ * supported or not, but may reject to throw an exception.
303
+ */
304
+ xrSupportsSession:
305
+ '`supportsSession()` is deprecated. Please use `isSessionSupported()` and check the resolved boolean value instead.',
306
+ };
307
+
308
+ const str_ = i18n.createMessageInstanceIdFn(__filename, UIStrings);
309
+
310
+ /**
311
+ * @param {LH.Crdp.Audits.DeprecationIssueDetails} issueDetails
312
+ */
313
+ function getDescription(issueDetails) {
314
+ let message;
315
+ let feature = 0;
316
+ let milestone = 0;
317
+ // Keep case statements alphabetized per DeprecationIssueType.
318
+ switch (issueDetails.type) {
319
+ case 'AuthorizationCoveredByWildcard':
320
+ message = str_(UIStrings.authorizationCoveredByWildcard);
321
+ milestone = 97;
322
+ break;
323
+ case 'CanRequestURLHTTPContainingNewline':
324
+ message = str_(UIStrings.canRequestURLHTTPContainingNewline);
325
+ feature = 5735596811091968;
326
+ break;
327
+ case 'ChromeLoadTimesConnectionInfo':
328
+ message = str_(UIStrings.chromeLoadTimesConnectionInfo);
329
+ feature = 5637885046816768;
330
+ break;
331
+ case 'ChromeLoadTimesFirstPaintAfterLoadTime':
332
+ message = str_(UIStrings.chromeLoadTimesFirstPaintAfterLoadTime);
333
+ feature = 5637885046816768;
334
+ break;
335
+ case 'ChromeLoadTimesWasAlternateProtocolAvailable':
336
+ message = str_(UIStrings.chromeLoadTimesWasAlternateProtocolAvailable);
337
+ feature = 5637885046816768;
338
+ break;
339
+ case 'CookieWithTruncatingChar':
340
+ message = str_(UIStrings.cookieWithTruncatingChar);
341
+ milestone = 103;
342
+ break;
343
+ case 'CrossOriginAccessBasedOnDocumentDomain':
344
+ message = str_(UIStrings.crossOriginAccessBasedOnDocumentDomain);
345
+ milestone = 109;
346
+ break;
347
+ case 'CrossOriginWindowAlert':
348
+ message = str_(UIStrings.crossOriginWindowApi, {PH1: 'window.alert'});
349
+ break;
350
+ case 'CrossOriginWindowConfirm':
351
+ message = str_(UIStrings.crossOriginWindowApi, {PH1: 'window.confirm'});
352
+ break;
353
+ case 'CSSSelectorInternalMediaControlsOverlayCastButton':
354
+ message = str_(UIStrings.cssSelectorInternalMediaControlsOverlayCastButton);
355
+ feature = 5714245488476160;
356
+ break;
357
+ case 'DeprecationExample':
358
+ message = str_(UIStrings.deprecationExample);
359
+ feature = 5684289032159232;
360
+ milestone = 100;
361
+ break;
362
+ case 'DocumentDomainSettingWithoutOriginAgentClusterHeader':
363
+ message = str_(UIStrings.documentDomainSettingWithoutOriginAgentClusterHeader);
364
+ milestone = 109;
365
+ break;
366
+ case 'EventPath':
367
+ message = str_(UIStrings.eventPath);
368
+ feature = 5726124632965120;
369
+ milestone = 109;
370
+ break;
371
+ case 'ExpectCTHeader':
372
+ message = str_(UIStrings.expectCTHeader);
373
+ feature = 6244547273687040;
374
+ milestone = 107;
375
+ break;
376
+ case 'GeolocationInsecureOrigin':
377
+ message = str_(UIStrings.geolocationInsecureOrigin);
378
+ break;
379
+ case 'GeolocationInsecureOriginDeprecatedNotRemoved':
380
+ message = str_(UIStrings.geolocationInsecureOriginDeprecatedNotRemoved);
381
+ break;
382
+ case 'GetUserMediaInsecureOrigin':
383
+ message = str_(UIStrings.getUserMediaInsecureOrigin);
384
+ break;
385
+ case 'HostCandidateAttributeGetter':
386
+ message = str_(UIStrings.hostCandidateAttributeGetter);
387
+ break;
388
+ case 'IdentityInCanMakePaymentEvent':
389
+ message = str_(UIStrings.identityInCanMakePaymentEvent);
390
+ feature = 5190978431352832;
391
+ break;
392
+ case 'InsecurePrivateNetworkSubresourceRequest':
393
+ message = str_(UIStrings.insecurePrivateNetworkSubresourceRequest);
394
+ feature = 5436853517811712;
395
+ milestone = 92;
396
+ break;
397
+ case 'LegacyConstraintGoogIPv6':
398
+ message = str_(UIStrings.legacyConstraintGoogIPv6);
399
+ milestone = 103;
400
+ break;
401
+ case 'LocalCSSFileExtensionRejected':
402
+ message = str_(UIStrings.localCSSFileExtensionRejected);
403
+ milestone = 64;
404
+ break;
405
+ case 'MediaSourceAbortRemove':
406
+ message = str_(UIStrings.mediaSourceAbortRemove);
407
+ feature = 6107495151960064;
408
+ break;
409
+ case 'MediaSourceDurationTruncatingBuffered':
410
+ message = str_(UIStrings.mediaSourceDurationTruncatingBuffered);
411
+ feature = 6107495151960064;
412
+ break;
413
+ case 'NavigateEventRestoreScroll':
414
+ message = str_(
415
+ UIStrings.deprecatedWithReplacement, {PH1: 'navigateEvent.restoreScroll()', PH2: 'navigateEvent.scroll()'});
416
+ break;
417
+ case 'NavigateEventTransitionWhile':
418
+ message = str_(
419
+ UIStrings.deprecatedWithReplacement,
420
+ {PH1: 'navigateEvent.transitionWhile()', PH2: 'navigateEvent.intercept()'});
421
+ break;
422
+ case 'NoSysexWebMIDIWithoutPermission':
423
+ message = str_(UIStrings.noSysexWebMIDIWithoutPermission);
424
+ feature = 5138066234671104;
425
+ milestone = 82;
426
+ break;
427
+ case 'NotificationInsecureOrigin':
428
+ message = str_(UIStrings.notificationInsecureOrigin);
429
+ break;
430
+ case 'NotificationPermissionRequestedIframe':
431
+ message = str_(UIStrings.notificationPermissionRequestedIframe);
432
+ feature = 6451284559265792;
433
+ break;
434
+ case 'ObsoleteWebRtcCipherSuite':
435
+ message = str_(UIStrings.obsoleteWebRtcCipherSuite);
436
+ milestone = 81;
437
+ break;
438
+ case 'OpenWebDatabaseInsecureContext':
439
+ message = str_(UIStrings.openWebDatabaseInsecureContext);
440
+ feature = 5175124599767040;
441
+ milestone = 105;
442
+ break;
443
+ case 'PersistentQuotaType':
444
+ message = str_(UIStrings.persistentQuotaType);
445
+ feature = 5176235376246784;
446
+ milestone = 106;
447
+ break;
448
+ case 'PictureSourceSrc':
449
+ message = str_(UIStrings.pictureSourceSrc);
450
+ break;
451
+ case 'PrefixedCancelAnimationFrame':
452
+ message = str_(
453
+ UIStrings.vendorSpecificApi, {PH1: 'webkitCancelAnimationFrame', PH2: 'cancelAnimationFrame'});
454
+ break;
455
+ case 'PrefixedRequestAnimationFrame':
456
+ message = str_(
457
+ UIStrings.vendorSpecificApi, {PH1: 'webkitRequestAnimationFrame', PH2: 'requestAnimationFrame'});
458
+ break;
459
+ case 'PrefixedStorageInfo':
460
+ message = str_(UIStrings.prefixedStorageInfo);
461
+ break;
462
+ case 'PrefixedVideoDisplayingFullscreen':
463
+ message = str_(
464
+ UIStrings.deprecatedWithReplacement,
465
+ {PH1: 'HTMLVideoElement.webkitDisplayingFullscreen', PH2: 'Document.fullscreenElement'});
466
+ break;
467
+ case 'PrefixedVideoEnterFullScreen':
468
+ message = str_(
469
+ UIStrings.deprecatedWithReplacement,
470
+ {PH1: 'HTMLVideoElement.webkitEnterFullScreen()', PH2: 'Element.requestFullscreen()'});
471
+ break;
472
+ case 'PrefixedVideoEnterFullscreen':
473
+ message = str_(
474
+ UIStrings.deprecatedWithReplacement,
475
+ {PH1: 'HTMLVideoElement.webkitEnterFullscreen()', PH2: 'Element.requestFullscreen()'});
476
+ break;
477
+ case 'PrefixedVideoExitFullScreen':
478
+ message = str_(
479
+ UIStrings.deprecatedWithReplacement,
480
+ {PH1: 'HTMLVideoElement.webkitExitFullScreen()', PH2: 'Document.exitFullscreen()'});
481
+ break;
482
+ case 'PrefixedVideoExitFullscreen':
483
+ message = str_(
484
+ UIStrings.deprecatedWithReplacement,
485
+ {PH1: 'HTMLVideoElement.webkitExitFullscreen()', PH2: 'Document.exitFullscreen()'});
486
+ break;
487
+ case 'PrefixedVideoSupportsFullscreen':
488
+ message = str_(
489
+ UIStrings.deprecatedWithReplacement,
490
+ {PH1: 'HTMLVideoElement.webkitSupportsFullscreen', PH2: 'Document.fullscreenEnabled'});
491
+ break;
492
+ case 'RangeExpand':
493
+ message =
494
+ str_(UIStrings.deprecatedWithReplacement, {PH1: 'Range.expand()', PH2: 'Selection.modify()'});
495
+ break;
496
+ case 'RequestedSubresourceWithEmbeddedCredentials':
497
+ message = str_(UIStrings.requestedSubresourceWithEmbeddedCredentials);
498
+ feature = 5669008342777856;
499
+ break;
500
+ case 'RTCConstraintEnableDtlsSrtpFalse':
501
+ message = str_(UIStrings.rtcConstraintEnableDtlsSrtpFalse);
502
+ milestone = 97;
503
+ break;
504
+ case 'RTCConstraintEnableDtlsSrtpTrue':
505
+ message = str_(UIStrings.rtcConstraintEnableDtlsSrtpTrue);
506
+ milestone = 97;
507
+ break;
508
+ case 'RTCPeerConnectionComplexPlanBSdpUsingDefaultSdpSemantics':
509
+ message = str_(UIStrings.rtcPeerConnectionComplexPlanBSdpUsingDefaultSdpSemantics);
510
+ milestone = 72;
511
+ break;
512
+ case 'RTCPeerConnectionSdpSemanticsPlanB':
513
+ message = str_(UIStrings.rtcPeerConnectionSdpSemanticsPlanB);
514
+ feature = 5823036655665152;
515
+ milestone = 93;
516
+ break;
517
+ case 'RtcpMuxPolicyNegotiate':
518
+ message = str_(UIStrings.rtcpMuxPolicyNegotiate);
519
+ feature = 5654810086866944;
520
+ milestone = 62;
521
+ break;
522
+ case 'SharedArrayBufferConstructedWithoutIsolation':
523
+ message = str_(UIStrings.sharedArrayBufferConstructedWithoutIsolation);
524
+ milestone = 106;
525
+ break;
526
+ case 'TextToSpeech_DisallowedByAutoplay':
527
+ message = str_(UIStrings.textToSpeech_DisallowedByAutoplay);
528
+ feature = 5687444770914304;
529
+ milestone = 71;
530
+ break;
531
+ case 'V8SharedArrayBufferConstructedInExtensionWithoutIsolation':
532
+ message = str_(UIStrings.v8SharedArrayBufferConstructedInExtensionWithoutIsolation);
533
+ milestone = 96;
534
+ break;
535
+ case 'XHRJSONEncodingDetection':
536
+ message = str_(UIStrings.xhrJSONEncodingDetection);
537
+ milestone = 93;
538
+ break;
539
+ case 'XMLHttpRequestSynchronousInNonWorkerOutsideBeforeUnload':
540
+ message = str_(UIStrings.xmlHttpRequestSynchronousInNonWorkerOutsideBeforeUnload);
541
+ break;
542
+ case 'XRSupportsSession':
543
+ message = str_(UIStrings.xrSupportsSession);
544
+ milestone = 80;
545
+ break;
546
+ }
547
+ const links = [];
548
+ if (feature !== 0) {
549
+ links.push({
550
+ link: `https://chromestatus.com/feature/${feature}`,
551
+ linkTitle: str_(UIStrings.feature),
552
+ });
553
+ }
554
+ if (milestone !== 0) {
555
+ links.push({
556
+ link: 'https://chromiumdash.appspot.com/schedule',
557
+ linkTitle: str_(UIStrings.milestone, {milestone}),
558
+ });
559
+ }
560
+ return ({
561
+ file: 'deprecation.md',
562
+ substitutions: new Map([
563
+ ['PLACEHOLDER_title', str_(UIStrings.title)],
564
+ ['PLACEHOLDER_message', message],
565
+ ]),
566
+ links, message,
567
+ });
568
+ }
569
+
570
+ module.exports = {
571
+ getIssueDetailDescription: getDescription,
572
+ UIStrings,
573
+ };
@@ -68,6 +68,7 @@ const RESOURCE_TYPES = {
68
68
  Ping: 'Ping',
69
69
  Preflight: 'Preflight',
70
70
  CSPViolationReport: 'CSPViolationReport',
71
+ Prefetch: 'Prefetch',
71
72
  };
72
73
 
73
74
  class NetworkRequest {
@@ -83,6 +84,9 @@ class NetworkRequest {
83
84
  this.parsedURL = /** @type {ParsedURL} */ ({scheme: ''});
84
85
  this.documentURL = '';
85
86
 
87
+ /** When the renderer process initially discovers a network request. */
88
+ this.rendererStartTime = -1;
89
+
86
90
  this.startTime = -1;
87
91
  /** @type {number} */
88
92
  this.endTime = -1;
@@ -176,6 +180,7 @@ class NetworkRequest {
176
180
  };
177
181
  this.isSecure = URL.isSecureScheme(this.parsedURL.scheme);
178
182
 
183
+ this.rendererStartTime = data.timestamp;
179
184
  this.startTime = data.timestamp;
180
185
 
181
186
  this.requestMethod = data.request.method;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lighthouse",
3
- "version": "9.6.6",
3
+ "version": "9.6.8",
4
4
  "description": "Automated auditing, performance metrics, and best practices for the web.",
5
5
  "main": "./lighthouse-core/index.js",
6
6
  "bin": {
@@ -138,7 +138,7 @@
138
138
  "cpy": "^8.1.2",
139
139
  "cross-env": "^7.0.2",
140
140
  "csv-validator": "^0.0.3",
141
- "devtools-protocol": "0.0.999451",
141
+ "devtools-protocol": "0.0.1034970",
142
142
  "es-main": "^1.0.2",
143
143
  "eslint": "^8.4.1",
144
144
  "eslint-config-google": "^0.14.0",
@@ -209,8 +209,8 @@
209
209
  "yargs-parser": "^21.0.0"
210
210
  },
211
211
  "resolutions": {
212
- "puppeteer/**/devtools-protocol": "0.0.999451",
213
- "puppeteer-core/**/devtools-protocol": "0.0.999451"
212
+ "puppeteer/**/devtools-protocol": "0.0.1034970",
213
+ "puppeteer-core/**/devtools-protocol": "0.0.1034970"
214
214
  },
215
215
  "repository": "GoogleChrome/lighthouse",
216
216
  "keywords": [