Bug 176674

Summary: DOMFormData should be available in workers
Product: WebKit Reporter: Sam Weinig <sam>
Component: FormsAssignee: youenn fablet <youennf>
Status: RESOLVED FIXED    
Severity: Normal CC: achristensen, ap, cdumez, commit-queue, dbates, dvpdiner2, esprehn+autocc, ews, gyuyoung.kim, kondapallykalyan, mifenton, tkent, webkit-bug-importer, wenson_hsieh, youennf
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
WIP
none
Patch
none
Patch
none
Patch none

Description Sam Weinig 2017-09-10 14:01:54 PDT
DOMFormData is not currently available in workers due FormData (which DOMFormDatas are passed to for conversion to an HTTP body) currently depending on the Document/Page to do file replacement.
Comment 1 Sam Weinig 2017-09-10 17:39:21 PDT
As noted, the crux of the issue is that FormData class uses the Page to allow a hosting app to generate a file replacement for things like bundles. This was added in https://trac.webkit.org/changeset/32666/webkit (~9 years ago).

My guess is that we can remove the delegation, and use the now available platform standard ways to detect bundles and generate the replacement.
Comment 2 Sam Weinig 2017-09-10 17:44:56 PDT
Indeed, it looks like we have most of the infrastructure in place to do this for Blobs already (File::shouldReplaceFile, File::computeNameAndContentTypeForReplacedFile, BlobDataFileReference::generateReplacementFile).
Comment 3 Alexey Proskuryakov 2017-09-11 12:20:40 PDT
There is some performance improvement to make potentially - I think that there are situations where we compress the same bundle twice, using the delegate first, and then in the Networking process using WebKit functionality again.
Comment 4 youenn fablet 2019-11-11 09:10:32 PST
(In reply to Sam Weinig from comment #2)
> Indeed, it looks like we have most of the infrastructure in place to do this
> for Blobs already (File::shouldReplaceFile,
> File::computeNameAndContentTypeForReplacedFile,
> BlobDataFileReference::generateReplacementFile).

This has been removed now so we should be able to expose DOMFormData to workers
Comment 5 youenn fablet 2019-11-11 09:20:42 PST
Created attachment 383274 [details]
WIP
Comment 6 youenn fablet 2019-11-11 09:24:39 PST
We probably need to handle the call of MIMETypeRegistry::getMIMETypeForExtension
Comment 7 youenn fablet 2019-11-11 09:29:58 PST
Created attachment 383275 [details]
Patch
Comment 8 youenn fablet 2019-11-11 10:24:05 PST
Created attachment 383282 [details]
Patch
Comment 9 youenn fablet 2019-11-11 12:59:54 PST
Created attachment 383289 [details]
Patch
Comment 10 WebKit Commit Bot 2019-11-11 17:34:32 PST
The commit-queue encountered the following flaky tests while processing attachment 383289 [details]:

inspector/model/remote-object-weak-collection.html bug 202932 (authors: drousso@apple.com and joepeck@webkit.org)
The commit-queue is continuing to process your patch.
Comment 11 WebKit Commit Bot 2019-11-11 17:35:29 PST
Comment on attachment 383289 [details]
Patch

Clearing flags on attachment: 383289

Committed r252349: <https://trac.webkit.org/changeset/252349>
Comment 12 WebKit Commit Bot 2019-11-11 17:35:31 PST
All reviewed patches have been landed.  Closing bug.
Comment 13 Radar WebKit Bug Importer 2019-11-11 17:36:18 PST
<rdar://problem/57100456>