Backing out the patch to bug 83536.
I will reland this when 1.6a re-opens. r+sr=jst@netscape.com a=chofmann git-svn-id: svn://10.0.0.236/trunk@146256 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
@@ -22,11 +22,12 @@
|
||||
#include "nsMimeTypes.h"
|
||||
#include "nsNetUtil.h"
|
||||
|
||||
#include "nsIScriptSecurityManager.h"
|
||||
#include "nsIPrincipal.h"
|
||||
#include "nsScriptSecurityManager.h"
|
||||
#include "nsIAggregatePrincipal.h"
|
||||
#include "nsIFileURL.h"
|
||||
#include "nsIJAR.h"
|
||||
|
||||
static NS_DEFINE_CID(kScriptSecurityManagerCID, NS_SCRIPTSECURITYMANAGER_CID);
|
||||
static NS_DEFINE_CID(kZipReaderCID, NS_ZIPREADER_CID);
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
@@ -423,28 +424,22 @@ nsJARChannel::GetOwner(nsISupports **result)
|
||||
if (cert) {
|
||||
// Get the codebase principal
|
||||
nsCOMPtr<nsIScriptSecurityManager> secMan =
|
||||
do_GetService(NS_SCRIPTSECURITYMANAGER_CONTRACTID, &rv);
|
||||
do_GetService(kScriptSecurityManagerCID, &rv);
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
|
||||
nsCOMPtr<nsIPrincipal> codebase;
|
||||
rv = secMan->GetCodebasePrincipal(mJarBaseURI,
|
||||
getter_AddRefs(codebase));
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
|
||||
nsCOMPtr<nsIURI> codebaseURI;
|
||||
codebase->GetURI(getter_AddRefs(codebaseURI));
|
||||
|
||||
nsCOMPtr<nsIURI> domainURI;
|
||||
codebase->GetDomain(getter_AddRefs(domainURI));
|
||||
|
||||
|
||||
// Join the certificate and the codebase
|
||||
rv = cert->SetURI(codebaseURI);
|
||||
nsCOMPtr<nsIAggregatePrincipal> agg = do_QueryInterface(cert, &rv);
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
|
||||
rv = cert->SetDomain(domainURI);
|
||||
rv = agg->SetCodebase(codebase);
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
|
||||
mOwner = do_QueryInterface(cert, &rv);
|
||||
mOwner = do_QueryInterface(agg, &rv);
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
|
||||
NS_ADDREF(*result = mOwner);
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
#include "nsString.h"
|
||||
#include "nsReadableUtils.h"
|
||||
#include "nsXPIDLString.h"
|
||||
#include "nsIScriptSecurityManager.h"
|
||||
#include "nsScriptSecurityManager.h"
|
||||
#include "nsIStringBundle.h"
|
||||
#include "prefapi.h"
|
||||
#include "prmem.h"
|
||||
@@ -68,6 +68,8 @@ struct PrefCallbackData {
|
||||
};
|
||||
|
||||
|
||||
static NS_DEFINE_CID(kSecurityManagerCID, NS_SCRIPTSECURITYMANAGER_CID);
|
||||
|
||||
// Prototypes
|
||||
extern PrefResult pref_UnlockPref(const char *key);
|
||||
PR_STATIC_CALLBACK(PLDHashOperator)
|
||||
@@ -895,7 +897,7 @@ nsresult nsPrefBranch::getValidatedPrefName(const char *aPrefName, const char **
|
||||
{
|
||||
nsresult rv;
|
||||
nsCOMPtr<nsIScriptSecurityManager> secMan =
|
||||
do_GetService(NS_SCRIPTSECURITYMANAGER_CONTRACTID, &rv);
|
||||
do_GetService(kSecurityManagerCID, &rv);
|
||||
PRBool enabled;
|
||||
|
||||
if (NS_FAILED(rv))
|
||||
|
||||
@@ -45,6 +45,7 @@
|
||||
#include "nsIServiceManager.h"
|
||||
#include "nsIJSContextStack.h"
|
||||
#include "nsIPrincipal.h"
|
||||
#include "nsICodebasePrincipal.h"
|
||||
#include "nsIScriptContext.h"
|
||||
#include "nsIScriptGlobalObject.h"
|
||||
#include "nsIScriptObjectPrincipal.h"
|
||||
@@ -69,7 +70,9 @@ static nsresult getScriptCodebase(JSContext* cx, nsIURI* *result)
|
||||
nsCOMPtr<nsIPrincipal> principal;
|
||||
scriptObjectPrincipal->GetPrincipal(getter_AddRefs(principal));
|
||||
if (principal) {
|
||||
return principal->GetURI(result);
|
||||
nsCOMPtr<nsICodebasePrincipal> codebasePrincipal = do_QueryInterface(principal);
|
||||
if (codebasePrincipal)
|
||||
return codebasePrincipal->GetURI(result);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -358,7 +358,7 @@ get_JSPrincipals_from_java_caller_impl(JNIEnv *pJNIEnv, JSContext *pJSContext, v
|
||||
rv = ssm->GetCodebasePrincipal(codebaseURI, getter_AddRefs(principal));
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
JSPrincipals* jsprincipals;
|
||||
principal->GetJsPrincipals(&jsprincipals);
|
||||
principal->GetJSPrincipals(&jsprincipals);
|
||||
return jsprincipals;
|
||||
}
|
||||
}
|
||||
@@ -368,7 +368,7 @@ get_JSPrincipals_from_java_caller_impl(JNIEnv *pJNIEnv, JSContext *pJSContext, v
|
||||
nsCOMPtr<nsIPrincipal> principal = do_QueryInterface(credentials);
|
||||
if (principal) {
|
||||
JSPrincipals* jsprincipals;
|
||||
principal->GetJsPrincipals(&jsprincipals);
|
||||
principal->GetJSPrincipals(&jsprincipals);
|
||||
return jsprincipals;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,7 +53,12 @@
|
||||
|
||||
// For GetOrigin()
|
||||
|
||||
#include "nsIScriptSecurityManager.h"
|
||||
#include "nsCOMPtr.h"
|
||||
#include "nsJSPrincipals.h"
|
||||
#include "nsSystemPrincipal.h"
|
||||
#include "nsCodebasePrincipal.h"
|
||||
#include "nsCertificatePrincipal.h"
|
||||
#include "nsScriptSecurityManager.h"
|
||||
#include "nsIScriptGlobalObject.h"
|
||||
#include "nsIServiceManager.h"
|
||||
#include "nsIScriptObjectPrincipal.h"
|
||||
@@ -130,27 +135,39 @@ nsCSecurityContext::GetOrigin(char* buf, int buflen)
|
||||
}
|
||||
}
|
||||
|
||||
nsXPIDLCString origin;
|
||||
m_pPrincipal->GetOrigin(getter_Copies(origin));
|
||||
|
||||
PRInt32 originlen = origin.Length();
|
||||
if (origin.IsEmpty() || originlen > buflen - 1) {
|
||||
nsCOMPtr<nsICodebasePrincipal> codebase = do_QueryInterface(m_pPrincipal);
|
||||
if (!codebase)
|
||||
return NS_ERROR_FAILURE;
|
||||
|
||||
char* origin=nsnull;
|
||||
codebase->GetOrigin(&origin);
|
||||
|
||||
if (origin) {
|
||||
PRInt32 originlen = (PRInt32) strlen(origin);
|
||||
if (!buf || buflen<=originlen) {
|
||||
if (origin) {
|
||||
nsCRT::free(origin);
|
||||
}
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
// Copy the string into to user supplied buffer. Is there a better
|
||||
// way to do this?
|
||||
|
||||
memcpy(buf,origin,originlen);
|
||||
buf[originlen]=nsnull; // Gotta terminate it.
|
||||
nsCRT::free(origin);
|
||||
} else {
|
||||
*buf = nsnull;
|
||||
}
|
||||
|
||||
// Copy the string into to user supplied buffer. Is there a better
|
||||
// way to do this?
|
||||
|
||||
memcpy(buf, origin, originlen);
|
||||
buf[originlen] = nsnull; // Gotta terminate it.
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_METHOD
|
||||
nsCSecurityContext::GetCertificateID(char* buf, int buflen)
|
||||
{
|
||||
nsCOMPtr<nsIPrincipal> principal;
|
||||
nsCOMPtr<nsIPrincipal> principal = NULL;
|
||||
|
||||
// Get the Script Security Manager.
|
||||
|
||||
@@ -159,22 +176,28 @@ nsCSecurityContext::GetCertificateID(char* buf, int buflen)
|
||||
do_GetService(NS_SCRIPTSECURITYMANAGER_CONTRACTID, &rv);
|
||||
if (NS_FAILED(rv) || !secMan) return NS_ERROR_FAILURE;
|
||||
|
||||
|
||||
secMan->GetSubjectPrincipal(getter_AddRefs(principal));
|
||||
if (!principal) {
|
||||
nsCOMPtr<nsICertificatePrincipal> cprincipal = do_QueryInterface(principal);
|
||||
if (!cprincipal)
|
||||
return NS_ERROR_FAILURE;
|
||||
|
||||
char* certificate = nsnull;
|
||||
cprincipal->GetCertificateID(&certificate);
|
||||
|
||||
if (certificate) {
|
||||
PRInt32 certlen = (PRInt32) strlen(certificate);
|
||||
if( buflen<=certlen ) {
|
||||
nsCRT::free(certificate);
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
memcpy(buf,certificate,certlen);
|
||||
buf[certlen]=nsnull;
|
||||
nsCRT::free(certificate);
|
||||
} else {
|
||||
*buf = nsnull;
|
||||
}
|
||||
|
||||
nsXPIDLCString certificate;
|
||||
principal->GetCertificateID(getter_Copies(certificate));
|
||||
|
||||
PRInt32 certlen = certificate.Length();
|
||||
if (buflen <= certlen) {
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
memcpy(buf, certificate.get(), certlen);
|
||||
buf[certlen] = nsnull;
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
@@ -68,10 +68,14 @@
|
||||
#include "nspr.h"
|
||||
#include "plstr.h"
|
||||
#include "nsCOMPtr.h"
|
||||
#include "nsIPrincipal.h"
|
||||
//#include "nsJSPrincipals.h"
|
||||
//#include "nsSystemPrincipal.h"
|
||||
//#include "nsCodebasePrincipal.h"
|
||||
#include "nsCertificatePrincipal.h"
|
||||
#include "nsIScriptSecurityManager.h"
|
||||
#include "nsISignatureVerifier.h"
|
||||
|
||||
//#include "nsScriptSecurityManager.h"
|
||||
|
||||
extern "C" int XP_PROGRESS_STARTING_JAVA;
|
||||
extern "C" int XP_PROGRESS_STARTING_JAVA_DONE;
|
||||
@@ -967,8 +971,15 @@ nsJVMManager::IsAllPermissionGranted(
|
||||
rv = secMan->GetCertificatePrincipal(lastFP, &pIPrincipal);
|
||||
if (NS_FAILED(rv)) return PR_FALSE;
|
||||
|
||||
// Get the nsICertificatePrincipal interface so that we can set the
|
||||
// common name. The common name is a user meaningful string.
|
||||
|
||||
nsCOMPtr<nsICertificatePrincipal> pICertificate = do_QueryInterface(pIPrincipal, &rv);
|
||||
if (NS_FAILED(rv) || !pICertificate) return PR_FALSE;
|
||||
|
||||
// Set the common name.
|
||||
rv = pIPrincipal->SetCommonName(lastCN);
|
||||
|
||||
rv = pICertificate->SetCommonName(lastCN);
|
||||
|
||||
PRInt16 ret;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user