chromium/content/browser/web_package/signed_exchange_inner_response_url_loader.cc

// Copyright 2024 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "content/browser/web_package/signed_exchange_inner_response_url_loader.h"

#include <stdint.h>

#include "base/check.h"
#include "base/functional/bind.h"
#include "base/functional/callback.h"
#include "base/notreached.h"
#include "content/browser/loader/cross_origin_read_blocking_checker.h"
#include "content/public/browser/browser_thread.h"
#include "mojo/public/cpp/system/data_pipe.h"
#include "net/base/net_errors.h"
#include "services/network/public/cpp/cors/cors.h"
#include "services/network/public/cpp/features.h"
#include "services/network/public/mojom/url_response_head.mojom.h"
#include "storage/browser/blob/blob_data_handle.h"
#include "storage/browser/blob/mojo_blob_reader.h"

namespace content {

namespace {

// A utility subclass of MojoBlobReader::Delegate that calls the passed callback
// in OnComplete().
class MojoBlobReaderDelegate : public storage::MojoBlobReader::Delegate {};

}  // namespace

SignedExchangeInnerResponseURLLoader::SignedExchangeInnerResponseURLLoader(
    const network::ResourceRequest& request,
    network::mojom::URLResponseHeadPtr inner_response,
    std::unique_ptr<const storage::BlobDataHandle> blob_data_handle,
    const network::URLLoaderCompletionStatus& completion_status,
    mojo::PendingRemote<network::mojom::URLLoaderClient> client,
    bool is_navigation_request,
    scoped_refptr<base::RefCountedData<network::orb::PerFactoryState>>
        orb_state)
    :{}

SignedExchangeInnerResponseURLLoader::~SignedExchangeInnerResponseURLLoader() =
    default;

// static
std::optional<std::string>
SignedExchangeInnerResponseURLLoader::GetHeaderString(
    const network::mojom::URLResponseHead& response,
    const std::string& header_name) {}

void SignedExchangeInnerResponseURLLoader::
    OnCrossOriginReadBlockingCheckComplete(
        CrossOriginReadBlockingChecker::Result result) {}

void SignedExchangeInnerResponseURLLoader::FollowRedirect(
    const std::vector<std::string>& removed_headers,
    const net::HttpRequestHeaders& modified_headers,
    const net::HttpRequestHeaders& modified_cors_exempt_headers,
    const std::optional<GURL>& new_url) {}

void SignedExchangeInnerResponseURLLoader::SetPriority(
    net::RequestPriority priority,
    int intra_priority_value) {}

void SignedExchangeInnerResponseURLLoader::PauseReadingBodyFromNet() {}

void SignedExchangeInnerResponseURLLoader::ResumeReadingBodyFromNet() {}

void SignedExchangeInnerResponseURLLoader::SendResponseBody() {}

void SignedExchangeInnerResponseURLLoader::BlobReaderComplete(
    net::Error result) {}

// static
void SignedExchangeInnerResponseURLLoader::CreateMojoBlobReader(
    base::WeakPtr<SignedExchangeInnerResponseURLLoader> loader,
    mojo::ScopedDataPipeProducerHandle pipe_producer_handle,
    std::unique_ptr<storage::BlobDataHandle> blob_data_handle) {}

// static
void SignedExchangeInnerResponseURLLoader::BlobReaderCompleteOnIO(
    base::WeakPtr<SignedExchangeInnerResponseURLLoader> loader,
    net::Error result) {}

// static
void SignedExchangeInnerResponseURLLoader::UpdateRequestResponseStartTime(
    network::mojom::URLResponseHead* response_head) {}

}  // namespace content