Skip to content

Commit 16b0f1e

Browse files
kalenikaliaksandrtrflynn89
authored andcommitted
LibWeb: Delete unused ResourceLoader::load()
...and rename `load_unbuffered()` to `load()`.
1 parent 3058274 commit 16b0f1e

File tree

3 files changed

+3
-153
lines changed

3 files changed

+3
-153
lines changed

Libraries/LibWeb/Fetch/Fetching/Fetching.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2435,7 +2435,7 @@ GC::Ref<PendingResponse> nonstandard_resource_loader_file_or_http_network_fetch(
24352435
}
24362436
});
24372437

2438-
ResourceLoader::the().load_unbuffered(load_request, on_headers_received, on_data_received, on_complete);
2438+
ResourceLoader::the().load(load_request, on_headers_received, on_data_received, on_complete);
24392439

24402440
return pending_response;
24412441
}

Libraries/LibWeb/Loader/ResourceLoader.cpp

Lines changed: 1 addition & 145 deletions
Original file line numberDiff line numberDiff line change
@@ -345,151 +345,7 @@ void ResourceLoader::handle_resource_load_request(LoadRequest const& request, Re
345345
on_resource(load_result);
346346
}
347347

348-
void ResourceLoader::load(LoadRequest& request, GC::Root<SuccessCallback> success_callback, GC::Root<ErrorCallback> error_callback, Optional<u32> timeout, GC::Root<TimeoutCallback> timeout_callback)
349-
{
350-
auto const& url = request.url().value();
351-
352-
log_request_start(request);
353-
request.start_timer();
354-
355-
if (should_block_request(request)) {
356-
error_callback->function()("Request was blocked", {}, {}, {}, {}, {});
357-
return;
358-
}
359-
360-
if (url.scheme() == "about") {
361-
handle_about_load_request(request, [success_callback, request](ReadonlyBytes data, Requests::RequestTimingInfo const& timing_info, HTTP::HeaderMap const& response_headers) {
362-
log_success(request);
363-
success_callback->function()(data, timing_info, response_headers, {}, {});
364-
});
365-
return;
366-
}
367-
368-
if (url.scheme() == "data") {
369-
auto data_url_or_error = Fetch::Infrastructure::process_data_url(url);
370-
if (data_url_or_error.is_error()) {
371-
auto error_message = data_url_or_error.error().string_literal();
372-
log_failure(request, error_message);
373-
error_callback->function()(error_message, {}, {}, {}, {}, {});
374-
return;
375-
}
376-
auto data_url = data_url_or_error.release_value();
377-
378-
dbgln_if(SPAM_DEBUG, "ResourceLoader loading a data URL with mime-type: '{}', payload='{}'",
379-
data_url.mime_type.serialized(),
380-
StringView(data_url.body.bytes()));
381-
382-
HTTP::HeaderMap response_headers;
383-
response_headers.set("Content-Type", data_url.mime_type.serialized().to_byte_string());
384-
385-
log_success(request);
386-
387-
Platform::EventLoopPlugin::the().deferred_invoke(GC::create_function(m_heap, [data = move(data_url.body), response_headers = move(response_headers), success_callback] {
388-
// FIXME: Implement timing info for data requests.
389-
Requests::RequestTimingInfo fixme_implement_timing_info {};
390-
391-
success_callback->function()(data, fixme_implement_timing_info, response_headers, {}, {});
392-
}));
393-
return;
394-
}
395-
396-
if (url.scheme() == "resource") {
397-
handle_resource_load_request(
398-
request,
399-
[success_callback, request](FileLoadResult const& load_result) {
400-
log_success(request);
401-
success_callback->function()(load_result.data, load_result.timing_info, load_result.response_headers, {}, {});
402-
},
403-
[error_callback, request](ByteString const& error_message) {
404-
log_failure(request, error_message);
405-
if (error_callback)
406-
error_callback->function()(error_message, {}, {}, {}, {}, {});
407-
});
408-
return;
409-
}
410-
411-
if (url.scheme() == "file") {
412-
handle_file_load_request(
413-
request,
414-
[success_callback, request](FileLoadResult const& load_result) {
415-
log_success(request);
416-
success_callback->function()(load_result.data, load_result.timing_info, load_result.response_headers, {}, {});
417-
},
418-
[error_callback, request](ByteString const& error_message) {
419-
log_failure(request, error_message);
420-
if (error_callback)
421-
error_callback->function()(error_message, {}, {}, {}, {}, {});
422-
});
423-
424-
return;
425-
}
426-
427-
if (url.scheme() == "http" || url.scheme() == "https") {
428-
auto protocol_request = start_network_request(request);
429-
if (!protocol_request) {
430-
if (error_callback)
431-
error_callback->function()("Failed to start network request"sv, {}, {}, {}, {}, {});
432-
return;
433-
}
434-
435-
if (timeout.has_value() && timeout.value() > 0) {
436-
auto timer = Platform::Timer::create_single_shot(m_heap, timeout.value(), nullptr);
437-
timer->on_timeout = GC::create_function(m_heap, [timer = GC::make_root(timer), protocol_request, timeout_callback] {
438-
(void)timer;
439-
protocol_request->stop();
440-
if (timeout_callback)
441-
timeout_callback->function()();
442-
});
443-
timer->start();
444-
}
445-
446-
auto on_buffered_request_finished = [this, success_callback, error_callback, request, &protocol_request = *protocol_request](auto, auto const& timing_info, auto const& network_error, auto& response_headers, auto status_code, auto const& reason_phrase, ReadonlyBytes payload) mutable {
447-
handle_network_response_headers(request, response_headers);
448-
449-
// NOTE: We finish the network request *after* invoking callbacks, otherwise a nested
450-
// event loop inside a callback may cause this function object to be destroyed
451-
// while we're still calling it.
452-
ScopeGuard cleanup = [&] {
453-
deferred_invoke([this, protocol_request = NonnullRefPtr(protocol_request)] {
454-
finish_network_request(move(protocol_request));
455-
});
456-
};
457-
if (network_error.has_value() || (status_code.has_value() && *status_code >= 400 && *status_code <= 599 && (payload.is_empty() || !request.is_main_resource()))) {
458-
StringBuilder error_builder;
459-
if (network_error.has_value())
460-
error_builder.appendff("{}", Requests::network_error_to_string(*network_error));
461-
else
462-
error_builder.append("Load failed"sv);
463-
464-
if (status_code.has_value()) {
465-
if (*status_code >= 100 && *status_code <= 599)
466-
error_builder.appendff(" (status: {} {})", *status_code, HTTP::HttpResponse::reason_phrase_for_code(*status_code));
467-
else
468-
error_builder.appendff(" (status: {})", *status_code);
469-
}
470-
471-
log_failure(request, error_builder.string_view());
472-
if (error_callback)
473-
error_callback->function()(error_builder.to_byte_string(), timing_info, status_code, reason_phrase, payload, response_headers);
474-
return;
475-
}
476-
477-
log_success(request);
478-
success_callback->function()(payload, timing_info, response_headers, status_code, reason_phrase);
479-
};
480-
481-
protocol_request->set_buffered_request_finished_callback(move(on_buffered_request_finished));
482-
return;
483-
}
484-
485-
auto not_implemented_error = ByteString::formatted("Protocol not implemented: {}", url.scheme());
486-
log_failure(request, not_implemented_error);
487-
if (error_callback) {
488-
error_callback->function()(not_implemented_error, {}, {}, {}, {}, {});
489-
}
490-
}
491-
492-
void ResourceLoader::load_unbuffered(LoadRequest& request, GC::Root<OnHeadersReceived> on_headers_received, GC::Root<OnDataReceived> on_data_received, GC::Root<OnComplete> on_complete)
348+
void ResourceLoader::load(LoadRequest& request, GC::Root<OnHeadersReceived> on_headers_received, GC::Root<OnDataReceived> on_data_received, GC::Root<OnComplete> on_complete)
493349
{
494350
auto const& url = request.url().value();
495351

Libraries/LibWeb/Loader/ResourceLoader.h

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,17 +30,11 @@ class WEB_API ResourceLoader : public Core::EventReceiver {
3030

3131
void set_client(NonnullRefPtr<Requests::RequestClient>);
3232

33-
using SuccessCallback = GC::Function<void(ReadonlyBytes, Requests::RequestTimingInfo const&, HTTP::HeaderMap const& response_headers, Optional<u32> status_code, Optional<String> const& reason_phrase)>;
34-
using ErrorCallback = GC::Function<void(ByteString const&, Requests::RequestTimingInfo const&, Optional<u32> status_code, Optional<String> const& reason_phrase, ReadonlyBytes payload, HTTP::HeaderMap const& response_headers)>;
35-
using TimeoutCallback = GC::Function<void()>;
36-
37-
void load(LoadRequest&, GC::Root<SuccessCallback> success_callback, GC::Root<ErrorCallback> error_callback = nullptr, Optional<u32> timeout = {}, GC::Root<TimeoutCallback> timeout_callback = nullptr);
38-
3933
using OnHeadersReceived = GC::Function<void(HTTP::HeaderMap const& response_headers, Optional<u32> status_code, Optional<String> const& reason_phrase)>;
4034
using OnDataReceived = GC::Function<void(ReadonlyBytes data)>;
4135
using OnComplete = GC::Function<void(bool success, Requests::RequestTimingInfo const& timing_info, Optional<StringView> error_message)>;
4236

43-
void load_unbuffered(LoadRequest&, GC::Root<OnHeadersReceived>, GC::Root<OnDataReceived>, GC::Root<OnComplete>);
37+
void load(LoadRequest&, GC::Root<OnHeadersReceived>, GC::Root<OnDataReceived>, GC::Root<OnComplete>);
4438

4539
RefPtr<Requests::RequestClient>& request_client() { return m_request_client; }
4640

0 commit comments

Comments
 (0)