Bug 194337

Summary: nomodule scripts are fetched in some cases (with empty cache or in new tab)
Product: WebKit Reporter: Jakub G <jakub.g.opensource>
Component: DOMAssignee: Yusuke Suzuki <ysuzuki>
Status: RESOLVED FIXED    
Severity: Normal CC: achristensen, cdumez, commit-queue, dbates, dino, dpaddock, esprehn+autocc, ews, gyuyoung.kim, keith_miller, mark.lam, philip, rniwa, simon.fraser, webkit-bug-importer, youennf, ysuzuki
Priority: P2 Keywords: InRadar
Version: Safari Technology Preview   
Hardware: Macintosh   
OS: macOS 10.13   
Attachments:
Description Flags
min repro HTML
none
Patch none

Description Jakub G 2019-02-06 02:36:16 PST
Created attachment 361285 [details]
min repro HTML

Repro:

0. Open Safari (any version, including 12 or TP74; preferably 11+ to have `performance.getEntries()`)
1. Empty the browser cache (alt-cmd-e), or open a new tab (cmd-t)
2. Load https://jg-testpage.github.io/es-modules/module-nomodule/safari.html (also attached to this bug)
3. Observe that `nomodule.js` is listed as one of the loaded resources.

Expected:

3. `nomodule` scripts should never be loaded in a modern browser.

Additional notes:

- Reproducible about 50% of the time in new tab
- Reproducible 100% of the time when when the cache is empty
- When there's no "traditional" script on top of HTML that has neither "nomodule" nor "type=module", I didn't repro (so far)

Other browsers

- Chrome: not affected
- Firefox: not affected
- Edge: affected, but it has bigger problems (it always loads nomodule)
Comment 1 Radar WebKit Bug Importer 2019-04-08 10:33:01 PDT
<rdar://problem/49700924>
Comment 2 Ryosuke Niwa 2019-04-09 16:59:52 PDT
This is probably an issue with the HTML preloader.
Comment 3 Yusuke Suzuki 2020-01-22 16:39:39 PST
This is related to preloader.
Comment 4 Yusuke Suzuki 2020-01-22 18:05:23 PST
Created attachment 388501 [details]
Patch
Comment 5 Yusuke Suzuki 2020-01-23 00:55:17 PST
Comment on attachment 388501 [details]
Patch

Thanks!
Comment 6 WebKit Commit Bot 2020-01-23 01:51:26 PST
The commit-queue encountered the following flaky tests while processing attachment 388501 [details]:

editing/spelling/spellcheck-async-remove-frame.html bug 158401 (authors: morrita@google.com, rniwa@webkit.org, and tony@chromium.org)
The commit-queue is continuing to process your patch.
Comment 7 WebKit Commit Bot 2020-01-23 01:52:02 PST
Comment on attachment 388501 [details]
Patch

Clearing flags on attachment: 388501

Committed r254970: <https://trac.webkit.org/changeset/254970>
Comment 8 WebKit Commit Bot 2020-01-23 01:52:04 PST
All reviewed patches have been landed.  Closing bug.