Lighthouse: Warn when trying to audit non-html

Created on 21 Jun 2019  Â·  7Comments  Â·  Source: GoogleChrome/lighthouse

What is the current behavior?

image

output

node lighthouse-cli http://lh-xml-examples.surge.sh/test.xml
  ChromeLauncher Waiting for browser. +0ms
  ChromeLauncher Waiting for browser... +1ms
  ChromeLauncher Waiting for browser..... +511ms
  ChromeLauncher Waiting for browser.....✓ +1ms
  status Connecting to browser +105ms
  status Resetting state with about:blank +242ms
  status Benchmarking machine +166ms
  status Initializing… +513ms
  status Resetting state with about:blank +41ms
  status Setting up network for the pass trace +11ms
  status Cleaning browser cache +1ms
  status Beginning devtoolsLog and trace +30ms
  status Loading page & waiting for onload CSSUsage, ViewportDimensions, RuntimeExceptions, ConsoleMessages, AnchorElements, ImageElements, LinkElements, MetaElements, ScriptElements, AppCacheManifest, Doctype, DOMStats, OptimizedImages, PasswordInputsWithPreventedPaste, ResponseCompression, TagsBlockingFirstPaint, FontSize, EmbeddedContent, RobotsTxt, TapTargets, Accessibility +24ms
  status Gathering in-page: CSSUsage +1s
  status Gathering in-page: ViewportDimensions +0ms
  status Gathering in-page: RuntimeExceptions +0ms
  status Gathering in-page: ConsoleMessages +1ms
  status Gathering in-page: AnchorElements +0ms
  status Gathering in-page: ImageElements +0ms
  status Gathering in-page: LinkElements +0ms
  status Gathering in-page: MetaElements +0ms
  status Gathering in-page: ScriptElements +0ms
  status Gathering in-page: AppCacheManifest +0ms
  status Gathering in-page: Doctype +0ms
  status Gathering in-page: DOMStats +0ms
  status Gathering in-page: OptimizedImages +0ms
  status Gathering in-page: PasswordInputsWithPreventedPaste +0ms
  status Gathering in-page: ResponseCompression +0ms
  status Gathering in-page: TagsBlockingFirstPaint +0ms
  status Gathering in-page: FontSize +0ms
  status Gathering in-page: EmbeddedContent +1ms
  status Gathering in-page: RobotsTxt +0ms
  status Gathering in-page: TapTargets +0ms
  status Gathering in-page: Accessibility +0ms
  status Gathering trace +0ms
  status Gathering devtoolsLog & network records +40ms
  status Gathering: CSSUsage +12ms
  status Gathering: ViewportDimensions +21ms
  status Gathering: RuntimeExceptions +5ms
  status Gathering: ConsoleMessages +2ms
  status Gathering: AnchorElements +3ms
  status Gathering: ImageElements +6ms
  status Gathering: LinkElements +8ms
  status Gathering: MetaElements +6ms
  status Gathering: ScriptElements +7ms
  status Gathering: AppCacheManifest +5ms
  status Gathering: Doctype +5ms
  status Gathering: DOMStats +5ms
  status Gathering: OptimizedImages +6ms
  status Gathering: PasswordInputsWithPreventedPaste +3ms
  status Gathering: ResponseCompression +5ms
  status Gathering: TagsBlockingFirstPaint +7ms
  status Gathering: FontSize +6ms
  status Gathering: EmbeddedContent +7ms
  status Gathering: RobotsTxt +5ms
  status Gathering: TapTargets +18ms
  status Gathering: Accessibility +10ms
  status Resetting state with about:blank +95ms
  status Setting up network for the pass trace +19ms
  status Beginning devtoolsLog and trace +9ms
  status Loading page & waiting for onload ServiceWorker, Offline, StartUrl +0ms
  status Gathering in-page: ServiceWorker +161ms
  status Gathering in-page: Offline +0ms
  status Gathering in-page: StartUrl +0ms
  status Gathering devtoolsLog & network records +0ms
  status Gathering: ServiceWorker +74ms
  status Gathering: Offline +2ms
  status Gathering: StartUrl +4ms
  status Resetting state with about:blank +2ms
  status Setting up network for the pass trace +18ms
  status Beginning devtoolsLog and trace +4ms
  status Loading page & waiting for onload HTTPRedirect, HTMLWithoutJavaScript +0ms
  status Gathering in-page: HTTPRedirect +32ms
  status Gathering in-page: HTMLWithoutJavaScript +1ms
  status Gathering devtoolsLog & network records +0ms
  status Gathering: HTTPRedirect +8ms
  status Gathering: HTMLWithoutJavaScript +4ms
  status Disconnecting from browser... +4ms
  status Analyzing and running audits... +6ms
  status Auditing: Uses HTTPS +2ms
  status Auditing: Redirects HTTP traffic to HTTPS +3ms
  status Auditing: Registers a service worker that controls page and start_url +0ms
  status Auditing: Current page responds with a 200 when offline +0ms
  status Auditing: Has a `<meta name="viewport">` tag with `width` or `initial-scale` +1ms
  status Auditing: Contains some content when JavaScript is not available +1ms
  status Auditing: First Contentful Paint +4ms
  status Auditing: First Meaningful Paint +20ms
  status Auditing: Page load is fast enough on mobile networks +1ms
  status Auditing: Speed Index +2ms
  status Auditing: Screenshot Thumbnails +290ms
  status Auditing: Final Screenshot +150ms
  status Auditing: Estimated Input Latency +1ms
  status Auditing: Cumulative Long Queuing Delay +1ms
  status Auditing: Max Potential First Input Delay +1ms
  status Auditing: No browser errors logged to the console +6ms
  status Auditing: Server response times are low (TTFB) +0ms
  status Auditing: First CPU Idle +1ms
  status Auditing: Time to Interactive +1ms
  status Auditing: User Timing marks and measures +0ms
  status Auditing: Minimize Critical Requests Depth +1ms
  status Auditing: Avoid multiple page redirects +1ms
  status Auditing: Web app manifest meets the installability requirements +1ms
  status Auditing: Provides a valid `apple-touch-icon` +0ms
  status Auditing: Configured for a custom splash screen +1ms
  status Auditing: Sets an address-bar theme color +0ms
  status Auditing: Content is sized correctly for the viewport +0ms
  status Auditing: Displays images with correct aspect ratio +0ms
  status Auditing: Avoids deprecated APIs +0ms
  status Auditing: Minimizes main-thread work +0ms
  status Auditing: JavaScript execution time +2ms
  status Auditing: Preload key requests +1ms
  status Auditing: Preconnect to required origins +1ms
  status Auditing: All text remains visible during webfont loads +1ms
  Runner:warn CSSUsage gatherer, required by audit font-display, encountered an error: Failed to execute 'getComputedStyle' on 'Window': parameter 1 is not of type 'Element'. +0ms
  font-display:warn Caught exception: Required CSSUsage gatherer encountered an error: Failed to execute 'getComputedStyle' on 'Window': parameter 1 is not of type 'Element'. +0ms
  status Auditing: Diagnostics +0ms
  status Auditing: Network Requests +1ms
  status Auditing: Network Round Trip Times +0ms
  status Auditing: Server Backend Latencies +0ms
  status Auditing: Tasks +1ms
  status Auditing: Metrics +0ms
  status Auditing: start_url responds with a 200 when offline +1ms
  status Auditing: Performance budget +0ms
  status Auditing: Keep request counts low and transfer sizes small +1ms
  status Auditing: Site works cross-browser +0ms
  status Auditing: Page transitions don't feel like they block on the network +0ms
  status Auditing: Each page has a URL +0ms
  status Auditing: `[accesskey]` values are unique +0ms
  Runner:warn Accessibility gatherer, required by audit accesskeys, encountered an error: Cannot read property 'charAt' of undefined +1ms
  accesskeys:warn Caught exception: Required Accessibility gatherer encountered an error: Cannot read property 'charAt' of undefined +0ms
  status Auditing: `[aria-*]` attributes match their roles +0ms
  Runner:warn Accessibility gatherer, required by audit aria-allowed-attr, encountered an error: Cannot read property 'charAt' of undefined +0ms
  aria-allowed-attr:warn Caught exception: Required Accessibility gatherer encountered an error: Cannot read property 'charAt' of undefined +0ms
  status Auditing: `[role]`s have all required `[aria-*]` attributes +0ms
  Runner:warn Accessibility gatherer, required by audit aria-required-attr, encountered an error: Cannot read property 'charAt' of undefined +0ms
  aria-required-attr:warn Caught exception: Required Accessibility gatherer encountered an error: Cannot read property 'charAt' of undefined +0ms
  status Auditing: Elements with `[role]` that require specific children `[role]`s, are present +1ms
  Runner:warn Accessibility gatherer, required by audit aria-required-children, encountered an error: Cannot read property 'charAt' of undefined +0ms
  aria-required-children:warn Caught exception: Required Accessibility gatherer encountered an error: Cannot read property 'charAt' of undefined +0ms
  status Auditing: `[role]`s are contained by their required parent element +0ms
  Runner:warn Accessibility gatherer, required by audit aria-required-parent, encountered an error: Cannot read property 'charAt' of undefined +0ms
  aria-required-parent:warn Caught exception: Required Accessibility gatherer encountered an error: Cannot read property 'charAt' of undefined +0ms
  status Auditing: `[role]` values are valid +0ms
  Runner:warn Accessibility gatherer, required by audit aria-roles, encountered an error: Cannot read property 'charAt' of undefined +0ms
  aria-roles:warn Caught exception: Required Accessibility gatherer encountered an error: Cannot read property 'charAt' of undefined +0ms
  status Auditing: `[aria-*]` attributes have valid values +1ms
  Runner:warn Accessibility gatherer, required by audit aria-valid-attr-value, encountered an error: Cannot read property 'charAt' of undefined +0ms
  aria-valid-attr-value:warn Caught exception: Required Accessibility gatherer encountered an error: Cannot read property 'charAt' of undefined +0ms
  status Auditing: `[aria-*]` attributes are valid and not misspelled +0ms
  Runner:warn Accessibility gatherer, required by audit aria-valid-attr, encountered an error: Cannot read property 'charAt' of undefined +0ms
  aria-valid-attr:warn Caught exception: Required Accessibility gatherer encountered an error: Cannot read property 'charAt' of undefined +0ms
  status Auditing: `<audio>` elements contain a `<track>` element with `[kind="captions"]` +1ms
  Runner:warn Accessibility gatherer, required by audit audio-caption, encountered an error: Cannot read property 'charAt' of undefined +0ms
  audio-caption:warn Caught exception: Required Accessibility gatherer encountered an error: Cannot read property 'charAt' of undefined +0ms
  status Auditing: Buttons have an accessible name +0ms
  Runner:warn Accessibility gatherer, required by audit button-name, encountered an error: Cannot read property 'charAt' of undefined +0ms
  button-name:warn Caught exception: Required Accessibility gatherer encountered an error: Cannot read property 'charAt' of undefined +0ms
  status Auditing: The page contains a heading, skip link, or landmark region +0ms
  Runner:warn Accessibility gatherer, required by audit bypass, encountered an error: Cannot read property 'charAt' of undefined +0ms
  bypass:warn Caught exception: Required Accessibility gatherer encountered an error: Cannot read property 'charAt' of undefined +0ms
  status Auditing: Background and foreground colors have a sufficient contrast ratio +1ms
  Runner:warn Accessibility gatherer, required by audit color-contrast, encountered an error: Cannot read property 'charAt' of undefined +0ms
  color-contrast:warn Caught exception: Required Accessibility gatherer encountered an error: Cannot read property 'charAt' of undefined +0ms
  status Auditing: `<dl>`'s contain only properly-ordered `<dt>` and `<dd>` groups, `<script>` or `<template>` elements. +0ms
  Runner:warn Accessibility gatherer, required by audit definition-list, encountered an error: Cannot read property 'charAt' of undefined +0ms
  definition-list:warn Caught exception: Required Accessibility gatherer encountered an error: Cannot read property 'charAt' of undefined +0ms
  status Auditing: Definition list items are wrapped in `<dl>` elements +0ms
  Runner:warn Accessibility gatherer, required by audit dlitem, encountered an error: Cannot read property 'charAt' of undefined +1ms
  dlitem:warn Caught exception: Required Accessibility gatherer encountered an error: Cannot read property 'charAt' of undefined +0ms
  status Auditing: Document has a `<title>` element +0ms
  Runner:warn Accessibility gatherer, required by audit document-title, encountered an error: Cannot read property 'charAt' of undefined +0ms
  document-title:warn Caught exception: Required Accessibility gatherer encountered an error: Cannot read property 'charAt' of undefined +0ms
  status Auditing: `[id]` attributes on the page are unique +0ms
  Runner:warn Accessibility gatherer, required by audit duplicate-id, encountered an error: Cannot read property 'charAt' of undefined +0ms
  duplicate-id:warn Caught exception: Required Accessibility gatherer encountered an error: Cannot read property 'charAt' of undefined +0ms
  status Auditing: `<frame>` or `<iframe>` elements have a title +0ms
  Runner:warn Accessibility gatherer, required by audit frame-title, encountered an error: Cannot read property 'charAt' of undefined +1ms
  frame-title:warn Caught exception: Required Accessibility gatherer encountered an error: Cannot read property 'charAt' of undefined +0ms
  status Auditing: `<html>` element has a `[lang]` attribute +0ms
  Runner:warn Accessibility gatherer, required by audit html-has-lang, encountered an error: Cannot read property 'charAt' of undefined +0ms
  html-has-lang:warn Caught exception: Required Accessibility gatherer encountered an error: Cannot read property 'charAt' of undefined +0ms
  status Auditing: `<html>` element has a valid value for its `[lang]` attribute +0ms
  Runner:warn Accessibility gatherer, required by audit html-lang-valid, encountered an error: Cannot read property 'charAt' of undefined +0ms
  html-lang-valid:warn Caught exception: Required Accessibility gatherer encountered an error: Cannot read property 'charAt' of undefined +0ms
  status Auditing: Image elements have `[alt]` attributes +1ms
  Runner:warn Accessibility gatherer, required by audit image-alt, encountered an error: Cannot read property 'charAt' of undefined +0ms
  image-alt:warn Caught exception: Required Accessibility gatherer encountered an error: Cannot read property 'charAt' of undefined +0ms
  status Auditing: `<input type="image">` elements have `[alt]` text +0ms
  Runner:warn Accessibility gatherer, required by audit input-image-alt, encountered an error: Cannot read property 'charAt' of undefined +0ms
  input-image-alt:warn Caught exception: Required Accessibility gatherer encountered an error: Cannot read property 'charAt' of undefined +0ms
  status Auditing: Form elements have associated labels +0ms
  Runner:warn Accessibility gatherer, required by audit label, encountered an error: Cannot read property 'charAt' of undefined +0ms
  label:warn Caught exception: Required Accessibility gatherer encountered an error: Cannot read property 'charAt' of undefined +0ms
  status Auditing: Presentational `<table>` elements avoid using `<th>`, `<caption>` or the `[summary]` attribute. +1ms
  Runner:warn Accessibility gatherer, required by audit layout-table, encountered an error: Cannot read property 'charAt' of undefined +0ms
  layout-table:warn Caught exception: Required Accessibility gatherer encountered an error: Cannot read property 'charAt' of undefined +0ms
  status Auditing: Links have a discernible name +0ms
  Runner:warn Accessibility gatherer, required by audit link-name, encountered an error: Cannot read property 'charAt' of undefined +0ms
  link-name:warn Caught exception: Required Accessibility gatherer encountered an error: Cannot read property 'charAt' of undefined +0ms
  status Auditing: Lists contain only `<li>` elements and script supporting elements (`<script>` and `<template>`). +0ms
  Runner:warn Accessibility gatherer, required by audit list, encountered an error: Cannot read property 'charAt' of undefined +0ms
  list:warn Caught exception: Required Accessibility gatherer encountered an error: Cannot read property 'charAt' of undefined +0ms
  status Auditing: List items (`<liWhat is the current behavior?
What is the expected behavior?>`) are contained within `<ul>` or `<ol>` parent elements +1ms
  Runner:warn Accessibility gatherer, required by audit listitem, encountered an error: Cannot read property 'charAt' of undefined +0ms
  listitem:warn Caught exception: Required Accessibility gatherer encountered an error: Cannot read property 'charAt' of undefined +0ms
  status Auditing: The document does not use `<meta http-equiv="refresh">` +0ms
  Runner:warn Accessibility gatherer, required by audit meta-refresh, encountered an error: Cannot read property 'charAt' of undefined +0ms
  meta-refresh:warn Caught exception: Required Accessibility gatherer encountered an error: Cannot read property 'charAt' of undefined +0ms
  status Auditing: `[user-scalable="no"]` is not used in the `<meta name="viewport">` element and the `[maximum-scale]` attribute is not less than 5. +0ms
  Runner:warn Accessibility gatherer, required by audit meta-viewport, encountered an error: Cannot read property 'charAt' of undefined +0ms
  meta-viewport:warn Caught exception: Required Accessibility gatherer encountered an error: Cannot read property 'charAt' of undefined +0ms
  status Auditing: `<object>` elements have `[alt]` text +1ms
  Runner:warn Accessibility gatherer, required by audit object-alt, encountered an error: Cannot read property 'charAt' of undefined +0ms
  object-alt:warn Caught exception: Required Accessibility gatherer encountered an error: Cannot read property 'charAt' of undefined +0ms
  status Auditing: No element has a `[tabindex]` value greater than 0 +0ms
  Runner:warn Accessibility gatherer, required by audit tabindex, encountered an error: Cannot read property 'charAt' of undefined +0ms
  tabindex:warn Caught exception: Required Accessibility gatherer encountered an error: Cannot read property 'charAt' of undefined +0ms
  status Auditing: Cells in a `<table>` element that use the `[headers]` attribute only refer to other cells of that same table. +1ms
  Runner:warn Accessibility gatherer, required by audit td-headers-attr, encountered an error: Cannot read property 'charAt' of undefined +0ms
  td-headers-attr:warn Caught exception: Required Accessibility gatherer encountered an error: Cannot read property 'charAt' of undefined +0ms
  status Auditing: `<th>` elements and elements with `[role="columnheader"/"rowheader"]` have data cells they describe. +0ms
  Runner:warn Accessibility gatherer, required by audit th-has-data-cells, encountered an error: Cannot read property 'charAt' of undefined +0ms
  th-has-data-cells:warn Caught exception: Required Accessibility gatherer encountered an error: Cannot read property 'charAt' of undefined +0ms
  status Auditing: `[lang]` attributes have a valid value +1ms
  Runner:warn Accessibility gatherer, required by audit valid-lang, encountered an error: Cannot read property 'charAt' of undefined +0ms
  valid-lang:warn Caught exception: Required Accessibility gatherer encountered an error: Cannot read property 'charAt' of undefined +0ms
  status Auditing: `<video>` elements contain a `<track>` element with `[kind="captions"]` +0ms
  Runner:warn Accessibility gatherer, required by audit video-caption, encountered an error: Cannot read property 'charAt' of undefined +0ms
  video-caption:warn Caught exception: Required Accessibility gatherer encountered an error: Cannot read property 'charAt' of undefined +0ms
  status Auditing: `<video>` elements contain a `<track>` element with `[kind="description"]` +0ms
  Runner:warn Accessibility gatherer, required by audit video-description, encountered an error: Cannot read property 'charAt' of undefined +0ms
  video-description:warn Caught exception: Required Accessibility gatherer encountered an error: Cannot read property 'charAt' of undefined +0ms
  status Auditing: Custom controls have associated labels +1ms
  status Auditing: Custom controls have ARIA roles +0ms
  status Auditing: User focus is not accidentally trapped in a region +0ms
  status Auditing: Interactive controls are keyboard focusable +0ms
  status Auditing: Headings don't skip levels +0ms
  status Auditing: Interactive elements indicate their purpose and state +0ms
  status Auditing: The page has a logical tab order +0ms
  status Auditing: The user's focus is directed to new content added to the page +0ms
  status Auditing: Offscreen content is hidden from assistive technology +0ms
  status Auditing: HTML5 landmark elements are used to improve navigation +0ms
  status Auditing: Visual order on the page follows DOM order +0ms
  status Auditing: Uses efficient cache policy on static assets +0ms
  status Auditing: Avoids enormous network payloads +1ms
  status Auditing: Defer offscreen images +1ms
  status Auditing: Eliminate render-blocking resources +1ms
  Runner:warn CSSUsage gatherer, required by audit render-blocking-resources, encountered an error: Failed to execute 'getComputedStyle' on 'Window': parameter 1 is not of type 'Element'. +0ms
  render-blocking-resources:warn Caught exception: Required CSSUsage gatherer encountered an error: Failed to execute 'getComputedStyle' on 'Window': parameter 1 is not of type 'Element'. +5ms
  status Auditing: Minify CSS +0ms
  Runner:warn CSSUsage gatherer, required by audit unminified-css, encountered an error: Failed to execute 'getComputedStyle' on 'Window': parameter 1 is not of type 'Element'. +0ms
  unminified-css:warn Caught exception: Required CSSUsage gatherer encountered an error: Failed to execute 'getComputedStyle' on 'Window': parameter 1 is not of type 'Element'. +0ms
  status Auditing: Minify JavaScript +0ms
  status Auditing: Remove unused CSS +1ms
  Runner:warn CSSUsage gatherer, required by audit unused-css-rules, encountered an error: Failed to execute 'getComputedStyle' on 'Window': parameter 1 is not of type 'Element'. +0ms
  unused-css-rules:warn Caught exception: Required CSSUsage gatherer encountered an error: Failed to execute 'getComputedStyle' on 'Window': parameter 1 is not of type 'Element'. +0ms
  status Auditing: Serve images in next-gen formats +1ms
  status Auditing: Efficiently encode images +0ms
  status Auditing: Enable text compression +1ms
  status Auditing: Properly size images +1ms
  status Auditing: Use video formats for animated content +0ms
  status Auditing: Avoids Application Cache +1ms
  status Auditing: Page has the HTML doctype +0ms
  status Auditing: Avoids an excessive DOM size +0ms
  Runner:warn DOMStats gatherer, required by audit dom-size, encountered an error: Cannot read property 'children' of null +0ms
  dom-size:warn Caught exception: Required DOMStats gatherer encountered an error: Cannot read property 'children' of null +0ms
  status Auditing: Links to cross-origin destinations are safe +1ms
  status Auditing: Avoids requesting the geolocation permission on page load +0ms
  status Auditing: Avoids `document.write()` +0ms
  status Auditing: Avoids front-end JavaScript libraries with known security vulnerabilities +0ms
  status Auditing: Detected JavaScript libraries +0ms
  status Auditing: Avoids requesting the notification permission on page load +0ms
  status Auditing: Allows users to paste into password fields +0ms
  status Auditing: Uses HTTP/2 for its own resources +1ms
  status Auditing: Uses passive listeners to improve scrolling performance +0ms
  status Auditing: Document has a meta description +0ms
  status Auditing: Page has successful HTTP status code +1ms
  status Auditing: Document uses legible font sizes +0ms
  status Auditing: Links have descriptive text +0ms
  status Auditing: Page isn’t blocked from indexing +1ms
  status Auditing: robots.txt is valid +1ms
  status Auditing: Tap targets are sized appropriately +1ms
  Runner:warn TapTargets gatherer, required by audit tap-targets, encountered an error: Cannot read property 'appendChild' of null +0ms
  tap-targets:warn Caught exception: Required TapTargets gatherer encountered an error: Cannot read property 'appendChild' of null +0ms
  status Auditing: Document has a valid `hreflang` +0ms
  status Auditing: Document avoids plugins +0ms
  status Auditing: Document has a valid `rel=canonical` +1ms
  status Auditing: Structured data is valid +0ms
  status Generating results... +0ms
  Printer html output written to /usr/local/google/home/cjamcl/code/lighthouse/lh-xml-examples.surge.sh_2019-06-20_17-54-36.report.html +42ms
  CLI Protip: Run lighthouse with `--view` to immediately open the HTML report in your browser +0ms
  ChromeLauncher Killing Chrome instance 105415 +1ms

What is the expected behavior?

We should produce an error when the document is not HTML (XML, PDF ... what happens with other media?)

Try out LH on these examples:

with a custom stylesheet
http://lh-xml-examples.surge.sh/test.xml

no custom stylesheet
http://lh-xml-examples.surge.sh/test-2.xml

http://www.orimi.com/pdf-test.pdf

P3 good first issue

Most helpful comment

We've decided to just warn and abort the run if they're trying to audit XML instead of HTML.

All 7 comments

We've decided to just warn and abort the run if they're trying to audit XML instead of HTML.

Images, stylesheets, js, and such actually audit just fine (rather, the page Chrome builds to view the resource presents no issues for LH), so we don't have to exclude those.

Video errors with:

rootNode not found.

In trying to reproduce this, I noticed that even on a 404, the next step is Analyzing and running audits. Should we skip running of audits? I'm thinking about skipping if there is an error like this or if it's content we can't examine (like a video file)

  status Gathering devtoolsLog & network records +30ms
  GatherRunner:error Lighthouse was unable to reliably load the page you requested. Make sure you are testing the correct URL and that the server is properly responding to all requests. (Status code: 404) http://localhost:8000/IMG_0840.MOV____does_not_exist +13ms
  status Disconnecting from browser... +1ms

status Analyzing and running audits... +105ms
  status Auditing: Uses HTTPS +6ms
  Runner:warn devtoolsLogs gatherer, required by audit is-on-https, did not run. +1ms
  status Auditing: Redirects HTTP traffic to HTTPS +2ms
 ...

Relatedly, when I tried to run LH directly against a MOV file, I wasn't able to see rootNode not found, but I do get this in the response of Runner._gatherArtifactsFromBrowser. Can I use this to build the logic around skipping the running of the audits ?

        PageLoadError:
        { LHError: FAILED_DOCUMENT_REQUEST
            at Function.getNetworkError (/Users/brian/dev/lighthouse/lighthouse/lighthouse-core/gather/gather-runner.js:158:16)
            at Function.getPageLoadError (/Users/brian/dev/lighthouse/lighthouse/lighthouse-core/gather/gather-runner.js:211:39)
            at Function.runPass (/Users/brian/dev/lighthouse/lighthouse/lighthouse-core/gather/gather-runner.js:648:40)
            at process._tickCallback (internal/process/next_tick.js:68:7)
          name: 'LHError',
          code: 'FAILED_DOCUMENT_REQUEST',
          friendlyMessage:
           'lighthouse-core/lib/lh-error.js | pageLoadFailedWithDetails # 0',
          lhrRuntimeError: true,
          errorDetails: 'net::ERR_ABORTED' } }

thanks for taking a look, @olore!

In trying to reproduce this, I noticed that even on a 404, the next step is Analyzing and running audits. Should we skip running of audits? I'm thinking about skipping if there is an error like this or if it's content we can't examine (like a video file)

The logging you quote there (Runner:warn devtoolsLogs gatherer, required by audit is-on-https, did not run) is actually trying to tell you that it's skipping those audits, it's just apparently not doing a very good job of making that clear :) It throws here instead of running the audit.

That code loops over the audits and runs whatever it can with what few artifacts are available, and there are always at least some artifacts available (even if it's just a requestedUrl and a HostUserAgent), so it's easiest to loop over the audits and check each one to see if it has the artifacts it needs to run (rather than skipping all audits if some minimal threshold isn't met).

Relatedly, when I tried to run LH directly against a MOV file, I wasn't able to see rootNode not found, but I do get this in the response of Runner._gatherArtifactsFromBrowser. Can I use this to build the logic around skipping the running of the audits ?

Hmm, that error actually says that the main request failed at the network level. Maybe it's not being downloaded? It comes from here (the second new LHError):

https://github.com/GoogleChrome/lighthouse/blob/474c22e6cd5aaed34511f302ad250eb775d062c2/lighthouse-core/gather/gather-runner.js#L147-L162

So not a DNS failure but some other network issue. If you look at the html report at the end of things (or in runWarnings in the output json) it'll give you a warning at the top from that error that should tell you what problem was encountered.

nice repro of an XLST page not working in #10210

Hey y'all, is this issue still available to be worked on?

Yep @lemcardenas feel free to go for it! :)

You can take a look at Lighthouse run warning for a redirect as an example of how to accomplish this
https://github.com/GoogleChrome/lighthouse/blob/b58bf021cadea5791899daca83dc0baafca6916c/lighthouse-core/gather/gather-runner.js#L554-L559

Was this page helpful?
0 / 5 - 0 ratings

Related issues

wizardnet972 picture wizardnet972  Â·  3Comments

mohanrohith picture mohanrohith  Â·  3Comments

mjara74 picture mjara74  Â·  3Comments

bitttttten picture bitttttten  Â·  3Comments

workjalexanderfox picture workjalexanderfox  Â·  3Comments