mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-28 07:12:30 -05:00
29 lines
1.2 KiB
Diff
29 lines
1.2 KiB
Diff
|
Backported from upstream commits labelled "Bug 1178058" from the esr38 branch
|
||
|
by Boris Zbarsky <bzbarsky@mit.edu> and Bobby Holley <bobbyholley@gmail.com>.
|
||
|
|
||
|
--- icecat-31.8.0/docshell/base/nsDocShell.cpp
|
||
|
+++ icecat-31.8.0/docshell/base/nsDocShell.cpp
|
||
|
@@ -1546,12 +1546,21 @@
|
||
|
|
||
|
if (owner && mItemType != typeChrome) {
|
||
|
nsCOMPtr<nsIPrincipal> ownerPrincipal = do_QueryInterface(owner);
|
||
|
- if (nsContentUtils::IsSystemOrExpandedPrincipal(ownerPrincipal)) {
|
||
|
+ if (nsContentUtils::IsSystemPrincipal(ownerPrincipal)) {
|
||
|
if (ownerIsExplicit) {
|
||
|
return NS_ERROR_DOM_SECURITY_ERR;
|
||
|
}
|
||
|
owner = nullptr;
|
||
|
inheritOwner = true;
|
||
|
+ } else if (nsContentUtils::IsExpandedPrincipal(ownerPrincipal)) {
|
||
|
+ if (ownerIsExplicit) {
|
||
|
+ return NS_ERROR_DOM_SECURITY_ERR;
|
||
|
+ }
|
||
|
+ // Don't inherit from the current page. Just do the safe thing
|
||
|
+ // and pretend that we were loaded by a nullprincipal.
|
||
|
+ owner = do_CreateInstance("@mozilla.org/nullprincipal;1");
|
||
|
+ NS_ENSURE_TRUE(owner, NS_ERROR_FAILURE);
|
||
|
+ inheritOwner = false;
|
||
|
}
|
||
|
}
|
||
|
if (!owner && !inheritOwner && !ownerIsExplicit) {
|