|
|
|
Lines 222-227
nsJARChannel::nsJARChannel()
|
Link Here
|
|---|
|
| 222 |
, mLoadFlags(LOAD_NORMAL) |
222 |
, mLoadFlags(LOAD_NORMAL) |
| 223 |
, mStatus(NS_OK) |
223 |
, mStatus(NS_OK) |
| 224 |
, mIsPending(PR_FALSE) |
224 |
, mIsPending(PR_FALSE) |
|
|
225 |
, mDenyScripts(PR_TRUE) |
| 225 |
, mJarInput(nsnull) |
226 |
, mJarInput(nsnull) |
| 226 |
{ |
227 |
{ |
| 227 |
#if defined(PR_LOGGING) |
228 |
#if defined(PR_LOGGING) |
|
Lines 325-330
nsJARChannel::EnsureJarInput(PRBool bloc
|
Link Here
|
|---|
|
| 325 |
} |
326 |
} |
| 326 |
|
327 |
|
| 327 |
if (mJarFile) { |
328 |
if (mJarFile) { |
|
|
329 |
mDenyScripts = PR_FALSE; |
| 330 |
|
| 328 |
// NOTE: we do not need to deal with mSecurityInfo here, |
331 |
// NOTE: we do not need to deal with mSecurityInfo here, |
| 329 |
// because we're loading from a local file |
332 |
// because we're loading from a local file |
| 330 |
rv = CreateJarInput(gJarHandler->JarCache()); |
333 |
rv = CreateJarInput(gJarHandler->JarCache()); |
|
Lines 339-345
nsJARChannel::EnsureJarInput(PRBool bloc
|
Link Here
|
|---|
|
| 339 |
if (NS_SUCCEEDED(rv)) |
342 |
if (NS_SUCCEEDED(rv)) |
| 340 |
rv = NS_OpenURI(mDownloader, nsnull, mJarBaseURI, nsnull, |
343 |
rv = NS_OpenURI(mDownloader, nsnull, mJarBaseURI, nsnull, |
| 341 |
mLoadGroup, mCallbacks, |
344 |
mLoadGroup, mCallbacks, |
| 342 |
mLoadFlags & ~LOAD_DOCUMENT_URI); |
345 |
mLoadFlags & ~(LOAD_DOCUMENT_URI | LOAD_CALL_CONTENT_SNIFFERS)); |
| 343 |
} |
346 |
} |
| 344 |
return rv; |
347 |
return rv; |
| 345 |
|
348 |
|
|
Lines 642-647
nsJARChannel::Open(nsIInputStream **stre
|
Link Here
|
|---|
|
| 642 |
NS_ENSURE_TRUE(!mJarInput, NS_ERROR_IN_PROGRESS); |
645 |
NS_ENSURE_TRUE(!mJarInput, NS_ERROR_IN_PROGRESS); |
| 643 |
NS_ENSURE_TRUE(!mIsPending, NS_ERROR_IN_PROGRESS); |
646 |
NS_ENSURE_TRUE(!mIsPending, NS_ERROR_IN_PROGRESS); |
| 644 |
|
647 |
|
|
|
648 |
mJarFile = nsnull; |
| 649 |
mDenyScripts = PR_TRUE; |
| 650 |
|
| 645 |
nsresult rv = EnsureJarInput(PR_TRUE); |
651 |
nsresult rv = EnsureJarInput(PR_TRUE); |
| 646 |
if (NS_FAILED(rv)) return rv; |
652 |
if (NS_FAILED(rv)) return rv; |
| 647 |
|
653 |
|
|
Lines 664-669
nsJARChannel::AsyncOpen(nsIStreamListene
|
Link Here
|
|---|
|
| 664 |
NS_ENSURE_ARG_POINTER(listener); |
670 |
NS_ENSURE_ARG_POINTER(listener); |
| 665 |
NS_ENSURE_TRUE(!mIsPending, NS_ERROR_IN_PROGRESS); |
671 |
NS_ENSURE_TRUE(!mIsPending, NS_ERROR_IN_PROGRESS); |
| 666 |
|
672 |
|
|
|
673 |
mJarFile = nsnull; |
| 674 |
mDenyScripts = PR_TRUE; |
| 675 |
|
| 667 |
// Initialize mProgressSink |
676 |
// Initialize mProgressSink |
| 668 |
NS_QueryNotificationCallbacks(mCallbacks, mLoadGroup, mProgressSink); |
677 |
NS_QueryNotificationCallbacks(mCallbacks, mLoadGroup, mProgressSink); |
| 669 |
|
678 |
|
|
Lines 685-690
nsJARChannel::AsyncOpen(nsIStreamListene
|
Link Here
|
|---|
|
| 685 |
mListener = listener; |
694 |
mListener = listener; |
| 686 |
mListenerContext = ctx; |
695 |
mListenerContext = ctx; |
| 687 |
mIsPending = PR_TRUE; |
696 |
mIsPending = PR_TRUE; |
|
|
697 |
return NS_OK; |
| 698 |
} |
| 699 |
|
| 700 |
//----------------------------------------------------------------------------- |
| 701 |
// nsIJARChannel |
| 702 |
//----------------------------------------------------------------------------- |
| 703 |
NS_IMETHODIMP |
| 704 |
nsJARChannel::GetDenyScripts(PRBool *denyScripts) |
| 705 |
{ |
| 706 |
*denyScripts = mDenyScripts; |
| 688 |
return NS_OK; |
707 |
return NS_OK; |
| 689 |
} |
708 |
} |
| 690 |
|
709 |
|
|
Lines 717-722
nsJARChannel::OnDownloadComplete(nsIDown
|
Link Here
|
|---|
|
| 717 |
channel->GetURI(getter_AddRefs(innerURI)); |
736 |
channel->GetURI(getter_AddRefs(innerURI)); |
| 718 |
mJarURI->SetJARFile(innerURI); |
737 |
mJarURI->SetJARFile(innerURI); |
| 719 |
} |
738 |
} |
|
|
739 |
|
| 740 |
// We only want to run scripts if the server really intended to |
| 741 |
// send us a JAR file. Check the server-supplied content type for |
| 742 |
// a JAR type. |
| 743 |
nsCAutoString contentType; |
| 744 |
nsCOMPtr<nsIHttpChannel> httpChannel(do_QueryInterface(channel)); |
| 745 |
if (httpChannel) { |
| 746 |
nsCAutoString header; |
| 747 |
httpChannel->GetResponseHeader(NS_LITERAL_CSTRING("Content-Type"), |
| 748 |
header); |
| 749 |
|
| 750 |
nsCAutoString charset; |
| 751 |
NS_ParseContentType(header, contentType, charset); |
| 752 |
} else { |
| 753 |
channel->GetContentType(contentType); |
| 754 |
} |
| 755 |
|
| 756 |
mDenyScripts = !contentType.EqualsLiteral("application/java-archive") && |
| 757 |
!contentType.EqualsLiteral("application/x-jar"); |
| 720 |
} |
758 |
} |
| 721 |
|
759 |
|
| 722 |
if (NS_SUCCEEDED(status)) { |
760 |
if (NS_SUCCEEDED(status)) { |