ladybird/Userland/Libraries/LibWeb/Fetch/Infrastructure/NetworkPartitionKey.h
Jamie Mansfield 8e062a52a3 LibWeb: Move NetworkPartitionKey into a header
This is used elsewhere, such as the HTMLLinkElement.
2024-06-05 05:42:47 +01:00

37 lines
1.1 KiB
C++

/*
* Copyright (c) 2024, Andrew Kaster <akaster@serenityos.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#include <LibWeb/Forward.h>
#include <LibWeb/HTML/Origin.h>
namespace Web::Fetch::Infrastructure {
// https://fetch.spec.whatwg.org/#network-partition-key
struct NetworkPartitionKey {
HTML::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<Web::HTML::Origin>::hash(partition_key.top_level_origin);
}
};