#include "content/browser/interest_group/auction_url_loader_factory_proxy.h"
#include <stdint.h>
#include <memory>
#include <optional>
#include <utility>
#include "base/check.h"
#include "base/debug/crash_logging.h"
#include "base/functional/callback.h"
#include "base/memory/ref_counted.h"
#include "base/strings/escape.h"
#include "base/strings/string_util.h"
#include "base/strings/stringprintf.h"
#include "content/browser/devtools/devtools_instrumentation.h"
#include "content/browser/devtools/network_service_devtools_observer.h"
#include "content/browser/interest_group/subresource_url_authorizations.h"
#include "content/browser/interest_group/subresource_url_builder.h"
#include "content/browser/renderer_host/frame_tree_node.h"
#include "content/public/browser/global_request_id.h"
#include "content/services/auction_worklet/public/mojom/auction_network_events_handler.mojom.h"
#include "mojo/public/cpp/bindings/message.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/receiver.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "net/base/isolation_info.h"
#include "net/base/load_flags.h"
#include "net/base/network_anonymization_key.h"
#include "net/cookies/site_for_cookies.h"
#include "net/http/http_request_headers.h"
#include "net/traffic_annotation/network_traffic_annotation.h"
#include "services/network/public/cpp/resource_request.h"
#include "services/network/public/mojom/cookie_manager.mojom-shared.h"
#include "services/network/public/mojom/url_loader_factory.mojom.h"
#include "third_party/blink/public/common/features.h"
#include "third_party/blink/public/mojom/interest_group/interest_group_types.mojom.h"
#include "url/gurl.h"
#include "url/origin.h"
namespace content {
namespace {
net::IsolationInfo CreateBidderIsolationInfo(const url::Origin& bidder_origin) { … }
}
AuctionURLLoaderFactoryProxy::AuctionURLLoaderFactoryProxy(
mojo::PendingReceiver<network::mojom::URLLoaderFactory> pending_receiver,
GetUrlLoaderFactoryCallback get_frame_url_loader_factory,
GetUrlLoaderFactoryCallback get_trusted_url_loader_factory,
PreconnectSocketCallback preconnect_socket_callback,
GetCookieDeprecationLabelCallback get_cookie_deprecation_label,
GetDevtoolsAuctionIdsCallback get_devtools_auction_ids,
bool force_reload,
const url::Origin& top_frame_origin,
const url::Origin& frame_origin,
std::optional<int> renderer_process_id,
bool is_for_seller,
network::mojom::ClientSecurityStatePtr client_security_state,
const GURL& script_url,
const std::optional<GURL>& wasm_url,
const std::optional<GURL>& trusted_signals_base_url,
bool needs_cors_for_additional_bid,
int frame_tree_node_id)
: … { … }
AuctionURLLoaderFactoryProxy::~AuctionURLLoaderFactoryProxy() = default;
void AuctionURLLoaderFactoryProxy::CreateLoaderAndStart(
mojo::PendingReceiver<network::mojom::URLLoader> receiver,
int32_t request_id,
uint32_t options,
const network::ResourceRequest& url_request,
mojo::PendingRemote<network::mojom::URLLoaderClient> client,
const net::MutableNetworkTrafficAnnotationTag& traffic_annotation) { … }
void AuctionURLLoaderFactoryProxy::Clone(
mojo::PendingReceiver<network::mojom::URLLoaderFactory> receiver) { … }
AuctionNetworkEventsProxy::AuctionNetworkEventsProxy(
int owner_frame_tree_node_id)
: … { … }
AuctionNetworkEventsProxy::~AuctionNetworkEventsProxy() = default;
void AuctionNetworkEventsProxy::Clone(
mojo::PendingReceiver<auction_worklet::mojom::AuctionNetworkEventsHandler>
receiver) { … }
void AuctionNetworkEventsProxy::OnNetworkSendRequest(
const ::network::ResourceRequest& request,
::base::TimeTicks timestamp) { … }
void AuctionNetworkEventsProxy::OnNetworkResponseReceived(
const std::string& request_id,
const std::string& loader_id,
const ::GURL& request_url,
::network::mojom::URLResponseHeadPtr headers) { … }
void AuctionNetworkEventsProxy::OnNetworkRequestComplete(
const std::string& request_id,
const ::network::URLLoaderCompletionStatus& status) { … }
bool AuctionURLLoaderFactoryProxy::CouldBeTrustedSignalsUrl(
const GURL& url,
const std::string& accept_header) const { … }
mojo::PendingRemote<network::mojom::DevToolsObserver>
AuctionURLLoaderFactoryProxy::CreateDevtoolsObserver() { … }
}