// Copyright 2020 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_ISOLATION_INFO_H_ #define NET_BASE_ISOLATION_INFO_H_ #include <optional> #include <set> #include <string> #include "base/unguessable_token.h" #include "net/base/net_export.h" #include "net/base/network_anonymization_key.h" #include "net/base/network_isolation_key.h" #include "net/cookies/site_for_cookies.h" #include "url/origin.h" namespace network::mojom { class IsolationInfoDataView; } // namespace network::mojom namespace mojo { template <typename DataViewType, typename T> struct StructTraits; } // namespace mojo namespace net { // Class to store information about network stack requests based on the context // in which they are made. It provides NetworkIsolationKeys, used to shard the // HTTP cache, NetworkAnonymizationKeys, used to shard other network state, and // SiteForCookies, used determine when to send same site cookies. The // IsolationInfo is typically the same for all subresource requests made in the // context of the same frame, but may be different for different frames within a // page. The IsolationInfo associated with requests for frames may change as // redirects are followed, and this class also contains the logic on how to do // that. // // TODO(crbug.com/40093296): The SiteForCookies logic in this class is currently // unused, but will eventually replace the logic in URLRequest/RedirectInfo for // tracking and updating that value. class NET_EXPORT IsolationInfo { … }; } // namespace net #endif // NET_BASE_ISOLATION_INFO_H_