RESOLVED WORKSFORME 15134
Assertion failure in WebCore::AppendNodeCommand::doApply() while editing <ul>
https://bugs.webkit.org/show_bug.cgi?id=15134
Summary Assertion failure in WebCore::AppendNodeCommand::doApply() while editing <ul>
Matt Lilek
Reported 2007-09-02 15:48:35 PDT
Load the HTML snippet at the URL and focus it. Enter a couple lines, then backspace to delete what you've just entered. When everything is erased, hit backspace once more and you'll hit this assert: This asserts on both Tiger (10.4.10, 8R218) and Windows XP with r25436 with Safari 3.0.3 Public Beta. In a release build, this deletes the <ul>. ASSERTION FAILED: isContentEditable(m_parentNode.get()) || enclosingNodeOfType(m_parentNode.get(), &isContentEditable) || !m_parentNode->attached() (WebKit/WebCore/editing/AppendNodeCommand.cpp:46 virtual void WebCore::AppendNodeCommand::doApply()) Thread 0 Crashed: 0 com.apple.WebCore 0x01213934 WebCore::AppendNodeCommand::doApply() + 508 1 com.apple.WebCore 0x01229884 WebCore::EditCommand::apply() + 496 (EditCommand.cpp:92) 2 com.apple.WebCore 0x0121e1fc WebCore::CompositeEditCommand::applyCommandToComposite(WTF::PassRefPtr<WebCore::EditCommand>) + 72 (CompositeEditCommand.cpp:97) 3 com.apple.WebCore 0x0121e720 WebCore::CompositeEditCommand::appendNode(WebCore::Node*, WebCore::Node*) + 208 (CompositeEditCommand.cpp:172) 4 com.apple.WebCore 0x0121e824 WebCore::CompositeEditCommand::insertNodeAfter(WebCore::Node*, WebCore::Node*) + 216 (CompositeEditCommand.cpp:135) 5 com.apple.WebCore 0x012208d0 WebCore::CompositeEditCommand::breakOutOfEmptyListItem() + 592 (CompositeEditCommand.cpp:820) 6 com.apple.WebCore 0x01253778 WebCore::TypingCommand::deleteKeyPressed(WebCore::TextGranularity) + 412 (TypingCommand.cpp:363) 7 com.apple.WebCore 0x01254b50 WebCore::TypingCommand::deleteKeyPressed(WebCore::Document*, bool, WebCore::TextGranularity) + 240 (TypingCommand.cpp:69) 8 com.apple.WebCore 0x0145c308 WebCore::Editor::deleteRange(WebCore::Range*, bool, bool, bool, WebCore::EditorDeleteAction, WebCore::TextGranularity) + 428 (Editor.cpp:254) 9 com.apple.WebCore 0x0145c744 WebCore::Editor::deleteWithDirection(WebCore::SelectionController::EDirection, WebCore::TextGranularity, bool, bool) + 656 (Editor.cpp:315) 10 com.apple.WebKit 0x0035b188 -[WebHTMLView deleteBackward:] + 240 (WebHTMLView.mm:4359) 11 com.apple.WebKit 0x0036a18c -[WebHTMLView(WebNSTextInputSupport) doCommandBySelector:] + 1164 (WebHTMLView.mm:5636) 12 com.apple.WebKit 0x00369c58 -[WebHTMLView(WebInternal) _interceptEditingKeyEvent:shouldSaveCommand:] + 780 (WebHTMLView.mm:5279) 13 com.apple.WebKit 0x003c2d74 WebEditorClient::handleKeypress(WebCore::KeyboardEvent*) + 228 (WebEditorClient.mm:437) 14 com.apple.WebCore 0x01457e5c WebCore::Editor::handleKeypress(WebCore::KeyboardEvent*) + 164 (Editor.cpp:115) 15 com.apple.WebCore 0x014c1d40 WebCore::EventHandler::defaultKeyboardEventHandler(WebCore::KeyboardEvent*) + 112 (EventHandler.cpp:1489) 16 com.apple.WebCore 0x0128f120 WebCore::EventTargetNode::defaultEventHandler(WebCore::Event*) + 308 (EventTargetNode.cpp:593) 17 com.apple.WebCore 0x0128e150 WebCore::EventTargetNode::dispatchGenericEvent(WTF::PassRefPtr<WebCore::Event>, int&, bool) + 2632 (EventTargetNode.cpp:266) 18 com.apple.WebCore 0x0128e7cc WebCore::EventTargetNode::dispatchEvent(WTF::PassRefPtr<WebCore::Event>, int&, bool, WebCore::EventTarget*) + 396 (EventTargetNode.cpp:308) 19 com.apple.WebCore 0x0128e860 WebCore::EventTargetNode::dispatchEvent(WTF::PassRefPtr<WebCore::Event>, int&, bool) + 80 (EventTargetNode.cpp:292) 20 com.apple.WebCore 0x014c52ec WebCore::EventHandler::keyEvent(WebCore::PlatformKeyboardEvent const&) + 800 (EventHandler.cpp:1480) 21 com.apple.WebCore 0x014bdd68 WebCore::EventHandler::keyEvent(NSEvent*) + 520 (EventHandlerMac.mm:141) 22 com.apple.WebKit 0x00356670 -[WebHTMLView keyDown:] + 360 (WebHTMLView.mm:3577) 23 com.apple.AppKit 0x937d9fa0 -[NSWindow sendEvent:] + 6424
Attachments
Testcase (387 bytes, text/html)
2007-09-02 16:43 PDT, Matt Lilek
no flags
Matt Lilek
Comment 1 2007-09-02 16:42:51 PDT
This might be P1 material. In the attached testcase, there's a contenteditable list. Pasting something into it that contains new lines then hitting enter twice to create a new list item hits this assert in a debug build, but in a release build it deletes the item.
Matt Lilek
Comment 2 2007-09-02 16:43:11 PDT
Created attachment 16183 [details] Testcase
Mark Rowe (bdash)
Comment 3 2007-09-02 17:30:36 PDT
Ryosuke Niwa
Comment 4 2012-06-03 00:19:08 PDT
I can't reproduce this assertion failure anymore.
Note You need to log in before you can comment on or make changes to this bug.