Bug 144471
| Summary: | [iOS] Lots of editing tests ASSERT that "Calling editorState() should not cause a synchronous layout." | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Joseph Pecoraro <joepeck> |
| Component: | HTML Editing | Assignee: | Nobody <webkit-unassigned> |
| Status: | RESOLVED DUPLICATE | ||
| Severity: | Normal | CC: | ap, cdumez, enrica, joepeck, rniwa, webkit-bug-importer |
| Priority: | P2 | Keywords: | InRadar |
| Version: | 528+ (Nightly build) | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| See Also: | https://bugs.webkit.org/show_bug.cgi?id=144774 | ||
Joseph Pecoraro
* SUMMARY
[iOS] Lots of editing tests ASSERT that "Calling editorState() should not cause a synchronous layout."
* STEPS TO REPRODUCE
1. shell> run-webkit-tests --debug --ios-simulator editing
* NOTES
About 30 editing tests are failing with this ASSERT/CRASH log.
stderr:
ASSERTION FAILED: Calling editorState() should not cause a synchronous layout.
needsLayout == (view && view->needsLayout())
Source/WebKit2/WebProcess/WebPage/WebPage.cpp(4409) : void WebKit::WebPage::didChangeSelection()
1 0x118548920 WTFCrash
2 0x113c43b73 WebKit::WebPage::didChangeSelection()
3 0x113c83bb8 WebKit::WebPage::updateSelectionAppearance()
4 0x113b54736 WebKit::WebFrameLoaderClient::dispatchDidLayout()
5 0x11a5c12fa WebCore::FrameView::performPostLayoutTasks()
6 0x11a5c0798 WebCore::FrameView::layout(bool)
7 0x11a215627 WebCore::Document::updateLayout()
8 0x11a218f8f WebCore::Document::updateLayoutIgnorePendingStylesheets(WebCore::Document::RunPostLayoutTasks)
9 0x11a922907 WebCore::InsertIntoTextNodeCommand::doApply()
10 0x119f6fbf7 WebCore::CompositeEditCommand::applyCommandToComposite(WTF::PassRefPtr<WebCore::EditCommand>)
11 0x119f717f8 WebCore::CompositeEditCommand::insertTextIntoNode(WTF::PassRefPtr<WebCore::Text>, unsigned int, WTF::String const&)
12 0x11a92ba35 WebCore::InsertTextCommand::doApply()
13 0x119f6fd41 WebCore::CompositeEditCommand::applyCommandToComposite(WTF::PassRefPtr<WebCore::CompositeEditCommand>, WebCore::VisibleSelection const&)
14 0x11bb4575b WebCore::TypingCommand::insertTextRunWithoutNewlines(WTF::String const&, bool)
15 0x11bb465f2 WebCore::TypingCommandLineOperation::operator()(unsigned long, unsigned long, bool) const
16 0x11bb45f11 void WebCore::forEachLineInString<WebCore::TypingCommandLineOperation>(WTF::String const&, WebCore::TypingCommandLineOperation const&)
17 0x11bb44b58 WebCore::TypingCommand::insertText(WTF::String const&, bool)
18 0x11bb44a0f WebCore::TypingCommand::insertText(WebCore::Document&, WTF::String const&, WebCore::VisibleSelection const&, unsigned int, WebCore::TypingCommand::TextCompositionType)
19 0x11bb447c5 WebCore::TypingCommand::insertText(WebCore::Document&, WTF::String const&, unsigned int, WebCore::TypingCommand::TextCompositionType)
20 0x11a3ae3f4 WebCore::executeInsertText(WebCore::Frame&, WebCore::Event*, WebCore::EditorCommandSource, WTF::String const&)
21 0x11a3ac117 WebCore::Editor::Command::execute(WTF::String const&, WebCore::Event*) const
22 0x11a225798 WebCore::Document::execCommand(WTF::String const&, bool, WTF::String const&)
23 0x11ab04e95 WebCore::jsDocumentPrototypeFunctionExecCommand(JSC::ExecState*)
24 0x21fd0827028
25 0x1182ebe53 llint_entry
26 0x1182ebe53 llint_entry
27 0x21fd08281da
28 0x1182ebe53 llint_entry
29 0x1182ebe53 llint_entry
30 0x1182e56d9 vmEntryToJavaScript
31 0x11814e8fc JSC::JITCode::execute(JSC::VM*, JSC::ProtoCallFrame*)
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Joseph Pecoraro
This affects not just editing tests but that is predominantly where they happen.
Chris Dumez
I added this assertion. It is indicative of a possible performance problem.
Did we start hitting this recently?
Joseph Pecoraro
(In reply to comment #2)
> I added this assertion. It is indicative of a possible performance problem.
> Did we start hitting this recently?
Yes. Running iOS LayoutTests in Debug I see this frequently, especially in the editing directory.
Radar WebKit Bug Importer
<rdar://problem/20771251>
Chris Dumez
*** This bug has been marked as a duplicate of bug 144774 ***