Automated auditing, performance metrics, and best practices for the web.
189 matches across 9 categories. Click a row to expand file-level details.
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | clients/extension/scripts/popup.js | 84 | function onGenerateReportButtonClick(backend, url, settings) { |
| LOW | clients/extension/scripts/popup.js | 112 | function generateCategoryOptionsList(settings) { |
| LOW | clients/extension/scripts/popup.js | 129 | function generateBackendOptionsList(settings) { |
| LOW | clients/extension/scripts/popup.js | 156 | function getLocalizedLanguageRegion(localeString, currentLocale) { |
| LOW | clients/extension/scripts/popup.js | 192 | function generateLocaleOptionsList(settings) { |
| LOW | clients/extension/scripts/popup.js | 227 | function readSettingsFromDomAndPersist() { |
| LOW | core/gather/runner-helpers.js | 139 | async function collectArtifactDependencies(artifact, artifactsById) { |
| LOW | core/gather/gatherers/accessibility.js | 120 | function createAxeRuleResultArtifact(result) { |
| LOW | core/gather/gatherers/scripts.js | 35 | function isLighthouseRuntimeEvaluateScript(script) { |
| LOW | core/gather/gatherers/image-elements.js | 194 | function findMostSpecificMatchedCSSRule(matchedCSSRules = [], isDeclarationOfInterest) { |
| LOW | core/gather/driver/wait-for-condition.js | 288 | function registerPerformanceObserverInPage() { |
| LOW | core/gather/driver/wait-for-condition.js | 312 | function checkTimeSinceLastLongTaskInPage() { |
| LOW | core/gather/driver/navigation.js | 45 | function resolveWaitForFullyLoadedOptions(options) { |
| LOW | core/gather/driver/dom.js | 11 | function handlePotentialMissingNodeError(err) { |
| LOW | core/gather/driver/dom.js | 47 | async function resolveDevtoolsNodePathToObjectId(session, path) { |
| LOW | core/gather/driver/prepare.js | 61 | async function shimRequestIdleCallbackOnNewDocument(driver, settings) { |
| LOW | core/gather/driver/prepare.js | 119 | async function prepareThrottlingAndNetwork(session, settings) { |
| LOW | core/gather/driver/prepare.js | 158 | async function prepareTargetForTimespanMode(driver, settings) { |
| LOW | core/gather/driver/prepare.js | 192 | async function prepareTargetForNavigationMode(driver, settings, requestor) { |
| LOW | core/gather/driver/network.js | 17 | async function fetchResponseBodyFromCache(session, requestId, timeout = 1000) { |
| LOW | core/gather/driver/storage.js | 81 | async function getImportantStorageWarning(session, url) { |
| LOW | core/test/network-records-to-devtools-log.js | 37 | function headersArrayToHeadersDict(headersArray = []) { |
| LOW | core/test/network-records-to-devtools-log.js | 160 | function getNormalizedRequestTiming(networkRecord) { |
| LOW | core/test/network-records-to-devtools-log.js | 227 | function getRequestWillBeSentEvent(networkRecord, index, normalizedTiming) { |
| LOW | core/test/network-records-to-devtools-log.js | 261 | function getRequestServedFromCacheEvent(networkRecord, index) { |
| LOW | core/test/network-records-to-devtools-log.js | 312 | function getResponseReceivedExtraInfoEvent(networkRecord, index) { |
| LOW | core/test/network-records-to-devtools-log.js | 408 | function addRedirectResponseIfNeeded(networkRecords, record) { |
| LOW | core/test/network-records-to-devtools-log.js | 441 | function networkRecordsToDevtoolsLog(networkRecords, options = {}) { |
| LOW | core/test/test-utils.js | 77 | function loadSourceMapAndUsageFixture(name) { |
| LOW | core/test/test-utils.js | 186 | async function flushAllTimersAndMicrotasks(ms = 1000) { |
| LOW | core/test/test-utils.js | 259 | function getURLArtifactFromDevtoolsLog(devtoolsLog) { |
| LOW | core/test/gather/base-artifacts-test.js | 12 | function getMockDriverForArtifacts() { |
| LOW | core/test/gather/mock-driver.js | 93 | function createMockGathererInstance(meta) { |
| LOW | core/test/gather/mock-driver.js | 123 | function createMockExecutionContext() { |
| LOW | core/test/gather/gatherers/full-page-screenshot-test.js | 392 | async function verifyNodeRectsAlignWithImage(lhr, rectExpectations) { |
| LOW | core/test/gather/gatherers/trace-elements-test.js | 14 | function makeLayoutShiftTraceEvent(score, impactedNodes, had_recent_input = false) { // eslint-disable-line camelcase |
| LOW | core/test/gather/driver/execution-context-test.js | 264 | .catch(function wrapRuntimeEvalErrorInBrowser(err) { |
| LOW | core/test/gather/driver/wait-for-condition-test.js | 37 | function createMockMultipleInvocationWaitForFn() { |
| LOW | core/test/audits/long-tasks-test.js | 24 | function generateTraceWithLongTasks(args) { |
| LOW | core/test/audits/user-timing-test.js | 14 | function generateArtifactsWithTrace(trace) { |
| LOW | …/test/audits/byte-efficiency/unused-javascript-test.js | 64 | function generateScriptWithCoverage(url, ranges) { |
| LOW | core/test/results/artifacts/artifacts.json | 6790 | "MainDocumentContent": "<!doctype html>\n<!--\n * @license\n * Copyright 2016 Google LLC\n * SPDX-License-Identifier: |
| LOW | core/test/results/artifacts/artifacts.json | 7206 | "content": "\nfunction stampTemplate(id, location) {\n const template = document.querySelector('#' + id);\n loca |
| LOW | core/test/results/artifacts/artifacts.json | 7231 | "content": "\n/**\n * Lighthouse backstory:\n * Zone aggressively polyfills promises including rewriting Promise.p |
| LOW | core/test/lib/navigation-error-test.js | 36 | function getAndExpectError(mainRecord, context) { |
| LOW | core/test/lib/navigation-error-test.js | 136 | function getAndExpectError(mainRecord, networkRecords) { |
| LOW | core/test/lib/navigation-error-test.js | 229 | function getAndExpectError(mainRecord) { |
| LOW | core/test/lib/navigation-error-test.js | 284 | function getAndExpectError(navigationError, context) { |
| LOW | core/test/lib/csp-evaluator-test.js | 19 | function evaluateRawCspForFailures(rawCsps) { |
| LOW | core/test/lib/csp-evaluator-test.js | 26 | function evaluateRawCspForWarnings(rawCsps) { |
| LOW | core/audits/image-size-responsive.js | 132 | function imageHasNaturalDimensions(image) { |
| LOW | core/audits/non-composited-animations.js | 97 | function getActionableFailureReasons(failureCode, unsupportedProperties) { |
| LOW | core/audits/insights/insight-audit.js | 52 | async function adaptInsightToAuditProduct(artifacts, context, insightName, createDetails) { |
| LOW | core/audits/seo/is-crawlable.js | 73 | function getUserAgentFromHeaderDirectives(directives) { |
| LOW | core/config/config.js | 109 | function resolveArtifactDependencies(artifact, gatherer, artifactDefnsBySymbol) { |
| LOW | core/config/config.js | 183 | function overrideSettingsForGatherMode(settings, gatherMode) { |
| LOW | core/config/config.js | 196 | function overrideThrottlingWindows(settings) { |
| LOW | core/config/config-helpers.js | 128 | function mergeConfigFragmentArrayByKey(baseArray, extensionArray, keyFn) { |
| LOW | core/config/config-plugin.js | 21 | function isObjectOfUnknownProperties(val) { |
| LOW | core/config/validation.js | 19 | function isValidArtifactDependency(dependent, dependency) { |
| 70 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | core/test/results/artifacts/artifacts.json | 7231 | "content": "\n/**\n * Lighthouse backstory:\n * Zone aggressively polyfills promises including rewriting Promise.p |
| MEDIUM | shared/localization/locales/ar-XB.json | 2925 | "message": "Use [Ezoic Leap](https://pubdash.ezoic.com/leap) and enable `Optimize Fonts` to |
| MEDIUM | shared/localization/locales/ar-XB.json | 3042 | "message": "Consider searching the [Magento Marketplace](https://marketplace.magento.com/catalog |
| MEDIUM | shared/localization/locales/fil.json | 3159 | "message": "[Palitan ang mga animated na GIF ng video](https://web.dev/replace-gifs-with-videos/) para sa mas mabibi |
| MEDIUM | shared/localization/locales/pt-PT.json | 3273 | "message": "Carregue imagens diretamente a partir da [biblioteca de multimédia](https://wordpress.org/support/articl |
| MEDIUM | shared/localization/locales/hi.json | 3159 | "message": "वेब पेजों को तेज़ी से लोड करने के लिए, [ऐनिमेट किए गए GIF की जगह वीडियो का इस्तेमाल करें](https://web.de |
| MEDIUM | shared/localization/locales/en-US.json | 3147 | "message": "Use [Ezoic Leap](https://pubdash.ezoic.com/leap) and enable `Optimize Fonts` to automatically leverage t |
| MEDIUM | shared/localization/locales/en-US.json | 3264 | "message": "Consider searching the [Magento Marketplace](https://marketplace.magento.com/catalogsearch/result/?q=web |
| MEDIUM | shared/localization/locales/en-US.json | 3381 | "message": "[Replace animated GIFs with video](https://web.dev/replace-gifs-with-videos/) for faster web page loads |
| MEDIUM | shared/localization/locales/en-GB.json | 2925 | "message": "Use [Ezoic Leap](https://pubdash.ezoic.com/leap) and enable `Optimize Fonts` to automatically leverage t |
| MEDIUM | shared/localization/locales/en-GB.json | 3042 | "message": "Consider searching the [Magento Marketplace](https://marketplace.magento.com/catalogsearch/result/?q=web |
| MEDIUM | shared/localization/locales/en-GB.json | 3159 | "message": "[Replace animated GIFs with video](https://web.dev/replace-gifs-with-videos/) for faster web page loads, |
| MEDIUM | cli/test/smokehouse/test-definitions/byte-efficiency.js | 27 | // unsized-images is not a byte-efficiency audit but can easily leverage the variety of images present in |
| MEDIUM | viewer/test/viewer-test-pptr.js | 257 | // TODO: Find a more robust fix for this issue. |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | core/test/lib/icons-test.js | 61 | // value: [{ |
| LOW | core/test/lib/tracehouse/trace-processor-test.js | 661 | // All frames |
| LOW | core/audits/metrics/total-blocking-time.js | 41 | // SELECT |
| LOW | core/audits/metrics/largest-contentful-paint.js | 41 | // 25th and 13th percentiles HTTPArchive -> median and p10 points. |
| LOW | core/audits/insights/legacy-javascript-insight.js | 81 | |
| LOW | core/config/config-helpers.js | 481 | // | relative to the current working directory | 3. | |
| LOW | core/config/config-helpers.js | 521 | } |
| LOW | core/config/default-config.js | 481 | // │ Minor │ 1 │ 0 │ 0 │ |
| LOW | core/scripts/run-jest.sh | 1 | #!/usr/bin/env bash |
| LOW | core/scripts/roll-to-devtools.sh | 1 | #!/usr/bin/env bash |
| LOW | core/scripts/open-devtools.sh | 1 | #!/usr/bin/env bash |
| LOW | core/scripts/build-devtools.sh | 1 | #!/usr/bin/env bash |
| LOW | …ripts/legacy-javascript/create-polyfill-module-data.js | 61 | 'es.string.fontcolor', |
| LOW | core/lib/network-request.js | 381 | * @param {LH.Crdp.Network.ResourceTiming} timing |
| LOW | core/lib/legacy-javascript/legacy-javascript.js | 121 | |
| LOW | core/lib/legacy-javascript/legacy-javascript.js | 201 | return (content.match(pattern) ?? []).length; |
| LOW | core/lib/legacy-javascript/legacy-javascript.js | 221 | // function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Obj |
| LOW | docs/recipes/test-recipes.sh | 21 | yarn custom-gatherer-puppeteer-test |
| LOW | cli/test/smokehouse/test-definitions/byte-efficiency.js | 181 | ], |
| LOW | cli/test/smokehouse/test-definitions/byte-efficiency.js | 201 | // subItems: {items: {_includes: [{reason: /Using a modern image format/}]}}, |
| LOW | …test/smokehouse/test-definitions/forms-autocomplete.js | 461 | }, |
| LOW | …test/smokehouse/test-definitions/forms-autocomplete.js | 481 | // type: 'node', |
| LOW | …test/smokehouse/test-definitions/forms-autocomplete.js | 501 | // type: 'node', |
| LOW | …test/smokehouse/test-definitions/forms-autocomplete.js | 521 | // snippet: '<input type="text" id="zip_shipping">', |
| LOW | …test/smokehouse/test-definitions/forms-autocomplete.js | 541 | // '<input type="text" id="city_billing" name="city_billing" placeholder="city you live in" autocomple |
| LOW | …test/smokehouse/test-definitions/forms-autocomplete.js | 561 | // nodeLabel: 'input', |
| LOW | .github/scripts/git-get-shared-history.sh | 1 | #!/usr/bin/env bash |
| LOW | …rd-party/devtools-tests/e2e/resources/lighthouse/sw.js | 1 | // Used to verify that a service worker is/isn't registered. |
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | core/config/default-config.js | 475 | // ┌────────────┬───────────────────────────────────────────────┐ |
| MEDIUM | core/config/default-config.js | 477 | // │ ├──────────────┬─────────────────┬──────────────┤ |
| MEDIUM | core/config/default-config.js | 480 | // ├────────────┼──────────────┼─────────────────┼──────────────┤ |
| MEDIUM | core/config/default-config.js | 485 | // └────────────┴──────────────┴─────────────────┴──────────────┘ |
| Severity | File | Line | Snippet |
|---|---|---|---|
| CRITICAL | core/config/filters.js | 105 | return artifact.gatherer.instance.meta.supportedModes.includes(mode); |
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | core/scripts/compare-runs.js | 338 | print(filter(results)); |
| HIGH | core/scripts/compare-runs.js | 412 | print(filter(results)); |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | docs/recipes/auth/example-lh-auth.js | 25 | await emailInput.type('admin@example.com'); |
| LOW | docs/recipes/auth/README.md | 79 | await emailInput.type('admin@example.com'); |
| LOW | docs/recipes/auth/server/server.js | 54 | if (email !== 'admin@example.com' || password !== 'password') { |
| LOW | …test/smokehouse/test-definitions/forms-autocomplete.js | 36 | placeholder: 'John Doe', |
| LOW | …test/smokehouse/test-definitions/forms-autocomplete.js | 131 | placeholder: 'John Doe', |
| LOW | …test/smokehouse/test-definitions/forms-autocomplete.js | 470 | // '`autocomplete` token(s): "sectio-red shipping cc-namez" is invalid in <textarea type="text" id="name_cc1" |
| LOW | …test/smokehouse/test-definitions/forms-autocomplete.js | 483 | // '<textarea type="text" id="name_cc1" name="name_cc1" autocomplete="sectio-red shipping cc-namez" pl |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | core/test/devtools-tests/setup.sh | 10 | # Set SKIP_DOWNLOADS to skip all the downloading and just export variables. |
| LOW | core/test/devtools-tests/setup.sh | 11 | # Set BUILD_FOLDER to use a folder other than 'LighthouseIntegration' (ex: Default to use out/Default). |
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | core/scripts/release/prepare-commit.sh | 45 | # Create the changelog entry |