LibWeb: Remove unused LoadRequest facilities

We could probably do with removing LoadRequest altogether. But this just
removes unused methods for now to make an upcoming HTTP header change a
bit simpler.
This commit is contained in:
Timothy Flynn 2025-11-24 10:13:09 -05:00 committed by Tim Flynn
parent 1f5ffe04c8
commit 556364fd76
Notes: github-actions[bot] 2025-11-26 14:16:44 +00:00
3 changed files with 1 additions and 84 deletions

View file

@ -758,7 +758,6 @@ set(SOURCES
Loader/ContentFilter.cpp
Loader/FileRequest.cpp
Loader/GeneratedPagesLoader.cpp
Loader/LoadRequest.cpp
Loader/ProxyMappings.cpp
Loader/ResourceLoader.cpp
MathML/AttributeNames.cpp

View file

@ -1,35 +0,0 @@
/*
* Copyright (c) 2021, Tim Flynn <trflynn89@serenityos.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#include "LoadRequest.h"
#include <LibWeb/Cookie/Cookie.h>
#include <LibWeb/Page/Page.h>
namespace Web {
static int s_resource_id = 0;
LoadRequest::LoadRequest()
: m_id(s_resource_id++)
{
}
LoadRequest LoadRequest::create_for_url_on_page(URL::URL const& url, Page* page)
{
LoadRequest request;
request.set_url(url);
if (page) {
auto cookie = page->client().page_did_request_cookie(url, Cookie::Source::Http);
if (!cookie.is_empty())
request.set_header("Cookie", cookie.to_byte_string());
request.set_page(*page);
}
return request;
}
}

View file

@ -19,18 +19,7 @@ namespace Web {
class WEB_API LoadRequest {
public:
LoadRequest();
static LoadRequest create_for_url_on_page(URL::URL const& url, Page* page);
// The main resource is the file being displayed in a frame (unlike subresources like images, scripts, etc.)
// If a main resource fails with an HTTP error, we may still display its content if non-empty, e.g a custom 404 page.
bool is_main_resource() const { return m_main_resource; }
void set_main_resource(bool b) { m_main_resource = b; }
bool is_valid() const { return m_url.has_value(); }
int id() const { return m_id; }
LoadRequest() = default;
Optional<URL::URL> const& url() const { return m_url; }
void set_url(Optional<URL::URL> url) { m_url = move(url); }
@ -50,53 +39,17 @@ public:
GC::Ptr<Page> page() const { return m_page.ptr(); }
void set_page(Page& page) { m_page = page; }
unsigned hash() const
{
auto body_hash = string_hash((char const*)m_body.data(), m_body.size());
auto body_and_headers_hash = pair_int_hash(body_hash, m_headers.hash());
auto url_hash = m_url.has_value() ? m_url->to_byte_string().hash() : 0;
auto url_and_method_hash = pair_int_hash(url_hash, m_method.hash());
return pair_int_hash(body_and_headers_hash, url_and_method_hash);
}
bool operator==(LoadRequest const& other) const
{
if (m_headers.size() != other.m_headers.size())
return false;
for (auto const& it : m_headers) {
auto jt = other.m_headers.find(it.key);
if (jt == other.m_headers.end())
return false;
if (it.value != jt->value)
return false;
}
return m_url == other.m_url && m_method == other.m_method && m_body == other.m_body;
}
void set_header(ByteString const& name, ByteString const& value) { m_headers.set(name, value); }
ByteString header(ByteString const& name) const { return m_headers.get(name).value_or({}); }
HashMap<ByteString, ByteString, CaseInsensitiveStringTraits> const& headers() const { return m_headers; }
private:
int m_id { 0 };
Optional<URL::URL> m_url;
ByteString m_method { "GET" };
HashMap<ByteString, ByteString, CaseInsensitiveStringTraits> m_headers;
ByteBuffer m_body;
Core::ElapsedTimer m_load_timer;
GC::Root<Page> m_page;
bool m_main_resource { false };
bool m_store_set_cookie_headers { true };
};
}
namespace AK {
template<>
struct Traits<Web::LoadRequest> : public DefaultTraits<Web::LoadRequest> {
static unsigned hash(Web::LoadRequest const& request) { return request.hash(); }
};
}