diff options
Diffstat (limited to 'chromium/third_party/WebKit/Source/web/WebFileSystemCallbacksImpl.cpp')
-rw-r--r-- | chromium/third_party/WebKit/Source/web/WebFileSystemCallbacksImpl.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/chromium/third_party/WebKit/Source/web/WebFileSystemCallbacksImpl.cpp b/chromium/third_party/WebKit/Source/web/WebFileSystemCallbacksImpl.cpp index a882f926a9a..b993b344337 100644 --- a/chromium/third_party/WebKit/Source/web/WebFileSystemCallbacksImpl.cpp +++ b/chromium/third_party/WebKit/Source/web/WebFileSystemCallbacksImpl.cpp @@ -32,6 +32,8 @@ #include "AsyncFileSystemChromium.h" #include "AsyncFileWriterChromium.h" +#include "WorkerAsyncFileSystemChromium.h" +#include "core/dom/ScriptExecutionContext.h" #include "core/platform/AsyncFileSystemCallbacks.h" #include "core/platform/FileMetadata.h" #include "public/platform/WebFileInfo.h" @@ -45,14 +47,17 @@ using namespace WebCore; namespace WebKit { -WebFileSystemCallbacksImpl::WebFileSystemCallbacksImpl(PassOwnPtr<AsyncFileSystemCallbacks> callbacks) +WebFileSystemCallbacksImpl::WebFileSystemCallbacksImpl(PassOwnPtr<AsyncFileSystemCallbacks> callbacks, ScriptExecutionContext* context, FileSystemSynchronousType synchronousType) : m_callbacks(callbacks) + , m_context(context) + , m_synchronousType(synchronousType) { ASSERT(m_callbacks); } WebFileSystemCallbacksImpl::WebFileSystemCallbacksImpl(PassOwnPtr<AsyncFileSystemCallbacks> callbacks, PassOwnPtr<AsyncFileWriterChromium> writer) : m_callbacks(callbacks) + , m_context(0) , m_writer(writer) { ASSERT(m_callbacks); @@ -112,6 +117,11 @@ void WebFileSystemCallbacksImpl::didOpenFileSystem(const WebString& name, const { // This object is intended to delete itself on exit. OwnPtr<WebFileSystemCallbacksImpl> callbacks = adoptPtr(this); + + if (m_context && m_context->isWorkerGlobalScope()) { + m_callbacks->didOpenFileSystem(name, rootURL, WorkerAsyncFileSystemChromium::create(m_context, m_synchronousType)); + return; + } m_callbacks->didOpenFileSystem(name, rootURL, AsyncFileSystemChromium::create()); } |