fixes bug 338611 "xpinstall manager happily tries to install 404 pages" r+sr=dveditz

This commit is contained in:
darin%meer.net 2006-05-22 21:09:17 +00:00
Родитель 6fb8bf0b4f
Коммит 578b759979
1 изменённых файлов: 13 добавлений и 1 удалений

Просмотреть файл

@ -955,6 +955,18 @@ nsXPInstallManager::OnStartRequest(nsIRequest* request, nsISupports *ctxt)
{
nsresult rv = NS_ERROR_FAILURE;
// If we are dealing with a HTTP request, then treat HTTP error pages as
// download failures.
nsCOMPtr<nsIHttpChannel> httpChan = do_QueryInterface(request);
if (httpChan) {
PRBool succeeded;
if (NS_SUCCEEDED(httpChan->GetRequestSucceeded(&succeeded)) && !succeeded) {
// HTTP response is not a 2xx!
request->Cancel(NS_BINDING_ABORTED);
return NS_OK;
}
}
NS_ASSERTION( mItem && mItem->mFile, "XPIMgr::OnStartRequest bad state");
if ( mItem && mItem->mFile )
{
@ -963,7 +975,7 @@ nsXPInstallManager::OnStartRequest(nsIRequest* request, nsISupports *ctxt)
rv = NS_NewLocalFileOutputStream(getter_AddRefs(mItem->mOutStream),
mItem->mFile,
PR_WRONLY | PR_CREATE_FILE | PR_TRUNCATE,
0664);
0600);
}
return rv;
}