Backported from upstream commits labelled "Bug 1178058" from the esr38 branch by Boris Zbarsky and Bobby Holley . --- 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 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) {