#include "content/browser/file_system_access/file_system_access_file_writer_impl.h"
#include "base/feature_list.h"
#include "base/functional/bind.h"
#include "base/logging.h"
#include "base/memory/weak_ptr.h"
#include "content/browser/file_system_access/file_system_access_error.h"
#include "content/browser/file_system_access/file_system_access_manager_impl.h"
#include "content/browser/file_system_access/file_system_access_safe_move_helper.h"
#include "storage/browser/file_system/file_system_context.h"
#include "storage/browser/file_system/file_system_operation.h"
#include "storage/browser/file_system/file_system_operation_runner.h"
#include "third_party/blink/public/common/features_generated.h"
FileSystemAccessStatus;
FileSystemOperation;
FileSystemOperationRunner;
namespace content {
struct FileSystemAccessFileWriterImpl::WriteState { … };
FileSystemAccessFileWriterImpl::FileSystemAccessFileWriterImpl(
FileSystemAccessManagerImpl* manager,
base::PassKey<FileSystemAccessManagerImpl> pass_key,
const BindingContext& context,
const storage::FileSystemURL& url,
const storage::FileSystemURL& swap_url,
scoped_refptr<FileSystemAccessLockManager::LockHandle> lock,
scoped_refptr<FileSystemAccessLockManager::LockHandle> swap_lock,
const SharedHandleState& handle_state,
mojo::PendingReceiver<blink::mojom::FileSystemAccessFileWriter> receiver,
bool has_transient_user_activation,
bool auto_close,
download::QuarantineConnectionCallback quarantine_connection_callback)
: … { … }
FileSystemAccessFileWriterImpl::~FileSystemAccessFileWriterImpl() { … }
void FileSystemAccessFileWriterImpl::Write(
uint64_t offset,
mojo::ScopedDataPipeConsumerHandle stream,
WriteCallback callback) { … }
void FileSystemAccessFileWriterImpl::Truncate(uint64_t length,
TruncateCallback callback) { … }
void FileSystemAccessFileWriterImpl::Close(CloseCallback callback) { … }
void FileSystemAccessFileWriterImpl::Abort(AbortCallback callback) { … }
void FileSystemAccessFileWriterImpl::CallCloseCallbackAndDeleteThis(
blink::mojom::FileSystemAccessErrorPtr result) { … }
void FileSystemAccessFileWriterImpl::OnDisconnect() { … }
void FileSystemAccessFileWriterImpl::WriteImpl(
uint64_t offset,
mojo::ScopedDataPipeConsumerHandle stream,
WriteCallback callback) { … }
void FileSystemAccessFileWriterImpl::DidWrite(WriteState* state,
base::File::Error result,
int64_t bytes,
bool complete) { … }
void FileSystemAccessFileWriterImpl::TruncateImpl(uint64_t length,
TruncateCallback callback) { … }
void FileSystemAccessFileWriterImpl::CloseImpl(CloseCallback callback) { … }
void FileSystemAccessFileWriterImpl::AbortImpl(AbortCallback callback) { … }
void FileSystemAccessFileWriterImpl::DidReplaceSwapFile(
std::unique_ptr<FileSystemAccessSafeMoveHelper> ,
blink::mojom::FileSystemAccessErrorPtr result) { … }
base::WeakPtr<FileSystemAccessHandleBase>
FileSystemAccessFileWriterImpl::AsWeakPtr() { … }
}