summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/WebKit/Source/modules/filesystem/DraggedIsolatedFileSystem.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/WebKit/Source/modules/filesystem/DraggedIsolatedFileSystem.cpp')
-rw-r--r--chromium/third_party/WebKit/Source/modules/filesystem/DraggedIsolatedFileSystem.cpp29
1 files changed, 20 insertions, 9 deletions
diff --git a/chromium/third_party/WebKit/Source/modules/filesystem/DraggedIsolatedFileSystem.cpp b/chromium/third_party/WebKit/Source/modules/filesystem/DraggedIsolatedFileSystem.cpp
index d9c368a0c1a..bbf64c4ab38 100644
--- a/chromium/third_party/WebKit/Source/modules/filesystem/DraggedIsolatedFileSystem.cpp
+++ b/chromium/third_party/WebKit/Source/modules/filesystem/DraggedIsolatedFileSystem.cpp
@@ -43,14 +43,14 @@ DraggedIsolatedFileSystem::~DraggedIsolatedFileSystem()
{
}
-DOMFileSystem* DraggedIsolatedFileSystem::getDOMFileSystem(ExecutionContext* executionContext)
+DOMFileSystem* DraggedIsolatedFileSystem::getDOMFileSystem(DataObject* host, ExecutionContext* executionContext)
{
- ASSERT(!m_filesystemId.isEmpty());
- if (!m_filesystem) {
- ASSERT(executionContext);
- m_filesystem = DOMFileSystem::createIsolatedFileSystem(executionContext, m_filesystemId);
- }
- return m_filesystem.get();
+ DraggedIsolatedFileSystem* draggedIsolatedFileSystem = from(host);
+ if (!draggedIsolatedFileSystem)
+ return 0;
+ if (!draggedIsolatedFileSystem->m_filesystem)
+ draggedIsolatedFileSystem->m_filesystem = DOMFileSystem::createIsolatedFileSystem(executionContext, host->filesystemId());
+ return draggedIsolatedFileSystem->m_filesystem.get();
}
// static
@@ -60,9 +60,20 @@ const char* DraggedIsolatedFileSystem::supplementName()
return "DraggedIsolatedFileSystem";
}
-DraggedIsolatedFileSystem::DraggedIsolatedFileSystem(const String& filesystemId)
- : m_filesystemId(filesystemId)
+DraggedIsolatedFileSystem* DraggedIsolatedFileSystem::from(DataObject* dataObject)
{
+ return static_cast<DraggedIsolatedFileSystem*>(WillBeHeapSupplement<DataObject>::from(dataObject, supplementName()));
+}
+
+DraggedIsolatedFileSystem::DraggedIsolatedFileSystem(DataObject& host, const String& filesystemId)
+{
+ host.setFilesystemId(filesystemId);
+}
+
+void DraggedIsolatedFileSystem::trace(Visitor* visitor)
+{
+ visitor->trace(m_filesystem);
+ WillBeHeapSupplement<DataObject>::trace(visitor);
}
} // namespace WebCore