Allow UniversalXPConnect scripts to touch XPCNativeWrappers. bug 390788, r+sr=bzbarsky a=jst

This commit is contained in:
mrbkap@gmail.com 2007-08-07 18:51:43 -07:00
parent a9f1777416
commit 1e49925451

View File

@ -227,13 +227,11 @@ EnsureLegalActivity(JSContext *cx, JSObject *obj)
GetAppropriateSecurityManager(nsIXPCSecurityManager::HOOK_CALL_METHOD);
nsCOMPtr<nsIScriptSecurityManager> ssm(do_QueryInterface(sm));
// A last ditch effort to allow access: if the subject principal is
// the system principal, then some XPCNativeWrapper-using code has
// passed one into other code. If that other code is chrome, then
// allow access.
PRBool isSystem;
nsresult rv = ssm->SubjectPrincipalIsSystem(&isSystem);
if (NS_SUCCEEDED(rv) && isSystem) {
// A last ditch effort to allow access: if the currently-running code
// has UniversalXPConnect privileges, then allow access.
PRBool isPrivileged;
nsresult rv = ssm->IsCapabilityEnabled("UniversalXPConnect", &isPrivileged);
if (NS_SUCCEEDED(rv) && isPrivileged) {
return JS_TRUE;
}