[tbb-commits] [tor-browser/esr24] Bug 982906 - No free lunches! r=bzbarsky, a=lsblakk
mikeperry at torproject.org
mikeperry at torproject.org
Fri Aug 29 05:26:38 UTC 2014
commit 98514d2707597dca05a7318e3887b97c3b0b8857
Author: Blake Kaplan <mrbkap at gmail.com>
Date: Thu Mar 13 18:55:13 2014 -0400
Bug 982906 - No free lunches! r=bzbarsky, a=lsblakk
---
dom/base/nsGlobalWindow.cpp | 30 +++++++++++++++---------------
dom/base/nsGlobalWindow.h | 5 ++---
2 files changed, 17 insertions(+), 18 deletions(-)
diff --git a/dom/base/nsGlobalWindow.cpp b/dom/base/nsGlobalWindow.cpp
index 7b6707a..f2192d6 100644
--- a/dom/base/nsGlobalWindow.cpp
+++ b/dom/base/nsGlobalWindow.cpp
@@ -10829,14 +10829,12 @@ nsGlobalWindow::GetScrollFrame()
nsresult
nsGlobalWindow::BuildURIfromBase(const char *aURL, nsIURI **aBuiltURI,
- bool *aFreeSecurityPass,
JSContext **aCXused)
{
nsIScriptContext *scx = GetContextInternal();
JSContext *cx = nullptr;
*aBuiltURI = nullptr;
- *aFreeSecurityPass = false;
if (aCXused)
*aCXused = nullptr;
@@ -10877,17 +10875,14 @@ nsGlobalWindow::BuildURIfromBase(const char *aURL, nsIURI **aBuiltURI,
if (!sourceWindow) {
sourceWindow = do_QueryInterface(NS_ISUPPORTS_CAST(nsIDOMWindow *, this));
- *aFreeSecurityPass = true;
}
- if (sourceWindow) {
- nsCOMPtr<nsIDOMDocument> domDoc;
- sourceWindow->GetDocument(getter_AddRefs(domDoc));
- nsCOMPtr<nsIDocument> doc(do_QueryInterface(domDoc));
- if (doc) {
- baseURI = doc->GetDocBaseURI();
- charset = doc->GetDocumentCharacterSet();
- }
+ nsCOMPtr<nsIDOMDocument> domDoc;
+ sourceWindow->GetDocument(getter_AddRefs(domDoc));
+ nsCOMPtr<nsIDocument> doc(do_QueryInterface(domDoc));
+ if (doc) {
+ baseURI = doc->GetDocBaseURI();
+ charset = doc->GetDocumentCharacterSet();
}
if (aCXused)
@@ -10899,17 +10894,22 @@ nsresult
nsGlobalWindow::SecurityCheckURL(const char *aURL)
{
JSContext *cxUsed;
- bool freePass;
nsCOMPtr<nsIURI> uri;
- if (NS_FAILED(BuildURIfromBase(aURL, getter_AddRefs(uri), &freePass, &cxUsed)))
+ if (NS_FAILED(BuildURIfromBase(aURL, getter_AddRefs(uri), &cxUsed))) {
return NS_ERROR_FAILURE;
+ }
+
+ if (!cxUsed) {
+ return NS_OK;
+ }
AutoPushJSContext cx(cxUsed);
- if (!freePass && NS_FAILED(nsContentUtils::GetSecurityManager()->
- CheckLoadURIFromScript(cx, uri)))
+ if (NS_FAILED(nsContentUtils::GetSecurityManager()->
+ CheckLoadURIFromScript(cx, uri))) {
return NS_ERROR_FAILURE;
+ }
return NS_OK;
}
diff --git a/dom/base/nsGlobalWindow.h b/dom/base/nsGlobalWindow.h
index aab2253..613dd2b 100644
--- a/dom/base/nsGlobalWindow.h
+++ b/dom/base/nsGlobalWindow.h
@@ -950,9 +950,8 @@ protected:
already_AddRefed<nsIBaseWindow> GetTreeOwnerWindow();
already_AddRefed<nsIWebBrowserChrome> GetWebBrowserChrome();
nsresult SecurityCheckURL(const char *aURL);
- nsresult BuildURIfromBase(const char *aURL,
- nsIURI **aBuiltURI,
- bool *aFreeSecurityPass, JSContext **aCXused);
+ nsresult BuildURIfromBase(const char *aURL, nsIURI **aBuiltURI,
+ JSContext **aCXused);
bool PopupWhitelisted();
PopupControlState RevisePopupAbuseLevel(PopupControlState);
void FireAbuseEvents(bool aBlocked, bool aWindow,
More information about the tbb-commits
mailing list