summaryrefslogtreecommitdiff
path: root/chromium/third_party/WebKit/Source/web/WebFileSystemCallbacksImpl.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/WebKit/Source/web/WebFileSystemCallbacksImpl.cpp')
-rw-r--r--chromium/third_party/WebKit/Source/web/WebFileSystemCallbacksImpl.cpp12
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());
}