Index: third_party/WebKit/Source/core/loader/WorkerThreadableLoader.cpp |
diff --git a/third_party/WebKit/Source/core/loader/WorkerThreadableLoader.cpp b/third_party/WebKit/Source/core/loader/WorkerThreadableLoader.cpp |
index f481366ca67ecddb363c5ebe91be20c0204d412b..ed7d314714ce77f1f1f57565202663a82b8521e9 100644 |
--- a/third_party/WebKit/Source/core/loader/WorkerThreadableLoader.cpp |
+++ b/third_party/WebKit/Source/core/loader/WorkerThreadableLoader.cpp |
@@ -42,6 +42,7 @@ |
#include "platform/network/ResourceRequest.h" |
#include "platform/network/ResourceResponse.h" |
#include "platform/network/ResourceTimingInfo.h" |
+#include "platform/weborigin/KURL.h" |
#include "platform/weborigin/SecurityPolicy.h" |
#include "wtf/debug/Alias.h" |
#include <memory> |
@@ -323,6 +324,13 @@ void WorkerThreadableLoader::didSendData( |
m_client->didSendData(bytesSent, totalBytesToBeSent); |
} |
+void WorkerThreadableLoader::didReceiveRedirectTo(const KURL& url) { |
+ DCHECK(!isMainThread()); |
+ if (!m_client) |
+ return; |
+ m_client->didReceiveRedirectTo(url); |
+} |
+ |
void WorkerThreadableLoader::didReceiveResponse( |
unsigned long identifier, |
std::unique_ptr<CrossThreadResourceResponseData> responseData, |
@@ -489,6 +497,19 @@ void WorkerThreadableLoader::MainThreadLoaderHolder::didSendData( |
bytesSent, totalBytesToBeSent)); |
} |
+void WorkerThreadableLoader::MainThreadLoaderHolder::didReceiveRedirectTo( |
+ const KURL& url) { |
+ DCHECK(isMainThread()); |
+ CrossThreadPersistent<WorkerThreadableLoader> workerLoader = |
+ m_workerLoader.get(); |
+ if (!workerLoader || !m_forwarder) |
+ return; |
+ m_forwarder->forwardTask( |
+ BLINK_FROM_HERE, |
+ createCrossThreadTask(&WorkerThreadableLoader::didReceiveRedirectTo, |
+ workerLoader, url)); |
+} |
+ |
void WorkerThreadableLoader::MainThreadLoaderHolder::didReceiveResponse( |
unsigned long identifier, |
const ResourceResponse& response, |