Skip to content
Snippets Groups Projects
Verified Commit 486009a3 authored by valenting's avatar valenting Committed by ma1
Browse files

Bug 1914521 - Make nsPartChannel inherit the content disposition of the...

Bug 1914521 - Make nsPartChannel inherit the content disposition of the multipart response  a=RyanVM

Original Revision: https://phabricator.services.mozilla.com/D223728

Differential Revision: https://phabricator.services.mozilla.com/D224288
parent 7d7421a9
Branches
Tags
No related merge requests found
......@@ -467,6 +467,12 @@ nsMultiMixedConv::OnStartRequest(nsIRequest* request) {
if (NS_SUCCEEDED(rv)) {
mRootContentSecurityPolicy = csp;
}
nsCString contentDisposition;
rv = httpChannel->GetResponseHeader("content-disposition"_ns,
contentDisposition);
if (NS_SUCCEEDED(rv)) {
mRootContentDisposition = contentDisposition;
}
} else {
// try asking the channel directly
rv = mChannel->GetContentType(contentType);
......@@ -837,7 +843,11 @@ nsresult nsMultiMixedConv::SendStart() {
rv = mPartChannel->SetContentLength(mContentLength);
if (NS_FAILED(rv)) return rv;
if (!mRootContentDisposition.IsEmpty()) {
mPartChannel->SetContentDisposition(mRootContentDisposition);
} else {
mPartChannel->SetContentDisposition(mContentDisposition);
}
// Each part of a multipart/replace response can be used
// for the top level document. We must inform upper layers
......
......
......@@ -150,15 +150,17 @@ class nsMultiMixedConv : public nsIStreamConverter {
nsCOMPtr<nsIStreamListener> mFinalListener; // this guy gets the converted
// data via his OnDataAvailable()
nsCOMPtr<nsIChannel>
mChannel; // The channel as we get in in OnStartRequest call
RefPtr<nsPartChannel> mPartChannel; // the channel for the given part we're
// The channel as we get it in OnStartRequest call
nsCOMPtr<nsIChannel> mChannel;
// the channel for the given part we're
// processing. one channel per part.
RefPtr<nsPartChannel> mPartChannel;
nsCOMPtr<nsISupports> mContext;
nsCString mContentType;
nsCString mContentDisposition;
nsCString mContentSecurityPolicy;
nsCString mRootContentSecurityPolicy;
nsCString mRootContentDisposition;
uint64_t mContentLength{UINT64_MAX};
uint64_t mTotalSent{0};
......
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment