#include "storage/browser/test/test_file_system_backend.h"
#include <set>
#include <utility>
#include <vector>
#include "base/files/file.h"
#include "base/files/file_util.h"
#include "base/memory/weak_ptr.h"
#include "base/observer_list.h"
#include "base/task/sequenced_task_runner.h"
#include "components/file_access/scoped_file_access_delegate.h"
#include "storage/browser/file_system/copy_or_move_file_validator.h"
#include "storage/browser/file_system/file_observers.h"
#include "storage/browser/file_system/file_system_operation.h"
#include "storage/browser/file_system/file_system_operation_context.h"
#include "storage/browser/file_system/file_system_quota_util.h"
#include "storage/browser/file_system/local_file_util.h"
#include "storage/browser/file_system/native_file_util.h"
#include "storage/browser/file_system/quota/quota_reservation.h"
#include "storage/browser/file_system/sandbox_file_stream_reader.h"
#include "storage/browser/file_system/sandbox_file_stream_writer.h"
#include "storage/browser/quota/quota_manager.h"
#include "storage/common/file_system/file_system_util.h"
namespace blink {
class StorageKey;
}
namespace storage {
namespace {
class TestFileUtil : public LocalFileUtil { … };
}
class TestFileSystemBackend::QuotaUtil : public FileSystemQuotaUtil,
public FileUpdateObserver { … };
TestFileSystemBackend::TestFileSystemBackend(
base::SequencedTaskRunner* task_runner,
const base::FilePath& base_path)
: … { … }
TestFileSystemBackend::~TestFileSystemBackend() = default;
bool TestFileSystemBackend::CanHandleType(FileSystemType type) const { … }
void TestFileSystemBackend::Initialize(FileSystemContext* context) { … }
void TestFileSystemBackend::ResolveURL(const FileSystemURL& url,
OpenFileSystemMode mode,
ResolveURLCallback callback) { … }
AsyncFileUtil* TestFileSystemBackend::GetAsyncFileUtil(FileSystemType type) { … }
WatcherManager* TestFileSystemBackend::GetWatcherManager(FileSystemType type) { … }
CopyOrMoveFileValidatorFactory*
TestFileSystemBackend::GetCopyOrMoveFileValidatorFactory(
FileSystemType type,
base::File::Error* error_code) { … }
void TestFileSystemBackend::InitializeCopyOrMoveFileValidatorFactory(
std::unique_ptr<CopyOrMoveFileValidatorFactory> factory) { … }
std::unique_ptr<FileSystemOperation>
TestFileSystemBackend::CreateFileSystemOperation(
OperationType type,
const FileSystemURL& url,
FileSystemContext* context,
base::File::Error* error_code) const { … }
bool TestFileSystemBackend::SupportsStreaming(const FileSystemURL& url) const { … }
bool TestFileSystemBackend::HasInplaceCopyImplementation(
FileSystemType type) const { … }
std::unique_ptr<FileStreamReader> TestFileSystemBackend::CreateFileStreamReader(
const FileSystemURL& url,
int64_t offset,
int64_t max_bytes_to_read,
const base::Time& expected_modification_time,
FileSystemContext* context,
file_access::ScopedFileAccessDelegate::
RequestFilesAccessIOCallback ) const { … }
std::unique_ptr<FileStreamWriter> TestFileSystemBackend::CreateFileStreamWriter(
const FileSystemURL& url,
int64_t offset,
FileSystemContext* context) const { … }
FileSystemQuotaUtil* TestFileSystemBackend::GetQuotaUtil() { … }
const UpdateObserverList* TestFileSystemBackend::GetUpdateObservers(
FileSystemType type) const { … }
const ChangeObserverList* TestFileSystemBackend::GetChangeObservers(
FileSystemType type) const { … }
const AccessObserverList* TestFileSystemBackend::GetAccessObservers(
FileSystemType type) const { … }
void TestFileSystemBackend::AddFileChangeObserver(
FileChangeObserver* observer) { … }
}