servo/components/net
Sebastian C 103cbed928
HSTS list memory reduction and fixes (#37000)
Combines the 2 time values in the HSTS entry with a single timestamp for
expiration. (9MB savings per list)

The previous time representations were based on system boot time which
meant that the `hsts_list.json` round trip across boots resulted in
completely erroneous expiration times.

The preload list is now initialized separately from the public and
private lists and shared by both, cutting memory use in half.

Overall takes memory use from 64MB for HSTS to 24MB.

Expired HSTS entries are now removed from the list when updating an
entry and subdomains can be added to a list if the superdomain does not
already include them.

Testing: New unit tests added
Related to #25929 but the next step would be to attempt to use
https://github.com/BurntSushi/fst Which will be explored in a follow-up.

---------

Signed-off-by: Sebastian C <sebsebmc@gmail.com>
2025-05-15 04:06:57 +00:00
..
fetch Don't slice a sliced blob (#36866) 2025-05-06 07:25:11 +00:00
protocols Initial support for marking custom protocol secure (#36656) 2025-04-25 10:39:33 +00:00
tests HSTS list memory reduction and fixes (#37000) 2025-05-15 04:06:57 +00:00
async_runtime.rs Remove lock around tokio-rt handle (#36762) 2025-04-30 07:09:38 +00:00
Cargo.toml net: Fix unit tests requiring default resources. (#36838) 2025-05-05 04:44:47 +00:00
connector.rs Remove lock around tokio-rt handle (#36762) 2025-04-30 07:09:38 +00:00
cookie.rs Update rustfmt to the 2024 style edition (#35764) 2025-03-03 11:26:53 +00:00
cookie_storage.rs Webdriver delete cookie (#36306) 2025-04-04 05:24:47 +00:00
decoder.rs Update rustfmt to the 2024 style edition (#35764) 2025-03-03 11:26:53 +00:00
filemanager_thread.rs servoshell: Migrate to egui-file-dialog from tinyfiledialogs (#34823) 2025-02-04 18:24:24 +00:00
hosts.rs Replace the lazy_static crate with std::sync::LazyLock in components/net (#33046) 2024-08-14 12:15:55 +00:00
hsts.rs HSTS list memory reduction and fixes (#37000) 2025-05-15 04:06:57 +00:00
http_cache.rs Update rustfmt to the 2024 style edition (#35764) 2025-03-03 11:26:53 +00:00
http_loader.rs fix: ReadableStream::get_in_memory_bytes too large (#36914) 2025-05-12 16:00:14 +00:00
image_cache.rs Delete WR images when dropping the ImageCacheStore (#36956) 2025-05-11 04:01:49 +00:00
lib.rs libservo: Convert intercept_web_resource_load into load_web_resource (#35564) 2025-02-21 14:36:42 +00:00
local_directory_listing.rs Update rustfmt to the 2024 style edition (#35764) 2025-03-03 11:26:53 +00:00
mime_classifier.rs Update to rust 1.85 (#35628) 2025-02-24 17:44:35 +00:00
request_interceptor.rs Update rustfmt to the 2024 style edition (#35764) 2025-03-03 11:26:53 +00:00
resource_thread.rs HSTS list memory reduction and fixes (#37000) 2025-05-15 04:06:57 +00:00
storage_thread.rs Update to rust 1.85 (#35628) 2025-02-24 17:44:35 +00:00
subresource_integrity.rs clippy: Fix warnings in components/net (#31626) 2024-03-13 09:40:04 +00:00
websocket_loader.rs Remove lock around tokio-rt handle (#36762) 2025-04-30 07:09:38 +00:00