Why? - Avoid a myriad of establishesTopLayer() checks over the place - Avoids needing to think about top layer later on Tasks: - Make RenderLayer::addChild/updateLayerPosition and anything else that relies on renderer hierarchy - Need to look into a bunch of new assertions - Fix visibility code to not be affected by layer reparenting (DOM/flat tree hierarchy should be followed for visibility, like for display)
<rdar://problem/87560426>
These are the ancestor tree walks I've found that need thinking about in terms of top layer: setAncestorChainHasSelfPaintingLayerDescendant setAncestorChainHasVisibleDescendant SVGRenderingContext::calculateTransformationToOutermostCoordinateSystem enclosingScrollableLayer() RenderElement::moveLayers RenderElement::findNextLayer traverseAncestorLayers enclosingFragmentedFlowAncestor
I think all the examples above are taken care of by RenderLayer reparenting (fixed in bug 235194). So the only remaining issue is an incorrect opacity computation in ContentChangeObserver::isVisuallyHidden() (bug 235240).
Closing since this is covered by other bugs.