From 5631de92969891b4143f86bbc6004022a5d8fa82 Mon Sep 17 00:00:00 2001 From: Neil Deakin Date: Mon, 23 Dec 2013 09:24:36 -0500 Subject: [PATCH] Bug 906666, treat frozen windows as not visible, so that they don't get focused, r=smaug --- dom/base/nsFocusManager.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) 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();