1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 04:07:44 +00:00

LibWeb: Add a naive Resource cache

This patch introduces a caching mechanism in ResourceLoader. It's keyed
on a LoadRequest object which is what you provide to load_resource()
when you want to load a resource.

We currently never prune the cache, so resources will stay in there
forever. This is obviously not gonna stay that way, but we're just
getting started here. :^)

This should drastically reduce the number of requests when loading
some sites (like Twitter) that reuse the same images over and over.
This commit is contained in:
Andreas Kling 2020-06-01 21:58:29 +02:00
parent f249f07699
commit 7af337764e
7 changed files with 94 additions and 15 deletions

View file

@ -42,7 +42,7 @@ class ResourceLoader : public Core::Object {
public:
static ResourceLoader& the();
RefPtr<Resource> load_resource(const URL&);
RefPtr<Resource> load_resource(const LoadRequest&);
void load(const URL&, Function<void(const ByteBuffer&, const HashMap<String, String, CaseInsensitiveStringTraits>& response_headers)> success_callback, Function<void(const String&)> error_callback = nullptr);
void load_sync(const URL&, Function<void(const ByteBuffer&, const HashMap<String, String, CaseInsensitiveStringTraits>& response_headers)> success_callback, Function<void(const String&)> error_callback = nullptr);