lighthouse 10.2.0 → 10.3.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 (132) hide show
  1. package/cli/test/smokehouse/__snapshots__/report-assert-test.js.snap +4 -6
  2. package/core/audits/accessibility/html-xml-lang-mismatch.d.ts +10 -0
  3. package/core/audits/accessibility/html-xml-lang-mismatch.js +47 -0
  4. package/core/audits/accessibility/input-button-name.d.ts +10 -0
  5. package/core/audits/accessibility/input-button-name.js +44 -0
  6. package/core/audits/accessibility/table-fake-caption.d.ts +10 -0
  7. package/core/audits/accessibility/table-fake-caption.js +47 -0
  8. package/core/audits/accessibility/td-has-header.d.ts +10 -0
  9. package/core/audits/accessibility/td-has-header.js +45 -0
  10. package/core/audits/audit.d.ts +2 -1
  11. package/core/audits/audit.js +5 -2
  12. package/core/audits/byte-efficiency/byte-efficiency-audit.d.ts +3 -3
  13. package/core/audits/byte-efficiency/byte-efficiency-audit.js +14 -19
  14. package/core/audits/deprecations.js +1 -1
  15. package/core/audits/largest-contentful-paint-element.d.ts +14 -2
  16. package/core/audits/largest-contentful-paint-element.js +49 -31
  17. package/core/audits/layout-shift-elements.d.ts +3 -2
  18. package/core/audits/layout-shift-elements.js +10 -2
  19. package/core/audits/metrics.js +0 -2
  20. package/core/audits/network-requests.js +6 -0
  21. package/core/audits/seo/crawlable-anchors.js +4 -0
  22. package/core/audits/server-response-time.d.ts +2 -1
  23. package/core/audits/server-response-time.js +17 -3
  24. package/core/audits/uses-rel-preconnect.js +20 -4
  25. package/core/computed/entity-classification.d.ts +14 -1
  26. package/core/computed/entity-classification.js +61 -6
  27. package/core/computed/metrics/cumulative-layout-shift.d.ts +2 -9
  28. package/core/computed/metrics/cumulative-layout-shift.js +3 -16
  29. package/core/computed/metrics/time-to-first-byte.js +10 -7
  30. package/core/computed/metrics/timing-summary.js +0 -3
  31. package/core/config/default-config.js +8 -0
  32. package/core/gather/driver/execution-context.js +13 -5
  33. package/core/gather/driver/target-manager.d.ts +13 -0
  34. package/core/gather/driver/target-manager.js +49 -0
  35. package/core/gather/gatherers/accessibility.js +19 -20
  36. package/core/gather/gatherers/anchor-elements.js +2 -0
  37. package/core/gather/gatherers/global-listeners.js +38 -21
  38. package/core/gather/gatherers/inspector-issues.js +2 -1
  39. package/core/gather/gatherers/trace-elements.d.ts +3 -2
  40. package/core/gather/gatherers/trace-elements.js +10 -19
  41. package/core/legacy/config/config.d.ts +1 -1
  42. package/core/legacy/config/config.js +1 -1
  43. package/core/legacy/gather/driver.d.ts +1 -0
  44. package/core/legacy/gather/driver.js +11 -0
  45. package/core/lib/asset-saver.d.ts +4 -0
  46. package/core/lib/asset-saver.js +19 -0
  47. package/core/lib/bf-cache-strings.d.ts +3 -0
  48. package/core/lib/bf-cache-strings.js +248 -232
  49. package/core/lib/cdt/generated/SourceMap.d.ts +18 -31
  50. package/core/lib/cdt/generated/SourceMap.js +51 -101
  51. package/core/lib/dependency-graph/simulator/network-analyzer.d.ts +6 -2
  52. package/core/lib/dependency-graph/simulator/network-analyzer.js +45 -13
  53. package/core/lib/deprecation-description.d.ts +17 -0
  54. package/core/lib/deprecation-description.js +71 -0
  55. package/core/lib/deprecations-strings.d.ts +282 -63
  56. package/core/lib/deprecations-strings.js +282 -551
  57. package/core/lib/lh-error.d.ts +9 -4
  58. package/core/lib/lh-error.js +15 -11
  59. package/core/lib/network-request.d.ts +13 -6
  60. package/core/lib/network-request.js +39 -14
  61. package/core/lib/tracehouse/trace-processor.js +1 -1
  62. package/core/lib/url-utils.js +4 -0
  63. package/core/runner.js +4 -2
  64. package/dist/report/bundle.esm.js +24 -7
  65. package/dist/report/flow.js +3 -3
  66. package/dist/report/standalone.js +8 -8
  67. package/package.json +12 -12
  68. package/readme.md +7 -0
  69. package/report/assets/styles.css +18 -2
  70. package/report/assets/templates.html +4 -0
  71. package/report/renderer/category-renderer.js +5 -2
  72. package/report/renderer/components.js +2 -2
  73. package/report/renderer/dom.d.ts +4 -1
  74. package/report/renderer/dom.js +3 -2
  75. package/shared/localization/locales/ar-XB.json +20 -170
  76. package/shared/localization/locales/ar.json +20 -170
  77. package/shared/localization/locales/bg.json +19 -169
  78. package/shared/localization/locales/ca.json +19 -169
  79. package/shared/localization/locales/cs.json +19 -169
  80. package/shared/localization/locales/da.json +19 -169
  81. package/shared/localization/locales/de.json +19 -169
  82. package/shared/localization/locales/el.json +19 -169
  83. package/shared/localization/locales/en-GB.json +9 -159
  84. package/shared/localization/locales/en-US.json +151 -70
  85. package/shared/localization/locales/en-XA.json +20 -170
  86. package/shared/localization/locales/en-XL.json +151 -70
  87. package/shared/localization/locales/es-419.json +19 -169
  88. package/shared/localization/locales/es.json +19 -169
  89. package/shared/localization/locales/fi.json +19 -169
  90. package/shared/localization/locales/fil.json +17 -167
  91. package/shared/localization/locales/fr.json +18 -168
  92. package/shared/localization/locales/he.json +19 -169
  93. package/shared/localization/locales/hi.json +20 -170
  94. package/shared/localization/locales/hr.json +19 -169
  95. package/shared/localization/locales/hu.json +19 -169
  96. package/shared/localization/locales/id.json +19 -169
  97. package/shared/localization/locales/it.json +19 -169
  98. package/shared/localization/locales/ja.json +19 -169
  99. package/shared/localization/locales/ko.json +19 -169
  100. package/shared/localization/locales/lt.json +20 -170
  101. package/shared/localization/locales/lv.json +20 -170
  102. package/shared/localization/locales/nl.json +18 -168
  103. package/shared/localization/locales/no.json +19 -169
  104. package/shared/localization/locales/pl.json +19 -169
  105. package/shared/localization/locales/pt-PT.json +19 -169
  106. package/shared/localization/locales/pt.json +19 -169
  107. package/shared/localization/locales/ro.json +19 -169
  108. package/shared/localization/locales/ru.json +19 -169
  109. package/shared/localization/locales/sk.json +20 -170
  110. package/shared/localization/locales/sl.json +19 -169
  111. package/shared/localization/locales/sr-Latn.json +19 -169
  112. package/shared/localization/locales/sr.json +19 -169
  113. package/shared/localization/locales/sv.json +19 -169
  114. package/shared/localization/locales/ta.json +19 -169
  115. package/shared/localization/locales/te.json +19 -169
  116. package/shared/localization/locales/th.json +19 -169
  117. package/shared/localization/locales/tr.json +19 -169
  118. package/shared/localization/locales/uk.json +19 -169
  119. package/shared/localization/locales/vi.json +20 -170
  120. package/shared/localization/locales/zh-HK.json +19 -169
  121. package/shared/localization/locales/zh-TW.json +19 -169
  122. package/shared/localization/locales/zh.json +19 -169
  123. package/shared/util.d.ts +6 -0
  124. package/shared/util.js +14 -1
  125. package/third-party/chromium-synchronization/inspector-issueAdded-types-test.js +2 -1
  126. package/tsconfig-base.json +1 -1
  127. package/types/artifacts.d.ts +10 -8
  128. package/types/audit.d.ts +5 -0
  129. package/types/gatherer.d.ts +1 -0
  130. package/types/lhr/audit-details.d.ts +1 -0
  131. package/types/lhr/audit-result.d.ts +10 -0
  132. package/types/internal/es-main.d.ts +0 -18
@@ -1,654 +1,385 @@
1
1
  // auto-generated by build/build-cdt-strings.js
2
2
  /* eslint-disable */
3
+ // Copyright 2023 The Chromium Authors. All rights reserved.
4
+ // Use of this source code is governed by a BSD-style license that can be
5
+ // found in the LICENSE file.
3
6
 
4
- import * as i18n from '../lib/i18n/i18n.js';
7
+ // This file is auto-generated, do not edit manually.
8
+ // Re-generate with: npm run generate-protocol-resources
5
9
 
6
- const UIStrings = {
7
- // Store strings used across messages in this block.
10
+ export const UIStrings = {
8
11
  /**
9
- * @description This links to the chrome feature status page when one exists.
12
+ * @description We show this warning when 1) an 'authorization' header is attached to the request by scripts, 2) there is no 'authorization' in the 'access-control-allow-headers' header in the response, and 3) there is a wildcard symbol ('*') in the 'access-control-allow-header' header in the response. This is allowed now, but we're planning to reject such responses and require responses to have an 'access-control-allow-headers' containing 'authorization'.
10
13
  */
11
- feature: 'Check the feature status page for more details.',
14
+ AuthorizationCoveredByWildcard: "Authorization will not be covered by the wildcard symbol (*) in CORS `Access-Control-Allow-Headers` handling.",
12
15
  /**
13
- * @description This links to the chromium dash schedule when a milestone is set.
14
- * @example {100} milestone
16
+ * @description This warning occurs when a page attempts to request a resource whose URL contained both a newline character (`\n` or `\r`), and a less-than character (`<`). These resources are blocked.
15
17
  */
16
- milestone: 'This change will go into effect with milestone {milestone}.',
18
+ CanRequestURLHTTPContainingNewline: "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.",
17
19
  /**
18
- * @description Title of issue raised when a deprecated feature is used
20
+ * @description This warning occurs when the website attempts to invoke the deprecated `chrome.loadTimes().connectionInfo` API.
19
21
  */
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.',
22
+ ChromeLoadTimesConnectionInfo: "`chrome.loadTimes()` is deprecated, instead use standardized API: Navigation Timing 2.",
33
23
  /**
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.
24
+ * @description This warning occurs when the website attempts to invoke the deprecated `chrome.loadTimes().firstPaintAfterLoadTime` API.
37
25
  */
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.',
26
+ ChromeLoadTimesFirstPaintAfterLoadTime: "`chrome.loadTimes()` is deprecated, instead use standardized API: Paint Timing.",
40
27
  /**
41
- * @description This warning occurs when the website attempts to invoke the
42
- * deprecated `chrome.loadTimes().connectionInfo` API.
28
+ * @description This warning occurs when the website attempts to invoke the deprecated `chrome.loadTimes().wasAlternateProtocolAvailable` API.
43
29
  */
44
- chromeLoadTimesConnectionInfo:
45
- '`chrome.loadTimes()` is deprecated, instead use standardized API: Navigation Timing 2.',
30
+ ChromeLoadTimesWasAlternateProtocolAvailable: "`chrome.loadTimes()` is deprecated, instead use standardized API: `nextHopProtocol` in Navigation Timing 2.",
46
31
  /**
47
- * @description This warning occurs when the website attempts to invoke the
48
- * deprecated `chrome.loadTimes().firstPaintAfterLoadTime` API.
32
+ * @description This warning occurs when the browser attempts to store a cookie containing a banned character. Rather than the cookie string being truncated at the banned character, the entire cookie will be rejected now.
49
33
  */
50
- chromeLoadTimesFirstPaintAfterLoadTime:
51
- '`chrome.loadTimes()` is deprecated, instead use standardized API: Paint Timing.',
34
+ CookieWithTruncatingChar: "Cookies containing a `(0|r|n)` character will be rejected instead of truncated.",
52
35
  /**
53
- * @description This warning occurs when the website attempts to invoke the
54
- * deprecated `chrome.loadTimes().wasAlternateProtocolAvailable` API.
36
+ * @description This warning occurs when a frame accesses another frame's data after having set `document.domain` without having set the `Origin-Agent-Cluster` http header. This is a companion warning to `documentDomainSettingWithoutOriginAgentClusterHeader`, where that warning occurs when `document.domain` is set, and this warning occurs when an access has been made, based on that previous `document.domain` setting.
55
37
  */
56
- chromeLoadTimesWasAlternateProtocolAvailable:
57
- '`chrome.loadTimes()` is deprecated, instead use standardized API: `nextHopProtocol` in Navigation Timing 2.',
38
+ CrossOriginAccessBasedOnDocumentDomain: "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`.",
58
39
  /**
59
- * @description This warning occurs when the browser attempts to store a
60
- * cookie containing a banned character. Rather than the cookie string
61
- * being truncated at the banned character, the entire cookie will be
62
- * rejected now.
40
+ * @description Issue text shown when the web page uses a deprecated web API. The window.alert is the deprecated web API function.
63
41
  */
64
- cookieWithTruncatingChar: 'Cookies containing a `(0|r|n)` character will be rejected instead of truncated.',
42
+ CrossOriginWindowAlert: "Triggering window.alert from cross origin iframes has been deprecated and will be removed in the future.",
65
43
  /**
66
- * @description This warning occurs when a frame accesses another frame's
67
- * data after having set `document.domain` without having set the
68
- * `Origin-Agent-Cluster` http header. This is a companion warning to
69
- * `documentDomainSettingWithoutOriginAgentClusterHeader`, where that
70
- * warning occurs when `document.domain` is set, and this warning
71
- * occurs when an access has been made, based on that previous
72
- * `document.domain` setting.
44
+ * @description Issue text shown when the web page uses a deprecated web API. The window.confirm is the deprecated web API function.
73
45
  */
74
- crossOriginAccessBasedOnDocumentDomain:
75
- '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`.',
46
+ CrossOriginWindowConfirm: "Triggering window.confirm from cross origin iframes has been deprecated and will be removed in the future.",
76
47
  /**
77
- * @description Issue text shown when the web page uses a deprecated web API. The placeholder is
78
- * the deprecated web API function.
79
- * @example {window.alert} PH1
48
+ * @description Warning displayed to developers when they hide the Cast button on a video element using the deprecated CSS selector instead of using the disableRemotePlayback attribute on the element.
80
49
  */
81
- crossOriginWindowApi: 'Triggering {PH1} from cross origin iframes has been deprecated and will be removed in the future.',
50
+ CSSSelectorInternalMediaControlsOverlayCastButton: "The `disableRemotePlayback` attribute should be used in order to disable the default Cast integration instead of using `-internal-media-controls-overlay-cast-button` selector.",
82
51
  /**
83
- * @description Warning displayed to developers when they hide the Cast button
84
- * on a video element using the deprecated CSS selector instead of using the
85
- * disableRemotePlayback attribute on the element.
52
+ * @description Warning displayed to developers when a data: URL is assigned to SVG <use> to let them know that the support is deprecated.
86
53
  */
87
- cssSelectorInternalMediaControlsOverlayCastButton:
88
- 'The `disableRemotePlayback` attribute should be used in order to disable the default Cast integration instead of using `-internal-media-controls-overlay-cast-button` selector.',
54
+ DataUrlInSvgUse: "Support for data: URLs in SVG <use> element is deprecated and it will be removed in the future.",
89
55
  /**
90
- * @description This message is shown when the example deprecated feature is used
56
+ * @description This warning occurs when a script modifies `document.domain` without having set on `Origin-Agent-Cluster` http header. In other words, when a script relies on the default behaviour of `Origin-Agent-Cluster` when setting document.domain.
91
57
  */
92
- deprecationExample: 'This is an example of a translated deprecation issue message.',
58
+ DocumentDomainSettingWithoutOriginAgentClusterHeader: "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.",
93
59
  /**
94
- * @description This warning occurs when a script modifies `document.domain`
95
- * without having set on `Origin-Agent-Cluster` http header. In other
96
- * words, when a script relies on the default behaviour of
97
- * `Origin-Agent-Cluster` when setting document.domain.
60
+ * @description Warning displayed to developers when non-standard Mutation Events are used. These are deprecated and will be removed.
98
61
  */
99
- documentDomainSettingWithoutOriginAgentClusterHeader:
100
- '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.',
101
- /**
102
- * @description Warning displayed to developers when the non-standard `Event.path` API is used to notify them that this API is deprecated.
103
- */
104
- eventPath: '`Event.path` is deprecated and will be removed. Please use `Event.composedPath()` instead.',
62
+ DOMMutationEvents: "DOM Mutation Events, including `DOMSubtreeModified`, `DOMNodeInserted`, `DOMNodeRemoved`, `DOMNodeRemovedFromDocument`, `DOMNodeInsertedIntoDocument`, and `DOMCharacterDataModified` are deprecated (https://w3c.github.io/uievents/#legacy-event-types) and will be removed. Please use `MutationObserver` instead.",
105
63
  /**
106
64
  * @description This message is shown when the deprecated Expect-CT header is present.
107
65
  */
108
- 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.',
66
+ 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.",
109
67
  /**
110
68
  * @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.
111
69
  */
112
- geolocationInsecureOrigin:
113
- '`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.',
70
+ GeolocationInsecureOrigin: "`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.",
114
71
  /**
115
72
  * @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.
116
73
  */
117
- geolocationInsecureOriginDeprecatedNotRemoved:
118
- '`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.',
74
+ GeolocationInsecureOriginDeprecatedNotRemoved: "`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.",
119
75
  /**
120
- * @description This warning occurs when the `getUserMedia()` API is invoked
121
- * on an insecure (e.g., HTTP) site. This is only permitted on secure sites
122
- * (e.g., HTTPS).
76
+ * @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).
123
77
  */
124
- getUserMediaInsecureOrigin:
125
- '`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.',
78
+ 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.",
126
79
  /**
127
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 the equivalent information in the .address and .port fields instead.
128
81
  */
129
- hostCandidateAttributeGetter:
130
- '`RTCPeerConnectionIceErrorEvent.hostCandidate` is deprecated. Please use `RTCPeerConnectionIceErrorEvent.address` or `RTCPeerConnectionIceErrorEvent.port` instead.',
131
- /**
132
- * @description A deprecation warning shown in the DevTools Issues tab,
133
- * when a service worker reads one of the fields from an event named
134
- * "canmakepayment".
135
- */
136
- identityInCanMakePaymentEvent: 'The merchant origin and arbitrary data from the `canmakepayment` service worker event are deprecated and will be removed: `topOrigin`, `paymentRequestOrigin`, `methodData`, `modifiers`.',
137
- /**
138
- * @description This warning occurs when an insecure context (e.g., HTTP)
139
- * requests a private resource (not on open internet). This is done to
140
- * mitigate the potential for CSRF and other attacks.
141
- */
142
- insecurePrivateNetworkSubresourceRequest:
143
- '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.',
144
- /**
145
- * @description This warning occurs when a stylesheet loaded from a local
146
- * file directive does not end in the file type `.css`.
147
- */
148
- localCSSFileExtensionRejected:
149
- 'CSS cannot be loaded from `file:` URLs unless they end in a `.css` file extension.',
150
- /**
151
- * @description This is a deprecation warning to developers that occurs when
152
- * the script attempts to use the Media Source Extensions API in a way that
153
- * is no longer supported by the specification for the API. The usage
154
- * that is problematic is when the script calls the `SourceBuffer.abort()`
155
- * method at a time when there is still processing happening in response to a
156
- * previous `SourceBuffer.remove()` call for the same SourceBuffer object.
157
- * More precisely, we show this warning to developers when script calls the
158
- * SourceBuffer abort() method while the asynchronous processing of a remove()
159
- * call on that SourceBuffer is not yet complete. Early versions of the Media
160
- * Source Extensions specification allowed such aborts, but standardization of
161
- * the specification resulted in disallowing the aborts. The script should
162
- * instead wait for the asynchronous remove() operation to complete, which is
163
- * observable by listening for the associated 'updateend' event from the
164
- * SourceBuffer. A note is also included in the warning, describing when
165
- * abort() is meaningful and allowed by the specification for purposes other
166
- * than interrupting a remove() operation's asynchronous steps. Those
167
- * supported purposes include using abort() to interrupt processing that may
168
- * still be happening in response to a previous appendBuffer() call on that
169
- * SourceBuffer, or using abort() to clear the internal of any unprocessed
170
- * data remaining from previous appendBuffer() calls.
171
- * See https://www.w3.org/TR/media-source-2/#dom-sourcebuffer-abort for the
172
- * currently specified behavior, which would throw an exception once the
173
- * deprecated removal abort is no longer supported.
174
- * See https://github.com/w3c/media-source/issues/19 for the discussion that
175
- * led to the specification change.
176
- */
177
- mediaSourceAbortRemove:
178
- '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.',
179
- /**
180
- * @description This is a deprecation warning to developers that occurs when
181
- * the script attempts to use the Media Source Extensions API in a way that is
182
- * no longer supported by the specification for the API. The usage that is
183
- * problematic is when the script sets the duration attribute of a MediaSource
184
- * object too low. The duration attribute of a MediaSource must be longer than
185
- * the actual duration of any media (audio or video) already in the
186
- * MediaSource. When set too low, the MediaSource must remove audio and video
187
- * content that is beyond the time indicated by the new duration. Content
188
- * removal that is caused by setting the duration attribute too low is no
189
- * longer allowed by the specification. The message describes the minimum
190
- * allowable duration value as the "highest presentation timestamp of any
191
- * buffered coded frames" as a more precise way of describing the duration of
192
- * content already in the MediaSource: "coded frames" are the specification's
193
- * way of describing compressed audio frames or compressed video frames, and
194
- * they each have a "presentation timestamp" that describes precisely when
195
- * that frame's playback occurs in the overall media presentation. Early
196
- * versions of the Media Source Extensions specification allowed this to
197
- * happen, but standardization of the specification resulted in disallowing
198
- * this behavior. The underlying issue leading to this specification change
199
- * was that setting the duration attribute should be synchronous, but setting
200
- * it lower than the timestamp of something currently buffered would cause
201
- * confusing removal of media between that new duration and the previous,
202
- * larger, duration. The script should instead explicitly remove that range of
203
- * media first, before lowering the duration.
204
- * See https://www.w3.org/TR/media-source-2/#dom-mediasource-duration and
205
- * https://www.w3.org/TR/media-source-2/#dom-mediasource-duration for the
206
- * currently specified behavior, which would throw an exception once support
207
- * is removed for deprecated implicit asynchronous range removal when duration
208
- * is truncated.
209
- * See both https://github.com/w3c/media-source/issues/20 and
210
- * https://github.com/w3c/media-source/issues/26 for the discussion that led
211
- * to the specification change.
212
- */
213
- mediaSourceDurationTruncatingBuffered:
214
- '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`.',
215
- /**
216
- * @description This warning occurs when the browser requests Web MIDI access
217
- * as sysex (system exclusive messages) can be allowed via prompt even if
218
- * the browser did not specifically request it.
219
- */
220
- noSysexWebMIDIWithoutPermission:
221
- 'Web MIDI will ask a permission to use even if the sysex is not specified in the `MIDIOptions`.',
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 service worker reads one of the fields from an event named 'canmakepayment'.
85
+ */
86
+ IdentityInCanMakePaymentEvent: "The merchant origin and arbitrary data from the `canmakepayment` service worker event are deprecated and will be removed: `topOrigin`, `paymentRequestOrigin`, `methodData`, `modifiers`.",
87
+ /**
88
+ * @description This warning occurs when an insecure context (e.g., HTTP) requests a private resource (not on open internet). This is done to mitigate the potential for CSRF and other attacks.
89
+ */
90
+ InsecurePrivateNetworkSubresourceRequest: "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.",
91
+ /**
92
+ * @description This is a deprecated warning to developers that a field in a structure has been renamed.
93
+ */
94
+ InterestGroupDailyUpdateUrl: "The `dailyUpdateUrl` field of `InterestGroups` passed to `joinAdInterestGroup()` has been renamed to `updateUrl`, to more accurately reflect its behavior.",
95
+ /**
96
+ * @description This warning occurs when a stylesheet loaded from a local file directive does not end in the file type `.css`.
97
+ */
98
+ LocalCSSFileExtensionRejected: "CSS cannot be loaded from `file:` URLs unless they end in a `.css` file extension.",
99
+ /**
100
+ * @description This is a deprecation warning to developers that occurs when the script attempts to use the Media Source Extensions API in a way that is no longer supported by the specification for the API. The usage that is problematic is when the script calls the `SourceBuffer.abort()` method at a time when there is still processing happening in response to a previous `SourceBuffer.remove()` call for the same SourceBuffer object. More precisely, we show this warning to developers when script calls the SourceBuffer abort() method while the asynchronous processing of a remove() call on that SourceBuffer is not yet complete. Early versions of the Media Source Extensions specification allowed such aborts, but standardization of the specification resulted in disallowing the aborts. The script should instead wait for the asynchronous remove() operation to complete, which is observable by listening for the associated 'updateend' event from the SourceBuffer. A note is also included in the warning, describing when abort() is meaningful and allowed by the specification for purposes other than interrupting a remove() operation's asynchronous steps. Those supported purposes include using abort() to interrupt processing that may still be happening in response to a previous appendBuffer() call on that SourceBuffer, or using abort() to clear the internal of any unprocessed data remaining from previous appendBuffer() calls. See https://www.w3.org/TR/media-source-2/#dom-sourcebuffer-abort for the currently specified behavior, which would throw an exception once the deprecated removal abort is no longer supported. See https://github.com/w3c/media-source/issues/19 for the discussion that led to the specification change.
101
+ */
102
+ MediaSourceAbortRemove: "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.",
103
+ /**
104
+ * @description This is a deprecation warning to developers that occurs when the script attempts to use the Media Source Extensions API in a way that is no longer supported by the specification for the API. The usage that is problematic is when the script sets the duration attribute of a MediaSource object too low. The duration attribute of a MediaSource must be longer than the actual duration of any media (audio or video) already in the MediaSource. When set too low, the MediaSource must remove audio and video content that is beyond the time indicated by the new duration. Content removal that is caused by setting the duration attribute too low is no longer allowed by the specification. The message describes the minimum allowable duration value as the 'highest presentation timestamp of any buffered coded frames' as a more precise way of describing the duration of content already in the MediaSource: 'coded frames' are the specification's way of describing compressed audio frames or compressed video frames, and they each have a 'presentation timestamp' that describes precisely when that frame's playback occurs in the overall media presentation. Early versions of the Media Source Extensions specification allowed this to happen, but standardization of the specification resulted in disallowing this behavior. The underlying issue leading to this specification change was that setting the duration attribute should be synchronous, but setting it lower than the timestamp of something currently buffered would cause confusing removal of media between that new duration and the previous, larger, duration. The script should instead explicitly remove that range of media first, before lowering the duration. See https://www.w3.org/TR/media-source-2/#dom-mediasource-duration and https://www.w3.org/TR/media-source-2/#dom-mediasource-duration for the currently specified behavior, which would throw an exception once support is removed for deprecated implicit asynchronous range removal when duration is truncated. See both https://github.com/w3c/media-source/issues/20 and https://github.com/w3c/media-source/issues/26 for the discussion that led to the specification change.
105
+ */
106
+ MediaSourceDurationTruncatingBuffered: "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`.",
107
+ /**
108
+ * @description This warning is displayed when a site contains a `<template>` element with the `shadowroot` attribute.
109
+ */
110
+ NonStandardDeclarativeShadowDOM: "The older, non-standardized `shadowroot` attribute is deprecated, and will *no longer function* in M119. Please use the new, standardized `shadowrootmode` attribute instead.",
111
+ /**
112
+ * @description This warning occurs when the browser requests Web MIDI access as sysex (system exclusive messages) can be allowed via prompt even if the browser did not specifically request it.
113
+ */
114
+ NoSysexWebMIDIWithoutPermission: "Web MIDI will ask a permission to use even if the sysex is not specified in the `MIDIOptions`.",
222
115
  /**
223
116
  * @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.
224
117
  */
225
- notificationInsecureOrigin:
226
- '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.',
118
+ NotificationInsecureOrigin: "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.",
227
119
  /**
228
120
  * @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.
229
121
  */
230
- notificationPermissionRequestedIframe:
231
- '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.',
122
+ NotificationPermissionRequestedIframe: "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.",
232
123
  /**
233
- * @description This warning occurs when the WebRTC protocol attempts to
234
- * negotiate a connection using an obsolete cipher and risks connection
235
- * security.
124
+ * @description Warning displayed to developers when CreateImageBitmap is used with the newly deprecated option imageOrientation: 'none'.
236
125
  */
237
- obsoleteWebRtcCipherSuite:
238
- 'Your partner is negotiating an obsolete (D)TLS version. Please check with your partner to have this fixed.',
126
+ ObsoleteCreateImageBitmapImageOrientationNone: "Option `imageOrientation: 'none'` in createImageBitmap is deprecated. Please use createImageBitmap with option \\{imageOrientation: 'from-image'\\} instead.",
239
127
  /**
240
- * @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.
128
+ * @description This warning occurs when the WebRTC protocol attempts to negotiate a connection using an obsolete cipher and risks connection security.
241
129
  */
242
- openWebDatabaseInsecureContext:
243
- 'WebSQL in non-secure contexts is deprecated and will be removed soon. Please use Web Storage or Indexed Database.',
130
+ ObsoleteWebRtcCipherSuite: "Your partner is negotiating an obsolete (D)TLS version. Please check with your partner to have this fixed.",
131
+ /**
132
+ * @description Warning displayed to developers that use overflow:visible for replaced elements. This declaration was earlier ignored but will now change the element's painting based on whether the overflow value allows the element to paint outside its bounds.
133
+ */
134
+ OverflowVisibleOnReplacedElement: "Specifying `overflow: visible` on img, video and canvas tags may cause them to produce visual content outside of the element bounds. See https://github.com/WICG/shared-element-transitions/blob/main/debugging_overflow_on_images.md.",
244
135
  /**
245
136
  * @description Warning displayed to developers when they use the PaymentInstruments API to let them know this API is deprecated.
246
137
  */
247
- paymentInstruments: '`paymentManager.instruments` is deprecated. Please use just-in-time install for payment handlers instead.',
138
+ PaymentInstruments: "`paymentManager.instruments` is deprecated. Please use just-in-time install for payment handlers instead.",
248
139
  /**
249
140
  * @description Warning displayed to developers when their Web Payment API usage violates their Content-Security-Policy (CSP) connect-src directive to let them know this CSP bypass has been deprecated.
250
141
  */
251
- paymentRequestCSPViolation: 'Your `PaymentRequest` call bypassed Content-Security-Policy (CSP) `connect-src` directive. This bypass is deprecated. Please add the payment method identifier from the `PaymentRequest` API (in `supportedMethods` field) to your CSP `connect-src` directive.',
142
+ PaymentRequestCSPViolation: "Your `PaymentRequest` call bypassed Content-Security-Policy (CSP) `connect-src` directive. This bypass is deprecated. Please add the payment method identifier from the `PaymentRequest` API (in `supportedMethods` field) to your CSP `connect-src` directive.",
252
143
  /**
253
144
  * @description Warning displayed to developers when persistent storage type is used to notify that storage type is deprecated.
254
145
  */
255
- persistentQuotaType:
256
- '`StorageType.persistent` is deprecated. Please use standardized `navigator.storage` instead.',
146
+ PersistentQuotaType: "`StorageType.persistent` is deprecated. Please use standardized `navigator.storage` instead.",
257
147
  /**
258
148
  * @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.
259
149
  */
260
- pictureSourceSrc:
261
- '`<source src>` with a `<picture>` parent is invalid and therefore ignored. Please use `<source srcset>` instead.',
150
+ PictureSourceSrc: "`<source src>` with a `<picture>` parent is invalid and therefore ignored. Please use `<source srcset>` instead.",
151
+ /**
152
+ * @description Warning displayed to developers when the vendor-prefixed method (webkitCancelAnimationFrame) is used rather than the equivalent unprefixed method (cancelAnimationFrame).
153
+ */
154
+ PrefixedCancelAnimationFrame: "webkitCancelAnimationFrame is vendor-specific. Please use the standard cancelAnimationFrame instead.",
155
+ /**
156
+ * @description Warning displayed to developers when the vendor-prefixed method (webkitRequestAnimationFrame) is used rather than the equivalent unprefixed method (requestAnimationFrame).
157
+ */
158
+ PrefixedRequestAnimationFrame: "webkitRequestAnimationFrame is vendor-specific. Please use the standard requestAnimationFrame instead.",
159
+ /**
160
+ * @description Standard message when one web API is deprecated in favor of another.
161
+ */
162
+ PrefixedVideoDisplayingFullscreen: "HTMLVideoElement.webkitDisplayingFullscreen is deprecated. Please use Document.fullscreenElement instead.",
163
+ /**
164
+ * @description Standard message when one web API is deprecated in favor of another.
165
+ */
166
+ PrefixedVideoEnterFullScreen: "HTMLVideoElement.webkitEnterFullScreen() is deprecated. Please use Element.requestFullscreen() instead.",
167
+ /**
168
+ * @description Standard message when one web API is deprecated in favor of another.
169
+ */
170
+ PrefixedVideoEnterFullscreen: "HTMLVideoElement.webkitEnterFullscreen() is deprecated. Please use Element.requestFullscreen() instead.",
262
171
  /**
263
- * @description Warning displayed to developers when the vendor-prefixed method is used rather than the equivalent unprefixed method.
264
- * Both placeholders are Web API functions (single words).
265
- * @example {webkitCancelAnimationFrame} PH1
266
- * @example {cancelAnimationFrame} PH2
172
+ * @description Standard message when one web API is deprecated in favor of another.
267
173
  */
268
- vendorSpecificApi: '{PH1} is vendor-specific. Please use the standard {PH2} instead.',
174
+ PrefixedVideoExitFullScreen: "HTMLVideoElement.webkitExitFullScreen() is deprecated. Please use Document.exitFullscreen() instead.",
269
175
  /**
270
- * @description Warning displayed to developers when `window.webkitStorageInfo` is used to notify that the API is deprecated.
176
+ * @description Standard message when one web API is deprecated in favor of another.
271
177
  */
272
- prefixedStorageInfo:
273
- '`window.webkitStorageInfo` is deprecated. Please use standardized `navigator.storage` instead.',
178
+ PrefixedVideoExitFullscreen: "HTMLVideoElement.webkitExitFullscreen() is deprecated. Please use Document.exitFullscreen() instead.",
274
179
  /**
275
- * @description Standard message when one web API is deprecated in favor of another. Both
276
- * placeholders are always web API functions.
277
- * @example {HTMLVideoElement.webkitDisplayingFullscreen} PH1
278
- * @example {Document.fullscreenElement} PH2
180
+ * @description Standard message when one web API is deprecated in favor of another.
279
181
  */
280
- deprecatedWithReplacement: '{PH1} is deprecated. Please use {PH2} instead.',
182
+ PrefixedVideoSupportsFullscreen: "HTMLVideoElement.webkitSupportsFullscreen is deprecated. Please use Document.fullscreenEnabled instead.",
281
183
  /**
282
- * @description This warning occurs when a subresource loaded by a page
283
- * has a URL with an authority portion. These are disallowed.
184
+ * @description Warning displayed to developers that the API `chrome.privacy.websites.privacySandboxEnabled` is being deprecated in favour of three new more granular APIs: topicsEnabled, FledgeEnabled and adMeasurementEnabled. The `privacySandboxEnabled` API allowed extensions to control the homologous Chrome Setting. The existing Chrome Setting for Privacy Sandbox is also going away in favor of more granular settings that are matched by the new extensions APIs- topicsEnabled, FledgeEnabled and adMeasurementEnabled.
284
185
  */
285
- requestedSubresourceWithEmbeddedCredentials:
286
- 'Subresource requests whose URLs contain embedded credentials (e.g. `https://user:pass@host/`) are blocked.',
186
+ PrivacySandboxExtensionsAPI: "We're deprecating the API `chrome.privacy.websites.privacySandboxEnabled`, though it will remain active for backward compatibility until release M113. Instead, please use `chrome.privacy.websites.topicsEnabled`, `chrome.privacy.websites.fledgeEnabled` and `chrome.privacy.websites.adMeasurementEnabled`. See https://developer.chrome.com/docs/extensions/reference/privacy/#property-websites-privacySandboxEnabled.",
287
187
  /**
288
- * @description A deprecation warning shown in the DevTools Issues tab.
289
- * It's shown when a video conferencing website attempts to use a
290
- * non-standard crypto method when performing a handshake to set up a
291
- * connection with another endpoint.
188
+ * @description Standard message when one web API is deprecated in favor of another.
292
189
  */
293
- rtcConstraintEnableDtlsSrtpFalse:
294
- '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.',
190
+ RangeExpand: "Range.expand() is deprecated. Please use Selection.modify() instead.",
295
191
  /**
296
- * @description A deprecation warning shown in the DevTools Issues tab.
297
- * It's shown when a video conferencing website uses a non-standard
298
- * API for controlling the crypto method used, but is not having an
299
- * effect because the desired behavior is already enabled-by-default.
192
+ * @description This warning occurs when a subresource loaded by a page has a URL with an authority portion. These are disallowed.
300
193
  */
301
- rtcConstraintEnableDtlsSrtpTrue:
302
- '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.',
194
+ RequestedSubresourceWithEmbeddedCredentials: "Subresource requests whose URLs contain embedded credentials (e.g. `https://user:pass@host/`) are blocked.",
303
195
  /**
304
- * @description A deprecation warning shown in the DevTools Issues tab.
305
- * The `Session Description Protocol`, or `SDP` for short, is a
306
- * protocol used by video conferencing websites to establish the
307
- * number of audio and/or video streams to send and/or receive. This
308
- * warning is emitted when a web site attempts to use a deprecated
309
- * version of the protocol, called `Plan B`, that is no longer
310
- * supported. The spec compliant version of the protocol is called
311
- * `Unified Plan`.
196
+ * @description A deprecation warning shown in the DevTools Issues tab. It's shown when a video conferencing website attempts to use a non-standard crypto method when performing a handshake to set up a connection with another endpoint.
312
197
  */
313
- rtcPeerConnectionComplexPlanBSdpUsingDefaultSdpSemantics:
314
- '`Complex Plan B SDP` detected. This dialect of the `Session Description Protocol` is no longer supported. Please use `Unified Plan SDP` instead.',
198
+ RTCConstraintEnableDtlsSrtpFalse: "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.",
315
199
  /**
316
- * @description A deprecation warning shown in the DevTools Issues tab.
317
- * The `Session Description Protocol`, or `SDP` for short, is a
318
- * protocol used by video conferencing websites to establish the
319
- * number of audio and/or video streams to send and/or receive. This
320
- * warning is emitted when a web site attempts to use a deprecated
321
- * version of the protocol, called `Plan B`, that is no longer
322
- * supported. The spec compliant version of the protocol is called
323
- * `Unified Plan`.
200
+ * @description A deprecation warning shown in the DevTools Issues tab. It's shown when a video conferencing website uses a non-standard API for controlling the crypto method used, but is not having an effect because the desired behavior is already enabled-by-default.
324
201
  */
325
- rtcPeerConnectionSdpSemanticsPlanB:
326
- '`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.',
202
+ RTCConstraintEnableDtlsSrtpTrue: "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.",
327
203
  /**
328
- * @description A deprecation warning shown in the DevTools Issues tab.
329
- * It's shown then a video conferencing website attempts to use the
330
- * `RTCP MUX` policy.
204
+ * @description WebRTC is set of JavaScript APIs for sending and receiving data, audio and video. getStats() is a method used to obtain network and quality metrics. There are two versions of this method, one is being deprecated because it is non-standard.
331
205
  */
332
- rtcpMuxPolicyNegotiate: 'The `rtcpMuxPolicy` option is deprecated and will be removed.',
206
+ RTCPeerConnectionGetStatsLegacyNonCompliant: "The callback-based getStats() is deprecated and will be removed. Use the spec-compliant getStats() instead.",
333
207
  /**
334
- * @description A deprecation warning shown in the DevTools Issues tab. The placeholder is always the noun
335
- * "SharedArrayBuffer" which refers to a JavaScript construct.
208
+ * @description A deprecation warning shown in the DevTools Issues tab. It's shown then a video conferencing website attempts to use the `RTCP MUX` policy.
336
209
  */
337
- sharedArrayBufferConstructedWithoutIsolation:
338
- '`SharedArrayBuffer` will require cross-origin isolation. See https://developer.chrome.com/blog/enabling-shared-array-buffer/ for more details.',
210
+ RtcpMuxPolicyNegotiate: "The `rtcpMuxPolicy` option is deprecated and will be removed.",
339
211
  /**
340
- * @description A deprecation warning shown in the DevTools Issues tab.
341
- * It's shown when the speech synthesis API is called before the page
342
- * receives a user activation.
212
+ * @description A deprecation warning shown in the DevTools Issues tab. The placeholder is always the noun 'SharedArrayBuffer' which refers to a JavaScript construct.
343
213
  */
344
- textToSpeech_DisallowedByAutoplay:
345
- '`speechSynthesis.speak()` without user activation is deprecated and will be removed.',
214
+ SharedArrayBufferConstructedWithoutIsolation: "`SharedArrayBuffer` will require cross-origin isolation. See https://developer.chrome.com/blog/enabling-shared-array-buffer/ for more details.",
346
215
  /**
347
- * @description A deprecation warning shown in the DevTools Issues tab. The placeholder is always the noun
348
- * "SharedArrayBuffer" which refers to a JavaScript construct. "Extensions" refers to Chrome extensions. The warning is shown
349
- * when Chrome Extensions attempt to use "SharedArrayBuffer"s under insecure circumstances.
216
+ * @description A deprecation warning shown in the DevTools Issues tab. It's shown when the speech synthesis API is called before the page receives a user activation.
350
217
  */
351
- v8SharedArrayBufferConstructedInExtensionWithoutIsolation:
352
- 'Extensions should opt into cross-origin isolation to continue using `SharedArrayBuffer`. See https://developer.chrome.com/docs/extensions/mv3/cross-origin-isolation/.',
218
+ TextToSpeech_DisallowedByAutoplay: "`speechSynthesis.speak()` without user activation is deprecated and will be removed.",
353
219
  /**
354
- * @description Warning displayed to developers that they are using
355
- * `XMLHttpRequest` API in a way that they expect an unsupported character
356
- * encoding `UTF-16` could be used in the server reply.
220
+ * @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.
357
221
  */
358
- xhrJSONEncodingDetection: 'UTF-16 is not supported by response json in `XMLHttpRequest`',
222
+ V8SharedArrayBufferConstructedInExtensionWithoutIsolation: "Extensions should opt into cross-origin isolation to continue using `SharedArrayBuffer`. See https://developer.chrome.com/docs/extensions/mv3/cross-origin-isolation/.",
359
223
  /**
360
- * @description Warning displayed to developers. It is shown when
361
- * the `XMLHttpRequest` API is used in a way that it slows down the page load
362
- * of the next page. The `main thread` refers to an operating systems thread
363
- * used to run most of the processing of HTML documents, so please use a
364
- * consistent wording.
224
+ * @description Warning displayed to developers when the Web SQL API is used to let them know this API is deprecated.
365
225
  */
366
- xmlHttpRequestSynchronousInNonWorkerOutsideBeforeUnload:
367
- '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/.',
226
+ WebSQL: "Web SQL is deprecated. Please use SQLite WebAssembly or Indexed Database",
368
227
  /**
369
- * @description Warning displayed to developers that instead of using
370
- * `supportsSession()`, which returns a promise that resolves if
371
- * the XR session can be supported and rejects if not, they should
372
- * use `isSessionSupported()` which will return a promise which
373
- * resolves to a boolean indicating if the XR session can be
374
- * supported or not, but may reject to throw an exception.
228
+ * @description A deprecation warning shown in the DevTools Issues tab. 'window-placement' and 'window-management' are the name of the javascript descriptors (do not translate). The warning is shown when web pages attempt to use 'window-placement' in permission APIs (e.g. navigator.permissions.query(...))
375
229
  */
376
- xrSupportsSession:
377
- '`supportsSession()` is deprecated. Please use `isSessionSupported()` and check the resolved boolean value instead.',
230
+ WindowPlacementPermissionDescriptorUsed: "The permission descriptor `window-placement` is deprecated. Use `window-management` instead. For more help, check https://bit.ly/window-placement-rename.",
378
231
  /**
379
- * @description Warning displayed to developers that use overflow:visible
380
- * for replaced elements. This declaration was earlier ignored but will now
381
- * change the element's painting based on whether the overflow value allows
382
- * the element to paint outside its bounds.
232
+ * @description A deprecation warning shown in the DevTools Issues tab. 'window-placement' and 'window-management' are the name of the policy descriptors (do not translate). The warning is shown when web pages attempt to use 'window-placement' as a permission policy (parsed in iframe or header).
383
233
  */
384
- overflowVisibleOnReplacedElement:
385
- 'Specifying `overflow: visible` on img, video and canvas tags may cause them to produce visual content outside of the element bounds. See https://github.com/WICG/shared-element-transitions/blob/main/debugging_overflow_on_images.md.',
234
+ WindowPlacementPermissionPolicyParsed: "The permission policy `window-placement` is deprecated. Use `window-management` instead. For more help, check https://bit.ly/window-placement-rename.",
235
+ /**
236
+ * @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.
237
+ */
238
+ XHRJSONEncodingDetection: "UTF-16 is not supported by response json in `XMLHttpRequest`",
239
+ /**
240
+ * @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.
241
+ */
242
+ 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/.",
243
+ /**
244
+ * @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.
245
+ */
246
+ XRSupportsSession: "`supportsSession()` is deprecated. Please use `isSessionSupported()` and check the resolved boolean value instead.",
386
247
  };
387
248
 
388
- const str_ = i18n.createIcuMessageFn(import.meta.url, UIStrings);
389
249
 
390
250
 
391
- /**
392
- * @param {LH.Crdp.Audits.DeprecationIssueDetails} issueDetails
393
- */
394
- function getDescription(issueDetails) {
395
- let message;
396
- let feature = 0;
397
- let milestone = 0;
398
- // Keep case statements alphabetized per DeprecationIssueType.
399
- switch (issueDetails.type) {
400
- case 'AuthorizationCoveredByWildcard':
401
- message = str_(UIStrings.authorizationCoveredByWildcard);
402
- milestone = 97;
403
- break;
404
- case 'CanRequestURLHTTPContainingNewline':
405
- message = str_(UIStrings.canRequestURLHTTPContainingNewline);
406
- feature = 5735596811091968;
407
- break;
408
- case 'ChromeLoadTimesConnectionInfo':
409
- message = str_(UIStrings.chromeLoadTimesConnectionInfo);
410
- feature = 5637885046816768;
411
- break;
412
- case 'ChromeLoadTimesFirstPaintAfterLoadTime':
413
- message = str_(UIStrings.chromeLoadTimesFirstPaintAfterLoadTime);
414
- feature = 5637885046816768;
415
- break;
416
- case 'ChromeLoadTimesWasAlternateProtocolAvailable':
417
- message = str_(UIStrings.chromeLoadTimesWasAlternateProtocolAvailable);
418
- feature = 5637885046816768;
419
- break;
420
- case 'CookieWithTruncatingChar':
421
- message = str_(UIStrings.cookieWithTruncatingChar);
422
- milestone = 103;
423
- break;
424
- case 'CrossOriginAccessBasedOnDocumentDomain':
425
- message = str_(UIStrings.crossOriginAccessBasedOnDocumentDomain);
426
- milestone = 109;
427
- break;
428
- case 'CrossOriginWindowAlert':
429
- message = str_(UIStrings.crossOriginWindowApi, {PH1: 'window.alert'});
430
- break;
431
- case 'CrossOriginWindowConfirm':
432
- message = str_(UIStrings.crossOriginWindowApi, {PH1: 'window.confirm'});
433
- break;
434
- case 'CSSSelectorInternalMediaControlsOverlayCastButton':
435
- message = str_(UIStrings.cssSelectorInternalMediaControlsOverlayCastButton);
436
- feature = 5714245488476160;
437
- break;
438
- case 'DeprecationExample':
439
- message = str_(UIStrings.deprecationExample);
440
- feature = 5684289032159232;
441
- milestone = 100;
442
- break;
443
- case 'DocumentDomainSettingWithoutOriginAgentClusterHeader':
444
- message = str_(UIStrings.documentDomainSettingWithoutOriginAgentClusterHeader);
445
- milestone = 109;
446
- break;
447
- case 'EventPath':
448
- message = str_(UIStrings.eventPath);
449
- feature = 5726124632965120;
450
- milestone = 109;
451
- break;
452
- case 'ExpectCTHeader':
453
- message = str_(UIStrings.expectCTHeader);
454
- feature = 6244547273687040;
455
- milestone = 107;
456
- break;
457
- case 'GeolocationInsecureOrigin':
458
- message = str_(UIStrings.geolocationInsecureOrigin);
459
- break;
460
- case 'GeolocationInsecureOriginDeprecatedNotRemoved':
461
- message = str_(UIStrings.geolocationInsecureOriginDeprecatedNotRemoved);
462
- break;
463
- case 'GetUserMediaInsecureOrigin':
464
- message = str_(UIStrings.getUserMediaInsecureOrigin);
465
- break;
466
- case 'HostCandidateAttributeGetter':
467
- message = str_(UIStrings.hostCandidateAttributeGetter);
468
- break;
469
- case 'IdentityInCanMakePaymentEvent':
470
- message = str_(UIStrings.identityInCanMakePaymentEvent);
471
- feature = 5190978431352832;
472
- break;
473
- case 'InsecurePrivateNetworkSubresourceRequest':
474
- message = str_(UIStrings.insecurePrivateNetworkSubresourceRequest);
475
- feature = 5436853517811712;
476
- milestone = 92;
477
- break;
478
- case 'LocalCSSFileExtensionRejected':
479
- message = str_(UIStrings.localCSSFileExtensionRejected);
480
- milestone = 64;
481
- break;
482
- case 'MediaSourceAbortRemove':
483
- message = str_(UIStrings.mediaSourceAbortRemove);
484
- feature = 6107495151960064;
485
- break;
486
- case 'MediaSourceDurationTruncatingBuffered':
487
- message = str_(UIStrings.mediaSourceDurationTruncatingBuffered);
488
- feature = 6107495151960064;
489
- break;
490
- case 'NoSysexWebMIDIWithoutPermission':
491
- message = str_(UIStrings.noSysexWebMIDIWithoutPermission);
492
- feature = 5138066234671104;
493
- milestone = 82;
494
- break;
495
- case 'NotificationInsecureOrigin':
496
- message = str_(UIStrings.notificationInsecureOrigin);
497
- break;
498
- case 'NotificationPermissionRequestedIframe':
499
- message = str_(UIStrings.notificationPermissionRequestedIframe);
500
- feature = 6451284559265792;
501
- break;
502
- case 'ObsoleteWebRtcCipherSuite':
503
- message = str_(UIStrings.obsoleteWebRtcCipherSuite);
504
- milestone = 81;
505
- break;
506
- case 'OpenWebDatabaseInsecureContext':
507
- message = str_(UIStrings.openWebDatabaseInsecureContext);
508
- feature = 5175124599767040;
509
- milestone = 105;
510
- break;
511
- case 'PaymentInstruments':
512
- message = str_(UIStrings.paymentInstruments);
513
- feature = 5099285054488576;
514
- break;
515
- case 'PaymentRequestCSPViolation':
516
- message = str_(UIStrings.paymentRequestCSPViolation);
517
- feature = 6286595631087616;
518
- break;
519
- case 'PersistentQuotaType':
520
- message = str_(UIStrings.persistentQuotaType);
521
- feature = 5176235376246784;
522
- milestone = 106;
523
- break;
524
- case 'PictureSourceSrc':
525
- message = str_(UIStrings.pictureSourceSrc);
526
- break;
527
- case 'PrefixedCancelAnimationFrame':
528
- message = str_(
529
- UIStrings.vendorSpecificApi, {PH1: 'webkitCancelAnimationFrame', PH2: 'cancelAnimationFrame'});
530
- break;
531
- case 'PrefixedRequestAnimationFrame':
532
- message = str_(
533
- UIStrings.vendorSpecificApi, {PH1: 'webkitRequestAnimationFrame', PH2: 'requestAnimationFrame'});
534
- break;
535
- case 'PrefixedStorageInfo':
536
- message = str_(UIStrings.prefixedStorageInfo);
537
- break;
538
- case 'PrefixedVideoDisplayingFullscreen':
539
- message = str_(
540
- UIStrings.deprecatedWithReplacement,
541
- {PH1: 'HTMLVideoElement.webkitDisplayingFullscreen', PH2: 'Document.fullscreenElement'});
542
- break;
543
- case 'PrefixedVideoEnterFullScreen':
544
- message = str_(
545
- UIStrings.deprecatedWithReplacement,
546
- {PH1: 'HTMLVideoElement.webkitEnterFullScreen()', PH2: 'Element.requestFullscreen()'});
547
- break;
548
- case 'PrefixedVideoEnterFullscreen':
549
- message = str_(
550
- UIStrings.deprecatedWithReplacement,
551
- {PH1: 'HTMLVideoElement.webkitEnterFullscreen()', PH2: 'Element.requestFullscreen()'});
552
- break;
553
- case 'PrefixedVideoExitFullScreen':
554
- message = str_(
555
- UIStrings.deprecatedWithReplacement,
556
- {PH1: 'HTMLVideoElement.webkitExitFullScreen()', PH2: 'Document.exitFullscreen()'});
557
- break;
558
- case 'PrefixedVideoExitFullscreen':
559
- message = str_(
560
- UIStrings.deprecatedWithReplacement,
561
- {PH1: 'HTMLVideoElement.webkitExitFullscreen()', PH2: 'Document.exitFullscreen()'});
562
- break;
563
- case 'PrefixedVideoSupportsFullscreen':
564
- message = str_(
565
- UIStrings.deprecatedWithReplacement,
566
- {PH1: 'HTMLVideoElement.webkitSupportsFullscreen', PH2: 'Document.fullscreenEnabled'});
567
- break;
568
- case 'RangeExpand':
569
- message =
570
- str_(UIStrings.deprecatedWithReplacement, {PH1: 'Range.expand()', PH2: 'Selection.modify()'});
571
- break;
572
- case 'RequestedSubresourceWithEmbeddedCredentials':
573
- message = str_(UIStrings.requestedSubresourceWithEmbeddedCredentials);
574
- feature = 5669008342777856;
575
- break;
576
- case 'OverflowVisibleOnReplacedElement':
577
- message = str_(UIStrings.overflowVisibleOnReplacedElement);
578
- feature = 5137515594383360;
579
- milestone = 108;
580
- break;
581
- case 'RTCConstraintEnableDtlsSrtpFalse':
582
- message = str_(UIStrings.rtcConstraintEnableDtlsSrtpFalse);
583
- milestone = 97;
584
- break;
585
- case 'RTCConstraintEnableDtlsSrtpTrue':
586
- message = str_(UIStrings.rtcConstraintEnableDtlsSrtpTrue);
587
- milestone = 97;
588
- break;
589
- case 'RTCPeerConnectionComplexPlanBSdpUsingDefaultSdpSemantics':
590
- message = str_(UIStrings.rtcPeerConnectionComplexPlanBSdpUsingDefaultSdpSemantics);
591
- milestone = 72;
592
- break;
593
- case 'RTCPeerConnectionSdpSemanticsPlanB':
594
- message = str_(UIStrings.rtcPeerConnectionSdpSemanticsPlanB);
595
- feature = 5823036655665152;
596
- milestone = 93;
597
- break;
598
- case 'RtcpMuxPolicyNegotiate':
599
- message = str_(UIStrings.rtcpMuxPolicyNegotiate);
600
- feature = 5654810086866944;
601
- milestone = 62;
602
- break;
603
- case 'SharedArrayBufferConstructedWithoutIsolation':
604
- message = str_(UIStrings.sharedArrayBufferConstructedWithoutIsolation);
605
- milestone = 106;
606
- break;
607
- case 'TextToSpeech_DisallowedByAutoplay':
608
- message = str_(UIStrings.textToSpeech_DisallowedByAutoplay);
609
- feature = 5687444770914304;
610
- milestone = 71;
611
- break;
612
- case 'V8SharedArrayBufferConstructedInExtensionWithoutIsolation':
613
- message = str_(UIStrings.v8SharedArrayBufferConstructedInExtensionWithoutIsolation);
614
- milestone = 96;
615
- break;
616
- case 'XHRJSONEncodingDetection':
617
- message = str_(UIStrings.xhrJSONEncodingDetection);
618
- milestone = 93;
619
- break;
620
- case 'XMLHttpRequestSynchronousInNonWorkerOutsideBeforeUnload':
621
- message = str_(UIStrings.xmlHttpRequestSynchronousInNonWorkerOutsideBeforeUnload);
622
- break;
623
- case 'XRSupportsSession':
624
- message = str_(UIStrings.xrSupportsSession);
625
- milestone = 80;
626
- break;
627
- }
628
- const links = [];
629
- if (feature !== 0) {
630
- links.push({
631
- link: `https://chromestatus.com/feature/${feature}`,
632
- linkTitle: str_(UIStrings.feature),
633
- });
634
- }
635
- if (milestone !== 0) {
636
- links.push({
637
- link: 'https://chromiumdash.appspot.com/schedule',
638
- linkTitle: str_(UIStrings.milestone, {milestone}),
639
- });
640
- }
641
- return ({
642
- file: 'deprecation.md',
643
- substitutions: new Map([
644
- ['PLACEHOLDER_title', str_(UIStrings.title)],
645
- ['PLACEHOLDER_message', message],
646
- ]),
647
- links, message,
648
- });
649
- }
650
251
 
651
- export {
652
- getDescription as getIssueDetailDescription,
653
- UIStrings,
654
- };
252
+
253
+ export const DEPRECATIONS_METADATA = {
254
+ "AuthorizationCoveredByWildcard": {
255
+ "milestone": 97
256
+ },
257
+ "CSSSelectorInternalMediaControlsOverlayCastButton": {
258
+ "chromeStatusFeature": 5714245488476160
259
+ },
260
+ "CanRequestURLHTTPContainingNewline": {
261
+ "chromeStatusFeature": 5735596811091968
262
+ },
263
+ "ChromeLoadTimesConnectionInfo": {
264
+ "chromeStatusFeature": 5637885046816768
265
+ },
266
+ "ChromeLoadTimesFirstPaintAfterLoadTime": {
267
+ "chromeStatusFeature": 5637885046816768
268
+ },
269
+ "ChromeLoadTimesWasAlternateProtocolAvailable": {
270
+ "chromeStatusFeature": 5637885046816768
271
+ },
272
+ "CookieWithTruncatingChar": {
273
+ "milestone": 103
274
+ },
275
+ "CrossOriginAccessBasedOnDocumentDomain": {
276
+ "milestone": 115
277
+ },
278
+ "DOMMutationEvents": {
279
+ "chromeStatusFeature": 5083947249172480,
280
+ "milestone": 127
281
+ },
282
+ "DataUrlInSvgUse": {
283
+ "chromeStatusFeature": 5128825141198848,
284
+ "milestone": 119
285
+ },
286
+ "DocumentDomainSettingWithoutOriginAgentClusterHeader": {
287
+ "milestone": 115
288
+ },
289
+ "ExpectCTHeader": {
290
+ "chromeStatusFeature": 6244547273687040,
291
+ "milestone": 107
292
+ },
293
+ "IdentityInCanMakePaymentEvent": {
294
+ "chromeStatusFeature": 5190978431352832
295
+ },
296
+ "InsecurePrivateNetworkSubresourceRequest": {
297
+ "chromeStatusFeature": 5436853517811712,
298
+ "milestone": 92
299
+ },
300
+ "LocalCSSFileExtensionRejected": {
301
+ "milestone": 64
302
+ },
303
+ "MediaSourceAbortRemove": {
304
+ "chromeStatusFeature": 6107495151960064
305
+ },
306
+ "MediaSourceDurationTruncatingBuffered": {
307
+ "chromeStatusFeature": 6107495151960064
308
+ },
309
+ "NoSysexWebMIDIWithoutPermission": {
310
+ "chromeStatusFeature": 5138066234671104,
311
+ "milestone": 82
312
+ },
313
+ "NonStandardDeclarativeShadowDOM": {
314
+ "chromeStatusFeature": 6239658726391808,
315
+ "milestone": 119
316
+ },
317
+ "NotificationPermissionRequestedIframe": {
318
+ "chromeStatusFeature": 6451284559265792
319
+ },
320
+ "ObsoleteCreateImageBitmapImageOrientationNone": {
321
+ "milestone": 111
322
+ },
323
+ "ObsoleteWebRtcCipherSuite": {
324
+ "milestone": 81
325
+ },
326
+ "OverflowVisibleOnReplacedElement": {
327
+ "chromeStatusFeature": 5137515594383360,
328
+ "milestone": 108
329
+ },
330
+ "PaymentInstruments": {
331
+ "chromeStatusFeature": 5099285054488576
332
+ },
333
+ "PaymentRequestCSPViolation": {
334
+ "chromeStatusFeature": 6286595631087616
335
+ },
336
+ "PersistentQuotaType": {
337
+ "chromeStatusFeature": 5176235376246784,
338
+ "milestone": 106
339
+ },
340
+ "RTCConstraintEnableDtlsSrtpFalse": {
341
+ "milestone": 97
342
+ },
343
+ "RTCConstraintEnableDtlsSrtpTrue": {
344
+ "milestone": 97
345
+ },
346
+ "RTCPeerConnectionGetStatsLegacyNonCompliant": {
347
+ "chromeStatusFeature": 4631626228695040,
348
+ "milestone": 117
349
+ },
350
+ "RequestedSubresourceWithEmbeddedCredentials": {
351
+ "chromeStatusFeature": 5669008342777856
352
+ },
353
+ "RtcpMuxPolicyNegotiate": {
354
+ "chromeStatusFeature": 5654810086866944,
355
+ "milestone": 62
356
+ },
357
+ "SharedArrayBufferConstructedWithoutIsolation": {
358
+ "milestone": 106
359
+ },
360
+ "TextToSpeech_DisallowedByAutoplay": {
361
+ "chromeStatusFeature": 5687444770914304,
362
+ "milestone": 71
363
+ },
364
+ "V8SharedArrayBufferConstructedInExtensionWithoutIsolation": {
365
+ "milestone": 96
366
+ },
367
+ "WebSQL": {
368
+ "chromeStatusFeature": 5134293578285056,
369
+ "milestone": 115
370
+ },
371
+ "WindowPlacementPermissionDescriptorUsed": {
372
+ "chromeStatusFeature": 5137018030391296,
373
+ "milestone": 112
374
+ },
375
+ "WindowPlacementPermissionPolicyParsed": {
376
+ "chromeStatusFeature": 5137018030391296,
377
+ "milestone": 112
378
+ },
379
+ "XHRJSONEncodingDetection": {
380
+ "milestone": 93
381
+ },
382
+ "XRSupportsSession": {
383
+ "milestone": 80
384
+ }
385
+ };