From 52fa415779daf07d39ebe4cf72b6078f8612c87f Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Wed, 3 Apr 2024 11:50:33 +0200 Subject: [PATCH] LibWeb: Use JS::SafeFunction for ResourceLoader callbacks This is one of the cases where SafeFunction actually makes sense. Since every resource load will always either succeed, fail, or time out, it's okay to use a SafeFunction since we know it will eventually get destroyed. Until it does, this allows it to keep any captures alive. --- Userland/Libraries/LibWeb/Loader/ResourceLoader.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Userland/Libraries/LibWeb/Loader/ResourceLoader.h b/Userland/Libraries/LibWeb/Loader/ResourceLoader.h index a3b176a477f..47c8a2c1012 100644 --- a/Userland/Libraries/LibWeb/Loader/ResourceLoader.h +++ b/Userland/Libraries/LibWeb/Loader/ResourceLoader.h @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include @@ -115,9 +116,9 @@ public: RefPtr load_resource(Resource::Type, LoadRequest&); - using SuccessCallback = Function const& response_headers, Optional status_code)>; - using ErrorCallback = Function status_code, ReadonlyBytes payload, HashMap const& response_headers)>; - using TimeoutCallback = Function; + using SuccessCallback = JS::SafeFunction const& response_headers, Optional status_code)>; + using ErrorCallback = JS::SafeFunction status_code, ReadonlyBytes payload, HashMap const& response_headers)>; + using TimeoutCallback = JS::SafeFunction; void load(LoadRequest&, SuccessCallback success_callback, ErrorCallback error_callback = nullptr, Optional timeout = {}, TimeoutCallback timeout_callback = nullptr);