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

Unified Diff: third_party/WebKit/Source/modules/fetch/FetchRequestData.cpp

Issue 1418813004: [Fetch API] Reflect spec changes of bodyUsed property (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 1 month 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: third_party/WebKit/Source/modules/fetch/FetchRequestData.cpp
diff --git a/third_party/WebKit/Source/modules/fetch/FetchRequestData.cpp b/third_party/WebKit/Source/modules/fetch/FetchRequestData.cpp
index 88c6467fdaa6bdad2f832acd5f1074fa0af0a477..260ab32ed29f20fd429f2e9a2b1f2f119639097f 100644
--- a/third_party/WebKit/Source/modules/fetch/FetchRequestData.cpp
+++ b/third_party/WebKit/Source/modules/fetch/FetchRequestData.cpp
@@ -8,7 +8,9 @@
#include "core/dom/ExecutionContext.h"
#include "core/fetch/ResourceLoaderOptions.h"
#include "core/loader/ThreadableLoader.h"
+#include "core/streams/ReadableStream.h"
#include "modules/fetch/BodyStreamBuffer.h"
+#include "modules/fetch/DataConsumerHandleUtil.h"
#include "modules/fetch/DataConsumerTee.h"
#include "modules/fetch/FetchBlobDataConsumerHandle.h"
#include "modules/fetch/FetchHeaderList.h"
@@ -66,8 +68,7 @@ FetchRequestData* FetchRequestData::clone(ExecutionContext* executionContext)
FetchRequestData* request = FetchRequestData::cloneExceptBody();
if (m_buffer) {
OwnPtr<FetchDataConsumerHandle> dest1, dest2;
- // TODO(yhirano): unlock the buffer.
- DataConsumerTee::create(executionContext, m_buffer->lock(executionContext), &dest1, &dest2);
+ DataConsumerTee::create(executionContext, m_buffer->releaseHandle(executionContext), &dest1, &dest2);
m_buffer = new BodyStreamBuffer(dest1.release());
request->m_buffer = new BodyStreamBuffer(dest2.release());
}
@@ -77,8 +78,11 @@ FetchRequestData* FetchRequestData::clone(ExecutionContext* executionContext)
FetchRequestData* FetchRequestData::pass(ExecutionContext* executionContext)
{
FetchRequestData* request = FetchRequestData::cloneExceptBody();
- request->m_buffer = m_buffer;
- m_buffer = nullptr;
+ if (m_buffer) {
+ request->m_buffer = m_buffer;
+ m_buffer = new BodyStreamBuffer(createFetchDataConsumerHandleFromWebHandle(createDoneDataConsumerHandle()));
+ m_buffer->stream()->setIsDisturbed();
+ }
return request;
}

Powered by Google App Engine
This is Rietveld 408576698