From 39adfbce56a8aaccec72fd2f151a9da2b8fe20cf Mon Sep 17 00:00:00 2001 From: "axel%pike.org" Date: Thu, 17 Jul 2003 10:13:24 +0000 Subject: [PATCH] bug 211485, check for UniversalBrowserRead for xpath/xslt security checks, r=sicking, sr=jst git-svn-id: svn://10.0.0.236/trunk@144916 18797224-902f-48f8-a5cc-f745e15eee43 --- .../transformiix/source/base/txURIUtils.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/mozilla/extensions/transformiix/source/base/txURIUtils.cpp b/mozilla/extensions/transformiix/source/base/txURIUtils.cpp index 495353fb944..f072b5056c7 100644 --- a/mozilla/extensions/transformiix/source/base/txURIUtils.cpp +++ b/mozilla/extensions/transformiix/source/base/txURIUtils.cpp @@ -229,6 +229,16 @@ PRBool URIUtils::CanCallerAccess(nsIDOMNode *aNode) return PR_TRUE; } + // Ask the securitymanager if we have "UniversalBrowserRead" + PRBool caps = PR_FALSE; + nsresult rv = + gTxSecurityManager->IsCapabilityEnabled("UniversalBrowserRead", + &caps); + NS_ENSURE_SUCCESS(rv, PR_FALSE); + if (caps) { + return PR_TRUE; + } + // Make sure that this is a real node. We do this by first QI'ing to // nsIContent (which is important performance wise) and if that QI // fails we QI to nsIDocument. If both those QI's fail we won't let @@ -299,8 +309,8 @@ PRBool URIUtils::CanCallerAccess(nsIDOMNode *aNode) return PR_TRUE; } - nsresult rv = gTxSecurityManager->CheckSameOriginPrincipal(subjectPrincipal, - principal); + rv = gTxSecurityManager->CheckSameOriginPrincipal(subjectPrincipal, + principal); return NS_SUCCEEDED(rv); }