lighthouse 12.5.1 → 12.6.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.
- package/cli/run.js +1 -1
- package/cli/test/smokehouse/config/exclusions.js +2 -0
- package/cli/test/smokehouse/lib/concurrent-mapper.d.ts +3 -3
- package/core/audits/audit.d.ts +1 -1
- package/core/audits/audit.js +3 -2
- package/core/audits/bootup-time.d.ts +1 -1
- package/core/audits/bootup-time.js +3 -3
- package/core/audits/byte-efficiency/byte-efficiency-audit.js +1 -1
- package/core/audits/byte-efficiency/duplicated-javascript.js +1 -1
- package/core/audits/byte-efficiency/efficient-animated-content.js +1 -1
- package/core/audits/byte-efficiency/legacy-javascript.js +2 -3
- package/core/audits/byte-efficiency/modern-image-formats.js +1 -1
- package/core/audits/byte-efficiency/offscreen-images.js +4 -4
- package/core/audits/byte-efficiency/render-blocking-resources.js +4 -4
- package/core/audits/byte-efficiency/total-byte-weight.d.ts +1 -1
- package/core/audits/byte-efficiency/total-byte-weight.js +2 -2
- package/core/audits/byte-efficiency/unminified-css.js +1 -1
- package/core/audits/byte-efficiency/unminified-javascript.js +1 -1
- package/core/audits/byte-efficiency/unused-css-rules.js +2 -2
- package/core/audits/byte-efficiency/unused-javascript.js +1 -1
- package/core/audits/byte-efficiency/uses-long-cache-ttl.d.ts +1 -1
- package/core/audits/byte-efficiency/uses-long-cache-ttl.js +2 -2
- package/core/audits/byte-efficiency/uses-optimized-images.js +2 -2
- package/core/audits/byte-efficiency/uses-responsive-images.d.ts +1 -1
- package/core/audits/byte-efficiency/uses-responsive-images.js +1 -1
- package/core/audits/byte-efficiency/uses-text-compression.js +1 -1
- package/core/audits/clickjacking-mitigation.js +2 -2
- package/core/audits/critical-request-chains.js +3 -3
- package/core/audits/csp-xss.js +2 -2
- package/core/audits/diagnostics.js +3 -3
- package/core/audits/dobetterweb/charset.js +2 -2
- package/core/audits/dobetterweb/doctype.js +2 -2
- package/core/audits/dobetterweb/dom-size.d.ts +1 -1
- package/core/audits/dobetterweb/dom-size.js +3 -3
- package/core/audits/dobetterweb/uses-http2.js +2 -2
- package/core/audits/final-screenshot.js +2 -2
- package/core/audits/font-display.js +2 -2
- package/core/audits/has-hsts.js +2 -2
- package/core/audits/image-size-responsive.d.ts +3 -2
- package/core/audits/image-size-responsive.js +30 -4
- package/core/audits/insights/{use-cache-insight.d.ts → cache-insight.d.ts} +3 -3
- package/core/audits/insights/{use-cache-insight.js → cache-insight.js} +15 -13
- package/core/audits/insights/cls-culprits-insight.js +3 -3
- package/core/audits/insights/document-latency-insight.js +1 -1
- package/core/audits/insights/dom-size-insight.js +1 -1
- package/core/audits/insights/duplicated-javascript-insight.d.ts +13 -0
- package/core/audits/insights/duplicated-javascript-insight.js +36 -9
- package/core/audits/insights/font-display-insight.js +1 -1
- package/core/audits/insights/forced-reflow-insight.js +1 -1
- package/core/audits/insights/image-delivery-insight.js +1 -1
- package/core/audits/insights/insight-audit.d.ts +11 -9
- package/core/audits/insights/insight-audit.js +37 -35
- package/core/audits/insights/interaction-to-next-paint-insight.js +3 -6
- package/core/audits/insights/lcp-discovery-insight.js +6 -3
- package/core/audits/insights/lcp-phases-insight.js +3 -6
- package/core/audits/insights/legacy-javascript-insight.d.ts +23 -0
- package/core/audits/insights/legacy-javascript-insight.js +101 -0
- package/core/audits/insights/modern-http-insight.d.ts +11 -0
- package/core/audits/insights/modern-http-insight.js +53 -0
- package/core/audits/insights/network-dependency-tree-insight.d.ts +5 -0
- package/core/audits/insights/network-dependency-tree-insight.js +35 -13
- package/core/audits/insights/render-blocking-insight.js +1 -1
- package/core/audits/insights/slow-css-selector-insight.js +3 -1
- package/core/audits/insights/third-parties-insight.d.ts +3 -3
- package/core/audits/insights/third-parties-insight.js +28 -23
- package/core/audits/insights/viewport-insight.js +1 -1
- package/core/audits/is-on-https.js +2 -2
- package/core/audits/largest-contentful-paint-element.js +3 -3
- package/core/audits/layout-shifts.js +4 -4
- package/core/audits/lcp-lazy-loaded.js +1 -1
- package/core/audits/long-tasks.d.ts +1 -1
- package/core/audits/long-tasks.js +3 -3
- package/core/audits/main-thread-tasks.js +2 -2
- package/core/audits/mainthread-work-breakdown.d.ts +1 -1
- package/core/audits/mainthread-work-breakdown.js +2 -2
- package/core/audits/manual/manual-audit.d.ts +1 -1
- package/core/audits/metrics/cumulative-layout-shift.d.ts +1 -1
- package/core/audits/metrics/cumulative-layout-shift.js +2 -2
- package/core/audits/metrics/first-contentful-paint.js +3 -3
- package/core/audits/metrics/first-meaningful-paint.js +1 -1
- package/core/audits/metrics/interaction-to-next-paint.d.ts +1 -1
- package/core/audits/metrics/interaction-to-next-paint.js +2 -2
- package/core/audits/metrics/interactive.js +3 -3
- package/core/audits/metrics/largest-contentful-paint.js +3 -3
- package/core/audits/metrics/max-potential-fid.d.ts +1 -1
- package/core/audits/metrics/max-potential-fid.js +3 -3
- package/core/audits/metrics/speed-index.js +3 -3
- package/core/audits/metrics/total-blocking-time.js +3 -3
- package/core/audits/metrics.js +3 -3
- package/core/audits/network-requests.js +2 -2
- package/core/audits/network-rtt.js +2 -2
- package/core/audits/network-server-latency.js +2 -2
- package/core/audits/origin-isolation.js +2 -2
- package/core/audits/predictive-perf.js +3 -3
- package/core/audits/preload-fonts.js +2 -2
- package/core/audits/prioritize-lcp-image.js +3 -3
- package/core/audits/redirects.js +3 -3
- package/core/audits/resource-summary.js +2 -2
- package/core/audits/screenshot-thumbnails.js +2 -2
- package/core/audits/script-treemap-data.js +32 -2
- package/core/audits/seo/canonical.js +2 -2
- package/core/audits/seo/http-status-code.js +2 -2
- package/core/audits/seo/is-crawlable.js +2 -2
- package/core/audits/server-response-time.js +2 -2
- package/core/audits/third-party-cookies.js +1 -1
- package/core/audits/third-party-facades.js +2 -2
- package/core/audits/third-party-summary.js +2 -2
- package/core/audits/user-timings.d.ts +1 -1
- package/core/audits/user-timings.js +2 -2
- package/core/audits/uses-rel-preconnect.js +3 -3
- package/core/audits/uses-rel-preload.js +3 -3
- package/core/audits/valid-source-maps.js +2 -2
- package/core/audits/work-during-interaction.js +3 -3
- package/core/computed/critical-request-chains.d.ts +1 -1
- package/core/computed/document-urls.d.ts +4 -1
- package/core/computed/entity-classification.d.ts +1 -1
- package/core/computed/image-records.d.ts +1 -1
- package/core/computed/js-bundles.d.ts +1 -1
- package/core/computed/lcp-image-record.d.ts +1 -1
- package/core/computed/load-simulator.d.ts +1 -1
- package/core/computed/main-resource.d.ts +1 -1
- package/core/computed/main-thread-tasks.d.ts +1 -1
- package/core/computed/metrics/cumulative-layout-shift.d.ts +10 -1
- package/core/computed/metrics/first-contentful-paint-all-frames.d.ts +1 -1
- package/core/computed/metrics/first-contentful-paint.d.ts +1 -1
- package/core/computed/metrics/interactive.d.ts +1 -1
- package/core/computed/metrics/lantern-first-contentful-paint.d.ts +1 -1
- package/core/computed/metrics/lantern-interactive.d.ts +1 -1
- package/core/computed/metrics/lantern-largest-contentful-paint.d.ts +1 -1
- package/core/computed/metrics/lantern-max-potential-fid.d.ts +1 -1
- package/core/computed/metrics/lantern-speed-index.d.ts +1 -1
- package/core/computed/metrics/lantern-total-blocking-time.d.ts +1 -1
- package/core/computed/metrics/largest-contentful-paint-all-frames.d.ts +1 -1
- package/core/computed/metrics/largest-contentful-paint.d.ts +1 -1
- package/core/computed/metrics/lcp-breakdown.d.ts +5 -1
- package/core/computed/metrics/max-potential-fid.d.ts +1 -1
- package/core/computed/metrics/responsiveness.d.ts +1 -1
- package/core/computed/metrics/speed-index.d.ts +1 -1
- package/core/computed/metrics/time-to-first-byte.d.ts +1 -1
- package/core/computed/metrics/timing-summary.d.ts +4 -1
- package/core/computed/metrics/total-blocking-time.d.ts +1 -1
- package/core/computed/module-duplication.d.ts +5 -1
- package/core/computed/navigation-insights.d.ts +1 -1
- package/core/computed/network-analysis.d.ts +1 -1
- package/core/computed/network-records.d.ts +1 -1
- package/core/computed/page-dependency-graph.d.ts +1 -1
- package/core/computed/processed-navigation.d.ts +1 -1
- package/core/computed/processed-trace.d.ts +1 -1
- package/core/computed/resource-summary.d.ts +1 -1
- package/core/computed/screenshots.d.ts +4 -1
- package/core/computed/speedline.d.ts +1 -1
- package/core/computed/tbt-impact-tasks.d.ts +1 -1
- package/core/computed/trace-engine-result.d.ts +1 -1
- package/core/computed/unused-css.d.ts +1 -1
- package/core/computed/unused-javascript-summary.d.ts +1 -1
- package/core/computed/user-timings.d.ts +1 -1
- package/core/computed/viewport-meta.d.ts +1 -1
- package/core/config/default-config.js +11 -6
- package/core/config/experimental-config.js +3 -2
- package/core/gather/driver/network-monitor.d.ts +1 -1
- package/core/gather/driver/network.d.ts +1 -1
- package/core/gather/driver.d.ts +1 -1
- package/core/gather/gatherers/devtools-log.d.ts +1 -1
- package/core/gather/gatherers/dobetterweb/optimized-images.js +3 -10
- package/core/gather/gatherers/trace-elements.d.ts +3 -4
- package/core/gather/gatherers/trace-elements.js +6 -8
- package/core/gather/gatherers/trace.js +0 -3
- package/core/gather/navigation-runner.d.ts +1 -1
- package/core/gather/snapshot-runner.d.ts +1 -1
- package/core/gather/timespan-runner.d.ts +1 -1
- package/core/index.d.ts +6 -6
- package/core/lib/asset-saver.d.ts +1 -1
- package/core/lib/asset-saver.js +1 -1
- package/core/lib/bf-cache-strings.js +2 -0
- package/core/lib/deprecations-strings.d.ts +71 -76
- package/core/lib/deprecations-strings.js +22 -25
- package/core/lib/i18n/README.md +1 -1
- package/core/lib/i18n/i18n.d.ts +1 -1
- package/core/lib/i18n/i18n.js +4 -4
- package/core/lib/legacy-javascript/legacy-javascript.js +4 -11
- package/core/lib/legacy-javascript/package.json +14 -0
- package/core/lib/page-functions.d.ts +1 -1
- package/core/lib/stack-packs.js +1 -1
- package/core/lib/tracehouse/cpu-profile-model.d.ts +1 -1
- package/core/lib/tracehouse/main-thread-tasks.d.ts +3 -3
- package/core/lib/tracehouse/main-thread-tasks.js +8 -0
- package/core/lib/tracehouse/trace-processor.d.ts +1 -1
- package/core/lib/traces/metric-trace-events.d.ts +2 -2
- package/core/runner.js +2 -1
- package/core/scoring.d.ts +539 -3
- package/core/user-flow.d.ts +6 -6
- package/dist/report/bundle.esm.js +89 -19
- package/dist/report/flow.js +92 -22
- package/dist/report/standalone.js +89 -19
- package/flow-report/src/i18n/i18n.d.ts +6 -2
- package/package.json +17 -16
- package/readme.md +1 -1
- package/report/README.md +1 -1
- package/report/assets/styles.css +76 -9
- package/report/assets/templates.html +3 -1
- package/report/clients/standalone.js +6 -4
- package/report/renderer/category-renderer.d.ts +2 -2
- package/report/renderer/components.js +3 -9
- package/report/renderer/crc-details-renderer.d.ts +13 -31
- package/report/renderer/crc-details-renderer.js +49 -47
- package/report/renderer/details-renderer.d.ts +1 -1
- package/report/renderer/details-renderer.js +6 -0
- package/report/renderer/dom.js +7 -0
- package/report/renderer/features-util.d.ts +1 -1
- package/report/renderer/performance-category-renderer.d.ts +28 -2
- package/report/renderer/performance-category-renderer.js +121 -3
- package/report/renderer/report-utils.d.ts +3 -1
- package/report/renderer/report-utils.js +11 -4
- package/report/renderer/topbar-features.js +1 -9
- package/shared/localization/format.d.ts +1 -1
- package/shared/localization/locales/ar-XB.json +66 -6
- package/shared/localization/locales/ar.json +66 -6
- package/shared/localization/locales/bg.json +66 -6
- package/shared/localization/locales/ca.json +66 -6
- package/shared/localization/locales/cs.json +66 -6
- package/shared/localization/locales/da.json +66 -6
- package/shared/localization/locales/de.json +66 -6
- package/shared/localization/locales/el.json +66 -6
- package/shared/localization/locales/en-GB.json +66 -6
- package/shared/localization/locales/en-US.json +87 -36
- package/shared/localization/locales/en-XA.json +0 -6
- package/shared/localization/locales/en-XL.json +87 -36
- package/shared/localization/locales/es-419.json +66 -6
- package/shared/localization/locales/es.json +67 -7
- package/shared/localization/locales/fi.json +66 -6
- package/shared/localization/locales/fil.json +66 -6
- package/shared/localization/locales/fr.json +66 -6
- package/shared/localization/locales/he.json +66 -6
- package/shared/localization/locales/hi.json +66 -6
- package/shared/localization/locales/hr.json +66 -6
- package/shared/localization/locales/hu.json +66 -6
- package/shared/localization/locales/id.json +66 -6
- package/shared/localization/locales/it.json +67 -7
- package/shared/localization/locales/ja.json +66 -6
- package/shared/localization/locales/ko.json +66 -6
- package/shared/localization/locales/lt.json +66 -6
- package/shared/localization/locales/lv.json +66 -6
- package/shared/localization/locales/nl.json +66 -6
- package/shared/localization/locales/no.json +66 -6
- package/shared/localization/locales/pl.json +66 -6
- package/shared/localization/locales/pt-PT.json +66 -6
- package/shared/localization/locales/pt.json +67 -7
- package/shared/localization/locales/ro.json +66 -6
- package/shared/localization/locales/ru.json +66 -6
- package/shared/localization/locales/sk.json +66 -6
- package/shared/localization/locales/sl.json +66 -6
- package/shared/localization/locales/sr-Latn.json +66 -6
- package/shared/localization/locales/sr.json +66 -6
- package/shared/localization/locales/sv.json +66 -6
- package/shared/localization/locales/ta.json +69 -9
- package/shared/localization/locales/te.json +66 -6
- package/shared/localization/locales/th.json +66 -6
- package/shared/localization/locales/tr.json +66 -6
- package/shared/localization/locales/uk.json +66 -6
- package/shared/localization/locales/vi.json +66 -6
- package/shared/localization/locales/zh-HK.json +67 -7
- package/shared/localization/locales/zh-TW.json +67 -7
- package/shared/localization/locales/zh.json +66 -6
- package/tsconfig-base.json +1 -1
- package/tsconfig.json +1 -0
- package/types/artifacts.d.ts +0 -2
- package/types/internal/node.d.ts +0 -16
- package/types/lhr/audit-details.d.ts +33 -1
- package/types/lhr/treemap.d.ts +5 -1
|
@@ -5,11 +5,9 @@
|
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
|
-
* @fileoverview Determines optimized jpeg/webp filesizes for all same-origin and dataURI images
|
|
9
|
-
* running the images through canvas in the browser context.
|
|
8
|
+
* @fileoverview Determines optimized jpeg/webp filesizes for all same-origin and dataURI images
|
|
10
9
|
*/
|
|
11
10
|
|
|
12
|
-
|
|
13
11
|
import log from 'lighthouse-logger';
|
|
14
12
|
|
|
15
13
|
import BaseGatherer from '../../base-gatherer.js';
|
|
@@ -133,7 +131,7 @@ class OptimizedImages extends BaseGatherer {
|
|
|
133
131
|
const image = {failed: false, ...stats, ...record};
|
|
134
132
|
results.push(image);
|
|
135
133
|
} catch (err) {
|
|
136
|
-
log.warn('optimized-images', err.message);
|
|
134
|
+
log.warn('optimized-images', err.message, record.url);
|
|
137
135
|
|
|
138
136
|
// Track this with Sentry since these errors aren't surfaced anywhere else, but we don't
|
|
139
137
|
// want to tank the entire run due to a single image.
|
|
@@ -164,12 +162,7 @@ class OptimizedImages extends BaseGatherer {
|
|
|
164
162
|
.filterImageRequests(networkRecords)
|
|
165
163
|
.sort((a, b) => b.resourceSize - a.resourceSize);
|
|
166
164
|
|
|
167
|
-
|
|
168
|
-
const successfulResults = results.filter(result => !result.failed);
|
|
169
|
-
if (results.length && !successfulResults.length) {
|
|
170
|
-
throw new Error('All image optimizations failed');
|
|
171
|
-
}
|
|
172
|
-
return results;
|
|
165
|
+
return await this.computeOptimizedImages(context.driver.defaultSession, imageRecords);
|
|
173
166
|
}
|
|
174
167
|
}
|
|
175
168
|
|
|
@@ -34,11 +34,10 @@ declare class TraceElements extends BaseGatherer {
|
|
|
34
34
|
*
|
|
35
35
|
* @param {LH.Trace} trace
|
|
36
36
|
* @param {LH.Artifacts.TraceEngineResult['data']} traceEngineResult
|
|
37
|
-
* @param {LH.Artifacts.TraceEngineRootCauses} rootCauses
|
|
38
37
|
* @param {LH.Gatherer.Context} context
|
|
39
38
|
* @return {Promise<Array<{nodeId: number}>>}
|
|
40
39
|
*/
|
|
41
|
-
static getTopLayoutShifts(trace: LH.Trace, traceEngineResult: LH.Artifacts.TraceEngineResult["data"],
|
|
40
|
+
static getTopLayoutShifts(trace: LH.Trace, traceEngineResult: LH.Artifacts.TraceEngineResult["data"], context: LH.Gatherer.Context): Promise<Array<{
|
|
42
41
|
nodeId: number;
|
|
43
42
|
}>>;
|
|
44
43
|
/**
|
|
@@ -82,10 +81,10 @@ declare class TraceElements extends BaseGatherer {
|
|
|
82
81
|
*/
|
|
83
82
|
getNodeDetails(session: LH.Gatherer.ProtocolSession, backendNodeId: number): Promise<import("devtools-protocol").Protocol.Runtime.CallFunctionOnResponse | null>;
|
|
84
83
|
/**
|
|
85
|
-
* @param {LH.Gatherer.Context<'Trace'|'
|
|
84
|
+
* @param {LH.Gatherer.Context<'Trace'|'SourceMaps'>} context
|
|
86
85
|
* @return {Promise<LH.Artifacts.TraceElement[]>}
|
|
87
86
|
*/
|
|
88
|
-
getArtifact(context: LH.Gatherer.Context<"Trace" | "
|
|
87
|
+
getArtifact(context: LH.Gatherer.Context<"Trace" | "SourceMaps">): Promise<LH.Artifacts.TraceElement[]>;
|
|
89
88
|
}
|
|
90
89
|
import BaseGatherer from '../base-gatherer.js';
|
|
91
90
|
//# sourceMappingURL=trace-elements.d.ts.map
|
|
@@ -132,15 +132,15 @@ class TraceElements extends BaseGatherer {
|
|
|
132
132
|
/** @type {number[]} */
|
|
133
133
|
const nodeIds = [];
|
|
134
134
|
recursiveObjectEnumerate(insightSet.model, (val, key) => {
|
|
135
|
-
const keys = ['nodeId', 'node_id'];
|
|
135
|
+
const keys = ['nodeId', 'node_id', 'backendNodeId'];
|
|
136
136
|
if (typeof val === 'number' && keys.includes(key)) {
|
|
137
137
|
nodeIds.push(val);
|
|
138
138
|
}
|
|
139
139
|
}, new Set());
|
|
140
140
|
|
|
141
|
-
// TODO:
|
|
141
|
+
// TODO: handle digging into Map in recursiveObjectEnumerate.
|
|
142
142
|
for (const shift of insightSet.model.CLSCulprits.shifts.values()) {
|
|
143
|
-
nodeIds.push(...shift.unsizedImages);
|
|
143
|
+
nodeIds.push(...shift.unsizedImages.map(s => s.backendNodeId));
|
|
144
144
|
}
|
|
145
145
|
|
|
146
146
|
return [...new Set(nodeIds)].map(id => ({nodeId: id}));
|
|
@@ -204,11 +204,10 @@ class TraceElements extends BaseGatherer {
|
|
|
204
204
|
*
|
|
205
205
|
* @param {LH.Trace} trace
|
|
206
206
|
* @param {LH.Artifacts.TraceEngineResult['data']} traceEngineResult
|
|
207
|
-
* @param {LH.Artifacts.TraceEngineRootCauses} rootCauses
|
|
208
207
|
* @param {LH.Gatherer.Context} context
|
|
209
208
|
* @return {Promise<Array<{nodeId: number}>>}
|
|
210
209
|
*/
|
|
211
|
-
static async getTopLayoutShifts(trace, traceEngineResult,
|
|
210
|
+
static async getTopLayoutShifts(trace, traceEngineResult, context) {
|
|
212
211
|
const {impactByNodeId} = await CumulativeLayoutShift.request(trace, context);
|
|
213
212
|
const clusters = traceEngineResult.LayoutShifts.clusters ?? [];
|
|
214
213
|
const layoutShiftEvents =
|
|
@@ -380,7 +379,7 @@ class TraceElements extends BaseGatherer {
|
|
|
380
379
|
}
|
|
381
380
|
|
|
382
381
|
/**
|
|
383
|
-
* @param {LH.Gatherer.Context<'Trace'|'
|
|
382
|
+
* @param {LH.Gatherer.Context<'Trace'|'SourceMaps'>} context
|
|
384
383
|
* @return {Promise<LH.Artifacts.TraceElement[]>}
|
|
385
384
|
*/
|
|
386
385
|
async getArtifact(context) {
|
|
@@ -391,7 +390,6 @@ class TraceElements extends BaseGatherer {
|
|
|
391
390
|
const settings = context.settings;
|
|
392
391
|
const traceEngineResult =
|
|
393
392
|
await TraceEngineResult.request({trace, settings, SourceMaps}, context);
|
|
394
|
-
const rootCauses = context.dependencies.RootCauses;
|
|
395
393
|
|
|
396
394
|
const processedTrace = await ProcessedTrace.request(trace, context);
|
|
397
395
|
const {mainThreadEvents} = processedTrace;
|
|
@@ -401,7 +399,7 @@ class TraceElements extends BaseGatherer {
|
|
|
401
399
|
traceEngineResult, navigationId);
|
|
402
400
|
const lcpNodeData = await TraceElements.getLcpElement(trace, context);
|
|
403
401
|
const shiftsData = await TraceElements.getTopLayoutShifts(
|
|
404
|
-
trace, traceEngineResult.data,
|
|
402
|
+
trace, traceEngineResult.data, context);
|
|
405
403
|
const animatedElementData = await this.getAnimatedElements(mainThreadEvents);
|
|
406
404
|
const responsivenessElementData = await TraceElements.getResponsivenessElement(trace, context);
|
|
407
405
|
|
|
@@ -56,9 +56,6 @@ class Trace extends BaseGatherer {
|
|
|
56
56
|
'disabled-by-default-devtools.timeline.frame',
|
|
57
57
|
'latencyInfo',
|
|
58
58
|
|
|
59
|
-
// For CLS root causes.
|
|
60
|
-
'disabled-by-default-devtools.timeline.invalidationTracking',
|
|
61
|
-
|
|
62
59
|
// Enhanced traces.
|
|
63
60
|
'disabled-by-default-devtools.target-rundown',
|
|
64
61
|
'disabled-by-default-devtools.v8-source-rundown-sources',
|
|
@@ -16,7 +16,7 @@ export type PhaseState = Omit<Parameters<typeof collectPhaseArtifacts>[0], "phas
|
|
|
16
16
|
export function navigationGather(page: LH.Puppeteer.Page | undefined, requestor: LH.NavigationRequestor | undefined, options?: {
|
|
17
17
|
config?: LH.Config;
|
|
18
18
|
flags?: LH.Flags;
|
|
19
|
-
}
|
|
19
|
+
}): Promise<LH.Gatherer.GatherResult>;
|
|
20
20
|
/**
|
|
21
21
|
* @param {{driver: Driver, resolvedConfig: LH.Config.ResolvedConfig, requestor: LH.NavigationRequestor}} args
|
|
22
22
|
* @return {Promise<{baseArtifacts: LH.BaseArtifacts}>}
|
package/core/index.d.ts
CHANGED
|
@@ -20,7 +20,7 @@ declare function lighthouse(url?: string | undefined, flags?: LH.Flags | undefin
|
|
|
20
20
|
* @param {LH.Puppeteer.Page} page
|
|
21
21
|
* @param {LH.UserFlow.Options} [options]
|
|
22
22
|
*/
|
|
23
|
-
export function startFlow(page: LH.Puppeteer.Page, options?: LH.UserFlow.Options
|
|
23
|
+
export function startFlow(page: LH.Puppeteer.Page, options?: LH.UserFlow.Options): Promise<UserFlow>;
|
|
24
24
|
/**
|
|
25
25
|
* @param {LH.Puppeteer.Page|undefined} page
|
|
26
26
|
* @param {LH.NavigationRequestor|undefined} requestor
|
|
@@ -30,7 +30,7 @@ export function startFlow(page: LH.Puppeteer.Page, options?: LH.UserFlow.Options
|
|
|
30
30
|
export function navigation(page: LH.Puppeteer.Page | undefined, requestor: LH.NavigationRequestor | undefined, options?: {
|
|
31
31
|
config?: LH.Config;
|
|
32
32
|
flags?: LH.Flags;
|
|
33
|
-
}
|
|
33
|
+
}): Promise<LH.RunnerResult | undefined>;
|
|
34
34
|
/**
|
|
35
35
|
* @param {LH.Puppeteer.Page} page
|
|
36
36
|
* @param {{config?: LH.Config, flags?: LH.Flags}} [options]
|
|
@@ -39,7 +39,7 @@ export function navigation(page: LH.Puppeteer.Page | undefined, requestor: LH.Na
|
|
|
39
39
|
export function startTimespan(page: LH.Puppeteer.Page, options?: {
|
|
40
40
|
config?: LH.Config;
|
|
41
41
|
flags?: LH.Flags;
|
|
42
|
-
}
|
|
42
|
+
}): Promise<{
|
|
43
43
|
endTimespan: () => Promise<LH.RunnerResult | undefined>;
|
|
44
44
|
}>;
|
|
45
45
|
/**
|
|
@@ -50,19 +50,19 @@ export function startTimespan(page: LH.Puppeteer.Page, options?: {
|
|
|
50
50
|
export function snapshot(page: LH.Puppeteer.Page, options?: {
|
|
51
51
|
config?: LH.Config;
|
|
52
52
|
flags?: LH.Flags;
|
|
53
|
-
}
|
|
53
|
+
}): Promise<LH.RunnerResult | undefined>;
|
|
54
54
|
/**
|
|
55
55
|
* @template {LH.Result|LH.FlowResult} R
|
|
56
56
|
* @param {R} result
|
|
57
57
|
* @param {[R] extends [LH.Result] ? LH.OutputMode : Exclude<LH.OutputMode, 'csv'>} [format]
|
|
58
58
|
* @return {string}
|
|
59
59
|
*/
|
|
60
|
-
export function generateReport<R extends LH.Result | LH.FlowResult>(result: R, format?:
|
|
60
|
+
export function generateReport<R extends LH.Result | LH.FlowResult>(result: R, format?: [R] extends [LH.Result] ? LH.OutputMode : Exclude<LH.OutputMode, "csv">): string;
|
|
61
61
|
/**
|
|
62
62
|
* @param {LH.UserFlow.FlowArtifacts} flowArtifacts
|
|
63
63
|
* @param {LH.Config} [config]
|
|
64
64
|
*/
|
|
65
|
-
export function auditFlowArtifacts(flowArtifacts: LH.UserFlow.FlowArtifacts, config?: LH.Config
|
|
65
|
+
export function auditFlowArtifacts(flowArtifacts: LH.UserFlow.FlowArtifacts, config?: LH.Config): Promise<{
|
|
66
66
|
steps: LH.FlowResult.Step[];
|
|
67
67
|
name: string;
|
|
68
68
|
}>;
|
|
@@ -60,7 +60,7 @@ export function saveAssets(artifacts: LH.Artifacts, audits: LH.Result["audits"],
|
|
|
60
60
|
* @param {LH.Result['audits']} [audits]
|
|
61
61
|
* @return {Promise<Array<PreparedAssets>>}
|
|
62
62
|
*/
|
|
63
|
-
export function prepareAssets(artifacts: LH.Artifacts, audits?:
|
|
63
|
+
export function prepareAssets(artifacts: LH.Artifacts, audits?: LH.Result["audits"]): Promise<Array<PreparedAssets>>;
|
|
64
64
|
/**
|
|
65
65
|
* Save a trace as JSON by streaming to disk at traceFilename.
|
|
66
66
|
* @param {LH.Trace} traceData
|
package/core/lib/asset-saver.js
CHANGED
|
@@ -263,7 +263,7 @@ async function saveArtifacts(artifacts, basePath, options = {}) {
|
|
|
263
263
|
}
|
|
264
264
|
|
|
265
265
|
// `devtoolsLogs` and `traces` are duplicate compat artifacts.
|
|
266
|
-
// We don't need to save them twice, so extract them here.
|
|
266
|
+
// We don't need to save them twice, so extract them here. TODO(v13): remove
|
|
267
267
|
const {
|
|
268
268
|
// eslint-disable-next-line no-unused-vars
|
|
269
269
|
traces,
|
|
@@ -703,6 +703,8 @@ const NotRestoredReasonDescription = {
|
|
|
703
703
|
WebViewMessageListenerInjected: {name: ('WebViewMessageListenerInjected')},
|
|
704
704
|
WebViewSafeBrowsingAllowlistChanged: {name: ('WebViewSafeBrowsingAllowlistChanged')},
|
|
705
705
|
WebViewDocumentStartJavascriptChanged: {name: ('WebViewDocumentStartJavascriptChanged')},
|
|
706
|
+
CacheControlNoStoreDeviceBoundSessionTerminated: {name: str_(UIStrings.cacheControlNoStore)},
|
|
707
|
+
CacheLimitPruned: {name: ('CacheLimitPruned')},
|
|
706
708
|
};
|
|
707
709
|
|
|
708
710
|
export {
|
|
@@ -15,10 +15,13 @@ export namespace UIStrings {
|
|
|
15
15
|
let GeolocationInsecureOrigin: string;
|
|
16
16
|
let GeolocationInsecureOriginDeprecatedNotRemoved: string;
|
|
17
17
|
let GetUserMediaInsecureOrigin: string;
|
|
18
|
+
let H1UserAgentFontSizeInSection: string;
|
|
18
19
|
let HostCandidateAttributeGetter: string;
|
|
20
|
+
let IdentityDigitalCredentials: string;
|
|
19
21
|
let IdentityInCanMakePaymentEvent: string;
|
|
20
22
|
let InsecurePrivateNetworkSubresourceRequest: string;
|
|
21
23
|
let InterestGroupDailyUpdateUrl: string;
|
|
24
|
+
let IntlV8BreakIterator: string;
|
|
22
25
|
let LocalCSSFileExtensionRejected: string;
|
|
23
26
|
let MediaSourceAbortRemove: string;
|
|
24
27
|
let MediaSourceDurationTruncatingBuffered: string;
|
|
@@ -51,11 +54,8 @@ export namespace UIStrings {
|
|
|
51
54
|
let TextToSpeech_DisallowedByAutoplay: string;
|
|
52
55
|
let UnloadHandler: string;
|
|
53
56
|
let V8SharedArrayBufferConstructedInExtensionWithoutIsolation: string;
|
|
54
|
-
let WebGPULimitMaxInterStageShaderComponents: string;
|
|
55
|
-
let WebSQL: string;
|
|
56
57
|
let XHRJSONEncodingDetection: string;
|
|
57
58
|
let XMLHttpRequestSynchronousInNonWorkerOutsideBeforeUnload: string;
|
|
58
|
-
let XRSupportsSession: string;
|
|
59
59
|
}
|
|
60
60
|
export namespace DEPRECATIONS_METADATA {
|
|
61
61
|
export namespace AuthorizationCoveredByWildcard_1 {
|
|
@@ -115,151 +115,146 @@ export namespace DEPRECATIONS_METADATA {
|
|
|
115
115
|
export { milestone_4 as milestone };
|
|
116
116
|
}
|
|
117
117
|
export { DataUrlInSvgUse_1 as DataUrlInSvgUse };
|
|
118
|
-
export namespace
|
|
118
|
+
export namespace H1UserAgentFontSizeInSection_1 {
|
|
119
119
|
let chromeStatusFeature_8: number;
|
|
120
120
|
export { chromeStatusFeature_8 as chromeStatusFeature };
|
|
121
|
+
let milestone_5: number;
|
|
122
|
+
export { milestone_5 as milestone };
|
|
121
123
|
}
|
|
122
|
-
export {
|
|
123
|
-
export namespace
|
|
124
|
+
export { H1UserAgentFontSizeInSection_1 as H1UserAgentFontSizeInSection };
|
|
125
|
+
export namespace IdentityDigitalCredentials_1 {
|
|
124
126
|
let chromeStatusFeature_9: number;
|
|
125
127
|
export { chromeStatusFeature_9 as chromeStatusFeature };
|
|
126
|
-
let milestone_5: number;
|
|
127
|
-
export { milestone_5 as milestone };
|
|
128
128
|
}
|
|
129
|
-
export {
|
|
130
|
-
export namespace
|
|
129
|
+
export { IdentityDigitalCredentials_1 as IdentityDigitalCredentials };
|
|
130
|
+
export namespace IdentityInCanMakePaymentEvent_1 {
|
|
131
|
+
let chromeStatusFeature_10: number;
|
|
132
|
+
export { chromeStatusFeature_10 as chromeStatusFeature };
|
|
133
|
+
}
|
|
134
|
+
export { IdentityInCanMakePaymentEvent_1 as IdentityInCanMakePaymentEvent };
|
|
135
|
+
export namespace InsecurePrivateNetworkSubresourceRequest_1 {
|
|
136
|
+
let chromeStatusFeature_11: number;
|
|
137
|
+
export { chromeStatusFeature_11 as chromeStatusFeature };
|
|
131
138
|
let milestone_6: number;
|
|
132
139
|
export { milestone_6 as milestone };
|
|
133
140
|
}
|
|
141
|
+
export { InsecurePrivateNetworkSubresourceRequest_1 as InsecurePrivateNetworkSubresourceRequest };
|
|
142
|
+
export namespace LocalCSSFileExtensionRejected_1 {
|
|
143
|
+
let milestone_7: number;
|
|
144
|
+
export { milestone_7 as milestone };
|
|
145
|
+
}
|
|
134
146
|
export { LocalCSSFileExtensionRejected_1 as LocalCSSFileExtensionRejected };
|
|
135
147
|
export namespace MediaSourceAbortRemove_1 {
|
|
136
|
-
let
|
|
137
|
-
export {
|
|
148
|
+
let chromeStatusFeature_12: number;
|
|
149
|
+
export { chromeStatusFeature_12 as chromeStatusFeature };
|
|
138
150
|
}
|
|
139
151
|
export { MediaSourceAbortRemove_1 as MediaSourceAbortRemove };
|
|
140
152
|
export namespace MediaSourceDurationTruncatingBuffered_1 {
|
|
141
|
-
let
|
|
142
|
-
export {
|
|
153
|
+
let chromeStatusFeature_13: number;
|
|
154
|
+
export { chromeStatusFeature_13 as chromeStatusFeature };
|
|
143
155
|
}
|
|
144
156
|
export { MediaSourceDurationTruncatingBuffered_1 as MediaSourceDurationTruncatingBuffered };
|
|
145
157
|
export namespace NoSysexWebMIDIWithoutPermission_1 {
|
|
146
|
-
let
|
|
147
|
-
export {
|
|
148
|
-
let
|
|
149
|
-
export {
|
|
158
|
+
let chromeStatusFeature_14: number;
|
|
159
|
+
export { chromeStatusFeature_14 as chromeStatusFeature };
|
|
160
|
+
let milestone_8: number;
|
|
161
|
+
export { milestone_8 as milestone };
|
|
150
162
|
}
|
|
151
163
|
export { NoSysexWebMIDIWithoutPermission_1 as NoSysexWebMIDIWithoutPermission };
|
|
152
164
|
export namespace NotificationPermissionRequestedIframe_1 {
|
|
153
|
-
let
|
|
154
|
-
export {
|
|
165
|
+
let chromeStatusFeature_15: number;
|
|
166
|
+
export { chromeStatusFeature_15 as chromeStatusFeature };
|
|
155
167
|
}
|
|
156
168
|
export { NotificationPermissionRequestedIframe_1 as NotificationPermissionRequestedIframe };
|
|
157
169
|
export namespace ObsoleteCreateImageBitmapImageOrientationNone_1 {
|
|
158
|
-
let
|
|
159
|
-
export {
|
|
170
|
+
let milestone_9: number;
|
|
171
|
+
export { milestone_9 as milestone };
|
|
160
172
|
}
|
|
161
173
|
export { ObsoleteCreateImageBitmapImageOrientationNone_1 as ObsoleteCreateImageBitmapImageOrientationNone };
|
|
162
174
|
export namespace ObsoleteWebRtcCipherSuite_1 {
|
|
163
|
-
let
|
|
164
|
-
export {
|
|
175
|
+
let milestone_10: number;
|
|
176
|
+
export { milestone_10 as milestone };
|
|
165
177
|
}
|
|
166
178
|
export { ObsoleteWebRtcCipherSuite_1 as ObsoleteWebRtcCipherSuite };
|
|
167
179
|
export namespace OverflowVisibleOnReplacedElement_1 {
|
|
168
|
-
let
|
|
169
|
-
export {
|
|
170
|
-
let
|
|
171
|
-
export {
|
|
180
|
+
let chromeStatusFeature_16: number;
|
|
181
|
+
export { chromeStatusFeature_16 as chromeStatusFeature };
|
|
182
|
+
let milestone_11: number;
|
|
183
|
+
export { milestone_11 as milestone };
|
|
172
184
|
}
|
|
173
185
|
export { OverflowVisibleOnReplacedElement_1 as OverflowVisibleOnReplacedElement };
|
|
174
186
|
export namespace PaymentInstruments_1 {
|
|
175
|
-
let
|
|
176
|
-
export {
|
|
187
|
+
let chromeStatusFeature_17: number;
|
|
188
|
+
export { chromeStatusFeature_17 as chromeStatusFeature };
|
|
177
189
|
}
|
|
178
190
|
export { PaymentInstruments_1 as PaymentInstruments };
|
|
179
191
|
export namespace PaymentRequestCSPViolation_1 {
|
|
180
|
-
let
|
|
181
|
-
export {
|
|
192
|
+
let chromeStatusFeature_18: number;
|
|
193
|
+
export { chromeStatusFeature_18 as chromeStatusFeature };
|
|
182
194
|
}
|
|
183
195
|
export { PaymentRequestCSPViolation_1 as PaymentRequestCSPViolation };
|
|
184
196
|
export namespace PersistentQuotaType_1 {
|
|
185
|
-
let
|
|
186
|
-
export {
|
|
187
|
-
let
|
|
188
|
-
export {
|
|
197
|
+
let chromeStatusFeature_19: number;
|
|
198
|
+
export { chromeStatusFeature_19 as chromeStatusFeature };
|
|
199
|
+
let milestone_12: number;
|
|
200
|
+
export { milestone_12 as milestone };
|
|
189
201
|
}
|
|
190
202
|
export { PersistentQuotaType_1 as PersistentQuotaType };
|
|
191
203
|
export namespace RTCConstraintEnableDtlsSrtpFalse_1 {
|
|
192
|
-
let
|
|
193
|
-
export {
|
|
204
|
+
let milestone_13: number;
|
|
205
|
+
export { milestone_13 as milestone };
|
|
194
206
|
}
|
|
195
207
|
export { RTCConstraintEnableDtlsSrtpFalse_1 as RTCConstraintEnableDtlsSrtpFalse };
|
|
196
208
|
export namespace RTCConstraintEnableDtlsSrtpTrue_1 {
|
|
197
|
-
let
|
|
198
|
-
export {
|
|
209
|
+
let milestone_14: number;
|
|
210
|
+
export { milestone_14 as milestone };
|
|
199
211
|
}
|
|
200
212
|
export { RTCConstraintEnableDtlsSrtpTrue_1 as RTCConstraintEnableDtlsSrtpTrue };
|
|
201
213
|
export namespace RTCPeerConnectionGetStatsLegacyNonCompliant_1 {
|
|
202
|
-
let
|
|
203
|
-
export {
|
|
204
|
-
let
|
|
205
|
-
export {
|
|
214
|
+
let chromeStatusFeature_20: number;
|
|
215
|
+
export { chromeStatusFeature_20 as chromeStatusFeature };
|
|
216
|
+
let milestone_15: number;
|
|
217
|
+
export { milestone_15 as milestone };
|
|
206
218
|
}
|
|
207
219
|
export { RTCPeerConnectionGetStatsLegacyNonCompliant_1 as RTCPeerConnectionGetStatsLegacyNonCompliant };
|
|
208
220
|
export namespace RequestedSubresourceWithEmbeddedCredentials_1 {
|
|
209
|
-
let
|
|
210
|
-
export {
|
|
221
|
+
let chromeStatusFeature_21: number;
|
|
222
|
+
export { chromeStatusFeature_21 as chromeStatusFeature };
|
|
211
223
|
}
|
|
212
224
|
export { RequestedSubresourceWithEmbeddedCredentials_1 as RequestedSubresourceWithEmbeddedCredentials };
|
|
213
225
|
export namespace RtcpMuxPolicyNegotiate_1 {
|
|
214
|
-
let
|
|
215
|
-
export {
|
|
216
|
-
let
|
|
217
|
-
export {
|
|
226
|
+
let chromeStatusFeature_22: number;
|
|
227
|
+
export { chromeStatusFeature_22 as chromeStatusFeature };
|
|
228
|
+
let milestone_16: number;
|
|
229
|
+
export { milestone_16 as milestone };
|
|
218
230
|
}
|
|
219
231
|
export { RtcpMuxPolicyNegotiate_1 as RtcpMuxPolicyNegotiate };
|
|
220
232
|
export namespace SharedArrayBufferConstructedWithoutIsolation_1 {
|
|
221
|
-
let
|
|
222
|
-
export {
|
|
233
|
+
let milestone_17: number;
|
|
234
|
+
export { milestone_17 as milestone };
|
|
223
235
|
}
|
|
224
236
|
export { SharedArrayBufferConstructedWithoutIsolation_1 as SharedArrayBufferConstructedWithoutIsolation };
|
|
225
237
|
export namespace TextToSpeech_DisallowedByAutoplay_1 {
|
|
226
|
-
let
|
|
227
|
-
export {
|
|
228
|
-
let
|
|
229
|
-
export {
|
|
238
|
+
let chromeStatusFeature_23: number;
|
|
239
|
+
export { chromeStatusFeature_23 as chromeStatusFeature };
|
|
240
|
+
let milestone_18: number;
|
|
241
|
+
export { milestone_18 as milestone };
|
|
230
242
|
}
|
|
231
243
|
export { TextToSpeech_DisallowedByAutoplay_1 as TextToSpeech_DisallowedByAutoplay };
|
|
232
244
|
export namespace UnloadHandler_1 {
|
|
233
|
-
let
|
|
234
|
-
export {
|
|
245
|
+
let chromeStatusFeature_24: number;
|
|
246
|
+
export { chromeStatusFeature_24 as chromeStatusFeature };
|
|
235
247
|
}
|
|
236
248
|
export { UnloadHandler_1 as UnloadHandler };
|
|
237
249
|
export namespace V8SharedArrayBufferConstructedInExtensionWithoutIsolation_1 {
|
|
238
|
-
let milestone_18: number;
|
|
239
|
-
export { milestone_18 as milestone };
|
|
240
|
-
}
|
|
241
|
-
export { V8SharedArrayBufferConstructedInExtensionWithoutIsolation_1 as V8SharedArrayBufferConstructedInExtensionWithoutIsolation };
|
|
242
|
-
export namespace WebGPULimitMaxInterStageShaderComponents_1 {
|
|
243
|
-
let chromeStatusFeature_23: number;
|
|
244
|
-
export { chromeStatusFeature_23 as chromeStatusFeature };
|
|
245
|
-
}
|
|
246
|
-
export { WebGPULimitMaxInterStageShaderComponents_1 as WebGPULimitMaxInterStageShaderComponents };
|
|
247
|
-
export namespace WebSQL_1 {
|
|
248
|
-
let chromeStatusFeature_24: number;
|
|
249
|
-
export { chromeStatusFeature_24 as chromeStatusFeature };
|
|
250
250
|
let milestone_19: number;
|
|
251
251
|
export { milestone_19 as milestone };
|
|
252
252
|
}
|
|
253
|
-
export {
|
|
253
|
+
export { V8SharedArrayBufferConstructedInExtensionWithoutIsolation_1 as V8SharedArrayBufferConstructedInExtensionWithoutIsolation };
|
|
254
254
|
export namespace XHRJSONEncodingDetection_1 {
|
|
255
255
|
let milestone_20: number;
|
|
256
256
|
export { milestone_20 as milestone };
|
|
257
257
|
}
|
|
258
258
|
export { XHRJSONEncodingDetection_1 as XHRJSONEncodingDetection };
|
|
259
|
-
export namespace XRSupportsSession_1 {
|
|
260
|
-
let milestone_21: number;
|
|
261
|
-
export { milestone_21 as milestone };
|
|
262
|
-
}
|
|
263
|
-
export { XRSupportsSession_1 as XRSupportsSession };
|
|
264
259
|
}
|
|
265
260
|
//# sourceMappingURL=deprecations-strings.d.ts.map
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
// Use of this source code is governed by a BSD-style license that can be
|
|
5
5
|
// found in the LICENSE file.
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
|
|
8
|
+
|
|
9
9
|
|
|
10
10
|
export const UIStrings = {
|
|
11
11
|
/**
|
|
@@ -72,10 +72,18 @@ export const UIStrings = {
|
|
|
72
72
|
* @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).
|
|
73
73
|
*/
|
|
74
74
|
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.",
|
|
75
|
+
/**
|
|
76
|
+
* @description This warning occurs when a site uses <h1> inside <article>, <aside>, <nav>, or <section>. It means the behavior (font size) may change in a future Chrome release, when some special rules are removed from the browser.
|
|
77
|
+
*/
|
|
78
|
+
H1UserAgentFontSizeInSection: "Found an <h1> tag within an <article>, <aside>, <nav>, or <section> which does not have a specified font-size. The size of this heading text will be changing in this browser in the near future. See https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Heading_Elements#specifying_a_uniform_font_size_for_h1 for more information.",
|
|
75
79
|
/**
|
|
76
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 equivalent information in the .address and .port fields instead.
|
|
77
81
|
*/
|
|
78
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 request for digital credentials API is formatted using a deprecated format.
|
|
85
|
+
*/
|
|
86
|
+
IdentityDigitalCredentials: "This format for the navigator.credentials.get() request for digital credentials is deprecated, please update your call to use the new format.",
|
|
79
87
|
/**
|
|
80
88
|
* @description A deprecation warning shown in the DevTools Issues tab, when a service worker reads one of the fields from an event named 'canmakepayment'.
|
|
81
89
|
*/
|
|
@@ -88,6 +96,10 @@ export const UIStrings = {
|
|
|
88
96
|
* @description This is a deprecated warning to developers that a field in a structure has been renamed.
|
|
89
97
|
*/
|
|
90
98
|
InterestGroupDailyUpdateUrl: "The `dailyUpdateUrl` field of `InterestGroups` passed to `joinAdInterestGroup()` has been renamed to `updateUrl`, to more accurately reflect its behavior.",
|
|
99
|
+
/**
|
|
100
|
+
* @description Warning displayed to developers that instead of calling the `Intl.v8BreakIterator` constructor, which is not a standard JavaScript API, use ECMA402 standard API Intl.Segmenter shipped in end of 2020 instead.
|
|
101
|
+
*/
|
|
102
|
+
IntlV8BreakIterator: "`Intl.v8BreakIterator` is deprecated. Please use `Intl.Segmenter` instead.",
|
|
91
103
|
/**
|
|
92
104
|
* @description This warning occurs when a stylesheet loaded from a local file directive does not end in the file type `.css`.
|
|
93
105
|
*/
|
|
@@ -115,7 +127,7 @@ export const UIStrings = {
|
|
|
115
127
|
/**
|
|
116
128
|
* @description Warning displayed to developers when CreateImageBitmap is used with the newly deprecated option imageOrientation: 'none'.
|
|
117
129
|
*/
|
|
118
|
-
ObsoleteCreateImageBitmapImageOrientationNone: "Option `imageOrientation: 'none'` in createImageBitmap is deprecated. Please use createImageBitmap with option \\{imageOrientation: 'from-image'\\} instead.",
|
|
130
|
+
ObsoleteCreateImageBitmapImageOrientationNone: "Option `imageOrientation: 'none'` in createImageBitmap is deprecated. Please use createImageBitmap with option '\\{imageOrientation: 'from-image'\\}' instead.",
|
|
119
131
|
/**
|
|
120
132
|
* @description This warning occurs when the WebRTC protocol attempts to negotiate a connection using an obsolete cipher and risks connection security.
|
|
121
133
|
*/
|
|
@@ -216,14 +228,6 @@ export const UIStrings = {
|
|
|
216
228
|
* @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.
|
|
217
229
|
*/
|
|
218
230
|
V8SharedArrayBufferConstructedInExtensionWithoutIsolation: "Extensions should opt into cross-origin isolation to continue using `SharedArrayBuffer`. See https://developer.chrome.com/docs/extensions/mv3/cross-origin-isolation/.",
|
|
219
|
-
/**
|
|
220
|
-
* @description This warning occurs when the website attempts to use the deprecated WebGPU limit `maxInterStageShaderComponents`.
|
|
221
|
-
*/
|
|
222
|
-
WebGPULimitMaxInterStageShaderComponents: "The WebGPU limit `maxInterStageShaderComponents` is deprecated, instead use the WebGPU limit `maxInterStageShaderVariables`.",
|
|
223
|
-
/**
|
|
224
|
-
* @description Warning displayed to developers when the Web SQL API is used to let them know this API is deprecated.
|
|
225
|
-
*/
|
|
226
|
-
WebSQL: "Web SQL is deprecated. Please use SQLite WebAssembly or Indexed Database",
|
|
227
231
|
/**
|
|
228
232
|
* @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.
|
|
229
233
|
*/
|
|
@@ -232,10 +236,6 @@ export const UIStrings = {
|
|
|
232
236
|
* @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.
|
|
233
237
|
*/
|
|
234
238
|
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/.",
|
|
235
|
-
/**
|
|
236
|
-
* @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.
|
|
237
|
-
*/
|
|
238
|
-
XRSupportsSession: "`supportsSession()` is deprecated. Please use `isSessionSupported()` and check the resolved boolean value instead.",
|
|
239
239
|
};
|
|
240
240
|
|
|
241
241
|
|
|
@@ -278,6 +278,13 @@ export const DEPRECATIONS_METADATA = {
|
|
|
278
278
|
"chromeStatusFeature": 5128825141198848,
|
|
279
279
|
"milestone": 119
|
|
280
280
|
},
|
|
281
|
+
"H1UserAgentFontSizeInSection": {
|
|
282
|
+
"chromeStatusFeature": 6192419898654720,
|
|
283
|
+
"milestone": 136
|
|
284
|
+
},
|
|
285
|
+
"IdentityDigitalCredentials": {
|
|
286
|
+
"chromeStatusFeature": 5166035265650688
|
|
287
|
+
},
|
|
281
288
|
"IdentityInCanMakePaymentEvent": {
|
|
282
289
|
"chromeStatusFeature": 5190978431352832
|
|
283
290
|
},
|
|
@@ -351,17 +358,7 @@ export const DEPRECATIONS_METADATA = {
|
|
|
351
358
|
"V8SharedArrayBufferConstructedInExtensionWithoutIsolation": {
|
|
352
359
|
"milestone": 96
|
|
353
360
|
},
|
|
354
|
-
"WebGPULimitMaxInterStageShaderComponents": {
|
|
355
|
-
"chromeStatusFeature": 4853767735083008
|
|
356
|
-
},
|
|
357
|
-
"WebSQL": {
|
|
358
|
-
"chromeStatusFeature": 5134293578285056,
|
|
359
|
-
"milestone": 115
|
|
360
|
-
},
|
|
361
361
|
"XHRJSONEncodingDetection": {
|
|
362
362
|
"milestone": 93
|
|
363
|
-
},
|
|
364
|
-
"XRSupportsSession": {
|
|
365
|
-
"milestone": 80
|
|
366
363
|
}
|
|
367
364
|
};
|
package/core/lib/i18n/README.md
CHANGED
|
@@ -220,7 +220,7 @@ When the `message` needs to be the same as another string but another property m
|
|
|
220
220
|
|
|
221
221
|
In Lighthouse, this is done by having a different `description` for the strings, which is then copied to `meaning` in `resolveMessageCollisions()`. `meaning` cannot be manually set.
|
|
222
222
|
|
|
223
|
-
For instance, the string "
|
|
223
|
+
For instance, the string "Est Savings" currently refers to both saved KiB and saved milliseconds in different audits. The string is defined twice, each with a different `description` describing the units being saved, in case some locales' translations will use a different word choice depending on the unit.
|
|
224
224
|
|
|
225
225
|
Internally, TC uses a message ID that's a hash of `message` and `meaning` to check for collisions. Somewhat confusingly, if two messages do have colliding IDs, then `message`, `meaning`, `description`, and `placeholders` are all required to match or an error is thrown. This is why all message properties could cause a collision but `meaning` is the only way to dedupe them.
|
|
226
226
|
|
package/core/lib/i18n/i18n.d.ts
CHANGED
|
@@ -71,7 +71,7 @@ export function lookupLocale(locales?: (string | string[]) | undefined, possible
|
|
|
71
71
|
* @param {string} filename
|
|
72
72
|
* @param {Record<string, string>=} fileStrings
|
|
73
73
|
*/
|
|
74
|
-
export function createIcuMessageFn(filename: string, fileStrings?: Record<string, string> | undefined): (message: string, values?: Record<string, string | number>
|
|
74
|
+
export function createIcuMessageFn(filename: string, fileStrings?: Record<string, string> | undefined): (message: string, values?: Record<string, string | number>) => LH.IcuMessage;
|
|
75
75
|
/**
|
|
76
76
|
* Returns true if the given value is a string or an LH.IcuMessage.
|
|
77
77
|
* @param {unknown} value
|