#include "third_party/blink/renderer/modules/file_system_access/file_system_directory_handle.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "third_party/blink/public/mojom/file_system_access/file_system_access_cloud_identifier.mojom-blink.h"
#include "third_party/blink/public/mojom/file_system_access/file_system_access_directory_handle.mojom-blink.h"
#include "third_party/blink/public/mojom/file_system_access/file_system_access_error.mojom-blink.h"
#include "third_party/blink/public/platform/task_type.h"
#include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_file_system_get_directory_options.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_file_system_get_file_options.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_file_system_remove_options.h"
#include "third_party/blink/renderer/core/execution_context/execution_context.h"
#include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
#include "third_party/blink/renderer/modules/file_system_access/file_system_access_error.h"
#include "third_party/blink/renderer/modules/file_system_access/file_system_file_handle.h"
#include "third_party/blink/renderer/platform/bindings/exception_state.h"
#include "third_party/blink/renderer/platform/heap/collection_support/heap_deque.h"
#include "third_party/blink/renderer/platform/heap/self_keep_alive.h"
#include "third_party/blink/renderer/platform/mojo/heap_mojo_receiver.h"
#include "third_party/blink/renderer/platform/wtf/functional.h"
#include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
namespace blink {
class FileSystemDirectoryHandle::IterationSource final
: public PairAsyncIterable<FileSystemDirectoryHandle>::IterationSource,
public ExecutionContextClient,
public mojom::blink::FileSystemAccessDirectoryEntriesListener { … };
FileSystemAccessErrorPtr;
FileSystemDirectoryHandle::FileSystemDirectoryHandle(
ExecutionContext* context,
const String& name,
mojo::PendingRemote<mojom::blink::FileSystemAccessDirectoryHandle> mojo_ptr)
: … { … }
ScriptPromise<FileSystemFileHandle> FileSystemDirectoryHandle::getFileHandle(
ScriptState* script_state,
const String& name,
const FileSystemGetFileOptions* options,
ExceptionState& exception_state) { … }
ScriptPromise<FileSystemDirectoryHandle>
FileSystemDirectoryHandle::getDirectoryHandle(
ScriptState* script_state,
const String& name,
const FileSystemGetDirectoryOptions* options,
ExceptionState& exception_state) { … }
ScriptPromise<IDLUndefined> FileSystemDirectoryHandle::removeEntry(
ScriptState* script_state,
const String& name,
const FileSystemRemoveOptions* options,
ExceptionState& exception_state) { … }
ScriptPromise<IDLNullable<IDLSequence<IDLUSVString>>>
FileSystemDirectoryHandle::resolve(ScriptState* script_state,
FileSystemHandle* possible_child,
ExceptionState& exception_state) { … }
mojo::PendingRemote<mojom::blink::FileSystemAccessTransferToken>
FileSystemDirectoryHandle::Transfer() { … }
void FileSystemDirectoryHandle::Trace(Visitor* visitor) const { … }
void FileSystemDirectoryHandle::QueryPermissionImpl(
bool writable,
base::OnceCallback<void(mojom::blink::PermissionStatus)> callback) { … }
void FileSystemDirectoryHandle::RequestPermissionImpl(
bool writable,
base::OnceCallback<void(mojom::blink::FileSystemAccessErrorPtr,
mojom::blink::PermissionStatus)> callback) { … }
void FileSystemDirectoryHandle::MoveImpl(
mojo::PendingRemote<mojom::blink::FileSystemAccessTransferToken> dest,
const String& new_entry_name,
base::OnceCallback<void(mojom::blink::FileSystemAccessErrorPtr)> callback) { … }
void FileSystemDirectoryHandle::RemoveImpl(
const FileSystemRemoveOptions* options,
base::OnceCallback<void(mojom::blink::FileSystemAccessErrorPtr)> callback) { … }
void FileSystemDirectoryHandle::IsSameEntryImpl(
mojo::PendingRemote<mojom::blink::FileSystemAccessTransferToken> other,
base::OnceCallback<void(mojom::blink::FileSystemAccessErrorPtr, bool)>
callback) { … }
void FileSystemDirectoryHandle::GetUniqueIdImpl(
base::OnceCallback<void(mojom::blink::FileSystemAccessErrorPtr,
const WTF::String&)> callback) { … }
void FileSystemDirectoryHandle::GetCloudIdentifiersImpl(
base::OnceCallback<void(
mojom::blink::FileSystemAccessErrorPtr,
Vector<mojom::blink::FileSystemAccessCloudIdentifierPtr>)> callback) { … }
PairAsyncIterable<FileSystemDirectoryHandle>::IterationSource*
FileSystemDirectoryHandle::CreateIterationSource(
ScriptState* script_state,
PairAsyncIterable<FileSystemDirectoryHandle>::IterationSource::Kind kind,
ExceptionState& exception_state) { … }
}