#ifndef SERVICES_NETWORK_URL_LOADER_CONTEXT_H_
#define SERVICES_NETWORK_URL_LOADER_CONTEXT_H_
#include "base/component_export.h"
#include "base/memory/scoped_refptr.h"
#include "services/network/public/cpp/corb/corb_api.h"
namespace net {
class URLRequestContext;
}
namespace network {
class ResourceSchedulerClient;
namespace cors {
class OriginAccessList;
}
namespace mojom {
class CookieAccessObserver;
class CrossOriginEmbedderPolicyReporter;
class DevToolsObserver;
class NetworkContextClient;
class TrustedURLLoaderHeaderClient;
class TrustTokenAccessObserver;
class URLLoaderFactoryParams;
class URLLoaderNetworkServiceObserver;
}
class COMPONENT_EXPORT(NETWORK_SERVICE) URLLoaderContext {
public:
virtual bool ShouldRequireNetworkIsolationKey() const = 0;
virtual const cors::OriginAccessList& GetOriginAccessList() const = 0;
virtual const mojom::URLLoaderFactoryParams& GetFactoryParams() const = 0;
virtual mojom::CookieAccessObserver* GetCookieAccessObserver() const = 0;
virtual mojom::TrustTokenAccessObserver* GetTrustTokenAccessObserver()
const = 0;
virtual mojom::CrossOriginEmbedderPolicyReporter* GetCoepReporter() const = 0;
virtual mojom::DevToolsObserver* GetDevToolsObserver() const = 0;
virtual mojom::NetworkContextClient* GetNetworkContextClient() const = 0;
virtual mojom::TrustedURLLoaderHeaderClient* GetUrlLoaderHeaderClient()
const = 0;
virtual mojom::URLLoaderNetworkServiceObserver*
GetURLLoaderNetworkServiceObserver() const = 0;
virtual net::URLRequestContext* GetUrlRequestContext() const = 0;
virtual scoped_refptr<ResourceSchedulerClient> GetResourceSchedulerClient()
const = 0;
virtual corb::PerFactoryState& GetMutableCorbState() = 0;
virtual bool DataUseUpdatesEnabled() = 0;
protected:
virtual ~URLLoaderContext() {}
};
}
#endif