[Webkit-unassigned] [Bug 241704] New: Preparser does not download stylesheets before running inline scripts

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu Jun 16 15:31:12 PDT 2022


https://bugs.webkit.org/show_bug.cgi?id=241704

            Bug ID: 241704
           Summary: Preparser does not download stylesheets before running
                    inline scripts
           Product: WebKit
           Version: WebKit Nightly Build
          Hardware: Unspecified
                OS: Unspecified
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: WebKit Misc.
          Assignee: webkit-unassigned at lists.webkit.org
          Reporter: nlawson at salesforce.com

Created attachment 460277

  --> https://bugs.webkit.org/attachment.cgi?id=460277&action=review

Screenshot showing behavior in Chrome, Firefox, and Safari

The speculative HTML preparser in WebKit does not seem to eagerly download stylesheets in the HTML that follow an inline script, whereas Firefox and Chrome do.

A simple test:

<script>
  const start = Date.now()
  while (Date.now() - start < 2000) {
    // block rendering
  }
</script>
<link rel="stylesheet" href="./one.css">
<link rel="stylesheet" href="./two.css">

In this case, Safari (and WebKit Nightly 25167) will not start downloading the CSS until the 2000ms render-blocking script is run. Whereas Firefox and Chrome start eagerly downloading both CSS files before the script finishes.

Incidentally, the same behavior can be seen for inline @imports:

<style>
    @import './one.css';
    @import './two.css';
</style>

(I.e. imports behave the same as links in all three browsers.)

Here are live repros to demonstrate:

- Links: https://bl.ocks.org/nolanlawson/raw/871eced59d144dbe4bec242c1e45c8f1/links.html
- Imports: https://bl.ocks.org/nolanlawson/raw/871eced59d144dbe4bec242c1e45c8f1/imports.html

Note that Safari takes >2000ms to start downloading the CSS files, as reported by the performance resource timings, whereas Firefox and Chrome take much less than 2000ms.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20220616/a469924b/attachment-0001.htm>


More information about the webkit-unassigned mailing list