#include "third_party/blink/renderer/platform/blob/blob_bytes_provider.h"
#include <utility>
#include "base/containers/span.h"
#include "base/memory/ptr_util.h"
#include "base/numerics/safe_conversions.h"
#include "base/task/thread_pool.h"
#include "mojo/public/cpp/bindings/self_owned_receiver.h"
#include "third_party/blink/public/platform/platform.h"
#include "third_party/blink/renderer/platform/scheduler/public/main_thread.h"
#include "third_party/blink/renderer/platform/scheduler/public/post_cross_thread_task.h"
#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
#include "third_party/blink/renderer/platform/wtf/cross_thread_copier_mojo.h"
#include "third_party/blink/renderer/platform/wtf/cross_thread_copier_std.h"
#include "third_party/blink/renderer/platform/wtf/cross_thread_functional.h"
#include "third_party/blink/renderer/platform/wtf/functional.h"
#include "third_party/blink/renderer/platform/wtf/wtf.h"
namespace blink {
namespace {
class BlobBytesStreamer { … };
}
constexpr size_t BlobBytesProvider::kMaxConsolidatedItemSizeInBytes;
BlobBytesProvider::BlobBytesProvider() { … }
BlobBytesProvider::~BlobBytesProvider() { … }
void BlobBytesProvider::AppendData(scoped_refptr<RawData> data) { … }
void BlobBytesProvider::AppendData(base::span<const char> data) { … }
void BlobBytesProvider::Bind(
std::unique_ptr<BlobBytesProvider> provider,
mojo::PendingReceiver<mojom::blink::BytesProvider> receiver) { … }
void BlobBytesProvider::RequestAsReply(RequestAsReplyCallback callback) { … }
void BlobBytesProvider::RequestAsStream(
mojo::ScopedDataPipeProducerHandle pipe) { … }
void BlobBytesProvider::RequestAsFile(uint64_t source_offset,
uint64_t source_size,
base::File file,
uint64_t file_offset,
RequestAsFileCallback callback) { … }
void BlobBytesProvider::IncreaseChildProcessRefCount() { … }
void BlobBytesProvider::DecreaseChildProcessRefCount() { … }
}