blob: 985793bff200b82896982cf6386282399c64a253 [file] [log] [blame]
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "third_party/blink/renderer/modules/filesystem/file_system_base_handle.h"
#include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h"
#include "third_party/blink/renderer/modules/filesystem/dom_file_system_base.h"
#include "third_party/blink/renderer/modules/filesystem/file_system_callbacks.h"
#include "third_party/blink/renderer/modules/filesystem/file_system_directory_handle.h"
namespace blink {
FileSystemBaseHandle::FileSystemBaseHandle(DOMFileSystemBase* file_system,
const String& full_path)
: EntryBase(file_system, full_path) {}
ScriptPromise FileSystemBaseHandle::getParent(ScriptState* script_state) {
auto* resolver = ScriptPromiseResolver::Create(script_state);
ScriptPromise result = resolver->Promise();
filesystem()->GetParent(
this,
MakeGarbageCollected<EntryCallbacks::OnDidGetEntryPromiseImpl>(resolver),
MakeGarbageCollected<PromiseErrorCallback>(resolver));
return result;
}
ScriptPromise FileSystemBaseHandle::moveTo(ScriptState* script_state,
FileSystemDirectoryHandle* parent,
const String& name) {
auto* resolver = ScriptPromiseResolver::Create(script_state);
ScriptPromise result = resolver->Promise();
filesystem()->Move(
this, parent, name,
MakeGarbageCollected<EntryCallbacks::OnDidGetEntryPromiseImpl>(resolver),
MakeGarbageCollected<PromiseErrorCallback>(resolver));
return result;
}
ScriptPromise FileSystemBaseHandle::copyTo(ScriptState* script_state,
FileSystemDirectoryHandle* parent,
const String& name) {
auto* resolver = ScriptPromiseResolver::Create(script_state);
ScriptPromise result = resolver->Promise();
filesystem()->Copy(
this, parent, name,
MakeGarbageCollected<EntryCallbacks::OnDidGetEntryPromiseImpl>(resolver),
MakeGarbageCollected<PromiseErrorCallback>(resolver));
return result;
}
ScriptPromise FileSystemBaseHandle::remove(ScriptState* script_state) {
auto* resolver = ScriptPromiseResolver::Create(script_state);
ScriptPromise result = resolver->Promise();
filesystem()->Remove(
this,
MakeGarbageCollected<VoidCallbacks::OnDidSucceedPromiseImpl>(resolver),
MakeGarbageCollected<PromiseErrorCallback>(resolver));
return result;
}
} // namespace blink