backout bug1757604 part from rev 591552c5 as it cause display issues

This commit is contained in:
roytam1 2022-09-21 22:24:29 +08:00
commit 5d774d0709
2 changed files with 37 additions and 50 deletions

View file

@ -596,8 +596,18 @@ nsJARChannel::GetSecurityInfo(nsISupports **aSecurityInfo)
return NS_OK; return NS_OK;
} }
nsresult NS_IMETHODIMP
nsJARChannel::SetContentTypeGuess() { nsJARChannel::GetContentType(nsACString &result)
{
// If the Jar file has not been open yet,
// We return application/x-unknown-content-type
if (!mOpened) {
result.Assign(UNKNOWN_CONTENT_TYPE);
return NS_OK;
}
if (mContentType.IsEmpty()) {
// //
// generate content type and set it // generate content type and set it
// //
@ -609,7 +619,8 @@ nsJARChannel::SetContentTypeGuess() {
// the topmost directory in a zip, e.g. jar:foo.zip!/ // the topmost directory in a zip, e.g. jar:foo.zip!/
if (ENTRY_IS_DIRECTORY(mJarEntry)) { if (ENTRY_IS_DIRECTORY(mJarEntry)) {
mContentType.AssignLiteral(APPLICATION_HTTP_INDEX_FORMAT); mContentType.AssignLiteral(APPLICATION_HTTP_INDEX_FORMAT);
} else { }
else {
// not a directory, take a guess by its extension // not a directory, take a guess by its extension
for (int32_t i = len-1; i >= 0; i--) { for (int32_t i = len-1; i >= 0; i--) {
if (fileName[i] == '.') { if (fileName[i] == '.') {
@ -625,21 +636,8 @@ nsJARChannel::SetContentTypeGuess() {
if (mContentType.IsEmpty()) if (mContentType.IsEmpty())
mContentType.AssignLiteral(UNKNOWN_CONTENT_TYPE); mContentType.AssignLiteral(UNKNOWN_CONTENT_TYPE);
} }
return NS_OK;
} }
result = mContentType;
NS_IMETHODIMP
nsJARChannel::GetContentType(nsACString &aResult)
{
// If the Jar file has not been open yet,
// We return application/x-unknown-content-type
if (!mOpened || mContentType.IsEmpty()) {
aResult.Assign(UNKNOWN_CONTENT_TYPE);
return NS_OK;
}
aResult = mContentType;
return NS_OK; return NS_OK;
} }
@ -750,7 +748,7 @@ nsJARChannel::Open(nsIInputStream **stream)
return rv; return rv;
input.forget(stream); input.forget(stream);
SetOpened(); mOpened = true;
// local files are always considered safe // local files are always considered safe
mIsUnsafe = false; mIsUnsafe = false;
return NS_OK; return NS_OK;
@ -765,14 +763,6 @@ nsJARChannel::Open2(nsIInputStream** aStream)
return Open(aStream); return Open(aStream);
} }
void
nsJARChannel::SetOpened() {
MOZ_ASSERT(!mOpened, "Opening channel twice?");
mOpened = true;
// Compute the content type now.
NS_ASSERTION(NS_SUCCEEDED(SetContentTypeGuess()), "content type guess failure");
}
NS_IMETHODIMP NS_IMETHODIMP
nsJARChannel::AsyncOpen(nsIStreamListener *listener, nsISupports *ctx) nsJARChannel::AsyncOpen(nsIStreamListener *listener, nsISupports *ctx)
{ {
@ -855,7 +845,7 @@ nsJARChannel::AsyncOpen(nsIStreamListener *listener, nsISupports *ctx)
if (mLoadGroup) if (mLoadGroup)
mLoadGroup->AddRequest(this, nullptr); mLoadGroup->AddRequest(this, nullptr);
SetOpened(); mOpened = true;
return NS_OK; return NS_OK;
} }

View file

@ -66,9 +66,6 @@ private:
mozilla::net::MemoryDownloader::Data aData) mozilla::net::MemoryDownloader::Data aData)
override; override;
nsresult SetContentTypeGuess();
void SetOpened();
nsCString mSpec; nsCString mSpec;
bool mOpened; bool mOpened;