Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Can't decode empty formdata with fetch
https://bugs.webkit.org/show_bug.cgi?id=225238

Reviewed by Youenn Fablet.

* LayoutTests/imported/w3c/web-platform-tests/fetch/api/body/formdata.any-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/fetch/api/body/formdata.any.js:
(promise_test.async t):
* LayoutTests/imported/w3c/web-platform-tests/fetch/api/body/formdata.any.worker-expected.txt:
* Source/WebCore/Modules/fetch/FetchBodyConsumer.cpp:
(WebCore::FetchBodyConsumer::packageFormData):

Canonical link: https://commits.webkit.org/253047@main
  • Loading branch information
Alex Christensen authored and achristensen07 committed Aug 2, 2022
1 parent e485c13 commit 0cd6258
Show file tree
Hide file tree
Showing 4 changed files with 6 additions and 6 deletions.
@@ -1,4 +1,4 @@

FAIL Consume empty response.formData() as FormData promise_test: Unhandled rejection with value: object "TypeError: Type error"
FAIL Consume empty request.formData() as FormData promise_test: Unhandled rejection with value: object "TypeError: Type error"
PASS Consume empty response.formData() as FormData
PASS Consume empty request.formData() as FormData

Expand Up @@ -2,6 +2,7 @@ promise_test(async t => {
const res = new Response(new FormData());
const fd = await res.formData();
assert_true(fd instanceof FormData);
for (const pair of fd.entries()) { assert_true(false); }
}, 'Consume empty response.formData() as FormData');

promise_test(async t => {
Expand All @@ -11,4 +12,5 @@ promise_test(async t => {
});
const fd = await req.formData();
assert_true(fd instanceof FormData);
for (const pair of fd.entries()) { assert_true(false); }
}, 'Consume empty request.formData() as FormData');
@@ -1,4 +1,4 @@

FAIL Consume empty response.formData() as FormData promise_test: Unhandled rejection with value: object "TypeError: Type error"
FAIL Consume empty request.formData() as FormData promise_test: Unhandled rejection with value: object "TypeError: Type error"
PASS Consume empty response.formData() as FormData
PASS Consume empty request.formData() as FormData

2 changes: 0 additions & 2 deletions Source/WebCore/Modules/fetch/FetchBodyConsumer.cpp
Expand Up @@ -194,8 +194,6 @@ RefPtr<DOMFormData> FetchBodyConsumer::packageFormData(ScriptExecutionContext* c
if (!currentBoundary)
return nullptr;
const uint8_t* nextBoundary = static_cast<const uint8_t*>(memmem(currentBoundary + boundaryLength, length - (currentBoundary + boundaryLength - data), boundary.data(), boundaryLength));
if (!nextBoundary)
return nullptr;
while (nextBoundary) {
parseMultipartPart(currentBoundary + boundaryLength, nextBoundary - currentBoundary - boundaryLength - strlen("\r\n"), form.get());
currentBoundary = nextBoundary;
Expand Down

0 comments on commit 0cd6258

Please sign in to comment.