Attachment #625951: Part 3 - Pull subject principals directly off the compartment. v1 for bug #754202

View | Details | Raw Unified | Return to bug 754202
Collapse All | Expand All

(-)a/caps/src/nsScriptSecurityManager.cpp (-3 / +13 lines)
Line     Link Here 
 Lines 2397-2415   nsScriptSecurityManager::GetPrincipalAndFrame(JSContext *cx, Link Here 
2397
2397
2398
    return nsnull;
2398
    return nsnull;
2399
}
2399
}
2400
2400
2401
nsIPrincipal*
2401
nsIPrincipal*
2402
nsScriptSecurityManager::GetSubjectPrincipal(JSContext *cx,
2402
nsScriptSecurityManager::GetSubjectPrincipal(JSContext *cx,
2403
                                             nsresult* rv)
2403
                                             nsresult* rv)
2404
{
2404
{
2405
    NS_PRECONDITION(rv, "Null out param");
2405
    *rv = NS_OK;
2406
    JSStackFrame *fp;
2406
2407
    return GetPrincipalAndFrame(cx, &fp, rv);
2407
    JSCompartment *compartment = js::GetContextCompartment(cx);
2408
    nsIPrincipal *principal;
2409
    if (compartment) {
2410
        JSPrincipals *principals = JS_GetCompartmentPrincipals(compartment);
2411
        principal = nsJSPrincipals::get(principals);
2412
    }
2413
    else {
2414
        principal = mSystemPrincipal;
2415
    }
2416
2417
    return principal;
2408
}
2418
}
2409
2419
2410
NS_IMETHODIMP
2420
NS_IMETHODIMP
2411
nsScriptSecurityManager::GetObjectPrincipal(JSContext *aCx, JSObject *aObj,
2421
nsScriptSecurityManager::GetObjectPrincipal(JSContext *aCx, JSObject *aObj,
2412
                                            nsIPrincipal **result)
2422
                                            nsIPrincipal **result)
2413
{
2423
{
2414
    *result = doGetObjectPrincipal(aObj);
2424
    *result = doGetObjectPrincipal(aObj);
2415
    if (!*result)
2425
    if (!*result)

Return to bug 754202