mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-23 12:51:06 +00:00
Bug 1914521 - Make nsPartChannel inherit the content disposition of the multipart response r=necko-reviewers,jesup
Differential Revision: https://phabricator.services.mozilla.com/D223728
This commit is contained in:
parent
d3afb44269
commit
cedff4e196
@ -474,6 +474,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);
|
||||
@ -850,7 +856,11 @@ nsresult nsMultiMixedConv::SendStart() {
|
||||
rv = mPartChannel->SetContentLength(mContentLength);
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
|
||||
mPartChannel->SetContentDisposition(mContentDisposition);
|
||||
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
|
||||
|
@ -151,15 +151,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
|
||||
// processing. one channel per part.
|
||||
// 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};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user