Title: [210905] branches/safari-603-branch

Diff

Modified: branches/safari-603-branch/LayoutTests/ChangeLog (210904 => 210905)


--- branches/safari-603-branch/LayoutTests/ChangeLog	2017-01-19 03:06:56 UTC (rev 210904)
+++ branches/safari-603-branch/LayoutTests/ChangeLog	2017-01-19 03:07:01 UTC (rev 210905)
@@ -1,5 +1,18 @@
 2017-01-18  Matthew Hanson  <[email protected]>
 
+        Merge r210860. rdar://problem/30080035
+
+    2017-01-18  Youenn Fablet  <[email protected]>
+
+            Reject fetch promise in case of ReadableStream upload
+            https://bugs.webkit.org/show_bug.cgi?id=167145
+
+            Reviewed by Alex Christensen.
+
+            * TestExpectations:
+
+2017-01-18  Matthew Hanson  <[email protected]>
+
         Merge r210831. rdar://problem/29057611
 
     2017-01-17  Zalan Bujtas  <[email protected]>

Modified: branches/safari-603-branch/LayoutTests/imported/w3c/ChangeLog (210904 => 210905)


--- branches/safari-603-branch/LayoutTests/imported/w3c/ChangeLog	2017-01-19 03:06:56 UTC (rev 210904)
+++ branches/safari-603-branch/LayoutTests/imported/w3c/ChangeLog	2017-01-19 03:07:01 UTC (rev 210905)
@@ -1,3 +1,17 @@
+2017-01-18  Matthew Hanson  <[email protected]>
+
+        Merge r210860. rdar://problem/30080035
+
+    2017-01-18  Youenn Fablet  <[email protected]>
+
+            Reject fetch promise in case of ReadableStream upload
+            https://bugs.webkit.org/show_bug.cgi?id=167145
+
+            Reviewed by Alex Christensen.
+
+            * web-platform-tests/fetch/api/basic/request-upload-expected.txt:
+            * web-platform-tests/fetch/api/basic/request-upload-worker-expected.txt:
+
 2017-01-12  Matthew Hanson  <[email protected]>
 
         Merge r210616. rdar://problem/29971105

Modified: branches/safari-603-branch/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/request-upload-expected.txt (210904 => 210905)


--- branches/safari-603-branch/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/request-upload-expected.txt	2017-01-19 03:06:56 UTC (rev 210904)
+++ branches/safari-603-branch/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/request-upload-expected.txt	2017-01-19 03:07:01 UTC (rev 210905)
@@ -10,4 +10,5 @@
 PASS Fetch with POST with Float64Array body 
 PASS Fetch with POST with DataView body 
 PASS Fetch with POST with Blob body with mime type 
+FAIL Fetch with POST with ReadableStream promise_test: Unhandled rejection with value: object "TypeError: ReadableStream uploading is not supported"
 

Modified: branches/safari-603-branch/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/request-upload-worker-expected.txt (210904 => 210905)


--- branches/safari-603-branch/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/request-upload-worker-expected.txt	2017-01-19 03:06:56 UTC (rev 210904)
+++ branches/safari-603-branch/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/request-upload-worker-expected.txt	2017-01-19 03:07:01 UTC (rev 210905)
@@ -10,4 +10,4 @@
 PASS Fetch with POST with Float64Array body 
 PASS Fetch with POST with DataView body 
 PASS Fetch with POST with Blob body with mime type 
-
+FAIL Fetch with POST with ReadableStream promise_test: Unhandled rejection with value: object "TypeError: ReadableStream uploading is not supported"

Modified: branches/safari-603-branch/Source/WebCore/ChangeLog (210904 => 210905)


--- branches/safari-603-branch/Source/WebCore/ChangeLog	2017-01-19 03:06:56 UTC (rev 210904)
+++ branches/safari-603-branch/Source/WebCore/ChangeLog	2017-01-19 03:07:01 UTC (rev 210905)
@@ -1,5 +1,26 @@
 2017-01-18  Matthew Hanson  <[email protected]>
 
+        Merge r210860. rdar://problem/30080035
+
+    2017-01-18  Youenn Fablet  <[email protected]>
+
+            Reject fetch promise in case of ReadableStream upload
+            https://bugs.webkit.org/show_bug.cgi?id=167145
+
+            Reviewed by Alex Christensen.
+
+            Covered by rebased tests.
+
+            * Modules/fetch/FetchBody.cpp:
+            (WebCore::FetchBody::extract): Storing the fact that body data is represented as a ReadableStream.
+            * Modules/fetch/FetchBody.h:
+            (WebCore::FetchBody::isReadableStream):
+            * Modules/fetch/FetchRequest.h:
+            * Modules/fetch/FetchResponse.cpp:
+            (WebCore::FetchResponse::fetch): Rejecting if request body data is a ReadableStream.
+
+2017-01-18  Matthew Hanson  <[email protected]>
+
         Merge r210774. rdar://problem/30019773
 
     2017-01-14  Chris Dumez  <[email protected]>

Modified: branches/safari-603-branch/Source/WebCore/Modules/fetch/FetchBody.cpp (210904 => 210905)


--- branches/safari-603-branch/Source/WebCore/Modules/fetch/FetchBody.cpp	2017-01-19 03:06:56 UTC (rev 210904)
+++ branches/safari-603-branch/Source/WebCore/Modules/fetch/FetchBody.cpp	2017-01-19 03:07:01 UTC (rev 210905)
@@ -68,8 +68,11 @@
         contentType = HTTPHeaderValues::formURLEncodedContentType();
         return FetchBody(*JSURLSearchParams::toWrapped(value));
     }
-    if (value.inherits(JSReadableStream::info()))
-        return FetchBody();
+    if (value.inherits(JSReadableStream::info())) {
+        FetchBody body;
+        body.m_isReadableStream = true;
+        return WTFMove(body);
+    }
     if (value.inherits(JSC::JSArrayBuffer::info())) {
         ArrayBuffer* data = ""
         ASSERT(data);

Modified: branches/safari-603-branch/Source/WebCore/Modules/fetch/FetchBody.h (210904 => 210905)


--- branches/safari-603-branch/Source/WebCore/Modules/fetch/FetchBody.h	2017-01-19 03:06:56 UTC (rev 210904)
+++ branches/safari-603-branch/Source/WebCore/Modules/fetch/FetchBody.h	2017-01-19 03:07:01 UTC (rev 210905)
@@ -68,6 +68,7 @@
     bool isArrayBufferView() const { return WTF::holds_alternative<Ref<const ArrayBufferView>>(m_data); }
     bool isURLSearchParams() const { return WTF::holds_alternative<Ref<const URLSearchParams>>(m_data); }
     bool isText() const { return WTF::holds_alternative<String>(m_data); }
+    bool isReadableStream() const { return m_isReadableStream; }
 
     static std::optional<FetchBody> extract(ScriptExecutionContext&, JSC::ExecState&, JSC::JSValue, String&);
     static FetchBody loadingBody() { return { }; }
@@ -114,6 +115,9 @@
 
     FetchBodyConsumer m_consumer { FetchBodyConsumer::Type::None };
     RefPtr<DeferredPromise> m_consumePromise;
+
+    // FIXME: We probably want to keep the stream as a specific field in m_data when we will support stream data upload.
+    bool m_isReadableStream { false };
 };
 
 } // namespace WebCore

Modified: branches/safari-603-branch/Source/WebCore/Modules/fetch/FetchRequest.h (210904 => 210905)


--- branches/safari-603-branch/Source/WebCore/Modules/fetch/FetchRequest.h	2017-01-19 03:06:56 UTC (rev 210904)
+++ branches/safari-603-branch/Source/WebCore/Modules/fetch/FetchRequest.h	2017-01-19 03:07:01 UTC (rev 210905)
@@ -96,6 +96,7 @@
 
     const FetchOptions& fetchOptions() const { return m_internalRequest.options; }
     ResourceRequest internalRequest() const;
+    bool isBodyReadableStream() const { return !isBodyNull() && body().isReadableStream(); }
 
     const String& internalRequestReferrer() const { return m_internalRequest.referrer; }
 

Modified: branches/safari-603-branch/Source/WebCore/Modules/fetch/FetchResponse.cpp (210904 => 210905)


--- branches/safari-603-branch/Source/WebCore/Modules/fetch/FetchResponse.cpp	2017-01-19 03:06:56 UTC (rev 210904)
+++ branches/safari-603-branch/Source/WebCore/Modules/fetch/FetchResponse.cpp	2017-01-19 03:07:01 UTC (rev 210905)
@@ -100,6 +100,10 @@
 
 void FetchResponse::fetch(ScriptExecutionContext& context, FetchRequest& request, FetchPromise&& promise)
 {
+    if (request.isBodyReadableStream()) {
+        promise.reject(TypeError, "ReadableStream uploading is not supported");
+        return;
+    }
     auto response = adoptRef(*new FetchResponse(context, FetchBody::loadingBody(), FetchHeaders::create(FetchHeaders::Guard::Immutable), { }));
 
     // Setting pending activity until BodyLoader didFail or didSucceed callback is called.
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to