Index: third_party/WebKit/Source/modules/filesystem/LocalFileSystem.cpp |
diff --git a/third_party/WebKit/Source/modules/filesystem/LocalFileSystem.cpp b/third_party/WebKit/Source/modules/filesystem/LocalFileSystem.cpp |
index 2a244b616d366c2eaa652c2c4b438305354282da..4a5f2686031ff935a67b58df45cf7058e3801497 100644 |
--- a/third_party/WebKit/Source/modules/filesystem/LocalFileSystem.cpp |
+++ b/third_party/WebKit/Source/modules/filesystem/LocalFileSystem.cpp |
@@ -72,11 +72,6 @@ class CallbackWrapper final |
std::unique_ptr<AsyncFileSystemCallbacks> m_callbacks; |
}; |
-LocalFileSystem* LocalFileSystem::create( |
- std::unique_ptr<FileSystemClient> client) { |
- return new LocalFileSystem(std::move(client)); |
-} |
- |
LocalFileSystem::~LocalFileSystem() {} |
void LocalFileSystem::resolveURL( |
@@ -214,8 +209,13 @@ void LocalFileSystem::deleteFileSystemInternal(ExecutionContext* context, |
callbacks->release()); |
} |
-LocalFileSystem::LocalFileSystem(std::unique_ptr<FileSystemClient> client) |
- : m_client(std::move(client)) {} |
+LocalFileSystem::LocalFileSystem(LocalFrame& frame, |
+ std::unique_ptr<FileSystemClient> client) |
+ : Supplement<LocalFrame>(frame), m_client(std::move(client)) {} |
+ |
+LocalFileSystem::LocalFileSystem(WorkerClients& workerClients, |
+ std::unique_ptr<FileSystemClient> client) |
+ : Supplement<WorkerClients>(workerClients), m_client(std::move(client)) {} |
DEFINE_TRACE(LocalFileSystem) { |
Supplement<LocalFrame>::trace(visitor); |
@@ -227,26 +227,33 @@ const char* LocalFileSystem::supplementName() { |
} |
LocalFileSystem* LocalFileSystem::from(ExecutionContext& context) { |
- if (context.isDocument()) |
- return static_cast<LocalFileSystem*>(Supplement<LocalFrame>::from( |
- toDocument(context).frame(), supplementName())); |
+ if (context.isDocument()) { |
+ LocalFileSystem* fileSystem = |
+ static_cast<LocalFileSystem*>(Supplement<LocalFrame>::from( |
+ toDocument(context).frame(), supplementName())); |
+ DCHECK(fileSystem); |
+ return fileSystem; |
+ } |
WorkerClients* clients = toWorkerGlobalScope(context).clients(); |
ASSERT(clients); |
- return static_cast<LocalFileSystem*>( |
+ LocalFileSystem* fileSystem = static_cast<LocalFileSystem*>( |
Supplement<WorkerClients>::from(clients, supplementName())); |
+ DCHECK(fileSystem); |
+ return fileSystem; |
} |
void provideLocalFileSystemTo(LocalFrame& frame, |
std::unique_ptr<FileSystemClient> client) { |
frame.provideSupplement(LocalFileSystem::supplementName(), |
- LocalFileSystem::create(std::move(client))); |
+ new LocalFileSystem(frame, std::move(client))); |
} |
-void provideLocalFileSystemToWorker(WorkerClients* clients, |
+void provideLocalFileSystemToWorker(WorkerClients* workerClients, |
std::unique_ptr<FileSystemClient> client) { |
- clients->provideSupplement(LocalFileSystem::supplementName(), |
- LocalFileSystem::create(std::move(client))); |
+ Supplement<WorkerClients>::provideTo( |
+ *workerClients, LocalFileSystem::supplementName(), |
+ new LocalFileSystem(*workerClients, std::move(client))); |
} |
} // namespace blink |