I have investigate this to find out that the problem lies on readjusting the size of the view, here (FrameView.cpp::layout around line 679): if (!subtree && !toRenderView(root)->printing()) adjustViewSize(); This ends up in a call to updateScrollbars, in GTK+, which ends up triggering a resize of the view (because the parent widget's scroll bars take up space), which requests a relayout. So the ASSERT ends up being hit: ASSERT(!root->needsLayout()); I have investigated a bunch of solutions, such as having our own implementation of ScrollView::setContentsSize, but I always end up in having to either reimplement almost all of the updateScrollbars logic, or triggering a relayout anyway. I feel like the call to updateScrollbars is correct, and that triggering the resize of the view is an expected outcome - so the assert would not be correct for GTK+ - but I am not sure enough, so I decided to open this bug report and request help/advice from layout/scrolling wizards.
This seems to be passing locally (perhaps because of the scrollbar changes). I'll unskip it and close, reopening if there are any problems.
Unskipped and this doesn't appear to be an issue any longer. Closing.