chrome-devtools-frontend 1.0.1013367 → 1.0.1014853
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.
- package/.eslintignore +1 -0
- package/docs/workflows.md +28 -0
- package/front_end/core/i18n/locales/en-US.json +7 -1
- package/front_end/core/i18n/locales/en-XL.json +7 -1
- package/front_end/core/sdk/SourceMap.ts +88 -27
- package/front_end/models/issues_manager/DeprecationIssue.ts +24 -2
- package/front_end/models/javascript_metadata/DOMPinnedProperties.ts +4243 -0
- package/front_end/models/source_map_scopes/NamesResolver.ts +134 -36
- package/front_end/models/workspace/UISourceCode.ts +1 -1
- package/front_end/panels/lighthouse/LighthouseStartView.ts +1 -0
- package/front_end/panels/sources/TabbedEditorContainer.ts +16 -4
- package/front_end/ui/components/linear_memory_inspector/ValueInterpreterDisplay.ts +6 -6
- package/front_end/ui/components/linear_memory_inspector/valueInterpreterDisplay.css +8 -0
- package/package.json +1 -1
- package/scripts/devtools_paths.js +1 -1
- package/scripts/eslint_rules/lib/check_component_naming.js +14 -6
- package/scripts/eslint_rules/tests/check_component_naming_test.js +23 -0
- package/scripts/webidl-properties/config.js +345 -0
- package/scripts/webidl-properties/get-props.js +150 -0
- package/scripts/webidl-properties/index.js +90 -0
- package/scripts/webidl-properties/package.json +9 -0
- package/scripts/webidl-properties/tests.js +162 -0
- package/scripts/webidl-properties/util.js +81 -0
package/.eslintignore
CHANGED
@@ -7,6 +7,7 @@ front_end/.eslintrc.js
|
|
7
7
|
front_end/diff/diff_match_patch.js
|
8
8
|
front_end/generated/protocol.ts
|
9
9
|
front_end/javascript_metadata/NativeFunctions.js
|
10
|
+
front_end/javascript_metadata/DOMPinnedProperties.ts
|
10
11
|
front_end/third_party/
|
11
12
|
node_modules
|
12
13
|
scripts/migration/**/*.js
|
package/docs/workflows.md
CHANGED
@@ -246,6 +246,34 @@ third_party/blink/tools/run_web_tests.py -t Default http/tests/devtools
|
|
246
246
|
|
247
247
|
Usual [steps](https://chromium.googlesource.com/chromium/src/+/main/docs/contributing.md#creating-a-change) for creating a change work out of the box, when executed in the DevTools frontend repository.
|
248
248
|
|
249
|
+
Tips to create meaningful CL descriptions:
|
250
|
+
- Provide information on what was changed and why
|
251
|
+
- Provide before/after screenshots (if applicable)
|
252
|
+
- Provide relevant link to demo or example (if applicable)
|
253
|
+
- Provide link to design doc (if applicable)
|
254
|
+
|
255
|
+
Example CL, adapted from [Chromium guidelines](https://chromium.googlesource.com/chromium/src/+/main/docs/contributing.md#uploading-a-change-for-review):
|
256
|
+
|
257
|
+
```
|
258
|
+
Summary of change (one line)
|
259
|
+
|
260
|
+
Longer description of change addressing as appropriate:
|
261
|
+
what change was made, why the change is made, context if
|
262
|
+
it is part of many changes, description of previous behavior
|
263
|
+
and newly introduced differences, etc.
|
264
|
+
|
265
|
+
Long lines should be wrapped to 72 columns for easier log message
|
266
|
+
viewing in terminals.
|
267
|
+
|
268
|
+
How to test:
|
269
|
+
1. ..
|
270
|
+
2. ..
|
271
|
+
|
272
|
+
Before: https://page-to-before-screenshot.com/before
|
273
|
+
After: https://page-to-after-screenshot.com/after
|
274
|
+
Bug: 123456
|
275
|
+
|
276
|
+
```
|
249
277
|
## Managing dependencies
|
250
278
|
|
251
279
|
- To sync dependencies from Chromium to DevTools frontend, use `scripts/deps/roll_deps.py && npm run generate-protocol-resources`.
|
@@ -1412,6 +1412,9 @@
|
|
1412
1412
|
"models/issues_manager/DeprecationIssue.ts | hostCandidateAttributeGetter": {
|
1413
1413
|
"message": "RTCPeerConnectionIceErrorEvent.hostCandidate is deprecated. Please use RTCPeerConnectionIceErrorEvent.address or RTCPeerConnectionIceErrorEvent.port instead."
|
1414
1414
|
},
|
1415
|
+
"models/issues_manager/DeprecationIssue.ts | identityInCanMakePaymentEvent": {
|
1416
|
+
"message": "The merchant origin and arbitrary data from the canmakepayment service worker event are deprecated and will be removed: topOrigin, paymentRequestOrigin, methodData, modifiers."
|
1417
|
+
},
|
1415
1418
|
"models/issues_manager/DeprecationIssue.ts | insecurePrivateNetworkSubresourceRequest": {
|
1416
1419
|
"message": "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."
|
1417
1420
|
},
|
@@ -1442,11 +1445,14 @@
|
|
1442
1445
|
"models/issues_manager/DeprecationIssue.ts | obsoleteWebRtcCipherSuite": {
|
1443
1446
|
"message": "Your partner is negotiating an obsolete (D)TLS version. Please check with your partner to have this fixed."
|
1444
1447
|
},
|
1448
|
+
"models/issues_manager/DeprecationIssue.ts | openWebDatabaseInsecureContext": {
|
1449
|
+
"message": "WebSQL in non-secure contexts is deprecated and will be removed in M107. Please use Web Storage or Indexed Database."
|
1450
|
+
},
|
1445
1451
|
"models/issues_manager/DeprecationIssue.ts | pictureSourceSrc": {
|
1446
1452
|
"message": "<source src> with a <picture> parent is invalid and therefore ignored. Please use <source srcset> instead."
|
1447
1453
|
},
|
1448
1454
|
"models/issues_manager/DeprecationIssue.ts | prefixedStorageInfo": {
|
1449
|
-
"message": "window.webkitStorageInfo is deprecated. Please use
|
1455
|
+
"message": "window.webkitStorageInfo is deprecated. Please use standardized navigator.storage instead."
|
1450
1456
|
},
|
1451
1457
|
"models/issues_manager/DeprecationIssue.ts | requestedSubresourceWithEmbeddedCredentials": {
|
1452
1458
|
"message": "Subresource requests whose URLs contain embedded credentials (e.g. https://user:pass@host/) are blocked."
|
@@ -1412,6 +1412,9 @@
|
|
1412
1412
|
"models/issues_manager/DeprecationIssue.ts | hostCandidateAttributeGetter": {
|
1413
1413
|
"message": "RTCPeerConnectionIceErrorEvent.hostCandidate îś d̂ép̂ŕêćât́êd́. P̂ĺêáŝé ûśê RTCPeerConnectionIceErrorEvent.address ór̂ RTCPeerConnectionIceErrorEvent.port ín̂śt̂éâd́."
|
1414
1414
|
},
|
1415
|
+
"models/issues_manager/DeprecationIssue.ts | identityInCanMakePaymentEvent": {
|
1416
|
+
"message": "T̂h́ê ḿêŕĉh́âńt̂ ór̂íĝín̂ án̂d́ âŕb̂ít̂ŕâŕŷ d́ât́â f́r̂óm̂ t́ĥé canmakepayment ŝér̂v́îćê ẃôŕk̂ér̂ év̂én̂t́ âŕê d́êṕr̂éĉát̂éd̂ án̂d́ ŵíl̂ĺ b̂é r̂ém̂óv̂éd̂: topOrigin, paymentRequestOrigin, methodData, modifiers."
|
1417
|
+
},
|
1415
1418
|
"models/issues_manager/DeprecationIssue.ts | insecurePrivateNetworkSubresourceRequest": {
|
1416
1419
|
"message": "T̂h́ê ẃêb́ŝít̂é r̂éq̂úêśt̂éd̂ á ŝúb̂ŕêśôúr̂ćê f́r̂óm̂ á n̂ét̂ẃôŕk̂ t́ĥát̂ ít̂ ćôúl̂d́ ôńl̂ý âćĉéŝś b̂éĉáûśê óf̂ ít̂ś ûśêŕŝ' ṕr̂ív̂íl̂éĝéd̂ ńêt́ŵór̂ḱ p̂óŝít̂íôń. T̂h́êśê ŕêq́ûéŝt́ŝ éx̂ṕôśê ńôń-p̂úb̂ĺîć d̂év̂íĉéŝ án̂d́ ŝér̂v́êŕŝ t́ô t́ĥé îńt̂ér̂ńêt́, îńĉŕêáŝín̂ǵ t̂h́ê ŕîśk̂ óf̂ á ĉŕôśŝ-śît́ê ŕêq́ûéŝt́ f̂ór̂ǵêŕŷ (ĆŜŔF̂) át̂t́âćk̂, án̂d́/ôŕ îńf̂ór̂ḿât́îón̂ ĺêák̂áĝé. T̂ó m̂ít̂íĝát̂é t̂h́êśê ŕîśk̂ś, Ĉh́r̂óm̂é d̂ép̂ŕêćât́êś r̂éq̂úêśt̂ś t̂ó n̂ón̂-ṕûb́l̂íĉ śûb́r̂éŝóûŕĉéŝ ẃĥén̂ ín̂ít̂íât́êd́ f̂ŕôḿ n̂ón̂-śêćûŕê ćôńt̂éx̂t́ŝ, án̂d́ ŵíl̂ĺ ŝt́âŕt̂ b́l̂óĉḱîńĝ t́ĥém̂."
|
1417
1420
|
},
|
@@ -1442,11 +1445,14 @@
|
|
1442
1445
|
"models/issues_manager/DeprecationIssue.ts | obsoleteWebRtcCipherSuite": {
|
1443
1446
|
"message": "Ŷóûŕ p̂ár̂t́n̂ér̂ íŝ ńêǵôt́îát̂ín̂ǵ âń ôb́ŝól̂ét̂é (D̂)T́L̂Ś v̂ér̂śîón̂. Ṕl̂éâśê ćĥéĉḱ ŵít̂h́ ŷóûŕ p̂ár̂t́n̂ér̂ t́ô h́âv́ê t́ĥíŝ f́îx́êd́."
|
1444
1447
|
},
|
1448
|
+
"models/issues_manager/DeprecationIssue.ts | openWebDatabaseInsecureContext": {
|
1449
|
+
"message": "Ŵéb̂ŚQ̂Ĺ îń n̂ón̂-śêćûŕê ćôńt̂éx̂t́ŝ íŝ d́êṕr̂éĉát̂éd̂ án̂d́ ŵíl̂ĺ b̂é r̂ém̂óv̂éd̂ ín̂ Ḿ107. P̂ĺêáŝé ûśê Ẃêb́ Ŝt́ôŕâǵê ór̂ Ín̂d́êx́êd́ D̂át̂áb̂áŝé."
|
1450
|
+
},
|
1445
1451
|
"models/issues_manager/DeprecationIssue.ts | pictureSourceSrc": {
|
1446
1452
|
"message": "<source src> ŵít̂h́ â <picture> ṕâŕêńt̂ íŝ ín̂v́âĺîd́ âńd̂ t́ĥér̂éf̂ór̂é îǵn̂ór̂éd̂. Ṕl̂éâśê úŝé <source srcset> îńŝt́êád̂."
|
1447
1453
|
},
|
1448
1454
|
"models/issues_manager/DeprecationIssue.ts | prefixedStorageInfo": {
|
1449
|
-
"message": "window.webkitStorageInfo îś d̂ép̂ŕêćât́êd́. P̂ĺêáŝé ûśê
|
1455
|
+
"message": "window.webkitStorageInfo îś d̂ép̂ŕêćât́êd́. P̂ĺêáŝé ûśê śt̂án̂d́âŕd̂íẑéd̂ navigator.storage ín̂śt̂éâd́."
|
1450
1456
|
},
|
1451
1457
|
"models/issues_manager/DeprecationIssue.ts | requestedSubresourceWithEmbeddedCredentials": {
|
1452
1458
|
"message": "Ŝúb̂ŕêśôúr̂ćê ŕêq́ûéŝt́ŝ ẃĥóŝé ÛŔL̂ś ĉón̂t́âín̂ ém̂b́êd́d̂éd̂ ćr̂éd̂én̂t́îál̂ś (ê.ǵ. https://user:pass@host/) âŕê b́l̂óĉḱêd́."
|
@@ -66,6 +66,11 @@ export interface SourceMap {
|
|
66
66
|
TextUtils.ContentProvider.ContentProvider;
|
67
67
|
embeddedContentByURL(sourceURL: Platform.DevToolsPath.UrlString): string|null;
|
68
68
|
findEntry(lineNumber: number, columnNumber: number): SourceMapEntry|null;
|
69
|
+
findEntryRanges(lineNumber: number, columnNumber: number): {
|
70
|
+
range: TextUtils.TextRange.TextRange,
|
71
|
+
sourceRange: TextUtils.TextRange.TextRange,
|
72
|
+
sourceURL: Platform.DevToolsPath.UrlString,
|
73
|
+
}|null;
|
69
74
|
findReverseRanges(sourceURL: Platform.DevToolsPath.UrlString, lineNumber: number, columnNumber: number):
|
70
75
|
TextUtils.TextRange.TextRange[];
|
71
76
|
sourceLineMapping(sourceURL: Platform.DevToolsPath.UrlString, lineNumber: number, columnNumber: number):
|
@@ -233,6 +238,52 @@ export class TextSourceMap implements SourceMap {
|
|
233
238
|
return index ? mappings[index - 1] : null;
|
234
239
|
}
|
235
240
|
|
241
|
+
findEntryRanges(lineNumber: number, columnNumber: number): {
|
242
|
+
range: TextUtils.TextRange.TextRange,
|
243
|
+
sourceRange: TextUtils.TextRange.TextRange,
|
244
|
+
sourceURL: Platform.DevToolsPath.UrlString,
|
245
|
+
}|null {
|
246
|
+
const mappings = this.mappings();
|
247
|
+
const index = Platform.ArrayUtilities.upperBound(
|
248
|
+
mappings, undefined, (unused, entry) => lineNumber - entry.lineNumber || columnNumber - entry.columnNumber);
|
249
|
+
if (!index) {
|
250
|
+
// If the line and column are preceding all the entries, then there is nothing to map.
|
251
|
+
return null;
|
252
|
+
}
|
253
|
+
const sourceURL = mappings[index].sourceURL;
|
254
|
+
if (!sourceURL) {
|
255
|
+
return null;
|
256
|
+
}
|
257
|
+
|
258
|
+
// Let us compute the range that contains the source position in the compiled code.
|
259
|
+
const endLine = index < mappings.length ? mappings[index].lineNumber : 2 ** 31 - 1;
|
260
|
+
const endColumn = index < mappings.length ? mappings[index].columnNumber : 2 ** 31 - 1;
|
261
|
+
const range = new TextUtils.TextRange.TextRange(
|
262
|
+
mappings[index - 1].lineNumber, mappings[index - 1].columnNumber, endLine, endColumn);
|
263
|
+
|
264
|
+
// Now try to find the corresponding token in the original code.
|
265
|
+
const reverseMappings = this.reversedMappings(sourceURL);
|
266
|
+
const startSourceLine = mappings[index - 1].sourceLineNumber;
|
267
|
+
const startSourceColumn = mappings[index - 1].sourceColumnNumber;
|
268
|
+
const endReverseIndex = Platform.ArrayUtilities.upperBound(
|
269
|
+
reverseMappings, undefined,
|
270
|
+
(unused, i) =>
|
271
|
+
startSourceLine - mappings[i].sourceLineNumber || startSourceColumn - mappings[i].sourceColumnNumber);
|
272
|
+
if (!endReverseIndex) {
|
273
|
+
return null;
|
274
|
+
}
|
275
|
+
const endSourceLine = endReverseIndex < reverseMappings.length ?
|
276
|
+
mappings[reverseMappings[endReverseIndex]].sourceLineNumber :
|
277
|
+
2 ** 31 - 1;
|
278
|
+
const endSourceColumn = endReverseIndex < reverseMappings.length ?
|
279
|
+
mappings[reverseMappings[endReverseIndex]].sourceColumnNumber :
|
280
|
+
2 ** 31 - 1;
|
281
|
+
|
282
|
+
const sourceRange =
|
283
|
+
new TextUtils.TextRange.TextRange(startSourceLine, startSourceColumn, endSourceLine, endSourceColumn);
|
284
|
+
return {range, sourceRange, sourceURL};
|
285
|
+
}
|
286
|
+
|
236
287
|
sourceLineMapping(sourceURL: Platform.DevToolsPath.UrlString, lineNumber: number, columnNumber: number):
|
237
288
|
SourceMapEntry|null {
|
238
289
|
const mappings = this.mappings();
|
@@ -315,42 +366,53 @@ export class TextSourceMap implements SourceMap {
|
|
315
366
|
}
|
316
367
|
|
317
368
|
mappings(): SourceMapEntry[] {
|
369
|
+
this.#ensureMappingsProcessed();
|
370
|
+
return this.#mappingsInternal ?? [];
|
371
|
+
}
|
372
|
+
|
373
|
+
private reversedMappings(sourceURL: Platform.DevToolsPath.UrlString): number[] {
|
374
|
+
this.#ensureMappingsProcessed();
|
375
|
+
return this.#sourceInfos.get(sourceURL)?.reverseMappings ?? [];
|
376
|
+
}
|
377
|
+
|
378
|
+
#ensureMappingsProcessed(): void {
|
318
379
|
if (this.#mappingsInternal === null) {
|
319
380
|
this.#mappingsInternal = [];
|
320
381
|
this.eachSection(this.parseMap.bind(this));
|
382
|
+
this.#computeReverseMappings(this.#mappingsInternal);
|
321
383
|
this.#json = null;
|
322
384
|
}
|
323
|
-
return this.#mappingsInternal;
|
324
385
|
}
|
325
386
|
|
326
|
-
|
327
|
-
const
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
387
|
+
#computeReverseMappings(mappings: SourceMapEntry[]): void {
|
388
|
+
const reverseMappingsPerUrl = new Map<Platform.DevToolsPath.UrlString, number[]>();
|
389
|
+
for (let i = 0; i < mappings.length; i++) {
|
390
|
+
const entryUrl = mappings[i].sourceURL;
|
391
|
+
if (!entryUrl) {
|
392
|
+
continue;
|
393
|
+
}
|
394
|
+
let reverseMap = reverseMappingsPerUrl.get(entryUrl);
|
395
|
+
if (!reverseMap) {
|
396
|
+
reverseMap = [];
|
397
|
+
reverseMappingsPerUrl.set(entryUrl, reverseMap);
|
398
|
+
}
|
399
|
+
reverseMap.push(i);
|
335
400
|
}
|
336
401
|
|
337
|
-
|
402
|
+
for (const [url, reverseMap] of reverseMappingsPerUrl.entries()) {
|
403
|
+
const info = this.#sourceInfos.get(url);
|
404
|
+
if (!info) {
|
405
|
+
continue;
|
406
|
+
}
|
407
|
+
reverseMap.sort(sourceMappingComparator);
|
408
|
+
info.reverseMappings = reverseMap;
|
409
|
+
}
|
338
410
|
|
339
411
|
function sourceMappingComparator(indexA: number, indexB: number): number {
|
340
412
|
const a = mappings[indexA];
|
341
413
|
const b = mappings[indexB];
|
342
|
-
|
343
|
-
|
344
|
-
}
|
345
|
-
if (a.sourceColumnNumber !== b.sourceColumnNumber) {
|
346
|
-
return a.sourceColumnNumber - b.sourceColumnNumber;
|
347
|
-
}
|
348
|
-
|
349
|
-
if (a.lineNumber !== b.lineNumber) {
|
350
|
-
return a.lineNumber - b.lineNumber;
|
351
|
-
}
|
352
|
-
|
353
|
-
return a.columnNumber - b.columnNumber;
|
414
|
+
return a.sourceLineNumber - b.sourceLineNumber || a.sourceColumnNumber - b.sourceColumnNumber ||
|
415
|
+
a.lineNumber - b.lineNumber || a.columnNumber - b.columnNumber;
|
354
416
|
}
|
355
417
|
}
|
356
418
|
|
@@ -392,7 +454,7 @@ export class TextSourceMap implements SourceMap {
|
|
392
454
|
if (this.#sourceInfos.has(url)) {
|
393
455
|
continue;
|
394
456
|
}
|
395
|
-
this.#sourceInfos.set(url, new TextSourceMap.SourceInfo(source
|
457
|
+
this.#sourceInfos.set(url, new TextSourceMap.SourceInfo(source ?? null));
|
396
458
|
sourcesList.push(url);
|
397
459
|
}
|
398
460
|
sourceMapToSourceList.set(sourceMap, sourcesList);
|
@@ -560,11 +622,10 @@ export namespace TextSourceMap {
|
|
560
622
|
|
561
623
|
export class SourceInfo {
|
562
624
|
content: string|null;
|
563
|
-
reverseMappings: number[]|null;
|
625
|
+
reverseMappings: number[]|null = null;
|
564
626
|
|
565
|
-
constructor(content: string|null
|
627
|
+
constructor(content: string|null) {
|
566
628
|
this.content = content;
|
567
|
-
this.reverseMappings = reverseMappings;
|
568
629
|
}
|
569
630
|
}
|
570
631
|
}
|
@@ -77,7 +77,9 @@ const UIStrings = {
|
|
77
77
|
*/
|
78
78
|
crossOriginWindowApi: 'Triggering {PH1} from cross origin iframes has been deprecated and will be removed in the future.',
|
79
79
|
/**
|
80
|
-
* @description
|
80
|
+
* @description Warning displayed to developers when they hide the Cast button
|
81
|
+
* on a video element using the deprecated CSS selector instead of using the
|
82
|
+
* disableRemotePlayback attribute on the element.
|
81
83
|
*/
|
82
84
|
cssSelectorInternalMediaControlsOverlayCastButton:
|
83
85
|
'The `disableRemotePlayback` attribute should be used in order to disable the default Cast integration instead of using `-internal-media-controls-overlay-cast-button` selector.',
|
@@ -117,6 +119,12 @@ const UIStrings = {
|
|
117
119
|
*/
|
118
120
|
hostCandidateAttributeGetter:
|
119
121
|
'`RTCPeerConnectionIceErrorEvent.hostCandidate` is deprecated. Please use `RTCPeerConnectionIceErrorEvent.address` or `RTCPeerConnectionIceErrorEvent.port` instead.',
|
122
|
+
/**
|
123
|
+
* @description A deprecation warning shown in the DevTools Issues tab,
|
124
|
+
* when a service worker reads one of the fields from an event named
|
125
|
+
* "canmakepayment".
|
126
|
+
*/
|
127
|
+
identityInCanMakePaymentEvent: 'The merchant origin and arbitrary data from the `canmakepayment` service worker event are deprecated and will be removed: `topOrigin`, `paymentRequestOrigin`, `methodData`, `modifiers`.',
|
120
128
|
/**
|
121
129
|
* @description TODO(crbug.com/1320343): Description needed for translation
|
122
130
|
*/
|
@@ -164,6 +172,11 @@ const UIStrings = {
|
|
164
172
|
*/
|
165
173
|
obsoleteWebRtcCipherSuite:
|
166
174
|
'Your partner is negotiating an obsolete (D)TLS version. Please check with your partner to have this fixed.',
|
175
|
+
/**
|
176
|
+
* @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.
|
177
|
+
*/
|
178
|
+
openWebDatabaseInsecureContext:
|
179
|
+
'WebSQL in non-secure contexts is deprecated and will be removed in M107. Please use Web Storage or Indexed Database.',
|
167
180
|
/**
|
168
181
|
* @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.
|
169
182
|
*/
|
@@ -180,7 +193,7 @@ const UIStrings = {
|
|
180
193
|
* @description Warning displayed to developers when `window.webkitStorageInfo` is used to notify that the API is deprecated.
|
181
194
|
*/
|
182
195
|
prefixedStorageInfo:
|
183
|
-
'`window.webkitStorageInfo` is deprecated. Please use
|
196
|
+
'`window.webkitStorageInfo` is deprecated. Please use standardized `navigator.storage` instead.',
|
184
197
|
/**
|
185
198
|
* @description Standard message when one web API is deprecated in favor of another. Both
|
186
199
|
* placeholders are always web API functions.
|
@@ -370,6 +383,10 @@ export class DeprecationIssue extends Issue {
|
|
370
383
|
case Protocol.Audits.DeprecationIssueType.HostCandidateAttributeGetter:
|
371
384
|
messageFunction = i18nLazyString(UIStrings.hostCandidateAttributeGetter);
|
372
385
|
break;
|
386
|
+
case Protocol.Audits.DeprecationIssueType.IdentityInCanMakePaymentEvent:
|
387
|
+
messageFunction = i18nLazyString(UIStrings.identityInCanMakePaymentEvent);
|
388
|
+
feature = 5190978431352832;
|
389
|
+
break;
|
373
390
|
case Protocol.Audits.DeprecationIssueType.InsecurePrivateNetworkSubresourceRequest:
|
374
391
|
messageFunction = i18nLazyString(UIStrings.insecurePrivateNetworkSubresourceRequest);
|
375
392
|
feature = 5436853517811712;
|
@@ -407,6 +424,11 @@ export class DeprecationIssue extends Issue {
|
|
407
424
|
messageFunction = i18nLazyString(UIStrings.obsoleteWebRtcCipherSuite);
|
408
425
|
milestone = 81;
|
409
426
|
break;
|
427
|
+
case Protocol.Audits.DeprecationIssueType.OpenWebDatabaseInsecureContext:
|
428
|
+
messageFunction = i18nLazyString(UIStrings.openWebDatabaseInsecureContext);
|
429
|
+
feature = 5175124599767040;
|
430
|
+
milestone = 105;
|
431
|
+
break;
|
410
432
|
case Protocol.Audits.DeprecationIssueType.PictureSourceSrc:
|
411
433
|
messageFunction = i18nLazyString(UIStrings.pictureSourceSrc);
|
412
434
|
break;
|