Bug 1398733 - HTMLFormSubmission should pass the size of the post data inputStream if known, r=smaug
This commit is contained in:
@@ -112,7 +112,8 @@ public:
|
||||
AddNameDirectoryPair(const nsAString& aName, Directory* aDirectory) override;
|
||||
|
||||
virtual nsresult
|
||||
GetEncodedSubmission(nsIURI* aURI, nsIInputStream** aPostDataStream) override;
|
||||
GetEncodedSubmission(nsIURI* aURI, nsIInputStream** aPostDataStream,
|
||||
int64_t* aPostDataStreamLength) override;
|
||||
|
||||
protected:
|
||||
|
||||
@@ -266,11 +267,13 @@ HandleMailtoSubject(nsCString& aPath)
|
||||
|
||||
nsresult
|
||||
FSURLEncoded::GetEncodedSubmission(nsIURI* aURI,
|
||||
nsIInputStream** aPostDataStream)
|
||||
nsIInputStream** aPostDataStream,
|
||||
int64_t* aPostDataStreamLength)
|
||||
{
|
||||
nsresult rv = NS_OK;
|
||||
|
||||
*aPostDataStream = nullptr;
|
||||
*aPostDataStreamLength = -1;
|
||||
|
||||
if (mMethod == NS_FORM_METHOD_POST) {
|
||||
|
||||
@@ -313,6 +316,8 @@ FSURLEncoded::GetEncodedSubmission(nsIURI* aURI,
|
||||
|
||||
*aPostDataStream = mimeStream;
|
||||
NS_ADDREF(*aPostDataStream);
|
||||
|
||||
*aPostDataStreamLength = mQueryString.Length();
|
||||
}
|
||||
|
||||
} else {
|
||||
@@ -615,7 +620,8 @@ FSMultipartFormData::AddDataChunk(const nsACString& aName,
|
||||
|
||||
nsresult
|
||||
FSMultipartFormData::GetEncodedSubmission(nsIURI* aURI,
|
||||
nsIInputStream** aPostDataStream)
|
||||
nsIInputStream** aPostDataStream,
|
||||
int64_t* aPostDataStreamLength)
|
||||
{
|
||||
nsresult rv;
|
||||
|
||||
@@ -627,8 +633,10 @@ FSMultipartFormData::GetEncodedSubmission(nsIURI* aURI,
|
||||
nsAutoCString contentType;
|
||||
GetContentType(contentType);
|
||||
mimeStream->AddHeader("Content-Type", contentType.get());
|
||||
uint64_t unused;
|
||||
mimeStream->SetData(GetSubmissionBody(&unused));
|
||||
|
||||
uint64_t bodySize;
|
||||
mimeStream->SetData(GetSubmissionBody(&bodySize));
|
||||
*aPostDataStreamLength = bodySize;
|
||||
|
||||
mimeStream.forget(aPostDataStream);
|
||||
|
||||
@@ -677,7 +685,8 @@ public:
|
||||
AddNameDirectoryPair(const nsAString& aName, Directory* aDirectory) override;
|
||||
|
||||
virtual nsresult
|
||||
GetEncodedSubmission(nsIURI* aURI, nsIInputStream** aPostDataStream) override;
|
||||
GetEncodedSubmission(nsIURI* aURI, nsIInputStream** aPostDataStream,
|
||||
int64_t* aPostDataStreaLength) override;
|
||||
|
||||
private:
|
||||
nsString mBody;
|
||||
@@ -716,10 +725,14 @@ FSTextPlain::AddNameDirectoryPair(const nsAString& aName,
|
||||
|
||||
nsresult
|
||||
FSTextPlain::GetEncodedSubmission(nsIURI* aURI,
|
||||
nsIInputStream** aPostDataStream)
|
||||
nsIInputStream** aPostDataStream,
|
||||
int64_t* aPostDataStreamLength)
|
||||
{
|
||||
nsresult rv = NS_OK;
|
||||
|
||||
*aPostDataStream = nullptr;
|
||||
*aPostDataStreamLength = -1;
|
||||
|
||||
// XXX HACK We are using the standard URL mechanism to give the body to the
|
||||
// mailer instead of passing the post data stream to it, since that sounds
|
||||
// hard.
|
||||
@@ -770,6 +783,8 @@ FSTextPlain::GetEncodedSubmission(nsIURI* aURI,
|
||||
mimeStream->AddHeader("Content-Type", "text/plain");
|
||||
mimeStream->SetData(bodyStream);
|
||||
CallQueryInterface(mimeStream, aPostDataStream);
|
||||
|
||||
*aPostDataStreamLength = cbody.Length();
|
||||
}
|
||||
|
||||
return rv;
|
||||
|
||||
Reference in New Issue
Block a user