Created attachment 265050 [details] Test Load the attached test with debug MiniBrowser: a<div>a</div> <script> document.designMode = 'on'; document.execCommand("selectAll", false); document.execCommand("strikeThrough", true); document.execCommand("insertText" , true, "a"); </script> OS: Ubuntu 15.04 x86_64 Checked build: debug EFL Checked version: 009fb33 Backtrace: ASSERTION FAILED: !textDecorationsInEffect || !textDecoration ../../Source/WebCore/editing/EditingStyle.cpp(1551) : void WebCore::reconcileTextDecorationProperties(WebCore::MutableStyleProperties*) 1 0x7f5ba7450f97 WTFCrash 2 0x7f5bad6beaf7 3 0x7f5bad6beed6 WebCore::StyleChange::StyleChange(WebCore::EditingStyle*, WebCore::Position const&) 4 0x7f5bae870e7e WebCore::ApplyStyleCommand::applyInlineStyleToNodeRange(WebCore::EditingStyle*, WTF::PassRefPtr<WebCore::Node>, WTF::PassRefPtr<WebCore::Node>) 5 0x7f5bae8704a5 WebCore::ApplyStyleCommand::fixRangeAndApplyInlineStyle(WebCore::EditingStyle*, WebCore::Position const&, WebCore::Position const&) 6 0x7f5bae86fe0c WebCore::ApplyStyleCommand::applyInlineStyle(WebCore::EditingStyle*) 7 0x7f5bae86c057 WebCore::ApplyStyleCommand::doApply() 8 0x7f5bae87e6c4 WebCore::CompositeEditCommand::applyCommandToComposite(WTF::PassRefPtr<WebCore::EditCommand>) 9 0x7f5bae87e8f9 WebCore::CompositeEditCommand::applyStyle(WebCore::EditingStyle const*, WebCore::EditAction) 10 0x7f5bae8a02ba WebCore::InsertTextCommand::doApply() 11 0x7f5bae87e86b WebCore::CompositeEditCommand::applyCommandToComposite(WTF::PassRefPtr<WebCore::CompositeEditCommand>, WebCore::VisibleSelection const&) 12 0x7f5bad72e9f3 WebCore::TypingCommand::insertTextRunWithoutNewlines(WTF::String const&, bool) 13 0x7f5bad73154a WebCore::TypingCommandLineOperation::operator()(unsigned long, unsigned long, bool) const 14 0x7f5bad731b40 void WebCore::forEachLineInString<WebCore::TypingCommandLineOperation>(WTF::String const&, WebCore::TypingCommandLineOperation const&) 15 0x7f5bad72e91d WebCore::TypingCommand::insertText(WTF::String const&, bool) 16 0x7f5bad72e3ce WebCore::TypingCommand::doApply() 17 0x7f5bae87e3f0 WebCore::CompositeEditCommand::apply() 18 0x7f5bae87e1a1 WebCore::applyCommand(WTF::PassRefPtr<WebCore::CompositeEditCommand>) 19 0x7f5bae8aae59 WebCore::TextInsertionBaseCommand::applyTextInsertionCommand(WebCore::Frame*, WTF::PassRefPtr<WebCore::TextInsertionBaseCommand>, WebCore::VisibleSelection const&, WebCore::VisibleSelection const&) 20 0x7f5bad72d9ac WebCore::TypingCommand::insertText(WebCore::Document&, WTF::String const&, WebCore::VisibleSelection const&, unsigned int, WebCore::TypingCommand::TextCompositionType) 21 0x7f5bad72d66e WebCore::TypingCommand::insertText(WebCore::Document&, WTF::String const&, unsigned int, WebCore::TypingCommand::TextCompositionType) 22 0x7f5bad6e5ccb 23 0x7f5bad6e962a WebCore::Editor::Command::execute(WTF::String const&, WebCore::Event*) const 24 0x7f5bad58f3b5 WebCore::Document::execCommand(WTF::String const&, bool, WTF::String const&) 25 0x7f5baecbd119 WebCore::jsDocumentPrototypeFunctionExecCommand(JSC::ExecState*) 26 0x7f5b47fff0c8 Aborted (core dumped) Program terminated with signal SIGSEGV, Segmentation fault. #0 0x00007f5ba7450f9c in WTFCrash () at ../../Source/WTF/wtf/Assertions.cpp:321 321 *(int *)(uintptr_t)0xbbadbeef = 0; #0 0x00007f5ba7450f9c in WTFCrash () at ../../Source/WTF/wtf/Assertions.cpp:321 #1 0x00007f5bad6beaf7 in WebCore::reconcileTextDecorationProperties (style=0x7f5b8ebeb000) at ../../Source/WebCore/editing/EditingStyle.cpp:1551 #2 0x00007f5bad6beed6 in WebCore::StyleChange::StyleChange (this=0x7ffd00981c80, style=0x7f5b8eb70a38, position=...) at ../../Source/WebCore/editing/EditingStyle.cpp:1585 #3 0x00007f5bae870e7e in WebCore::ApplyStyleCommand::applyInlineStyleToNodeRange (this=0x7f5b8eaafab0, style=0x7f5b8eb70a38, startNode=..., pastEndNode=...) at ../../Source/WebCore/editing/ApplyStyleCommand.cpp:835 #4 0x00007f5bae8704a5 in WebCore::ApplyStyleCommand::fixRangeAndApplyInlineStyle (this=0x7f5b8eaafab0, style=0x7f5b8eb70a38, start=..., end=...) at ../../Source/WebCore/editing/ApplyStyleCommand.cpp:728 #5 0x00007f5bae86fe0c in WebCore::ApplyStyleCommand::applyInlineStyle (this=0x7f5b8eaafab0, style=0x7f5b8eb70a38) at ../../Source/WebCore/editing/ApplyStyleCommand.cpp:691 #6 0x00007f5bae86c057 in WebCore::ApplyStyleCommand::doApply (this=0x7f5b8eaafab0) at ../../Source/WebCore/editing/ApplyStyleCommand.cpp:211 #7 0x00007f5bae87e6c4 in WebCore::CompositeEditCommand::applyCommandToComposite (this=0x7f5b8ebd30f8, prpCommand=...) at ../../Source/WebCore/editing/CompositeEditCommand.cpp:278 #8 0x00007f5bae87e8f9 in WebCore::CompositeEditCommand::applyStyle (this=0x7f5b8ebd30f8, style=0x7f5b8eb70648, editingAction=WebCore::EditActionChangeAttributes) at ../../Source/WebCore/editing/CompositeEditCommand.cpp:299 #9 0x00007f5bae8a02ba in WebCore::InsertTextCommand::doApply (this=0x7f5b8ebd30f8) at ../../Source/WebCore/editing/InsertTextCommand.cpp:228 #10 0x00007f5bae87e86b in WebCore::CompositeEditCommand::applyCommandToComposite (this=0x7f5b8eaa6000, command=..., selection=...) at ../../Source/WebCore/editing/CompositeEditCommand.cpp:293 #11 0x00007f5bad72e9f3 in WebCore::TypingCommand::insertTextRunWithoutNewlines (this=0x7f5b8eaa6000, text=..., selectInsertedText=false) at ../../Source/WebCore/editing/TypingCommand.cpp:379 #12 0x00007f5bad73154a in WebCore::TypingCommandLineOperation::operator() (this=0x7ffd009823d0, lineOffset=0, lineLength=16, isLastLine=true) at ../../Source/WebCore/editing/TypingCommand.cpp:63 #13 0x00007f5bad731b40 in WebCore::forEachLineInString<WebCore::TypingCommandLineOperation> (string=..., operation=...) at ../../Source/WebCore/editing/TextInsertionBaseCommand.h:61 #14 0x00007f5bad72e91d in WebCore::TypingCommand::insertText (this=0x7f5b8eaa6000, text=..., selectInsertedText=false) at ../../Source/WebCore/editing/TypingCommand.cpp:371 #15 0x00007f5bad72e3ce in WebCore::TypingCommand::doApply (this=0x7f5b8eaa6000) at ../../Source/WebCore/editing/TypingCommand.cpp:281 #16 0x00007f5bae87e3f0 in WebCore::CompositeEditCommand::apply (this=0x7f5b8eaa6000) at ../../Source/WebCore/editing/CompositeEditCommand.cpp:227 #17 0x00007f5bae87e1a1 in WebCore::applyCommand (command=...) at ../../Source/WebCore/editing/CompositeEditCommand.cpp:186 #18 0x00007f5bae8aae59 in WebCore::TextInsertionBaseCommand::applyTextInsertionCommand (frame=0x7f5b8eae4000, command=..., selectionForInsertion=..., endingSelection=...) at ../../Source/WebCore/editing/TextInsertionBaseCommand.cpp:50 #19 0x00007f5bad72d9ac in WebCore::TypingCommand::insertText (document=..., text=..., selectionForInsertion=..., options=0, compositionType=WebCore::TypingCommand::TextCompositionNone) at ../../Source/WebCore/editing/TypingCommand.cpp:190 #20 0x00007f5bad72d66e in WebCore::TypingCommand::insertText (document=..., text=..., options=0, composition=WebCore::TypingCommand::TextCompositionNone) at ../../Source/WebCore/editing/TypingCommand.cpp:160 #21 0x00007f5bad6e5ccb in WebCore::executeInsertText (frame=..., value=...) at ../../Source/WebCore/editing/EditorCommand.cpp:535 #22 0x00007f5bad6e962a in WebCore::Editor::Command::execute (this=0x7ffd009826f0, parameter=..., triggeringEvent=0x0) at ../../Source/WebCore/editing/EditorCommand.cpp:1703 #23 0x00007f5bad58f3b5 in WebCore::Document::execCommand (this=0x7f5b8e826a40, commandName=..., userInterface=true, value=...) at ../../Source/WebCore/dom/Document.cpp:4657 #24 0x00007f5baecbd119 in WebCore::jsDocumentPrototypeFunctionExecCommand (state=0x7ffd009827c0) at DerivedSources/WebCore/JSDocument.cpp:5066 #25 0x00007f5b47fff0c8 in ?? () #26 0x00007ffd00982840 in ?? () #27 0x00007f5ba73f9764 in llint_entry () from webkit/WebKitBuild/Debug/lib/libjavascriptcore_efl.so.1
This reproduces under r204037.
<rdar://problem/27711029>
This no longer crashes under ToT WebKit.