diff --git a/mozilla/content/xbl/src/nsXBLBinding.cpp b/mozilla/content/xbl/src/nsXBLBinding.cpp index 3f9a45c2628..4caf8f80e27 100644 --- a/mozilla/content/xbl/src/nsXBLBinding.cpp +++ b/mozilla/content/xbl/src/nsXBLBinding.cpp @@ -206,6 +206,7 @@ XBLResolve(JSContext *cx, JSObject *obj, jsval id, uintN flags, // Now we either resolve or fail PRBool didInstall; nsresult rv = field->InstallField(context, origObj, + content->NodePrincipal(), protoBinding->DocURI(), &didInstall); if (NS_FAILED(rv)) { diff --git a/mozilla/content/xbl/src/nsXBLProtoImplField.cpp b/mozilla/content/xbl/src/nsXBLProtoImplField.cpp index 2adf6063b83..804b25e1239 100644 --- a/mozilla/content/xbl/src/nsXBLProtoImplField.cpp +++ b/mozilla/content/xbl/src/nsXBLProtoImplField.cpp @@ -94,6 +94,7 @@ nsXBLProtoImplField::AppendFieldText(const nsAString& aText) nsresult nsXBLProtoImplField::InstallField(nsIScriptContext* aContext, JSObject* aBoundNode, + nsIPrincipal* aPrincipal, nsIURI* aBindingDocURI, PRBool* aDidInstall) const { @@ -124,14 +125,12 @@ nsXBLProtoImplField::InstallField(nsIScriptContext* aContext, "Shouldn't get here when an exception is pending!"); // compile the literal string - // XXX Could we produce a better principal here? Should be able - // to, really! PRBool undefined; nsCOMPtr context = aContext; rv = context->EvaluateStringWithValue(nsDependentString(mFieldText, mFieldTextLength), aBoundNode, - nsnull, uriSpec.get(), + aPrincipal, uriSpec.get(), mLineNumber, JSVERSION_LATEST, (void*) &result, &undefined); if (NS_FAILED(rv)) diff --git a/mozilla/content/xbl/src/nsXBLProtoImplField.h b/mozilla/content/xbl/src/nsXBLProtoImplField.h index 420a48761a0..986356ee6eb 100644 --- a/mozilla/content/xbl/src/nsXBLProtoImplField.h +++ b/mozilla/content/xbl/src/nsXBLProtoImplField.h @@ -64,6 +64,7 @@ public: nsresult InstallField(nsIScriptContext* aContext, JSObject* aBoundNode, + nsIPrincipal* aPrincipal, nsIURI* aBindingDocURI, PRBool* aDidInstall) const;