Call Element::rebuildLayoutTree from Document::updateStyle directly
This patch changes the callstack in Document::updateStyle to call
Element::rebuildLayoutTree after Element::recalcStyle instead of
from it.
It also adds helper functions needed to perform Layout Tree Construction:
1. ContainerNode::rebuildChildrenLayoutTrees()
2. Element::rebuildShadowRootLayoutTree()
3. Element::reattachPseudoElementLayoutTree(PseudoId pseudoId)
4. ShadowRoot::rebuildLayoutTree()
It also changes the setting/getting of the (Child)NeedsStyleRecalc
and (Child)NeedsReattachLayoutTree bits to match this pattern.
The patch also adds a LayoutTest to test for the crash caught
in crbug.com/695950.
BUG=595137
Review-Url: https://codereview.chromium.org/2473743003
Cr-Original-Commit-Position: refs/heads/master@{#451987}
Committed: https://chromium.googlesource.com/chromium/src/+/8b6c7b7ce5a36d8eda49dd6e60c5e7c8f5c7277f
Review-Url: https://codereview.chromium.org/2473743003
Cr-Commit-Position: refs/heads/master@{#454824}
18 files changed