lighthouse 12.3.0 → 12.4.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/core-tests.js +4 -0
- package/core/audits/audit.d.ts +5 -0
- package/core/audits/audit.js +12 -0
- package/core/audits/bootup-time.js +0 -2
- package/core/audits/byte-efficiency/duplicated-javascript.d.ts +4 -5
- package/core/audits/byte-efficiency/duplicated-javascript.js +9 -5
- package/core/audits/byte-efficiency/legacy-javascript.d.ts +2 -2
- package/core/audits/byte-efficiency/legacy-javascript.js +17 -5
- package/core/audits/byte-efficiency/polyfill-graph-data.json +48 -49
- package/core/audits/byte-efficiency/total-byte-weight.js +0 -2
- package/core/audits/clickjacking-mitigation.d.ts +42 -0
- package/core/audits/clickjacking-mitigation.js +139 -0
- package/core/audits/dobetterweb/dom-size.js +0 -2
- package/core/audits/insights/README.md +3 -0
- package/core/audits/insights/cls-culprits-insight.d.ts +25 -0
- package/core/audits/insights/cls-culprits-insight.js +137 -0
- package/core/audits/insights/document-latency-insight.d.ts +11 -0
- package/core/audits/insights/document-latency-insight.js +48 -0
- package/core/audits/insights/dom-size-insight.d.ts +11 -0
- package/core/audits/insights/dom-size-insight.js +85 -0
- package/core/audits/insights/font-display-insight.d.ts +11 -0
- package/core/audits/insights/font-display-insight.js +53 -0
- package/core/audits/insights/forced-reflow-insight.d.ts +11 -0
- package/core/audits/insights/forced-reflow-insight.js +52 -0
- package/core/audits/insights/image-delivery-insight.d.ts +11 -0
- package/core/audits/insights/image-delivery-insight.js +83 -0
- package/core/audits/insights/insight-audit.d.ts +23 -0
- package/core/audits/insights/insight-audit.js +133 -0
- package/core/audits/insights/interaction-to-next-paint-insight.d.ts +11 -0
- package/core/audits/insights/interaction-to-next-paint-insight.js +71 -0
- package/core/audits/insights/lcp-discovery-insight.d.ts +11 -0
- package/core/audits/insights/lcp-discovery-insight.js +48 -0
- package/core/audits/insights/lcp-phases-insight.d.ts +16 -0
- package/core/audits/insights/lcp-phases-insight.js +87 -0
- package/core/audits/insights/long-critical-network-tree-insight.d.ts +11 -0
- package/core/audits/insights/long-critical-network-tree-insight.js +53 -0
- package/core/audits/insights/render-blocking-insight.d.ts +11 -0
- package/core/audits/insights/render-blocking-insight.js +57 -0
- package/core/audits/insights/slow-css-selector-insight.d.ts +11 -0
- package/core/audits/insights/slow-css-selector-insight.js +52 -0
- package/core/audits/insights/third-parties-insight.d.ts +28 -0
- package/core/audits/insights/third-parties-insight.js +90 -0
- package/core/audits/insights/viewport-insight.d.ts +11 -0
- package/core/audits/insights/viewport-insight.js +54 -0
- package/core/audits/layout-shifts.d.ts +0 -1
- package/core/audits/layout-shifts.js +18 -21
- package/core/audits/mainthread-work-breakdown.js +0 -2
- package/core/audits/seo/is-crawlable.d.ts +1 -0
- package/core/audits/server-response-time.js +0 -1
- package/core/computed/metrics/lantern-metric.js +5 -1
- package/core/computed/trace-engine-result.js +71 -17
- package/core/config/default-config.js +37 -1
- package/core/gather/gatherers/inspector-issues.js +3 -0
- package/core/gather/gatherers/trace-elements.d.ts +10 -2
- package/core/gather/gatherers/trace-elements.js +89 -12
- package/core/lib/bf-cache-strings.d.ts +7 -4
- package/core/lib/bf-cache-strings.js +174 -140
- package/core/lib/cdt/generated/ParsedURL.d.ts +1 -0
- package/core/lib/cdt/generated/ParsedURL.js +16 -4
- package/core/lib/cdt/generated/SourceMap.d.ts +32 -5
- package/core/lib/cdt/generated/SourceMap.js +192 -100
- package/core/lib/deprecations-strings.d.ts +78 -98
- package/core/lib/deprecations-strings.js +23 -41
- package/core/lib/i18n/i18n.d.ts +1 -0
- package/core/lib/i18n/i18n.js +2 -0
- package/core/lib/trace-engine.d.ts +1 -0
- package/core/lib/trace-engine.js +2 -0
- package/core/runner.js +2 -0
- package/dist/report/bundle.esm.js +196 -9
- package/dist/report/flow.js +197 -10
- package/dist/report/standalone.js +197 -10
- package/flow-report/src/i18n/i18n.d.ts +2 -0
- package/package.json +15 -13
- package/readme.md +3 -0
- package/report/assets/styles.css +179 -5
- package/report/assets/templates.html +14 -0
- package/report/renderer/components.js +9 -3
- package/report/renderer/details-renderer.d.ts +5 -0
- package/report/renderer/details-renderer.js +24 -0
- package/report/renderer/dom.d.ts +12 -1
- package/report/renderer/dom.js +26 -1
- package/report/renderer/i18n-formatter.d.ts +1 -1
- package/report/renderer/performance-category-renderer.d.ts +10 -0
- package/report/renderer/performance-category-renderer.js +81 -20
- package/report/renderer/report-utils.d.ts +1 -0
- package/report/renderer/report-utils.js +2 -0
- package/report/renderer/topbar-features.js +7 -0
- package/shared/localization/locales/ar-XB.json +74 -26
- package/shared/localization/locales/ar.json +76 -28
- package/shared/localization/locales/bg.json +74 -26
- package/shared/localization/locales/ca.json +74 -26
- package/shared/localization/locales/cs.json +74 -26
- package/shared/localization/locales/da.json +74 -26
- package/shared/localization/locales/de.json +75 -27
- package/shared/localization/locales/el.json +74 -26
- package/shared/localization/locales/en-GB.json +74 -26
- package/shared/localization/locales/en-US.json +288 -30
- package/shared/localization/locales/en-XA.json +48 -24
- package/shared/localization/locales/en-XL.json +288 -30
- package/shared/localization/locales/es-419.json +74 -26
- package/shared/localization/locales/es.json +74 -26
- package/shared/localization/locales/fi.json +74 -26
- package/shared/localization/locales/fil.json +75 -27
- package/shared/localization/locales/fr.json +74 -26
- package/shared/localization/locales/he.json +82 -34
- package/shared/localization/locales/hi.json +74 -26
- package/shared/localization/locales/hr.json +75 -27
- package/shared/localization/locales/hu.json +74 -26
- package/shared/localization/locales/id.json +74 -26
- package/shared/localization/locales/it.json +85 -37
- package/shared/localization/locales/ja.json +75 -27
- package/shared/localization/locales/ko.json +75 -27
- package/shared/localization/locales/lt.json +75 -27
- package/shared/localization/locales/lv.json +74 -26
- package/shared/localization/locales/nl.json +74 -26
- package/shared/localization/locales/no.json +75 -27
- package/shared/localization/locales/pl.json +74 -26
- package/shared/localization/locales/pt-PT.json +74 -26
- package/shared/localization/locales/pt.json +74 -26
- package/shared/localization/locales/ro.json +74 -26
- package/shared/localization/locales/ru.json +74 -26
- package/shared/localization/locales/sk.json +74 -26
- package/shared/localization/locales/sl.json +74 -26
- package/shared/localization/locales/sr-Latn.json +74 -26
- package/shared/localization/locales/sr.json +74 -26
- package/shared/localization/locales/sv.json +74 -26
- package/shared/localization/locales/ta.json +74 -26
- package/shared/localization/locales/te.json +74 -26
- package/shared/localization/locales/th.json +76 -28
- package/shared/localization/locales/tr.json +74 -26
- package/shared/localization/locales/uk.json +74 -26
- package/shared/localization/locales/vi.json +74 -26
- package/shared/localization/locales/zh-HK.json +75 -27
- package/shared/localization/locales/zh-TW.json +74 -26
- package/shared/localization/locales/zh.json +74 -26
- package/third-party/chromium-synchronization/inspector-issueAdded-types-test.js +3 -0
- package/types/artifacts.d.ts +5 -3
- package/types/audit.d.ts +2 -0
- package/types/lhr/audit-details.d.ts +13 -1
- package/types/lhr/audit-result.d.ts +2 -0
- package/core/gather/gatherers/root-causes.d.ts +0 -19
- package/core/gather/gatherers/root-causes.js +0 -144
|
@@ -201,8 +201,62 @@ export class PerformanceCategoryRenderer extends CategoryRenderer {
|
|
|
201
201
|
filmstripEl && timelineEl.append(filmstripEl);
|
|
202
202
|
}
|
|
203
203
|
|
|
204
|
-
const
|
|
205
|
-
.
|
|
204
|
+
const legacyAuditsSection =
|
|
205
|
+
this.renderFilterableSection(category, groups, ['diagnostics'], metricAudits);
|
|
206
|
+
legacyAuditsSection?.classList.add('lh-perf-audits--swappable', 'lh-perf-audits--legacy');
|
|
207
|
+
|
|
208
|
+
const experimentalInsightsSection =
|
|
209
|
+
this.renderFilterableSection(category, groups, ['insights', 'diagnostics'], metricAudits);
|
|
210
|
+
experimentalInsightsSection?.classList.add(
|
|
211
|
+
'lh-perf-audits--swappable', 'lh-perf-audits--experimental');
|
|
212
|
+
|
|
213
|
+
if (legacyAuditsSection) {
|
|
214
|
+
element.append(legacyAuditsSection);
|
|
215
|
+
|
|
216
|
+
// Many tests expect just one of these sections to be in the DOM at a given time.
|
|
217
|
+
// To prevent the hidden section from tripping up these tests, we will just remove the hidden
|
|
218
|
+
// section from the DOM and store it in memory.
|
|
219
|
+
if (experimentalInsightsSection) {
|
|
220
|
+
this.dom.registerSwappableSections(legacyAuditsSection, experimentalInsightsSection);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
const isNavigationMode = !options || options?.gatherMode === 'navigation';
|
|
225
|
+
if (isNavigationMode && category.score !== null) {
|
|
226
|
+
const el = createGauge(this.dom);
|
|
227
|
+
updateGauge(this.dom, el, category);
|
|
228
|
+
this.dom.find('.lh-score__gauge', element).replaceWith(el);
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
return element;
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
/**
|
|
235
|
+
* @param {LH.ReportResult.Category} category
|
|
236
|
+
* @param {Object<string, LH.Result.ReportGroup>} groups
|
|
237
|
+
* @param {string[]} groupNames
|
|
238
|
+
* @param {LH.ReportResult.AuditRef[]} metricAudits
|
|
239
|
+
* @return {Element|null}
|
|
240
|
+
*/
|
|
241
|
+
renderFilterableSection(category, groups, groupNames, metricAudits) {
|
|
242
|
+
if (groupNames.some(groupName => !groups[groupName])) return null;
|
|
243
|
+
|
|
244
|
+
const element = this.dom.createElement('div');
|
|
245
|
+
|
|
246
|
+
/** @type {Set<string>} */
|
|
247
|
+
const replacedAuditIds = new Set();
|
|
248
|
+
|
|
249
|
+
const allGroupAudits =
|
|
250
|
+
category.auditRefs.filter(audit => audit.group && groupNames.includes(audit.group));
|
|
251
|
+
for (const auditRef of allGroupAudits) {
|
|
252
|
+
auditRef.result.replacesAudits?.forEach(replacedAuditId => {
|
|
253
|
+
replacedAuditIds.add(replacedAuditId);
|
|
254
|
+
});
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
// Diagnostics
|
|
258
|
+
const allFilterableAudits = allGroupAudits
|
|
259
|
+
.filter(audit => !replacedAuditIds.has(audit.id))
|
|
206
260
|
.map(auditRef => {
|
|
207
261
|
const {overallImpact, overallLinearImpact} = this.overallImpact(auditRef, metricAudits);
|
|
208
262
|
const guidanceLevel = auditRef.result.guidanceLevel || 1;
|
|
@@ -211,21 +265,25 @@ export class PerformanceCategoryRenderer extends CategoryRenderer {
|
|
|
211
265
|
return {auditRef, auditEl, overallImpact, overallLinearImpact, guidanceLevel};
|
|
212
266
|
});
|
|
213
267
|
|
|
214
|
-
|
|
215
|
-
const diagnosticAudits = allInsights
|
|
268
|
+
const filterableAudits = allFilterableAudits
|
|
216
269
|
.filter(audit => !ReportUtils.showAsPassed(audit.auditRef.result));
|
|
217
270
|
|
|
218
|
-
const passedAudits =
|
|
271
|
+
const passedAudits = allFilterableAudits
|
|
219
272
|
.filter(audit => ReportUtils.showAsPassed(audit.auditRef.result));
|
|
220
273
|
|
|
221
|
-
|
|
222
|
-
|
|
274
|
+
/** @type {Record<string, [Element, Element|null]|undefined>} */
|
|
275
|
+
const groupElsMap = {};
|
|
276
|
+
for (const groupName of groupNames) {
|
|
277
|
+
const groupEls = this.renderAuditGroup(groups[groupName]);
|
|
278
|
+
groupEls[0].classList.add(`lh-audit-group--${groupName}`);
|
|
279
|
+
groupElsMap[groupName] = groupEls;
|
|
280
|
+
}
|
|
223
281
|
|
|
224
282
|
/**
|
|
225
283
|
* @param {string} acronym
|
|
226
284
|
*/
|
|
227
285
|
function refreshFilteredAudits(acronym) {
|
|
228
|
-
for (const audit of
|
|
286
|
+
for (const audit of allFilterableAudits) {
|
|
229
287
|
if (acronym === 'All') {
|
|
230
288
|
audit.auditEl.hidden = false;
|
|
231
289
|
} else {
|
|
@@ -234,7 +292,7 @@ export class PerformanceCategoryRenderer extends CategoryRenderer {
|
|
|
234
292
|
}
|
|
235
293
|
}
|
|
236
294
|
|
|
237
|
-
|
|
295
|
+
filterableAudits.sort((a, b) => {
|
|
238
296
|
// Performance diagnostics should only have score display modes of "informative" and "metricSavings"
|
|
239
297
|
// If the score display mode is "metricSavings", the `score` will be a coarse approximation of the overall impact.
|
|
240
298
|
// Therefore, it makes sense to sort audits by score first to ensure visual clarity with the score icons.
|
|
@@ -266,14 +324,20 @@ export class PerformanceCategoryRenderer extends CategoryRenderer {
|
|
|
266
324
|
return b.guidanceLevel - a.guidanceLevel;
|
|
267
325
|
});
|
|
268
326
|
|
|
269
|
-
for (const audit of
|
|
327
|
+
for (const audit of filterableAudits) {
|
|
328
|
+
if (!audit.auditRef.group) continue;
|
|
329
|
+
|
|
330
|
+
const groupEls = groupElsMap[audit.auditRef.group];
|
|
331
|
+
if (!groupEls) continue;
|
|
332
|
+
|
|
333
|
+
const [groupEl, footerEl] = groupEls;
|
|
270
334
|
groupEl.insertBefore(audit.auditEl, footerEl);
|
|
271
335
|
}
|
|
272
336
|
}
|
|
273
337
|
|
|
274
338
|
/** @type {Set<string>} */
|
|
275
339
|
const filterableMetricAcronyms = new Set();
|
|
276
|
-
for (const audit of
|
|
340
|
+
for (const audit of filterableAudits) {
|
|
277
341
|
const metricSavings = audit.auditRef.result.metricSavings || {};
|
|
278
342
|
for (const [key, value] of Object.entries(metricSavings)) {
|
|
279
343
|
if (typeof value === 'number') filterableMetricAcronyms.add(key);
|
|
@@ -290,8 +354,12 @@ export class PerformanceCategoryRenderer extends CategoryRenderer {
|
|
|
290
354
|
|
|
291
355
|
refreshFilteredAudits('All');
|
|
292
356
|
|
|
293
|
-
|
|
294
|
-
|
|
357
|
+
for (const groupName of groupNames) {
|
|
358
|
+
if (filterableAudits.some(auditRef => auditRef.auditRef.group === groupName)) {
|
|
359
|
+
const groupEls = groupElsMap[groupName];
|
|
360
|
+
if (!groupEls) continue;
|
|
361
|
+
element.append(groupEls[0]);
|
|
362
|
+
}
|
|
295
363
|
}
|
|
296
364
|
|
|
297
365
|
if (!passedAudits.length) return element;
|
|
@@ -303,13 +371,6 @@ export class PerformanceCategoryRenderer extends CategoryRenderer {
|
|
|
303
371
|
const passedElem = this.renderClump('passed', clumpOpts);
|
|
304
372
|
element.append(passedElem);
|
|
305
373
|
|
|
306
|
-
const isNavigationMode = !options || options?.gatherMode === 'navigation';
|
|
307
|
-
if (isNavigationMode && category.score !== null) {
|
|
308
|
-
const el = createGauge(this.dom);
|
|
309
|
-
updateGauge(this.dom, el, category);
|
|
310
|
-
this.dom.find('.lh-score__gauge', element).replaceWith(el);
|
|
311
|
-
}
|
|
312
|
-
|
|
313
374
|
return element;
|
|
314
375
|
}
|
|
315
376
|
|
|
@@ -108,6 +108,7 @@ export namespace UIStrings {
|
|
|
108
108
|
let dropdownViewer: string;
|
|
109
109
|
let dropdownSaveGist: string;
|
|
110
110
|
let dropdownDarkTheme: string;
|
|
111
|
+
let dropdownInsightsToggle: string;
|
|
111
112
|
let dropdownViewUnthrottledTrace: string;
|
|
112
113
|
let runtimeSettingsDevice: string;
|
|
113
114
|
let runtimeSettingsNetworkThrottling: string;
|
|
@@ -418,6 +418,8 @@ const UIStrings = {
|
|
|
418
418
|
dropdownSaveGist: 'Save as Gist',
|
|
419
419
|
/** Option in a dropdown menu that toggles the themeing of the report between Light(default) and Dark themes. */
|
|
420
420
|
dropdownDarkTheme: 'Toggle Dark Theme',
|
|
421
|
+
/** Option in a dropdown menu that toggles the type of performance insights displayed. */
|
|
422
|
+
dropdownInsightsToggle: 'Toggle experimental insights',
|
|
421
423
|
/** Option in a dropdown menu that opens the trace of the page without throttling. "Unthrottled" can be replaced with "Original". */
|
|
422
424
|
dropdownViewUnthrottledTrace: 'View Unthrottled Trace',
|
|
423
425
|
|
|
@@ -114,6 +114,13 @@ export class TopbarFeatures {
|
|
|
114
114
|
toggleDarkTheme(this._dom);
|
|
115
115
|
break;
|
|
116
116
|
}
|
|
117
|
+
case 'toggle-insights': {
|
|
118
|
+
const swappableSection = this._dom.maybeFind('.lh-perf-audits--swappable');
|
|
119
|
+
if (swappableSection) {
|
|
120
|
+
this._dom.swapSectionIfPossible(swappableSection);
|
|
121
|
+
}
|
|
122
|
+
break;
|
|
123
|
+
}
|
|
117
124
|
case 'view-unthrottled-trace': {
|
|
118
125
|
this._reportUIFeatures._opts.onViewTrace?.();
|
|
119
126
|
}
|
|
@@ -977,6 +977,36 @@
|
|
|
977
977
|
"core/audits/font-display.js | undeclaredFontOriginWarning": {
|
|
978
978
|
"message": "{fontCountForOrigin,plural, =1{Lighthouse was unable to automatically check the `font-display` value for the origin {fontOrigin}.}zero{Lighthouse was unable to automatically check the `font-display` values for the origin {fontOrigin}.}two{Lighthouse was unable to automatically check the `font-display` values for the origin {fontOrigin}.}few{Lighthouse was unable to automatically check the `font-display` values for the origin {fontOrigin}.}many{Lighthouse was unable to automatically check the `font-display` values for the origin {fontOrigin}.}other{Lighthouse was unable to automatically check the `font-display` values for the origin {fontOrigin}.}}"
|
|
979
979
|
},
|
|
980
|
+
"core/audits/has-hsts.js | columnDirective": {
|
|
981
|
+
"message": "Directive"
|
|
982
|
+
},
|
|
983
|
+
"core/audits/has-hsts.js | columnSeverity": {
|
|
984
|
+
"message": "Severity"
|
|
985
|
+
},
|
|
986
|
+
"core/audits/has-hsts.js | description": {
|
|
987
|
+
"message": "Deployment of the HSTS header significantly reduces the risk of downgrading HTTP connections and eavesdropping attacks. A rollout in stages, starting with a low max-age is recommended. [Learn more about using a strong HSTS policy.](https://developer.chrome.com/docs/lighthouse/best-practices/has-hsts)"
|
|
988
|
+
},
|
|
989
|
+
"core/audits/has-hsts.js | invalidSyntax": {
|
|
990
|
+
"message": "Invalid syntax"
|
|
991
|
+
},
|
|
992
|
+
"core/audits/has-hsts.js | lowMaxAge": {
|
|
993
|
+
"message": "`max-age` is too low"
|
|
994
|
+
},
|
|
995
|
+
"core/audits/has-hsts.js | noHsts": {
|
|
996
|
+
"message": "No HSTS header found"
|
|
997
|
+
},
|
|
998
|
+
"core/audits/has-hsts.js | noMaxAge": {
|
|
999
|
+
"message": "No `max-age` directive"
|
|
1000
|
+
},
|
|
1001
|
+
"core/audits/has-hsts.js | noPreload": {
|
|
1002
|
+
"message": "No `preload` directive found"
|
|
1003
|
+
},
|
|
1004
|
+
"core/audits/has-hsts.js | noSubdomain": {
|
|
1005
|
+
"message": "No `includeSubDomains` directive found"
|
|
1006
|
+
},
|
|
1007
|
+
"core/audits/has-hsts.js | title": {
|
|
1008
|
+
"message": "Use a strong HSTS policy"
|
|
1009
|
+
},
|
|
980
1010
|
"core/audits/image-aspect-ratio.js | columnActual": {
|
|
981
1011
|
"message": "Aspect Ratio (Actual)"
|
|
982
1012
|
},
|
|
@@ -1082,9 +1112,6 @@
|
|
|
1082
1112
|
"core/audits/layout-shifts.js | rootCauseInjectedIframe": {
|
|
1083
1113
|
"message": "Injected iframe"
|
|
1084
1114
|
},
|
|
1085
|
-
"core/audits/layout-shifts.js | rootCauseRenderBlockingRequest": {
|
|
1086
|
-
"message": "A late network request adjusted the page layout"
|
|
1087
|
-
},
|
|
1088
1115
|
"core/audits/layout-shifts.js | rootCauseUnsizedMedia": {
|
|
1089
1116
|
"message": "Media element lacking an explicit size"
|
|
1090
1117
|
},
|
|
@@ -1187,6 +1214,24 @@
|
|
|
1187
1214
|
"core/audits/non-composited-animations.js | unsupportedTimingParameters": {
|
|
1188
1215
|
"message": "Effect has unsupported timing parameters"
|
|
1189
1216
|
},
|
|
1217
|
+
"core/audits/origin-isolation.js | columnDirective": {
|
|
1218
|
+
"message": "Directive"
|
|
1219
|
+
},
|
|
1220
|
+
"core/audits/origin-isolation.js | columnSeverity": {
|
|
1221
|
+
"message": "Severity"
|
|
1222
|
+
},
|
|
1223
|
+
"core/audits/origin-isolation.js | description": {
|
|
1224
|
+
"message": "The Cross-Origin-Opener-Policy (COOP) can be used to isolate the top-level window from other documents such as pop-ups. [Learn more about deploying the COOP header.](https://web.dev/articles/why-coop-coep#coop)"
|
|
1225
|
+
},
|
|
1226
|
+
"core/audits/origin-isolation.js | invalidSyntax": {
|
|
1227
|
+
"message": "Invalid syntax"
|
|
1228
|
+
},
|
|
1229
|
+
"core/audits/origin-isolation.js | noCoop": {
|
|
1230
|
+
"message": "No COOP header found"
|
|
1231
|
+
},
|
|
1232
|
+
"core/audits/origin-isolation.js | title": {
|
|
1233
|
+
"message": "Ensure proper origin isolation with COOP"
|
|
1234
|
+
},
|
|
1190
1235
|
"core/audits/preload-fonts.js | description": {
|
|
1191
1236
|
"message": "Preload `optional` fonts so first-time visitors may use them. [Learn more about preloading fonts](https://web.dev/articles/preload-optional-fonts)"
|
|
1192
1237
|
},
|
|
@@ -1688,9 +1733,6 @@
|
|
|
1688
1733
|
"core/lib/bf-cache-strings.js | appBanner": {
|
|
1689
1734
|
"message": "Pages that requested an AppBanner are not currently eligible for back/forward cache."
|
|
1690
1735
|
},
|
|
1691
|
-
"core/lib/bf-cache-strings.js | authorizationHeader": {
|
|
1692
|
-
"message": "Back/forward cache is disabled due to a keepalive request."
|
|
1693
|
-
},
|
|
1694
1736
|
"core/lib/bf-cache-strings.js | backForwardCacheDisabled": {
|
|
1695
1737
|
"message": "Back/forward cache is disabled by flags. Visit chrome://flags/#back-forward-cache to enable it locally on this device."
|
|
1696
1738
|
},
|
|
@@ -1907,9 +1949,6 @@
|
|
|
1907
1949
|
"core/lib/bf-cache-strings.js | pictureInPicture": {
|
|
1908
1950
|
"message": "Pages that use Picture-in-Picture are not currently eligible for back/forward cache."
|
|
1909
1951
|
},
|
|
1910
|
-
"core/lib/bf-cache-strings.js | portal": {
|
|
1911
|
-
"message": "Pages that use portals are not currently eligible for back/forward cache."
|
|
1912
|
-
},
|
|
1913
1952
|
"core/lib/bf-cache-strings.js | printing": {
|
|
1914
1953
|
"message": "Pages that show Printing UI are not currently eligible for back/forward cache."
|
|
1915
1954
|
},
|
|
@@ -2129,12 +2168,6 @@
|
|
|
2129
2168
|
"core/lib/deprecations-strings.js | DataUrlInSvgUse": {
|
|
2130
2169
|
"message": "Support for data: URLs in SVG <use> element is deprecated and it will be removed in the future."
|
|
2131
2170
|
},
|
|
2132
|
-
"core/lib/deprecations-strings.js | DocumentDomainSettingWithoutOriginAgentClusterHeader": {
|
|
2133
|
-
"message": "Relaxing the same-origin policy by setting `document.domain` is deprecated, and will be disabled by default. To continue using this feature, please opt-out of origin-keyed agent clusters by sending an `Origin-Agent-Cluster: ?0` header along with the HTTP response for the document and frames. See https://developer.chrome.com/blog/immutable-document-domain/ for more details."
|
|
2134
|
-
},
|
|
2135
|
-
"core/lib/deprecations-strings.js | ExpectCTHeader": {
|
|
2136
|
-
"message": "The `Expect-CT` header is deprecated and will be removed. Chrome requires Certificate Transparency for all publicly trusted certificates issued after April 30, 2018."
|
|
2137
|
-
},
|
|
2138
2171
|
"core/lib/deprecations-strings.js | GeolocationInsecureOrigin": {
|
|
2139
2172
|
"message": "`getCurrentPosition()` and `watchPosition()` no longer work on insecure origins. To use this feature, you should consider switching your application to a secure origin, such as HTTPS. See https://goo.gle/chrome-insecure-origins for more details."
|
|
2140
2173
|
},
|
|
@@ -2168,9 +2201,6 @@
|
|
|
2168
2201
|
"core/lib/deprecations-strings.js | NoSysexWebMIDIWithoutPermission": {
|
|
2169
2202
|
"message": "Web MIDI will ask a permission to use even if the sysex is not specified in the `MIDIOptions`."
|
|
2170
2203
|
},
|
|
2171
|
-
"core/lib/deprecations-strings.js | NonStandardDeclarativeShadowDOM": {
|
|
2172
|
-
"message": "The older, non-standardized `shadowroot` attribute is deprecated, and will *no longer function* in M119. Please use the new, standardized `shadowrootmode` attribute instead."
|
|
2173
|
-
},
|
|
2174
2204
|
"core/lib/deprecations-strings.js | NotificationInsecureOrigin": {
|
|
2175
2205
|
"message": "The Notification API may no longer be used from insecure origins. You should consider switching your application to a secure origin, such as HTTPS. See https://goo.gle/chrome-insecure-origins for more details."
|
|
2176
2206
|
},
|
|
@@ -2255,12 +2285,6 @@
|
|
|
2255
2285
|
"core/lib/deprecations-strings.js | WebSQL": {
|
|
2256
2286
|
"message": "Web SQL is deprecated. Please use SQLite WebAssembly or Indexed Database"
|
|
2257
2287
|
},
|
|
2258
|
-
"core/lib/deprecations-strings.js | WindowPlacementPermissionDescriptorUsed": {
|
|
2259
|
-
"message": "The permission descriptor `window-placement` is deprecated. Use `window-management` instead. For more help, check https://bit.ly/window-placement-rename."
|
|
2260
|
-
},
|
|
2261
|
-
"core/lib/deprecations-strings.js | WindowPlacementPermissionPolicyParsed": {
|
|
2262
|
-
"message": "The permission policy `window-placement` is deprecated. Use `window-management` instead. For more help, check https://bit.ly/window-placement-rename."
|
|
2263
|
-
},
|
|
2264
2288
|
"core/lib/deprecations-strings.js | XHRJSONEncodingDetection": {
|
|
2265
2289
|
"message": "UTF-16 is not supported by response json in `XMLHttpRequest`"
|
|
2266
2290
|
},
|
|
@@ -2627,6 +2651,12 @@
|
|
|
2627
2651
|
"node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | title": {
|
|
2628
2652
|
"message": "أسباب تغييرات التصميم"
|
|
2629
2653
|
},
|
|
2654
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/DOMSize.js | description": {
|
|
2655
|
+
"message": "سيؤدي حجم عناصر DOM الكبير إلى زيادة استخدام الذاكرة وإطالة مدة عمليات احتساب الأنماط وإنتاج عمليات مُكلِفة لإعادة تدفق التنسيقات والتي تؤثر في استجابة الصفحة. [التعرّف على كيفية تجنُّب زيادة حجم عناصر DOM](https://developer.chrome.com/docs/lighthouse/performance/dom-size/)"
|
|
2656
|
+
},
|
|
2657
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/DOMSize.js | title": {
|
|
2658
|
+
"message": "تحسين حجم عناصر DOM"
|
|
2659
|
+
},
|
|
2630
2660
|
"node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | description": {
|
|
2631
2661
|
"message": "طلب الشبكة الأول هو الأهم. يمكنك تقليل وقت الاستجابة للطلب عن طريق تجنُّب عمليات إعادة التوجيه وضمان استجابة الخادم بسرعة وتفعيل ميزة ضغط النص."
|
|
2632
2662
|
},
|
|
@@ -2639,6 +2669,24 @@
|
|
|
2639
2669
|
"node_modules/@paulirish/trace_engine/models/trace/insights/FontDisplay.js | title": {
|
|
2640
2670
|
"message": "عرض الخط"
|
|
2641
2671
|
},
|
|
2672
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/ImageDelivery.js | description": {
|
|
2673
|
+
"message": "يمكن أن يؤدي تقليل وقت تنزيل الصور إلى تحسين مدّة التحميل المُدرَكة للصفحة، بالإضافة إلى تحسين سرعة عرض أكبر محتوى مرئي. [مزيد من المعلومات حول تحسين حجم الصورة](https://developer.chrome.com/docs/lighthouse/performance/uses-optimized-images/)"
|
|
2674
|
+
},
|
|
2675
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/ImageDelivery.js | title": {
|
|
2676
|
+
"message": "تحسين عرض الصور"
|
|
2677
|
+
},
|
|
2678
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/ImageDelivery.js | useCompression": {
|
|
2679
|
+
"message": "يمكن أن يؤدي زيادة عامل ضغط الصورة إلى تحسين حجم تنزيلها. (الحجم المقدّر: {PH1})"
|
|
2680
|
+
},
|
|
2681
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/ImageDelivery.js | useModernFormat": {
|
|
2682
|
+
"message": "يمكن تحسين حجم تنزيل هذه الصورة باستخدام تنسيق صور حديث (مثل WebP أو AVIF) أو زيادة ضغط الصورة. (الحجم المقدّر: {PH1})"
|
|
2683
|
+
},
|
|
2684
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/ImageDelivery.js | useResponsiveSize": {
|
|
2685
|
+
"message": "حجم ملف الصورة هذا أكبر من الحجم المطلوب ({PH2}) لأبعادها المعروضة ({PH3}). يُرجى استخدام الصور المتجاوبة مع مختلف الأجهزة لتقليل حجم تنزيل الصورة. (الحجم المقدّر: {PH1})"
|
|
2686
|
+
},
|
|
2687
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/ImageDelivery.js | useVideoFormat": {
|
|
2688
|
+
"message": "إنّ استخدام تنسيقات الفيديو بدلاً من ملفات GIF يمكن أن يؤدي إلى تحسين حجم تنزيل المحتوى المتحرك. (الحجم المقدّر: {PH1})"
|
|
2689
|
+
},
|
|
2642
2690
|
"node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | description": {
|
|
2643
2691
|
"message": "ابدأ بالتحقيق في المرحلة الأطول. [يمكن تقليل التأخيرات](https://web.dev/articles/optimize-inp#optimize_interactions). ولتقليل مدة المعالجة، [حسِّن تكاليف سلسلة التعليمات الرئيسية](https://web.dev/articles/optimize-long-tasks)، والتي تكون في الغالب بيانات JavaScript."
|
|
2644
2692
|
},
|
|
@@ -2676,10 +2724,10 @@
|
|
|
2676
2724
|
"message": "الجهات الخارجية"
|
|
2677
2725
|
},
|
|
2678
2726
|
"node_modules/@paulirish/trace_engine/models/trace/insights/Viewport.js | description": {
|
|
2679
|
-
"message": "
|
|
2727
|
+
"message": "قد يتم [تأخير الاستجابة لتفاعلات النقر بمقدار 300 ملي ثانية كحد أقصى](https://developer.chrome.com/blog/300ms-tap-delay-gone-away/) إذا لم يتم تحسين إطار العرض للأجهزة الجوّالة."
|
|
2680
2728
|
},
|
|
2681
2729
|
"node_modules/@paulirish/trace_engine/models/trace/insights/Viewport.js | title": {
|
|
2682
|
-
"message": "إطار العرض
|
|
2730
|
+
"message": "تحسين إطار العرض للأجهزة الجوّالة"
|
|
2683
2731
|
},
|
|
2684
2732
|
"node_modules/lighthouse-stack-packs/packs/amp.js | efficient-animated-content": {
|
|
2685
2733
|
"message": "For animated content, use [`amp-anim`](https://amp.dev/documentation/components/amp-anim/) to minimize CPU usage when the content is offscreen."
|
|
@@ -771,7 +771,7 @@
|
|
|
771
771
|
"message": "تجنَّب سلاسل الطلبات المهمة"
|
|
772
772
|
},
|
|
773
773
|
"core/audits/csp-xss.js | columnDirective": {
|
|
774
|
-
"message": "
|
|
774
|
+
"message": "التوجيه"
|
|
775
775
|
},
|
|
776
776
|
"core/audits/csp-xss.js | columnSeverity": {
|
|
777
777
|
"message": "درجة الخطورة"
|
|
@@ -977,6 +977,36 @@
|
|
|
977
977
|
"core/audits/font-display.js | undeclaredFontOriginWarning": {
|
|
978
978
|
"message": "{fontCountForOrigin,plural, =1{لم تتمكّن أداة Lighthouse من التحقّق تلقائيًا من قيمة `font-display` في الأصل التالي: {fontOrigin}.}zero{لم تتمكّن أداة Lighthouse من التحقّق تلقائيًا من قيم `font-display` في الأصول التالية: {fontOrigin}.}two{لم تتمكّن أداة Lighthouse من التحقّق تلقائيًا من قيم `font-display` في الأصلَين التاليَين: {fontOrigin}.}few{لم تتمكّن أداة Lighthouse من التحقّق تلقائيًا من قيم `font-display` في الأصول التالية: {fontOrigin}.}many{لم تتمكّن أداة Lighthouse من التحقّق تلقائيًا من قيم `font-display` في الأصول التالية: {fontOrigin}.}other{لم تتمكّن أداة Lighthouse من التحقّق تلقائيًا من قيم `font-display` في الأصول التالية: {fontOrigin}.}}"
|
|
979
979
|
},
|
|
980
|
+
"core/audits/has-hsts.js | columnDirective": {
|
|
981
|
+
"message": "التوجيه"
|
|
982
|
+
},
|
|
983
|
+
"core/audits/has-hsts.js | columnSeverity": {
|
|
984
|
+
"message": "درجة الخطورة"
|
|
985
|
+
},
|
|
986
|
+
"core/audits/has-hsts.js | description": {
|
|
987
|
+
"message": "يساهم تفعيل عنوان HSTS في تقليل خطر خفض مستوى اتصالات HTTP بشكل كبير مع منع محاولات التجسس على البيانات. يُنصح بتنفيذ الميزة على مراحل، بدءًا من قيمة منخفضة لتوجيه max-age. [مزيد من المعلومات عن استخدام سياسة HSTS قوية](https://developer.chrome.com/docs/lighthouse/best-practices/has-hsts)"
|
|
988
|
+
},
|
|
989
|
+
"core/audits/has-hsts.js | invalidSyntax": {
|
|
990
|
+
"message": "بنية غير صالحة"
|
|
991
|
+
},
|
|
992
|
+
"core/audits/has-hsts.js | lowMaxAge": {
|
|
993
|
+
"message": "قيمة توجيه `max-age` منخفضة جدًا"
|
|
994
|
+
},
|
|
995
|
+
"core/audits/has-hsts.js | noHsts": {
|
|
996
|
+
"message": "لم يتم العثور على عنوان HSTS"
|
|
997
|
+
},
|
|
998
|
+
"core/audits/has-hsts.js | noMaxAge": {
|
|
999
|
+
"message": "لم يتم العثور على توجيه `max-age`"
|
|
1000
|
+
},
|
|
1001
|
+
"core/audits/has-hsts.js | noPreload": {
|
|
1002
|
+
"message": "لم يتم العثور على توجيه `preload`"
|
|
1003
|
+
},
|
|
1004
|
+
"core/audits/has-hsts.js | noSubdomain": {
|
|
1005
|
+
"message": "لم يتم العثور على توجيه `includeSubDomains`"
|
|
1006
|
+
},
|
|
1007
|
+
"core/audits/has-hsts.js | title": {
|
|
1008
|
+
"message": "استخدام سياسة HSTS قوية"
|
|
1009
|
+
},
|
|
980
1010
|
"core/audits/image-aspect-ratio.js | columnActual": {
|
|
981
1011
|
"message": "نسبة العرض إلى الارتفاع (الفعلية)"
|
|
982
1012
|
},
|
|
@@ -1082,9 +1112,6 @@
|
|
|
1082
1112
|
"core/audits/layout-shifts.js | rootCauseInjectedIframe": {
|
|
1083
1113
|
"message": "إطار iframe الذي تم إدخاله"
|
|
1084
1114
|
},
|
|
1085
|
-
"core/audits/layout-shifts.js | rootCauseRenderBlockingRequest": {
|
|
1086
|
-
"message": "أدَّى طلب الشبكة المتأخّر إلى تعديل تصميم الصفحة."
|
|
1087
|
-
},
|
|
1088
1115
|
"core/audits/layout-shifts.js | rootCauseUnsizedMedia": {
|
|
1089
1116
|
"message": "لم يتم تحديد حجم واضح لعنصر الوسائط."
|
|
1090
1117
|
},
|
|
@@ -1187,6 +1214,24 @@
|
|
|
1187
1214
|
"core/audits/non-composited-animations.js | unsupportedTimingParameters": {
|
|
1188
1215
|
"message": "يحتوي \"التأثير\" على مَعلَمات توقيت غير متوافقة"
|
|
1189
1216
|
},
|
|
1217
|
+
"core/audits/origin-isolation.js | columnDirective": {
|
|
1218
|
+
"message": "التوجيه"
|
|
1219
|
+
},
|
|
1220
|
+
"core/audits/origin-isolation.js | columnSeverity": {
|
|
1221
|
+
"message": "درجة الخطورة"
|
|
1222
|
+
},
|
|
1223
|
+
"core/audits/origin-isolation.js | description": {
|
|
1224
|
+
"message": "يمكن استخدام سياسة Cross-Origin-Opener-Policy (COOP) لعزل النافذة ذات المستوى الأعلى عن المستندات الأخرى، مثل النوافذ المنبثقة. [مزيد من المعلومات حول تفعيل عنوان COOP](https://web.dev/articles/why-coop-coep#coop)"
|
|
1225
|
+
},
|
|
1226
|
+
"core/audits/origin-isolation.js | invalidSyntax": {
|
|
1227
|
+
"message": "بنية غير صالحة"
|
|
1228
|
+
},
|
|
1229
|
+
"core/audits/origin-isolation.js | noCoop": {
|
|
1230
|
+
"message": "لم يتم العثور على عنوان COOP"
|
|
1231
|
+
},
|
|
1232
|
+
"core/audits/origin-isolation.js | title": {
|
|
1233
|
+
"message": "ضمان عزل النطاق بشكلٍ صحيح باستخدام سياسة COOP"
|
|
1234
|
+
},
|
|
1190
1235
|
"core/audits/preload-fonts.js | description": {
|
|
1191
1236
|
"message": "يجب تحميل الخطوط `optional` بشكل مسبق حتى يتسنى للزوار الجدد استخدامها. [مزيد من المعلومات عن التحميل المسبَق للخطوط](https://web.dev/articles/preload-optional-fonts)"
|
|
1192
1237
|
},
|
|
@@ -1688,9 +1733,6 @@
|
|
|
1688
1733
|
"core/lib/bf-cache-strings.js | appBanner": {
|
|
1689
1734
|
"message": "لا يمكن استخدام ميزة \"التخزين المؤقت للصفحات\" حاليًا لتخزين الصفحات التي طلبت AppBanner."
|
|
1690
1735
|
},
|
|
1691
|
-
"core/lib/bf-cache-strings.js | authorizationHeader": {
|
|
1692
|
-
"message": "تم إيقاف ميزة \"التخزين المؤقت للصفحات\" بسبب طلب التحقّق من الاتصال."
|
|
1693
|
-
},
|
|
1694
1736
|
"core/lib/bf-cache-strings.js | backForwardCacheDisabled": {
|
|
1695
1737
|
"message": "تم إيقاف ميزة \"التخزين المؤقت للصفحات\" في chrome://flags. يمكنك الانتقال إلى الرابط chrome://flags/#back-forward-cache لتفعيلها على هذا الجهاز."
|
|
1696
1738
|
},
|
|
@@ -1907,9 +1949,6 @@
|
|
|
1907
1949
|
"core/lib/bf-cache-strings.js | pictureInPicture": {
|
|
1908
1950
|
"message": "لا يمكن استخدام ميزة \"التخزين المؤقت للصفحات\" حاليًا لتخزين الصفحات التي تستخدم ميزة \"نافذة ضمن النافذة\"."
|
|
1909
1951
|
},
|
|
1910
|
-
"core/lib/bf-cache-strings.js | portal": {
|
|
1911
|
-
"message": "لا يمكن استخدام ميزة \"التخزين المؤقت للصفحات\" حاليًا لتخزين الصفحات التي تستخدم بوابات الويب."
|
|
1912
|
-
},
|
|
1913
1952
|
"core/lib/bf-cache-strings.js | printing": {
|
|
1914
1953
|
"message": "لا يمكن استخدام ميزة \"التخزين المؤقت للصفحات\" حاليًا لتخزين الصفحات التي تعرض \"واجهة المستخدم الخاصة بالطباعة\"."
|
|
1915
1954
|
},
|
|
@@ -2129,12 +2168,6 @@
|
|
|
2129
2168
|
"core/lib/deprecations-strings.js | DataUrlInSvgUse": {
|
|
2130
2169
|
"message": "تم إيقاف المخطّطات data: URL نهائيًا في عنصر <use> للرسومات الموجّهة التي يمكن تغيير حجمها (SVG) وستتم إزالتها في المستقبل."
|
|
2131
2170
|
},
|
|
2132
|
-
"core/lib/deprecations-strings.js | DocumentDomainSettingWithoutOriginAgentClusterHeader": {
|
|
2133
|
-
"message": "إنّ ميزة تخفيف قيود السياسة المشتركة المصدر من خلال ضبط `document.domain` تم إيقافها نهائيًا، وستصبح غير مفعَّلة تلقائيًا. لمواصلة استخدام هذه الميزة، يُرجى إيقاف مجموعات الوكلاء المرتبطة حسب المصدر من خلال إرسال العنوان `Origin-Agent-Cluster: ?0` مع استجابة HTTP للمستند والإطارات. لمعرفة مزيد من التفاصيل، يمكنك الاطّلاع على https://developer.chrome.com/blog/immutable-document-domain/."
|
|
2134
|
-
},
|
|
2135
|
-
"core/lib/deprecations-strings.js | ExpectCTHeader": {
|
|
2136
|
-
"message": "تم إيقاف عنوان `Expect-CT` نهائيًا وستتم إزالته. يتطلَّب Chrome توفُّر شهادة الشفافية لجميع الشهادات الموثوق بها التي تم إصدارها بشكل علني بعد 30 نيسان (أبريل) 2018."
|
|
2137
|
-
},
|
|
2138
2171
|
"core/lib/deprecations-strings.js | GeolocationInsecureOrigin": {
|
|
2139
2172
|
"message": "لم تعُد الميزتان `getCurrentPosition()` و`watchPosition()` متوافقتين مع المصادر غير الآمنة. لاستخدام هذه الميزة، يجب مراعاة نقل تطبيقك إلى مصدر آمن مثل HTTPS. لمعرفة مزيد من التفاصيل، يُرجى الاطّلاع على https://goo.gle/chrome-insecure-origins."
|
|
2140
2173
|
},
|
|
@@ -2168,9 +2201,6 @@
|
|
|
2168
2201
|
"core/lib/deprecations-strings.js | NoSysexWebMIDIWithoutPermission": {
|
|
2169
2202
|
"message": "ستطلب واجهة برمجة التطبيقات Web MIDI إذنًا للاستخدام حتى في حال عدم تحديد رسائل النظام الحصرية (Sysex) في `MIDIOptions`."
|
|
2170
2203
|
},
|
|
2171
|
-
"core/lib/deprecations-strings.js | NonStandardDeclarativeShadowDOM": {
|
|
2172
|
-
"message": "إنّ سمة `shadowroot` القديمة غير الموحّدة تم إيقافها نهائيًا، و*لن تعمل* بعد الآن في الإصدار M119. يُرجى استخدام سمة `shadowrootmode` الجديدة الموحّدة بدلاً منها."
|
|
2173
|
-
},
|
|
2174
2204
|
"core/lib/deprecations-strings.js | NotificationInsecureOrigin": {
|
|
2175
2205
|
"message": "قد يتوقف استخدام واجهة برمجة التطبيقات Notification API من مصادر غير آمنة. يجب مراعاة نقل تطبيقك إلى مصدر آمن، مثل HTTPS. لمعرفة مزيد من التفاصيل، يُرجى الاطّلاع على https://goo.gle/chrome-insecure-origins."
|
|
2176
2206
|
},
|
|
@@ -2255,12 +2285,6 @@
|
|
|
2255
2285
|
"core/lib/deprecations-strings.js | WebSQL": {
|
|
2256
2286
|
"message": "تم إيقاف لغة الاستعلامات البنيوية (SQL) على الويب نهائيًا. يُرجى استخدام SQLite WebAssembly أو Indexed Database."
|
|
2257
2287
|
},
|
|
2258
|
-
"core/lib/deprecations-strings.js | WindowPlacementPermissionDescriptorUsed": {
|
|
2259
|
-
"message": "تم إيقاف واصف الأذونات `window-placement` نهائيًا. يمكنك استخدام `window-management` كبديل. للحصول على مزيد من المساعدة، يُرجى الاطّلاع على الرابط https://bit.ly/window-placement-rename."
|
|
2260
|
-
},
|
|
2261
|
-
"core/lib/deprecations-strings.js | WindowPlacementPermissionPolicyParsed": {
|
|
2262
|
-
"message": "تم إيقاف سياسة الأذونات `window-placement` نهائيًا. يمكنك استخدام `window-management` كبديل. للحصول على مزيد من المساعدة، يُرجى الاطّلاع على الرابط https://bit.ly/window-placement-rename."
|
|
2263
|
-
},
|
|
2264
2288
|
"core/lib/deprecations-strings.js | XHRJSONEncodingDetection": {
|
|
2265
2289
|
"message": "لا يتوفّر الترميز UTF-16 من خلال استجابة تنسيق json في واجهة برمجة التطبيقات `XMLHttpRequest`."
|
|
2266
2290
|
},
|
|
@@ -2627,6 +2651,12 @@
|
|
|
2627
2651
|
"node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | title": {
|
|
2628
2652
|
"message": "أسباب تغييرات التصميم"
|
|
2629
2653
|
},
|
|
2654
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/DOMSize.js | description": {
|
|
2655
|
+
"message": "سيؤدي حجم عناصر DOM الكبير إلى زيادة استخدام الذاكرة وإطالة مدة عمليات احتساب الأنماط وإنتاج عمليات مُكلِفة لإعادة تدفق التنسيقات والتي تؤثر في استجابة الصفحة. [التعرّف على كيفية تجنُّب زيادة حجم عناصر DOM](https://developer.chrome.com/docs/lighthouse/performance/dom-size/)"
|
|
2656
|
+
},
|
|
2657
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/DOMSize.js | title": {
|
|
2658
|
+
"message": "تحسين حجم عناصر DOM"
|
|
2659
|
+
},
|
|
2630
2660
|
"node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | description": {
|
|
2631
2661
|
"message": "طلب الشبكة الأول هو الأهم. يمكنك تقليل وقت الاستجابة للطلب عن طريق تجنُّب عمليات إعادة التوجيه وضمان استجابة الخادم بسرعة وتفعيل ميزة ضغط النص."
|
|
2632
2662
|
},
|
|
@@ -2639,6 +2669,24 @@
|
|
|
2639
2669
|
"node_modules/@paulirish/trace_engine/models/trace/insights/FontDisplay.js | title": {
|
|
2640
2670
|
"message": "عرض الخط"
|
|
2641
2671
|
},
|
|
2672
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/ImageDelivery.js | description": {
|
|
2673
|
+
"message": "يمكن أن يؤدي تقليل وقت تنزيل الصور إلى تحسين مدّة التحميل المُدرَكة للصفحة، بالإضافة إلى تحسين سرعة عرض أكبر محتوى مرئي. [مزيد من المعلومات حول تحسين حجم الصورة](https://developer.chrome.com/docs/lighthouse/performance/uses-optimized-images/)"
|
|
2674
|
+
},
|
|
2675
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/ImageDelivery.js | title": {
|
|
2676
|
+
"message": "تحسين عرض الصور"
|
|
2677
|
+
},
|
|
2678
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/ImageDelivery.js | useCompression": {
|
|
2679
|
+
"message": "يمكن أن يؤدي زيادة عامل ضغط الصورة إلى تحسين حجم تنزيلها. (الحجم المقدّر: {PH1})"
|
|
2680
|
+
},
|
|
2681
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/ImageDelivery.js | useModernFormat": {
|
|
2682
|
+
"message": "يمكن تحسين حجم تنزيل هذه الصورة باستخدام تنسيق صور حديث (مثل WebP أو AVIF) أو زيادة ضغط الصورة. (الحجم المقدّر: {PH1})"
|
|
2683
|
+
},
|
|
2684
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/ImageDelivery.js | useResponsiveSize": {
|
|
2685
|
+
"message": "حجم ملف الصورة هذا أكبر من الحجم المطلوب ({PH2}) لأبعادها المعروضة ({PH3}). يُرجى استخدام الصور المتجاوبة مع مختلف الأجهزة لتقليل حجم تنزيل الصورة. (الحجم المقدّر: {PH1})"
|
|
2686
|
+
},
|
|
2687
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/ImageDelivery.js | useVideoFormat": {
|
|
2688
|
+
"message": "إنّ استخدام تنسيقات الفيديو بدلاً من ملفات GIF يمكن أن يؤدي إلى تحسين حجم تنزيل المحتوى المتحرك. (الحجم المقدّر: {PH1})"
|
|
2689
|
+
},
|
|
2642
2690
|
"node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | description": {
|
|
2643
2691
|
"message": "ابدأ بالتحقيق في المرحلة الأطول. [يمكن تقليل التأخيرات](https://web.dev/articles/optimize-inp#optimize_interactions). ولتقليل مدة المعالجة، [حسِّن تكاليف سلسلة التعليمات الرئيسية](https://web.dev/articles/optimize-long-tasks)، والتي تكون في الغالب بيانات JavaScript."
|
|
2644
2692
|
},
|
|
@@ -2676,10 +2724,10 @@
|
|
|
2676
2724
|
"message": "الجهات الخارجية"
|
|
2677
2725
|
},
|
|
2678
2726
|
"node_modules/@paulirish/trace_engine/models/trace/insights/Viewport.js | description": {
|
|
2679
|
-
"message": "
|
|
2727
|
+
"message": "قد يتم [تأخير الاستجابة لتفاعلات النقر بمقدار 300 ملي ثانية كحد أقصى](https://developer.chrome.com/blog/300ms-tap-delay-gone-away/) إذا لم يتم تحسين إطار العرض للأجهزة الجوّالة."
|
|
2680
2728
|
},
|
|
2681
2729
|
"node_modules/@paulirish/trace_engine/models/trace/insights/Viewport.js | title": {
|
|
2682
|
-
"message": "إطار العرض
|
|
2730
|
+
"message": "تحسين إطار العرض للأجهزة الجوّالة"
|
|
2683
2731
|
},
|
|
2684
2732
|
"node_modules/lighthouse-stack-packs/packs/amp.js | efficient-animated-content": {
|
|
2685
2733
|
"message": "بالنسبة إلى المحتوى الذي يتضمن صورًا متحركة، يمكنك استخدام [`amp-anim`](https://amp.dev/documentation/components/amp-anim/) لتقليل استخدام وحدة المعالجة المركزية (CPU) عندما يكون المحتوى خارج الشاشة."
|
|
@@ -3120,7 +3168,7 @@
|
|
|
3120
3168
|
"message": "يمكنك استخدام [مكون WordPress الإضافي لتحسين الصورة](https://wordpress.org/plugins/search/optimize+images/) الذي يضغط صورك مع المحافظة على الجودة."
|
|
3121
3169
|
},
|
|
3122
3170
|
"node_modules/lighthouse-stack-packs/packs/wordpress.js | uses-responsive-images": {
|
|
3123
|
-
"message": "يمكنك تحميل الصور مباشرةً من خلال [مكتبة الوسائط](https://wordpress.org/support/article/media-library-screen/) للتأكّد من توفّر أحجام الصور المطلوبة، ثم إدراجها من مكتبة الوسائط أو استخدام
|
|
3171
|
+
"message": "يمكنك تحميل الصور مباشرةً من خلال [مكتبة الوسائط](https://wordpress.org/support/article/media-library-screen/) للتأكّد من توفّر أحجام الصور المطلوبة، ثم إدراجها من مكتبة الوسائط أو استخدام تطبيق الصورة المصغَّر لضمان استخدام أفضل حجم للصورة (بما في ذلك تلك الخاصة بنقاط فاصلة متجاوبة). يمكنك تجنب استخدام صور `Full Size` إلا إذا كانت الأبعاد كافية لاستخدامها. [مزيد من المعلومات](https://wordpress.org/support/article/inserting-images-into-posts-and-pages/)"
|
|
3124
3172
|
},
|
|
3125
3173
|
"node_modules/lighthouse-stack-packs/packs/wordpress.js | uses-text-compression": {
|
|
3126
3174
|
"message": "يمكنك تفعيل ضغط النص في إعداد خادم الويب."
|