lighthouse 12.6.1 → 12.7.0-dev.20250628
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 +2 -0
- package/cli/test/smokehouse/frontends/lib.js +0 -2
- package/cli/test/smokehouse/frontends/smokehouse-bin.js +1 -3
- package/cli/test/smokehouse/lighthouse-runners/cli.js +1 -1
- package/cli/test/smokehouse/smokehouse.js +0 -2
- package/core/audits/audit.d.ts +7 -0
- package/core/audits/audit.js +17 -2
- package/core/audits/byte-efficiency/byte-efficiency-audit.js +6 -8
- package/core/audits/byte-efficiency/legacy-javascript.js +0 -1
- package/core/audits/byte-efficiency/render-blocking-resources.js +1 -1
- package/core/audits/deprecations.js +0 -2
- package/core/audits/insights/cache-insight.js +2 -1
- package/core/audits/insights/cls-culprits-insight.js +6 -7
- package/core/audits/insights/{interaction-to-next-paint-insight.d.ts → inp-breakdown-insight.d.ts} +3 -3
- package/core/audits/insights/{interaction-to-next-paint-insight.js → inp-breakdown-insight.js} +10 -10
- package/core/audits/insights/insight-audit.d.ts +7 -4
- package/core/audits/insights/insight-audit.js +48 -7
- package/core/audits/insights/lcp-breakdown-insight.d.ts +16 -0
- package/core/audits/insights/{lcp-phases-insight.js → lcp-breakdown-insight.js} +19 -19
- package/core/audits/insights/modern-http-insight.js +0 -2
- package/core/audits/insights/network-dependency-tree-insight.js +85 -8
- package/core/audits/insights/render-blocking-insight.js +1 -1
- package/core/audits/layout-shifts.js +5 -4
- package/core/audits/seo/crawlable-anchors.js +27 -0
- package/core/audits/seo/link-text.js +130 -83
- package/core/audits/third-party-cookies.js +0 -2
- package/core/audits/valid-source-maps.js +0 -2
- package/core/computed/js-bundles.js +0 -1
- package/core/computed/metrics/cumulative-layout-shift.js +1 -1
- package/core/computed/metrics/lantern-metric.js +4 -3
- package/core/computed/metrics/timing-summary.js +4 -1
- package/core/computed/page-dependency-graph.js +3 -3
- package/core/computed/trace-engine-result.js +1 -2
- package/core/config/config.js +1 -1
- package/core/config/default-config.js +4 -4
- package/core/config/experimental-config.js +2 -2
- package/core/config/filters.js +7 -0
- package/core/config/validation.js +4 -0
- package/core/gather/base-artifacts.js +3 -0
- package/core/gather/driver/environment.d.ts +6 -0
- package/core/gather/driver/environment.js +17 -0
- package/core/gather/driver/execution-context.d.ts +3 -1
- package/core/gather/driver/execution-context.js +3 -1
- package/core/gather/driver/navigation.js +1 -3
- package/core/gather/driver/wait-for-condition.js +0 -1
- package/core/gather/fetcher.js +0 -2
- package/core/gather/gatherers/accessibility.js +1 -1
- package/core/gather/gatherers/anchor-elements.js +61 -2
- package/core/gather/gatherers/cache-contents.js +0 -2
- package/core/gather/gatherers/css-usage.js +3 -1
- package/core/gather/gatherers/dobetterweb/doctype.js +0 -2
- package/core/gather/gatherers/dobetterweb/domstats.js +1 -1
- package/core/gather/gatherers/full-page-screenshot.js +1 -1
- package/core/gather/gatherers/image-elements.js +1 -1
- package/core/gather/gatherers/inspector-issues.js +1 -1
- package/core/gather/gatherers/link-elements.js +1 -1
- package/core/gather/gatherers/stacks.js +0 -1
- package/core/gather/gatherers/stylesheets.js +3 -1
- package/core/gather/gatherers/trace-elements.d.ts +3 -4
- package/core/gather/gatherers/trace-elements.js +13 -43
- package/core/gather/gatherers/viewport-dimensions.js +0 -2
- package/core/index.cjs +0 -1
- package/core/index.d.cts +5 -0
- package/core/lib/asset-saver.d.ts +1 -1
- package/core/lib/asset-saver.js +20 -8
- package/core/lib/bf-cache-strings.js +4 -1
- package/core/lib/deprecations-strings.d.ts +51 -47
- package/core/lib/deprecations-strings.js +14 -8
- package/core/lib/i18n/i18n.js +0 -2
- package/core/lib/lantern-trace-saver.js +1 -1
- package/core/lib/lh-error.js +0 -1
- package/core/lib/manifest-parser.js +0 -2
- package/core/lib/minify-devtoolslog.js +0 -2
- package/core/lib/sentry.d.ts +1 -1
- package/core/lib/sentry.js +2 -2
- package/core/runner.js +11 -8
- package/core/scoring.d.ts +186 -15
- package/core/scripts/manual-chrome-launcher.js +0 -1
- package/dist/report/bundle.esm.js +14 -12
- package/dist/report/flow.js +18 -16
- package/dist/report/standalone.js +15 -13
- package/eslint.config.mjs +242 -0
- package/flow-report/src/common.tsx +1 -0
- package/flow-report/src/i18n/i18n.tsx +1 -0
- package/flow-report/src/util.ts +2 -0
- package/package.json +23 -19
- package/readme.md +3 -2
- package/report/assets/styles.css +11 -9
- package/report/assets/templates.html +1 -1
- package/report/generator/file-namer.d.ts +5 -0
- package/report/generator/file-namer.js +1 -1
- package/report/generator/flow-report-assets.js +1 -1
- package/report/generator/report-assets.js +1 -1
- package/report/generator/report-generator.js +3 -3
- package/report/renderer/api.js +1 -0
- package/report/renderer/components.js +2 -2
- package/report/renderer/details-renderer.d.ts +5 -0
- package/report/renderer/details-renderer.js +35 -3
- package/report/renderer/dom.d.ts +2 -0
- package/report/renderer/dom.js +6 -0
- package/report/renderer/i18n-formatter.js +2 -1
- package/report/renderer/performance-category-renderer.js +2 -2
- package/report/renderer/report-renderer.js +1 -0
- package/report/renderer/report-ui-features.d.ts +1 -0
- package/report/renderer/report-ui-features.js +16 -0
- package/report/renderer/report-utils.js +3 -2
- package/report/renderer/text-encoding.js +0 -2
- package/report/renderer/topbar-features.js +1 -1
- package/report/types/report-renderer.d.ts +5 -0
- package/shared/localization/locales/ar-XB.json +57 -69
- package/shared/localization/locales/ar.json +57 -69
- package/shared/localization/locales/bg.json +57 -69
- package/shared/localization/locales/ca.json +57 -69
- package/shared/localization/locales/cs.json +57 -69
- package/shared/localization/locales/da.json +57 -69
- package/shared/localization/locales/de.json +57 -69
- package/shared/localization/locales/el.json +57 -69
- package/shared/localization/locales/en-GB.json +57 -69
- package/shared/localization/locales/en-US.json +73 -61
- package/shared/localization/locales/en-XL.json +73 -61
- package/shared/localization/locales/es-419.json +57 -69
- package/shared/localization/locales/es.json +56 -68
- package/shared/localization/locales/fi.json +57 -69
- package/shared/localization/locales/fil.json +57 -69
- package/shared/localization/locales/fr.json +57 -69
- package/shared/localization/locales/he.json +57 -69
- package/shared/localization/locales/hi.json +57 -69
- package/shared/localization/locales/hr.json +57 -69
- package/shared/localization/locales/hu.json +56 -68
- package/shared/localization/locales/id.json +57 -69
- package/shared/localization/locales/it.json +56 -68
- package/shared/localization/locales/ja.json +57 -69
- package/shared/localization/locales/ko.json +57 -69
- package/shared/localization/locales/lt.json +57 -69
- package/shared/localization/locales/lv.json +57 -69
- package/shared/localization/locales/nl.json +57 -69
- package/shared/localization/locales/no.json +57 -69
- package/shared/localization/locales/pl.json +56 -68
- package/shared/localization/locales/pt-PT.json +57 -69
- package/shared/localization/locales/pt.json +57 -69
- package/shared/localization/locales/ro.json +57 -69
- package/shared/localization/locales/ru.json +58 -70
- package/shared/localization/locales/sk.json +57 -69
- package/shared/localization/locales/sl.json +56 -68
- package/shared/localization/locales/sr-Latn.json +57 -69
- package/shared/localization/locales/sr.json +57 -69
- package/shared/localization/locales/sv.json +57 -69
- package/shared/localization/locales/ta.json +57 -69
- package/shared/localization/locales/te.json +57 -69
- package/shared/localization/locales/th.json +56 -68
- package/shared/localization/locales/tr.json +57 -69
- package/shared/localization/locales/uk.json +57 -69
- package/shared/localization/locales/vi.json +57 -69
- package/shared/localization/locales/zh-HK.json +57 -69
- package/shared/localization/locales/zh-TW.json +56 -68
- package/shared/localization/locales/zh.json +57 -69
- package/third-party/chromium-synchronization/inspector-issueAdded-types-test.js +1 -1
- package/types/artifacts.d.ts +8 -1
- package/types/internal/test.d.ts +1 -1
- package/types/lhr/audit-details.d.ts +13 -3
- package/types/lhr/lhr.d.ts +8 -1
- package/core/audits/insights/lcp-phases-insight.d.ts +0 -16
|
@@ -2171,9 +2171,6 @@
|
|
|
2171
2171
|
"node_modules/@paulirish/trace_engine/generated/Deprecation.js | CanRequestURLHTTPContainingNewline": {
|
|
2172
2172
|
"message": "Resource requests whose URLs contained both removed whitespace \\(n|r|t) characters and less-than characters (<) are blocked. Please remove newlines and encode less-than characters from places like element attribute values in order to load these resources."
|
|
2173
2173
|
},
|
|
2174
|
-
"node_modules/@paulirish/trace_engine/generated/Deprecation.js | CharsetAutoDetectionISO2022JP": {
|
|
2175
|
-
"message": "Auto-detection of ISO-2022-JP character set is deprecated and it will be disabled in the near future. Please specify character set in the content type header or by using a meta tag (https://developer.mozilla.org/en-US/docs/Glossary/Character_encoding)."
|
|
2176
|
-
},
|
|
2177
2174
|
"node_modules/@paulirish/trace_engine/generated/Deprecation.js | ChromeLoadTimesConnectionInfo": {
|
|
2178
2175
|
"message": "chrome.loadTimes() is deprecated. Instead, use standardised API: Navigation Timing 2."
|
|
2179
2176
|
},
|
|
@@ -2195,9 +2192,6 @@
|
|
|
2195
2192
|
"node_modules/@paulirish/trace_engine/generated/Deprecation.js | CrossOriginWindowConfirm": {
|
|
2196
2193
|
"message": "Triggering window.confirm from cross-origin iframes has been deprecated and will be removed in the future."
|
|
2197
2194
|
},
|
|
2198
|
-
"node_modules/@paulirish/trace_engine/generated/Deprecation.js | DOMMutationEvents": {
|
|
2199
|
-
"message": "DOM mutation events, including DOMSubtreeModified, DOMNodeInserted, DOMNodeRemoved, DOMNodeRemovedFromDocument, DOMNodeInsertedIntoDocument and DOMCharacterDataModified are deprecated (https://w3c.github.io/uievents/#legacy-event-types) and will be removed. Please use MutationObserver instead."
|
|
2200
|
-
},
|
|
2201
2195
|
"node_modules/@paulirish/trace_engine/generated/Deprecation.js | DataUrlInSvgUse": {
|
|
2202
2196
|
"message": "Support for data: URLs in SVGUseElement is deprecated and it will be removed in the future."
|
|
2203
2197
|
},
|
|
@@ -2327,6 +2321,9 @@
|
|
|
2327
2321
|
"node_modules/@paulirish/trace_engine/generated/Deprecation.js | V8SharedArrayBufferConstructedInExtensionWithoutIsolation": {
|
|
2328
2322
|
"message": "Extensions should opt in to cross-origin isolation to continue using SharedArrayBuffer. See https://developer.chrome.com/docs/extensions/mv3/cross-origin-isolation/."
|
|
2329
2323
|
},
|
|
2324
|
+
"node_modules/@paulirish/trace_engine/generated/Deprecation.js | WebGPUAdapterIsFallbackAdapter": {
|
|
2325
|
+
"message": "The GPUAdapter isFallbackAdapter attribute is deprecated. Instead, use the GPUAdapterInfo isFallbackAdapter attribute."
|
|
2326
|
+
},
|
|
2330
2327
|
"node_modules/@paulirish/trace_engine/generated/Deprecation.js | XHRJSONEncodingDetection": {
|
|
2331
2328
|
"message": "UTF-16 is not supported by response JSON in XMLHttpRequest"
|
|
2332
2329
|
},
|
|
@@ -2339,9 +2336,6 @@
|
|
|
2339
2336
|
"node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | description": {
|
|
2340
2337
|
"message": "Layout shifts occur when elements move absent any user interaction. [Investigate the causes of layout shifts](https://web.dev/articles/optimize-cls), such as elements being added, removed or their fonts changing as the page loads."
|
|
2341
2338
|
},
|
|
2342
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | fontRequest": {
|
|
2343
|
-
"message": "Font request"
|
|
2344
|
-
},
|
|
2345
2339
|
"node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | injectedIframe": {
|
|
2346
2340
|
"message": "Injected iframe"
|
|
2347
2341
|
},
|
|
@@ -2360,9 +2354,6 @@
|
|
|
2360
2354
|
"node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | topCulprits": {
|
|
2361
2355
|
"message": "Top layout shift culprits"
|
|
2362
2356
|
},
|
|
2363
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | unsizedImages": {
|
|
2364
|
-
"message": "Unsized Images"
|
|
2365
|
-
},
|
|
2366
2357
|
"node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | worstCluster": {
|
|
2367
2358
|
"message": "Worst cluster"
|
|
2368
2359
|
},
|
|
@@ -2414,12 +2405,21 @@
|
|
|
2414
2405
|
"node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | description": {
|
|
2415
2406
|
"message": "Your first network request is the most important. Reduce its latency by avoiding redirects, ensuring a fast server response and enabling text compression."
|
|
2416
2407
|
},
|
|
2408
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | failedRedirects": {
|
|
2409
|
+
"message": "Had redirects ({PH1} redirects, +{PH2})"
|
|
2410
|
+
},
|
|
2411
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | failedServerResponseTime": {
|
|
2412
|
+
"message": "Server responded slowly (observed {PH1}) "
|
|
2413
|
+
},
|
|
2417
2414
|
"node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | failedTextCompression": {
|
|
2418
2415
|
"message": "No compression applied"
|
|
2419
2416
|
},
|
|
2420
2417
|
"node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | passingRedirects": {
|
|
2421
2418
|
"message": "Avoids redirects"
|
|
2422
2419
|
},
|
|
2420
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | passingServerResponseTime": {
|
|
2421
|
+
"message": "Server responds quickly (observed {PH1}) "
|
|
2422
|
+
},
|
|
2423
2423
|
"node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | passingTextCompression": {
|
|
2424
2424
|
"message": "Applies text compression"
|
|
2425
2425
|
},
|
|
@@ -2510,30 +2510,6 @@
|
|
|
2510
2510
|
"node_modules/@paulirish/trace_engine/models/trace/insights/ImageDelivery.js | useVideoFormat": {
|
|
2511
2511
|
"message": "Using video formats instead of GIFs can improve the download size of animated content."
|
|
2512
2512
|
},
|
|
2513
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | description": {
|
|
2514
|
-
"message": "Start investigating with the longest phase. [Delays can be minimised](https://web.dev/articles/optimize-inp#optimize_interactions). To reduce processing duration, [optimise the main-thread costs](https://web.dev/articles/optimize-long-tasks), often JS."
|
|
2515
|
-
},
|
|
2516
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | duration": {
|
|
2517
|
-
"message": "Duration"
|
|
2518
|
-
},
|
|
2519
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | inputDelay": {
|
|
2520
|
-
"message": "Input delay"
|
|
2521
|
-
},
|
|
2522
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | noInteractions": {
|
|
2523
|
-
"message": "No interactions detected"
|
|
2524
|
-
},
|
|
2525
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | phase": {
|
|
2526
|
-
"message": "Phase"
|
|
2527
|
-
},
|
|
2528
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | presentationDelay": {
|
|
2529
|
-
"message": "Presentation delay"
|
|
2530
|
-
},
|
|
2531
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | processingDuration": {
|
|
2532
|
-
"message": "Processing duration"
|
|
2533
|
-
},
|
|
2534
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | title": {
|
|
2535
|
-
"message": "INP by phase"
|
|
2536
|
-
},
|
|
2537
2513
|
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPDiscovery.js | description": {
|
|
2538
2514
|
"message": "Optimise LCP by making the LCP image [discoverable](https://web.dev/articles/optimize-lcp#1_eliminate_resource_load_delay) from the HTML immediately and [avoiding lazy loading](https://web.dev/articles/lcp-lazy-loading)"
|
|
2539
2515
|
},
|
|
@@ -2561,36 +2537,6 @@
|
|
|
2561
2537
|
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPDiscovery.js | title": {
|
|
2562
2538
|
"message": "LCP request discovery"
|
|
2563
2539
|
},
|
|
2564
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | description": {
|
|
2565
|
-
"message": "Each [phase has specific improvement strategies](https://web.dev/articles/optimize-lcp#lcp-breakdown). Ideally, most of the LCP time should be spent on loading the resources, not within delays."
|
|
2566
|
-
},
|
|
2567
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | duration": {
|
|
2568
|
-
"message": "Duration"
|
|
2569
|
-
},
|
|
2570
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | elementRenderDelay": {
|
|
2571
|
-
"message": "Element render delay"
|
|
2572
|
-
},
|
|
2573
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | fieldDuration": {
|
|
2574
|
-
"message": "Field 75th percentile"
|
|
2575
|
-
},
|
|
2576
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | noLcp": {
|
|
2577
|
-
"message": "No LCP detected"
|
|
2578
|
-
},
|
|
2579
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | phase": {
|
|
2580
|
-
"message": "Phase"
|
|
2581
|
-
},
|
|
2582
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | resourceLoadDelay": {
|
|
2583
|
-
"message": "Resource load delay"
|
|
2584
|
-
},
|
|
2585
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | resourceLoadDuration": {
|
|
2586
|
-
"message": "Resource load duration"
|
|
2587
|
-
},
|
|
2588
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | timeToFirstByte": {
|
|
2589
|
-
"message": "Time to First Byte"
|
|
2590
|
-
},
|
|
2591
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | title": {
|
|
2592
|
-
"message": "LCP by phase"
|
|
2593
|
-
},
|
|
2594
2540
|
"node_modules/@paulirish/trace_engine/models/trace/insights/LegacyJavaScript.js | columnScript": {
|
|
2595
2541
|
"message": "Script"
|
|
2596
2542
|
},
|
|
@@ -2598,7 +2544,7 @@
|
|
|
2598
2544
|
"message": "Wasted bytes"
|
|
2599
2545
|
},
|
|
2600
2546
|
"node_modules/@paulirish/trace_engine/models/trace/insights/LegacyJavaScript.js | description": {
|
|
2601
|
-
"message": "Polyfills and transforms enable
|
|
2547
|
+
"message": "Polyfills and transforms enable older browsers to use new JavaScript features. However, many aren't necessary for modern browsers. Consider modifying your JavaScript build process to not transpile [Baseline](https://web.dev/articles/baseline-and-polyfills) features, unless you know that you must support older browsers. [Learn why most sites can deploy ES6+ code without transpiling](https://philipwalton.com/articles/the-state-of-es5-on-the-web/)"
|
|
2602
2548
|
},
|
|
2603
2549
|
"node_modules/@paulirish/trace_engine/models/trace/insights/LegacyJavaScript.js | title": {
|
|
2604
2550
|
"message": "Legacy JavaScript"
|
|
@@ -2618,23 +2564,65 @@
|
|
|
2618
2564
|
"node_modules/@paulirish/trace_engine/models/trace/insights/ModernHTTP.js | title": {
|
|
2619
2565
|
"message": "Modern HTTP"
|
|
2620
2566
|
},
|
|
2567
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | columnOrigin": {
|
|
2568
|
+
"message": "Origin"
|
|
2569
|
+
},
|
|
2570
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | columnRequest": {
|
|
2571
|
+
"message": "Request"
|
|
2572
|
+
},
|
|
2573
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | columnSource": {
|
|
2574
|
+
"message": "Source"
|
|
2575
|
+
},
|
|
2576
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | columnTime": {
|
|
2577
|
+
"message": "Time"
|
|
2578
|
+
},
|
|
2579
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | columnWastedMs": {
|
|
2580
|
+
"message": "Est LCP savings"
|
|
2581
|
+
},
|
|
2582
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | crossoriginWarning": {
|
|
2583
|
+
"message": "Unused preconnect. Check that the crossorigin attribute is used properly."
|
|
2584
|
+
},
|
|
2621
2585
|
"node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | description": {
|
|
2622
2586
|
"message": "[Avoid chaining critical requests](https://developer.chrome.com/docs/lighthouse/performance/critical-request-chains) by reducing the length of chains, reducing the download size of resources or deferring the download of unnecessary resources to improve page load."
|
|
2623
2587
|
},
|
|
2588
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | estSavingTableDescription": {
|
|
2589
|
+
"message": "Add [preconnect](https://developer.chrome.com/docs/lighthouse/performance/uses-rel-preconnect/) hints to your most important origins, but try to use fewer than 4."
|
|
2590
|
+
},
|
|
2591
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | estSavingTableTitle": {
|
|
2592
|
+
"message": "Preconnect candidates"
|
|
2593
|
+
},
|
|
2624
2594
|
"node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | maxCriticalPathLatency": {
|
|
2625
2595
|
"message": "Max critical path latency:"
|
|
2626
2596
|
},
|
|
2627
2597
|
"node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | noNetworkDependencyTree": {
|
|
2628
2598
|
"message": "No rendering tasks impacted by network dependencies"
|
|
2629
2599
|
},
|
|
2600
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | noPreconnectCandidates": {
|
|
2601
|
+
"message": "No additional origins are good candidates for preconnecting"
|
|
2602
|
+
},
|
|
2603
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | noPreconnectOrigins": {
|
|
2604
|
+
"message": "no origins were preconnected"
|
|
2605
|
+
},
|
|
2606
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | preconnectOriginsTableDescription": {
|
|
2607
|
+
"message": "[preconnect](https://developer.chrome.com/docs/lighthouse/performance/uses-rel-preconnect/) hints help the browser establish a connection earlier in the page load, saving time when the first request for that origin is made. The following are the origins that the page preconnected to."
|
|
2608
|
+
},
|
|
2609
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | preconnectOriginsTableTitle": {
|
|
2610
|
+
"message": "Preconnected origins"
|
|
2611
|
+
},
|
|
2630
2612
|
"node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | title": {
|
|
2631
2613
|
"message": "Network dependency tree"
|
|
2632
2614
|
},
|
|
2615
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | tooManyPreconnectLinksWarning": {
|
|
2616
|
+
"message": "More than 4 preconnect connections were found. These should be used sparingly and only to the most important origins."
|
|
2617
|
+
},
|
|
2618
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | unusedWarning": {
|
|
2619
|
+
"message": "Unused preconnect. Only use preconnect for origins that the page is likely to request."
|
|
2620
|
+
},
|
|
2633
2621
|
"node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | warningDescription": {
|
|
2634
2622
|
"message": "Avoid chaining critical requests by reducing the length of chains, reducing the download size of resources or deferring the download of unnecessary resources to improve page load."
|
|
2635
2623
|
},
|
|
2636
2624
|
"node_modules/@paulirish/trace_engine/models/trace/insights/RenderBlocking.js | description": {
|
|
2637
|
-
"message": "Requests are blocking the page's initial render, which may delay LCP. [Deferring or inlining](https://web.dev/learn/performance/understanding-the-critical-path#render-blocking_resources
|
|
2625
|
+
"message": "Requests are blocking the page's initial render, which may delay LCP. [Deferring or inlining](https://web.dev/learn/performance/understanding-the-critical-path#render-blocking_resources) can move these network requests out of the critical path."
|
|
2638
2626
|
},
|
|
2639
2627
|
"node_modules/@paulirish/trace_engine/models/trace/insights/RenderBlocking.js | duration": {
|
|
2640
2628
|
"message": "Duration"
|
|
@@ -2682,7 +2670,7 @@
|
|
|
2682
2670
|
"message": "Transfer size"
|
|
2683
2671
|
},
|
|
2684
2672
|
"node_modules/@paulirish/trace_engine/models/trace/insights/ThirdParties.js | description": {
|
|
2685
|
-
"message": "Third-party code can significantly impact load performance. [Reduce and defer loading of third-party code](https://
|
|
2673
|
+
"message": "Third-party code can significantly impact load performance. [Reduce and defer loading of third-party code](https://web.dev/articles/optimizing-content-efficiency-loading-third-party-javascript/) to prioritise your page's content."
|
|
2686
2674
|
},
|
|
2687
2675
|
"node_modules/@paulirish/trace_engine/models/trace/insights/ThirdParties.js | noThirdParties": {
|
|
2688
2676
|
"message": "No third parties found"
|
|
@@ -2177,9 +2177,6 @@
|
|
|
2177
2177
|
"node_modules/@paulirish/trace_engine/generated/Deprecation.js | CanRequestURLHTTPContainingNewline": {
|
|
2178
2178
|
"message": "Resource requests whose URLs contained both removed whitespace \\(n|r|t) characters and less-than characters (<) are blocked. Please remove newlines and encode less-than characters from places like element attribute values in order to load these resources."
|
|
2179
2179
|
},
|
|
2180
|
-
"node_modules/@paulirish/trace_engine/generated/Deprecation.js | CharsetAutoDetectionISO2022JP": {
|
|
2181
|
-
"message": "Auto-detection of ISO-2022-JP character set is deprecated and it will be disabled in the near future. Please specify character set in the Content Type header or by using a meta tag (https://developer.mozilla.org/en-US/docs/Glossary/Character_encoding)."
|
|
2182
|
-
},
|
|
2183
2180
|
"node_modules/@paulirish/trace_engine/generated/Deprecation.js | ChromeLoadTimesConnectionInfo": {
|
|
2184
2181
|
"message": "chrome.loadTimes() is deprecated, instead use standardized API: Navigation Timing 2."
|
|
2185
2182
|
},
|
|
@@ -2201,9 +2198,6 @@
|
|
|
2201
2198
|
"node_modules/@paulirish/trace_engine/generated/Deprecation.js | CrossOriginWindowConfirm": {
|
|
2202
2199
|
"message": "Triggering window.confirm from cross origin iframes has been deprecated and will be removed in the future."
|
|
2203
2200
|
},
|
|
2204
|
-
"node_modules/@paulirish/trace_engine/generated/Deprecation.js | DOMMutationEvents": {
|
|
2205
|
-
"message": "DOM Mutation Events, including DOMSubtreeModified, DOMNodeInserted, DOMNodeRemoved, DOMNodeRemovedFromDocument, DOMNodeInsertedIntoDocument, and DOMCharacterDataModified are deprecated (https://w3c.github.io/uievents/#legacy-event-types) and will be removed. Please use MutationObserver instead."
|
|
2206
|
-
},
|
|
2207
2201
|
"node_modules/@paulirish/trace_engine/generated/Deprecation.js | DataUrlInSvgUse": {
|
|
2208
2202
|
"message": "Support for data: URLs in SVGUseElement is deprecated and it will be removed in the future."
|
|
2209
2203
|
},
|
|
@@ -2348,9 +2342,6 @@
|
|
|
2348
2342
|
"node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | description": {
|
|
2349
2343
|
"message": "Layout shifts occur when elements move absent any user interaction. [Investigate the causes of layout shifts](https://web.dev/articles/optimize-cls), such as elements being added, removed, or their fonts changing as the page loads."
|
|
2350
2344
|
},
|
|
2351
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | fontRequest": {
|
|
2352
|
-
"message": "Font request"
|
|
2353
|
-
},
|
|
2354
2345
|
"node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | injectedIframe": {
|
|
2355
2346
|
"message": "Injected iframe"
|
|
2356
2347
|
},
|
|
@@ -2369,8 +2360,11 @@
|
|
|
2369
2360
|
"node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | topCulprits": {
|
|
2370
2361
|
"message": "Top layout shift culprits"
|
|
2371
2362
|
},
|
|
2372
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js |
|
|
2373
|
-
"message": "Unsized
|
|
2363
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | unsizedImage": {
|
|
2364
|
+
"message": "Unsized image element"
|
|
2365
|
+
},
|
|
2366
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | webFont": {
|
|
2367
|
+
"message": "Web font"
|
|
2374
2368
|
},
|
|
2375
2369
|
"node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | worstCluster": {
|
|
2376
2370
|
"message": "Worst cluster"
|
|
@@ -2399,9 +2393,18 @@
|
|
|
2399
2393
|
"node_modules/@paulirish/trace_engine/models/trace/insights/DOMSize.js | description": {
|
|
2400
2394
|
"message": "A large DOM can increase the duration of style calculations and layout reflows, impacting page responsiveness. A large DOM will also increase memory usage. [Learn how to avoid an excessive DOM size](https://developer.chrome.com/docs/lighthouse/performance/dom-size/)."
|
|
2401
2395
|
},
|
|
2396
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/DOMSize.js | duration": {
|
|
2397
|
+
"message": "Duration"
|
|
2398
|
+
},
|
|
2402
2399
|
"node_modules/@paulirish/trace_engine/models/trace/insights/DOMSize.js | element": {
|
|
2403
2400
|
"message": "Element"
|
|
2404
2401
|
},
|
|
2402
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/DOMSize.js | largeLayout": {
|
|
2403
|
+
"message": "Layout ({PH1} objects)"
|
|
2404
|
+
},
|
|
2405
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/DOMSize.js | largeStyleRecalc": {
|
|
2406
|
+
"message": "Style recalculation ({PH1} elements)"
|
|
2407
|
+
},
|
|
2405
2408
|
"node_modules/@paulirish/trace_engine/models/trace/insights/DOMSize.js | maxChildren": {
|
|
2406
2409
|
"message": "Most children"
|
|
2407
2410
|
},
|
|
@@ -2414,6 +2417,9 @@
|
|
|
2414
2417
|
"node_modules/@paulirish/trace_engine/models/trace/insights/DOMSize.js | title": {
|
|
2415
2418
|
"message": "Optimize DOM size"
|
|
2416
2419
|
},
|
|
2420
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/DOMSize.js | topUpdatesDescription": {
|
|
2421
|
+
"message": "These are the largest layout and style recalculation events. Their performance impact may be reduced by making the DOM simpler."
|
|
2422
|
+
},
|
|
2417
2423
|
"node_modules/@paulirish/trace_engine/models/trace/insights/DOMSize.js | totalElements": {
|
|
2418
2424
|
"message": "Total elements"
|
|
2419
2425
|
},
|
|
@@ -2427,7 +2433,7 @@
|
|
|
2427
2433
|
"message": "Had redirects ({PH1} redirects, +{PH2})"
|
|
2428
2434
|
},
|
|
2429
2435
|
"node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | failedServerResponseTime": {
|
|
2430
|
-
"message": "Server responded slowly (observed {PH1})
|
|
2436
|
+
"message": "Server responded slowly (observed {PH1})"
|
|
2431
2437
|
},
|
|
2432
2438
|
"node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | failedTextCompression": {
|
|
2433
2439
|
"message": "No compression applied"
|
|
@@ -2436,7 +2442,7 @@
|
|
|
2436
2442
|
"message": "Avoids redirects"
|
|
2437
2443
|
},
|
|
2438
2444
|
"node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | passingServerResponseTime": {
|
|
2439
|
-
"message": "Server responds quickly (observed {PH1})
|
|
2445
|
+
"message": "Server responds quickly (observed {PH1})"
|
|
2440
2446
|
},
|
|
2441
2447
|
"node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | passingTextCompression": {
|
|
2442
2448
|
"message": "Applies text compression"
|
|
@@ -2481,7 +2487,7 @@
|
|
|
2481
2487
|
"message": "(anonymous)"
|
|
2482
2488
|
},
|
|
2483
2489
|
"node_modules/@paulirish/trace_engine/models/trace/insights/ForcedReflow.js | description": {
|
|
2484
|
-
"message": "
|
|
2490
|
+
"message": "A forced reflow occurs when JavaScript queries geometric properties (such as offsetWidth) after styles have been invalidated by a change to the DOM state. This can result in poor performance. Learn more about [forced reflows](https://developers.google.com/web/fundamentals/performance/rendering/avoid-large-complex-layouts-and-layout-thrashing#avoid-forced-synchronous-layouts) and possible mitigations."
|
|
2485
2491
|
},
|
|
2486
2492
|
"node_modules/@paulirish/trace_engine/models/trace/insights/ForcedReflow.js | relatedStackTrace": {
|
|
2487
2493
|
"message": "Stack trace"
|
|
@@ -2498,6 +2504,30 @@
|
|
|
2498
2504
|
"node_modules/@paulirish/trace_engine/models/trace/insights/ForcedReflow.js | unattributed": {
|
|
2499
2505
|
"message": "[unattributed]"
|
|
2500
2506
|
},
|
|
2507
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/INPBreakdown.js | description": {
|
|
2508
|
+
"message": "Start investigating with the longest subpart. [Delays can be minimized](https://web.dev/articles/optimize-inp#optimize_interactions). To reduce processing duration, [optimize the main-thread costs](https://web.dev/articles/optimize-long-tasks), often JS."
|
|
2509
|
+
},
|
|
2510
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/INPBreakdown.js | duration": {
|
|
2511
|
+
"message": "Duration"
|
|
2512
|
+
},
|
|
2513
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/INPBreakdown.js | inputDelay": {
|
|
2514
|
+
"message": "Input delay"
|
|
2515
|
+
},
|
|
2516
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/INPBreakdown.js | noInteractions": {
|
|
2517
|
+
"message": "No interactions detected"
|
|
2518
|
+
},
|
|
2519
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/INPBreakdown.js | presentationDelay": {
|
|
2520
|
+
"message": "Presentation delay"
|
|
2521
|
+
},
|
|
2522
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/INPBreakdown.js | processingDuration": {
|
|
2523
|
+
"message": "Processing duration"
|
|
2524
|
+
},
|
|
2525
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/INPBreakdown.js | subpart": {
|
|
2526
|
+
"message": "Subpart"
|
|
2527
|
+
},
|
|
2528
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/INPBreakdown.js | title": {
|
|
2529
|
+
"message": "INP breakdown"
|
|
2530
|
+
},
|
|
2501
2531
|
"node_modules/@paulirish/trace_engine/models/trace/insights/ImageDelivery.js | description": {
|
|
2502
2532
|
"message": "Reducing the download time of images can improve the perceived load time of the page and LCP. [Learn more about optimizing image size](https://developer.chrome.com/docs/lighthouse/performance/uses-optimized-images/)"
|
|
2503
2533
|
},
|
|
@@ -2528,29 +2558,35 @@
|
|
|
2528
2558
|
"node_modules/@paulirish/trace_engine/models/trace/insights/ImageDelivery.js | useVideoFormat": {
|
|
2529
2559
|
"message": "Using video formats instead of GIFs can improve the download size of animated content."
|
|
2530
2560
|
},
|
|
2531
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/
|
|
2532
|
-
"message": "
|
|
2561
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPBreakdown.js | description": {
|
|
2562
|
+
"message": "Each [subpart has specific improvement strategies](https://web.dev/articles/optimize-lcp#lcp-breakdown). Ideally, most of the LCP time should be spent on loading the resources, not within delays."
|
|
2533
2563
|
},
|
|
2534
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/
|
|
2564
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPBreakdown.js | duration": {
|
|
2535
2565
|
"message": "Duration"
|
|
2536
2566
|
},
|
|
2537
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/
|
|
2538
|
-
"message": "
|
|
2567
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPBreakdown.js | elementRenderDelay": {
|
|
2568
|
+
"message": "Element render delay"
|
|
2539
2569
|
},
|
|
2540
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/
|
|
2541
|
-
"message": "
|
|
2570
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPBreakdown.js | fieldDuration": {
|
|
2571
|
+
"message": "Field p75"
|
|
2542
2572
|
},
|
|
2543
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/
|
|
2544
|
-
"message": "
|
|
2573
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPBreakdown.js | noLcp": {
|
|
2574
|
+
"message": "No LCP detected"
|
|
2545
2575
|
},
|
|
2546
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/
|
|
2547
|
-
"message": "
|
|
2576
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPBreakdown.js | resourceLoadDelay": {
|
|
2577
|
+
"message": "Resource load delay"
|
|
2548
2578
|
},
|
|
2549
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/
|
|
2550
|
-
"message": "
|
|
2579
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPBreakdown.js | resourceLoadDuration": {
|
|
2580
|
+
"message": "Resource load duration"
|
|
2581
|
+
},
|
|
2582
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPBreakdown.js | subpart": {
|
|
2583
|
+
"message": "Subpart"
|
|
2584
|
+
},
|
|
2585
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPBreakdown.js | timeToFirstByte": {
|
|
2586
|
+
"message": "Time to first byte"
|
|
2551
2587
|
},
|
|
2552
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/
|
|
2553
|
-
"message": "
|
|
2588
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPBreakdown.js | title": {
|
|
2589
|
+
"message": "LCP breakdown"
|
|
2554
2590
|
},
|
|
2555
2591
|
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPDiscovery.js | description": {
|
|
2556
2592
|
"message": "Optimize LCP by making the LCP image [discoverable](https://web.dev/articles/optimize-lcp#1_eliminate_resource_load_delay) from the HTML immediately, and [avoiding lazy-loading](https://web.dev/articles/lcp-lazy-loading)"
|
|
@@ -2579,36 +2615,6 @@
|
|
|
2579
2615
|
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPDiscovery.js | title": {
|
|
2580
2616
|
"message": "LCP request discovery"
|
|
2581
2617
|
},
|
|
2582
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | description": {
|
|
2583
|
-
"message": "Each [phase has specific improvement strategies](https://web.dev/articles/optimize-lcp#lcp-breakdown). Ideally, most of the LCP time should be spent on loading the resources, not within delays."
|
|
2584
|
-
},
|
|
2585
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | duration": {
|
|
2586
|
-
"message": "Duration"
|
|
2587
|
-
},
|
|
2588
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | elementRenderDelay": {
|
|
2589
|
-
"message": "Element render delay"
|
|
2590
|
-
},
|
|
2591
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | fieldDuration": {
|
|
2592
|
-
"message": "Field p75"
|
|
2593
|
-
},
|
|
2594
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | noLcp": {
|
|
2595
|
-
"message": "No LCP detected"
|
|
2596
|
-
},
|
|
2597
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | phase": {
|
|
2598
|
-
"message": "Phase"
|
|
2599
|
-
},
|
|
2600
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | resourceLoadDelay": {
|
|
2601
|
-
"message": "Resource load delay"
|
|
2602
|
-
},
|
|
2603
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | resourceLoadDuration": {
|
|
2604
|
-
"message": "Resource load duration"
|
|
2605
|
-
},
|
|
2606
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | timeToFirstByte": {
|
|
2607
|
-
"message": "Time to first byte"
|
|
2608
|
-
},
|
|
2609
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | title": {
|
|
2610
|
-
"message": "LCP by phase"
|
|
2611
|
-
},
|
|
2612
2618
|
"node_modules/@paulirish/trace_engine/models/trace/insights/LegacyJavaScript.js | columnScript": {
|
|
2613
2619
|
"message": "Script"
|
|
2614
2620
|
},
|
|
@@ -2651,11 +2657,14 @@
|
|
|
2651
2657
|
"node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | columnWastedMs": {
|
|
2652
2658
|
"message": "Est LCP savings"
|
|
2653
2659
|
},
|
|
2660
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | crossoriginWarning": {
|
|
2661
|
+
"message": "Unused preconnect. Check that the crossorigin attribute is used properly."
|
|
2662
|
+
},
|
|
2654
2663
|
"node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | description": {
|
|
2655
2664
|
"message": "[Avoid chaining critical requests](https://developer.chrome.com/docs/lighthouse/performance/critical-request-chains) by reducing the length of chains, reducing the download size of resources, or deferring the download of unnecessary resources to improve page load."
|
|
2656
2665
|
},
|
|
2657
2666
|
"node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | estSavingTableDescription": {
|
|
2658
|
-
"message": "Add [preconnect](https://developer.chrome.com/docs/lighthouse/performance/uses-rel-preconnect/) hints to your most important origins, but try to use
|
|
2667
|
+
"message": "Add [preconnect](https://developer.chrome.com/docs/lighthouse/performance/uses-rel-preconnect/) hints to your most important origins, but try to use no more than 4."
|
|
2659
2668
|
},
|
|
2660
2669
|
"node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | estSavingTableTitle": {
|
|
2661
2670
|
"message": "Preconnect candidates"
|
|
@@ -2676,7 +2685,7 @@
|
|
|
2676
2685
|
"message": "[preconnect](https://developer.chrome.com/docs/lighthouse/performance/uses-rel-preconnect/) hints help the browser establish a connection earlier in the page load, saving time when the first request for that origin is made. The following are the origins that the page preconnected to."
|
|
2677
2686
|
},
|
|
2678
2687
|
"node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | preconnectOriginsTableTitle": {
|
|
2679
|
-
"message": "
|
|
2688
|
+
"message": "Preconnected origins"
|
|
2680
2689
|
},
|
|
2681
2690
|
"node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | title": {
|
|
2682
2691
|
"message": "Network dependency tree"
|
|
@@ -2750,6 +2759,9 @@
|
|
|
2750
2759
|
"node_modules/@paulirish/trace_engine/models/trace/insights/Viewport.js | description": {
|
|
2751
2760
|
"message": "Tap interactions may be [delayed by up to 300 ms](https://developer.chrome.com/blog/300ms-tap-delay-gone-away/) if the viewport is not optimized for mobile."
|
|
2752
2761
|
},
|
|
2762
|
+
"node_modules/@paulirish/trace_engine/models/trace/insights/Viewport.js | mobileTapDelayLabel": {
|
|
2763
|
+
"message": "Mobile tap delay"
|
|
2764
|
+
},
|
|
2753
2765
|
"node_modules/@paulirish/trace_engine/models/trace/insights/Viewport.js | title": {
|
|
2754
2766
|
"message": "Optimize viewport for mobile"
|
|
2755
2767
|
},
|