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: Nobody <webkit-unassigned>
Status: NEW ---    
Severity: Normal CC: cdumez, keith_miller, mark.lam, 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

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.