Closed Bug 545581 Opened 14 years ago Closed 14 years ago

Make AreAncestorViewsVisible stop at chrome/content boundary

Categories

(Core :: Layout, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: roc, Assigned: roc)

References

Details

Attachments

(1 file)

AreAncestorViewsVisible in nsFrame.cpp checks up the view chain looking for a hidden view and returns true if there is one. This is used in nsFrame::IsFocusable to ensure that content in hidden popups and deck panels isn't focusable. However, it breaks with the patches in bug 130078 because it finds that the view containing the toplevel content document for a hidden tab is hidden, and so content in a hidden tab is treated as non-focusable, which we don't want.
Attached patch fixSplinter Review
This patch makes us explicitly stop at a content/chrome boundary. This makes sense to me because the behaviour of content shouldn't depend on the state of the chrome.
Attachment #426444 - Flags: review?(matspal)
Attachment #426444 - Flags: review?(matspal) → review+
Comment on attachment 426444 [details] [diff] [review]
fix

Add a test that fails with the patches in bug 130078 without this patch, unless we already have one...
r=mats
focus mochitests fail with bug 130078 without this patch.
Whiteboard: [needs landing]
http://hg.mozilla.org/mozilla-central/rev/d94b2e28cd61
Status: NEW → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
Whiteboard: [needs landing]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: