From 92a3803066569a5475f49298a909f803fdd9ff67 Mon Sep 17 00:00:00 2001 From: Kenneth Myhra Date: Sat, 2 Jul 2022 22:32:25 +0200 Subject: [PATCH] LibWeb: Add timeout_callback to ResourceLoader::load() --- Userland/Libraries/LibWeb/Loader/ResourceLoader.cpp | 10 ++++++---- Userland/Libraries/LibWeb/Loader/ResourceLoader.h | 4 ++-- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/Userland/Libraries/LibWeb/Loader/ResourceLoader.cpp b/Userland/Libraries/LibWeb/Loader/ResourceLoader.cpp index 3aa46c6d5f..7cde613cfc 100644 --- a/Userland/Libraries/LibWeb/Loader/ResourceLoader.cpp +++ b/Userland/Libraries/LibWeb/Loader/ResourceLoader.cpp @@ -138,7 +138,7 @@ static void emit_signpost(String const& message, int id) static size_t resource_id = 0; -void ResourceLoader::load(LoadRequest& request, Function const& response_headers, Optional status_code)> success_callback, Function status_code)> error_callback, Optional timeout) +void ResourceLoader::load(LoadRequest& request, Function const& response_headers, Optional status_code)> success_callback, Function status_code)> error_callback, Optional timeout, Function timeout_callback) { auto& url = request.url(); request.start_timer(); @@ -283,8 +283,10 @@ void ResourceLoader::load(LoadRequest& request, Function 0) { auto timer = Core::Timer::create_single_shot(timeout.value(), nullptr); - timer->on_timeout = [timer, protocol_request]() mutable { + timer->on_timeout = [timer, protocol_request, timeout_callback = move(timeout_callback)]() mutable { protocol_request->stop(); + if (timeout_callback) + timeout_callback(); }; timer->start(); } @@ -328,11 +330,11 @@ void ResourceLoader::load(LoadRequest& request, Function const& response_headers, Optional status_code)> success_callback, Function status_code)> error_callback, Optional timeout) +void ResourceLoader::load(const AK::URL& url, Function const& response_headers, Optional status_code)> success_callback, Function status_code)> error_callback, Optional timeout, Function timeout_callback) { LoadRequest request; request.set_url(url); - load(request, move(success_callback), move(error_callback), timeout); + load(request, move(success_callback), move(error_callback), timeout, move(timeout_callback)); } bool ResourceLoader::is_port_blocked(int port) diff --git a/Userland/Libraries/LibWeb/Loader/ResourceLoader.h b/Userland/Libraries/LibWeb/Loader/ResourceLoader.h index c8ed264668..a9370dc91a 100644 --- a/Userland/Libraries/LibWeb/Loader/ResourceLoader.h +++ b/Userland/Libraries/LibWeb/Loader/ResourceLoader.h @@ -70,8 +70,8 @@ public: RefPtr load_resource(Resource::Type, LoadRequest&); - void load(LoadRequest&, Function const& response_headers, Optional status_code)> success_callback, Function status_code)> error_callback = nullptr, Optional timeout = {}); - void load(const AK::URL&, Function const& response_headers, Optional status_code)> success_callback, Function status_code)> error_callback = nullptr, Optional timeout = {}); + void load(LoadRequest&, Function const& response_headers, Optional status_code)> success_callback, Function status_code)> error_callback = nullptr, Optional timeout = {}, Function timeout_callback = nullptr); + void load(const AK::URL&, Function const& response_headers, Optional status_code)> success_callback, Function status_code)> error_callback = nullptr, Optional timeout = {}, Function timeout_callback = nullptr); ResourceLoaderConnector& connector() { return *m_connector; }