Skip to content

Commit

Permalink
Bug 583777 - Fix violations of the new JS request model. r=igor a=blo…
Browse files Browse the repository at this point in the history
…cking-beta3 ok to check into a CLOSED TREE

--HG--
branch : GECKO20b3_20100804_RELBRANCH
  • Loading branch information
Olli Pettay authored and Olli Pettay committed Aug 5, 2010
1 parent f58a53f commit bbe8002
Showing 1 changed file with 22 additions and 20 deletions.
42 changes: 22 additions & 20 deletions content/base/src/nsInProcessTabChildGlobal.cpp
Expand Up @@ -344,27 +344,29 @@ nsInProcessTabChildGlobal::LoadFrameScript(const nsAString& aURL)
}

if (!dataString.IsEmpty()) {
JSAutoRequest ar(mCx);
jsval retval;
JSObject* global = nsnull;
mGlobal->GetJSObject(&global);
if (!global) {
return;
}

JSPrincipals* jsprin = nsnull;
mPrincipal->GetJSPrincipals(mCx, &jsprin);
nsContentUtils::XPConnect()->FlagSystemFilenamePrefix(url.get(), PR_TRUE);
nsContentUtils::ThreadJSContextStack()->Push(mCx);
PRBool tmp = mLoadingScript;
mLoadingScript = PR_TRUE;
JS_EvaluateUCScriptForPrincipals(mCx, global, jsprin,
(jschar*)dataString.get(),
dataString.Length(),
url.get(), 1, &retval);
//XXX Argh, JSPrincipals are manually refcounted!
JSPRINCIPALS_DROP(mCx, jsprin);
mLoadingScript = tmp;
{
// Need to scope JSAutoRequest to happen after Push but before Pop,
// at least for now. See bug 584673.
JSAutoRequest ar(mCx);
jsval retval;
JSObject* global = nsnull;
mGlobal->GetJSObject(&global);
if (global) {
JSPrincipals* jsprin = nsnull;
mPrincipal->GetJSPrincipals(mCx, &jsprin);
nsContentUtils::XPConnect()->FlagSystemFilenamePrefix(url.get(), PR_TRUE);
PRBool tmp = mLoadingScript;
mLoadingScript = PR_TRUE;
JS_EvaluateUCScriptForPrincipals(mCx, global, jsprin,
(jschar*)dataString.get(),
dataString.Length(),
url.get(), 1, &retval);
//XXX Argh, JSPrincipals are manually refcounted!
JSPRINCIPALS_DROP(mCx, jsprin);
mLoadingScript = tmp;
}
}
JSContext* unused;
nsContentUtils::ThreadJSContextStack()->Pop(&unused);
}
Expand Down

0 comments on commit bbe8002

Please sign in to comment.