servo/components/script
Martin Robinson 036e74524a
net: Start reducing number of IPCs channels used for fetch with a FetchThread (#33863)
Instead of creating a `ROUTER` for each fetch, create a fetch thread
which handles all incoming and outcoming fetch requests. Now messages
involving fetches carry a "request id" which indicates which fetch is
being addressed by the message. This greatly reduces the number of file
descriptors used by fetch.

In addition, the interface for kicking off fetches is simplified when
using the `Listener` with `Document`s and the `GlobalScope`.

This does not fix all leaked file descriptors / mach ports, but greatly
eliminates the number used. Now tests can be run without limiting
procesess on modern macOS systems.

Followup work:

1. There are more instances where fetch is done using the old method.
   Some of these require more changes in order to be converted to the
   `FetchThread` approach.
2. Eliminate usage of IPC channels when doing redirects.
3. Also eliminate the IPC channel used for cancel handling.
4. This change opens up the possiblity of controlling the priority of
   fetch requests.

Fixes #29834.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2024-10-16 16:53:24 +00:00
..
docs Update branch name to main (#30877) 2023-12-16 09:32:20 +00:00
dom net: Start reducing number of IPCs channels used for fetch with a FetchThread (#33863) 2024-10-16 16:53:24 +00:00
layout_dom clippy: Add safety documentation and clean up unsafe methods (#33748) 2024-10-16 08:11:31 +00:00
task_source Dedupliate syn (#33038) 2024-08-13 21:21:47 +00:00
animation_timeline.rs script: Start replacing time with std::time and chrono (#30639) 2024-01-16 12:23:18 +00:00
animations.rs CanGc fixes in components/script/dom (#33843) 2024-10-15 04:45:16 +00:00
body.rs Various CanGc fixes in components/script/dom (#33706) 2024-10-08 02:30:04 +00:00
build.rs use rerun-if-changed in script/build.rs (#33502) 2024-09-30 11:31:05 +00:00
canvas_state.rs Propagate CanGc through dommatrix, dommatrixreadonly, and testbindings (#33822) 2024-10-13 16:11:46 +00:00
Cargo.toml crypto: Begin SubtleCrypto implementation (#33628) 2024-10-08 03:51:08 +00:00
clipboard_provider.rs
devtools.rs Replace CanGc::note() calls with arguments in components/script/dom (#33692) 2024-10-08 12:58:09 +00:00
document_loader.rs net: Start reducing number of IPCs channels used for fetch with a FetchThread (#33863) 2024-10-16 16:53:24 +00:00
fetch.rs net: Start reducing number of IPCs channels used for fetch with a FetchThread (#33863) 2024-10-16 16:53:24 +00:00
image_listener.rs Various CanGc fixes in components/script/dom (#33706) 2024-10-08 02:30:04 +00:00
init.rs Fixed some clippy warning by adding default implementations (#31989) 2024-04-04 09:33:30 +00:00
layout_image.rs net: Start reducing number of IPCs channels used for fetch with a FetchThread (#33863) 2024-10-16 16:53:24 +00:00
lib.rs Properly track rel keywords for <a>/<area>/<form> elements (#33462) 2024-09-23 11:48:53 +00:00
links.rs Properly track rel keywords for <a>/<area>/<form> elements (#33462) 2024-09-23 11:48:53 +00:00
mem.rs Strict import formatting (grouping and granularity) (#30325) 2023-09-11 19:16:54 +00:00
microtask.rs Make CanGc derive Copy and Clone (#33407) 2024-09-12 10:24:44 +00:00
network_listener.rs net: Start reducing number of IPCs channels used for fetch with a FetchThread (#33863) 2024-10-16 16:53:24 +00:00
realms.rs clippy: components/script/realms (#32859) 2024-07-26 10:15:02 +00:00
script_module.rs net: Start reducing number of IPCs channels used for fetch with a FetchThread (#33863) 2024-10-16 16:53:24 +00:00
script_runtime.rs clippy: fix clippy warnings in components/script (#33849) 2024-10-16 10:21:25 +00:00
script_thread.rs net: Start reducing number of IPCs channels used for fetch with a FetchThread (#33863) 2024-10-16 16:53:24 +00:00
security_manager.rs clippy: Fix suggestions in script, libservo, and servoshell (#33453) 2024-09-14 08:41:13 +00:00
serviceworker_manager.rs use ThreadSafeJSContext instead of ContextForRequestInterrupt (#33769) 2024-10-10 09:43:51 +00:00
stylesheet_loader.rs net: Start reducing number of IPCs channels used for fetch with a FetchThread (#33863) 2024-10-16 16:53:24 +00:00
stylesheet_set.rs
task.rs ensure clean shutdown of all threads running JS 2020-06-30 13:22:38 +08:00
task_manager.rs script: Start rework to better match the specification HTML event loop (#31505) 2024-05-13 09:23:03 +00:00
task_queue.rs clippy: Fix suggestions in script, libservo, and servoshell (#33453) 2024-09-14 08:41:13 +00:00
test.rs Strict import formatting (grouping and granularity) (#30325) 2023-09-11 19:16:54 +00:00
textinput.rs remove usage of legacy numeric operations in script (#33095) 2024-08-16 21:30:13 +00:00
timers.rs Various CanGc fixes (#33800) 2024-10-11 03:53:39 +00:00
unpremultiplytable.rs
webdriver_handlers.rs CanGc fixes and checks in multiple files (#33836) 2024-10-15 04:30:48 +00:00
window_named_properties.rs Replace the lazy_static crate whth std::sync::LazyLock in components/script (#33004) 2024-08-12 07:30:35 +00:00