In https://trac.webkit.org/r167845 (bug 132172), the renderView->setNeedsLayout() call was introduced to trigger selection update. However this is problematic in a couple of different ways. 1. marking the root renderer dirty does not trigger layout (this is very specific to the root, other renderers do trigger layout) -so this works as long as someone else schedules a layout. 2. when a subtree layout is already scheduled and we mark the root renderer dirty, the root gets stuck with the dirty flag (since the entry point for the subsequent layout is a descendant of the root and not the root itself). -this got revealed with bug 178621.
<rdar://problem/35117448>
Created attachment 324539 [details] Patch
Comment on attachment 324539 [details] Patch Clearing flags on attachment: 324539 Committed r223835: <https://trac.webkit.org/changeset/223835>
All reviewed patches have been landed. Closing bug.
Comment on attachment 324539 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=324539&action=review > Source/WebCore/page/FrameView.cpp:3192 > + // However we can't tell at this point if the tree is stable yet, so let's just schedule a root only layout for now. "root only" sounds weird.
You didn't undo the TestExpectation changes in https://bugs.webkit.org/attachment.cgi?id=324541 ?