blob: d4c210519c506b4aaf9ceb6e3ecb3a97468a47d4 [file] [log] [blame]
// Copyright 2025 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef NET_BASE_NETWORK_ISOLATION_PARTITION_H_
#define NET_BASE_NETWORK_ISOLATION_PARTITION_H_
#include <stdint.h>
#include <string>
namespace net {
// Specifies the use case for IsolationInfo, NetworkIsolationKey, and
// NetworkAnonymizationKey. This allows further partitioning of network state
// (e.g., HTTP cache) beyond what's provided by the top-level site and frame
// site. This is useful for isolating network state for specific features.
//
// This enum gets serialized to disk, so values of
// existing entries must not change when adding/removing values, and obsolete
// values must not be reused.
enum class NetworkIsolationPartition : int32_t {
// General use case. This is the default and should be used for most
// requests.
kGeneral = 0,
// This use case isolates network state for Protected Audience seller
// worklets.
kProtectedAudienceSellerWorklet = 1,
// This use case isolates network state for FedCM-related requests.
kFedCmUncredentialedRequests = 2,
kMaxValue = kFedCmUncredentialedRequests
};
std::string NetworkIsolationPartitionToDebugString(
NetworkIsolationPartition network_isolation_partition);
} // namespace net
#endif // NET_BASE_NETWORK_ISOLATION_PARTITION_H_