chromium/content/browser/cache_storage/cache_storage_cache_entry_handler.cc

// Copyright 2018 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/cache_storage/cache_storage_cache_entry_handler.h"

#include <optional>

#include "base/functional/callback_helpers.h"
#include "base/memory/raw_ptr.h"
#include "base/uuid.h"
#include "components/services/storage/public/mojom/blob_storage_context.mojom.h"
#include "content/browser/cache_storage/background_fetch_cache_entry_handler_impl.h"
#include "content/browser/cache_storage/cache_storage.h"
#include "content/browser/cache_storage/cache_storage_manager.h"
#include "content/public/browser/browser_thread.h"
#include "mojo/public/cpp/bindings/self_owned_receiver.h"
#include "net/filter/source_stream.h"
#include "services/network/public/cpp/source_stream_to_data_pipe.h"
#include "storage/browser/blob/blob_data_builder.h"
#include "storage/browser/blob/blob_impl.h"
#include "storage/browser/blob/blob_storage_context.h"
#include "third_party/blink/public/common/blob/blob_utils.h"

namespace content {

namespace {

// Adapter for a DiskCacheBlobEntry to be read as a net::SourceStream.
class DiskCacheStream : public net::SourceStream {};

// A |storage::mojom::BlobDataItemReader| implementation that
// wraps a |DiskCacheBlobEntry|.  In addition, each |EntryReaderImpl| maps the
// main and side data to particular disk_cache indices.
class EntryReaderImpl : public storage::mojom::BlobDataItemReader {};

}  // namespace

CacheStorageCacheEntryHandler::DiskCacheBlobEntry::DiskCacheBlobEntry(
    base::PassKey<CacheStorageCacheEntryHandler> key,
    base::WeakPtr<CacheStorageCacheEntryHandler> entry_handler,
    CacheStorageCacheHandle cache_handle,
    disk_cache::ScopedEntryPtr disk_cache_entry)
    :{}

int CacheStorageCacheEntryHandler::DiskCacheBlobEntry::Read(
    scoped_refptr<net::IOBuffer> dst_buffer,
    CacheStorageCache::EntryIndex disk_cache_index,
    uint64_t offset,
    int bytes_to_read,
    base::OnceCallback<void(int)> callback) {}

int CacheStorageCacheEntryHandler::DiskCacheBlobEntry::GetSize(
    CacheStorageCache::EntryIndex disk_cache_index) const {}

void CacheStorageCacheEntryHandler::DiskCacheBlobEntry::Invalidate() {}

disk_cache::ScopedEntryPtr&
CacheStorageCacheEntryHandler::DiskCacheBlobEntry::disk_cache_entry() {}

CacheStorageCacheEntryHandler::DiskCacheBlobEntry::~DiskCacheBlobEntry() {}

PutContext::PutContext(blink::mojom::FetchAPIRequestPtr request,
                       blink::mojom::FetchAPIResponsePtr response,
                       mojo::PendingRemote<blink::mojom::Blob> blob,
                       uint64_t blob_size,
                       mojo::PendingRemote<blink::mojom::Blob> side_data_blob,
                       uint64_t side_data_blob_size,
                       int64_t trace_id)
    :{}

PutContext::~PutContext() = default;

// Default implementation of CacheStorageCacheEntryHandler.
class CacheStorageCacheEntryHandlerImpl : public CacheStorageCacheEntryHandler {};

CacheStorageCacheEntryHandler::CacheStorageCacheEntryHandler(
    scoped_refptr<BlobStorageContextWrapper> blob_storage_context)
    :{}

scoped_refptr<CacheStorageCacheEntryHandler::DiskCacheBlobEntry>
CacheStorageCacheEntryHandler::CreateDiskCacheBlobEntry(
    CacheStorageCacheHandle cache_handle,
    disk_cache::ScopedEntryPtr disk_cache_entry) {}

CacheStorageCacheEntryHandler::~CacheStorageCacheEntryHandler() = default;

void CacheStorageCacheEntryHandler::InvalidateDiskCacheBlobEntrys() {}

void CacheStorageCacheEntryHandler::EraseDiskCacheBlobEntry(
    DiskCacheBlobEntry* blob_entry) {}

// static
std::unique_ptr<CacheStorageCacheEntryHandler>
CacheStorageCacheEntryHandler::CreateCacheEntryHandler(
    storage::mojom::CacheStorageOwner owner,
    scoped_refptr<BlobStorageContextWrapper> blob_storage_context) {}

blink::mojom::SerializedBlobPtr CacheStorageCacheEntryHandler::CreateBlob(
    scoped_refptr<DiskCacheBlobEntry> blob_entry,
    CacheStorageCache::EntryIndex disk_cache_index) {}

blink::mojom::SerializedBlobPtr
CacheStorageCacheEntryHandler::CreateBlobWithSideData(
    scoped_refptr<DiskCacheBlobEntry> blob_entry,
    CacheStorageCache::EntryIndex disk_cache_index,
    CacheStorageCache::EntryIndex side_data_disk_cache_index) {}

}  // namespace content