chrome-devtools-frontend 1.0.1001476 → 1.0.1003469

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 (88) hide show
  1. package/config/gni/devtools_grd_files.gni +5 -6
  2. package/front_end/core/common/ParsedURL.ts +3 -3
  3. package/front_end/core/host/InspectorFrontendHost.ts +30 -1
  4. package/front_end/core/host/InspectorFrontendHostAPI.ts +1 -0
  5. package/front_end/core/host/UserMetrics.ts +17 -1
  6. package/front_end/core/i18n/locales/en-US.json +24 -63
  7. package/front_end/core/i18n/locales/en-XL.json +24 -63
  8. package/front_end/core/protocol_client/InspectorBackend.ts +4 -0
  9. package/front_end/core/root/Runtime.ts +7 -3
  10. package/front_end/core/sdk/ServiceWorkerManager.ts +6 -5
  11. package/front_end/core/sdk/TracingModel.ts +5 -4
  12. package/front_end/devtools_compatibility.js +1 -0
  13. package/front_end/entrypoints/formatter_worker/FormatterActions.ts +14 -0
  14. package/front_end/entrypoints/formatter_worker/ScopeParser.ts +491 -0
  15. package/front_end/entrypoints/formatter_worker/Substitute.ts +4 -440
  16. package/front_end/entrypoints/formatter_worker/formatter_worker.ts +2 -0
  17. package/front_end/entrypoints/main/MainImpl.ts +1 -0
  18. package/front_end/generated/InspectorBackendCommands.js +42 -12
  19. package/front_end/generated/SupportedCSSProperties.js +3 -5
  20. package/front_end/generated/protocol-mapping.d.ts +5 -1
  21. package/front_end/generated/protocol-proxy-api.d.ts +4 -1
  22. package/front_end/generated/protocol.ts +68 -14
  23. package/front_end/models/bindings/CompilerScriptMapping.ts +1 -1
  24. package/front_end/models/issues_manager/AttributionReportingIssue.ts +6 -34
  25. package/front_end/models/issues_manager/DeprecationIssue.ts +84 -172
  26. package/front_end/models/issues_manager/Issue.ts +8 -4
  27. package/front_end/models/issues_manager/descriptions/arInvalidHeader.md +3 -0
  28. package/front_end/models/persistence/NetworkPersistenceManager.ts +20 -0
  29. package/front_end/models/timeline_model/TimelineModel.ts +2 -49
  30. package/front_end/panels/application/AppManifestView.ts +3 -3
  31. package/front_end/panels/application/ApplicationPanelCacheSection.ts +3 -1
  32. package/front_end/panels/application/ApplicationPanelSidebar.ts +11 -6
  33. package/front_end/panels/application/ApplicationPanelTreeElement.ts +2 -2
  34. package/front_end/panels/application/BackgroundServiceView.ts +5 -4
  35. package/front_end/panels/application/ResourcesPanel.ts +1 -1
  36. package/front_end/panels/console/ConsoleViewMessage.ts +6 -3
  37. package/front_end/panels/css_overview/components/CSSOverviewStartView.ts +3 -2
  38. package/front_end/panels/elements/StylePropertyTreeElement.ts +19 -13
  39. package/front_end/panels/elements/StylesSidebarPane.ts +74 -5
  40. package/front_end/panels/elements/stylesSidebarPane.css +3 -0
  41. package/front_end/panels/issues/AffectedResourcesView.ts +4 -3
  42. package/front_end/panels/issues/AffectedSourcesView.ts +2 -1
  43. package/front_end/panels/issues/AttributionReportingIssueDetailsView.ts +9 -38
  44. package/front_end/panels/issues/IssueView.ts +1 -1
  45. package/front_end/panels/lighthouse/LighthouseController.ts +6 -3
  46. package/front_end/panels/lighthouse/LighthouseReporterTypes.ts +2 -1
  47. package/front_end/panels/lighthouse/lighthousePanel.css +4 -0
  48. package/front_end/panels/network/NetworkLogView.ts +32 -0
  49. package/front_end/panels/profiler/HeapSnapshotGridNodes.ts +2 -2
  50. package/front_end/panels/profiler/HeapSnapshotView.ts +2 -1
  51. package/front_end/panels/profiler/ProfileDataGrid.ts +1 -1
  52. package/front_end/panels/security/SecurityPanel.ts +6 -5
  53. package/front_end/panels/settings/SettingsScreen.ts +2 -3
  54. package/front_end/panels/sources/SourcesNavigator.ts +1 -1
  55. package/front_end/panels/sources/SourcesPanel.ts +1 -1
  56. package/front_end/panels/timeline/PerformanceModel.ts +2 -6
  57. package/front_end/panels/timeline/TimelineFlameChartDataProvider.ts +5 -26
  58. package/front_end/panels/timeline/TimelineUIUtils.ts +14 -12
  59. package/front_end/third_party/lighthouse/lighthouse-dt-bundle.js +1036 -1088
  60. package/front_end/third_party/lighthouse/locales/en-US.json +244 -4
  61. package/front_end/third_party/lighthouse/locales/en-XL.json +244 -4
  62. package/front_end/third_party/lighthouse/report/bundle.d.ts +4 -22
  63. package/front_end/third_party/lighthouse/report/bundle.js +23 -366
  64. package/front_end/third_party/lighthouse/report-assets/report-generator.mjs +1 -1
  65. package/front_end/ui/components/docs/linkifier/simple-url.ts +2 -1
  66. package/front_end/ui/components/docs/panel_feedback/basic.ts +3 -2
  67. package/front_end/ui/components/docs/panel_feedback/button.ts +2 -1
  68. package/front_end/ui/components/linkifier/LinkifierImpl.ts +4 -3
  69. package/front_end/ui/components/linkifier/LinkifierUtils.ts +2 -3
  70. package/front_end/ui/components/panel_feedback/FeedbackButton.ts +4 -6
  71. package/front_end/ui/components/panel_feedback/PanelFeedback.ts +5 -4
  72. package/front_end/ui/components/request_link_icon/RequestLinkIcon.ts +3 -3
  73. package/front_end/ui/components/text_editor/javascript.ts +6 -15
  74. package/front_end/ui/legacy/EmptyWidget.ts +2 -1
  75. package/front_end/ui/legacy/InspectorView.ts +29 -0
  76. package/front_end/ui/legacy/UIUtils.ts +4 -4
  77. package/front_end/ui/legacy/XLink.ts +12 -13
  78. package/front_end/ui/legacy/components/color_picker/ContrastDetails.ts +2 -4
  79. package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +1 -1
  80. package/front_end/ui/legacy/components/perf_ui/LineLevelProfile.ts +0 -2
  81. package/front_end/ui/legacy/components/utils/ImagePreview.ts +3 -7
  82. package/front_end/ui/legacy/components/utils/Linkifier.ts +23 -23
  83. package/front_end/ui/legacy/toolbar.css +1 -1
  84. package/package.json +1 -1
  85. package/scripts/whitespaces.txt +1 -0
  86. package/front_end/models/issues_manager/descriptions/arInvalidAttributionSourceEventId.md +0 -3
  87. package/front_end/models/issues_manager/descriptions/arInvalidAttributionSourceExpiry.md +0 -4
  88. package/front_end/models/issues_manager/descriptions/arInvalidAttributionSourcePriority.md +0 -4
@@ -23,42 +23,42 @@ const UIStrings = {
23
23
  */
24
24
  milestone: 'This change will go into effect with milestone {milestone}.',
25
25
  /**
26
- *@description Title of issue raised when a deprecated feature is used
26
+ * @description Title of issue raised when a deprecated feature is used
27
27
  */
28
28
  title: 'Deprecated Feature Used',
29
29
 
30
30
  // Store alphabetized messages per DeprecationIssueType in this block.
31
31
  /**
32
- *@description TODO(crbug.com/1318846): Description needed for translation
32
+ * @description TODO(crbug.com/1318846): Description needed for translation
33
33
  */
34
34
  authorizationCoveredByWildcard:
35
35
  'Authorization will not be covered by the wildcard symbol (*) in CORS `Access-Control-Allow-Headers` handling.',
36
36
  /**
37
- *@description TODO(crbug.com/1320334): Description needed for translation
37
+ * @description TODO(crbug.com/1320334): Description needed for translation
38
38
  */
39
39
  canRequestURLHTTPContainingNewline:
40
40
  '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.',
41
41
  /**
42
- *@description TODO(crbug.com/1320335): Description needed for translation
42
+ * @description TODO(crbug.com/1320335): Description needed for translation
43
43
  */
44
44
  chromeLoadTimesConnectionInfo:
45
45
  '`chrome.loadTimes()` is deprecated, instead use standardized API: Navigation Timing 2.',
46
46
  /**
47
- *@description TODO(crbug.com/1320336): Description needed for translation
47
+ * @description TODO(crbug.com/1320336): Description needed for translation
48
48
  */
49
49
  chromeLoadTimesFirstPaintAfterLoadTime:
50
50
  '`chrome.loadTimes()` is deprecated, instead use standardized API: Paint Timing.',
51
51
  /**
52
- *@description TODO(crbug.com/1320337): Description needed for translation
52
+ * @description TODO(crbug.com/1320337): Description needed for translation
53
53
  */
54
54
  chromeLoadTimesWasAlternateProtocolAvailable:
55
55
  '`chrome.loadTimes()` is deprecated, instead use standardized API: `nextHopProtocol` in Navigation Timing 2.',
56
56
  /**
57
- *@description TODO(crbug.com/1318847): Description needed for translation
57
+ * @description TODO(crbug.com/1318847): Description needed for translation
58
58
  */
59
59
  cookieWithTruncatingChar: 'Cookies containing a `\\(0|r|n)` character will be rejected instead of truncated.',
60
60
  /**
61
- *@description This warning occurs when a frame accesses another frame's
61
+ * @description This warning occurs when a frame accesses another frame's
62
62
  * data after having set `document.domain` without having set the
63
63
  * `Origin-Agent-Cluster` http header. This is a companion warning to
64
64
  * `documentDomainSettingWithoutOriginAgentClusterHeader`, where that
@@ -69,31 +69,27 @@ const UIStrings = {
69
69
  crossOriginAccessBasedOnDocumentDomain:
70
70
  '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`.',
71
71
  /**
72
- *@description TODO(crbug.com/1318850): Description needed for translation
72
+ * @description Issue text shown when the web page uses a deprecated web API. The placeholder is
73
+ * the deprecated web API function.
74
+ * @example {window.alert} PH1
73
75
  */
74
- crossOriginWindowAlert:
75
- 'Triggering `window.alert` from cross origin iframes has been deprecated and will be removed in the future.',
76
+ crossOriginWindowApi: 'Triggering {PH1} from cross origin iframes has been deprecated and will be removed in the future.',
76
77
  /**
77
- *@description TODO(crbug.com/1318851): Description needed for translation
78
- */
79
- crossOriginWindowConfirm:
80
- 'Triggering `window.confirm` from cross origin iframes has been deprecated and will be removed in the future.',
81
- /**
82
- *@description TODO(crbug.com/1320339): Description needed for translation
78
+ * @description TODO(crbug.com/1320339): Description needed for translation
83
79
  */
84
80
  cssSelectorInternalMediaControlsOverlayCastButton:
85
81
  'The `disableRemotePlayback` attribute should be used in order to disable the default Cast integration instead of using `-internal-media-controls-overlay-cast-button` selector.',
86
82
  /**
87
- *@description TODO(crbug.com/1320340): Description needed for translation
83
+ * @description TODO(crbug.com/1320340): Description needed for translation
88
84
  */
89
85
  customCursorIntersectsViewport:
90
86
  'Custom cursors with size greater than 32x32 DIP intersecting native UI is deprecated and will be removed.',
91
87
  /**
92
- *@description This message is shown when the example deprecated feature is used
88
+ * @description This message is shown when the example deprecated feature is used
93
89
  */
94
90
  deprecationExample: 'This is an example of a translated deprecation issue message.',
95
91
  /**
96
- *@description This warning occurs when a script modifies `document.domain`
92
+ * @description This warning occurs when a script modifies `document.domain`
97
93
  * without having set on `Origin-Agent-Cluster` http header. In other
98
94
  * words, when a script relies on the default behaviour of
99
95
  * `Origin-Agent-Cluster` when setting document.domain.
@@ -101,175 +97,121 @@ const UIStrings = {
101
97
  documentDomainSettingWithoutOriginAgentClusterHeader:
102
98
  '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.',
103
99
  /**
104
- *@description Warning displayed to developers when the non-standard `Event.path` API is used to notify them that this API is deprecated.
100
+ * @description Warning displayed to developers when the non-standard `Event.path` API is used to notify them that this API is deprecated.
105
101
  */
106
102
  eventPath: '`Event.path` is deprecated and will be removed. Please use `Event.composedPath()` instead.',
107
103
  /**
108
- *@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.
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.
109
105
  */
110
106
  geolocationInsecureOrigin:
111
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.',
112
108
  /**
113
- *@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.
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.
114
110
  */
115
111
  geolocationInsecureOriginDeprecatedNotRemoved:
116
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.',
117
113
  /**
118
- *@description TODO(crbug.com/1318858): Description needed for translation
114
+ * @description TODO(crbug.com/1318858): Description needed for translation
119
115
  */
120
116
  getUserMediaInsecureOrigin:
121
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.',
122
118
  /**
123
- *@description TODO(crbug.com/1320342): Description needed for translation
119
+ * @description TODO(crbug.com/1320342): Description needed for translation
124
120
  */
125
121
  hostCandidateAttributeGetter:
126
122
  '`RTCPeerConnectionIceErrorEvent.hostCandidate` is deprecated. Please use `RTCPeerConnectionIceErrorEvent.address` or `RTCPeerConnectionIceErrorEvent.port` instead.',
127
123
  /**
128
- *@description TODO(crbug.com/1320343): Description needed for translation
124
+ * @description TODO(crbug.com/1320343): Description needed for translation
129
125
  */
130
126
  insecurePrivateNetworkSubresourceRequest:
131
127
  '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.',
132
128
  /**
133
- *@description A deprecation warning shown in the DevTools Issues tab.
134
- * It's shown when a video conferencing website attempts to turn off
135
- * CPU overuse detection with a non-standard API. CPU overuse
136
- * detection is used to adjust video quality based on available CPU
137
- * resources.
138
- */
139
- legacyConstraintGoogCpuOveruseDetection:
140
- 'CPU overuse detection is enabled-by-default and the ability to disable it using `googCpuOveruseDetection` will soon be removed. Please stop using this legacy constraint.',
141
- /**
142
- *@description A deprecation warning shown in the DevTools Issues tab.
129
+ * @description A deprecation warning shown in the DevTools Issues tab.
143
130
  * It's shown when a video conferencing website attempts to disable
144
131
  * use of IPv6 addresses with a non-standard API.
145
132
  */
146
133
  legacyConstraintGoogIPv6:
147
134
  'IPv6 is enabled-by-default and the ability to disable it using `googIPv6` will soon be removed. Please stop using this legacy constraint.',
148
135
  /**
149
- *@description A deprecation warning shown in the DevTools Issues tab.
150
- * It's shown when a video conferencing website attempts to adjust
151
- * bitrate settings for screeen sharing with a non-standard API.
152
- */
153
- legacyConstraintGoogScreencastMinBitrate:
154
- 'Screencast min bitrate is now set to 100 kbps by default and `googScreencastMinBitrate` will soon be ignored in favor of this new default. Please stop using this legacy constraint.',
155
- /**
156
- *@description A deprecation warning shown in the DevTools Issues tab.
157
- * It's shown when a video conferencing website attempts to change the
158
- * default settings for how the browser should act when bitrate is
159
- * low.
160
- */
161
- legacyConstraintGoogSuspendBelowMinBitrate:
162
- 'Support for the `googSuspendBelowMinBitrate` constraint is about to be removed. Please stop using this legacy constraint.',
163
- /**
164
- *@description TODO(crbug.com/1318865): Description needed for translation
136
+ * @description TODO(crbug.com/1318865): Description needed for translation
165
137
  */
166
138
  localCSSFileExtensionRejected:
167
139
  'CSS cannot be loaded from `file:` URLs unless they end in a `.css` file extension.',
168
140
  /**
169
- *@description TODO(crbug.com/1320344): Description needed for translation
141
+ * @description TODO(crbug.com/1320344): Description needed for translation
170
142
  */
171
143
  mediaElementAudioSourceNode:
172
144
  'Creating a `MediaElementAudioSourceNode` on an `OfflineAudioContext` is deprecated and will be removed.',
173
145
  /**
174
- *@description TODO(crbug.com/1320345): Description needed for translation
146
+ * @description TODO(crbug.com/1320345): Description needed for translation
175
147
  */
176
148
  mediaSourceAbortRemove:
177
149
  '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 instead await `updateend`. `abort()` is intended to only abort an asynchronous media append or reset parser state.',
178
150
  /**
179
- *@description TODO(crbug.com/1320346): Description needed for translation
151
+ * @description TODO(crbug.com/1320346): Description needed for translation
180
152
  */
181
153
  mediaSourceDurationTruncatingBuffered:
182
154
  '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`.',
183
155
  /**
184
- *@description TODO(crbug.com/1320347): Description needed for translation
156
+ * @description TODO(crbug.com/1320347): Description needed for translation
185
157
  */
186
158
  noSysexWebMIDIWithoutPermission:
187
159
  'Web MIDI will ask a permission to use even if the sysex is not specified in the `MIDIOptions`.',
188
160
  /**
189
- *@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.
161
+ * @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.
190
162
  */
191
163
  notificationInsecureOrigin:
192
164
  '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.',
193
165
  /**
194
- *@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.
166
+ * @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.
195
167
  */
196
168
  notificationPermissionRequestedIframe:
197
169
  '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.',
198
170
  /**
199
- *@description TODO(crbug.com/1318867): Description needed for translation
171
+ * @description TODO(crbug.com/1318867): Description needed for translation
200
172
  */
201
173
  obsoleteWebRtcCipherSuite:
202
174
  'Your partner is negotiating an obsolete (D)TLS version. Please check with your partner to have this fixed.',
203
175
  /**
204
- *@description TODO(crbug.com/1320349): Description needed for translation
176
+ * @description TODO(crbug.com/1320349): Description needed for translation
205
177
  */
206
178
  paymentRequestBasicCard: 'The `basic-card` payment method is deprecated and will be removed.',
207
179
  /**
208
- *@description TODO(crbug.com/1320350): Description needed for translation
180
+ * @description TODO(crbug.com/1320350): Description needed for translation
209
181
  */
210
182
  paymentRequestShowWithoutGesture:
211
183
  'Calling `PaymentRequest.show()` without user activation is deprecated and will be removed.',
212
184
  /**
213
- *@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.
185
+ * @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.
214
186
  */
215
187
  pictureSourceSrc:
216
188
  '`<source src>` with a `<picture>` parent is invalid and therefore ignored. Please use `<source srcset>` instead.',
217
189
  /**
218
- *@description Warning displayed to developers when the vendor-prefixed method is used rather than the equivalent unprefixed method.
219
- */
220
- prefixedCancelAnimationFrame:
221
- '`webkitCancelAnimationFrame` is vendor-specific. Please use the standard `cancelAnimationFrame` instead.',
222
- /**
223
- *@description Warning displayed to developers when the vendor-prefixed method is used rather than the equivalent unprefixed method.
190
+ * @description Warning displayed to developers when the vendor-prefixed method is used rather than the equivalent unprefixed method.
191
+ * Both placeholders are Web API functions (single words).
192
+ * @example {webkitCancelAnimationFrame} PH1
193
+ * @example {cancelAnimationFrame} PH2
224
194
  */
225
- prefixedRequestAnimationFrame:
226
- '`webkitRequestAnimationFrame` is vendor-specific. Please use the standard `requestAnimationFrame` instead.',
195
+ vendorSpecificApi: '{PH1} is vendor-specific. Please use the standard {PH2} instead.',
227
196
  /**
228
- *@description TODO(crbug.com/1320351): Description needed for translation
197
+ * @description TODO(crbug.com/1320351): Description needed for translation
229
198
  */
230
199
  prefixedStorageInfo:
231
200
  '`window.webkitStorageInfo` is deprecated. Please use `navigator.webkitTemporaryStorage` or `navigator.webkitPersistentStorage` instead.',
232
201
  /**
233
- *@description TODO(crbug.com/1320352): Description needed for translation
234
- */
235
- prefixedVideoDisplayingFullscreen:
236
- '`HTMLVideoElement.webkitDisplayingFullscreen` is deprecated. Please use `Document.fullscreenElement` instead.',
237
- /**
238
- *@description TODO(crbug.com/1320353): Description needed for translation
239
- */
240
- prefixedVideoEnterFullScreen:
241
- '`HTMLVideoElement.webkitEnterFullScreen()` is deprecated. Please use `Element.requestFullscreen()` instead.',
242
- /**
243
- *@description TODO(crbug.com/1320353): Description needed for translation
244
- */
245
- prefixedVideoEnterFullscreen:
246
- '`HTMLVideoElement.webkitEnterFullscreen()` is deprecated. Please use `Element.requestFullscreen()` instead.',
247
- /**
248
- *@description TODO(crbug.com/1320354): Description needed for translation
249
- */
250
- prefixedVideoExitFullScreen:
251
- '`HTMLVideoElement.webkitExitFullsSreen()` is deprecated. Please use `Document.exitFullscreen()` instead.',
252
- /**
253
- *@description TODO(crbug.com/1320354): Description needed for translation
254
- */
255
- prefixedVideoExitFullscreen:
256
- '`HTMLVideoElement.webkitExitFullscreen()` is deprecated. Please use `Document.exitFullscreen()` instead.',
257
- /**
258
- *@description TODO(crbug.com/1320355): Description needed for translation
202
+ * @description Standard message when one web API is deprecated in favor of another. Both
203
+ * placeholders are always web API functions.
204
+ * @example {HTMLVideoElement.webkitDisplayingFullscreen} PH1
205
+ * @example {Document.fullscreenElement} PH2
259
206
  */
260
- prefixedVideoSupportsFullscreen:
261
- '`HTMLVideoElement.webkitSupportsFullscreen` is deprecated. Please use `Document.fullscreenEnabled` instead.',
207
+ deprecatedWithReplacement: '{PH1} is deprecated. Please use {PH2} instead.',
262
208
  /**
263
- *@description TODO(crbug.com/1320356): Description needed for translation
264
- */
265
- rangeExpand: '`Range.expand()` is deprecated. Please use `Selection.modify()` instead.',
266
- /**
267
- *@description TODO(crbug.com/1320357): Description needed for translation
209
+ * @description TODO(crbug.com/1320357): Description needed for translation
268
210
  */
269
211
  requestedSubresourceWithEmbeddedCredentials:
270
212
  'Subresource requests whose URLs contain embedded credentials (e.g. `https://user:pass@host/`) are blocked.',
271
213
  /**
272
- *@description A deprecation warning shown in the DevTools Issues tab.
214
+ * @description A deprecation warning shown in the DevTools Issues tab.
273
215
  * It's shown when a video conferencing website attempts to use a
274
216
  * non-standard crypto method when performing a handshake to set up a
275
217
  * connection with another endpoint.
@@ -277,7 +219,7 @@ const UIStrings = {
277
219
  rtcConstraintEnableDtlsSrtpFalse:
278
220
  '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.',
279
221
  /**
280
- *@description A deprecation warning shown in the DevTools Issues tab.
222
+ * @description A deprecation warning shown in the DevTools Issues tab.
281
223
  * It's shown when a video conferencing website uses a non-standard
282
224
  * API for controlling the crypto method used, but is not having an
283
225
  * effect because the desired behavior is already enabled-by-default.
@@ -285,7 +227,7 @@ const UIStrings = {
285
227
  rtcConstraintEnableDtlsSrtpTrue:
286
228
  '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.',
287
229
  /**
288
- *@description A deprecation warning shown in the DevTools Issues tab.
230
+ * @description A deprecation warning shown in the DevTools Issues tab.
289
231
  * The `Session Description Protocol`, or `SDP` for short, is a
290
232
  * protocol used by video conferencing websites to establish the
291
233
  * number of audio and/or video streams to send and/or receive. This
@@ -297,17 +239,7 @@ const UIStrings = {
297
239
  rtcPeerConnectionComplexPlanBSdpUsingDefaultSdpSemantics:
298
240
  '`Complex Plan B SDP` detected. This dialect of the `Session Description Protocol` is no longer supported. Please use `Unified Plan SDP` instead.',
299
241
  /**
300
- *@description A deprecation warning shown in the DevTools Issues tab.
301
- * It's shown when a video conferencing website uses a non-standard
302
- * version of an API to exchange an `offer` or an `answer`. `Offers`
303
- * and `answers` are exchanged between endpoints in order to configure
304
- * what media should be sent and/or received. The app should make use
305
- * of the standard API instead, which will have the desired effect.
306
- */
307
- rtcPeerConnectionLegacyCreateWithMediaConstraints:
308
- 'The `mediaConstraints` version of `RTCOfferOptions/RTCAnswerOptions` are deprecated and will soon be removed, please migrate to the promise-based `createOffer`/`createAnswer` instead.',
309
- /**
310
- *@description A deprecation warning shown in the DevTools Issues tab.
242
+ * @description A deprecation warning shown in the DevTools Issues tab.
311
243
  * The `Session Description Protocol`, or `SDP` for short, is a
312
244
  * protocol used by video conferencing websites to establish the
313
245
  * number of audio and/or video streams to send and/or receive. This
@@ -319,13 +251,13 @@ const UIStrings = {
319
251
  rtcPeerConnectionSdpSemanticsPlanB:
320
252
  '`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.',
321
253
  /**
322
- *@description A deprecation warning shown in the DevTools Issues tab.
254
+ * @description A deprecation warning shown in the DevTools Issues tab.
323
255
  * It's shown then a video conferencing website attempts to use the
324
256
  * `RTCP MUX` policy.
325
257
  */
326
258
  rtcpMuxPolicyNegotiate: 'The `rtcpMuxPolicy` option is deprecated and will be removed.',
327
259
  /**
328
- *@description A deprecation warning shown in the DevTools Issues tab.
260
+ * @description A deprecation warning shown in the DevTools Issues tab.
329
261
  * It's shown when a video conferencing website attempts to turn on or
330
262
  * off a feature that has been removed, `RTP data channels`.
331
263
  * `RTP data channels` are used to send and receive arbitrary data,
@@ -335,43 +267,33 @@ const UIStrings = {
335
267
  rtpDataChannel:
336
268
  '`RTP data channels` are no longer supported. The `RtpDataChannels` constraint is currently ignored, and may cause an error at a later date.',
337
269
  /**
338
- *@description TODO(crbug.com/1320361): Description needed for translation
339
- */
340
- selectionAddRangeIntersect:
341
- 'The behavior that `Selection.addRange()` merges existing Range and the specified Range was removed.',
342
- /**
343
- *@description TODO(crbug.com/1318878): Description needed for translation
270
+ * @description TODO(crbug.com/1318878): Description needed for translation
344
271
  */
345
272
  sharedArrayBufferConstructedWithoutIsolation:
346
273
  '`SharedArrayBuffer` will require cross-origin isolation. See https://developer.chrome.com/blog/enabling-shared-array-buffer/ for more details.',
347
274
  /**
348
- *@description A deprecation warning shown in the DevTools Issues tab.
275
+ * @description A deprecation warning shown in the DevTools Issues tab.
349
276
  * It's shown when the speech synthesis API is called before the page
350
277
  * receives a user activation.
351
278
  */
352
279
  textToSpeech_DisallowedByAutoplay:
353
280
  '`speechSynthesis.speak()` without user activation is deprecated and will be removed.',
354
281
  /**
355
- *@description TODO(crbug.com/1318879): Description needed for translation
282
+ * @description TODO(crbug.com/1318879): Description needed for translation
356
283
  */
357
284
  v8SharedArrayBufferConstructedInExtensionWithoutIsolation:
358
285
  'Extensions should opt into cross-origin isolation to continue using `SharedArrayBuffer`. See https://developer.chrome.com/docs/extensions/mv3/cross-origin-isolation/.',
359
286
  /**
360
- *@description TODO(crbug.com/1318880): Description needed for translation
361
- */
362
- webCodecsVideoFrameDefaultTimestamp:
363
- 'Constructing a `VideoFrame` without a timestamp is deprecated and support will be removed. Please provide a timestamp via `VideoFrameInit`.',
364
- /**
365
- *@description TODO(crbug.com/1318881): Description needed for translation
287
+ * @description TODO(crbug.com/1318881): Description needed for translation
366
288
  */
367
289
  xhrJSONEncodingDetection: 'UTF-16 is not supported by response json in `XMLHttpRequest`',
368
290
  /**
369
- *@description TODO(crbug.com/1318882): Description needed for translation
291
+ * @description TODO(crbug.com/1318882): Description needed for translation
370
292
  */
371
293
  xmlHttpRequestSynchronousInNonWorkerOutsideBeforeUnload:
372
294
  '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/.',
373
295
  /**
374
- *@description Warning displayed to developers that instead of using
296
+ * @description Warning displayed to developers that instead of using
375
297
  * `supportsSession()`, which returns a promise that resolves if
376
298
  * the XR session can be supported and rejects if not, they should
377
299
  * use `isSessionSupported()` which will return a promise which
@@ -440,10 +362,10 @@ export class DeprecationIssue extends Issue {
440
362
  milestone = 106;
441
363
  break;
442
364
  case Protocol.Audits.DeprecationIssueType.CrossOriginWindowAlert:
443
- messageFunction = i18nLazyString(UIStrings.crossOriginWindowAlert);
365
+ messageFunction = i18nLazyString(UIStrings.crossOriginWindowApi, {PH1: 'window.alert'});
444
366
  break;
445
367
  case Protocol.Audits.DeprecationIssueType.CrossOriginWindowConfirm:
446
- messageFunction = i18nLazyString(UIStrings.crossOriginWindowConfirm);
368
+ messageFunction = i18nLazyString(UIStrings.crossOriginWindowApi, {PH1: 'window.confirm'});
447
369
  break;
448
370
  case Protocol.Audits.DeprecationIssueType.CSSSelectorInternalMediaControlsOverlayCastButton:
449
371
  messageFunction = i18nLazyString(UIStrings.cssSelectorInternalMediaControlsOverlayCastButton);
@@ -485,22 +407,10 @@ export class DeprecationIssue extends Issue {
485
407
  feature = 5436853517811712;
486
408
  milestone = 92;
487
409
  break;
488
- case Protocol.Audits.DeprecationIssueType.LegacyConstraintGoogCpuOveruseDetection:
489
- messageFunction = i18nLazyString(UIStrings.legacyConstraintGoogCpuOveruseDetection);
490
- milestone = 103;
491
- break;
492
410
  case Protocol.Audits.DeprecationIssueType.LegacyConstraintGoogIPv6:
493
411
  messageFunction = i18nLazyString(UIStrings.legacyConstraintGoogIPv6);
494
412
  milestone = 103;
495
413
  break;
496
- case Protocol.Audits.DeprecationIssueType.LegacyConstraintGoogScreencastMinBitrate:
497
- messageFunction = i18nLazyString(UIStrings.legacyConstraintGoogScreencastMinBitrate);
498
- milestone = 103;
499
- break;
500
- case Protocol.Audits.DeprecationIssueType.LegacyConstraintGoogSuspendBelowMinBitrate:
501
- messageFunction = i18nLazyString(UIStrings.legacyConstraintGoogSuspendBelowMinBitrate);
502
- milestone = 103;
503
- break;
504
414
  case Protocol.Audits.DeprecationIssueType.LocalCSSFileExtensionRejected:
505
415
  messageFunction = i18nLazyString(UIStrings.localCSSFileExtensionRejected);
506
416
  milestone = 64;
@@ -548,34 +458,49 @@ export class DeprecationIssue extends Issue {
548
458
  messageFunction = i18nLazyString(UIStrings.pictureSourceSrc);
549
459
  break;
550
460
  case Protocol.Audits.DeprecationIssueType.PrefixedCancelAnimationFrame:
551
- messageFunction = i18nLazyString(UIStrings.prefixedCancelAnimationFrame);
461
+ messageFunction = i18nLazyString(
462
+ UIStrings.vendorSpecificApi, {PH1: 'webkitCancelAnimationFrame', PH2: 'cancelAnimationFrame'});
552
463
  break;
553
464
  case Protocol.Audits.DeprecationIssueType.PrefixedRequestAnimationFrame:
554
- messageFunction = i18nLazyString(UIStrings.prefixedRequestAnimationFrame);
465
+ messageFunction = i18nLazyString(
466
+ UIStrings.vendorSpecificApi, {PH1: 'webkitRequestAnimationFrame', PH2: 'requestAnimationFrame'});
555
467
  break;
556
468
  case Protocol.Audits.DeprecationIssueType.PrefixedStorageInfo:
557
469
  messageFunction = i18nLazyString(UIStrings.prefixedStorageInfo);
558
470
  break;
559
471
  case Protocol.Audits.DeprecationIssueType.PrefixedVideoDisplayingFullscreen:
560
- messageFunction = i18nLazyString(UIStrings.prefixedVideoDisplayingFullscreen);
472
+ messageFunction = i18nLazyString(
473
+ UIStrings.deprecatedWithReplacement,
474
+ {PH1: 'HTMLVideoElement.webkitDisplayingFullscreen', PH2: 'Document.fullscreenElement'});
561
475
  break;
562
476
  case Protocol.Audits.DeprecationIssueType.PrefixedVideoEnterFullScreen:
563
- messageFunction = i18nLazyString(UIStrings.prefixedVideoEnterFullScreen);
477
+ messageFunction = i18nLazyString(
478
+ UIStrings.deprecatedWithReplacement,
479
+ {PH1: 'HTMLVideoElement.webkitEnterFullScreen()', PH2: 'Element.requestFullscreen()'});
564
480
  break;
565
481
  case Protocol.Audits.DeprecationIssueType.PrefixedVideoEnterFullscreen:
566
- messageFunction = i18nLazyString(UIStrings.prefixedVideoEnterFullscreen);
482
+ messageFunction = i18nLazyString(
483
+ UIStrings.deprecatedWithReplacement,
484
+ {PH1: 'HTMLVideoElement.webkitEnterFullscreen()', PH2: 'Element.requestFullscreen()'});
567
485
  break;
568
486
  case Protocol.Audits.DeprecationIssueType.PrefixedVideoExitFullScreen:
569
- messageFunction = i18nLazyString(UIStrings.prefixedVideoExitFullScreen);
487
+ messageFunction = i18nLazyString(
488
+ UIStrings.deprecatedWithReplacement,
489
+ {PH1: 'HTMLVideoElement.webkitExitFullScreen()', PH2: 'Document.exitFullscreen()'});
570
490
  break;
571
491
  case Protocol.Audits.DeprecationIssueType.PrefixedVideoExitFullscreen:
572
- messageFunction = i18nLazyString(UIStrings.prefixedVideoExitFullscreen);
492
+ messageFunction = i18nLazyString(
493
+ UIStrings.deprecatedWithReplacement,
494
+ {PH1: 'HTMLVideoElement.webkitExitFullscreen()', PH2: 'Document.exitFullscreen()'});
573
495
  break;
574
496
  case Protocol.Audits.DeprecationIssueType.PrefixedVideoSupportsFullscreen:
575
- messageFunction = i18nLazyString(UIStrings.prefixedVideoSupportsFullscreen);
497
+ messageFunction = i18nLazyString(
498
+ UIStrings.deprecatedWithReplacement,
499
+ {PH1: 'HTMLVideoElement.webkitSupportsFullscreen', PH2: 'Document.fullscreenEnabled'});
576
500
  break;
577
501
  case Protocol.Audits.DeprecationIssueType.RangeExpand:
578
- messageFunction = i18nLazyString(UIStrings.rangeExpand);
502
+ messageFunction =
503
+ i18nLazyString(UIStrings.deprecatedWithReplacement, {PH1: 'Range.expand()', PH2: 'Selection.modify()'});
579
504
  break;
580
505
  case Protocol.Audits.DeprecationIssueType.RequestedSubresourceWithEmbeddedCredentials:
581
506
  messageFunction = i18nLazyString(UIStrings.requestedSubresourceWithEmbeddedCredentials);
@@ -593,10 +518,6 @@ export class DeprecationIssue extends Issue {
593
518
  messageFunction = i18nLazyString(UIStrings.rtcPeerConnectionComplexPlanBSdpUsingDefaultSdpSemantics);
594
519
  milestone = 72;
595
520
  break;
596
- case Protocol.Audits.DeprecationIssueType.RTCPeerConnectionLegacyCreateWithMediaConstraints:
597
- messageFunction = i18nLazyString(UIStrings.rtcPeerConnectionLegacyCreateWithMediaConstraints);
598
- milestone = 103;
599
- break;
600
521
  case Protocol.Audits.DeprecationIssueType.RTCPeerConnectionSdpSemanticsPlanB:
601
522
  messageFunction = i18nLazyString(UIStrings.rtcPeerConnectionSdpSemanticsPlanB);
602
523
  feature = 5823036655665152;
@@ -611,10 +532,6 @@ export class DeprecationIssue extends Issue {
611
532
  messageFunction = i18nLazyString(UIStrings.rtpDataChannel);
612
533
  milestone = 88;
613
534
  break;
614
- case Protocol.Audits.DeprecationIssueType.SelectionAddRangeIntersect:
615
- messageFunction = i18nLazyString(UIStrings.selectionAddRangeIntersect);
616
- feature = 6680566019653632;
617
- break;
618
535
  case Protocol.Audits.DeprecationIssueType.SharedArrayBufferConstructedWithoutIsolation:
619
536
  messageFunction = i18nLazyString(UIStrings.sharedArrayBufferConstructedWithoutIsolation);
620
537
  milestone = 106;
@@ -628,11 +545,6 @@ export class DeprecationIssue extends Issue {
628
545
  messageFunction = i18nLazyString(UIStrings.v8SharedArrayBufferConstructedInExtensionWithoutIsolation);
629
546
  milestone = 96;
630
547
  break;
631
- case Protocol.Audits.DeprecationIssueType.WebCodecsVideoFrameDefaultTimestamp:
632
- messageFunction = i18nLazyString(UIStrings.webCodecsVideoFrameDefaultTimestamp);
633
- feature = 5667793157488640;
634
- milestone = 99;
635
- break;
636
548
  case Protocol.Audits.DeprecationIssueType.XHRJSONEncodingDetection:
637
549
  messageFunction = i18nLazyString(UIStrings.xhrJSONEncodingDetection);
638
550
  milestone = 93;
@@ -5,6 +5,7 @@
5
5
  import * as Common from '../../core/common/common.js';
6
6
  import * as Host from '../../core/host/host.js';
7
7
  import * as i18n from '../../core/i18n/i18n.js';
8
+ import type * as Platform from '../../core/platform/platform.js';
8
9
  import type * as SDK from '../../core/sdk/sdk.js';
9
10
  import type * as Protocol from '../../generated/protocol.js';
10
11
 
@@ -204,14 +205,17 @@ export abstract class Issue<IssueCode extends string = string> {
204
205
  }
205
206
  }
206
207
 
207
- export function toZeroBasedLocation(location: Protocol.Audits.SourceCodeLocation|undefined):
208
- {url: string, scriptId: Protocol.Runtime.ScriptId|undefined, lineNumber: number, columnNumber: number|undefined}|
209
- undefined {
208
+ export function toZeroBasedLocation(location: Protocol.Audits.SourceCodeLocation|undefined): {
209
+ url: Platform.DevToolsPath.UrlString,
210
+ scriptId: Protocol.Runtime.ScriptId|undefined,
211
+ lineNumber: number,
212
+ columnNumber: number|undefined,
213
+ }|undefined {
210
214
  if (!location) {
211
215
  return undefined;
212
216
  }
213
217
  return {
214
- url: location.url,
218
+ url: location.url as Platform.DevToolsPath.UrlString,
215
219
  scriptId: location.scriptId,
216
220
  lineNumber: location.lineNumber,
217
221
  columnNumber: location.columnNumber === 0 ? undefined : location.columnNumber - 1,
@@ -0,0 +1,3 @@
1
+ # Ensure that Attribution Reporting API response headers are valid
2
+
3
+ This page tries to use the Attribution Reporting API but failed because a response header was invalid.
@@ -272,6 +272,26 @@ export class NetworkPersistenceManager extends Common.ObjectWrapper.ObjectWrappe
272
272
  (this.projectInternal as FileSystem).fileSystemPath(), '/', this.encodedPathFromUrl(url, ignoreInactive));
273
273
  }
274
274
 
275
+ private getHeadersUISourceCodeFromUrl(url: Platform.DevToolsPath.UrlString): Workspace.UISourceCode.UISourceCode
276
+ |null {
277
+ const fileUrlFromRequest = this.fileUrlFromNetworkUrl(url, /* ignoreNoActive */ true);
278
+ const folderUrlFromRequest =
279
+ Common.ParsedURL.ParsedURL.substring(fileUrlFromRequest, 0, fileUrlFromRequest.lastIndexOf('/'));
280
+ const headersFileUrl = Common.ParsedURL.ParsedURL.concatenate(folderUrlFromRequest, '/', HEADERS_FILENAME);
281
+ return Workspace.Workspace.WorkspaceImpl.instance().uiSourceCodeForURL(headersFileUrl);
282
+ }
283
+
284
+ async getOrCreateHeadersUISourceCodeFromUrl(url: Platform.DevToolsPath.UrlString):
285
+ Promise<Workspace.UISourceCode.UISourceCode|null> {
286
+ let uiSourceCode = this.getHeadersUISourceCodeFromUrl(url);
287
+ if (!uiSourceCode && this.projectInternal) {
288
+ const encodedFilePath = this.encodedPathFromUrl(url, /* ignoreNoActive */ true);
289
+ const encodedPath = Common.ParsedURL.ParsedURL.substring(encodedFilePath, 0, encodedFilePath.lastIndexOf('/'));
290
+ uiSourceCode = await this.projectInternal.createFile(encodedPath, HEADERS_FILENAME, '');
291
+ }
292
+ return uiSourceCode;
293
+ }
294
+
275
295
  private decodeLocalPathToUrlPath(path: string): string {
276
296
  try {
277
297
  return unescape(path);