mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-09 19:35:51 +00:00
Backout out bug 672026 for causing mobile startup crashes
This commit is contained in:
parent
073a9a3ba9
commit
8d479a53ec
@ -3324,41 +3324,6 @@ nsScriptSecurityManager::Observe(nsISupports* aObject, const char* aTopic,
|
|||||||
return rv;
|
return rv;
|
||||||
}
|
}
|
||||||
|
|
||||||
///////////////////////////////////
|
|
||||||
// Default ObjectPrincipalFinder //
|
|
||||||
///////////////////////////////////
|
|
||||||
|
|
||||||
// The default JSSecurityCallbacks::findObjectPrincipals is necessary since
|
|
||||||
// scripts run (and ask for object principals) during startup before
|
|
||||||
// nsJSRuntime::Init() has been called (which resets findObjectPrincipals).
|
|
||||||
|
|
||||||
// Defined NS_EXPORT for linkage with debug-only assert in xpcshell
|
|
||||||
NS_EXPORT JSPrincipals *
|
|
||||||
NS_DefaultObjectPrincipalFinder(JSContext *cx, JSObject *obj)
|
|
||||||
{
|
|
||||||
nsScriptSecurityManager *ssm = nsScriptSecurityManager::GetScriptSecurityManager();
|
|
||||||
if (!ssm) {
|
|
||||||
return nsnull;
|
|
||||||
}
|
|
||||||
|
|
||||||
nsCOMPtr<nsIPrincipal> principal;
|
|
||||||
nsresult rv = ssm->GetObjectPrincipal(cx, obj, getter_AddRefs(principal));
|
|
||||||
if (NS_FAILED(rv) || !principal) {
|
|
||||||
return nsnull;
|
|
||||||
}
|
|
||||||
|
|
||||||
JSPrincipals *jsPrincipals = nsnull;
|
|
||||||
principal->GetJSPrincipals(cx, &jsPrincipals);
|
|
||||||
|
|
||||||
// nsIPrincipal::GetJSPrincipals() returns a strong reference to the
|
|
||||||
// JS principals, but the caller of this function expects a weak
|
|
||||||
// reference. So we need to release here.
|
|
||||||
|
|
||||||
JSPRINCIPALS_DROP(cx, jsPrincipals);
|
|
||||||
|
|
||||||
return jsPrincipals;
|
|
||||||
}
|
|
||||||
|
|
||||||
/////////////////////////////////////////////
|
/////////////////////////////////////////////
|
||||||
// Constructor, Destructor, Initialization //
|
// Constructor, Destructor, Initialization //
|
||||||
/////////////////////////////////////////////
|
/////////////////////////////////////////////
|
||||||
@ -3431,7 +3396,7 @@ nsresult nsScriptSecurityManager::Init()
|
|||||||
static JSSecurityCallbacks securityCallbacks = {
|
static JSSecurityCallbacks securityCallbacks = {
|
||||||
CheckObjectAccess,
|
CheckObjectAccess,
|
||||||
NULL,
|
NULL,
|
||||||
NS_DefaultObjectPrincipalFinder,
|
NULL,
|
||||||
ContentSecurityPolicyPermitsJSAction
|
ContentSecurityPolicyPermitsJSAction
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1750,10 +1750,6 @@ FindObjectPrincipals(JSContext *cx, JSObject *obj)
|
|||||||
return gJSPrincipals;
|
return gJSPrincipals;
|
||||||
}
|
}
|
||||||
|
|
||||||
// defined in nsScriptSecurityManager.cpp
|
|
||||||
NS_IMPORT JSPrincipals *
|
|
||||||
NS_DefaultObjectPrincipalFinder(JSContext *cx, JSObject *obj);
|
|
||||||
|
|
||||||
int
|
int
|
||||||
main(int argc, char **argv, char **envp)
|
main(int argc, char **argv, char **envp)
|
||||||
{
|
{
|
||||||
@ -1907,7 +1903,7 @@ main(int argc, char **argv, char **envp)
|
|||||||
|
|
||||||
JSSecurityCallbacks *cb = JS_GetRuntimeSecurityCallbacks(rt);
|
JSSecurityCallbacks *cb = JS_GetRuntimeSecurityCallbacks(rt);
|
||||||
NS_ASSERTION(cb, "We are assuming that nsScriptSecurityManager::Init() has been run");
|
NS_ASSERTION(cb, "We are assuming that nsScriptSecurityManager::Init() has been run");
|
||||||
NS_ASSERTION(cb->findObjectPrincipals == NS_DefaultObjectPrincipalFinder, "Your pigeon is in my hole!");
|
NS_ASSERTION(!cb->findObjectPrincipals, "Your pigeon is in my hole!");
|
||||||
cb->findObjectPrincipals = FindObjectPrincipals;
|
cb->findObjectPrincipals = FindObjectPrincipals;
|
||||||
|
|
||||||
#ifdef TEST_TranslateThis
|
#ifdef TEST_TranslateThis
|
||||||
|
Loading…
Reference in New Issue
Block a user