/* * Copyright (c) 2024, Andrew Kaster * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include 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 determine_the_network_partition_key(Infrastructure::Request const& request); } template<> class AK::Traits : public DefaultTraits { public: static unsigned hash(Web::Fetch::Infrastructure::NetworkPartitionKey const& partition_key) { return ::AK::Traits::hash(partition_key.top_level_origin); } };