Bug 1541251 Comment 0 Edit History

Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.

I've checked all call sites of StyleVisibility(), as of now, there are two call sites that the style is used to tell whether the frame is invisible or not across documents boundaries.  They are nsIFrame::IsVisibleConsideringAncestors and Accessible::VisibilityState.

Instead of walking up the tree there, we can notify CSS visibility state changes to descendant documents and also we can notify the info when we switch frame in nsDeskFrame.  I am going to split these part into other bugs for the safety, I mean, we can easily track down if it caused regressions.

As for nsView::GetVisibility(), [the call sites of nsViewManager::SetViewVisibility](https://searchfox.org/mozilla-central/search?q=symbol:_ZN13nsViewManager17SetViewVisibilityEP6nsView16nsViewVisibility&redirect=false) (i.e. the place where we change the visibility of the given nsView) are in nsComboboxControlFrame.cpp, nsPluginFrame.cpp, nsMenuPopupFrame.cpp and [nsFrame.cpp](https://searchfox.org/mozilla-central/rev/44a212460990ffffecf50a8e972d3cbde2e7216b/layout/generic/nsFrame.cpp#1363).  I _think_ the call sites other than the nsFrame.cpp doesn't need to be cared the across document boundary cases since each the nsView is for popup or dropdown or plugin which means it's in the same document or inside a plugin.
I've checked all call sites of StyleVisibility(), as of now, there are two call sites that the style is used to tell whether the frame is invisible or not across documents boundaries.  They are nsIFrame::IsVisibleConsideringAncestors and Accessible::VisibilityState.

Instead of walking up the tree there, we can notify CSS visibility state changes to descendant documents and also we can notify the info when we switch frame in nsDeckFrame.  I am going to split these part into other bugs for the safety, I mean, we can easily track down if it caused regressions.

As for nsView::GetVisibility(), [the call sites of nsViewManager::SetViewVisibility](https://searchfox.org/mozilla-central/search?q=symbol:_ZN13nsViewManager17SetViewVisibilityEP6nsView16nsViewVisibility&redirect=false) (i.e. the place where we change the visibility of the given nsView) are in nsComboboxControlFrame.cpp, nsPluginFrame.cpp, nsMenuPopupFrame.cpp and [nsFrame.cpp](https://searchfox.org/mozilla-central/rev/44a212460990ffffecf50a8e972d3cbde2e7216b/layout/generic/nsFrame.cpp#1363).  I _think_ the call sites other than the nsFrame.cpp don't need to be cared the across document boundary cases since each the nsView is for popup or dropdown or plugin which means it's in the same document or inside a plugin.

Back to Bug 1541251 Comment 0