| Summary: | ASSERTION when pasting text into the WebInspector console | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | WebKit | Reporter: | Sam Weinig <sam> | ||||||
| Component: | HTML Editing | Assignee: | Chris Dumez <cdumez> | ||||||
| Status: | RESOLVED FIXED | ||||||||
| Severity: | Normal | CC: | cdumez, joepeck, rniwa | ||||||
| Priority: | P2 | ||||||||
| Version: | 528+ (Nightly build) | ||||||||
| Hardware: | Unspecified | ||||||||
| OS: | Unspecified | ||||||||
| See Also: | https://bugs.webkit.org/show_bug.cgi?id=144471 | ||||||||
| Attachments: |
|
||||||||
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. |
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.