Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(448)

Unified Diff: Source/core/fetch/ResourceLoader.cpp

Issue 603903003: [Streams] Pass WebDataConsumerHandle when the response arrives. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@web-data-pipe
Patch Set: rebase Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/core/fetch/ResourceLoader.cpp
diff --git a/Source/core/fetch/ResourceLoader.cpp b/Source/core/fetch/ResourceLoader.cpp
index eebabb2c79ae049bf01a8f8fc19ea50d90c3ca36..e78e176555b7f195019af0b95bdfa108ae559bd9 100644
--- a/Source/core/fetch/ResourceLoader.cpp
+++ b/Source/core/fetch/ResourceLoader.cpp
@@ -346,10 +346,12 @@ bool ResourceLoader::responseNeedsAccessControlCheck() const
return m_options.corsEnabled == IsCORSEnabled;
}
-void ResourceLoader::didReceiveResponse(blink::WebURLLoader*, const blink::WebURLResponse& response)
+void ResourceLoader::didReceiveResponse(blink::WebURLLoader*, const blink::WebURLResponse& response, WebDataConsumerHandle* rawHandle)
{
ASSERT(!response.isNull());
ASSERT(m_state == Initialized);
+ // |rawHandle|'s ownership is transferred to the callee.
+ OwnPtr<WebDataConsumerHandle> handle = adoptPtr(rawHandle);
bool isMultipartPayload = response.isMultipartPayload();
bool isValidStateTransition = (m_connectionState == ConnectionStateStarted || m_connectionState == ConnectionStateReceivedResponse);
@@ -392,7 +394,7 @@ void ResourceLoader::didReceiveResponse(blink::WebURLLoader*, const blink::WebUR
// Reference the object in this method since the additional processing can do
// anything including removing the last reference to this object.
RefPtrWillBeRawPtr<ResourceLoader> protect(this);
- m_resource->responseReceived(resourceResponse);
+ m_resource->responseReceived(resourceResponse, handle.release());
if (m_state == Terminated)
return;
@@ -431,6 +433,11 @@ void ResourceLoader::didReceiveResponse(blink::WebURLLoader*, const blink::WebUR
cancel();
}
+void ResourceLoader::didReceiveResponse(blink::WebURLLoader* loader, const blink::WebURLResponse& response)
+{
+ didReceiveResponse(loader, response, nullptr);
+}
+
void ResourceLoader::didReceiveData(blink::WebURLLoader*, const char* data, int length, int encodedDataLength)
{
ASSERT(m_state != Terminated);

Powered by Google App Engine
This is Rietveld 408576698