lighthouse 10.1.1 → 10.2.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/cli-flags.d.ts +1 -1
- package/cli/test/smokehouse/lighthouse-runners/cli.d.ts +1 -1
- package/cli/test/smokehouse/report-assert.d.ts +1 -1
- package/core/audits/accessibility/accesskeys.d.ts +1 -1
- package/core/audits/accessibility/accesskeys.js +1 -1
- package/core/audits/accessibility/aria-allowed-attr.d.ts +1 -1
- package/core/audits/accessibility/aria-allowed-attr.js +1 -1
- package/core/audits/accessibility/aria-command-name.d.ts +1 -1
- package/core/audits/accessibility/aria-command-name.js +1 -1
- package/core/audits/accessibility/aria-hidden-body.d.ts +1 -1
- package/core/audits/accessibility/aria-hidden-body.js +1 -1
- package/core/audits/accessibility/aria-hidden-focus.d.ts +1 -1
- package/core/audits/accessibility/aria-hidden-focus.js +1 -1
- package/core/audits/accessibility/aria-input-field-name.d.ts +1 -1
- package/core/audits/accessibility/aria-input-field-name.js +1 -1
- package/core/audits/accessibility/aria-meter-name.d.ts +1 -1
- package/core/audits/accessibility/aria-meter-name.js +1 -1
- package/core/audits/accessibility/aria-progressbar-name.d.ts +1 -1
- package/core/audits/accessibility/aria-progressbar-name.js +1 -1
- package/core/audits/accessibility/aria-required-attr.d.ts +1 -1
- package/core/audits/accessibility/aria-required-attr.js +1 -1
- package/core/audits/accessibility/aria-required-children.d.ts +1 -1
- package/core/audits/accessibility/aria-required-children.js +1 -1
- package/core/audits/accessibility/aria-required-parent.d.ts +1 -1
- package/core/audits/accessibility/aria-required-parent.js +1 -1
- package/core/audits/accessibility/aria-roles.d.ts +1 -1
- package/core/audits/accessibility/aria-roles.js +1 -1
- package/core/audits/accessibility/aria-toggle-field-name.d.ts +1 -1
- package/core/audits/accessibility/aria-toggle-field-name.js +1 -1
- package/core/audits/accessibility/aria-tooltip-name.d.ts +1 -1
- package/core/audits/accessibility/aria-tooltip-name.js +1 -1
- package/core/audits/accessibility/aria-treeitem-name.d.ts +1 -1
- package/core/audits/accessibility/aria-treeitem-name.js +1 -1
- package/core/audits/accessibility/aria-valid-attr-value.d.ts +1 -1
- package/core/audits/accessibility/aria-valid-attr-value.js +1 -1
- package/core/audits/accessibility/aria-valid-attr.d.ts +1 -1
- package/core/audits/accessibility/aria-valid-attr.js +1 -1
- package/core/audits/accessibility/axe-audit.d.ts +1 -1
- package/core/audits/accessibility/button-name.d.ts +1 -1
- package/core/audits/accessibility/button-name.js +1 -1
- package/core/audits/accessibility/bypass.d.ts +1 -1
- package/core/audits/accessibility/bypass.js +1 -1
- package/core/audits/accessibility/color-contrast.d.ts +1 -1
- package/core/audits/accessibility/color-contrast.js +1 -1
- package/core/audits/accessibility/definition-list.d.ts +1 -1
- package/core/audits/accessibility/definition-list.js +1 -1
- package/core/audits/accessibility/dlitem.d.ts +1 -1
- package/core/audits/accessibility/dlitem.js +1 -1
- package/core/audits/accessibility/document-title.d.ts +1 -1
- package/core/audits/accessibility/document-title.js +1 -1
- package/core/audits/accessibility/duplicate-id-active.d.ts +1 -1
- package/core/audits/accessibility/duplicate-id-active.js +1 -1
- package/core/audits/accessibility/duplicate-id-aria.d.ts +1 -1
- package/core/audits/accessibility/duplicate-id-aria.js +1 -1
- package/core/audits/accessibility/form-field-multiple-labels.d.ts +1 -1
- package/core/audits/accessibility/form-field-multiple-labels.js +1 -1
- package/core/audits/accessibility/frame-title.d.ts +1 -1
- package/core/audits/accessibility/frame-title.js +1 -1
- package/core/audits/accessibility/heading-order.d.ts +1 -1
- package/core/audits/accessibility/heading-order.js +1 -1
- package/core/audits/accessibility/html-has-lang.d.ts +1 -1
- package/core/audits/accessibility/html-has-lang.js +1 -1
- package/core/audits/accessibility/html-lang-valid.d.ts +1 -1
- package/core/audits/accessibility/html-lang-valid.js +1 -1
- package/core/audits/accessibility/image-alt.d.ts +1 -1
- package/core/audits/accessibility/image-alt.js +1 -1
- package/core/audits/accessibility/input-image-alt.d.ts +1 -1
- package/core/audits/accessibility/input-image-alt.js +1 -1
- package/core/audits/accessibility/label.d.ts +1 -1
- package/core/audits/accessibility/label.js +1 -1
- package/core/audits/accessibility/link-name.d.ts +1 -1
- package/core/audits/accessibility/link-name.js +1 -1
- package/core/audits/accessibility/list.d.ts +1 -1
- package/core/audits/accessibility/list.js +1 -1
- package/core/audits/accessibility/listitem.d.ts +1 -1
- package/core/audits/accessibility/listitem.js +1 -1
- package/core/audits/accessibility/manual/custom-controls-labels.d.ts +1 -1
- package/core/audits/accessibility/manual/custom-controls-roles.d.ts +1 -1
- package/core/audits/accessibility/manual/focus-traps.d.ts +1 -1
- package/core/audits/accessibility/manual/focusable-controls.d.ts +1 -1
- package/core/audits/accessibility/manual/interactive-element-affordance.d.ts +1 -1
- package/core/audits/accessibility/manual/logical-tab-order.d.ts +1 -1
- package/core/audits/accessibility/manual/managed-focus.d.ts +1 -1
- package/core/audits/accessibility/manual/offscreen-content-hidden.d.ts +1 -1
- package/core/audits/accessibility/manual/use-landmarks.d.ts +1 -1
- package/core/audits/accessibility/manual/visual-order-follows-dom.d.ts +1 -1
- package/core/audits/accessibility/meta-refresh.d.ts +1 -1
- package/core/audits/accessibility/meta-refresh.js +1 -1
- package/core/audits/accessibility/meta-viewport.d.ts +1 -1
- package/core/audits/accessibility/meta-viewport.js +1 -1
- package/core/audits/accessibility/object-alt.d.ts +1 -1
- package/core/audits/accessibility/object-alt.js +1 -1
- package/core/audits/accessibility/tabindex.d.ts +1 -1
- package/core/audits/accessibility/tabindex.js +1 -1
- package/core/audits/accessibility/td-headers-attr.d.ts +1 -1
- package/core/audits/accessibility/td-headers-attr.js +1 -1
- package/core/audits/accessibility/th-has-data-cells.d.ts +1 -1
- package/core/audits/accessibility/th-has-data-cells.js +1 -1
- package/core/audits/accessibility/valid-lang.d.ts +1 -1
- package/core/audits/accessibility/valid-lang.js +1 -1
- package/core/audits/accessibility/video-caption.d.ts +1 -1
- package/core/audits/accessibility/video-caption.js +1 -1
- package/core/audits/audit.d.ts +1 -1
- package/core/audits/autocomplete.d.ts +1 -1
- package/core/audits/bf-cache.d.ts +1 -1
- package/core/audits/bootup-time.d.ts +1 -1
- package/core/audits/byte-efficiency/byte-efficiency-audit.d.ts +1 -1
- package/core/audits/byte-efficiency/duplicated-javascript.d.ts +1 -1
- package/core/audits/byte-efficiency/efficient-animated-content.d.ts +2 -2
- package/core/audits/byte-efficiency/legacy-javascript.d.ts +2 -2
- package/core/audits/byte-efficiency/modern-image-formats.d.ts +1 -1
- package/core/audits/byte-efficiency/offscreen-images.d.ts +2 -2
- package/core/audits/byte-efficiency/render-blocking-resources.d.ts +1 -1
- package/core/audits/byte-efficiency/total-byte-weight.d.ts +1 -1
- package/core/audits/byte-efficiency/unminified-css.d.ts +1 -1
- package/core/audits/byte-efficiency/unminified-javascript.d.ts +1 -1
- package/core/audits/byte-efficiency/unused-css-rules.d.ts +1 -1
- package/core/audits/byte-efficiency/unused-javascript.d.ts +1 -1
- package/core/audits/byte-efficiency/uses-long-cache-ttl.d.ts +3 -3
- package/core/audits/byte-efficiency/uses-optimized-images.d.ts +1 -1
- package/core/audits/byte-efficiency/uses-responsive-images-snapshot.d.ts +1 -1
- package/core/audits/byte-efficiency/uses-responsive-images.d.ts +2 -2
- package/core/audits/byte-efficiency/uses-text-compression.d.ts +1 -1
- package/core/audits/content-width.d.ts +1 -1
- package/core/audits/critical-request-chains.d.ts +1 -1
- package/core/audits/csp-xss.d.ts +1 -1
- package/core/audits/deprecations.d.ts +1 -1
- package/core/audits/diagnostics.d.ts +1 -1
- package/core/audits/dobetterweb/charset.d.ts +1 -1
- package/core/audits/dobetterweb/doctype.d.ts +1 -1
- package/core/audits/dobetterweb/dom-size.d.ts +1 -1
- package/core/audits/dobetterweb/geolocation-on-start.d.ts +1 -1
- package/core/audits/dobetterweb/inspector-issues.d.ts +1 -1
- package/core/audits/dobetterweb/js-libraries.d.ts +1 -1
- package/core/audits/dobetterweb/no-document-write.d.ts +1 -1
- package/core/audits/dobetterweb/notification-on-start.d.ts +1 -1
- package/core/audits/dobetterweb/paste-preventing-inputs.d.ts +1 -1
- package/core/audits/dobetterweb/uses-http2.d.ts +3 -3
- package/core/audits/dobetterweb/uses-passive-event-listeners.d.ts +1 -1
- package/core/audits/errors-in-console.d.ts +1 -1
- package/core/audits/final-screenshot.d.ts +1 -1
- package/core/audits/font-display.d.ts +1 -1
- package/core/audits/image-aspect-ratio.d.ts +1 -1
- package/core/audits/image-size-responsive.d.ts +1 -1
- package/core/audits/installable-manifest.d.ts +1 -1
- package/core/audits/is-on-https.d.ts +1 -1
- package/core/audits/largest-contentful-paint-element.d.ts +17 -3
- package/core/audits/largest-contentful-paint-element.js +77 -4
- package/core/audits/layout-shift-elements.d.ts +1 -1
- package/core/audits/lcp-lazy-loaded.d.ts +1 -1
- package/core/audits/long-tasks.d.ts +1 -1
- package/core/audits/main-thread-tasks.d.ts +1 -1
- package/core/audits/mainthread-work-breakdown.d.ts +1 -1
- package/core/audits/manual/manual-audit.d.ts +1 -1
- package/core/audits/manual/pwa-cross-browser.d.ts +1 -1
- package/core/audits/manual/pwa-each-page-has-url.d.ts +1 -1
- package/core/audits/manual/pwa-page-transitions.d.ts +1 -1
- package/core/audits/maskable-icon.d.ts +1 -1
- package/core/audits/metrics/cumulative-layout-shift.d.ts +1 -1
- package/core/audits/metrics/experimental-interaction-to-next-paint.d.ts +1 -1
- package/core/audits/metrics/first-contentful-paint-3g.d.ts +1 -1
- package/core/audits/metrics/first-contentful-paint.d.ts +1 -1
- package/core/audits/metrics/first-meaningful-paint.d.ts +1 -1
- package/core/audits/metrics/interactive.d.ts +1 -1
- package/core/audits/metrics/largest-contentful-paint.d.ts +1 -1
- package/core/audits/metrics/max-potential-fid.d.ts +1 -1
- package/core/audits/metrics/speed-index.d.ts +1 -1
- package/core/audits/metrics/total-blocking-time.d.ts +1 -1
- package/core/audits/metrics.d.ts +1 -1
- package/core/audits/multi-check-audit.d.ts +1 -1
- package/core/audits/network-requests.d.ts +1 -1
- package/core/audits/network-requests.js +1 -0
- package/core/audits/network-rtt.d.ts +1 -1
- package/core/audits/network-server-latency.d.ts +1 -1
- package/core/audits/no-unload-listeners.d.ts +1 -1
- package/core/audits/non-composited-animations.d.ts +1 -1
- package/core/audits/performance-budget.d.ts +2 -2
- package/core/audits/predictive-perf.d.ts +1 -1
- package/core/audits/predictive-perf.js +10 -3
- package/core/audits/preload-fonts.d.ts +1 -1
- package/core/audits/prioritize-lcp-image.d.ts +2 -13
- package/core/audits/prioritize-lcp-image.js +3 -55
- package/core/audits/redirects.d.ts +2 -2
- package/core/audits/resource-summary.d.ts +1 -1
- package/core/audits/screenshot-thumbnails.d.ts +2 -2
- package/core/audits/script-treemap-data.d.ts +1 -1
- package/core/audits/seo/canonical.d.ts +1 -1
- package/core/audits/seo/crawlable-anchors.d.ts +1 -1
- package/core/audits/seo/font-size.d.ts +1 -1
- package/core/audits/seo/hreflang.d.ts +1 -1
- package/core/audits/seo/http-status-code.d.ts +1 -1
- package/core/audits/seo/is-crawlable.d.ts +1 -1
- package/core/audits/seo/link-text.d.ts +1 -1
- package/core/audits/seo/manual/structured-data.d.ts +1 -1
- package/core/audits/seo/meta-description.d.ts +1 -1
- package/core/audits/seo/plugins.d.ts +1 -1
- package/core/audits/seo/robots-txt.d.ts +1 -1
- package/core/audits/seo/tap-targets.d.ts +1 -1
- package/core/audits/server-response-time.d.ts +1 -1
- package/core/audits/service-worker.d.ts +1 -1
- package/core/audits/splash-screen.d.ts +2 -2
- package/core/audits/themed-omnibox.d.ts +2 -2
- package/core/audits/third-party-facades.d.ts +2 -2
- package/core/audits/third-party-summary.d.ts +2 -2
- package/core/audits/timing-budget.d.ts +3 -3
- package/core/audits/unsized-images.d.ts +1 -1
- package/core/audits/user-timings.d.ts +1 -1
- package/core/audits/uses-rel-preconnect.d.ts +1 -1
- package/core/audits/uses-rel-preload.d.ts +2 -2
- package/core/audits/valid-source-maps.d.ts +2 -2
- package/core/audits/viewport.d.ts +1 -1
- package/core/audits/violation-audit.d.ts +1 -1
- package/core/audits/work-during-interaction.d.ts +2 -2
- package/core/computed/critical-request-chains.d.ts +1 -1
- package/core/computed/document-urls.d.ts +32 -0
- package/core/computed/document-urls.js +53 -0
- package/core/computed/entity-classification.js +0 -1
- package/core/computed/lcp-image-record.d.ts +26 -0
- package/core/computed/lcp-image-record.js +74 -0
- package/core/computed/load-simulator.d.ts +2 -2
- package/core/computed/metrics/cumulative-layout-shift.d.ts +1 -1
- package/core/computed/metrics/first-contentful-paint-all-frames.d.ts +1 -1
- package/core/computed/metrics/first-contentful-paint.d.ts +7 -1
- package/core/computed/metrics/first-meaningful-paint.d.ts +7 -1
- package/core/computed/metrics/interactive.d.ts +7 -1
- package/core/computed/metrics/lantern-first-contentful-paint.d.ts +1 -1
- package/core/computed/metrics/lantern-first-meaningful-paint.d.ts +1 -1
- package/core/computed/metrics/lantern-interactive.d.ts +1 -1
- package/core/computed/metrics/lantern-largest-contentful-paint.d.ts +1 -1
- package/core/computed/metrics/lantern-max-potential-fid.d.ts +1 -1
- package/core/computed/metrics/lantern-metric.d.ts +1 -1
- package/core/computed/metrics/lantern-speed-index.d.ts +1 -1
- package/core/computed/metrics/lantern-total-blocking-time.d.ts +1 -1
- package/core/computed/metrics/largest-contentful-paint-all-frames.d.ts +1 -1
- package/core/computed/metrics/largest-contentful-paint.d.ts +7 -1
- package/core/computed/metrics/lcp-breakdown.d.ts +23 -0
- package/core/computed/metrics/lcp-breakdown.js +58 -0
- package/core/computed/metrics/max-potential-fid.d.ts +7 -1
- package/core/computed/metrics/metric.d.ts +2 -2
- package/core/computed/metrics/metric.js +1 -1
- package/core/computed/metrics/navigation-metric.d.ts +3 -3
- package/core/computed/metrics/navigation-metric.js +1 -1
- package/core/computed/metrics/responsiveness.d.ts +1 -1
- package/core/computed/metrics/speed-index.d.ts +7 -1
- package/core/computed/metrics/time-to-first-byte.d.ts +16 -0
- package/core/computed/metrics/time-to-first-byte.js +60 -0
- package/core/computed/metrics/timing-summary.js +10 -0
- package/core/computed/metrics/total-blocking-time.d.ts +7 -1
- package/core/computed/network-records.d.ts +1 -1
- package/core/computed/page-dependency-graph.d.ts +4 -13
- package/core/computed/page-dependency-graph.js +2 -33
- package/core/computed/processed-navigation.d.ts +1 -1
- package/core/computed/resource-summary.d.ts +4 -4
- package/core/config/default-config.d.ts +1 -1
- package/core/config/desktop-config.d.ts +1 -1
- package/core/gather/base-gatherer.d.ts +1 -1
- package/core/gather/driver/execution-context.d.ts +1 -1
- package/core/gather/driver/network-monitor.d.ts +2 -2
- package/core/gather/driver/target-manager.d.ts +2 -1
- package/core/gather/driver/target-manager.js +5 -3
- package/core/gather/driver/wait-for-condition.js +12 -0
- package/core/gather/driver.d.ts +3 -3
- package/core/gather/fetcher.d.ts +1 -1
- package/core/gather/gatherers/accessibility.d.ts +1 -1
- package/core/gather/gatherers/anchor-elements.d.ts +1 -1
- package/core/gather/gatherers/bf-cache-failures.d.ts +1 -1
- package/core/gather/gatherers/cache-contents.d.ts +1 -1
- package/core/gather/gatherers/console-messages.d.ts +1 -1
- package/core/gather/gatherers/css-usage.d.ts +1 -1
- package/core/gather/gatherers/devtools-log-compat.d.ts +1 -1
- package/core/gather/gatherers/devtools-log.d.ts +1 -1
- package/core/gather/gatherers/dobetterweb/doctype.d.ts +1 -1
- package/core/gather/gatherers/dobetterweb/domstats.d.ts +1 -1
- package/core/gather/gatherers/dobetterweb/optimized-images.d.ts +2 -2
- package/core/gather/gatherers/dobetterweb/optimized-images.js +2 -2
- package/core/gather/gatherers/dobetterweb/response-compression.d.ts +2 -2
- package/core/gather/gatherers/dobetterweb/response-compression.js +1 -2
- package/core/gather/gatherers/dobetterweb/tags-blocking-first-paint.d.ts +1 -1
- package/core/gather/gatherers/full-page-screenshot.d.ts +1 -1
- package/core/gather/gatherers/global-listeners.d.ts +1 -1
- package/core/gather/gatherers/iframe-elements.d.ts +1 -1
- package/core/gather/gatherers/image-elements.d.ts +1 -1
- package/core/gather/gatherers/inputs.d.ts +1 -1
- package/core/gather/gatherers/inspector-issues.d.ts +1 -1
- package/core/gather/gatherers/installability-errors.d.ts +1 -1
- package/core/gather/gatherers/js-usage.d.ts +1 -1
- package/core/gather/gatherers/link-elements.d.ts +1 -1
- package/core/gather/gatherers/main-document-content.d.ts +1 -1
- package/core/gather/gatherers/meta-elements.d.ts +1 -1
- package/core/gather/gatherers/network-user-agent.d.ts +1 -1
- package/core/gather/gatherers/script-elements.d.ts +2 -2
- package/core/gather/gatherers/script-elements.js +1 -2
- package/core/gather/gatherers/scripts.d.ts +1 -3
- package/core/gather/gatherers/scripts.js +0 -3
- package/core/gather/gatherers/seo/embedded-content.d.ts +1 -1
- package/core/gather/gatherers/seo/font-size.d.ts +1 -1
- package/core/gather/gatherers/seo/robots-txt.d.ts +1 -1
- package/core/gather/gatherers/seo/tap-targets.d.ts +1 -1
- package/core/gather/gatherers/service-worker.d.ts +1 -1
- package/core/gather/gatherers/source-maps.d.ts +1 -1
- package/core/gather/gatherers/stacks.d.ts +1 -1
- package/core/gather/gatherers/trace-compat.d.ts +1 -1
- package/core/gather/gatherers/trace-elements.d.ts +2 -2
- package/core/gather/gatherers/trace.d.ts +1 -1
- package/core/gather/gatherers/viewport-dimensions.d.ts +1 -1
- package/core/gather/gatherers/web-app-manifest.d.ts +1 -1
- package/core/gather/navigation-runner.d.ts +3 -3
- package/core/gather/navigation-runner.js +1 -1
- package/core/gather/runner-helpers.js +18 -4
- package/core/index.cjs +28 -0
- package/core/index.d.ts +2 -2
- package/core/legacy/gather/connections/connection.d.ts +3 -1
- package/core/legacy/gather/connections/connection.js +15 -0
- package/core/legacy/gather/connections/cri.d.ts +2 -2
- package/core/legacy/gather/connections/raw.d.ts +1 -1
- package/core/legacy/gather/driver.d.ts +3 -3
- package/core/legacy/gather/gather-runner.js +1 -1
- package/core/lib/dependency-graph/cpu-node.d.ts +2 -2
- package/core/lib/dependency-graph/network-node.d.ts +3 -3
- package/core/lib/dependency-graph/simulator/connection-pool.d.ts +2 -2
- package/core/lib/dependency-graph/simulator/dns-cache.d.ts +1 -1
- package/core/lib/dependency-graph/simulator/simulator.d.ts +5 -5
- package/core/lib/lh-trace-processor.d.ts +1 -1
- package/core/lib/navigation-error.d.ts +2 -2
- package/core/lib/network-recorder.d.ts +17 -11
- package/core/lib/network-recorder.js +24 -31
- package/core/lib/network-request.d.ts +7 -8
- package/core/lib/network-request.js +8 -6
- package/core/lib/stack-packs.js +9 -1
- package/core/lib/tracehouse/main-thread-tasks.d.ts +1 -1
- package/core/lib/tracehouse/task-summary.d.ts +1 -1
- package/core/lib/url-utils.js +1 -0
- package/core/runner.d.ts +2 -2
- package/core/runner.js +8 -2
- package/core/scoring.d.ts +1 -1
- package/core/user-flow.d.ts +1 -1
- package/dist/report/bundle.esm.js +3 -1
- package/dist/report/flow.js +3 -3
- package/dist/report/standalone.js +5 -5
- package/package.json +9 -8
- package/report/README.md +1 -1
- package/report/assets/styles.css +0 -4
- package/report/renderer/components.js +1 -1
- package/report/renderer/performance-category-renderer.d.ts +1 -1
- package/report/renderer/pwa-category-renderer.d.ts +1 -1
- package/report/renderer/report-globals.d.ts +1 -1
- package/report/renderer/report-renderer.d.ts +1 -1
- package/report/renderer/report-ui-features.d.ts +1 -1
- package/report/renderer/topbar-features.d.ts +1 -1
- package/shared/localization/i18n-module.d.ts +2 -2
- package/shared/localization/locales/ar-XB.json +113 -53
- package/shared/localization/locales/ar.json +113 -53
- package/shared/localization/locales/bg.json +113 -53
- package/shared/localization/locales/ca.json +115 -55
- package/shared/localization/locales/cs.json +113 -53
- package/shared/localization/locales/da.json +114 -54
- package/shared/localization/locales/de.json +113 -53
- package/shared/localization/locales/el.json +113 -53
- package/shared/localization/locales/en-GB.json +107 -47
- package/shared/localization/locales/en-US.json +92 -44
- package/shared/localization/locales/en-XA.json +113 -53
- package/shared/localization/locales/en-XL.json +92 -44
- package/shared/localization/locales/es-419.json +113 -53
- package/shared/localization/locales/es.json +114 -54
- package/shared/localization/locales/fi.json +113 -53
- package/shared/localization/locales/fil.json +113 -53
- package/shared/localization/locales/fr.json +113 -53
- package/shared/localization/locales/he.json +114 -54
- package/shared/localization/locales/hi.json +116 -56
- package/shared/localization/locales/hr.json +113 -53
- package/shared/localization/locales/hu.json +113 -53
- package/shared/localization/locales/id.json +113 -53
- package/shared/localization/locales/it.json +114 -54
- package/shared/localization/locales/ja.json +116 -56
- package/shared/localization/locales/ko.json +113 -53
- package/shared/localization/locales/lt.json +113 -53
- package/shared/localization/locales/lv.json +113 -53
- package/shared/localization/locales/nl.json +117 -57
- package/shared/localization/locales/no.json +114 -54
- package/shared/localization/locales/pl.json +125 -65
- package/shared/localization/locales/pt-PT.json +117 -57
- package/shared/localization/locales/pt.json +113 -53
- package/shared/localization/locales/ro.json +113 -53
- package/shared/localization/locales/ru.json +113 -53
- package/shared/localization/locales/sk.json +112 -52
- package/shared/localization/locales/sl.json +113 -53
- package/shared/localization/locales/sr-Latn.json +113 -53
- package/shared/localization/locales/sr.json +113 -53
- package/shared/localization/locales/sv.json +113 -53
- package/shared/localization/locales/ta.json +113 -53
- package/shared/localization/locales/te.json +113 -53
- package/shared/localization/locales/th.json +113 -53
- package/shared/localization/locales/tr.json +113 -53
- package/shared/localization/locales/uk.json +115 -55
- package/shared/localization/locales/vi.json +113 -53
- package/shared/localization/locales/zh-HK.json +113 -53
- package/shared/localization/locales/zh-TW.json +113 -53
- package/shared/localization/locales/zh.json +113 -53
- package/shared/util.js +2 -0
- package/types/artifacts.d.ts +4 -0
- package/types/externs.d.ts +1 -1
- package/types/internal/test.d.ts +1 -1
- package/types/protocol.d.ts +3 -0
|
@@ -66,7 +66,7 @@ export namespace UIStrings {
|
|
|
66
66
|
const displayValue: string;
|
|
67
67
|
const columnProtocol: string;
|
|
68
68
|
}
|
|
69
|
-
import { Audit } from
|
|
70
|
-
import { NetworkRequest } from
|
|
71
|
-
import { EntityClassification } from
|
|
69
|
+
import { Audit } from '../audit.js';
|
|
70
|
+
import { NetworkRequest } from '../../lib/network-request.js';
|
|
71
|
+
import { EntityClassification } from '../../computed/entity-classification.js';
|
|
72
72
|
//# sourceMappingURL=uses-http2.d.ts.map
|
|
@@ -12,5 +12,5 @@ export namespace UIStrings {
|
|
|
12
12
|
const failureTitle: string;
|
|
13
13
|
const description: string;
|
|
14
14
|
}
|
|
15
|
-
import ViolationAudit from
|
|
15
|
+
import ViolationAudit from '../violation-audit.js';
|
|
16
16
|
//# sourceMappingURL=uses-passive-event-listeners.d.ts.map
|
|
@@ -7,5 +7,5 @@ declare class FinalScreenshot extends Audit {
|
|
|
7
7
|
*/
|
|
8
8
|
static audit(artifacts: LH.Artifacts, context: LH.Audit.Context): Promise<LH.Audit.Product>;
|
|
9
9
|
}
|
|
10
|
-
import { Audit } from
|
|
10
|
+
import { Audit } from './audit.js';
|
|
11
11
|
//# sourceMappingURL=final-screenshot.d.ts.map
|
|
@@ -2,13 +2,27 @@ export default LargestContentfulPaintElement;
|
|
|
2
2
|
declare class LargestContentfulPaintElement extends Audit {
|
|
3
3
|
/**
|
|
4
4
|
* @param {LH.Artifacts} artifacts
|
|
5
|
-
* @
|
|
5
|
+
* @param {LH.Audit.Context} context
|
|
6
|
+
* @return {Promise<LH.Audit.Details.Table|undefined>}
|
|
6
7
|
*/
|
|
7
|
-
static
|
|
8
|
+
static makePhaseTable(artifacts: LH.Artifacts, context: LH.Audit.Context): Promise<LH.Audit.Details.Table | undefined>;
|
|
9
|
+
/**
|
|
10
|
+
* @param {LH.Artifacts} artifacts
|
|
11
|
+
* @param {LH.Audit.Context} context
|
|
12
|
+
* @return {Promise<LH.Audit.Product>}
|
|
13
|
+
*/
|
|
14
|
+
static audit(artifacts: LH.Artifacts, context: LH.Audit.Context): Promise<LH.Audit.Product>;
|
|
8
15
|
}
|
|
9
16
|
export namespace UIStrings {
|
|
10
17
|
const title: string;
|
|
11
18
|
const description: string;
|
|
19
|
+
const columnPhase: string;
|
|
20
|
+
const columnPercentOfLCP: string;
|
|
21
|
+
const columnTiming: string;
|
|
22
|
+
const itemTTFB: string;
|
|
23
|
+
const itemLoadDelay: string;
|
|
24
|
+
const itemLoadTime: string;
|
|
25
|
+
const itemRenderDelay: string;
|
|
12
26
|
}
|
|
13
|
-
import { Audit } from
|
|
27
|
+
import { Audit } from './audit.js';
|
|
14
28
|
//# sourceMappingURL=largest-contentful-paint-element.d.ts.map
|
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
|
|
7
7
|
import {Audit} from './audit.js';
|
|
8
8
|
import * as i18n from '../lib/i18n/i18n.js';
|
|
9
|
+
import {LargestContentfulPaint} from '../computed/metrics/largest-contentful-paint.js';
|
|
10
|
+
import {LCPBreakdown} from '../computed/metrics/lcp-breakdown.js';
|
|
9
11
|
|
|
10
12
|
const UIStrings = {
|
|
11
13
|
/** Descriptive title of a diagnostic audit that provides the element that was determined to be the Largest Contentful Paint. */
|
|
@@ -13,6 +15,20 @@ const UIStrings = {
|
|
|
13
15
|
/** Description of a Lighthouse audit that tells the user that the element shown was determined to be the Largest Contentful Paint. */
|
|
14
16
|
description: 'This is the largest contentful element painted within the viewport. ' +
|
|
15
17
|
'[Learn more about the Largest Contentful Paint element](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)',
|
|
18
|
+
/** Label for a column in a data table; entries will be the name of a phase in the Largest Contentful Paint (LCP) metric. */
|
|
19
|
+
columnPhase: 'Phase',
|
|
20
|
+
/** Label for a column in a data table; entries will be the percent of Largest Contentful Paint (LCP) that a phase covers. */
|
|
21
|
+
columnPercentOfLCP: '% of LCP',
|
|
22
|
+
/** Label for a column in a data table; entries will be the amount of time spent in a phase in the Largest Contentful Paint (LCP) metric. */
|
|
23
|
+
columnTiming: 'Timing',
|
|
24
|
+
/** Table item value for the Time To First Byte (TTFB) phase of the Largest Contentful Paint (LCP) metric. */
|
|
25
|
+
itemTTFB: 'TTFB',
|
|
26
|
+
/** Table item value for the load delay phase of the Largest Contentful Paint (LCP) metric. */
|
|
27
|
+
itemLoadDelay: 'Load Delay',
|
|
28
|
+
/** Table item value for the load time phase of the Largest Contentful Paint (LCP) metric. */
|
|
29
|
+
itemLoadTime: 'Load Time',
|
|
30
|
+
/** Table item value for the render delay phase of the Largest Contentful Paint (LCP) metric. */
|
|
31
|
+
itemRenderDelay: 'Render Delay',
|
|
16
32
|
};
|
|
17
33
|
|
|
18
34
|
const str_ = i18n.createIcuMessageFn(import.meta.url, UIStrings);
|
|
@@ -28,15 +44,64 @@ class LargestContentfulPaintElement extends Audit {
|
|
|
28
44
|
description: str_(UIStrings.description),
|
|
29
45
|
scoreDisplayMode: Audit.SCORING_MODES.INFORMATIVE,
|
|
30
46
|
supportedModes: ['navigation'],
|
|
31
|
-
requiredArtifacts:
|
|
47
|
+
requiredArtifacts:
|
|
48
|
+
['traces', 'TraceElements', 'devtoolsLogs', 'GatherContext', 'settings', 'URL'],
|
|
32
49
|
};
|
|
33
50
|
}
|
|
34
51
|
|
|
35
52
|
/**
|
|
36
53
|
* @param {LH.Artifacts} artifacts
|
|
37
|
-
* @
|
|
54
|
+
* @param {LH.Audit.Context} context
|
|
55
|
+
* @return {Promise<LH.Audit.Details.Table|undefined>}
|
|
38
56
|
*/
|
|
39
|
-
static
|
|
57
|
+
static async makePhaseTable(artifacts, context) {
|
|
58
|
+
const trace = artifacts.traces[Audit.DEFAULT_PASS];
|
|
59
|
+
const devtoolsLog = artifacts.devtoolsLogs[Audit.DEFAULT_PASS];
|
|
60
|
+
const gatherContext = artifacts.GatherContext;
|
|
61
|
+
const metricComputationData = {trace, devtoolsLog, gatherContext,
|
|
62
|
+
settings: context.settings, URL: artifacts.URL};
|
|
63
|
+
|
|
64
|
+
const {timing: metricLcp} =
|
|
65
|
+
await LargestContentfulPaint.request(metricComputationData, context);
|
|
66
|
+
const {ttfb, loadStart, loadEnd} = await LCPBreakdown.request(metricComputationData, context);
|
|
67
|
+
|
|
68
|
+
let loadDelay = 0;
|
|
69
|
+
let loadTime = 0;
|
|
70
|
+
let renderDelay = metricLcp - ttfb;
|
|
71
|
+
|
|
72
|
+
if (loadStart && loadEnd) {
|
|
73
|
+
loadDelay = loadStart - ttfb;
|
|
74
|
+
loadTime = loadEnd - loadStart;
|
|
75
|
+
renderDelay = metricLcp - loadEnd;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
const results = [
|
|
79
|
+
{phase: str_(UIStrings.itemTTFB), timing: ttfb},
|
|
80
|
+
{phase: str_(UIStrings.itemLoadDelay), timing: loadDelay},
|
|
81
|
+
{phase: str_(UIStrings.itemLoadTime), timing: loadTime},
|
|
82
|
+
{phase: str_(UIStrings.itemRenderDelay), timing: renderDelay},
|
|
83
|
+
].map(result => {
|
|
84
|
+
const percent = 100 * result.timing / metricLcp;
|
|
85
|
+
const percentStr = `${percent.toFixed(0)}%`;
|
|
86
|
+
return {...result, percent: percentStr};
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
/** @type {LH.Audit.Details.Table['headings']} */
|
|
90
|
+
const headings = [
|
|
91
|
+
{key: 'phase', valueType: 'text', label: str_(UIStrings.columnPhase)},
|
|
92
|
+
{key: 'percent', valueType: 'text', label: str_(UIStrings.columnPercentOfLCP)},
|
|
93
|
+
{key: 'timing', valueType: 'ms', label: str_(UIStrings.columnTiming)},
|
|
94
|
+
];
|
|
95
|
+
|
|
96
|
+
return Audit.makeTableDetails(headings, results);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* @param {LH.Artifacts} artifacts
|
|
101
|
+
* @param {LH.Audit.Context} context
|
|
102
|
+
* @return {Promise<LH.Audit.Product>}
|
|
103
|
+
*/
|
|
104
|
+
static async audit(artifacts, context) {
|
|
40
105
|
const lcpElement = artifacts.TraceElements
|
|
41
106
|
.find(element => element.traceEventType === 'largest-contentful-paint');
|
|
42
107
|
const lcpElementDetails = [];
|
|
@@ -51,7 +116,15 @@ class LargestContentfulPaintElement extends Audit {
|
|
|
51
116
|
{key: 'node', valueType: 'node', label: str_(i18n.UIStrings.columnElement)},
|
|
52
117
|
];
|
|
53
118
|
|
|
54
|
-
const
|
|
119
|
+
const elementTable = Audit.makeTableDetails(headings, lcpElementDetails);
|
|
120
|
+
|
|
121
|
+
const items = [elementTable];
|
|
122
|
+
if (elementTable.items.length) {
|
|
123
|
+
const phaseTable = await this.makePhaseTable(artifacts, context);
|
|
124
|
+
if (phaseTable) items.push(phaseTable);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
const details = Audit.makeListDetails(items);
|
|
55
128
|
|
|
56
129
|
const displayValue = str_(i18n.UIStrings.displayValueElementsFound,
|
|
57
130
|
{nodeCount: lcpElementDetails.length});
|
|
@@ -7,5 +7,5 @@ declare class MainThreadTasks extends Audit {
|
|
|
7
7
|
*/
|
|
8
8
|
static audit(artifacts: LH.Artifacts, context: LH.Audit.Context): Promise<LH.Audit.Product>;
|
|
9
9
|
}
|
|
10
|
-
import { Audit } from
|
|
10
|
+
import { Audit } from './audit.js';
|
|
11
11
|
//# sourceMappingURL=main-thread-tasks.d.ts.map
|
|
@@ -17,5 +17,5 @@ declare class ExperimentalInteractionToNextPaint extends Audit {
|
|
|
17
17
|
export namespace UIStrings {
|
|
18
18
|
const description: string;
|
|
19
19
|
}
|
|
20
|
-
import { Audit } from
|
|
20
|
+
import { Audit } from '../audit.js';
|
|
21
21
|
//# sourceMappingURL=experimental-interaction-to-next-paint.d.ts.map
|
|
@@ -11,5 +11,5 @@ declare class FirstContentfulPaint3G extends Audit {
|
|
|
11
11
|
*/
|
|
12
12
|
static audit(artifacts: LH.Artifacts, context: LH.Audit.Context): Promise<LH.Audit.Product>;
|
|
13
13
|
}
|
|
14
|
-
import { Audit } from
|
|
14
|
+
import { Audit } from '../audit.js';
|
|
15
15
|
//# sourceMappingURL=first-contentful-paint-3g.d.ts.map
|
package/core/audits/metrics.d.ts
CHANGED
|
@@ -7,5 +7,5 @@ declare class NetworkRequests extends Audit {
|
|
|
7
7
|
*/
|
|
8
8
|
static audit(artifacts: LH.Artifacts, context: LH.Audit.Context): Promise<LH.Audit.Product>;
|
|
9
9
|
}
|
|
10
|
-
import { Audit } from
|
|
10
|
+
import { Audit } from './audit.js';
|
|
11
11
|
//# sourceMappingURL=network-requests.d.ts.map
|
|
@@ -63,6 +63,7 @@ class NetworkRequests extends Audit {
|
|
|
63
63
|
|
|
64
64
|
return {
|
|
65
65
|
url: UrlUtils.elideDataURI(record.url),
|
|
66
|
+
sessionTargetType: record.sessionTargetType,
|
|
66
67
|
protocol: record.protocol,
|
|
67
68
|
rendererStartTime: normalizeTime(record.rendererStartTime),
|
|
68
69
|
networkRequestTime: normalizeTime(record.networkRequestTime),
|
|
@@ -34,6 +34,6 @@ export namespace UIStrings {
|
|
|
34
34
|
const description: string;
|
|
35
35
|
const requestCountOverBudget: string;
|
|
36
36
|
}
|
|
37
|
-
import { Budget } from
|
|
38
|
-
import { Audit } from
|
|
37
|
+
import { Budget } from '../config/budget.js';
|
|
38
|
+
import { Audit } from './audit.js';
|
|
39
39
|
//# sourceMappingURL=performance-budget.d.ts.map
|
|
@@ -7,5 +7,5 @@ declare class PredictivePerf extends Audit {
|
|
|
7
7
|
*/
|
|
8
8
|
static audit(artifacts: LH.Artifacts, context: LH.Audit.Context): Promise<LH.Audit.Product>;
|
|
9
9
|
}
|
|
10
|
-
import { Audit } from
|
|
10
|
+
import { Audit } from './audit.js';
|
|
11
11
|
//# sourceMappingURL=predictive-perf.d.ts.map
|
|
@@ -11,6 +11,8 @@ import {LanternFirstMeaningfulPaint} from '../computed/metrics/lantern-first-mea
|
|
|
11
11
|
import {LanternInteractive} from '../computed/metrics/lantern-interactive.js';
|
|
12
12
|
import {LanternSpeedIndex} from '../computed/metrics/lantern-speed-index.js';
|
|
13
13
|
import {LanternLargestContentfulPaint} from '../computed/metrics/lantern-largest-contentful-paint.js';
|
|
14
|
+
import {TimingSummary} from '../computed/metrics/timing-summary.js';
|
|
15
|
+
import {defaultSettings} from '../config/constants.js';
|
|
14
16
|
|
|
15
17
|
// Parameters (in ms) for log-normal CDF scoring. To see the curve:
|
|
16
18
|
// https://www.desmos.com/calculator/bksgkihhj8
|
|
@@ -32,7 +34,7 @@ class PredictivePerf extends Audit {
|
|
|
32
34
|
'a cellular connection on a mobile device.',
|
|
33
35
|
scoreDisplayMode: Audit.SCORING_MODES.NUMERIC,
|
|
34
36
|
supportedModes: ['navigation'],
|
|
35
|
-
requiredArtifacts: ['traces', 'devtoolsLogs', 'GatherContext'],
|
|
37
|
+
requiredArtifacts: ['traces', 'devtoolsLogs', 'GatherContext', 'URL'],
|
|
36
38
|
};
|
|
37
39
|
}
|
|
38
40
|
|
|
@@ -47,8 +49,7 @@ class PredictivePerf extends Audit {
|
|
|
47
49
|
const devtoolsLog = artifacts.devtoolsLogs[Audit.DEFAULT_PASS];
|
|
48
50
|
const URL = artifacts.URL;
|
|
49
51
|
/** @type {LH.Config.Settings} */
|
|
50
|
-
|
|
51
|
-
const settings = {}; // Use default settings.
|
|
52
|
+
const settings = JSON.parse(JSON.stringify(defaultSettings)); // Use default settings.
|
|
52
53
|
const computationData = {trace, devtoolsLog, gatherContext, settings, URL};
|
|
53
54
|
const fcp = await LanternFirstContentfulPaint.request(computationData, context);
|
|
54
55
|
const fmp = await LanternFirstMeaningfulPaint.request(computationData, context);
|
|
@@ -56,6 +57,8 @@ class PredictivePerf extends Audit {
|
|
|
56
57
|
const si = await LanternSpeedIndex.request(computationData, context);
|
|
57
58
|
const lcp = await LanternLargestContentfulPaint.request(computationData, context);
|
|
58
59
|
|
|
60
|
+
const timingSummary = await TimingSummary.request(computationData, context);
|
|
61
|
+
|
|
59
62
|
const values = {
|
|
60
63
|
roughEstimateOfFCP: fcp.timing,
|
|
61
64
|
optimisticFCP: fcp.optimisticEstimate.timeInMs,
|
|
@@ -76,6 +79,10 @@ class PredictivePerf extends Audit {
|
|
|
76
79
|
roughEstimateOfLCP: lcp.timing,
|
|
77
80
|
optimisticLCP: lcp.optimisticEstimate.timeInMs,
|
|
78
81
|
pessimisticLCP: lcp.pessimisticEstimate.timeInMs,
|
|
82
|
+
|
|
83
|
+
roughEstimateOfTTFB: timingSummary.metrics.timeToFirstByte,
|
|
84
|
+
roughEstimateOfLCPLoadStart: timingSummary.metrics.lcpLoadStart,
|
|
85
|
+
roughEstimateOfLCPLoadEnd: timingSummary.metrics.lcpLoadEnd,
|
|
79
86
|
};
|
|
80
87
|
|
|
81
88
|
const score = Audit.computeLogNormalScore(
|
|
@@ -42,16 +42,6 @@ declare class PrioritizeLcpImage extends Audit {
|
|
|
42
42
|
lcpNodeToPreload?: import("../lib/dependency-graph/network-node.js").NetworkNode | undefined;
|
|
43
43
|
initiatorPath?: InitiatorPath | undefined;
|
|
44
44
|
};
|
|
45
|
-
/**
|
|
46
|
-
* Match the LCP event with the paint event to get the request of the image actually painted.
|
|
47
|
-
* This could differ from the `ImageElement` associated with the nodeId if e.g. the LCP
|
|
48
|
-
* was a pseudo-element associated with a node containing a smaller background-image.
|
|
49
|
-
* @param {LH.Trace} trace
|
|
50
|
-
* @param {LH.Artifacts.ProcessedNavigation} processedNavigation
|
|
51
|
-
* @param {Array<NetworkRequest>} networkRecords
|
|
52
|
-
* @return {NetworkRequest|undefined}
|
|
53
|
-
*/
|
|
54
|
-
static getLcpRecord(trace: LH.Trace, processedNavigation: LH.Artifacts.ProcessedNavigation, networkRecords: Array<NetworkRequest>): NetworkRequest | undefined;
|
|
55
45
|
/**
|
|
56
46
|
* Computes the estimated effect of preloading the LCP image.
|
|
57
47
|
* @param {LH.Artifacts.TraceElement} lcpElement
|
|
@@ -79,7 +69,6 @@ export namespace UIStrings {
|
|
|
79
69
|
const title: string;
|
|
80
70
|
const description: string;
|
|
81
71
|
}
|
|
82
|
-
import { Audit } from
|
|
83
|
-
import { NetworkRequest } from
|
|
84
|
-
import { ProcessedNavigation } from "../computed/processed-navigation.js";
|
|
72
|
+
import { Audit } from './audit.js';
|
|
73
|
+
import { NetworkRequest } from '../lib/network-request.js';
|
|
85
74
|
//# sourceMappingURL=prioritize-lcp-image.d.ts.map
|