author | Ehsan Akhgari <ehsan@mozilla.com> |
Tue, 06 Sep 2016 16:05:16 -0400 | |
changeset 313058 | 4c763f86c46269e4ed00835cb3e083432b3abe13 |
parent 313057 | 1aa180309dacc3f0f8fe622839b86ef405ef0d99 |
child 313059 | da216b2fc7dc009f228f0cf078b74b3b59008da0 |
push id | 30669 |
push user | kwierso@gmail.com |
push date | Thu, 08 Sep 2016 00:56:12 +0000 |
treeherder | mozilla-central@77940cbf0c2a [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | bholley |
bugs | 1300831 |
milestone | 51.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/dom/base/nsGlobalWindow.cpp +++ b/dom/base/nsGlobalWindow.cpp @@ -2154,20 +2154,22 @@ nsGlobalWindow::WouldReuseInnerWindow(ns void nsGlobalWindow::SetInitialPrincipalToSubject() { MOZ_ASSERT(IsOuterWindow()); // First, grab the subject principal. nsCOMPtr<nsIPrincipal> newWindowPrincipal = nsContentUtils::SubjectPrincipalOrSystemIfNativeCaller(); - // Now, if we're about to use the system principal or an nsExpandedPrincipal, - // make sure we're not using it for a content docshell. - if (nsContentUtils::IsSystemOrExpandedPrincipal(newWindowPrincipal) && - GetDocShell()->ItemType() != nsIDocShellTreeItem::typeChrome) { + // We should never create windows with an expanded principal. + // If we have a system principal, make sure we're not using it for a content + // docshell. + if (nsContentUtils::IsExpandedPrincipal(newWindowPrincipal) || + (nsContentUtils::IsSystemPrincipal(newWindowPrincipal) && + GetDocShell()->ItemType() != nsIDocShellTreeItem::typeChrome)) { newWindowPrincipal = nullptr; } // If there's an existing document, bail if it either: if (mDoc) { // (a) is not an initial about:blank document, or if (!mDoc->IsInitialDocument()) return;