servo/components/script
bors-servo 4e9967b43e
Auto merge of #24148 - asajeffrey:script-prefetch, r=jdm,nox
Prefetch img, scripts and stylesheets during parsing

<!-- Please describe your changes on the following line: -->

Eagerly tokenize html input, and scan for `script` and `img` tags which can be prefetched into the cache. This allows resources to be loaded concurrently, which would otherwise be loaded sequentially due to being blocked by script execution. On the cloth webgl demo, this takes the time-to-paint down from 732ms to 560ms.

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #3847
- [x] These changes do not require tests because it's a perf improvement

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/24148)
<!-- Reviewable:end -->
2019-09-11 15:28:05 -04:00
..
docs
dom Auto merge of #24148 - asajeffrey:script-prefetch, r=jdm,nox 2019-09-11 15:28:05 -04:00
task_source
body.rs Modify *::get_cx methods to return a safe JSContext instead of a raw one 2019-07-24 09:53:10 +01:00
build.rs Remove usage of various unsafe keyword 2019-08-09 00:43:28 +01:00
Cargo.toml Deduplicate parking_lot and friends by updating it to 0.9 2019-09-05 10:47:39 +02:00
clipboard_provider.rs Remove not needed DummyClipboardContext 2019-06-13 20:20:25 +02:00
CMakeLists.txt Generate apis.html and css-properties.json for docs as part of crates’ build scripts 2019-07-30 08:37:33 +02:00
compartments.rs Use safe JSContext in compartments 2019-08-09 00:02:10 +01:00
devtools.rs Modify *::get_cx methods to return a safe JSContext instead of a raw one 2019-07-24 09:53:10 +01:00
document_loader.rs Remove unused code from script* crates 2019-06-02 07:12:26 +02:00
fetch.rs Create a helper API for entering a DOM object's compartment 2019-06-29 19:23:17 +02:00
image_listener.rs
layout_image.rs
lib.rs Remove uses of mem::uninitialized 2019-07-17 10:48:54 +02:00
mem.rs
microtask.rs Use safe JSContext in MicrotaskQueue 2019-08-09 00:02:10 +01:00
network_listener.rs Let resources timing entries be added to performance entry buffer. 2019-06-11 09:40:31 -07:00
script_runtime.rs Work around crash on Windows when returning JS::Value by value. 2019-08-30 17:29:10 -07:00
script_thread.rs Implement ElementClick wd command 2019-08-31 10:14:40 +03:00
serviceworker_manager.rs
serviceworkerjob.rs
stylesheet_loader.rs Prefetch img and scripts during parsing 2019-09-10 16:13:49 -05:00
stylesheet_set.rs
task.rs Upgrade to rustc 1.38.0-nightly (dddb7fca0 2019-07-30) 2019-07-31 13:34:01 +02:00
task_manager.rs
task_queue.rs
test.rs
textinput.rs Upgrade to rustc 1.38.0-nightly (dddb7fca0 2019-07-30) 2019-07-31 13:34:01 +02:00
timers.rs Modify *::get_cx methods to return a safe JSContext instead of a raw one 2019-07-24 09:53:10 +01:00
unpremultiplytable.rs
webdriver_handlers.rs Implement ElementClick wd command 2019-08-31 10:14:40 +03:00