diff --git a/LayoutTests/imported/w3c/ChangeLog b/LayoutTests/imported/w3c/ChangeLog index 4ca6e7d7d3b30..b2d8f450b8a9c 100644 --- a/LayoutTests/imported/w3c/ChangeLog +++ b/LayoutTests/imported/w3c/ChangeLog @@ -1,3 +1,15 @@ +2019-04-02 Chris Dumez + + [Fetch API] Allow used body replacement in Request constructor + https://bugs.webkit.org/show_bug.cgi?id=183703 + + + Reviewed by Youenn Fablet. + + Rebaseline WPT test now that one more check is passing. + + * web-platform-tests/fetch/api/request/request-disturbed-expected.txt: + 2019-04-02 Chris Dumez Unreviewed, rolling out r243551. diff --git a/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-disturbed-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-disturbed-expected.txt index 5b57d0a279417..e32dcb5ed8d3f 100644 --- a/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-disturbed-expected.txt +++ b/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-disturbed-expected.txt @@ -3,7 +3,7 @@ PASS Request's body: initial state PASS Request without body cannot be disturbed PASS Check cloning a disturbed request PASS Check creating a new request from a disturbed request -FAIL Check creating a new request with a new body from a disturbed request Request input is disturbed or locked. +PASS Check creating a new request with a new body from a disturbed request FAIL Input request used for creating new request became disturbed assert_equals: body should not change expected object "[object ReadableStream]" but got object "[object ReadableStream]" FAIL Input request used for creating new request became disturbed even if body is not used assert_true: bodyUsed is true when request is disturbed expected true got false PASS Check consuming a disturbed request diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog index f66952bbb00ad..f171a68c4914b 100644 --- a/Source/WebCore/ChangeLog +++ b/Source/WebCore/ChangeLog @@ -1,3 +1,19 @@ +2019-04-02 Chris Dumez + + [Fetch API] Allow used body replacement in Request constructor + https://bugs.webkit.org/show_bug.cgi?id=183703 + + + Reviewed by Youenn Fablet. + + Allow used body replacement in Request constructor as per: + - https://github.com/whatwg/fetch/pull/675 + + No new tests, rebaseline existing test. + + * Modules/fetch/FetchRequest.cpp: + (WebCore::FetchRequest::initializeWith): + 2019-04-02 Chris Dumez Unreviewed, rolling out r243551. diff --git a/Source/WebCore/Modules/fetch/FetchRequest.cpp b/Source/WebCore/Modules/fetch/FetchRequest.cpp index 9f2eb36eed79e..c37def31fdd3b 100644 --- a/Source/WebCore/Modules/fetch/FetchRequest.cpp +++ b/Source/WebCore/Modules/fetch/FetchRequest.cpp @@ -203,9 +203,6 @@ ExceptionOr FetchRequest::initializeWith(const String& url, Init&& init) ExceptionOr FetchRequest::initializeWith(FetchRequest& input, Init&& init) { - if (input.isDisturbedOrLocked()) - return Exception {TypeError, "Request input is disturbed or locked."_s }; - m_request = input.m_request; m_options = input.m_options; m_referrer = input.m_referrer; @@ -240,6 +237,9 @@ ExceptionOr FetchRequest::initializeWith(FetchRequest& input, Init&& init) if (setBodyResult.hasException()) return setBodyResult.releaseException(); } else { + if (input.isDisturbedOrLocked()) + return Exception { TypeError, "Request input is disturbed or locked."_s }; + auto setBodyResult = setBody(input); if (setBodyResult.hasException()) return setBodyResult.releaseException();