Created attachment 252647 [details] Crash log I am consistently hitting the assertion, ASSERT_WITH_MESSAGE(needsLayout == (view && view->needsLayout()), "Calling editorState() should not cause a synchronous layout.") under WebPage::didChangeSelection() when pasting text into the WebInspector console. Crash log attached.
I am able to reproduce.
Looks like what's causing the sync layout is one of these: result.selectionIsNone = selection.isNone(); result.selectionIsRange = selection.isRange(); result.isContentEditable = selection.isContentEditable(); result.isContentRichlyEditable = selection.isContentRichlyEditable(); result.isInPasswordField = selection.isInPasswordField(); result.hasComposition = frame.editor().hasComposition(); result.shouldIgnoreCompositionSelectionChange = frame.editor().ignoreCompositionSelectionChange(); Not something in platformEditorState.
What happens is actually that needsLayout is false but (view && view->needsLayout()) is true. This case is fine as we merely scheduled a layout, we did not cause a sync layout. We need to tweak the assertion accordingly.
Created attachment 252669 [details] Patch
*** Bug 144471 has been marked as a duplicate of this bug. ***
Comment on attachment 252669 [details] Patch Clearing flags on attachment: 252669 Committed r183969: <http://trac.webkit.org/changeset/183969>
All reviewed patches have been landed. Closing bug.