summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/modules/filesystem
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/blink/renderer/modules/filesystem')
-rw-r--r--chromium/third_party/blink/renderer/modules/filesystem/directory_entry.cc4
-rw-r--r--chromium/third_party/blink/renderer/modules/filesystem/directory_entry.h12
-rw-r--r--chromium/third_party/blink/renderer/modules/filesystem/directory_entry_sync.cc4
-rw-r--r--chromium/third_party/blink/renderer/modules/filesystem/directory_entry_sync.h12
-rw-r--r--chromium/third_party/blink/renderer/modules/filesystem/directory_reader.cc17
-rw-r--r--chromium/third_party/blink/renderer/modules/filesystem/directory_reader.h5
-rw-r--r--chromium/third_party/blink/renderer/modules/filesystem/directory_reader_sync.cc16
-rw-r--r--chromium/third_party/blink/renderer/modules/filesystem/directory_reader_sync.h5
-rw-r--r--chromium/third_party/blink/renderer/modules/filesystem/dom_file_system.cc2
-rw-r--r--chromium/third_party/blink/renderer/modules/filesystem/dom_file_system.h10
-rw-r--r--chromium/third_party/blink/renderer/modules/filesystem/dom_file_system_base.cc16
-rw-r--r--chromium/third_party/blink/renderer/modules/filesystem/dom_file_system_base.h4
-rw-r--r--chromium/third_party/blink/renderer/modules/filesystem/dom_file_system_sync.cc7
-rw-r--r--chromium/third_party/blink/renderer/modules/filesystem/dom_file_system_sync.h11
-rw-r--r--chromium/third_party/blink/renderer/modules/filesystem/dom_window_file_system.cc43
-rw-r--r--chromium/third_party/blink/renderer/modules/filesystem/dom_window_file_system.h2
-rw-r--r--chromium/third_party/blink/renderer/modules/filesystem/dragged_isolated_file_system_impl.cc2
-rw-r--r--chromium/third_party/blink/renderer/modules/filesystem/dragged_isolated_file_system_impl.h4
-rw-r--r--chromium/third_party/blink/renderer/modules/filesystem/entry.h5
-rw-r--r--chromium/third_party/blink/renderer/modules/filesystem/entry_base.cc5
-rw-r--r--chromium/third_party/blink/renderer/modules/filesystem/file_entry.h7
-rw-r--r--chromium/third_party/blink/renderer/modules/filesystem/file_entry_sync.h7
-rw-r--r--chromium/third_party/blink/renderer/modules/filesystem/file_system_base_handle.cc21
-rw-r--r--chromium/third_party/blink/renderer/modules/filesystem/file_system_callbacks.cc11
-rw-r--r--chromium/third_party/blink/renderer/modules/filesystem/file_system_callbacks.h66
-rw-r--r--chromium/third_party/blink/renderer/modules/filesystem/file_system_directory_handle.cc30
-rw-r--r--chromium/third_party/blink/renderer/modules/filesystem/file_system_directory_handle.h6
-rw-r--r--chromium/third_party/blink/renderer/modules/filesystem/file_system_directory_iterator.cc19
-rw-r--r--chromium/third_party/blink/renderer/modules/filesystem/file_system_file_handle.cc19
-rw-r--r--chromium/third_party/blink/renderer/modules/filesystem/file_system_writer.cc31
-rw-r--r--chromium/third_party/blink/renderer/modules/filesystem/file_system_writer.h3
-rw-r--r--chromium/third_party/blink/renderer/modules/filesystem/file_writer.cc42
-rw-r--r--chromium/third_party/blink/renderer/modules/filesystem/file_writer.h21
-rw-r--r--chromium/third_party/blink/renderer/modules/filesystem/file_writer_sync.cc7
-rw-r--r--chromium/third_party/blink/renderer/modules/filesystem/file_writer_sync.h5
-rw-r--r--chromium/third_party/blink/renderer/modules/filesystem/local_file_system.cc10
-rw-r--r--chromium/third_party/blink/renderer/modules/filesystem/local_file_system_client.cc14
-rw-r--r--chromium/third_party/blink/renderer/modules/filesystem/metadata.h10
-rw-r--r--chromium/third_party/blink/renderer/modules/filesystem/sync_callback_helper.h17
-rw-r--r--chromium/third_party/blink/renderer/modules/filesystem/worker_global_scope_file_system.cc4
40 files changed, 289 insertions, 247 deletions
diff --git a/chromium/third_party/blink/renderer/modules/filesystem/directory_entry.cc b/chromium/third_party/blink/renderer/modules/filesystem/directory_entry.cc
index 67f5133bf60..c110604a034 100644
--- a/chromium/third_party/blink/renderer/modules/filesystem/directory_entry.cc
+++ b/chromium/third_party/blink/renderer/modules/filesystem/directory_entry.cc
@@ -46,7 +46,7 @@ DirectoryReader* DirectoryEntry::createReader() {
}
void DirectoryEntry::getFile(const String& path,
- const FileSystemFlags& options,
+ const FileSystemFlags* options,
V8EntryCallback* success_callback,
V8ErrorCallback* error_callback) {
file_system_->GetFile(
@@ -56,7 +56,7 @@ void DirectoryEntry::getFile(const String& path,
}
void DirectoryEntry::getDirectory(const String& path,
- const FileSystemFlags& options,
+ const FileSystemFlags* options,
V8EntryCallback* success_callback,
V8ErrorCallback* error_callback) {
file_system_->GetDirectory(
diff --git a/chromium/third_party/blink/renderer/modules/filesystem/directory_entry.h b/chromium/third_party/blink/renderer/modules/filesystem/directory_entry.h
index 431a92e772f..147f9dc50e7 100644
--- a/chromium/third_party/blink/renderer/modules/filesystem/directory_entry.h
+++ b/chromium/third_party/blink/renderer/modules/filesystem/directory_entry.h
@@ -51,26 +51,26 @@ class MODULES_EXPORT DirectoryEntry final : public Entry {
public:
static DirectoryEntry* Create(DOMFileSystemBase* file_system,
const String& full_path) {
- return new DirectoryEntry(file_system, full_path);
+ return MakeGarbageCollected<DirectoryEntry>(file_system, full_path);
}
+
+ DirectoryEntry(DOMFileSystemBase*, const String& full_path);
+
bool isDirectory() const override { return true; }
DirectoryReader* createReader();
void getFile(const String& path,
- const FileSystemFlags&,
+ const FileSystemFlags*,
V8EntryCallback* = nullptr,
V8ErrorCallback* = nullptr);
void getDirectory(const String& path,
- const FileSystemFlags&,
+ const FileSystemFlags*,
V8EntryCallback* = nullptr,
V8ErrorCallback* = nullptr);
void removeRecursively(V8VoidCallback* success_callback = nullptr,
V8ErrorCallback* = nullptr) const;
void Trace(blink::Visitor*) override;
-
- private:
- DirectoryEntry(DOMFileSystemBase*, const String& full_path);
};
DEFINE_TYPE_CASTS(DirectoryEntry,
diff --git a/chromium/third_party/blink/renderer/modules/filesystem/directory_entry_sync.cc b/chromium/third_party/blink/renderer/modules/filesystem/directory_entry_sync.cc
index 1c59373eca3..ccafe8a06a6 100644
--- a/chromium/third_party/blink/renderer/modules/filesystem/directory_entry_sync.cc
+++ b/chromium/third_party/blink/renderer/modules/filesystem/directory_entry_sync.cc
@@ -48,7 +48,7 @@ DirectoryReaderSync* DirectoryEntrySync::createReader() {
}
FileEntrySync* DirectoryEntrySync::getFile(const String& path,
- const FileSystemFlags& options,
+ const FileSystemFlags* options,
ExceptionState& exception_state) {
EntryCallbacksSyncHelper* sync_helper = EntryCallbacksSyncHelper::Create();
file_system_->GetFile(this, path, options, sync_helper->GetSuccessCallback(),
@@ -60,7 +60,7 @@ FileEntrySync* DirectoryEntrySync::getFile(const String& path,
DirectoryEntrySync* DirectoryEntrySync::getDirectory(
const String& path,
- const FileSystemFlags& options,
+ const FileSystemFlags* options,
ExceptionState& exception_state) {
EntryCallbacksSyncHelper* sync_helper = EntryCallbacksSyncHelper::Create();
file_system_->GetDirectory(
diff --git a/chromium/third_party/blink/renderer/modules/filesystem/directory_entry_sync.h b/chromium/third_party/blink/renderer/modules/filesystem/directory_entry_sync.h
index 279ac7a9668..2be21443358 100644
--- a/chromium/third_party/blink/renderer/modules/filesystem/directory_entry_sync.h
+++ b/chromium/third_party/blink/renderer/modules/filesystem/directory_entry_sync.h
@@ -47,23 +47,23 @@ class DirectoryEntrySync final : public EntrySync {
public:
static DirectoryEntrySync* Create(DOMFileSystemBase* file_system,
const String& full_path) {
- return new DirectoryEntrySync(file_system, full_path);
+ return MakeGarbageCollected<DirectoryEntrySync>(file_system, full_path);
}
+
+ DirectoryEntrySync(DOMFileSystemBase*, const String& full_path);
+
bool isDirectory() const override { return true; }
DirectoryReaderSync* createReader();
FileEntrySync* getFile(const String& path,
- const FileSystemFlags&,
+ const FileSystemFlags*,
ExceptionState&);
DirectoryEntrySync* getDirectory(const String& path,
- const FileSystemFlags&,
+ const FileSystemFlags*,
ExceptionState&);
void removeRecursively(ExceptionState&);
void Trace(blink::Visitor*) override;
-
- private:
- DirectoryEntrySync(DOMFileSystemBase*, const String& full_path);
};
DEFINE_TYPE_CASTS(DirectoryEntrySync,
diff --git a/chromium/third_party/blink/renderer/modules/filesystem/directory_reader.cc b/chromium/third_party/blink/renderer/modules/filesystem/directory_reader.cc
index e234149591b..9c02bf90eda 100644
--- a/chromium/third_party/blink/renderer/modules/filesystem/directory_reader.cc
+++ b/chromium/third_party/blink/renderer/modules/filesystem/directory_reader.cc
@@ -51,9 +51,11 @@ class DirectoryReader::EntriesCallbackHelper final
: public EntriesCallbacks::OnDidGetEntriesCallback {
public:
static EntriesCallbackHelper* Create(DirectoryReader* reader) {
- return new EntriesCallbackHelper(reader);
+ return MakeGarbageCollected<EntriesCallbackHelper>(reader);
}
+ explicit EntriesCallbackHelper(DirectoryReader* reader) : reader_(reader) {}
+
void Trace(blink::Visitor* visitor) override {
visitor->Trace(reader_);
EntriesCallbacks::OnDidGetEntriesCallback::Trace(visitor);
@@ -64,8 +66,6 @@ class DirectoryReader::EntriesCallbackHelper final
}
private:
- explicit EntriesCallbackHelper(DirectoryReader* reader) : reader_(reader) {}
-
// FIXME: This Member keeps the reader alive until all of the readDirectory
// results are received. crbug.com/350285
Member<DirectoryReader> reader_;
@@ -74,9 +74,11 @@ class DirectoryReader::EntriesCallbackHelper final
class DirectoryReader::ErrorCallbackHelper final : public ErrorCallbackBase {
public:
static ErrorCallbackHelper* Create(DirectoryReader* reader) {
- return new ErrorCallbackHelper(reader);
+ return MakeGarbageCollected<ErrorCallbackHelper>(reader);
}
+ explicit ErrorCallbackHelper(DirectoryReader* reader) : reader_(reader) {}
+
void Invoke(base::File::Error error) override { reader_->OnError(error); }
void Trace(blink::Visitor* visitor) override {
@@ -85,8 +87,6 @@ class DirectoryReader::ErrorCallbackHelper final : public ErrorCallbackBase {
}
private:
- explicit ErrorCallbackHelper(DirectoryReader* reader) : reader_(reader) {}
-
Member<DirectoryReader> reader_;
};
@@ -118,7 +118,8 @@ void DirectoryReader::readEntries(V8EntriesCallback* entries_callback,
}
if (!has_more_entries_ || !entries_.IsEmpty()) {
- EntryHeapVector* entries = new EntryHeapVector(std::move(entries_));
+ EntryHeapVector* entries =
+ MakeGarbageCollected<EntryHeapVector>(std::move(entries_));
DOMFileSystem::ScheduleCallback(
Filesystem()->GetExecutionContext(),
WTF::Bind(
@@ -147,7 +148,7 @@ void DirectoryReader::OnError(base::File::Error error) {
entries_callback_ = nullptr;
if (auto* error_callback = error_callback_.Release()) {
error_callback->InvokeAndReportException(
- nullptr, FileError::CreateDOMException(error_));
+ nullptr, file_error::CreateDOMException(error_));
}
}
diff --git a/chromium/third_party/blink/renderer/modules/filesystem/directory_reader.h b/chromium/third_party/blink/renderer/modules/filesystem/directory_reader.h
index aa741253d1d..6668cd08c52 100644
--- a/chromium/third_party/blink/renderer/modules/filesystem/directory_reader.h
+++ b/chromium/third_party/blink/renderer/modules/filesystem/directory_reader.h
@@ -46,9 +46,10 @@ class DirectoryReader : public DirectoryReaderBase {
public:
static DirectoryReader* Create(DOMFileSystemBase* file_system,
const String& full_path) {
- return new DirectoryReader(file_system, full_path);
+ return MakeGarbageCollected<DirectoryReader>(file_system, full_path);
}
+ DirectoryReader(DOMFileSystemBase*, const String& full_path);
~DirectoryReader() override = default;
void readEntries(V8EntriesCallback*, V8ErrorCallback* = nullptr);
@@ -63,8 +64,6 @@ class DirectoryReader : public DirectoryReaderBase {
class EntriesCallbackHelper;
class ErrorCallbackHelper;
- DirectoryReader(DOMFileSystemBase*, const String& full_path);
-
void AddEntries(const EntryHeapVector& entries);
void OnError(base::File::Error error);
diff --git a/chromium/third_party/blink/renderer/modules/filesystem/directory_reader_sync.cc b/chromium/third_party/blink/renderer/modules/filesystem/directory_reader_sync.cc
index 1e7d48d50cb..e6b6c9e8099 100644
--- a/chromium/third_party/blink/renderer/modules/filesystem/directory_reader_sync.cc
+++ b/chromium/third_party/blink/renderer/modules/filesystem/directory_reader_sync.cc
@@ -43,9 +43,12 @@ class DirectoryReaderSync::EntriesCallbackHelper final
: public EntriesCallbacks::OnDidGetEntriesCallback {
public:
static EntriesCallbackHelper* Create(DirectoryReaderSync* reader) {
- return new EntriesCallbackHelper(reader);
+ return MakeGarbageCollected<EntriesCallbackHelper>(reader);
}
+ explicit EntriesCallbackHelper(DirectoryReaderSync* reader)
+ : reader_(reader) {}
+
void Trace(blink::Visitor* visitor) override {
visitor->Trace(reader_);
EntriesCallbacks::OnDidGetEntriesCallback::Trace(visitor);
@@ -60,9 +63,6 @@ class DirectoryReaderSync::EntriesCallbackHelper final
}
private:
- explicit EntriesCallbackHelper(DirectoryReaderSync* reader)
- : reader_(reader) {}
-
Member<DirectoryReaderSync> reader_;
};
@@ -70,9 +70,11 @@ class DirectoryReaderSync::ErrorCallbackHelper final
: public ErrorCallbackBase {
public:
static ErrorCallbackHelper* Create(DirectoryReaderSync* reader) {
- return new ErrorCallbackHelper(reader);
+ return MakeGarbageCollected<ErrorCallbackHelper>(reader);
}
+ explicit ErrorCallbackHelper(DirectoryReaderSync* reader) : reader_(reader) {}
+
void Trace(blink::Visitor* visitor) override {
visitor->Trace(reader_);
ErrorCallbackBase::Trace(visitor);
@@ -83,8 +85,6 @@ class DirectoryReaderSync::ErrorCallbackHelper final
}
private:
- explicit ErrorCallbackHelper(DirectoryReaderSync* reader) : reader_(reader) {}
-
Member<DirectoryReaderSync> reader_;
};
@@ -104,7 +104,7 @@ EntrySyncHeapVector DirectoryReaderSync::readEntries(
DCHECK(!has_more_entries_);
if (error_code_ != base::File::FILE_OK) {
- FileError::ThrowDOMException(exception_state, error_code_);
+ file_error::ThrowDOMException(exception_state, error_code_);
return EntrySyncHeapVector();
}
diff --git a/chromium/third_party/blink/renderer/modules/filesystem/directory_reader_sync.h b/chromium/third_party/blink/renderer/modules/filesystem/directory_reader_sync.h
index 92b1bedab3f..fa23b1f4f0a 100644
--- a/chromium/third_party/blink/renderer/modules/filesystem/directory_reader_sync.h
+++ b/chromium/third_party/blink/renderer/modules/filesystem/directory_reader_sync.h
@@ -49,9 +49,10 @@ class DirectoryReaderSync : public DirectoryReaderBase {
public:
static DirectoryReaderSync* Create(DOMFileSystemBase* file_system,
const String& full_path) {
- return new DirectoryReaderSync(file_system, full_path);
+ return MakeGarbageCollected<DirectoryReaderSync>(file_system, full_path);
}
+ DirectoryReaderSync(DOMFileSystemBase*, const String& full_path);
~DirectoryReaderSync() override = default;
EntrySyncHeapVector readEntries(ExceptionState&);
@@ -62,8 +63,6 @@ class DirectoryReaderSync : public DirectoryReaderBase {
class EntriesCallbackHelper;
class ErrorCallbackHelper;
- DirectoryReaderSync(DOMFileSystemBase*, const String& full_path);
-
bool has_called_read_directory_ = false;
EntrySyncHeapVector entries_;
base::File::Error error_code_ = base::File::FILE_OK;
diff --git a/chromium/third_party/blink/renderer/modules/filesystem/dom_file_system.cc b/chromium/third_party/blink/renderer/modules/filesystem/dom_file_system.cc
index 9d079872924..edc4917e7a5 100644
--- a/chromium/third_party/blink/renderer/modules/filesystem/dom_file_system.cc
+++ b/chromium/third_party/blink/renderer/modules/filesystem/dom_file_system.cc
@@ -66,7 +66,7 @@ DOMFileSystem* DOMFileSystem::Create(ExecutionContext* context,
const String& name,
mojom::blink::FileSystemType type,
const KURL& root_url) {
- return new DOMFileSystem(context, name, type, root_url);
+ return MakeGarbageCollected<DOMFileSystem>(context, name, type, root_url);
}
DOMFileSystem* DOMFileSystem::CreateIsolatedFileSystem(
diff --git a/chromium/third_party/blink/renderer/modules/filesystem/dom_file_system.h b/chromium/third_party/blink/renderer/modules/filesystem/dom_file_system.h
index 465c3f5776e..e41488c1c12 100644
--- a/chromium/third_party/blink/renderer/modules/filesystem/dom_file_system.h
+++ b/chromium/third_party/blink/renderer/modules/filesystem/dom_file_system.h
@@ -62,6 +62,11 @@ class MODULES_EXPORT DOMFileSystem final
static DOMFileSystem* CreateIsolatedFileSystem(ExecutionContext*,
const String& filesystem_id);
+ DOMFileSystem(ExecutionContext*,
+ const String& name,
+ mojom::blink::FileSystemType,
+ const KURL& root_url);
+
DirectoryEntry* root() const;
// DOMFileSystemBase overrides.
@@ -91,11 +96,6 @@ class MODULES_EXPORT DOMFileSystem final
void Trace(blink::Visitor*) override;
private:
- DOMFileSystem(ExecutionContext*,
- const String& name,
- mojom::blink::FileSystemType,
- const KURL& root_url);
-
static String TaskNameForInstrumentation() { return "FileSystem"; }
int number_of_pending_callbacks_;
diff --git a/chromium/third_party/blink/renderer/modules/filesystem/dom_file_system_base.cc b/chromium/third_party/blink/renderer/modules/filesystem/dom_file_system_base.cc
index 98e1a6566c8..351e387d486 100644
--- a/chromium/third_party/blink/renderer/modules/filesystem/dom_file_system_base.cc
+++ b/chromium/third_party/blink/renderer/modules/filesystem/dom_file_system_base.cc
@@ -375,7 +375,7 @@ void DOMFileSystemBase::GetParent(
void DOMFileSystemBase::GetFile(
const EntryBase* entry,
const String& path,
- const FileSystemFlags& flags,
+ const FileSystemFlags* flags,
EntryCallbacks::OnDidGetEntryCallback* success_callback,
ErrorCallbackBase* error_callback,
SynchronousType synchronous_type) {
@@ -390,11 +390,11 @@ void DOMFileSystemBase::GetFile(
const KURL& url = CreateFileSystemURL(absolute_path);
FileSystemDispatcher& dispatcher = FileSystemDispatcher::From(context_);
- if (flags.createFlag()) {
+ if (flags->createFlag()) {
if (synchronous_type == kSynchronous)
- dispatcher.CreateFileSync(url, flags.exclusive(), std::move(callbacks));
+ dispatcher.CreateFileSync(url, flags->exclusive(), std::move(callbacks));
else
- dispatcher.CreateFile(url, flags.exclusive(), std::move(callbacks));
+ dispatcher.CreateFile(url, flags->exclusive(), std::move(callbacks));
} else {
if (synchronous_type == kSynchronous) {
dispatcher.ExistsSync(url, /*is_directory=*/false, std::move(callbacks));
@@ -407,7 +407,7 @@ void DOMFileSystemBase::GetFile(
void DOMFileSystemBase::GetDirectory(
const EntryBase* entry,
const String& path,
- const FileSystemFlags& flags,
+ const FileSystemFlags* flags,
EntryCallbacks::OnDidGetEntryCallback* success_callback,
ErrorCallbackBase* error_callback,
SynchronousType synchronous_type) {
@@ -422,12 +422,12 @@ void DOMFileSystemBase::GetDirectory(
const KURL& url = CreateFileSystemURL(absolute_path);
FileSystemDispatcher& dispatcher = FileSystemDispatcher::From(context_);
- if (flags.createFlag()) {
+ if (flags->createFlag()) {
if (synchronous_type == kSynchronous) {
- dispatcher.CreateDirectorySync(url, flags.exclusive(),
+ dispatcher.CreateDirectorySync(url, flags->exclusive(),
/*recursive=*/false, std::move(callbacks));
} else {
- dispatcher.CreateDirectory(url, flags.exclusive(), /*recursive=*/false,
+ dispatcher.CreateDirectory(url, flags->exclusive(), /*recursive=*/false,
std::move(callbacks));
}
} else {
diff --git a/chromium/third_party/blink/renderer/modules/filesystem/dom_file_system_base.h b/chromium/third_party/blink/renderer/modules/filesystem/dom_file_system_base.h
index 83452e2aa1b..4e19500fd7b 100644
--- a/chromium/third_party/blink/renderer/modules/filesystem/dom_file_system_base.h
+++ b/chromium/third_party/blink/renderer/modules/filesystem/dom_file_system_base.h
@@ -135,13 +135,13 @@ class MODULES_EXPORT DOMFileSystemBase : public ScriptWrappable {
ErrorCallbackBase*);
void GetFile(const EntryBase*,
const String& path,
- const FileSystemFlags&,
+ const FileSystemFlags*,
EntryCallbacks::OnDidGetEntryCallback*,
ErrorCallbackBase*,
SynchronousType = kAsynchronous);
void GetDirectory(const EntryBase*,
const String& path,
- const FileSystemFlags&,
+ const FileSystemFlags*,
EntryCallbacks::OnDidGetEntryCallback*,
ErrorCallbackBase*,
SynchronousType = kAsynchronous);
diff --git a/chromium/third_party/blink/renderer/modules/filesystem/dom_file_system_sync.cc b/chromium/third_party/blink/renderer/modules/filesystem/dom_file_system_sync.cc
index 1d1b6e1008c..ef664f7d585 100644
--- a/chromium/third_party/blink/renderer/modules/filesystem/dom_file_system_sync.cc
+++ b/chromium/third_party/blink/renderer/modules/filesystem/dom_file_system_sync.cc
@@ -50,8 +50,9 @@ namespace blink {
class FileWriterBase;
DOMFileSystemSync* DOMFileSystemSync::Create(DOMFileSystemBase* file_system) {
- return new DOMFileSystemSync(file_system->context_, file_system->name(),
- file_system->GetType(), file_system->RootURL());
+ return MakeGarbageCollected<DOMFileSystemSync>(
+ file_system->context_, file_system->name(), file_system->GetType(),
+ file_system->RootURL());
}
DOMFileSystemSync::DOMFileSystemSync(ExecutionContext* context,
@@ -143,7 +144,7 @@ File* DOMFileSystemSync::CreateFile(const FileEntrySync* file_entry,
file_system_url, CreateFileHelper::Create(result, file_entry->name(),
file_system_url, GetType()));
if (result->failed_) {
- FileError::ThrowDOMException(
+ file_error::ThrowDOMException(
exception_state, result->error_,
"Could not create '" + file_entry->name() + "'.");
return nullptr;
diff --git a/chromium/third_party/blink/renderer/modules/filesystem/dom_file_system_sync.h b/chromium/third_party/blink/renderer/modules/filesystem/dom_file_system_sync.h
index 228b3e0b211..c6d715a23d1 100644
--- a/chromium/third_party/blink/renderer/modules/filesystem/dom_file_system_sync.h
+++ b/chromium/third_party/blink/renderer/modules/filesystem/dom_file_system_sync.h
@@ -50,11 +50,16 @@ class DOMFileSystemSync final : public DOMFileSystemBase {
const String& name,
mojom::blink::FileSystemType type,
const KURL& root_url) {
- return new DOMFileSystemSync(context, name, type, root_url);
+ return MakeGarbageCollected<DOMFileSystemSync>(context, name, type,
+ root_url);
}
static DOMFileSystemSync* Create(DOMFileSystemBase*);
+ DOMFileSystemSync(ExecutionContext*,
+ const String& name,
+ mojom::blink::FileSystemType,
+ const KURL& root_url);
~DOMFileSystemSync() override;
void ReportError(ErrorCallbackBase*, base::File::Error error) override;
@@ -67,10 +72,6 @@ class DOMFileSystemSync final : public DOMFileSystemBase {
void Trace(blink::Visitor*) override;
private:
- DOMFileSystemSync(ExecutionContext*,
- const String& name,
- mojom::blink::FileSystemType,
- const KURL& root_url);
Member<DirectoryEntrySync> root_entry_;
};
diff --git a/chromium/third_party/blink/renderer/modules/filesystem/dom_window_file_system.cc b/chromium/third_party/blink/renderer/modules/filesystem/dom_window_file_system.cc
index 52b1e87c04d..1d57b05b460 100644
--- a/chromium/third_party/blink/renderer/modules/filesystem/dom_window_file_system.cc
+++ b/chromium/third_party/blink/renderer/modules/filesystem/dom_window_file_system.cc
@@ -156,15 +156,15 @@ mojom::blink::ChooseFileSystemEntryType ConvertChooserType(const String& input,
}
Vector<mojom::blink::ChooseFileSystemEntryAcceptsOptionPtr> ConvertAccepts(
- const HeapVector<ChooseFileSystemEntriesOptionsAccepts>& accepts) {
+ const HeapVector<Member<ChooseFileSystemEntriesOptionsAccepts>>& accepts) {
Vector<mojom::blink::ChooseFileSystemEntryAcceptsOptionPtr> result;
result.ReserveInitialCapacity(accepts.size());
for (const auto& a : accepts) {
result.emplace_back(
blink::mojom::blink::ChooseFileSystemEntryAcceptsOption::New(
- a.hasDescription() ? a.description() : g_empty_string,
- a.hasMimeTypes() ? a.mimeTypes() : Vector<String>(),
- a.hasExtensions() ? a.extensions() : Vector<String>()));
+ a->hasDescription() ? a->description() : g_empty_string,
+ a->hasMimeTypes() ? a->mimeTypes() : Vector<String>(),
+ a->hasExtensions() ? a->extensions() : Vector<String>()));
}
return result;
}
@@ -179,13 +179,16 @@ ScriptPromise CreateFileHandle(ScriptState* script_state,
// TODO(mek): Try to create handle directly rather than having to do more
// IPCs to get the actual entries.
if (is_directory) {
- fs->GetDirectory(fs->root(), entry->base_name, FileSystemFlags(),
- new EntryCallbacks::OnDidGetEntryPromiseImpl(new_resolver),
- new PromiseErrorCallback(new_resolver));
+ fs->GetDirectory(
+ fs->root(), entry->base_name, FileSystemFlags::Create(),
+ MakeGarbageCollected<EntryCallbacks::OnDidGetEntryPromiseImpl>(
+ new_resolver),
+ MakeGarbageCollected<PromiseErrorCallback>(new_resolver));
} else {
- fs->GetFile(fs->root(), entry->base_name, FileSystemFlags(),
- new EntryCallbacks::OnDidGetEntryPromiseImpl(new_resolver),
- new PromiseErrorCallback(new_resolver));
+ fs->GetFile(fs->root(), entry->base_name, FileSystemFlags::Create(),
+ MakeGarbageCollected<EntryCallbacks::OnDidGetEntryPromiseImpl>(
+ new_resolver),
+ MakeGarbageCollected<PromiseErrorCallback>(new_resolver));
}
return result;
}
@@ -195,7 +198,7 @@ ScriptPromise CreateFileHandle(ScriptState* script_state,
ScriptPromise DOMWindowFileSystem::chooseFileSystemEntries(
ScriptState* script_state,
LocalDOMWindow& window,
- const ChooseFileSystemEntriesOptions& options) {
+ const ChooseFileSystemEntriesOptions* options) {
if (!base::FeatureList::IsEnabled(blink::features::kWritableFilesAPI)) {
return ScriptPromise::RejectWithDOMException(
script_state, DOMException::Create(DOMExceptionCode::kAbortError));
@@ -221,27 +224,27 @@ ScriptPromise DOMWindowFileSystem::chooseFileSystemEntries(
}
Vector<mojom::blink::ChooseFileSystemEntryAcceptsOptionPtr> accepts;
- if (options.hasAccepts())
- accepts = ConvertAccepts(options.accepts());
+ if (options->hasAccepts())
+ accepts = ConvertAccepts(options->accepts());
auto* resolver = ScriptPromiseResolver::Create(script_state);
ScriptPromise result = resolver->Promise();
FileSystemDispatcher::From(document).GetFileSystemManager().ChooseEntry(
- ConvertChooserType(options.type(), options.multiple()),
- std::move(accepts), !options.excludeAcceptAllOption(),
+ ConvertChooserType(options->type(), options->multiple()),
+ std::move(accepts), !options->excludeAcceptAllOption(),
WTF::Bind(
[](ScriptPromiseResolver* resolver,
- const ChooseFileSystemEntriesOptions& options,
+ const ChooseFileSystemEntriesOptions* options,
base::File::Error result,
Vector<mojom::blink::FileSystemEntryPtr> entries) {
if (result != base::File::FILE_OK) {
- resolver->Reject(FileError::CreateDOMException(result));
+ resolver->Reject(file_error::CreateDOMException(result));
return;
}
- bool is_directory = options.type() == "openDirectory";
+ bool is_directory = options->type() == "openDirectory";
ScriptState* script_state = resolver->GetScriptState();
ScriptState::Scope scope(script_state);
- if (options.multiple()) {
+ if (options->multiple()) {
Vector<ScriptPromise> result;
result.ReserveInitialCapacity(entries.size());
for (const auto& entry : entries) {
@@ -257,7 +260,7 @@ ScriptPromise DOMWindowFileSystem::chooseFileSystemEntries(
.GetScriptValue());
}
},
- WrapPersistent(resolver), options));
+ WrapPersistent(resolver), WrapPersistent(options)));
return result;
}
diff --git a/chromium/third_party/blink/renderer/modules/filesystem/dom_window_file_system.h b/chromium/third_party/blink/renderer/modules/filesystem/dom_window_file_system.h
index 8d4264d1f39..20449641f8e 100644
--- a/chromium/third_party/blink/renderer/modules/filesystem/dom_window_file_system.h
+++ b/chromium/third_party/blink/renderer/modules/filesystem/dom_window_file_system.h
@@ -64,7 +64,7 @@ class DOMWindowFileSystem {
static ScriptPromise chooseFileSystemEntries(
ScriptState*,
LocalDOMWindow&,
- const ChooseFileSystemEntriesOptions&);
+ const ChooseFileSystemEntriesOptions*);
};
} // namespace blink
diff --git a/chromium/third_party/blink/renderer/modules/filesystem/dragged_isolated_file_system_impl.cc b/chromium/third_party/blink/renderer/modules/filesystem/dragged_isolated_file_system_impl.cc
index 5e4df3b4843..5add202946d 100644
--- a/chromium/third_party/blink/renderer/modules/filesystem/dragged_isolated_file_system_impl.cc
+++ b/chromium/third_party/blink/renderer/modules/filesystem/dragged_isolated_file_system_impl.cc
@@ -76,7 +76,7 @@ void DraggedIsolatedFileSystemImpl::PrepareForDataObject(
DataObject* data_object) {
DCHECK(IsMainThread());
DraggedIsolatedFileSystemImpl* file_system =
- new DraggedIsolatedFileSystemImpl();
+ MakeGarbageCollected<DraggedIsolatedFileSystemImpl>();
ProvideTo(*data_object, file_system);
}
diff --git a/chromium/third_party/blink/renderer/modules/filesystem/dragged_isolated_file_system_impl.h b/chromium/third_party/blink/renderer/modules/filesystem/dragged_isolated_file_system_impl.h
index 5cd991da882..e524f907a06 100644
--- a/chromium/third_party/blink/renderer/modules/filesystem/dragged_isolated_file_system_impl.h
+++ b/chromium/third_party/blink/renderer/modules/filesystem/dragged_isolated_file_system_impl.h
@@ -57,13 +57,13 @@ class DraggedIsolatedFileSystemImpl final
static DraggedIsolatedFileSystemImpl* From(DataObject*);
+ DraggedIsolatedFileSystemImpl() = default;
+
void Trace(blink::Visitor*) override;
static void PrepareForDataObject(DataObject*);
private:
- DraggedIsolatedFileSystemImpl() = default;
-
HeapHashMap<String, Member<DOMFileSystem>> filesystems_;
};
diff --git a/chromium/third_party/blink/renderer/modules/filesystem/entry.h b/chromium/third_party/blink/renderer/modules/filesystem/entry.h
index 03744f9d32a..4f2dc22f711 100644
--- a/chromium/third_party/blink/renderer/modules/filesystem/entry.h
+++ b/chromium/third_party/blink/renderer/modules/filesystem/entry.h
@@ -48,6 +48,8 @@ class MODULES_EXPORT Entry : public EntryBase {
DEFINE_WRAPPERTYPEINFO();
public:
+ Entry(DOMFileSystemBase*, const String& full_path);
+
DOMFileSystem* filesystem() const {
return static_cast<DOMFileSystem*>(file_system_.Get());
}
@@ -75,9 +77,6 @@ class MODULES_EXPORT Entry : public EntryBase {
String toURL(ScriptState*) const;
void Trace(blink::Visitor*) override;
-
- protected:
- Entry(DOMFileSystemBase*, const String& full_path);
};
} // namespace blink
diff --git a/chromium/third_party/blink/renderer/modules/filesystem/entry_base.cc b/chromium/third_party/blink/renderer/modules/filesystem/entry_base.cc
index b2e0c94926e..19609d9468e 100644
--- a/chromium/third_party/blink/renderer/modules/filesystem/entry_base.cc
+++ b/chromium/third_party/blink/renderer/modules/filesystem/entry_base.cc
@@ -59,9 +59,10 @@ String EntryBase::toURL() const {
FileSystemBaseHandle* EntryBase::asFileSystemHandle() const {
if (isFile())
- return new FileSystemFileHandle(filesystem(), fullPath());
+ return MakeGarbageCollected<FileSystemFileHandle>(filesystem(), fullPath());
DCHECK(isDirectory());
- return new FileSystemDirectoryHandle(filesystem(), fullPath());
+ return MakeGarbageCollected<FileSystemDirectoryHandle>(filesystem(),
+ fullPath());
}
void EntryBase::Trace(blink::Visitor* visitor) {
diff --git a/chromium/third_party/blink/renderer/modules/filesystem/file_entry.h b/chromium/third_party/blink/renderer/modules/filesystem/file_entry.h
index 17ca61ed9c4..46263735dee 100644
--- a/chromium/third_party/blink/renderer/modules/filesystem/file_entry.h
+++ b/chromium/third_party/blink/renderer/modules/filesystem/file_entry.h
@@ -47,18 +47,17 @@ class MODULES_EXPORT FileEntry final : public Entry {
public:
static FileEntry* Create(DOMFileSystemBase* file_system,
const String& full_path) {
- return new FileEntry(file_system, full_path);
+ return MakeGarbageCollected<FileEntry>(file_system, full_path);
}
+ FileEntry(DOMFileSystemBase*, const String& full_path);
+
void createWriter(V8FileWriterCallback*, V8ErrorCallback* = nullptr);
void file(V8FileCallback*, V8ErrorCallback* = nullptr);
bool isFile() const override { return true; }
void Trace(blink::Visitor*) override;
-
- private:
- FileEntry(DOMFileSystemBase*, const String& full_path);
};
DEFINE_TYPE_CASTS(FileEntry, Entry, entry, entry->isFile(), entry.isFile());
diff --git a/chromium/third_party/blink/renderer/modules/filesystem/file_entry_sync.h b/chromium/third_party/blink/renderer/modules/filesystem/file_entry_sync.h
index 08be0b6c399..90fe339de26 100644
--- a/chromium/third_party/blink/renderer/modules/filesystem/file_entry_sync.h
+++ b/chromium/third_party/blink/renderer/modules/filesystem/file_entry_sync.h
@@ -47,18 +47,17 @@ class FileEntrySync final : public EntrySync {
public:
static FileEntrySync* Create(DOMFileSystemBase* file_system,
const String& full_path) {
- return new FileEntrySync(file_system, full_path);
+ return MakeGarbageCollected<FileEntrySync>(file_system, full_path);
}
+ FileEntrySync(DOMFileSystemBase*, const String& full_path);
+
bool isFile() const override { return true; }
File* file(ExceptionState&);
FileWriterSync* createWriter(ExceptionState&);
void Trace(blink::Visitor*) override;
-
- private:
- FileEntrySync(DOMFileSystemBase*, const String& full_path);
};
DEFINE_TYPE_CASTS(FileEntrySync,
diff --git a/chromium/third_party/blink/renderer/modules/filesystem/file_system_base_handle.cc b/chromium/third_party/blink/renderer/modules/filesystem/file_system_base_handle.cc
index 1fcaa2f115c..c6c2d0525e3 100644
--- a/chromium/third_party/blink/renderer/modules/filesystem/file_system_base_handle.cc
+++ b/chromium/third_party/blink/renderer/modules/filesystem/file_system_base_handle.cc
@@ -19,8 +19,9 @@ ScriptPromise FileSystemBaseHandle::getParent(ScriptState* script_state) {
auto* resolver = ScriptPromiseResolver::Create(script_state);
ScriptPromise result = resolver->Promise();
filesystem()->GetParent(
- this, new EntryCallbacks::OnDidGetEntryPromiseImpl(resolver),
- new PromiseErrorCallback(resolver));
+ this,
+ MakeGarbageCollected<EntryCallbacks::OnDidGetEntryPromiseImpl>(resolver),
+ MakeGarbageCollected<PromiseErrorCallback>(resolver));
return result;
}
@@ -29,9 +30,10 @@ ScriptPromise FileSystemBaseHandle::moveTo(ScriptState* script_state,
const String& name) {
auto* resolver = ScriptPromiseResolver::Create(script_state);
ScriptPromise result = resolver->Promise();
- filesystem()->Move(this, parent, name,
- new EntryCallbacks::OnDidGetEntryPromiseImpl(resolver),
- new PromiseErrorCallback(resolver));
+ filesystem()->Move(
+ this, parent, name,
+ MakeGarbageCollected<EntryCallbacks::OnDidGetEntryPromiseImpl>(resolver),
+ MakeGarbageCollected<PromiseErrorCallback>(resolver));
return result;
}
@@ -40,9 +42,10 @@ ScriptPromise FileSystemBaseHandle::copyTo(ScriptState* script_state,
const String& name) {
auto* resolver = ScriptPromiseResolver::Create(script_state);
ScriptPromise result = resolver->Promise();
- filesystem()->Copy(this, parent, name,
- new EntryCallbacks::OnDidGetEntryPromiseImpl(resolver),
- new PromiseErrorCallback(resolver));
+ filesystem()->Copy(
+ this, parent, name,
+ MakeGarbageCollected<EntryCallbacks::OnDidGetEntryPromiseImpl>(resolver),
+ MakeGarbageCollected<PromiseErrorCallback>(resolver));
return result;
}
@@ -51,7 +54,7 @@ ScriptPromise FileSystemBaseHandle::remove(ScriptState* script_state) {
ScriptPromise result = resolver->Promise();
filesystem()->Remove(this,
new VoidCallbacks::OnDidSucceedPromiseImpl(resolver),
- new PromiseErrorCallback(resolver));
+ MakeGarbageCollected<PromiseErrorCallback>(resolver));
return result;
}
diff --git a/chromium/third_party/blink/renderer/modules/filesystem/file_system_callbacks.cc b/chromium/third_party/blink/renderer/modules/filesystem/file_system_callbacks.cc
index 06bde35238c..3095d62e35a 100644
--- a/chromium/third_party/blink/renderer/modules/filesystem/file_system_callbacks.cc
+++ b/chromium/third_party/blink/renderer/modules/filesystem/file_system_callbacks.cc
@@ -111,7 +111,7 @@ ScriptErrorCallback* ScriptErrorCallback::Wrap(V8ErrorCallback* callback) {
// and checking during invoke().
if (!callback)
return nullptr;
- return new ScriptErrorCallback(callback);
+ return MakeGarbageCollected<ScriptErrorCallback>(callback);
}
void ScriptErrorCallback::Trace(blink::Visitor* visitor) {
@@ -121,7 +121,7 @@ void ScriptErrorCallback::Trace(blink::Visitor* visitor) {
void ScriptErrorCallback::Invoke(base::File::Error error) {
callback_->InvokeAndReportException(nullptr,
- FileError::CreateDOMException(error));
+ file_error::CreateDOMException(error));
};
ScriptErrorCallback::ScriptErrorCallback(V8ErrorCallback* callback)
@@ -138,7 +138,7 @@ void PromiseErrorCallback::Trace(Visitor* visitor) {
}
void PromiseErrorCallback::Invoke(base::File::Error error) {
- resolver_->Reject(FileError::CreateDOMException(error));
+ resolver_->Reject(file_error::CreateDOMException(error));
}
// EntryCallbacks -------------------------------------------------------------
@@ -223,7 +223,7 @@ EntriesCallbacks::EntriesCallbacks(OnDidGetEntriesCallback* success_callback,
success_callback_(success_callback),
directory_reader_(directory_reader),
base_path_(base_path),
- entries_(new HeapVector<Member<Entry>>()) {
+ entries_(MakeGarbageCollected<HeapVector<Member<Entry>>>()) {
DCHECK(directory_reader_);
}
@@ -240,7 +240,8 @@ void EntriesCallbacks::DidReadDirectoryEntry(const String& name,
void EntriesCallbacks::DidReadDirectoryEntries(bool has_more) {
directory_reader_->SetHasMoreEntries(has_more);
- EntryHeapVector* entries = new EntryHeapVector(std::move(*entries_));
+ EntryHeapVector* entries =
+ MakeGarbageCollected<EntryHeapVector>(std::move(*entries_));
if (!success_callback_)
return;
diff --git a/chromium/third_party/blink/renderer/modules/filesystem/file_system_callbacks.h b/chromium/third_party/blink/renderer/modules/filesystem/file_system_callbacks.h
index 04ab209a9d8..5654f88342a 100644
--- a/chromium/third_party/blink/renderer/modules/filesystem/file_system_callbacks.h
+++ b/chromium/third_party/blink/renderer/modules/filesystem/file_system_callbacks.h
@@ -108,13 +108,14 @@ class FileSystemCallbacksBase : public AsyncFileSystemCallbacks {
class ScriptErrorCallback final : public ErrorCallbackBase {
public:
static ScriptErrorCallback* Wrap(V8ErrorCallback*);
+
+ explicit ScriptErrorCallback(V8ErrorCallback*);
~ScriptErrorCallback() override {}
void Trace(blink::Visitor*) override;
void Invoke(base::File::Error error) override;
private:
- explicit ScriptErrorCallback(V8ErrorCallback*);
Member<V8PersistentCallbackInterface<V8ErrorCallback>> callback_;
};
@@ -144,15 +145,17 @@ class EntryCallbacks final : public FileSystemCallbacksBase {
class OnDidGetEntryV8Impl : public OnDidGetEntryCallback {
public:
static OnDidGetEntryV8Impl* Create(V8EntryCallback* callback) {
- return callback ? new OnDidGetEntryV8Impl(callback) : nullptr;
+ return callback ? MakeGarbageCollected<OnDidGetEntryV8Impl>(callback)
+ : nullptr;
}
- void Trace(blink::Visitor*) override;
- void OnSuccess(Entry*) override;
- private:
OnDidGetEntryV8Impl(V8EntryCallback* callback)
: callback_(ToV8PersistentCallbackInterface(callback)) {}
+ void Trace(blink::Visitor*) override;
+ void OnSuccess(Entry*) override;
+
+ private:
Member<V8PersistentCallbackInterface<V8EntryCallback>> callback_;
};
@@ -237,15 +240,18 @@ class FileSystemCallbacks final : public FileSystemCallbacksBase {
class OnDidOpenFileSystemV8Impl : public OnDidOpenFileSystemCallback {
public:
static OnDidOpenFileSystemV8Impl* Create(V8FileSystemCallback* callback) {
- return callback ? new OnDidOpenFileSystemV8Impl(callback) : nullptr;
+ return callback
+ ? MakeGarbageCollected<OnDidOpenFileSystemV8Impl>(callback)
+ : nullptr;
}
- void Trace(blink::Visitor*) override;
- void OnSuccess(DOMFileSystem*) override;
- private:
OnDidOpenFileSystemV8Impl(V8FileSystemCallback* callback)
: callback_(ToV8PersistentCallbackInterface(callback)) {}
+ void Trace(blink::Visitor*) override;
+ void OnSuccess(DOMFileSystem*) override;
+
+ private:
Member<V8PersistentCallbackInterface<V8FileSystemCallback>> callback_;
};
@@ -311,15 +317,17 @@ class MetadataCallbacks final : public FileSystemCallbacksBase {
class OnDidReadMetadataV8Impl : public OnDidReadMetadataCallback {
public:
static OnDidReadMetadataV8Impl* Create(V8MetadataCallback* callback) {
- return callback ? new OnDidReadMetadataV8Impl(callback) : nullptr;
+ return callback ? MakeGarbageCollected<OnDidReadMetadataV8Impl>(callback)
+ : nullptr;
}
- void Trace(blink::Visitor*) override;
- void OnSuccess(Metadata*) override;
- private:
OnDidReadMetadataV8Impl(V8MetadataCallback* callback)
: callback_(ToV8PersistentCallbackInterface(callback)) {}
+ void Trace(blink::Visitor*) override;
+ void OnSuccess(Metadata*) override;
+
+ private:
Member<V8PersistentCallbackInterface<V8MetadataCallback>> callback_;
};
@@ -354,15 +362,18 @@ class FileWriterCallbacks final : public FileSystemCallbacksBase {
class OnDidCreateFileWriterV8Impl : public OnDidCreateFileWriterCallback {
public:
static OnDidCreateFileWriterV8Impl* Create(V8FileWriterCallback* callback) {
- return callback ? new OnDidCreateFileWriterV8Impl(callback) : nullptr;
+ return callback
+ ? MakeGarbageCollected<OnDidCreateFileWriterV8Impl>(callback)
+ : nullptr;
}
- void Trace(blink::Visitor*) override;
- void OnSuccess(FileWriterBase*) override;
- private:
OnDidCreateFileWriterV8Impl(V8FileWriterCallback* callback)
: callback_(ToV8PersistentCallbackInterface(callback)) {}
+ void Trace(blink::Visitor*) override;
+ void OnSuccess(FileWriterBase*) override;
+
+ private:
Member<V8PersistentCallbackInterface<V8FileWriterCallback>> callback_;
};
@@ -398,15 +409,18 @@ class SnapshotFileCallback final : public FileSystemCallbacksBase {
class OnDidCreateSnapshotFileV8Impl : public OnDidCreateSnapshotFileCallback {
public:
static OnDidCreateSnapshotFileV8Impl* Create(V8FileCallback* callback) {
- return callback ? new OnDidCreateSnapshotFileV8Impl(callback) : nullptr;
+ return callback
+ ? MakeGarbageCollected<OnDidCreateSnapshotFileV8Impl>(callback)
+ : nullptr;
}
- void Trace(blink::Visitor*) override;
- void OnSuccess(File*) override;
- private:
OnDidCreateSnapshotFileV8Impl(V8FileCallback* callback)
: callback_(ToV8PersistentCallbackInterface(callback)) {}
+ void Trace(blink::Visitor*) override;
+ void OnSuccess(File*) override;
+
+ private:
Member<V8PersistentCallbackInterface<V8FileCallback>> callback_;
};
@@ -448,15 +462,17 @@ class VoidCallbacks final : public FileSystemCallbacksBase {
class OnDidSucceedV8Impl : public OnDidSucceedCallback {
public:
static OnDidSucceedV8Impl* Create(V8VoidCallback* callback) {
- return callback ? new OnDidSucceedV8Impl(callback) : nullptr;
+ return callback ? MakeGarbageCollected<OnDidSucceedV8Impl>(callback)
+ : nullptr;
}
- void Trace(blink::Visitor*) override;
- void OnSuccess(ExecutionContext* dummy_arg_for_sync_helper) override;
- private:
OnDidSucceedV8Impl(V8VoidCallback* callback)
: callback_(ToV8PersistentCallbackInterface(callback)) {}
+ void Trace(blink::Visitor*) override;
+ void OnSuccess(ExecutionContext* dummy_arg_for_sync_helper) override;
+
+ private:
Member<V8PersistentCallbackInterface<V8VoidCallback>> callback_;
};
diff --git a/chromium/third_party/blink/renderer/modules/filesystem/file_system_directory_handle.cc b/chromium/third_party/blink/renderer/modules/filesystem/file_system_directory_handle.cc
index 4bc2d834eda..2afc8215e5f 100644
--- a/chromium/third_party/blink/renderer/modules/filesystem/file_system_directory_handle.cc
+++ b/chromium/third_party/blink/renderer/modules/filesystem/file_system_directory_handle.cc
@@ -20,35 +20,37 @@ FileSystemDirectoryHandle::FileSystemDirectoryHandle(
ScriptPromise FileSystemDirectoryHandle::getFile(
ScriptState* script_state,
const String& name,
- const FileSystemGetFileOptions& options) {
- FileSystemFlags flags;
- flags.setCreateFlag(options.create());
+ const FileSystemGetFileOptions* options) {
+ FileSystemFlags* flags = FileSystemFlags::Create();
+ flags->setCreateFlag(options->create());
auto* resolver = ScriptPromiseResolver::Create(script_state);
ScriptPromise result = resolver->Promise();
- filesystem()->GetFile(this, name, flags,
- new EntryCallbacks::OnDidGetEntryPromiseImpl(resolver),
- new PromiseErrorCallback(resolver));
+ filesystem()->GetFile(
+ this, name, flags,
+ MakeGarbageCollected<EntryCallbacks::OnDidGetEntryPromiseImpl>(resolver),
+ MakeGarbageCollected<PromiseErrorCallback>(resolver));
return result;
}
ScriptPromise FileSystemDirectoryHandle::getDirectory(
ScriptState* script_state,
const String& name,
- const FileSystemGetDirectoryOptions& options) {
- FileSystemFlags flags;
- flags.setCreateFlag(options.create());
+ const FileSystemGetDirectoryOptions* options) {
+ FileSystemFlags* flags = FileSystemFlags::Create();
+ flags->setCreateFlag(options->create());
auto* resolver = ScriptPromiseResolver::Create(script_state);
ScriptPromise result = resolver->Promise();
filesystem()->GetDirectory(
- this, name, flags, new EntryCallbacks::OnDidGetEntryPromiseImpl(resolver),
- new PromiseErrorCallback(resolver));
+ this, name, flags,
+ MakeGarbageCollected<EntryCallbacks::OnDidGetEntryPromiseImpl>(resolver),
+ MakeGarbageCollected<PromiseErrorCallback>(resolver));
return result;
}
// static
ScriptPromise FileSystemDirectoryHandle::getSystemDirectory(
ScriptState* script_state,
- const GetSystemDirectoryOptions& options) {
+ const GetSystemDirectoryOptions* options) {
auto* context = ExecutionContext::From(script_state);
auto* resolver = ScriptPromiseResolver::Create(script_state);
@@ -58,7 +60,7 @@ ScriptPromise FileSystemDirectoryHandle::getSystemDirectory(
context, mojom::blink::FileSystemType::kTemporary, /*size=*/0,
FileSystemCallbacks::Create(
new FileSystemCallbacks::OnDidOpenFileSystemPromiseImpl(resolver),
- new PromiseErrorCallback(resolver), context,
+ MakeGarbageCollected<PromiseErrorCallback>(resolver), context,
mojom::blink::FileSystemType::kTemporary),
LocalFileSystem::kAsynchronous);
return result;
@@ -94,7 +96,7 @@ ScriptPromise FileSystemDirectoryHandle::removeRecursively(
ScriptPromise result = resolver->Promise();
filesystem()->RemoveRecursively(
this, new VoidCallbacks::OnDidSucceedPromiseImpl(resolver),
- new PromiseErrorCallback(resolver));
+ MakeGarbageCollected<PromiseErrorCallback>(resolver));
return result;
}
diff --git a/chromium/third_party/blink/renderer/modules/filesystem/file_system_directory_handle.h b/chromium/third_party/blink/renderer/modules/filesystem/file_system_directory_handle.h
index 3dfc770d4b0..92290a45fcf 100644
--- a/chromium/third_party/blink/renderer/modules/filesystem/file_system_directory_handle.h
+++ b/chromium/third_party/blink/renderer/modules/filesystem/file_system_directory_handle.h
@@ -22,16 +22,16 @@ class FileSystemDirectoryHandle : public FileSystemBaseHandle {
bool isDirectory() const override { return true; }
ScriptPromise getFile(ScriptState*,
const String& name,
- const FileSystemGetFileOptions&);
+ const FileSystemGetFileOptions*);
ScriptPromise getDirectory(ScriptState*,
const String& name,
- const FileSystemGetDirectoryOptions&);
+ const FileSystemGetDirectoryOptions*);
ScriptValue getEntries(ScriptState*);
ScriptPromise removeRecursively(ScriptState*);
static ScriptPromise getSystemDirectory(
ScriptState*,
- const GetSystemDirectoryOptions& options);
+ const GetSystemDirectoryOptions* options);
};
} // namespace blink
diff --git a/chromium/third_party/blink/renderer/modules/filesystem/file_system_directory_iterator.cc b/chromium/third_party/blink/renderer/modules/filesystem/file_system_directory_iterator.cc
index d7fa8b6cebe..4633c667983 100644
--- a/chromium/third_party/blink/renderer/modules/filesystem/file_system_directory_iterator.cc
+++ b/chromium/third_party/blink/renderer/modules/filesystem/file_system_directory_iterator.cc
@@ -55,19 +55,21 @@ FileSystemDirectoryIterator::FileSystemDirectoryIterator(
DOMFileSystemBase* file_system,
const String& full_path)
: DirectoryReaderBase(file_system, full_path) {
- Filesystem()->ReadDirectory(this, full_path_, new EntriesCallbackHelper(this),
- new ErrorCallbackHelper(this));
+ Filesystem()->ReadDirectory(this, full_path_,
+ MakeGarbageCollected<EntriesCallbackHelper>(this),
+ MakeGarbageCollected<ErrorCallbackHelper>(this));
}
ScriptPromise FileSystemDirectoryIterator::next(ScriptState* script_state) {
if (error_ != base::File::FILE_OK) {
return ScriptPromise::RejectWithDOMException(
- script_state, FileError::CreateDOMException(error_));
+ script_state, file_error::CreateDOMException(error_));
}
if (!entries_.IsEmpty()) {
- FileSystemDirectoryIteratorEntry result;
- result.setValue(entries_.TakeFirst()->asFileSystemHandle());
+ FileSystemDirectoryIteratorEntry* result =
+ FileSystemDirectoryIteratorEntry::Create();
+ result->setValue(entries_.TakeFirst()->asFileSystemHandle());
return ScriptPromise::Cast(script_state, ToV8(result, script_state));
}
@@ -77,8 +79,9 @@ ScriptPromise FileSystemDirectoryIterator::next(ScriptState* script_state) {
return pending_next_->Promise();
}
- FileSystemDirectoryIteratorEntry result;
- result.setDone(true);
+ FileSystemDirectoryIteratorEntry* result =
+ FileSystemDirectoryIteratorEntry::Create();
+ result->setDone(true);
return ScriptPromise::Cast(script_state, ToV8(result, script_state));
}
@@ -102,7 +105,7 @@ void FileSystemDirectoryIterator::AddEntries(const EntryHeapVector& entries) {
void FileSystemDirectoryIterator::OnError(base::File::Error error) {
error_ = error;
if (pending_next_) {
- pending_next_->Reject(FileError::CreateDOMException(error));
+ pending_next_->Reject(file_error::CreateDOMException(error));
pending_next_ = nullptr;
}
}
diff --git a/chromium/third_party/blink/renderer/modules/filesystem/file_system_file_handle.cc b/chromium/third_party/blink/renderer/modules/filesystem/file_system_file_handle.cc
index 9bf62daa4fc..95e9823fce2 100644
--- a/chromium/third_party/blink/renderer/modules/filesystem/file_system_file_handle.cc
+++ b/chromium/third_party/blink/renderer/modules/filesystem/file_system_file_handle.cc
@@ -13,6 +13,7 @@
#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/modules/filesystem/file_system_writer.h"
+#include "third_party/blink/renderer/platform/wtf/functional.h"
namespace blink {
@@ -50,9 +51,10 @@ ScriptPromise FileSystemFileHandle::createWriter(ScriptState* script_state) {
[](ScriptPromiseResolver* resolver, base::File::Error result,
mojom::blink::FileWriterPtr writer) {
if (result == base::File::FILE_OK) {
- resolver->Resolve(new FileSystemWriter(std::move(writer)));
+ resolver->Resolve(MakeGarbageCollected<FileSystemWriter>(
+ std::move(writer)));
} else {
- resolver->Reject(FileError::CreateDOMException(result));
+ resolver->Reject(file_error::CreateDOMException(result));
}
},
WrapPersistent(resolver)));
@@ -64,12 +66,13 @@ ScriptPromise FileSystemFileHandle::getFile(ScriptState* script_state) {
ScriptPromise result = resolver->Promise();
KURL file_system_url = filesystem()->CreateFileSystemURL(this);
FileSystemDispatcher::From(ExecutionContext::From(script_state))
- .CreateSnapshotFile(file_system_url,
- SnapshotFileCallback::Create(
- filesystem(), name(), file_system_url,
- new OnDidCreateSnapshotFilePromise(resolver),
- new PromiseErrorCallback(resolver),
- ExecutionContext::From(script_state)));
+ .CreateSnapshotFile(
+ file_system_url,
+ SnapshotFileCallback::Create(
+ filesystem(), name(), file_system_url,
+ new OnDidCreateSnapshotFilePromise(resolver),
+ MakeGarbageCollected<PromiseErrorCallback>(resolver),
+ ExecutionContext::From(script_state)));
return result;
}
diff --git a/chromium/third_party/blink/renderer/modules/filesystem/file_system_writer.cc b/chromium/third_party/blink/renderer/modules/filesystem/file_system_writer.cc
index 89ec9b3f123..9a0dcd3f2bc 100644
--- a/chromium/third_party/blink/renderer/modules/filesystem/file_system_writer.cc
+++ b/chromium/third_party/blink/renderer/modules/filesystem/file_system_writer.cc
@@ -6,12 +6,13 @@
#include "third_party/blink/renderer/bindings/core/v8/script_promise.h"
#include "third_party/blink/renderer/bindings/core/v8/v8_blob.h"
+#include "third_party/blink/renderer/bindings/core/v8/v8_readable_stream.h"
#include "third_party/blink/renderer/core/dom/dom_exception.h"
#include "third_party/blink/renderer/core/fetch/fetch_data_loader.h"
#include "third_party/blink/renderer/core/fetch/readable_stream_bytes_consumer.h"
#include "third_party/blink/renderer/core/fileapi/blob.h"
#include "third_party/blink/renderer/core/fileapi/file_error.h"
-#include "third_party/blink/renderer/core/streams/readable_stream_operations.h"
+#include "third_party/blink/renderer/core/streams/readable_stream.h"
#include "third_party/blink/renderer/platform/wtf/functional.h"
namespace blink {
@@ -26,18 +27,18 @@ ScriptPromise FileSystemWriter::write(ScriptState* script_state,
ScriptValue data,
ExceptionState& exception_state) {
v8::Isolate* isolate = script_state->GetIsolate();
- if (V8Blob::hasInstance(data.V8Value(), isolate)) {
+ if (V8Blob::HasInstance(data.V8Value(), isolate)) {
Blob* blob = V8Blob::ToImpl(data.V8Value().As<v8::Object>());
return WriteBlob(script_state, position, blob);
}
- if (!ReadableStreamOperations::IsReadableStream(script_state, data,
- exception_state)
- .value_or(false)) {
+ if (!V8ReadableStream::HasInstance(data.V8Value(), isolate)) {
if (!exception_state.HadException())
exception_state.ThrowTypeError("data should be a Blob or ReadableStream");
return ScriptPromise();
}
- return WriteStream(script_state, position, data, exception_state);
+ return WriteStream(script_state, position,
+ V8ReadableStream::ToImpl(data.V8Value().As<v8::Object>()),
+ exception_state);
}
ScriptPromise FileSystemWriter::WriteBlob(ScriptState* script_state,
@@ -92,7 +93,7 @@ class FileSystemWriter::StreamWriterClient
DCHECK(writer_->pending_operation_);
did_complete_ = true;
writer_->pending_operation_->Reject(
- FileError::CreateDOMException(base::File::FILE_ERROR_FAILED));
+ file_error::CreateDOMException(base::File::FILE_ERROR_FAILED));
Reset();
}
@@ -104,7 +105,7 @@ class FileSystemWriter::StreamWriterClient
DCHECK(writer_->pending_operation_);
did_complete_ = true;
writer_->pending_operation_->Reject(
- FileError::CreateDOMException(base::File::FILE_ERROR_ABORT));
+ file_error::CreateDOMException(base::File::FILE_ERROR_ABORT));
Reset();
}
@@ -116,7 +117,7 @@ class FileSystemWriter::StreamWriterClient
did_complete_ = true;
if (result != base::File::FILE_OK) {
writer_->pending_operation_->Reject(
- FileError::CreateDOMException(result));
+ file_error::CreateDOMException(result));
} else {
DCHECK(did_finish_writing_to_pipe_);
writer_->pending_operation_->Resolve();
@@ -143,7 +144,7 @@ class FileSystemWriter::StreamWriterClient
ScriptPromise FileSystemWriter::WriteStream(ScriptState* script_state,
uint64_t position,
- ScriptValue stream,
+ ReadableStream* stream,
ExceptionState& exception_state) {
if (!writer_ || pending_operation_) {
return ScriptPromise::RejectWithDOMException(
@@ -152,11 +153,11 @@ ScriptPromise FileSystemWriter::WriteStream(ScriptState* script_state,
}
DCHECK(!stream_loader_);
- auto reader = ReadableStreamOperations::GetReader(script_state, stream,
- exception_state);
+ auto reader = stream->getReader(script_state, exception_state);
if (exception_state.HadException())
return ScriptPromise();
- auto* consumer = new ReadableStreamBytesConsumer(script_state, reader);
+ auto* consumer =
+ MakeGarbageCollected<ReadableStreamBytesConsumer>(script_state, reader);
stream_loader_ = FetchDataLoader::CreateLoaderAsDataPipe(
ExecutionContext::From(script_state)
@@ -207,7 +208,7 @@ void FileSystemWriter::WriteComplete(base::File::Error result,
if (result == base::File::FILE_OK) {
pending_operation_->Resolve();
} else {
- pending_operation_->Reject(FileError::CreateDOMException(result));
+ pending_operation_->Reject(file_error::CreateDOMException(result));
}
pending_operation_ = nullptr;
}
@@ -217,7 +218,7 @@ void FileSystemWriter::TruncateComplete(base::File::Error result) {
if (result == base::File::FILE_OK) {
pending_operation_->Resolve();
} else {
- pending_operation_->Reject(FileError::CreateDOMException(result));
+ pending_operation_->Reject(file_error::CreateDOMException(result));
}
pending_operation_ = nullptr;
}
diff --git a/chromium/third_party/blink/renderer/modules/filesystem/file_system_writer.h b/chromium/third_party/blink/renderer/modules/filesystem/file_system_writer.h
index 6fa00725759..a0e417fb724 100644
--- a/chromium/third_party/blink/renderer/modules/filesystem/file_system_writer.h
+++ b/chromium/third_party/blink/renderer/modules/filesystem/file_system_writer.h
@@ -14,6 +14,7 @@ namespace blink {
class Blob;
class ExceptionState;
class FetchDataLoader;
+class ReadableStream;
class ScriptPromise;
class ScriptPromiseResolver;
class ScriptState;
@@ -40,7 +41,7 @@ class FileSystemWriter final : public ScriptWrappable {
ScriptPromise WriteBlob(ScriptState*, uint64_t position, Blob*);
ScriptPromise WriteStream(ScriptState*,
uint64_t position,
- ScriptValue stream,
+ ReadableStream* stream,
ExceptionState&);
void WriteComplete(base::File::Error result, uint64_t bytes_written);
diff --git a/chromium/third_party/blink/renderer/modules/filesystem/file_writer.cc b/chromium/third_party/blink/renderer/modules/filesystem/file_writer.cc
index 5ad31e6b662..94dbe810812 100644
--- a/chromium/third_party/blink/renderer/modules/filesystem/file_writer.cc
+++ b/chromium/third_party/blink/renderer/modules/filesystem/file_writer.cc
@@ -33,6 +33,7 @@
#include "third_party/blink/public/platform/web_url.h"
#include "third_party/blink/renderer/core/events/progress_event.h"
#include "third_party/blink/renderer/core/fileapi/blob.h"
+#include "third_party/blink/renderer/core/fileapi/file_error.h"
#include "third_party/blink/renderer/core/probe/core_probes.h"
#include "third_party/blink/renderer/modules/filesystem/file_system_dispatcher.h"
#include "third_party/blink/renderer/platform/bindings/exception_state.h"
@@ -44,7 +45,7 @@ static const int kMaxRecursionDepth = 3;
static const double kProgressNotificationIntervalMS = 50;
FileWriter* FileWriter::Create(ExecutionContext* context) {
- return new FileWriter(context);
+ return MakeGarbageCollected<FileWriter>(context);
}
FileWriter::FileWriter(ExecutionContext* context)
@@ -65,7 +66,7 @@ FileWriter::~FileWriter() {
}
const AtomicString& FileWriter::InterfaceName() const {
- return EventTargetNames::FileWriter;
+ return event_target_names::kFileWriter;
}
void FileWriter::ContextDestroyed(ExecutionContext*) {
@@ -83,11 +84,11 @@ void FileWriter::write(Blob* data, ExceptionState& exception_state) {
DCHECK(data);
DCHECK_EQ(truncate_length_, -1);
if (ready_state_ == kWriting) {
- SetError(FileError::kInvalidStateErr, exception_state);
+ SetError(FileErrorCode::kInvalidStateErr, exception_state);
return;
}
if (recursion_depth_ > kMaxRecursionDepth) {
- SetError(FileError::kSecurityErr, exception_state);
+ SetError(FileErrorCode::kSecurityErr, exception_state);
return;
}
@@ -104,14 +105,14 @@ void FileWriter::write(Blob* data, ExceptionState& exception_state) {
} else
DoOperation(kOperationWrite);
- FireEvent(EventTypeNames::writestart);
+ FireEvent(event_type_names::kWritestart);
}
void FileWriter::seek(long long position, ExceptionState& exception_state) {
if (!GetExecutionContext())
return;
if (ready_state_ == kWriting) {
- SetError(FileError::kInvalidStateErr, exception_state);
+ SetError(FileErrorCode::kInvalidStateErr, exception_state);
return;
}
@@ -125,11 +126,11 @@ void FileWriter::truncate(long long position, ExceptionState& exception_state) {
return;
DCHECK_EQ(truncate_length_, -1);
if (ready_state_ == kWriting || position < 0) {
- SetError(FileError::kInvalidStateErr, exception_state);
+ SetError(FileErrorCode::kInvalidStateErr, exception_state);
return;
}
if (recursion_depth_ > kMaxRecursionDepth) {
- SetError(FileError::kSecurityErr, exception_state);
+ SetError(FileErrorCode::kSecurityErr, exception_state);
return;
}
@@ -145,7 +146,7 @@ void FileWriter::truncate(long long position, ExceptionState& exception_state) {
queued_operation_ = kOperationTruncate;
} else
DoOperation(kOperationTruncate);
- FireEvent(EventTypeNames::writestart);
+ FireEvent(event_type_names::kWritestart);
}
void FileWriter::abort(ExceptionState& exception_state) {
@@ -187,7 +188,7 @@ void FileWriter::DidWriteImpl(int64_t bytes, bool complete) {
(now - last_progress_notification_time_ms_ >
kProgressNotificationIntervalMS)) {
last_progress_notification_time_ms_ = now;
- FireEvent(EventTypeNames::progress);
+ FireEvent(event_type_names::kProgress);
}
if (complete) {
@@ -295,14 +296,15 @@ void FileWriter::SignalCompletion(base::File::Error error) {
ready_state_ = kDone;
truncate_length_ = -1;
if (error != base::File::FILE_OK) {
- error_ = FileError::CreateDOMException(error);
+ error_ = file_error::CreateDOMException(error);
if (base::File::FILE_ERROR_ABORT == error)
- FireEvent(EventTypeNames::abort);
+ FireEvent(event_type_names::kAbort);
else
- FireEvent(EventTypeNames::error);
- } else
- FireEvent(EventTypeNames::write);
- FireEvent(EventTypeNames::writeend);
+ FireEvent(event_type_names::kError);
+ } else {
+ FireEvent(event_type_names::kWrite);
+ }
+ FireEvent(event_type_names::kWriteend);
probe::AsyncTaskCanceled(GetExecutionContext(), this);
}
@@ -316,11 +318,11 @@ void FileWriter::FireEvent(const AtomicString& type) {
DCHECK_GE(recursion_depth_, 0);
}
-void FileWriter::SetError(FileError::ErrorCode error_code,
+void FileWriter::SetError(FileErrorCode error_code,
ExceptionState& exception_state) {
- DCHECK(error_code);
- FileError::ThrowDOMException(exception_state, error_code);
- error_ = FileError::CreateDOMException(error_code);
+ DCHECK_NE(error_code, FileErrorCode::kOK);
+ file_error::ThrowDOMException(exception_state, error_code);
+ error_ = file_error::CreateDOMException(error_code);
}
void FileWriter::Dispose() {
diff --git a/chromium/third_party/blink/renderer/modules/filesystem/file_writer.h b/chromium/third_party/blink/renderer/modules/filesystem/file_writer.h
index 69c38d342df..64842401600 100644
--- a/chromium/third_party/blink/renderer/modules/filesystem/file_writer.h
+++ b/chromium/third_party/blink/renderer/modules/filesystem/file_writer.h
@@ -34,7 +34,6 @@
#include "third_party/blink/renderer/bindings/core/v8/active_script_wrappable.h"
#include "third_party/blink/renderer/core/dom/context_lifecycle_observer.h"
#include "third_party/blink/renderer/core/execution_context/execution_context.h"
-#include "third_party/blink/renderer/core/fileapi/file_error.h"
#include "third_party/blink/renderer/modules/event_target_modules.h"
#include "third_party/blink/renderer/modules/filesystem/file_writer_base.h"
#include "third_party/blink/renderer/platform/heap/handle.h"
@@ -42,8 +41,10 @@
namespace blink {
class Blob;
+class DOMException;
class ExceptionState;
class ExecutionContext;
+enum class FileErrorCode;
class FileWriter final : public EventTargetWithInlineData,
public FileWriterBase,
@@ -55,6 +56,8 @@ class FileWriter final : public EventTargetWithInlineData,
public:
static FileWriter* Create(ExecutionContext*);
+
+ explicit FileWriter(ExecutionContext*);
~FileWriter() override;
enum ReadyState { kInit = 0, kWriting = 1, kDone = 2 };
@@ -88,12 +91,12 @@ class FileWriter final : public EventTargetWithInlineData,
return ContextLifecycleObserver::GetExecutionContext();
}
- DEFINE_ATTRIBUTE_EVENT_LISTENER(writestart);
- DEFINE_ATTRIBUTE_EVENT_LISTENER(progress);
- DEFINE_ATTRIBUTE_EVENT_LISTENER(write);
- DEFINE_ATTRIBUTE_EVENT_LISTENER(abort);
- DEFINE_ATTRIBUTE_EVENT_LISTENER(error);
- DEFINE_ATTRIBUTE_EVENT_LISTENER(writeend);
+ DEFINE_ATTRIBUTE_EVENT_LISTENER(writestart, kWritestart);
+ DEFINE_ATTRIBUTE_EVENT_LISTENER(progress, kProgress);
+ DEFINE_ATTRIBUTE_EVENT_LISTENER(write, kWrite);
+ DEFINE_ATTRIBUTE_EVENT_LISTENER(abort, kAbort);
+ DEFINE_ATTRIBUTE_EVENT_LISTENER(error, kError);
+ DEFINE_ATTRIBUTE_EVENT_LISTENER(writeend, kWriteend);
void Trace(blink::Visitor*) override;
@@ -105,8 +108,6 @@ class FileWriter final : public EventTargetWithInlineData,
kOperationAbort
};
- explicit FileWriter(ExecutionContext*);
-
void CompleteAbort();
void DoOperation(Operation);
@@ -115,7 +116,7 @@ class FileWriter final : public EventTargetWithInlineData,
void FireEvent(const AtomicString& type);
- void SetError(FileError::ErrorCode, ExceptionState&);
+ void SetError(FileErrorCode, ExceptionState&);
void Dispose();
diff --git a/chromium/third_party/blink/renderer/modules/filesystem/file_writer_sync.cc b/chromium/third_party/blink/renderer/modules/filesystem/file_writer_sync.cc
index e9c20b16cc1..702cd3cf6f2 100644
--- a/chromium/third_party/blink/renderer/modules/filesystem/file_writer_sync.cc
+++ b/chromium/third_party/blink/renderer/modules/filesystem/file_writer_sync.cc
@@ -34,6 +34,7 @@
#include "third_party/blink/renderer/core/fileapi/blob.h"
#include "third_party/blink/renderer/modules/filesystem/file_system_dispatcher.h"
#include "third_party/blink/renderer/platform/bindings/exception_state.h"
+#include "third_party/blink/renderer/platform/wtf/functional.h"
namespace blink {
@@ -45,7 +46,7 @@ void FileWriterSync::write(Blob* data, ExceptionState& exception_state) {
Write(position(), data->Uuid());
DCHECK(complete_);
if (error_) {
- FileError::ThrowDOMException(exception_state, error_);
+ file_error::ThrowDOMException(exception_state, error_);
return;
}
SetPosition(position() + data->size());
@@ -63,14 +64,14 @@ void FileWriterSync::truncate(long long offset,
DCHECK(complete_);
if (offset < 0) {
exception_state.ThrowDOMException(DOMExceptionCode::kInvalidStateError,
- FileError::kInvalidStateErrorMessage);
+ file_error::kInvalidStateErrorMessage);
return;
}
PrepareForWrite();
Truncate(offset);
DCHECK(complete_);
if (error_) {
- FileError::ThrowDOMException(exception_state, error_);
+ file_error::ThrowDOMException(exception_state, error_);
return;
}
if (offset < position())
diff --git a/chromium/third_party/blink/renderer/modules/filesystem/file_writer_sync.h b/chromium/third_party/blink/renderer/modules/filesystem/file_writer_sync.h
index 656160699d8..fff8ede6c2a 100644
--- a/chromium/third_party/blink/renderer/modules/filesystem/file_writer_sync.h
+++ b/chromium/third_party/blink/renderer/modules/filesystem/file_writer_sync.h
@@ -50,8 +50,10 @@ class FileWriterSync final : public ScriptWrappable,
public:
static FileWriterSync* Create(ExecutionContext* context) {
- return new FileWriterSync(context);
+ return MakeGarbageCollected<FileWriterSync>(context);
}
+
+ explicit FileWriterSync(ExecutionContext* context);
~FileWriterSync() override;
void Trace(blink::Visitor*) override;
@@ -70,7 +72,6 @@ class FileWriterSync final : public ScriptWrappable,
void DoCancel() override;
private:
- explicit FileWriterSync(ExecutionContext* context);
void PrepareForWrite();
base::File::Error error_;
diff --git a/chromium/third_party/blink/renderer/modules/filesystem/local_file_system.cc b/chromium/third_party/blink/renderer/modules/filesystem/local_file_system.cc
index c14ff58d913..b08ad890d0e 100644
--- a/chromium/third_party/blink/renderer/modules/filesystem/local_file_system.cc
+++ b/chromium/third_party/blink/renderer/modules/filesystem/local_file_system.cc
@@ -206,7 +206,7 @@ LocalFileSystem* LocalFileSystem::From(ExecutionContext& context) {
return file_system;
}
- WorkerClients* clients = ToWorkerGlobalScope(context).Clients();
+ WorkerClients* clients = To<WorkerGlobalScope>(context).Clients();
DCHECK(clients);
LocalFileSystem* file_system =
Supplement<WorkerClients>::From<LocalFileSystem>(clients);
@@ -216,13 +216,15 @@ LocalFileSystem* LocalFileSystem::From(ExecutionContext& context) {
void ProvideLocalFileSystemTo(LocalFrame& frame,
std::unique_ptr<FileSystemClient> client) {
- frame.ProvideSupplement(new LocalFileSystem(frame, std::move(client)));
+ frame.ProvideSupplement(
+ MakeGarbageCollected<LocalFileSystem>(frame, std::move(client)));
}
void ProvideLocalFileSystemToWorker(WorkerClients* worker_clients,
std::unique_ptr<FileSystemClient> client) {
- Supplement<WorkerClients>::ProvideTo(
- *worker_clients, new LocalFileSystem(*worker_clients, std::move(client)));
+ Supplement<WorkerClients>::ProvideTo(*worker_clients,
+ MakeGarbageCollected<LocalFileSystem>(
+ *worker_clients, std::move(client)));
}
} // namespace blink
diff --git a/chromium/third_party/blink/renderer/modules/filesystem/local_file_system_client.cc b/chromium/third_party/blink/renderer/modules/filesystem/local_file_system_client.cc
index ab6d6ec45b5..98d9354e832 100644
--- a/chromium/third_party/blink/renderer/modules/filesystem/local_file_system_client.cc
+++ b/chromium/third_party/blink/renderer/modules/filesystem/local_file_system_client.cc
@@ -33,8 +33,8 @@
#include <memory>
#include "base/memory/ptr_util.h"
+#include "third_party/blink/public/platform/web_content_settings_client.h"
#include "third_party/blink/renderer/core/dom/document.h"
-#include "third_party/blink/renderer/core/frame/content_settings_client.h"
#include "third_party/blink/renderer/core/frame/local_frame.h"
#include "third_party/blink/renderer/core/workers/worker_content_settings_client.h"
#include "third_party/blink/renderer/core/workers/worker_global_scope.h"
@@ -60,8 +60,7 @@ bool LocalFileSystemClient::RequestFileSystemAccessSync(
return false;
}
- DCHECK(context->IsWorkerGlobalScope());
- return WorkerContentSettingsClient::From(*ToWorkerGlobalScope(context))
+ return WorkerContentSettingsClient::From(*To<WorkerGlobalScope>(context))
->RequestFileSystemAccessSync();
}
@@ -76,10 +75,11 @@ void LocalFileSystemClient::RequestFileSystemAccessAsync(
return;
}
- DCHECK(document->GetFrame());
- document->GetFrame()
- ->GetContentSettingsClient()
- ->RequestFileSystemAccessAsync(std::move(callbacks));
+ if (auto* client = document->GetFrame()->GetContentSettingsClient()) {
+ client->RequestFileSystemAccessAsync(std::move(callbacks));
+ } else {
+ callbacks->OnAllowed();
+ }
}
LocalFileSystemClient::LocalFileSystemClient() = default;
diff --git a/chromium/third_party/blink/renderer/modules/filesystem/metadata.h b/chromium/third_party/blink/renderer/modules/filesystem/metadata.h
index 93a6ee2ba0f..8bff4aee445 100644
--- a/chromium/third_party/blink/renderer/modules/filesystem/metadata.h
+++ b/chromium/third_party/blink/renderer/modules/filesystem/metadata.h
@@ -42,13 +42,16 @@ class Metadata final : public ScriptWrappable {
public:
static Metadata* Create(const FileMetadata& platform_metadata) {
- return new Metadata(platform_metadata);
+ return MakeGarbageCollected<Metadata>(platform_metadata);
}
static Metadata* Create(Metadata* metadata) {
- return new Metadata(metadata->platform_metadata_);
+ return MakeGarbageCollected<Metadata>(metadata->platform_metadata_);
}
+ explicit Metadata(const FileMetadata& platform_metadata)
+ : platform_metadata_(platform_metadata) {}
+
// Return Epoch time in milliseconds for Date.
double modificationTime() const {
return platform_metadata_.modification_time;
@@ -58,9 +61,6 @@ class Metadata final : public ScriptWrappable {
}
private:
- explicit Metadata(const FileMetadata& platform_metadata)
- : platform_metadata_(platform_metadata) {}
-
FileMetadata platform_metadata_;
};
diff --git a/chromium/third_party/blink/renderer/modules/filesystem/sync_callback_helper.h b/chromium/third_party/blink/renderer/modules/filesystem/sync_callback_helper.h
index c01ed1c6d63..805ce4c2114 100644
--- a/chromium/third_party/blink/renderer/modules/filesystem/sync_callback_helper.h
+++ b/chromium/third_party/blink/renderer/modules/filesystem/sync_callback_helper.h
@@ -45,19 +45,23 @@ class DOMFileSystemCallbacksSyncHelper final
DOMFileSystemCallbacksSyncHelper<SuccessCallback, CallbackArg>> {
public:
static DOMFileSystemCallbacksSyncHelper* Create() {
- return new DOMFileSystemCallbacksSyncHelper();
+ return MakeGarbageCollected<DOMFileSystemCallbacksSyncHelper>();
}
+ DOMFileSystemCallbacksSyncHelper() = default;
+
void Trace(blink::Visitor* visitor) { visitor->Trace(result_); }
SuccessCallback* GetSuccessCallback() {
return new SuccessCallbackImpl(this);
}
- ErrorCallbackBase* GetErrorCallback() { return new ErrorCallbackImpl(this); }
+ ErrorCallbackBase* GetErrorCallback() {
+ return MakeGarbageCollected<ErrorCallbackImpl>(this);
+ }
CallbackArg* GetResultOrThrow(ExceptionState& exception_state) {
if (error_code_ != base::File::FILE_OK) {
- FileError::ThrowDOMException(exception_state, error_code_);
+ file_error::ThrowDOMException(exception_state, error_code_);
return nullptr;
}
@@ -86,6 +90,9 @@ class DOMFileSystemCallbacksSyncHelper final
class ErrorCallbackImpl final : public ErrorCallbackBase {
public:
+ explicit ErrorCallbackImpl(DOMFileSystemCallbacksSyncHelper* helper)
+ : helper_(helper) {}
+
void Trace(blink::Visitor* visitor) override {
visitor->Trace(helper_);
ErrorCallbackBase::Trace(visitor);
@@ -96,15 +103,11 @@ class DOMFileSystemCallbacksSyncHelper final
}
private:
- explicit ErrorCallbackImpl(DOMFileSystemCallbacksSyncHelper* helper)
- : helper_(helper) {}
Member<DOMFileSystemCallbacksSyncHelper> helper_;
friend class DOMFileSystemCallbacksSyncHelper;
};
- DOMFileSystemCallbacksSyncHelper() = default;
-
Member<CallbackArg> result_;
base::File::Error error_code_ = base::File::FILE_OK;
diff --git a/chromium/third_party/blink/renderer/modules/filesystem/worker_global_scope_file_system.cc b/chromium/third_party/blink/renderer/modules/filesystem/worker_global_scope_file_system.cc
index 713954c0e53..deb97585efa 100644
--- a/chromium/third_party/blink/renderer/modules/filesystem/worker_global_scope_file_system.cc
+++ b/chromium/third_party/blink/renderer/modules/filesystem/worker_global_scope_file_system.cc
@@ -86,7 +86,7 @@ DOMFileSystemSync* WorkerGlobalScopeFileSystem::webkitRequestFileSystemSync(
ExceptionState& exception_state) {
ExecutionContext* secure_context = worker.GetExecutionContext();
if (!secure_context->GetSecurityOrigin()->CanAccessFileSystem()) {
- exception_state.ThrowSecurityError(FileError::kSecurityErrorMessage);
+ exception_state.ThrowSecurityError(file_error::kSecurityErrorMessage);
return nullptr;
} else if (secure_context->GetSecurityOrigin()->IsLocal()) {
UseCounter::Count(secure_context, WebFeature::kFileAccessedFileSystem);
@@ -155,7 +155,7 @@ EntrySync* WorkerGlobalScopeFileSystem::webkitResolveLocalFileSystemSyncURL(
ExecutionContext* secure_context = worker.GetExecutionContext();
if (!secure_context->GetSecurityOrigin()->CanAccessFileSystem() ||
!secure_context->GetSecurityOrigin()->CanRequest(completed_url)) {
- exception_state.ThrowSecurityError(FileError::kSecurityErrorMessage);
+ exception_state.ThrowSecurityError(file_error::kSecurityErrorMessage);
return nullptr;
} else if (secure_context->GetSecurityOrigin()->IsLocal()) {
UseCounter::Count(secure_context, WebFeature::kFileAccessedFileSystem);