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

Unified Diff: Source/modules/fetch/BodyStreamBuffer.cpp

Issue 1301523002: [Fetch API] Send request body as a FormData. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 5 years, 4 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/modules/fetch/BodyStreamBuffer.cpp
diff --git a/Source/modules/fetch/BodyStreamBuffer.cpp b/Source/modules/fetch/BodyStreamBuffer.cpp
index 341b526e5413aae3e2085c1e9d2e671a03a29899..4cab5bc0b9f0507de40b886e891c5f055108333f 100644
--- a/Source/modules/fetch/BodyStreamBuffer.cpp
+++ b/Source/modules/fetch/BodyStreamBuffer.cpp
@@ -10,6 +10,7 @@
#include "core/dom/ExceptionCode.h"
#include "modules/fetch/DataConsumerHandleUtil.h"
#include "platform/blob/BlobData.h"
+#include "platform/network/FormData.h"
namespace blink {
@@ -117,6 +118,20 @@ PassRefPtr<BlobDataHandle> BodyStreamBuffer::drainAsBlobDataHandle(FetchDataCons
return nullptr;
}
+PassRefPtr<FormData> BodyStreamBuffer::drainAsFormData()
+{
+ ASSERT(!isLocked());
+ if (ReadableStream::Closed == m_stream->stateInternal() || ReadableStream::Errored == m_stream->stateInternal())
+ return nullptr;
+
+ RefPtr<FormData> formData = m_reader->drainAsFormData();
+ if (formData) {
+ close();
+ return formData.release();
+ }
+ return nullptr;
+}
+
PassOwnPtr<FetchDataConsumerHandle> BodyStreamBuffer::lock(ExecutionContext* executionContext)
{
ASSERT(!isLocked());

Powered by Google App Engine
This is Rietveld 408576698