ladybird/Userland/Libraries/LibWeb/Fetch/Infrastructure/NetworkPartitionKey.h
Shannon Booth dc401f49ea LibWeb+LibURL: Move HTML::Origin to URL::Origin
While Origin is defined in the HTML spec - this leaves us with quite an
awkward relationship as the URL spec makes use of AO's from what is
defined in the HTML spec.

To simplify this factoring, relocate Origin into LibURL.
2024-10-05 10:46:30 +02:00

37 lines
1.1 KiB
C++

/*
* Copyright (c) 2024, Andrew Kaster <akaster@serenityos.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#include <LibURL/Origin.h>
#include <LibWeb/Forward.h>
namespace Web::Fetch::Infrastructure {
// https://fetch.spec.whatwg.org/#network-partition-key
struct NetworkPartitionKey {
URL::Origin top_level_origin;
// FIXME: See https://github.com/whatwg/fetch/issues/1035
// This is the document origin in other browsers
void* second_key = nullptr;
bool operator==(NetworkPartitionKey const&) const = default;
};
NetworkPartitionKey determine_the_network_partition_key(HTML::Environment const& environment);
Optional<NetworkPartitionKey> determine_the_network_partition_key(Infrastructure::Request const& request);
}
template<>
class AK::Traits<Web::Fetch::Infrastructure::NetworkPartitionKey> : public DefaultTraits<Web::Fetch::Infrastructure::NetworkPartitionKey> {
public:
static unsigned hash(Web::Fetch::Infrastructure::NetworkPartitionKey const& partition_key)
{
return ::AK::Traits<URL::Origin>::hash(partition_key.top_level_origin);
}
};