summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/WebKit/Source/core/loader/ThreadableLoader.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/WebKit/Source/core/loader/ThreadableLoader.cpp')
-rw-r--r--chromium/third_party/WebKit/Source/core/loader/ThreadableLoader.cpp26
1 files changed, 15 insertions, 11 deletions
diff --git a/chromium/third_party/WebKit/Source/core/loader/ThreadableLoader.cpp b/chromium/third_party/WebKit/Source/core/loader/ThreadableLoader.cpp
index 476f915fe9e..ed54bac70d6 100644
--- a/chromium/third_party/WebKit/Source/core/loader/ThreadableLoader.cpp
+++ b/chromium/third_party/WebKit/Source/core/loader/ThreadableLoader.cpp
@@ -34,33 +34,37 @@
#include "core/dom/Document.h"
#include "core/dom/ExecutionContext.h"
#include "core/loader/DocumentThreadableLoader.h"
+#include "core/loader/ThreadableLoaderClientWrapper.h"
+#include "core/loader/WorkerLoaderClientBridge.h"
#include "core/loader/WorkerThreadableLoader.h"
#include "core/workers/WorkerGlobalScope.h"
#include "core/workers/WorkerRunLoop.h"
+#include "core/workers/WorkerThread.h"
namespace WebCore {
-PassRefPtr<ThreadableLoader> ThreadableLoader::create(ExecutionContext* context, ThreadableLoaderClient* client, const ResourceRequest& request, const ThreadableLoaderOptions& options)
+PassRefPtr<ThreadableLoader> ThreadableLoader::create(ExecutionContext& context, ThreadableLoaderClient* client, const ResourceRequest& request, const ThreadableLoaderOptions& options, const ResourceLoaderOptions& resourceLoaderOptions)
{
ASSERT(client);
- ASSERT(context);
- if (context->isWorkerGlobalScope())
- return WorkerThreadableLoader::create(toWorkerGlobalScope(context), client, WorkerRunLoop::defaultMode(), request, options);
+ if (context.isWorkerGlobalScope()) {
+ WorkerGlobalScope& workerGlobalScope = toWorkerGlobalScope(context);
+ RefPtr<ThreadableLoaderClientWrapper> clientWrapper(ThreadableLoaderClientWrapper::create(client));
+ OwnPtr<ThreadableLoaderClient> clientBridge(WorkerLoaderClientBridge::create(clientWrapper, workerGlobalScope.thread()->workerLoaderProxy()));
+ return WorkerThreadableLoader::create(workerGlobalScope, clientWrapper, clientBridge.release(), request, options, resourceLoaderOptions);
+ }
- return DocumentThreadableLoader::create(toDocument(context), client, request, options);
+ return DocumentThreadableLoader::create(toDocument(context), client, request, options, resourceLoaderOptions);
}
-void ThreadableLoader::loadResourceSynchronously(ExecutionContext* context, const ResourceRequest& request, ThreadableLoaderClient& client, const ThreadableLoaderOptions& options)
+void ThreadableLoader::loadResourceSynchronously(ExecutionContext& context, const ResourceRequest& request, ThreadableLoaderClient& client, const ThreadableLoaderOptions& options, const ResourceLoaderOptions& resourceLoaderOptions)
{
- ASSERT(context);
-
- if (context->isWorkerGlobalScope()) {
- WorkerThreadableLoader::loadResourceSynchronously(toWorkerGlobalScope(context), request, client, options);
+ if (context.isWorkerGlobalScope()) {
+ WorkerThreadableLoader::loadResourceSynchronously(toWorkerGlobalScope(context), request, client, options, resourceLoaderOptions);
return;
}
- DocumentThreadableLoader::loadResourceSynchronously(toDocument(context), request, client, options);
+ DocumentThreadableLoader::loadResourceSynchronously(toDocument(context), request, client, options, resourceLoaderOptions);
}
} // namespace WebCore