diff --git a/dom/base/nsFocusManager.cpp b/dom/base/nsFocusManager.cpp index 3a8cb2acd8b0..017e7470c5a9 100644 --- a/dom/base/nsFocusManager.cpp +++ b/dom/base/nsFocusManager.cpp @@ -1379,7 +1379,13 @@ nsFocusManager::AdjustWindowFocus(nsPIDOMWindow* aWindow, bool nsFocusManager::IsWindowVisible(nsPIDOMWindow* aWindow) { - if (!aWindow) + if (!aWindow || aWindow->IsFrozen()) + return false; + + // Check if the inner window is frozen as well. This can happen when a focus change + // occurs while restoring a previous page. + nsPIDOMWindow* innerWindow = aWindow->GetCurrentInnerWindow(); + if (!innerWindow || innerWindow->IsFrozen()) return false; nsCOMPtr docShell = aWindow->GetDocShell();