Bug 1250148 - FormData should treat empty input type=file as empty string in FormData and as unnamed Blob in HTML submission, r=smaug

This commit is contained in:
Andrea Marchesini
2016-02-23 18:38:16 +01:00
parent 314c1259e2
commit 0425964b78
9 changed files with 217 additions and 91 deletions

View File

@@ -5582,14 +5582,11 @@ HTMLInputElement::SubmitNamesValues(nsFormSubmission* aFormSubmission)
const nsTArray<RefPtr<File>>& files = GetFilesInternal();
for (uint32_t i = 0; i < files.Length(); ++i) {
aFormSubmission->AddNameBlobPair(name, files[i]);
aFormSubmission->AddNameBlobOrNullPair(name, files[i]);
}
if (files.IsEmpty()) {
RefPtr<BlobImpl> blobImpl =
new EmptyBlobImpl(NS_LITERAL_STRING("application/octet-stream"));
RefPtr<Blob> blob = Blob::Create(OwnerDoc()->GetInnerWindow(), blobImpl);
aFormSubmission->AddNameBlobPair(name, blob);
aFormSubmission->AddNameBlobOrNullPair(name, nullptr);
}
return NS_OK;