blob: e752e1ab4edb181bdaa935159b15d4d47cf29c1f [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/clipboard/clipboard_file_reader.h"
#include <memory>
#include <utility>
#include "third_party/blink/renderer/core/fileapi/file_reader_loader.h"
#include "third_party/blink/renderer/modules/clipboard/clipboard_promise.h"
namespace blink {
ClipboardFileReader::ClipboardFileReader(
Blob* blob,
ClipboardPromise* promise,
scoped_refptr<base::SingleThreadTaskRunner> task_runner)
: loader_(std::make_unique<FileReaderLoader>(
FileReaderLoader::kReadAsArrayBuffer,
this,
std::move(task_runner))),
promise_(promise) {
loader_->Start(blob->GetBlobDataHandle());
}
ClipboardFileReader::~ClipboardFileReader() = default;
// FileReaderLoaderClient implementation.
void ClipboardFileReader::DidFinishLoading() {
DOMArrayBuffer* array_buffer = loader_->ArrayBufferResult();
promise_->OnLoadComplete(array_buffer);
}
void ClipboardFileReader::DidFail(FileErrorCode error_code) {
promise_->Reject();
}
} // namespace blink