Relanding fix for bug 390788.

git-svn-id: svn://10.0.0.236/branches/MOZILLA_1_8_BRANCH@252172 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
bent.mozilla%gmail.com
2008-06-07 03:17:26 +00:00
parent df2426fbf1
commit 5ce52faad0

View File

@@ -249,13 +249,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;
}