Bug 221549

Summary: Empty <input type=file> controls don't show up in the urlencoded and text/plain enctypes
Product: WebKit Reporter: Andreu Botella <andreu>
Component: FormsAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: achristensen, ap, beidson, bfulgham, cdumez, changseok, darin, esprehn+autocc, ews-watchlist, gyuyoung.kim, mifenton, webkit-bug-importer, wenson_hsieh
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch none

Andreu Botella
Reported 2021-02-08 06:44:45 PST
The HTML spec's algorithm to construct the entry list (https://html.spec.whatwg.org/#constructing-the-form-data-set) requires that an <input type=file> control with no selected files is represented in the entry list as a File object. And WebKit follows this for the multipart/form-data enctype, but in the urlencoded and text/plain serializations that entry simply doesn't show up in the payload. Tests: https://wpt.fyi/results/html/semantics/forms/form-submission-0/form-data-set-empty-file.window.html?label=pr_head&max-count=1&pr=27523 (this test file also tests for bug 185416)
Attachments
Patch (4.11 KB, patch)
2021-11-14 18:40 PST, Andreu Botella
no flags
Radar WebKit Bug Importer
Comment 1 2021-02-15 06:45:24 PST
Andreu Botella
Comment 2 2021-11-14 18:40:51 PST
EWS
Comment 3 2021-11-15 09:32:25 PST
Committed r285808 (244252@main): <https://commits.webkit.org/244252@main> All reviewed patches have been landed. Closing bug and clearing flags on attachment 444206 [details].
Darin Adler
Comment 4 2021-11-15 12:10:21 PST
Comment on attachment 444206 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=444206&action=review > Source/WebCore/html/FileInputType.cpp:174 > + formData.append(name, ""); I think this should probably be emptyString() instead of "", for better efficiency.
Andreu Botella
Comment 5 2021-11-16 18:11:30 PST
Comment on attachment 444206 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=444206&action=review >> Source/WebCore/html/FileInputType.cpp:174 >> + formData.append(name, ""); > > I think this should probably be emptyString() instead of "", for better efficiency. Fixing this in https://bugs.webkit.org/show_bug.cgi?id=233229
Brent Fulgham
Comment 6 2022-02-04 12:46:39 PST
This change should be present in STP 139, iOS 15.4 Beta, and macOS 12.3 Beta.
Note You need to log in before you can comment on or make changes to this bug.