lighthouse 12.7.1 → 12.8.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/test/smokehouse/config/exclusions.js +3 -1
- package/cli/test/smokehouse/core-tests.js +4 -0
- package/core/audits/insights/modern-http-insight.js +1 -1
- package/core/audits/trusted-types-xss.d.ts +41 -0
- package/core/audits/trusted-types-xss.js +137 -0
- package/core/config/default-config.js +2 -0
- package/core/lib/tracehouse/main-thread-tasks.js +2 -2
- package/package.json +2 -2
- package/shared/localization/locales/ar-XB.json +9 -6
- package/shared/localization/locales/ar.json +9 -6
- package/shared/localization/locales/bg.json +9 -6
- package/shared/localization/locales/ca.json +9 -6
- package/shared/localization/locales/cs.json +9 -6
- package/shared/localization/locales/da.json +9 -6
- package/shared/localization/locales/de.json +9 -6
- package/shared/localization/locales/el.json +9 -6
- package/shared/localization/locales/en-GB.json +9 -6
- package/shared/localization/locales/en-US.json +26 -5
- package/shared/localization/locales/en-XL.json +26 -5
- package/shared/localization/locales/es-419.json +9 -6
- package/shared/localization/locales/es.json +9 -6
- package/shared/localization/locales/fi.json +9 -6
- package/shared/localization/locales/fil.json +9 -6
- package/shared/localization/locales/fr.json +9 -6
- package/shared/localization/locales/he.json +9 -6
- package/shared/localization/locales/hi.json +9 -6
- package/shared/localization/locales/hr.json +9 -6
- package/shared/localization/locales/hu.json +9 -6
- package/shared/localization/locales/id.json +9 -6
- package/shared/localization/locales/it.json +9 -6
- package/shared/localization/locales/ja.json +9 -6
- package/shared/localization/locales/ko.json +9 -6
- package/shared/localization/locales/lt.json +9 -6
- package/shared/localization/locales/lv.json +9 -6
- package/shared/localization/locales/nl.json +9 -6
- package/shared/localization/locales/no.json +9 -6
- package/shared/localization/locales/pl.json +9 -6
- package/shared/localization/locales/pt-PT.json +9 -6
- package/shared/localization/locales/pt.json +9 -6
- package/shared/localization/locales/ro.json +9 -6
- package/shared/localization/locales/ru.json +9 -6
- package/shared/localization/locales/sk.json +9 -6
- package/shared/localization/locales/sl.json +9 -6
- package/shared/localization/locales/sr-Latn.json +9 -6
- package/shared/localization/locales/sr.json +9 -6
- package/shared/localization/locales/sv.json +9 -6
- package/shared/localization/locales/ta.json +9 -6
- package/shared/localization/locales/te.json +9 -6
- package/shared/localization/locales/th.json +9 -6
- package/shared/localization/locales/tr.json +8 -5
- package/shared/localization/locales/uk.json +8 -5
- package/shared/localization/locales/vi.json +9 -6
- package/shared/localization/locales/zh-HK.json +9 -6
- package/shared/localization/locales/zh-TW.json +9 -6
- package/shared/localization/locales/zh.json +9 -6
|
@@ -33,9 +33,11 @@ const exclusions = {
|
|
|
33
33
|
],
|
|
34
34
|
};
|
|
35
35
|
|
|
36
|
-
// https://github.com/GoogleChrome/lighthouse/issues/14271
|
|
37
36
|
for (const array of Object.values(exclusions)) {
|
|
37
|
+
// https://github.com/GoogleChrome/lighthouse/issues/14271
|
|
38
38
|
array.push('lantern-idle-callback-short');
|
|
39
|
+
// glitch is gone.
|
|
40
|
+
array.push('issues-mixed-content');
|
|
39
41
|
}
|
|
40
42
|
|
|
41
43
|
export default exclusions;
|
|
@@ -66,6 +66,8 @@ import serviceWorkerReloaded from './test-definitions/service-worker-reloaded.js
|
|
|
66
66
|
import shiftAttribution from './test-definitions/shift-attribution.js';
|
|
67
67
|
import sourceMaps from './test-definitions/source-maps.js';
|
|
68
68
|
import timing from './test-definitions/timing.js';
|
|
69
|
+
import trustedTypesDirectivePresent from './test-definitions/trusted-types-directive-present.js';
|
|
70
|
+
import trustedTypesDirectiveMissingDirective from './test-definitions/trusted-types-missing-directives.js';
|
|
69
71
|
|
|
70
72
|
/** @type {ReadonlyArray<Smokehouse.TestDfn>} */
|
|
71
73
|
const smokeTests = [
|
|
@@ -131,6 +133,8 @@ const smokeTests = [
|
|
|
131
133
|
shiftAttribution,
|
|
132
134
|
sourceMaps,
|
|
133
135
|
timing,
|
|
136
|
+
trustedTypesDirectivePresent,
|
|
137
|
+
trustedTypesDirectiveMissingDirective,
|
|
134
138
|
];
|
|
135
139
|
|
|
136
140
|
export default smokeTests;
|
|
@@ -42,7 +42,7 @@ class ModernHTTPInsight extends Audit {
|
|
|
42
42
|
];
|
|
43
43
|
/** @type {LH.Audit.Details.Table['items']} */
|
|
44
44
|
const items =
|
|
45
|
-
insight.
|
|
45
|
+
insight.http1Requests.map(r => ({url: r.args.data.url, protocol: r.args.data.protocol}));
|
|
46
46
|
return Audit.makeTableDetails(headings, items);
|
|
47
47
|
});
|
|
48
48
|
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export default TrustedTypesXss;
|
|
2
|
+
declare class TrustedTypesXss extends Audit {
|
|
3
|
+
/**
|
|
4
|
+
* @param {LH.Artifacts} artifacts
|
|
5
|
+
* @param {LH.Audit.Context} context
|
|
6
|
+
* @return {Promise<{cspHeaders: string[], cspMetaTags: string[]}>}
|
|
7
|
+
*/
|
|
8
|
+
static getRawCsps(artifacts: LH.Artifacts, context: LH.Audit.Context): Promise<{
|
|
9
|
+
cspHeaders: string[];
|
|
10
|
+
cspMetaTags: string[];
|
|
11
|
+
}>;
|
|
12
|
+
/**
|
|
13
|
+
* @param {LH.IcuMessage | string} findingDescription
|
|
14
|
+
* @param {LH.IcuMessage=} severity
|
|
15
|
+
* @return {LH.Audit.Details.TableItem}
|
|
16
|
+
*/
|
|
17
|
+
static findingToTableItem(findingDescription: LH.IcuMessage | string, severity?: LH.IcuMessage | undefined): LH.Audit.Details.TableItem;
|
|
18
|
+
/**
|
|
19
|
+
* @param {string[]} cspHeaders
|
|
20
|
+
* @param {string[]} cspMetaTags
|
|
21
|
+
* @return {{score: number, results: LH.Audit.Details.TableItem[]}}
|
|
22
|
+
*/
|
|
23
|
+
static constructResults(cspHeaders: string[], cspMetaTags: string[]): {
|
|
24
|
+
score: number;
|
|
25
|
+
results: LH.Audit.Details.TableItem[];
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* @param {LH.Artifacts} artifacts
|
|
29
|
+
* @param {LH.Audit.Context} context
|
|
30
|
+
* @return {Promise<LH.Audit.Product>}
|
|
31
|
+
*/
|
|
32
|
+
static audit(artifacts: LH.Artifacts, context: LH.Audit.Context): Promise<LH.Audit.Product>;
|
|
33
|
+
}
|
|
34
|
+
export namespace UIStrings {
|
|
35
|
+
let title: string;
|
|
36
|
+
let description: string;
|
|
37
|
+
let noTrustedTypesToMitigateXss: string;
|
|
38
|
+
let columnSeverity: string;
|
|
39
|
+
}
|
|
40
|
+
import { Audit } from './audit.js';
|
|
41
|
+
//# sourceMappingURL=trusted-types-xss.d.ts.map
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import {Directive} from 'csp_evaluator/dist/csp.js';
|
|
8
|
+
|
|
9
|
+
import {Audit} from './audit.js';
|
|
10
|
+
import {MainResource} from '../computed/main-resource.js';
|
|
11
|
+
import * as i18n from '../lib/i18n/i18n.js';
|
|
12
|
+
import {parseCsp} from '../lib/csp-evaluator.js';
|
|
13
|
+
|
|
14
|
+
const UIStrings = {
|
|
15
|
+
/** Title of a Lighthouse audit that evaluates whether the set CSP header and Trusted Types directive is mitigating DOM-based XSS. "CSP" stands for "Content-Security-Policy" and should not be translated. "XSS" stands for "Cross Site Scripting" and should not be translated. */
|
|
16
|
+
title: 'Mitigate DOM-based XSS with Trusted Types',
|
|
17
|
+
/** Description of a Lighthouse audit that evaluates whether the set CSP header and Trusted Types directive is mitigating DOM-based XSS. This is displayed after a user expands the section to see more. "CSP" stands for "Content-Security-Policy" and should not be translated. "XSS" stands for "Cross Site Scripting" and should not be translated. No character length limits. The last sentence starting with 'Learn' becomes link text to additional documentation. */
|
|
18
|
+
description:
|
|
19
|
+
'The `require-trusted-types-for` directive in the `Content-Security-Policy` (CSP) header ' +
|
|
20
|
+
'instructs user agents to control the data passed to DOM XSS sink functions. ' +
|
|
21
|
+
'[Learn more about mitigating DOM-based XSS with Trusted Types](https://developer.chrome.com/docs/lighthouse/best-practices/trusted-types-xss).',
|
|
22
|
+
/** Summary text for the results of a Lighthouse audit that evaluates whether the set CSP header and Trusted Types directive is mitigating DOM-based XSS. This text is displayed if the page does not respond with a CSP header and a Trusted Types directive. "CSP" stands for "Content-Security-Policy" and should not be translated. "XSS" stands for "Cross Site Scripting" and should not be translated. */
|
|
23
|
+
noTrustedTypesToMitigateXss:
|
|
24
|
+
'No `Content-Security-Policy` header with Trusted Types directive found',
|
|
25
|
+
/** Label for a column in a data table; entries will be the severity of an issue with the page's CSP and Trusted Types directive. */
|
|
26
|
+
columnSeverity: 'Severity',
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
const str_ = i18n.createIcuMessageFn(import.meta.url, UIStrings);
|
|
30
|
+
|
|
31
|
+
class TrustedTypesXss extends Audit {
|
|
32
|
+
/**
|
|
33
|
+
* @return {LH.Audit.Meta}
|
|
34
|
+
*/
|
|
35
|
+
static get meta() {
|
|
36
|
+
return {
|
|
37
|
+
id: 'trusted-types-xss',
|
|
38
|
+
scoreDisplayMode: Audit.SCORING_MODES.INFORMATIVE,
|
|
39
|
+
title: str_(UIStrings.title),
|
|
40
|
+
description: str_(UIStrings.description),
|
|
41
|
+
requiredArtifacts: ['DevtoolsLog', 'MetaElements', 'URL'],
|
|
42
|
+
supportedModes: ['navigation'],
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* @param {LH.Artifacts} artifacts
|
|
48
|
+
* @param {LH.Audit.Context} context
|
|
49
|
+
* @return {Promise<{cspHeaders: string[], cspMetaTags: string[]}>}
|
|
50
|
+
*/
|
|
51
|
+
static async getRawCsps(artifacts, context) {
|
|
52
|
+
const devtoolsLog = artifacts.DevtoolsLog;
|
|
53
|
+
const mainResource = await MainResource.request({devtoolsLog, URL: artifacts.URL}, context);
|
|
54
|
+
|
|
55
|
+
const cspMetaTags = artifacts.MetaElements
|
|
56
|
+
.filter(m => {
|
|
57
|
+
return m.httpEquiv && m.httpEquiv.toLowerCase() === 'content-security-policy';
|
|
58
|
+
})
|
|
59
|
+
.flatMap(m => (m.content || '').split(','))
|
|
60
|
+
.filter(rawCsp => rawCsp.replace(/\s/g, ''));
|
|
61
|
+
const cspHeaders = mainResource.responseHeaders
|
|
62
|
+
.filter(h => {
|
|
63
|
+
return h.name.toLowerCase() === 'content-security-policy';
|
|
64
|
+
})
|
|
65
|
+
.flatMap(h => h.value.split(','))
|
|
66
|
+
.filter(rawCsp => rawCsp.replace(/\s/g, ''));
|
|
67
|
+
|
|
68
|
+
return {cspHeaders, cspMetaTags};
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* @param {LH.IcuMessage | string} findingDescription
|
|
73
|
+
* @param {LH.IcuMessage=} severity
|
|
74
|
+
* @return {LH.Audit.Details.TableItem}
|
|
75
|
+
*/
|
|
76
|
+
static findingToTableItem(findingDescription, severity) {
|
|
77
|
+
return {
|
|
78
|
+
description: findingDescription,
|
|
79
|
+
severity,
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* @param {string[]} cspHeaders
|
|
85
|
+
* @param {string[]} cspMetaTags
|
|
86
|
+
* @return {{score: number, results: LH.Audit.Details.TableItem[]}}
|
|
87
|
+
*/
|
|
88
|
+
static constructResults(cspHeaders, cspMetaTags) {
|
|
89
|
+
const rawCsps = [...cspHeaders, ...cspMetaTags];
|
|
90
|
+
const parsedCsps = rawCsps.map(parseCsp);
|
|
91
|
+
|
|
92
|
+
// Check for require-trusted-types-for 'script' in CSP.
|
|
93
|
+
for (const pc of parsedCsps) {
|
|
94
|
+
const directiveValues = pc.directives[pc.getEffectiveDirective(
|
|
95
|
+
Directive.REQUIRE_TRUSTED_TYPES_FOR)] || [];
|
|
96
|
+
if (directiveValues.includes('\'script\'')) {
|
|
97
|
+
return {score: 1, results: []};
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
return {
|
|
102
|
+
score: 0,
|
|
103
|
+
results: [{
|
|
104
|
+
severity: str_(i18n.UIStrings.itemSeverityHigh),
|
|
105
|
+
description: str_(UIStrings.noTrustedTypesToMitigateXss),
|
|
106
|
+
}],
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* @param {LH.Artifacts} artifacts
|
|
112
|
+
* @param {LH.Audit.Context} context
|
|
113
|
+
* @return {Promise<LH.Audit.Product>}
|
|
114
|
+
*/
|
|
115
|
+
static async audit(artifacts, context) {
|
|
116
|
+
const {cspHeaders, cspMetaTags} = await this.getRawCsps(artifacts, context);
|
|
117
|
+
const {score, results} = this.constructResults(cspHeaders, cspMetaTags);
|
|
118
|
+
|
|
119
|
+
/** @type {LH.Audit.Details.Table['headings']} */
|
|
120
|
+
const headings = [
|
|
121
|
+
/* eslint-disable max-len */
|
|
122
|
+
{key: 'description', valueType: 'text', subItemsHeading: {key: 'description'}, label: str_(i18n.UIStrings.columnDescription)},
|
|
123
|
+
{key: 'severity', valueType: 'text', subItemsHeading: {key: 'severity'}, label: str_(UIStrings.columnSeverity)},
|
|
124
|
+
/* eslint-enable max-len */
|
|
125
|
+
];
|
|
126
|
+
const details = Audit.makeTableDetails(headings, results);
|
|
127
|
+
|
|
128
|
+
return {
|
|
129
|
+
score,
|
|
130
|
+
notApplicable: !results.length,
|
|
131
|
+
details,
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
export default TrustedTypesXss;
|
|
137
|
+
export {UIStrings};
|
|
@@ -198,6 +198,7 @@ const defaultConfig = {
|
|
|
198
198
|
'has-hsts',
|
|
199
199
|
'origin-isolation',
|
|
200
200
|
'clickjacking-mitigation',
|
|
201
|
+
'trusted-types-xss',
|
|
201
202
|
'script-treemap-data',
|
|
202
203
|
'accessibility/accesskeys',
|
|
203
204
|
'accessibility/aria-allowed-attr',
|
|
@@ -590,6 +591,7 @@ const defaultConfig = {
|
|
|
590
591
|
{id: 'has-hsts', weight: 0, group: 'best-practices-trust-safety'},
|
|
591
592
|
{id: 'origin-isolation', weight: 0, group: 'best-practices-trust-safety'},
|
|
592
593
|
{id: 'clickjacking-mitigation', weight: 0, group: 'best-practices-trust-safety'},
|
|
594
|
+
{id: 'trusted-types-xss', weight: 0, group: 'best-practices-trust-safety'},
|
|
593
595
|
// User Experience
|
|
594
596
|
{id: 'paste-preventing-inputs', weight: 3, group: 'best-practices-ux'},
|
|
595
597
|
{id: 'image-aspect-ratio', weight: 1, group: 'best-practices-ux'},
|
|
@@ -515,8 +515,8 @@ class MainThreadTasks {
|
|
|
515
515
|
if (!url) continue;
|
|
516
516
|
// Add unique URLs to our overall tree.
|
|
517
517
|
if (!allURLsInTree.includes(url)) allURLsInTree.push(url);
|
|
518
|
-
// Don't add
|
|
519
|
-
if (attributableURLs
|
|
518
|
+
// Don't add duplicate URLs
|
|
519
|
+
if (attributableURLs.includes(url)) continue;
|
|
520
520
|
attributableURLs.push(url);
|
|
521
521
|
}
|
|
522
522
|
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lighthouse",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "12.
|
|
4
|
+
"version": "12.8.0",
|
|
5
5
|
"description": "Automated auditing, performance metrics, and best practices for the web.",
|
|
6
6
|
"main": "./core/index.js",
|
|
7
7
|
"bin": {
|
|
@@ -189,7 +189,7 @@
|
|
|
189
189
|
"webtreemap-cdt": "^3.2.1"
|
|
190
190
|
},
|
|
191
191
|
"dependencies": {
|
|
192
|
-
"@paulirish/trace_engine": "0.0.
|
|
192
|
+
"@paulirish/trace_engine": "0.0.57",
|
|
193
193
|
"@sentry/node": "^9.28.1",
|
|
194
194
|
"axe-core": "^4.10.3",
|
|
195
195
|
"chrome-launcher": "^1.2.0",
|
|
@@ -2321,9 +2321,6 @@
|
|
|
2321
2321
|
"node_modules/@paulirish/trace_engine/generated/Deprecation.js | V8SharedArrayBufferConstructedInExtensionWithoutIsolation": {
|
|
2322
2322
|
"message": "يجب أن تستخدم الإضافات ميزة حظر الوصول من نطاقات أخرى لمواصلة استخدام الكائن SharedArrayBuffer. يُرجى الاطّلاع على https://developer.chrome.com/docs/extensions/mv3/cross-origin-isolation/."
|
|
2323
2323
|
},
|
|
2324
|
-
"node_modules/@paulirish/trace_engine/generated/Deprecation.js | WebGPUAdapterIsFallbackAdapter": {
|
|
2325
|
-
"message": "تم إيقاف سمة isFallbackAdapter GPUAdapter نهائيًا. يُرجى استخدام سمة isFallbackAdapter GPUAdapterInfo بدلاً منها."
|
|
2326
|
-
},
|
|
2327
2324
|
"node_modules/@paulirish/trace_engine/generated/Deprecation.js | XHRJSONEncodingDetection": {
|
|
2328
2325
|
"message": "لا يتوفّر الترميز UTF-16 من خلال استجابة json في واجهة برمجة التطبيقات XMLHttpRequest."
|
|
2329
2326
|
},
|
|
@@ -2354,6 +2351,9 @@
|
|
|
2354
2351
|
"node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | topCulprits": {
|
|
2355
2352
|
"message": "أهم أسباب تغييرات التصميم"
|
|
2356
2353
|
},
|
|
2354
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | unsizedImage": {
|
|
2355
|
+
"message": "Unsized image element"
|
|
2356
|
+
},
|
|
2357
2357
|
"node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | worstCluster": {
|
|
2358
2358
|
"message": "أسوأ مجموعة"
|
|
2359
2359
|
},
|
|
@@ -2409,7 +2409,7 @@
|
|
|
2409
2409
|
"message": "تضمَّن الطلب عمليات إعادة توجيه (عدد عمليات إعادة التوجيه: {PH1}، ومدتها {PH2}+)"
|
|
2410
2410
|
},
|
|
2411
2411
|
"node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | failedServerResponseTime": {
|
|
2412
|
-
"message": "استجابة الخادم كانت بطيئة (المدة المرصودة: {PH1})
|
|
2412
|
+
"message": "استجابة الخادم كانت بطيئة (المدة المرصودة: {PH1})"
|
|
2413
2413
|
},
|
|
2414
2414
|
"node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | failedTextCompression": {
|
|
2415
2415
|
"message": "لم يتمّ تطبيق أي ضغط"
|
|
@@ -2418,7 +2418,7 @@
|
|
|
2418
2418
|
"message": "يتجنّب هذا الطلب عمليات إعادة التوجيه"
|
|
2419
2419
|
},
|
|
2420
2420
|
"node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | passingServerResponseTime": {
|
|
2421
|
-
"message": "يستجيب الخادم بسرعة (المدة المرصودة: {PH1})
|
|
2421
|
+
"message": "يستجيب الخادم بسرعة (المدة المرصودة: {PH1})"
|
|
2422
2422
|
},
|
|
2423
2423
|
"node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | passingTextCompression": {
|
|
2424
2424
|
"message": "تمّ تطبيق ضغط النص"
|
|
@@ -2586,7 +2586,7 @@
|
|
|
2586
2586
|
"message": "يُمكن [تجنُّب تقييد الطلبات المهمة](https://developer.chrome.com/docs/lighthouse/performance/critical-request-chains) عن طريق تقليل طول السلاسل أو تقليل حجم تنزيل الموارد أو تأجيل تنزيل الموارد غير الضرورية لتحسين تحميل الصفحة."
|
|
2587
2587
|
},
|
|
2588
2588
|
"node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | estSavingTableDescription": {
|
|
2589
|
-
"message": "يمكنك إضافة إشارات [preconnect](https://developer.chrome.com/docs/lighthouse/performance/uses-rel-preconnect/) إلى أهم مصادرك، ولكن يُرجى محاولة استخدام
|
|
2589
|
+
"message": "يمكنك إضافة إشارات [preconnect](https://developer.chrome.com/docs/lighthouse/performance/uses-rel-preconnect/) إلى أهم مصادرك، ولكن يُرجى محاولة استخدام 4 إشارات كحدّ أقصى."
|
|
2590
2590
|
},
|
|
2591
2591
|
"node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | estSavingTableTitle": {
|
|
2592
2592
|
"message": "المصادر المُرشَّحة للاتصال المُسبَق"
|
|
@@ -2681,6 +2681,9 @@
|
|
|
2681
2681
|
"node_modules/@paulirish/trace_engine/models/trace/insights/Viewport.js | description": {
|
|
2682
2682
|
"message": "قد يتم [تأخير الاستجابة لتفاعلات النقر بمقدار 300 ملي ثانية كحد أقصى](https://developer.chrome.com/blog/300ms-tap-delay-gone-away/) إذا لم يتم تحسين إطار العرض للأجهزة الجوّالة."
|
|
2683
2683
|
},
|
|
2684
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/Viewport.js | mobileTapDelayLabel": {
|
|
2685
|
+
"message": "مدة تأخير الاستجابة للنقر على الأجهزة الجوّالة"
|
|
2686
|
+
},
|
|
2684
2687
|
"node_modules/@paulirish/trace_engine/models/trace/insights/Viewport.js | title": {
|
|
2685
2688
|
"message": "تحسين إطار العرض للأجهزة الجوّالة"
|
|
2686
2689
|
},
|
|
@@ -2321,9 +2321,6 @@
|
|
|
2321
2321
|
"node_modules/@paulirish/trace_engine/generated/Deprecation.js | V8SharedArrayBufferConstructedInExtensionWithoutIsolation": {
|
|
2322
2322
|
"message": "يجب أن تستخدم الإضافات ميزة حظر الوصول من نطاقات أخرى لمواصلة استخدام الكائن SharedArrayBuffer. يُرجى الاطّلاع على https://developer.chrome.com/docs/extensions/mv3/cross-origin-isolation/."
|
|
2323
2323
|
},
|
|
2324
|
-
"node_modules/@paulirish/trace_engine/generated/Deprecation.js | WebGPUAdapterIsFallbackAdapter": {
|
|
2325
|
-
"message": "تم إيقاف سمة isFallbackAdapter GPUAdapter نهائيًا. يُرجى استخدام سمة isFallbackAdapter GPUAdapterInfo بدلاً منها."
|
|
2326
|
-
},
|
|
2327
2324
|
"node_modules/@paulirish/trace_engine/generated/Deprecation.js | XHRJSONEncodingDetection": {
|
|
2328
2325
|
"message": "لا يتوفّر الترميز UTF-16 من خلال استجابة json في واجهة برمجة التطبيقات XMLHttpRequest."
|
|
2329
2326
|
},
|
|
@@ -2354,6 +2351,9 @@
|
|
|
2354
2351
|
"node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | topCulprits": {
|
|
2355
2352
|
"message": "أهم أسباب تغييرات التصميم"
|
|
2356
2353
|
},
|
|
2354
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | unsizedImage": {
|
|
2355
|
+
"message": "Unsized image element"
|
|
2356
|
+
},
|
|
2357
2357
|
"node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | worstCluster": {
|
|
2358
2358
|
"message": "أسوأ مجموعة"
|
|
2359
2359
|
},
|
|
@@ -2409,7 +2409,7 @@
|
|
|
2409
2409
|
"message": "تضمَّن الطلب عمليات إعادة توجيه (عدد عمليات إعادة التوجيه: {PH1}، ومدتها {PH2}+)"
|
|
2410
2410
|
},
|
|
2411
2411
|
"node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | failedServerResponseTime": {
|
|
2412
|
-
"message": "استجابة الخادم كانت بطيئة (المدة المرصودة: {PH1})
|
|
2412
|
+
"message": "استجابة الخادم كانت بطيئة (المدة المرصودة: {PH1})"
|
|
2413
2413
|
},
|
|
2414
2414
|
"node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | failedTextCompression": {
|
|
2415
2415
|
"message": "لم يتمّ تطبيق أي ضغط"
|
|
@@ -2418,7 +2418,7 @@
|
|
|
2418
2418
|
"message": "يتجنّب هذا الطلب عمليات إعادة التوجيه"
|
|
2419
2419
|
},
|
|
2420
2420
|
"node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | passingServerResponseTime": {
|
|
2421
|
-
"message": "يستجيب الخادم بسرعة (المدة المرصودة: {PH1})
|
|
2421
|
+
"message": "يستجيب الخادم بسرعة (المدة المرصودة: {PH1})"
|
|
2422
2422
|
},
|
|
2423
2423
|
"node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | passingTextCompression": {
|
|
2424
2424
|
"message": "تمّ تطبيق ضغط النص"
|
|
@@ -2586,7 +2586,7 @@
|
|
|
2586
2586
|
"message": "يُمكن [تجنُّب تقييد الطلبات المهمة](https://developer.chrome.com/docs/lighthouse/performance/critical-request-chains) عن طريق تقليل طول السلاسل أو تقليل حجم تنزيل الموارد أو تأجيل تنزيل الموارد غير الضرورية لتحسين تحميل الصفحة."
|
|
2587
2587
|
},
|
|
2588
2588
|
"node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | estSavingTableDescription": {
|
|
2589
|
-
"message": "يمكنك إضافة إشارات [preconnect](https://developer.chrome.com/docs/lighthouse/performance/uses-rel-preconnect/) إلى أهم مصادرك، ولكن يُرجى محاولة استخدام
|
|
2589
|
+
"message": "يمكنك إضافة إشارات [preconnect](https://developer.chrome.com/docs/lighthouse/performance/uses-rel-preconnect/) إلى أهم مصادرك، ولكن يُرجى محاولة استخدام 4 إشارات كحدّ أقصى."
|
|
2590
2590
|
},
|
|
2591
2591
|
"node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | estSavingTableTitle": {
|
|
2592
2592
|
"message": "المصادر المُرشَّحة للاتصال المُسبَق"
|
|
@@ -2681,6 +2681,9 @@
|
|
|
2681
2681
|
"node_modules/@paulirish/trace_engine/models/trace/insights/Viewport.js | description": {
|
|
2682
2682
|
"message": "قد يتم [تأخير الاستجابة لتفاعلات النقر بمقدار 300 ملي ثانية كحد أقصى](https://developer.chrome.com/blog/300ms-tap-delay-gone-away/) إذا لم يتم تحسين إطار العرض للأجهزة الجوّالة."
|
|
2683
2683
|
},
|
|
2684
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/Viewport.js | mobileTapDelayLabel": {
|
|
2685
|
+
"message": "مدة تأخير الاستجابة للنقر على الأجهزة الجوّالة"
|
|
2686
|
+
},
|
|
2684
2687
|
"node_modules/@paulirish/trace_engine/models/trace/insights/Viewport.js | title": {
|
|
2685
2688
|
"message": "تحسين إطار العرض للأجهزة الجوّالة"
|
|
2686
2689
|
},
|
|
@@ -2321,9 +2321,6 @@
|
|
|
2321
2321
|
"node_modules/@paulirish/trace_engine/generated/Deprecation.js | V8SharedArrayBufferConstructedInExtensionWithoutIsolation": {
|
|
2322
2322
|
"message": "Разширенията трябва да се включат в изолирането от външни източници, за да продължат да използват SharedArrayBuffer. Вижте https://developer.chrome.com/docs/extensions/mv3/cross-origin-isolation/."
|
|
2323
2323
|
},
|
|
2324
|
-
"node_modules/@paulirish/trace_engine/generated/Deprecation.js | WebGPUAdapterIsFallbackAdapter": {
|
|
2325
|
-
"message": "Атрибутът isFallbackAdapter за GPUAdapter е оттеглен. Вместо него използвайте атрибута isFallbackAdapter за GPUAdapterInfo."
|
|
2326
|
-
},
|
|
2327
2324
|
"node_modules/@paulirish/trace_engine/generated/Deprecation.js | XHRJSONEncodingDetection": {
|
|
2328
2325
|
"message": "UTF-16 не се поддържа от JSON отговора в XMLHttpRequest"
|
|
2329
2326
|
},
|
|
@@ -2354,6 +2351,9 @@
|
|
|
2354
2351
|
"node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | topCulprits": {
|
|
2355
2352
|
"message": "Водещи причинители на структурни промени"
|
|
2356
2353
|
},
|
|
2354
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | unsizedImage": {
|
|
2355
|
+
"message": "Unsized image element"
|
|
2356
|
+
},
|
|
2357
2357
|
"node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | worstCluster": {
|
|
2358
2358
|
"message": "Най-лошата група"
|
|
2359
2359
|
},
|
|
@@ -2409,7 +2409,7 @@
|
|
|
2409
2409
|
"message": "Имаше пренасочвания ({PH1} пренасочвания, + {PH2})"
|
|
2410
2410
|
},
|
|
2411
2411
|
"node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | failedServerResponseTime": {
|
|
2412
|
-
"message": "Сървърът отговори бавно (отчетено време: {PH1})
|
|
2412
|
+
"message": "Сървърът отговори бавно (отчетено време: {PH1})"
|
|
2413
2413
|
},
|
|
2414
2414
|
"node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | failedTextCompression": {
|
|
2415
2415
|
"message": "Не е приложена компресия"
|
|
@@ -2418,7 +2418,7 @@
|
|
|
2418
2418
|
"message": "Избягва пренасочванията"
|
|
2419
2419
|
},
|
|
2420
2420
|
"node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | passingServerResponseTime": {
|
|
2421
|
-
"message": "Сървърът отговаря бързо (отчетено време: {PH1})
|
|
2421
|
+
"message": "Сървърът отговаря бързо (отчетено време: {PH1})"
|
|
2422
2422
|
},
|
|
2423
2423
|
"node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | passingTextCompression": {
|
|
2424
2424
|
"message": "Прилага се компресиране на текста"
|
|
@@ -2586,7 +2586,7 @@
|
|
|
2586
2586
|
"message": "За да ускорите зареждането на страницата, [избягвайте верижни последователности от критични заявки](https://developer.chrome.com/docs/lighthouse/performance/critical-request-chains), като скъсите веригите, намалите размера за изтегляне на ресурсите или отложите изтеглянето на ненужните от тях."
|
|
2587
2587
|
},
|
|
2588
2588
|
"node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | estSavingTableDescription": {
|
|
2589
|
-
"message": "Добавете подсказки за [предварително свързване](https://developer.chrome.com/docs/lighthouse/performance/uses-rel-preconnect/) към най-важните си източници, но опитайте да използвате
|
|
2589
|
+
"message": "Добавете подсказки за [предварително свързване](https://developer.chrome.com/docs/lighthouse/performance/uses-rel-preconnect/) към най-важните си източници, но опитайте да използвате не повече от 4."
|
|
2590
2590
|
},
|
|
2591
2591
|
"node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | estSavingTableTitle": {
|
|
2592
2592
|
"message": "Подходящи за предварително свързване"
|
|
@@ -2681,6 +2681,9 @@
|
|
|
2681
2681
|
"node_modules/@paulirish/trace_engine/models/trace/insights/Viewport.js | description": {
|
|
2682
2682
|
"message": "При взаимодействията с докосване може да има [забавяне до 300 мсек](https://developer.chrome.com/blog/300ms-tap-delay-gone-away/), ако прозоречният изглед не е оптимизиран за мобилни устройства."
|
|
2683
2683
|
},
|
|
2684
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/Viewport.js | mobileTapDelayLabel": {
|
|
2685
|
+
"message": "Забавяне при докосване на мобилно устройство"
|
|
2686
|
+
},
|
|
2684
2687
|
"node_modules/@paulirish/trace_engine/models/trace/insights/Viewport.js | title": {
|
|
2685
2688
|
"message": "Оптимизиране на прозоречния изглед за мобилни устройства"
|
|
2686
2689
|
},
|
|
@@ -2321,9 +2321,6 @@
|
|
|
2321
2321
|
"node_modules/@paulirish/trace_engine/generated/Deprecation.js | V8SharedArrayBufferConstructedInExtensionWithoutIsolation": {
|
|
2322
2322
|
"message": "Les extensions han d'activar l'aïllament d'altres orígens per continuar utilitzant SharedArrayBuffer. Consulta https://developer.chrome.com/docs/extensions/mv3/cross-origin-isolation/."
|
|
2323
2323
|
},
|
|
2324
|
-
"node_modules/@paulirish/trace_engine/generated/Deprecation.js | WebGPUAdapterIsFallbackAdapter": {
|
|
2325
|
-
"message": "L'atribut isFallbackAdapter de GPUAdapter està obsolet. Substitueix-lo per l'atribut isFallbackAdapter de GPUAdapterInfo."
|
|
2326
|
-
},
|
|
2327
2324
|
"node_modules/@paulirish/trace_engine/generated/Deprecation.js | XHRJSONEncodingDetection": {
|
|
2328
2325
|
"message": "La resposta JSON no admet UTF-16 a XMLHttpRequest"
|
|
2329
2326
|
},
|
|
@@ -2354,6 +2351,9 @@
|
|
|
2354
2351
|
"node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | topCulprits": {
|
|
2355
2352
|
"message": "Principals causants del canvi de disseny"
|
|
2356
2353
|
},
|
|
2354
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | unsizedImage": {
|
|
2355
|
+
"message": "Unsized image element"
|
|
2356
|
+
},
|
|
2357
2357
|
"node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | worstCluster": {
|
|
2358
2358
|
"message": "El pitjor clúster"
|
|
2359
2359
|
},
|
|
@@ -2409,7 +2409,7 @@
|
|
|
2409
2409
|
"message": "Tenia redireccions ({PH1} redireccions, +{PH2})"
|
|
2410
2410
|
},
|
|
2411
2411
|
"node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | failedServerResponseTime": {
|
|
2412
|
-
"message": "El servidor ha respost lentament (temps observat: {PH1})
|
|
2412
|
+
"message": "El servidor ha respost lentament (temps observat: {PH1})"
|
|
2413
2413
|
},
|
|
2414
2414
|
"node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | failedTextCompression": {
|
|
2415
2415
|
"message": "No s'ha aplicat cap compressió"
|
|
@@ -2418,7 +2418,7 @@
|
|
|
2418
2418
|
"message": "Evita les redireccions"
|
|
2419
2419
|
},
|
|
2420
2420
|
"node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | passingServerResponseTime": {
|
|
2421
|
-
"message": "El servidor respon ràpidament (temps observat: {PH1})
|
|
2421
|
+
"message": "El servidor respon ràpidament (temps observat: {PH1})"
|
|
2422
2422
|
},
|
|
2423
2423
|
"node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | passingTextCompression": {
|
|
2424
2424
|
"message": "S'aplica la compressió de text"
|
|
@@ -2586,7 +2586,7 @@
|
|
|
2586
2586
|
"message": "[Evita encadenar sol·licituds crítiques](https://developer.chrome.com/docs/lighthouse/performance/critical-request-chains) escurçant les cadenes, reduint la mida de baixada dels recursos o ajornant la baixada de recursos innecessaris per millorar la càrrega de les pàgines."
|
|
2587
2587
|
},
|
|
2588
2588
|
"node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | estSavingTableDescription": {
|
|
2589
|
-
"message": "Afegeix suggeriments de [preconnexió](https://developer.chrome.com/docs/lighthouse/performance/uses-rel-preconnect/) als teus orígens més importants, però prova d'utilitzar-ne
|
|
2589
|
+
"message": "Afegeix suggeriments de [preconnexió](https://developer.chrome.com/docs/lighthouse/performance/uses-rel-preconnect/) als teus orígens més importants, però prova d'utilitzar-ne 4 com a màxim."
|
|
2590
2590
|
},
|
|
2591
2591
|
"node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | estSavingTableTitle": {
|
|
2592
2592
|
"message": "Candidats per a la preconnexió"
|
|
@@ -2681,6 +2681,9 @@
|
|
|
2681
2681
|
"node_modules/@paulirish/trace_engine/models/trace/insights/Viewport.js | description": {
|
|
2682
2682
|
"message": "Les interaccions amb tocs poden [retardar-se fins a 300 ms](https://developer.chrome.com/blog/300ms-tap-delay-gone-away/) si la finestra gràfica no està optimitzada per a mòbils."
|
|
2683
2683
|
},
|
|
2684
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/Viewport.js | mobileTapDelayLabel": {
|
|
2685
|
+
"message": "Retard del toc en mòbil"
|
|
2686
|
+
},
|
|
2684
2687
|
"node_modules/@paulirish/trace_engine/models/trace/insights/Viewport.js | title": {
|
|
2685
2688
|
"message": "Optimitza la finestra gràfica per a mòbils"
|
|
2686
2689
|
},
|
|
@@ -2321,9 +2321,6 @@
|
|
|
2321
2321
|
"node_modules/@paulirish/trace_engine/generated/Deprecation.js | V8SharedArrayBufferConstructedInExtensionWithoutIsolation": {
|
|
2322
2322
|
"message": "Pokud v rozšířeních chcete používat technologii SharedArrayBuffer, je u nich potřeba aktivovat izolaci od jiných zdrojů. Viz https://developer.chrome.com/docs/extensions/mv3/cross-origin-isolation/."
|
|
2323
2323
|
},
|
|
2324
|
-
"node_modules/@paulirish/trace_engine/generated/Deprecation.js | WebGPUAdapterIsFallbackAdapter": {
|
|
2325
|
-
"message": "Atribut GPUAdapter isFallbackAdapter je zastaralý, použijte místo něj atribut GPUAdapterInfo isFallbackAdapter."
|
|
2326
|
-
},
|
|
2327
2324
|
"node_modules/@paulirish/trace_engine/generated/Deprecation.js | XHRJSONEncodingDetection": {
|
|
2328
2325
|
"message": "Kódování UTF-16 není v objektech JSON odpovědí rozhraní XMLHttpRequest podporováno."
|
|
2329
2326
|
},
|
|
@@ -2354,6 +2351,9 @@
|
|
|
2354
2351
|
"node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | topCulprits": {
|
|
2355
2352
|
"message": "Hlavní viníci změn rozvržení"
|
|
2356
2353
|
},
|
|
2354
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | unsizedImage": {
|
|
2355
|
+
"message": "Unsized image element"
|
|
2356
|
+
},
|
|
2357
2357
|
"node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | worstCluster": {
|
|
2358
2358
|
"message": "Nejhorší klastr"
|
|
2359
2359
|
},
|
|
@@ -2409,7 +2409,7 @@
|
|
|
2409
2409
|
"message": "Zahrnuje přesměrování (přesměrování {PH1}, +{PH2})"
|
|
2410
2410
|
},
|
|
2411
2411
|
"node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | failedServerResponseTime": {
|
|
2412
|
-
"message": "Server odpověděl pomalu (pozorováno {PH1})
|
|
2412
|
+
"message": "Server odpověděl pomalu (pozorováno {PH1})"
|
|
2413
2413
|
},
|
|
2414
2414
|
"node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | failedTextCompression": {
|
|
2415
2415
|
"message": "Není použita žádná komprese"
|
|
@@ -2418,7 +2418,7 @@
|
|
|
2418
2418
|
"message": "Nepoužívá přesměrování"
|
|
2419
2419
|
},
|
|
2420
2420
|
"node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | passingServerResponseTime": {
|
|
2421
|
-
"message": "Server
|
|
2421
|
+
"message": "Server odpovídá rychle (pozorováno {PH1})"
|
|
2422
2422
|
},
|
|
2423
2423
|
"node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | passingTextCompression": {
|
|
2424
2424
|
"message": "Používá kompresi textu"
|
|
@@ -2586,7 +2586,7 @@
|
|
|
2586
2586
|
"message": "[Vyhněte se řetězení kritických požadavků](https://developer.chrome.com/docs/lighthouse/performance/critical-request-chains) tím, že zkrátíte délku řetězců, snížíte velikost stahovaných zdrojů nebo odložíte stahování nepotřebných zdrojů, abyste zlepšili načítání stránky."
|
|
2587
2587
|
},
|
|
2588
2588
|
"node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | estSavingTableDescription": {
|
|
2589
|
-
"message": "K nejdůležitějším zdrojům přidejte signály [preconnect](https://developer.chrome.com/docs/lighthouse/performance/uses-rel-preconnect/), ale snažte se
|
|
2589
|
+
"message": "K nejdůležitějším zdrojům přidejte signály [preconnect](https://developer.chrome.com/docs/lighthouse/performance/uses-rel-preconnect/), ale snažte se použít maximálně 4."
|
|
2590
2590
|
},
|
|
2591
2591
|
"node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | estSavingTableTitle": {
|
|
2592
2592
|
"message": "Kandidáti na předběžné připojení"
|
|
@@ -2681,6 +2681,9 @@
|
|
|
2681
2681
|
"node_modules/@paulirish/trace_engine/models/trace/insights/Viewport.js | description": {
|
|
2682
2682
|
"message": "Pokud zobrazovaná oblast není optimalizovaná pro mobily, mohou být interakce klepnutím [až o 300 ms zpožděny](https://developer.chrome.com/blog/300ms-tap-delay-gone-away/)."
|
|
2683
2683
|
},
|
|
2684
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/Viewport.js | mobileTapDelayLabel": {
|
|
2685
|
+
"message": "Prodleva klepnutí na mobilním telefonu"
|
|
2686
|
+
},
|
|
2684
2687
|
"node_modules/@paulirish/trace_engine/models/trace/insights/Viewport.js | title": {
|
|
2685
2688
|
"message": "Optimalizujte zobrazovanou oblast pro mobily"
|
|
2686
2689
|
},
|
|
@@ -2321,9 +2321,6 @@
|
|
|
2321
2321
|
"node_modules/@paulirish/trace_engine/generated/Deprecation.js | V8SharedArrayBufferConstructedInExtensionWithoutIsolation": {
|
|
2322
2322
|
"message": "Udvidelser skal tilvælge domæneisolering for fortsat at kunne bruge SharedArrayBuffer. Se https://developer.chrome.com/docs/extensions/mv3/cross-origin-isolation/."
|
|
2323
2323
|
},
|
|
2324
|
-
"node_modules/@paulirish/trace_engine/generated/Deprecation.js | WebGPUAdapterIsFallbackAdapter": {
|
|
2325
|
-
"message": "Attributten GPUAdapter isFallbackAdapter er udfaset. Brug i stedet attributten GPUAdapterInfo isFallbackAdapter."
|
|
2326
|
-
},
|
|
2327
2324
|
"node_modules/@paulirish/trace_engine/generated/Deprecation.js | XHRJSONEncodingDetection": {
|
|
2328
2325
|
"message": "UTF-16 understøttes ikke af svar-json i XMLHttpRequest"
|
|
2329
2326
|
},
|
|
@@ -2354,6 +2351,9 @@
|
|
|
2354
2351
|
"node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | topCulprits": {
|
|
2355
2352
|
"message": "Typiske årsager til layoutændringer"
|
|
2356
2353
|
},
|
|
2354
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | unsizedImage": {
|
|
2355
|
+
"message": "Unsized image element"
|
|
2356
|
+
},
|
|
2357
2357
|
"node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | worstCluster": {
|
|
2358
2358
|
"message": "Værste klynge"
|
|
2359
2359
|
},
|
|
@@ -2409,7 +2409,7 @@
|
|
|
2409
2409
|
"message": "Der var omdirigeringer ({PH1} omdirigeringer, +{PH2})"
|
|
2410
2410
|
},
|
|
2411
2411
|
"node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | failedServerResponseTime": {
|
|
2412
|
-
"message": "Serveren reagerede langsomt (observeret {PH1})
|
|
2412
|
+
"message": "Serveren reagerede langsomt (observeret {PH1})"
|
|
2413
2413
|
},
|
|
2414
2414
|
"node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | failedTextCompression": {
|
|
2415
2415
|
"message": "Der er ikke anvendt komprimering"
|
|
@@ -2418,7 +2418,7 @@
|
|
|
2418
2418
|
"message": "Undgår omdirigeringer"
|
|
2419
2419
|
},
|
|
2420
2420
|
"node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | passingServerResponseTime": {
|
|
2421
|
-
"message": "Serveren svarer hurtigt (observeret {PH1})
|
|
2421
|
+
"message": "Serveren svarer hurtigt (observeret {PH1})"
|
|
2422
2422
|
},
|
|
2423
2423
|
"node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | passingTextCompression": {
|
|
2424
2424
|
"message": "Tekstkomprimering er anvendt"
|
|
@@ -2586,7 +2586,7 @@
|
|
|
2586
2586
|
"message": "[Undgå at sammenkæde kritiske anmodninger](https://developer.chrome.com/docs/lighthouse/performance/critical-request-chains) ved at reducere kædernes længde, så ressourcernes downloadstørrelse bliver mindre, eller at udskyde download af unødvendige ressourcer, så sideindlæsningen forbedres."
|
|
2587
2587
|
},
|
|
2588
2588
|
"node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | estSavingTableDescription": {
|
|
2589
|
-
"message": "Føj hints til at [oprette
|
|
2589
|
+
"message": "Føj hints til at [oprette tilknytning på forhånd](https://developer.chrome.com/docs/lighthouse/performance/uses-rel-preconnect/) til dine vigtigste oprindelser, men prøv at bruge færre end 4."
|
|
2590
2590
|
},
|
|
2591
2591
|
"node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | estSavingTableTitle": {
|
|
2592
2592
|
"message": "Opret forbindelse til kandidater på forhånd"
|
|
@@ -2681,6 +2681,9 @@
|
|
|
2681
2681
|
"node_modules/@paulirish/trace_engine/models/trace/insights/Viewport.js | description": {
|
|
2682
2682
|
"message": "Trykinteraktioner kan blive [forsinket med op til 300 ms](https://developer.chrome.com/blog/300ms-tap-delay-gone-away/), hvis viewport ikke er optimeret til mobilen."
|
|
2683
2683
|
},
|
|
2684
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/Viewport.js | mobileTapDelayLabel": {
|
|
2685
|
+
"message": "Forsinkelse ved tryk på mobil"
|
|
2686
|
+
},
|
|
2684
2687
|
"node_modules/@paulirish/trace_engine/models/trace/insights/Viewport.js | title": {
|
|
2685
2688
|
"message": "Optimer viewport til mobil"
|
|
2686
2689
|
},
|