#include "third_party/blink/renderer/modules/filesystem/dom_file_system_base.h"
#include <memory>
#include "third_party/blink/public/platform/platform.h"
#include "third_party/blink/public/platform/web_security_origin.h"
#include "third_party/blink/renderer/core/execution_context/execution_context.h"
#include "third_party/blink/renderer/core/fileapi/file.h"
#include "third_party/blink/renderer/core/fileapi/file_error.h"
#include "third_party/blink/renderer/modules/filesystem/directory_entry.h"
#include "third_party/blink/renderer/modules/filesystem/directory_reader_base.h"
#include "third_party/blink/renderer/modules/filesystem/dom_file_path.h"
#include "third_party/blink/renderer/modules/filesystem/entry.h"
#include "third_party/blink/renderer/modules/filesystem/entry_base.h"
#include "third_party/blink/renderer/modules/filesystem/file_system_callbacks.h"
#include "third_party/blink/renderer/modules/filesystem/file_system_dispatcher.h"
#include "third_party/blink/renderer/platform/weborigin/security_origin.h"
#include "third_party/blink/renderer/platform/wtf/text/string_builder.h"
#include "third_party/blink/renderer/platform/wtf/text/text_encoding.h"
namespace blink {
const char DOMFileSystemBase::kPersistentPathPrefix[] = …;
const char DOMFileSystemBase::kTemporaryPathPrefix[] = …;
const char DOMFileSystemBase::kIsolatedPathPrefix[] = …;
const char DOMFileSystemBase::kExternalPathPrefix[] = …;
DOMFileSystemBase::DOMFileSystemBase(ExecutionContext* context,
const String& name,
mojom::blink::FileSystemType type,
const KURL& root_url)
: … { … }
DOMFileSystemBase::~DOMFileSystemBase() = default;
void DOMFileSystemBase::Trace(Visitor* visitor) const { … }
const SecurityOrigin* DOMFileSystemBase::GetSecurityOrigin() const { … }
bool DOMFileSystemBase::IsValidType(mojom::blink::FileSystemType type) { … }
KURL DOMFileSystemBase::CreateFileSystemRootURL(
const String& origin,
mojom::blink::FileSystemType type) { … }
bool DOMFileSystemBase::SupportsToURL() const { … }
KURL DOMFileSystemBase::CreateFileSystemURL(const EntryBase* entry) const { … }
KURL DOMFileSystemBase::CreateFileSystemURL(const String& full_path) const { … }
bool DOMFileSystemBase::PathToAbsolutePath(mojom::blink::FileSystemType type,
const EntryBase* base,
String path,
String& absolute_path) { … }
bool DOMFileSystemBase::PathPrefixToFileSystemType(
const String& path_prefix,
mojom::blink::FileSystemType& type) { … }
File* DOMFileSystemBase::CreateFile(ExecutionContext* context,
const FileMetadata& metadata,
const KURL& file_system_url,
mojom::blink::FileSystemType type,
const String name) { … }
void DOMFileSystemBase::GetMetadata(
const EntryBase* entry,
MetadataCallbacks::SuccessCallback success_callback,
MetadataCallbacks::ErrorCallback error_callback,
SynchronousType synchronous_type) { … }
static bool VerifyAndGetDestinationPathForCopyOrMove(const EntryBase* source,
EntryBase* parent,
const String& new_name,
String& destination_path) { … }
void DOMFileSystemBase::Move(const EntryBase* source,
EntryBase* parent,
const String& new_name,
EntryCallbacks::SuccessCallback success_callback,
EntryCallbacks::ErrorCallback error_callback,
SynchronousType synchronous_type) { … }
void DOMFileSystemBase::Copy(const EntryBase* source,
EntryBase* parent,
const String& new_name,
EntryCallbacks::SuccessCallback success_callback,
EntryCallbacks::ErrorCallback error_callback,
SynchronousType synchronous_type) { … }
void DOMFileSystemBase::Remove(const EntryBase* entry,
VoidCallbacks::SuccessCallback success_callback,
ErrorCallback error_callback,
SynchronousType synchronous_type) { … }
void DOMFileSystemBase::RemoveRecursively(
const EntryBase* entry,
VoidCallbacks::SuccessCallback success_callback,
ErrorCallback error_callback,
SynchronousType synchronous_type) { … }
void DOMFileSystemBase::GetParent(
const EntryBase* entry,
EntryCallbacks::SuccessCallback success_callback,
EntryCallbacks::ErrorCallback error_callback) { … }
void DOMFileSystemBase::GetFile(
const EntryBase* entry,
const String& path,
const FileSystemFlags* flags,
EntryCallbacks::SuccessCallback success_callback,
EntryCallbacks::ErrorCallback error_callback,
SynchronousType synchronous_type) { … }
void DOMFileSystemBase::GetDirectory(
const EntryBase* entry,
const String& path,
const FileSystemFlags* flags,
EntryCallbacks::SuccessCallback success_callback,
EntryCallbacks::ErrorCallback error_callback,
SynchronousType synchronous_type) { … }
void DOMFileSystemBase::ReadDirectory(
DirectoryReaderBase* reader,
const String& path,
const EntriesCallbacks::SuccessCallback& success_callback,
EntriesCallbacks::ErrorCallback error_callback,
SynchronousType synchronous_type) { … }
}