Bug 1716762 - Don't allow focus to move to remote iframe which is display: none; r=emilio

Make it behave the same as in-process iframe.

Differential Revision: https://phabricator.services.mozilla.com/D118002
This commit is contained in:
Edgar Chen
2021-07-07 12:08:18 +00:00
parent 8167a5920d
commit c8e0351b70
8 changed files with 183 additions and 0 deletions

View File

@@ -2473,6 +2473,25 @@ void nsFrameLoader::SendIsUnderHiddenEmbedderElement(
}
}
void nsFrameLoader::PropagateIsUnderHiddenEmbedderElement(
bool aIsUnderHiddenEmbedderElement) {
bool isUnderHiddenEmbedderElement = true;
if (Document* ownerDoc = GetOwnerDoc()) {
if (PresShell* presShell = ownerDoc->GetPresShell()) {
isUnderHiddenEmbedderElement = presShell->IsUnderHiddenEmbedderElement();
}
}
isUnderHiddenEmbedderElement |= aIsUnderHiddenEmbedderElement;
if (nsDocShell* docShell = GetExistingDocShell()) {
if (PresShell* presShell = docShell->GetPresShell()) {
presShell->SetIsUnderHiddenEmbedderElement(isUnderHiddenEmbedderElement);
}
} else {
SendIsUnderHiddenEmbedderElement(isUnderHiddenEmbedderElement);
}
}
void nsFrameLoader::UpdateBaseWindowPositionAndSize(
nsSubDocumentFrame* aIFrame) {
nsCOMPtr<nsIBaseWindow> baseWindow = GetDocShell(IgnoreErrors());