diff --git a/docshell/base/nsDocShell.cpp b/docshell/base/nsDocShell.cpp index b90661b2640..3df3473a3ca 100644 --- a/docshell/base/nsDocShell.cpp +++ b/docshell/base/nsDocShell.cpp @@ -3492,22 +3492,19 @@ nsDocShell::CanAccessItem(nsIDocShellTreeItem* aTargetItem, nsCOMPtr targetDS = do_QueryInterface(aTargetItem); nsCOMPtr accessingDS = do_QueryInterface(aAccessingItem); - if (!!targetDS != !!accessingDS) { - // We must be able to convert both or neither to nsIDocShell. + if (!targetDS || !accessingDS) { + // We must be able to convert both to nsIDocShell. return false; } - if (targetDS && accessingDS && - (targetDS->GetIsInBrowserElement() != - accessingDS->GetIsInBrowserElement() || - targetDS->GetAppId() != accessingDS->GetAppId())) { + if (targetDS->GetIsInBrowserElement() != accessingDS->GetIsInBrowserElement() || + targetDS->GetAppId() != accessingDS->GetAppId()) { return false; } // A private document can't access a non-private one, and vice versa. - if (aTargetItem->GetDocument()->GetLoadContext()->UsePrivateBrowsing() != - aAccessingItem->GetDocument()->GetLoadContext()->UsePrivateBrowsing()) - { + if (static_cast(targetDS.get())->UsePrivateBrowsing() != + static_cast(accessingDS.get())->UsePrivateBrowsing()) { return false; }