lighthouse 8.0.0-dev.20210709 → 8.0.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/docs/architecture.md +101 -0
- package/docs/authenticated-pages.md +44 -0
- package/docs/bug-labels.md +35 -0
- package/docs/configuration.md +213 -0
- package/docs/emulation.md +32 -0
- package/docs/error-reporting.md +42 -0
- package/docs/hacking-tips.md +55 -0
- package/docs/headless-chrome.md +119 -0
- package/docs/lantern.md +55 -0
- package/docs/new-audits.md +99 -0
- package/docs/performance-budgets.md +187 -0
- package/docs/plugins.md +374 -0
- package/docs/puppeteer.md +95 -0
- package/docs/readme.md +164 -0
- package/docs/recipes/auth/README.md +129 -0
- package/docs/recipes/auth/example-lh-auth.js +81 -0
- package/docs/recipes/auth/package.json +11 -0
- package/docs/recipes/auth/server/public/dashboard-unauthenticated.html +21 -0
- package/docs/recipes/auth/server/public/dashboard.html +25 -0
- package/docs/recipes/auth/server/public/home-unauthenticated.html +27 -0
- package/docs/recipes/auth/server/public/home.html +17 -0
- package/docs/recipes/auth/server/public/unauthenticated.html +22 -0
- package/docs/recipes/auth/server/server.js +85 -0
- package/docs/recipes/custom-audit/custom-config.js +36 -0
- package/docs/recipes/custom-audit/package.json +8 -0
- package/docs/recipes/custom-audit/readme.md +32 -0
- package/docs/recipes/custom-audit/searchable-audit.js +46 -0
- package/docs/recipes/custom-audit/searchable-gatherer.js +32 -0
- package/docs/recipes/custom-gatherer-puppeteer/custom-audit.js +34 -0
- package/{root.js → docs/recipes/custom-gatherer-puppeteer/custom-config.js} +23 -2
- package/docs/recipes/custom-gatherer-puppeteer/custom-gatherer.js +51 -0
- package/docs/recipes/custom-gatherer-puppeteer/package.json +13 -0
- package/docs/recipes/custom-gatherer-puppeteer/readme.md +7 -0
- package/docs/recipes/custom-gatherer-puppeteer/test.sh +9 -0
- package/docs/recipes/gulp/gulpfile.js +79 -0
- package/docs/recipes/gulp/package.json +12 -0
- package/docs/recipes/gulp/public/index.html +22 -0
- package/docs/recipes/gulp/readme.md +6 -0
- package/docs/recipes/integration-test/README.md +14 -0
- package/docs/recipes/integration-test/example-lh-auth.test.js +160 -0
- package/docs/recipes/integration-test/package.json +9 -0
- package/docs/recipes/lighthouse-plugin-example/audits/preload-as.js +46 -0
- package/docs/recipes/lighthouse-plugin-example/package.json +11 -0
- package/docs/recipes/lighthouse-plugin-example/plugin-recipe-screenshot.png +0 -0
- package/docs/recipes/lighthouse-plugin-example/plugin.js +24 -0
- package/docs/recipes/lighthouse-plugin-example/readme.md +53 -0
- package/docs/releasing.md +164 -0
- package/docs/scoring.md +79 -0
- package/docs/throttling.md +150 -0
- package/docs/understanding-results.md +209 -0
- package/docs/v8-perf-faq.md +244 -0
- package/docs/variability.md +150 -0
- package/jest.config.js +0 -3
- package/lighthouse-cli/bin.js +8 -6
- package/lighthouse-core/audits/accessibility/aria-command-name.js +1 -1
- package/lighthouse-core/audits/accessibility/aria-meter-name.js +1 -1
- package/lighthouse-core/audits/accessibility/aria-progressbar-name.js +1 -1
- package/lighthouse-core/audits/accessibility/aria-tooltip-name.js +1 -1
- package/lighthouse-core/audits/accessibility/aria-treeitem-name.js +1 -1
- package/lighthouse-core/audits/apple-touch-icon.js +0 -1
- package/lighthouse-core/audits/audit.js +3 -3
- package/lighthouse-core/audits/autocomplete.js +2 -2
- package/lighthouse-core/audits/byte-efficiency/byte-efficiency-audit.js +14 -29
- package/lighthouse-core/audits/byte-efficiency/duplicated-javascript.js +2 -3
- package/lighthouse-core/audits/byte-efficiency/efficient-animated-content.js +1 -1
- package/lighthouse-core/audits/byte-efficiency/legacy-javascript.js +2 -3
- package/lighthouse-core/audits/byte-efficiency/modern-image-formats.js +15 -55
- package/lighthouse-core/audits/byte-efficiency/offscreen-images.js +4 -8
- package/lighthouse-core/audits/byte-efficiency/render-blocking-resources.js +8 -15
- package/lighthouse-core/audits/byte-efficiency/total-byte-weight.js +9 -10
- package/lighthouse-core/audits/byte-efficiency/unminified-css.js +1 -1
- package/lighthouse-core/audits/byte-efficiency/unminified-javascript.js +1 -1
- package/lighthouse-core/audits/byte-efficiency/unused-css-rules.js +1 -1
- package/lighthouse-core/audits/byte-efficiency/unused-javascript.js +1 -2
- package/lighthouse-core/audits/byte-efficiency/uses-long-cache-ttl.js +2 -2
- package/lighthouse-core/audits/byte-efficiency/uses-optimized-images.js +1 -2
- package/lighthouse-core/audits/byte-efficiency/uses-responsive-images.js +24 -46
- package/lighthouse-core/audits/byte-efficiency/uses-text-compression.js +1 -1
- package/lighthouse-core/audits/critical-request-chains.js +0 -1
- package/lighthouse-core/audits/csp-xss.js +1 -1
- package/lighthouse-core/audits/diagnostics.js +0 -1
- package/lighthouse-core/audits/dobetterweb/geolocation-on-start.js +0 -1
- package/lighthouse-core/audits/dobetterweb/inspector-issues.js +1 -1
- package/lighthouse-core/audits/dobetterweb/notification-on-start.js +0 -1
- package/lighthouse-core/audits/dobetterweb/uses-http2.js +0 -1
- package/lighthouse-core/audits/final-screenshot.js +4 -8
- package/lighthouse-core/audits/font-display.js +0 -1
- package/lighthouse-core/audits/installable-manifest.js +3 -4
- package/lighthouse-core/audits/largest-contentful-paint-element.js +0 -1
- package/lighthouse-core/audits/long-tasks.js +1 -1
- package/lighthouse-core/audits/maskable-icon.js +0 -1
- package/lighthouse-core/audits/metrics/first-contentful-paint-3g.js +2 -4
- package/lighthouse-core/audits/metrics/first-contentful-paint.js +2 -4
- package/lighthouse-core/audits/metrics/first-meaningful-paint.js +2 -4
- package/lighthouse-core/audits/metrics/interactive.js +2 -4
- package/lighthouse-core/audits/metrics/largest-contentful-paint.js +2 -4
- package/lighthouse-core/audits/metrics/max-potential-fid.js +2 -4
- package/lighthouse-core/audits/metrics/speed-index.js +2 -4
- package/lighthouse-core/audits/metrics/total-blocking-time.js +2 -10
- package/lighthouse-core/audits/metrics.js +2 -4
- package/lighthouse-core/audits/performance-budget.js +0 -1
- package/lighthouse-core/audits/predictive-perf.js +6 -9
- package/lighthouse-core/audits/preload-fonts.js +1 -11
- package/lighthouse-core/audits/preload-lcp-image.js +5 -18
- package/lighthouse-core/audits/redirects.js +8 -10
- package/lighthouse-core/audits/screenshot-thumbnails.js +13 -28
- package/lighthouse-core/audits/seo/canonical.js +1 -2
- package/lighthouse-core/audits/seo/font-size.js +4 -4
- package/lighthouse-core/audits/seo/hreflang.js +2 -3
- package/lighthouse-core/audits/seo/http-status-code.js +16 -21
- package/lighthouse-core/audits/seo/is-crawlable.js +3 -4
- package/lighthouse-core/audits/seo/robots-txt.js +2 -2
- package/lighthouse-core/audits/seo/tap-targets.js +5 -5
- package/lighthouse-core/audits/server-response-time.js +2 -20
- package/lighthouse-core/audits/splash-screen.js +0 -1
- package/lighthouse-core/audits/themed-omnibox.js +0 -1
- package/lighthouse-core/audits/third-party-facades.js +0 -1
- package/lighthouse-core/audits/third-party-summary.js +3 -1
- package/lighthouse-core/audits/timing-budget.js +2 -4
- package/lighthouse-core/audits/uses-rel-preconnect.js +9 -14
- package/lighthouse-core/audits/uses-rel-preload.js +2 -13
- package/lighthouse-core/computed/main-thread-tasks.js +2 -2
- package/lighthouse-core/computed/metrics/cumulative-layout-shift.js +3 -3
- package/lighthouse-core/computed/metrics/first-contentful-paint-all-frames.js +6 -6
- package/lighthouse-core/computed/metrics/first-contentful-paint.js +8 -9
- package/lighthouse-core/computed/metrics/first-meaningful-paint.js +9 -10
- package/lighthouse-core/computed/metrics/interactive.js +24 -25
- package/lighthouse-core/computed/metrics/lantern-first-contentful-paint.js +6 -6
- package/lighthouse-core/computed/metrics/lantern-first-meaningful-paint.js +6 -6
- package/lighthouse-core/computed/metrics/lantern-largest-contentful-paint.js +6 -6
- package/lighthouse-core/computed/metrics/lantern-metric.js +8 -16
- package/lighthouse-core/computed/metrics/largest-contentful-paint-all-frames.js +7 -7
- package/lighthouse-core/computed/metrics/largest-contentful-paint.js +9 -10
- package/lighthouse-core/computed/metrics/max-potential-fid.js +11 -8
- package/lighthouse-core/computed/metrics/metric.js +5 -32
- package/lighthouse-core/computed/metrics/speed-index.js +5 -6
- package/lighthouse-core/computed/metrics/timing-summary.js +45 -55
- package/lighthouse-core/computed/metrics/total-blocking-time.js +29 -36
- package/lighthouse-core/computed/page-dependency-graph.js +14 -14
- package/lighthouse-core/computed/resource-summary.js +7 -3
- package/lighthouse-core/computed/speedline.js +3 -3
- package/lighthouse-core/computed/trace-of-tab.js +86 -15
- package/lighthouse-core/computed/user-timings.js +5 -5
- package/lighthouse-core/config/default-config.js +0 -1
- package/lighthouse-core/fraggle-rock/config/config.js +7 -9
- package/lighthouse-core/fraggle-rock/config/default-config.js +2 -40
- package/lighthouse-core/fraggle-rock/config/filters.js +6 -39
- package/lighthouse-core/fraggle-rock/config/validation.js +4 -4
- package/lighthouse-core/fraggle-rock/gather/base-artifacts.js +19 -54
- package/lighthouse-core/fraggle-rock/gather/navigation-runner.js +10 -21
- package/lighthouse-core/fraggle-rock/gather/runner-helpers.js +2 -2
- package/lighthouse-core/fraggle-rock/gather/snapshot-runner.js +2 -2
- package/lighthouse-core/fraggle-rock/gather/timespan-runner.js +2 -2
- package/lighthouse-core/gather/driver/prepare.js +0 -3
- package/lighthouse-core/gather/fetcher.js +2 -0
- package/lighthouse-core/gather/gather-runner.js +14 -2
- package/lighthouse-core/gather/gatherers/image-elements.js +61 -24
- package/lighthouse-core/gather/gatherers/inspector-issues.js +2 -2
- package/lighthouse-core/gather/gatherers/script-elements.js +12 -45
- package/lighthouse-core/gather/gatherers/seo/font-size.js +5 -5
- package/lighthouse-core/gather/gatherers/seo/tap-targets.js +12 -64
- package/lighthouse-core/gather/gatherers/service-worker.js +3 -20
- package/lighthouse-core/gather/gatherers/trace-compat.js +1 -1
- package/lighthouse-core/gather/gatherers/trace-elements.js +3 -15
- package/lighthouse-core/gather/gatherers/trace.js +4 -13
- package/lighthouse-core/gather/gatherers/viewport-dimensions.js +1 -1
- package/lighthouse-core/lib/dependency-graph/simulator/network-analyzer.js +2 -13
- package/lighthouse-core/lib/emulation.js +2 -0
- package/lighthouse-core/lib/i18n/i18n.js +2 -2
- package/lighthouse-core/lib/i18n/locales/ar-XB.json +141 -141
- package/lighthouse-core/lib/i18n/locales/ar.json +143 -143
- package/lighthouse-core/lib/i18n/locales/bg.json +143 -143
- package/lighthouse-core/lib/i18n/locales/ca.json +141 -141
- package/lighthouse-core/lib/i18n/locales/cs.json +141 -141
- package/lighthouse-core/lib/i18n/locales/da.json +141 -141
- package/lighthouse-core/lib/i18n/locales/de.json +142 -142
- package/lighthouse-core/lib/i18n/locales/el.json +141 -141
- package/lighthouse-core/lib/i18n/locales/en-GB.json +141 -141
- package/lighthouse-core/lib/i18n/locales/en-US.ctc.json +6659 -0
- package/lighthouse-core/lib/i18n/locales/en-US.json +144 -150
- package/lighthouse-core/lib/i18n/locales/en-XA.json +141 -141
- package/lighthouse-core/lib/i18n/locales/en-XL.ctc.json +6628 -0
- package/lighthouse-core/lib/i18n/locales/en-XL.json +144 -150
- package/lighthouse-core/lib/i18n/locales/es-419.json +141 -141
- package/lighthouse-core/lib/i18n/locales/es.json +141 -141
- package/lighthouse-core/lib/i18n/locales/fi.json +143 -143
- package/lighthouse-core/lib/i18n/locales/fil.json +142 -142
- package/lighthouse-core/lib/i18n/locales/fr.json +141 -141
- package/lighthouse-core/lib/i18n/locales/he.json +142 -142
- package/lighthouse-core/lib/i18n/locales/hi.json +143 -143
- package/lighthouse-core/lib/i18n/locales/hr.json +141 -141
- package/lighthouse-core/lib/i18n/locales/hu.json +143 -143
- package/lighthouse-core/lib/i18n/locales/id.json +143 -143
- package/lighthouse-core/lib/i18n/locales/it.json +143 -143
- package/lighthouse-core/lib/i18n/locales/ja.json +143 -143
- package/lighthouse-core/lib/i18n/locales/ko.json +143 -143
- package/lighthouse-core/lib/i18n/locales/lt.json +143 -143
- package/lighthouse-core/lib/i18n/locales/lv.json +143 -143
- package/lighthouse-core/lib/i18n/locales/nl.json +141 -141
- package/lighthouse-core/lib/i18n/locales/no.json +141 -141
- package/lighthouse-core/lib/i18n/locales/pl.json +141 -141
- package/lighthouse-core/lib/i18n/locales/pt-PT.json +141 -141
- package/lighthouse-core/lib/i18n/locales/pt.json +141 -141
- package/lighthouse-core/lib/i18n/locales/ro.json +144 -144
- package/lighthouse-core/lib/i18n/locales/ru.json +143 -143
- package/lighthouse-core/lib/i18n/locales/sk.json +142 -142
- package/lighthouse-core/lib/i18n/locales/sl.json +141 -141
- package/lighthouse-core/lib/i18n/locales/sr-Latn.json +143 -143
- package/lighthouse-core/lib/i18n/locales/sr.json +143 -143
- package/lighthouse-core/lib/i18n/locales/sv.json +142 -142
- package/lighthouse-core/lib/i18n/locales/ta.json +141 -141
- package/lighthouse-core/lib/i18n/locales/te.json +143 -143
- package/lighthouse-core/lib/i18n/locales/th.json +143 -143
- package/lighthouse-core/lib/i18n/locales/tr.json +143 -143
- package/lighthouse-core/lib/i18n/locales/uk.json +141 -141
- package/lighthouse-core/lib/i18n/locales/vi.json +143 -143
- package/lighthouse-core/lib/i18n/locales/zh-HK.json +141 -141
- package/lighthouse-core/lib/i18n/locales/zh-TW.json +143 -143
- package/lighthouse-core/lib/i18n/locales/zh.json +143 -143
- package/lighthouse-core/lib/lh-error.js +2 -2
- package/lighthouse-core/lib/minify-trace.js +1 -1
- package/lighthouse-core/lib/network-request.js +1 -17
- package/lighthouse-core/lib/page-functions.js +5 -6
- package/lighthouse-core/lib/rect-helpers.js +3 -3
- package/lighthouse-core/lib/sd-validation/assets/jsonldcontext.json +7137 -0
- package/lighthouse-core/lib/sd-validation/assets/schema-tree.json +9900 -0
- package/{report/report-assets.js → lighthouse-core/lib/sd-validation/helpers/walk-object.js} +20 -12
- package/lighthouse-core/lib/sd-validation/json-expander.js +56 -0
- package/lighthouse-core/lib/sd-validation/json-linter.js +49 -0
- package/lighthouse-core/lib/sd-validation/jsonld-keyword-validator.js +50 -0
- package/lighthouse-core/lib/sd-validation/line-number-from-jsonld-path.js +60 -0
- package/lighthouse-core/lib/sd-validation/schema-validator.js +146 -0
- package/lighthouse-core/lib/sd-validation/scripts/download-jsonldcontext.js +30 -0
- package/lighthouse-core/lib/sd-validation/scripts/generate-schema-tree.js +97 -0
- package/lighthouse-core/lib/sd-validation/sd-validation.js +77 -0
- package/lighthouse-core/lib/tappable-rects.js +1 -1
- package/lighthouse-core/lib/tracehouse/trace-processor.js +42 -116
- package/lighthouse-core/lib/url-shim.js +2 -29
- package/lighthouse-core/report/html/html-report-assets.js +38 -0
- package/{report/README.md → lighthouse-core/report/html/readme.md} +11 -7
- package/{report → lighthouse-core/report/html}/renderer/category-renderer.js +0 -0
- package/{report → lighthouse-core/report/html}/renderer/crc-details-renderer.js +0 -0
- package/{report → lighthouse-core/report/html}/renderer/details-renderer.js +1 -1
- package/{report → lighthouse-core/report/html}/renderer/dom.js +0 -0
- package/{report → lighthouse-core/report/html}/renderer/element-screenshot-renderer.js +0 -0
- package/{report → lighthouse-core/report/html}/renderer/i18n.js +1 -1
- package/{report → lighthouse-core/report/html}/renderer/logger.js +0 -0
- package/{report → lighthouse-core/report/html}/renderer/performance-category-renderer.js +0 -0
- package/{report → lighthouse-core/report/html}/renderer/psi.js +0 -0
- package/{report → lighthouse-core/report/html}/renderer/pwa-category-renderer.js +0 -0
- package/{report → lighthouse-core/report/html}/renderer/report-renderer.js +0 -0
- package/{report → lighthouse-core/report/html}/renderer/report-ui-features.js +3 -3
- package/{report → lighthouse-core/report/html}/renderer/snippet-renderer.js +0 -0
- package/{report → lighthouse-core/report/html}/renderer/text-encoding.js +0 -0
- package/{report → lighthouse-core/report/html}/renderer/util.js +4 -7
- package/{report/assets/styles.css → lighthouse-core/report/html/report-styles.css} +0 -0
- package/{report/assets/standalone-template.html → lighthouse-core/report/html/report-template.html} +41 -1
- package/{report/assets → lighthouse-core/report/html}/templates.html +0 -0
- package/{report → lighthouse-core/report}/report-generator.js +1 -1
- package/lighthouse-core/runner.js +1 -1
- package/package.json +12 -13
- package/readme.md +2 -2
- package/third-party/chromium-synchronization/inspector-issueAdded-types-test.js +2 -3
- package/third-party/chromium-synchronization/installability-errors-test.js +2 -2
- package/third-party/download-content-shell/download-content-shell.js +1 -2
- package/third-party/snyk/snapshot.json +1 -1
- package/tsconfig.json +1 -0
- package/types/artifacts.d.ts +21 -41
- package/types/audit.d.ts +0 -2
- package/types/config.d.ts +2 -16
- package/types/externs.d.ts +0 -1
- package/types/gatherer.d.ts +13 -13
- package/types/html-renderer.d.ts +14 -14
- package/types/i18n.d.ts +1 -1
- package/lighthouse-core/audits/byte-efficiency/uses-responsive-images-snapshot.js +0 -94
- package/lighthouse-core/computed/image-records.js +0 -62
- package/lighthouse-core/computed/metrics/navigation-metric.js +0 -46
- package/lighthouse-core/computed/processed-navigation.js +0 -21
- package/lighthouse-core/computed/processed-trace.js +0 -21
- package/lighthouse-core/gather/gatherers/gather-context.js +0 -25
- package/lighthouse-core/gather/gatherers/host-form-factor.js +0 -31
- package/lighthouse-core/gather/gatherers/host-user-agent.js +0 -29
- package/lighthouse-core/lib/lh-trace-processor.js +0 -46
- package/report/clients/standalone.js +0 -52
- package/report/test/renderer/category-renderer-test.js +0 -488
- package/report/test/renderer/crc-details-renderer-test.js +0 -115
- package/report/test/renderer/details-renderer-test.js +0 -843
- package/report/test/renderer/dom-test.js +0 -157
- package/report/test/renderer/element-screenshot-renderer-test.js +0 -189
- package/report/test/renderer/i18n-test.js +0 -146
- package/report/test/renderer/performance-category-renderer-test.js +0 -332
- package/report/test/renderer/psi-test.js +0 -152
- package/report/test/renderer/pwa-category-renderer-test.js +0 -303
- package/report/test/renderer/report-renderer-test.js +0 -325
- package/report/test/renderer/report-ui-features-test.js +0 -572
- package/report/test/renderer/snippet-renderer-test.js +0 -291
- package/report/test/renderer/text-encoding-test.js +0 -41
- package/report/test/renderer/util-test.js +0 -388
- package/report/test/report-generator-test.js +0 -145
|
@@ -166,11 +166,15 @@ function elementCenterIsAtZAxisTop(el, elCenterPoint) {
|
|
|
166
166
|
/**
|
|
167
167
|
* Finds all position sticky/absolute elements on the page and adds a class
|
|
168
168
|
* that disables pointer events on them.
|
|
169
|
-
* @param {string} className
|
|
170
169
|
* @return {() => void} - undo function to re-enable pointer events
|
|
171
170
|
*/
|
|
172
171
|
/* c8 ignore start */
|
|
173
|
-
function disableFixedAndStickyElementPointerEvents(
|
|
172
|
+
function disableFixedAndStickyElementPointerEvents() {
|
|
173
|
+
const className = 'lighthouse-disable-pointer-events';
|
|
174
|
+
const styleTag = document.createElement('style');
|
|
175
|
+
styleTag.textContent = `.${className} { pointer-events: none !important }`;
|
|
176
|
+
document.body.appendChild(styleTag);
|
|
177
|
+
|
|
174
178
|
document.querySelectorAll('*').forEach(el => {
|
|
175
179
|
const position = getComputedStyle(el).position;
|
|
176
180
|
if (position === 'fixed' || position === 'sticky') {
|
|
@@ -182,17 +186,17 @@ function disableFixedAndStickyElementPointerEvents(className) {
|
|
|
182
186
|
Array.from(document.getElementsByClassName(className)).forEach(el => {
|
|
183
187
|
el.classList.remove(className);
|
|
184
188
|
});
|
|
189
|
+
styleTag.remove();
|
|
185
190
|
};
|
|
186
191
|
}
|
|
187
192
|
/* c8 ignore stop */
|
|
188
193
|
|
|
189
194
|
/**
|
|
190
195
|
* @param {string} tapTargetsSelector
|
|
191
|
-
* @param {string} className
|
|
192
196
|
* @return {LH.Artifacts.TapTarget[]}
|
|
193
197
|
*/
|
|
194
198
|
/* c8 ignore start */
|
|
195
|
-
function gatherTapTargets(tapTargetsSelector
|
|
199
|
+
function gatherTapTargets(tapTargetsSelector) {
|
|
196
200
|
/** @type {LH.Artifacts.TapTarget[]} */
|
|
197
201
|
const targets = [];
|
|
198
202
|
|
|
@@ -233,8 +237,7 @@ function gatherTapTargets(tapTargetsSelector, className) {
|
|
|
233
237
|
// Disable pointer events so that tap targets below them don't get
|
|
234
238
|
// detected as non-tappable (they are tappable, just not while the viewport
|
|
235
239
|
// is at the current scroll position)
|
|
236
|
-
const reenableFixedAndStickyElementPointerEvents =
|
|
237
|
-
disableFixedAndStickyElementPointerEvents(className);
|
|
240
|
+
const reenableFixedAndStickyElementPointerEvents = disableFixedAndStickyElementPointerEvents();
|
|
238
241
|
|
|
239
242
|
/** @type {{
|
|
240
243
|
tapTargetElement: Element,
|
|
@@ -285,61 +288,13 @@ function gatherTapTargets(tapTargetsSelector, className) {
|
|
|
285
288
|
/* c8 ignore stop */
|
|
286
289
|
|
|
287
290
|
class TapTargets extends FRGatherer {
|
|
288
|
-
constructor() {
|
|
289
|
-
super();
|
|
290
|
-
/**
|
|
291
|
-
* This needs to be in the constructor.
|
|
292
|
-
* https://github.com/GoogleChrome/lighthouse/issues/12134
|
|
293
|
-
* @type {LH.Gatherer.GathererMeta}
|
|
294
|
-
*/
|
|
295
|
-
this.meta = {
|
|
296
|
-
supportedModes: ['snapshot', 'navigation'],
|
|
297
|
-
};
|
|
298
|
-
}
|
|
299
|
-
|
|
300
|
-
/**
|
|
301
|
-
* @param {LH.Gatherer.FRProtocolSession} session
|
|
302
|
-
* @param {string} className
|
|
303
|
-
* @return {Promise<string>}
|
|
304
|
-
*/
|
|
305
|
-
async addStyleRule(session, className) {
|
|
306
|
-
const frameTreeResponse = await session.sendCommand('Page.getFrameTree');
|
|
307
|
-
const {styleSheetId} = await session.sendCommand('CSS.createStyleSheet', {
|
|
308
|
-
frameId: frameTreeResponse.frameTree.frame.id,
|
|
309
|
-
});
|
|
310
|
-
const ruleText = `.${className} { pointer-events: none !important }`;
|
|
311
|
-
await session.sendCommand('CSS.setStyleSheetText', {
|
|
312
|
-
styleSheetId,
|
|
313
|
-
text: ruleText,
|
|
314
|
-
});
|
|
315
|
-
return styleSheetId;
|
|
316
|
-
}
|
|
317
|
-
|
|
318
|
-
/**
|
|
319
|
-
* @param {LH.Gatherer.FRProtocolSession} session
|
|
320
|
-
* @param {string} styleSheetId
|
|
321
|
-
*/
|
|
322
|
-
async removeStyleRule(session, styleSheetId) {
|
|
323
|
-
await session.sendCommand('CSS.setStyleSheetText', {
|
|
324
|
-
styleSheetId,
|
|
325
|
-
text: '',
|
|
326
|
-
});
|
|
327
|
-
}
|
|
328
|
-
|
|
329
291
|
/**
|
|
330
292
|
* @param {LH.Gatherer.FRTransitionalContext} passContext
|
|
331
293
|
* @return {Promise<LH.Artifacts.TapTarget[]>} All visible tap targets with their positions and sizes
|
|
332
294
|
*/
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
await session.sendCommand('CSS.enable');
|
|
337
|
-
|
|
338
|
-
const className = 'lighthouse-disable-pointer-events';
|
|
339
|
-
const styleSheetId = await this.addStyleRule(session, className);
|
|
340
|
-
|
|
341
|
-
const tapTargets = await passContext.driver.executionContext.evaluate(gatherTapTargets, {
|
|
342
|
-
args: [tapTargetsSelector, className],
|
|
295
|
+
getArtifact(passContext) {
|
|
296
|
+
return passContext.driver.executionContext.evaluate(gatherTapTargets, {
|
|
297
|
+
args: [tapTargetsSelector],
|
|
343
298
|
useIsolation: true,
|
|
344
299
|
deps: [
|
|
345
300
|
pageFunctions.getNodeDetailsString,
|
|
@@ -357,13 +312,6 @@ class TapTargets extends FRGatherer {
|
|
|
357
312
|
pageFunctions.getNodeLabel,
|
|
358
313
|
],
|
|
359
314
|
});
|
|
360
|
-
|
|
361
|
-
await this.removeStyleRule(session, styleSheetId);
|
|
362
|
-
|
|
363
|
-
await session.sendCommand('CSS.disable');
|
|
364
|
-
await session.sendCommand('DOM.disable');
|
|
365
|
-
|
|
366
|
-
return tapTargets;
|
|
367
315
|
}
|
|
368
316
|
}
|
|
369
317
|
|
|
@@ -5,33 +5,16 @@
|
|
|
5
5
|
*/
|
|
6
6
|
'use strict';
|
|
7
7
|
|
|
8
|
-
const
|
|
8
|
+
const Gatherer = require('./gatherer.js');
|
|
9
9
|
const serviceWorkers = require('../driver/service-workers.js');
|
|
10
10
|
|
|
11
|
-
class ServiceWorker extends
|
|
12
|
-
/** @type {LH.Gatherer.GathererMeta} */
|
|
13
|
-
meta = {
|
|
14
|
-
supportedModes: ['navigation'],
|
|
15
|
-
}
|
|
16
|
-
|
|
11
|
+
class ServiceWorker extends Gatherer {
|
|
17
12
|
/**
|
|
18
13
|
* @param {LH.Gatherer.PassContext} passContext
|
|
19
14
|
* @return {Promise<LH.Artifacts['ServiceWorker']>}
|
|
20
15
|
*/
|
|
21
16
|
async beforePass(passContext) {
|
|
22
|
-
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
// This gatherer is run in a separate pass for legacy mode.
|
|
26
|
-
// Legacy compat code is in `beforePass`.
|
|
27
|
-
async afterPass() { }
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* @param {LH.Gatherer.FRTransitionalContext} context
|
|
31
|
-
* @return {Promise<LH.Artifacts['ServiceWorker']>}
|
|
32
|
-
*/
|
|
33
|
-
async getArtifact(context) {
|
|
34
|
-
const session = context.driver.defaultSession;
|
|
17
|
+
const session = passContext.driver.defaultSession;
|
|
35
18
|
const {versions} = await serviceWorkers.getServiceWorkerVersions(session);
|
|
36
19
|
const {registrations} = await serviceWorkers.getServiceWorkerRegistrations(session);
|
|
37
20
|
|
|
@@ -18,7 +18,7 @@ const FRGatherer = require('../../fraggle-rock/gather/base-gatherer.js');
|
|
|
18
18
|
class TraceCompat extends FRGatherer {
|
|
19
19
|
/** @type {LH.Gatherer.GathererMeta<'Trace'>} */
|
|
20
20
|
meta = {
|
|
21
|
-
supportedModes: ['
|
|
21
|
+
supportedModes: ['navigation'],
|
|
22
22
|
dependencies: {Trace: TraceGatherer.symbol},
|
|
23
23
|
};
|
|
24
24
|
|
|
@@ -16,12 +16,10 @@
|
|
|
16
16
|
const FRGatherer = require('../../fraggle-rock/gather/base-gatherer.js');
|
|
17
17
|
const {resolveNodeIdToObjectId} = require('../driver/dom.js');
|
|
18
18
|
const pageFunctions = require('../../lib/page-functions.js');
|
|
19
|
+
const TraceProcessor = require('../../lib/tracehouse/trace-processor.js');
|
|
19
20
|
const RectHelpers = require('../../lib/rect-helpers.js');
|
|
20
21
|
const Sentry = require('../../lib/sentry.js');
|
|
21
22
|
const Trace = require('./trace.js');
|
|
22
|
-
const ProcessedTrace = require('../../computed/processed-trace.js');
|
|
23
|
-
const ProcessedNavigation = require('../../computed/processed-navigation.js');
|
|
24
|
-
const LighthouseError = require('../../lib/lh-error.js');
|
|
25
23
|
|
|
26
24
|
/** @typedef {{nodeId: number, score?: number, animations?: {name?: string, failureReasonsMask?: number, unsupportedProperties?: string[]}[]}} TraceElementData */
|
|
27
25
|
|
|
@@ -257,18 +255,8 @@ class TraceElements extends FRGatherer {
|
|
|
257
255
|
throw new Error('Trace is missing!');
|
|
258
256
|
}
|
|
259
257
|
|
|
260
|
-
const
|
|
261
|
-
|
|
262
|
-
.request(processedTrace, context)
|
|
263
|
-
.catch(err => {
|
|
264
|
-
// If we were running in timespan mode and there was no paint, treat LCP as missing.
|
|
265
|
-
if (context.gatherMode === 'timespan' && err.code === LighthouseError.errors.NO_FCP.code) {
|
|
266
|
-
return {largestContentfulPaintEvt: undefined};
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
throw err;
|
|
270
|
-
});
|
|
271
|
-
const {mainThreadEvents} = processedTrace;
|
|
258
|
+
const {largestContentfulPaintEvt, mainThreadEvents} =
|
|
259
|
+
TraceProcessor.computeTraceOfTab(trace);
|
|
272
260
|
|
|
273
261
|
const lcpNodeId = TraceElements.getNodeIDFromTraceEvent(largestContentfulPaintEvt);
|
|
274
262
|
const clsNodeData = TraceElements.getTopLayoutShiftElements(mainThreadEvents);
|
|
@@ -12,7 +12,6 @@
|
|
|
12
12
|
*/
|
|
13
13
|
|
|
14
14
|
const FRGatherer = require('../../fraggle-rock/gather/base-gatherer.js');
|
|
15
|
-
const TraceProcessor = require('../../lib/tracehouse/trace-processor.js');
|
|
16
15
|
|
|
17
16
|
class Trace extends FRGatherer {
|
|
18
17
|
/** @type {LH.Trace} */
|
|
@@ -52,12 +51,9 @@ class Trace extends FRGatherer {
|
|
|
52
51
|
// This doesn't add its own events, but adds a `stackTrace` property to devtools.timeline events
|
|
53
52
|
'disabled-by-default-devtools.timeline.stack',
|
|
54
53
|
|
|
55
|
-
//
|
|
56
|
-
//
|
|
57
|
-
'disabled-by-default-
|
|
58
|
-
'disabled-by-default-v8.cpu_profiler',
|
|
59
|
-
'disabled-by-default-v8.cpu_profiler.hires',
|
|
60
|
-
'latencyInfo',
|
|
54
|
+
// CPU sampling profiler data only enabled for debugging purposes
|
|
55
|
+
// 'disabled-by-default-v8.cpu_profiler',
|
|
56
|
+
// 'disabled-by-default-v8.cpu_profiler.hires',
|
|
61
57
|
];
|
|
62
58
|
}
|
|
63
59
|
|
|
@@ -99,7 +95,7 @@ class Trace extends FRGatherer {
|
|
|
99
95
|
/**
|
|
100
96
|
* @param {LH.Gatherer.FRTransitionalContext} passContext
|
|
101
97
|
*/
|
|
102
|
-
async startSensitiveInstrumentation({driver
|
|
98
|
+
async startSensitiveInstrumentation({driver}) {
|
|
103
99
|
// TODO(FR-COMPAT): read additional trace categories from overall settings?
|
|
104
100
|
// TODO(FR-COMPAT): check if CSS/DOM domains have been enabled in another session and warn?
|
|
105
101
|
await driver.defaultSession.sendCommand('Page.enable');
|
|
@@ -107,11 +103,6 @@ class Trace extends FRGatherer {
|
|
|
107
103
|
categories: Trace.getDefaultTraceCategories().join(','),
|
|
108
104
|
options: 'sampling-frequency=10000', // 1000 is default and too slow.
|
|
109
105
|
});
|
|
110
|
-
|
|
111
|
-
if (gatherMode === 'timespan') {
|
|
112
|
-
await driver.defaultSession.sendCommand('Tracing.recordClockSyncMarker',
|
|
113
|
-
{syncId: TraceProcessor.TIMESPAN_MARKER_ID});
|
|
114
|
-
}
|
|
115
106
|
}
|
|
116
107
|
|
|
117
108
|
/**
|
|
@@ -437,17 +437,6 @@ class NetworkAnalyzer {
|
|
|
437
437
|
* @return {LH.Artifacts.NetworkRequest}
|
|
438
438
|
*/
|
|
439
439
|
static findMainDocument(records, finalURL) {
|
|
440
|
-
const mainDocument = NetworkAnalyzer.findOptionalMainDocument(records, finalURL);
|
|
441
|
-
if (!mainDocument) throw new Error('Unable to identify the main resource');
|
|
442
|
-
return mainDocument;
|
|
443
|
-
}
|
|
444
|
-
|
|
445
|
-
/**
|
|
446
|
-
* @param {Array<LH.Artifacts.NetworkRequest>} records
|
|
447
|
-
* @param {string} [finalURL]
|
|
448
|
-
* @return {LH.Artifacts.NetworkRequest|undefined}
|
|
449
|
-
*/
|
|
450
|
-
static findOptionalMainDocument(records, finalURL) {
|
|
451
440
|
// Try to find an exact match with the final URL first if we have one
|
|
452
441
|
if (finalURL) {
|
|
453
442
|
// equalWithExcludedFragments is expensive, so check that the finalUrl starts with the request first
|
|
@@ -459,7 +448,7 @@ class NetworkAnalyzer {
|
|
|
459
448
|
|
|
460
449
|
const documentRequests = records.filter(record => record.resourceType ===
|
|
461
450
|
NetworkRequest.TYPES.Document);
|
|
462
|
-
if (!documentRequests.length)
|
|
451
|
+
if (!documentRequests.length) throw new Error('Unable to identify the main resource');
|
|
463
452
|
// The main document is the earliest document request, using position in networkRecords array to break ties.
|
|
464
453
|
return documentRequests.reduce((min, r) => (r.startTime < min.startTime ? r : min));
|
|
465
454
|
}
|
|
@@ -469,7 +458,7 @@ class NetworkAnalyzer {
|
|
|
469
458
|
* See: {@link NetworkAnalyzer.findMainDocument}) for how to retrieve main document.
|
|
470
459
|
*
|
|
471
460
|
* @param {LH.Artifacts.NetworkRequest} request
|
|
472
|
-
* @
|
|
461
|
+
* @returns {LH.Artifacts.NetworkRequest}
|
|
473
462
|
*/
|
|
474
463
|
static resolveRedirects(request) {
|
|
475
464
|
while (request.redirectDestination) request = request.redirectDestination;
|
|
@@ -23,6 +23,8 @@ const NO_CPU_THROTTLE_METRICS = {
|
|
|
23
23
|
*/
|
|
24
24
|
async function emulate(session, settings) {
|
|
25
25
|
if (settings.emulatedUserAgent !== false) {
|
|
26
|
+
// Network.enable must be called for UA overriding to work
|
|
27
|
+
await session.sendCommand('Network.enable');
|
|
26
28
|
await session.sendCommand('Network.setUserAgentOverride', {
|
|
27
29
|
userAgent: /** @type {string} */ (settings.emulatedUserAgent),
|
|
28
30
|
});
|
|
@@ -13,13 +13,13 @@ const lookupClosestLocale = require('lookup-closest-locale');
|
|
|
13
13
|
const LOCALES = require('./locales.js');
|
|
14
14
|
const {isObjectOfUnknownValues, isObjectOrArrayOfUnknownValues} = require('../type-verifiers.js');
|
|
15
15
|
const log = require('lighthouse-logger');
|
|
16
|
-
const {LH_ROOT} = require('../../../root.js');
|
|
17
16
|
|
|
18
17
|
const DEFAULT_LOCALE = 'en';
|
|
19
18
|
|
|
20
19
|
/** @typedef {import('intl-messageformat-parser').Element} MessageElement */
|
|
21
20
|
/** @typedef {import('intl-messageformat-parser').ArgumentElement} ArgumentElement */
|
|
22
21
|
|
|
22
|
+
const LH_ROOT = path.join(__dirname, '../../../');
|
|
23
23
|
const MESSAGE_I18N_ID_REGEX = / | [^\s]+$/;
|
|
24
24
|
|
|
25
25
|
const UIStrings = {
|
|
@@ -346,7 +346,7 @@ function getRendererFormattedStrings(locale) {
|
|
|
346
346
|
const localeMessages = LOCALES[locale];
|
|
347
347
|
if (!localeMessages) throw new Error(`Unsupported locale '${locale}'`);
|
|
348
348
|
|
|
349
|
-
const icuMessageIds = Object.keys(localeMessages).filter(f => f.
|
|
349
|
+
const icuMessageIds = Object.keys(localeMessages).filter(f => f.includes('core/report/html/'));
|
|
350
350
|
const strings = /** @type {LH.I18NRendererStrings} */ ({});
|
|
351
351
|
for (const icuMessageId of icuMessageIds) {
|
|
352
352
|
const [filename, varName] = icuMessageId.split(' | ');
|
|
@@ -588,7 +588,7 @@
|
|
|
588
588
|
"message": "Severity"
|
|
589
589
|
},
|
|
590
590
|
"lighthouse-core/audits/csp-xss.js | description": {
|
|
591
|
-
"message": "A strong Content Security Policy (CSP) significantly reduces the risk of cross-site scripting (XSS) attacks. [Learn more](https://web.dev/csp
|
|
591
|
+
"message": "A strong Content Security Policy (CSP) significantly reduces the risk of cross-site scripting (XSS) attacks. [Learn more](https://web.dev/strict-csp/)"
|
|
592
592
|
},
|
|
593
593
|
"lighthouse-core/audits/csp-xss.js | itemSeveritySyntax": {
|
|
594
594
|
"message": "Syntax"
|
|
@@ -903,10 +903,10 @@
|
|
|
903
903
|
"message": "Manifest does not contain a 'name' or 'short_name' field"
|
|
904
904
|
},
|
|
905
905
|
"lighthouse-core/audits/installable-manifest.js | manifest-missing-suitable-icon": {
|
|
906
|
-
"message": "Manifest does not contain a suitable icon - PNG
|
|
906
|
+
"message": "Manifest does not contain a suitable icon - PNG, SVG or WebP format of at least {value0} px is required, the sizes attribute must be set, and the purpose attribute, if set, must include \"any\" or \"maskable\"."
|
|
907
907
|
},
|
|
908
908
|
"lighthouse-core/audits/installable-manifest.js | no-acceptable-icon": {
|
|
909
|
-
"message": "No supplied icon is at least {value0} px square in PNG
|
|
909
|
+
"message": "No supplied icon is at least {value0} px square in PNG, SVG or WebP format"
|
|
910
910
|
},
|
|
911
911
|
"lighthouse-core/audits/installable-manifest.js | no-icon-available": {
|
|
912
912
|
"message": "Downloaded icon was empty or corrupted"
|
|
@@ -1955,6 +1955,144 @@
|
|
|
1955
1955
|
"lighthouse-core/lib/lh-error.js | urlInvalid": {
|
|
1956
1956
|
"message": "The URL you have provided appears to be invalid."
|
|
1957
1957
|
},
|
|
1958
|
+
"lighthouse-core/report/html/renderer/util.js | calculatorLink": {
|
|
1959
|
+
"message": "See calculator."
|
|
1960
|
+
},
|
|
1961
|
+
"lighthouse-core/report/html/renderer/util.js | crcInitialNavigation": {
|
|
1962
|
+
"message": "Initial Navigation"
|
|
1963
|
+
},
|
|
1964
|
+
"lighthouse-core/report/html/renderer/util.js | crcLongestDurationLabel": {
|
|
1965
|
+
"message": "Maximum critical path latency:"
|
|
1966
|
+
},
|
|
1967
|
+
"lighthouse-core/report/html/renderer/util.js | dropdownCopyJSON": {
|
|
1968
|
+
"message": "Copy JSON"
|
|
1969
|
+
},
|
|
1970
|
+
"lighthouse-core/report/html/renderer/util.js | dropdownDarkTheme": {
|
|
1971
|
+
"message": "Toggle Dark Theme"
|
|
1972
|
+
},
|
|
1973
|
+
"lighthouse-core/report/html/renderer/util.js | dropdownPrintExpanded": {
|
|
1974
|
+
"message": "Print Expanded"
|
|
1975
|
+
},
|
|
1976
|
+
"lighthouse-core/report/html/renderer/util.js | dropdownPrintSummary": {
|
|
1977
|
+
"message": "Print Summary"
|
|
1978
|
+
},
|
|
1979
|
+
"lighthouse-core/report/html/renderer/util.js | dropdownSaveGist": {
|
|
1980
|
+
"message": "Save as Gist"
|
|
1981
|
+
},
|
|
1982
|
+
"lighthouse-core/report/html/renderer/util.js | dropdownSaveHTML": {
|
|
1983
|
+
"message": "Save as HTML"
|
|
1984
|
+
},
|
|
1985
|
+
"lighthouse-core/report/html/renderer/util.js | dropdownSaveJSON": {
|
|
1986
|
+
"message": "Save as JSON"
|
|
1987
|
+
},
|
|
1988
|
+
"lighthouse-core/report/html/renderer/util.js | dropdownViewer": {
|
|
1989
|
+
"message": "Open in Viewer"
|
|
1990
|
+
},
|
|
1991
|
+
"lighthouse-core/report/html/renderer/util.js | errorLabel": {
|
|
1992
|
+
"message": "Error!"
|
|
1993
|
+
},
|
|
1994
|
+
"lighthouse-core/report/html/renderer/util.js | errorMissingAuditInfo": {
|
|
1995
|
+
"message": "Report error: no audit information"
|
|
1996
|
+
},
|
|
1997
|
+
"lighthouse-core/report/html/renderer/util.js | footerIssue": {
|
|
1998
|
+
"message": "File an issue"
|
|
1999
|
+
},
|
|
2000
|
+
"lighthouse-core/report/html/renderer/util.js | labDataTitle": {
|
|
2001
|
+
"message": "Lab Data"
|
|
2002
|
+
},
|
|
2003
|
+
"lighthouse-core/report/html/renderer/util.js | lsPerformanceCategoryDescription": {
|
|
2004
|
+
"message": "[Lighthouse](https://developers.google.com/web/tools/lighthouse/) analysis of the current page on an emulated mobile network. Values are estimated and may vary."
|
|
2005
|
+
},
|
|
2006
|
+
"lighthouse-core/report/html/renderer/util.js | manualAuditsGroupTitle": {
|
|
2007
|
+
"message": "Additional items to manually check"
|
|
2008
|
+
},
|
|
2009
|
+
"lighthouse-core/report/html/renderer/util.js | notApplicableAuditsGroupTitle": {
|
|
2010
|
+
"message": "Not applicable"
|
|
2011
|
+
},
|
|
2012
|
+
"lighthouse-core/report/html/renderer/util.js | opportunityResourceColumnLabel": {
|
|
2013
|
+
"message": "Opportunity"
|
|
2014
|
+
},
|
|
2015
|
+
"lighthouse-core/report/html/renderer/util.js | opportunitySavingsColumnLabel": {
|
|
2016
|
+
"message": "Estimated Savings"
|
|
2017
|
+
},
|
|
2018
|
+
"lighthouse-core/report/html/renderer/util.js | passedAuditsGroupTitle": {
|
|
2019
|
+
"message": "Passed audits"
|
|
2020
|
+
},
|
|
2021
|
+
"lighthouse-core/report/html/renderer/util.js | runtimeDesktopEmulation": {
|
|
2022
|
+
"message": "Emulated Desktop"
|
|
2023
|
+
},
|
|
2024
|
+
"lighthouse-core/report/html/renderer/util.js | runtimeMobileEmulation": {
|
|
2025
|
+
"message": "Emulated Moto G4"
|
|
2026
|
+
},
|
|
2027
|
+
"lighthouse-core/report/html/renderer/util.js | runtimeNoEmulation": {
|
|
2028
|
+
"message": "No emulation"
|
|
2029
|
+
},
|
|
2030
|
+
"lighthouse-core/report/html/renderer/util.js | runtimeSettingsAxeVersion": {
|
|
2031
|
+
"message": "Axe version"
|
|
2032
|
+
},
|
|
2033
|
+
"lighthouse-core/report/html/renderer/util.js | runtimeSettingsBenchmark": {
|
|
2034
|
+
"message": "CPU/Memory Power"
|
|
2035
|
+
},
|
|
2036
|
+
"lighthouse-core/report/html/renderer/util.js | runtimeSettingsCPUThrottling": {
|
|
2037
|
+
"message": "CPU throttling"
|
|
2038
|
+
},
|
|
2039
|
+
"lighthouse-core/report/html/renderer/util.js | runtimeSettingsChannel": {
|
|
2040
|
+
"message": "Channel"
|
|
2041
|
+
},
|
|
2042
|
+
"lighthouse-core/report/html/renderer/util.js | runtimeSettingsDevice": {
|
|
2043
|
+
"message": "Device"
|
|
2044
|
+
},
|
|
2045
|
+
"lighthouse-core/report/html/renderer/util.js | runtimeSettingsFetchTime": {
|
|
2046
|
+
"message": "Fetch Time"
|
|
2047
|
+
},
|
|
2048
|
+
"lighthouse-core/report/html/renderer/util.js | runtimeSettingsNetworkThrottling": {
|
|
2049
|
+
"message": "Network throttling"
|
|
2050
|
+
},
|
|
2051
|
+
"lighthouse-core/report/html/renderer/util.js | runtimeSettingsTitle": {
|
|
2052
|
+
"message": "Runtime Settings"
|
|
2053
|
+
},
|
|
2054
|
+
"lighthouse-core/report/html/renderer/util.js | runtimeSettingsUA": {
|
|
2055
|
+
"message": "User agent (host)"
|
|
2056
|
+
},
|
|
2057
|
+
"lighthouse-core/report/html/renderer/util.js | runtimeSettingsUANetwork": {
|
|
2058
|
+
"message": "User agent (network)"
|
|
2059
|
+
},
|
|
2060
|
+
"lighthouse-core/report/html/renderer/util.js | runtimeSettingsUrl": {
|
|
2061
|
+
"message": "URL"
|
|
2062
|
+
},
|
|
2063
|
+
"lighthouse-core/report/html/renderer/util.js | runtimeUnknown": {
|
|
2064
|
+
"message": "Unknown"
|
|
2065
|
+
},
|
|
2066
|
+
"lighthouse-core/report/html/renderer/util.js | showRelevantAudits": {
|
|
2067
|
+
"message": "Show audits relevant to:"
|
|
2068
|
+
},
|
|
2069
|
+
"lighthouse-core/report/html/renderer/util.js | snippetCollapseButtonLabel": {
|
|
2070
|
+
"message": "Collapse snippet"
|
|
2071
|
+
},
|
|
2072
|
+
"lighthouse-core/report/html/renderer/util.js | snippetExpandButtonLabel": {
|
|
2073
|
+
"message": "Expand snippet"
|
|
2074
|
+
},
|
|
2075
|
+
"lighthouse-core/report/html/renderer/util.js | thirdPartyResourcesLabel": {
|
|
2076
|
+
"message": "Show 3rd-party resources"
|
|
2077
|
+
},
|
|
2078
|
+
"lighthouse-core/report/html/renderer/util.js | throttlingProvided": {
|
|
2079
|
+
"message": "Provided by environment"
|
|
2080
|
+
},
|
|
2081
|
+
"lighthouse-core/report/html/renderer/util.js | toplevelWarningsMessage": {
|
|
2082
|
+
"message": "There were issues affecting this run of Lighthouse:"
|
|
2083
|
+
},
|
|
2084
|
+
"lighthouse-core/report/html/renderer/util.js | varianceDisclaimer": {
|
|
2085
|
+
"message": "Values are estimated and may vary. The [performance score is calculated](https://web.dev/performance-scoring/) directly from these metrics."
|
|
2086
|
+
},
|
|
2087
|
+
"lighthouse-core/report/html/renderer/util.js | viewTreemapLabel": {
|
|
2088
|
+
"message": "View Treemap"
|
|
2089
|
+
},
|
|
2090
|
+
"lighthouse-core/report/html/renderer/util.js | warningAuditsGroupTitle": {
|
|
2091
|
+
"message": "Passed audits but with warnings"
|
|
2092
|
+
},
|
|
2093
|
+
"lighthouse-core/report/html/renderer/util.js | warningHeader": {
|
|
2094
|
+
"message": "Warnings: "
|
|
2095
|
+
},
|
|
1958
2096
|
"lighthouse-treemap/app/src/util.js | allLabel": {
|
|
1959
2097
|
"message": "All"
|
|
1960
2098
|
},
|
|
@@ -2242,143 +2380,5 @@
|
|
|
2242
2380
|
},
|
|
2243
2381
|
"node_modules/lighthouse-stack-packs/packs/wordpress.js | uses-text-compression": {
|
|
2244
2382
|
"message": "You can enable text compression in your web server configuration."
|
|
2245
|
-
},
|
|
2246
|
-
"report/renderer/util.js | calculatorLink": {
|
|
2247
|
-
"message": "See calculator."
|
|
2248
|
-
},
|
|
2249
|
-
"report/renderer/util.js | crcInitialNavigation": {
|
|
2250
|
-
"message": "Initial Navigation"
|
|
2251
|
-
},
|
|
2252
|
-
"report/renderer/util.js | crcLongestDurationLabel": {
|
|
2253
|
-
"message": "Maximum critical path latency:"
|
|
2254
|
-
},
|
|
2255
|
-
"report/renderer/util.js | dropdownCopyJSON": {
|
|
2256
|
-
"message": "Copy JSON"
|
|
2257
|
-
},
|
|
2258
|
-
"report/renderer/util.js | dropdownDarkTheme": {
|
|
2259
|
-
"message": "Toggle Dark Theme"
|
|
2260
|
-
},
|
|
2261
|
-
"report/renderer/util.js | dropdownPrintExpanded": {
|
|
2262
|
-
"message": "Print Expanded"
|
|
2263
|
-
},
|
|
2264
|
-
"report/renderer/util.js | dropdownPrintSummary": {
|
|
2265
|
-
"message": "Print Summary"
|
|
2266
|
-
},
|
|
2267
|
-
"report/renderer/util.js | dropdownSaveGist": {
|
|
2268
|
-
"message": "Save as Gist"
|
|
2269
|
-
},
|
|
2270
|
-
"report/renderer/util.js | dropdownSaveHTML": {
|
|
2271
|
-
"message": "Save as HTML"
|
|
2272
|
-
},
|
|
2273
|
-
"report/renderer/util.js | dropdownSaveJSON": {
|
|
2274
|
-
"message": "Save as JSON"
|
|
2275
|
-
},
|
|
2276
|
-
"report/renderer/util.js | dropdownViewer": {
|
|
2277
|
-
"message": "Open in Viewer"
|
|
2278
|
-
},
|
|
2279
|
-
"report/renderer/util.js | errorLabel": {
|
|
2280
|
-
"message": "Error!"
|
|
2281
|
-
},
|
|
2282
|
-
"report/renderer/util.js | errorMissingAuditInfo": {
|
|
2283
|
-
"message": "Report error: no audit information"
|
|
2284
|
-
},
|
|
2285
|
-
"report/renderer/util.js | footerIssue": {
|
|
2286
|
-
"message": "File an issue"
|
|
2287
|
-
},
|
|
2288
|
-
"report/renderer/util.js | labDataTitle": {
|
|
2289
|
-
"message": "Lab Data"
|
|
2290
|
-
},
|
|
2291
|
-
"report/renderer/util.js | lsPerformanceCategoryDescription": {
|
|
2292
|
-
"message": "[Lighthouse](https://developers.google.com/web/tools/lighthouse/) analysis of the current page on an emulated mobile network. Values are estimated and may vary."
|
|
2293
|
-
},
|
|
2294
|
-
"report/renderer/util.js | manualAuditsGroupTitle": {
|
|
2295
|
-
"message": "Additional items to manually check"
|
|
2296
|
-
},
|
|
2297
|
-
"report/renderer/util.js | notApplicableAuditsGroupTitle": {
|
|
2298
|
-
"message": "Not applicable"
|
|
2299
|
-
},
|
|
2300
|
-
"report/renderer/util.js | opportunityResourceColumnLabel": {
|
|
2301
|
-
"message": "Opportunity"
|
|
2302
|
-
},
|
|
2303
|
-
"report/renderer/util.js | opportunitySavingsColumnLabel": {
|
|
2304
|
-
"message": "Estimated Savings"
|
|
2305
|
-
},
|
|
2306
|
-
"report/renderer/util.js | passedAuditsGroupTitle": {
|
|
2307
|
-
"message": "Passed audits"
|
|
2308
|
-
},
|
|
2309
|
-
"report/renderer/util.js | runtimeDesktopEmulation": {
|
|
2310
|
-
"message": "Emulated Desktop"
|
|
2311
|
-
},
|
|
2312
|
-
"report/renderer/util.js | runtimeMobileEmulation": {
|
|
2313
|
-
"message": "Emulated Moto G4"
|
|
2314
|
-
},
|
|
2315
|
-
"report/renderer/util.js | runtimeNoEmulation": {
|
|
2316
|
-
"message": "No emulation"
|
|
2317
|
-
},
|
|
2318
|
-
"report/renderer/util.js | runtimeSettingsAxeVersion": {
|
|
2319
|
-
"message": "Axe version"
|
|
2320
|
-
},
|
|
2321
|
-
"report/renderer/util.js | runtimeSettingsBenchmark": {
|
|
2322
|
-
"message": "CPU/Memory Power"
|
|
2323
|
-
},
|
|
2324
|
-
"report/renderer/util.js | runtimeSettingsCPUThrottling": {
|
|
2325
|
-
"message": "CPU throttling"
|
|
2326
|
-
},
|
|
2327
|
-
"report/renderer/util.js | runtimeSettingsChannel": {
|
|
2328
|
-
"message": "Channel"
|
|
2329
|
-
},
|
|
2330
|
-
"report/renderer/util.js | runtimeSettingsDevice": {
|
|
2331
|
-
"message": "Device"
|
|
2332
|
-
},
|
|
2333
|
-
"report/renderer/util.js | runtimeSettingsFetchTime": {
|
|
2334
|
-
"message": "Fetch Time"
|
|
2335
|
-
},
|
|
2336
|
-
"report/renderer/util.js | runtimeSettingsNetworkThrottling": {
|
|
2337
|
-
"message": "Network throttling"
|
|
2338
|
-
},
|
|
2339
|
-
"report/renderer/util.js | runtimeSettingsTitle": {
|
|
2340
|
-
"message": "Runtime Settings"
|
|
2341
|
-
},
|
|
2342
|
-
"report/renderer/util.js | runtimeSettingsUA": {
|
|
2343
|
-
"message": "User agent (host)"
|
|
2344
|
-
},
|
|
2345
|
-
"report/renderer/util.js | runtimeSettingsUANetwork": {
|
|
2346
|
-
"message": "User agent (network)"
|
|
2347
|
-
},
|
|
2348
|
-
"report/renderer/util.js | runtimeSettingsUrl": {
|
|
2349
|
-
"message": "URL"
|
|
2350
|
-
},
|
|
2351
|
-
"report/renderer/util.js | runtimeUnknown": {
|
|
2352
|
-
"message": "Unknown"
|
|
2353
|
-
},
|
|
2354
|
-
"report/renderer/util.js | showRelevantAudits": {
|
|
2355
|
-
"message": "Show audits relevant to:"
|
|
2356
|
-
},
|
|
2357
|
-
"report/renderer/util.js | snippetCollapseButtonLabel": {
|
|
2358
|
-
"message": "Collapse snippet"
|
|
2359
|
-
},
|
|
2360
|
-
"report/renderer/util.js | snippetExpandButtonLabel": {
|
|
2361
|
-
"message": "Expand snippet"
|
|
2362
|
-
},
|
|
2363
|
-
"report/renderer/util.js | thirdPartyResourcesLabel": {
|
|
2364
|
-
"message": "Show 3rd-party resources"
|
|
2365
|
-
},
|
|
2366
|
-
"report/renderer/util.js | throttlingProvided": {
|
|
2367
|
-
"message": "Provided by environment"
|
|
2368
|
-
},
|
|
2369
|
-
"report/renderer/util.js | toplevelWarningsMessage": {
|
|
2370
|
-
"message": "There were issues affecting this run of Lighthouse:"
|
|
2371
|
-
},
|
|
2372
|
-
"report/renderer/util.js | varianceDisclaimer": {
|
|
2373
|
-
"message": "Values are estimated and may vary. The [performance score is calculated](https://web.dev/performance-scoring/) directly from these metrics."
|
|
2374
|
-
},
|
|
2375
|
-
"report/renderer/util.js | viewTreemapLabel": {
|
|
2376
|
-
"message": "View Treemap"
|
|
2377
|
-
},
|
|
2378
|
-
"report/renderer/util.js | warningAuditsGroupTitle": {
|
|
2379
|
-
"message": "Passed audits but with warnings"
|
|
2380
|
-
},
|
|
2381
|
-
"report/renderer/util.js | warningHeader": {
|
|
2382
|
-
"message": "Warnings: "
|
|
2383
2383
|
}
|
|
2384
2384
|
}
|