RESOLVED CONFIGURATION CHANGED 178116
El Capitan: Assertion failure inside RenderBlockFlow::ensureLineBoxes()
https://bugs.webkit.org/show_bug.cgi?id=178116
Summary El Capitan: Assertion failure inside RenderBlockFlow::ensureLineBoxes()
Ryosuke Niwa
Reported 2017-10-10 00:21:15 PDT
stderr: ASSERTION FAILED: didNeedLayout || logicalHeight() == oldHeight /Volumes/Data/git-webkit/Source/WebCore/rendering/RenderBlockFlow.cpp(3661) : void WebCore::RenderBlockFlow::ensureLineBoxes() 1 0x120978ecd WTFCrash 2 0x1144cf8bd WebCore::RenderBlockFlow::ensureLineBoxes() 3 0x11479b4c0 WebCore::RenderText::ensureLineBoxes() 4 0x114405a0a WebCore::ensureLineBoxesIfNeeded(WebCore::RenderObject&) 5 0x114403bcf WebCore::Position::downstream(WebCore::EditingBoundaryCrossingRule) const 6 0x112a71d36 WebCore::previousVisuallyDistinctCandidate(WebCore::Position const&) 7 0x114ef5e6a WebCore::VisiblePosition::previous(WebCore::EditingBoundaryCrossingRule, bool*) const 8 0x114f02ff0 WebCore::isStartOfDocument(WebCore::VisiblePosition const&) 9 0x112cf5960 WebCore::FrameSelection::selectFrameElementInParentIfFullySelected() 10 0x112cf5507 WebCore::FrameSelection::setSelectionWithoutUpdatingAppearance(WebCore::VisibleSelection const&, unsigned int, WebCore::FrameSelection::CursorAlignOnScroll, WebCore::TextGranularity) 11 0x112cf3b34 WebCore::FrameSelection::setSelection(WebCore::VisibleSelection const&, unsigned int, WebCore::AXTextStateChangeIntent, WebCore::FrameSelection::CursorAlignOnScroll, WebCore::TextGranularity) 12 0x112cfe603 WebCore::FrameSelection::selectAll() 13 0x112aa7cf8 WebCore::executeSelectAll(WebCore::Frame&, WebCore::Event*, WebCore::EditorCommandSource, WTF::String const&) 14 0x112aa3993 WebCore::Editor::Command::execute(WTF::String const&, WebCore::Event*) const 15 0x1128f0819 WebCore::Document::execCommand(WTF::String const&, bool, WTF::String const&) 16 0x1134d1339 WebCore::jsDocumentPrototypeFunctionExecCommandBody(JSC::ExecState*, WebCore::JSDocument*, JSC::ThrowScope&) 17 0x1134bb3de long long WebCore::IDLOperation<WebCore::JSDocument>::call<&(WebCore::jsDocumentPrototypeFunctionExecCommandBody(JSC::ExecState*, WebCore::JSDocument*, JSC::ThrowScope&)), (WebCore::CastedThisErrorBehavior)0>(JSC::ExecState&, char const*) 18 0x1134bb16c WebCore::jsDocumentPrototypeFunctionExecCommand(JSC::ExecState*) 19 0x2983fee01028 20 0x11f554081 llint_entry 21 0x11f554081 llint_entry 22 0x11f54c447 vmEntryToJavaScript 23 0x12025fb6e JSC::JITCode::execute(JSC::VM*, JSC::ProtoCallFrame*) 24 0x1202070eb JSC::Interpreter::executeProgram(JSC::SourceCode const&, JSC::ExecState*, JSC::JSObject*) 25 0x1204804b7 JSC::evaluate(JSC::ExecState*, JSC::SourceCode const&, JSC::JSValue, WTF::NakedPtr<JSC::Exception>&) 26 0x120480650 JSC::profiledEvaluate(JSC::ExecState*, JSC::ProfilingReason, JSC::SourceCode const&, JSC::JSValue, WTF::NakedPtr<JSC::Exception>&) 27 0x1148b0d2b WebCore::JSMainThreadExecState::profiledEvaluate(JSC::ExecState*, JSC::ProfilingReason, JSC::SourceCode const&, JSC::JSValue, WTF::NakedPtr<JSC::Exception>&) 28 0x1148b0b18 WebCore::ScriptController::evaluateInWorld(WebCore::ScriptSourceCode const&, WebCore::DOMWrapperWorld&, WebCore::ExceptionDetails*) 29 0x1148b0e0d WebCore::ScriptController::evaluate(WebCore::ScriptSourceCode const&, WebCore::ExceptionDetails*) 30 0x1148c6032 WebCore::ScriptElement::executeClassicScript(WebCore::ScriptSourceCode const&) 31 0x1148c463f WebCore::ScriptElement::prepareScript(WTF::TextPosition const&, WebCore::ScriptElement::LegacyTypeSupport)
Attachments
crash.html (642 bytes, text/html)
2017-10-10 00:22 PDT, Ryosuke Niwa
no flags
Ryosuke Niwa
Comment 1 2017-10-10 00:22:47 PDT
Created attachment 323286 [details] crash.html Place this file inside LayoutTests and run: ./Tools/Scripts/run-webkit-tests --debug --no-retry --no-new-test-results crash.html As far as I've tested, you can only reproduce this on OS X El Capitan (10.11). e.g. 15G31 / 10.11.6.
Alexey Proskuryakov
Comment 2 2017-10-13 10:46:03 PDT
Weird that this appears to be OS version dependent. I tried, and couldn't reproduce on High Sierra indeed. We should probably at least land the test case skipped on 10.11.
Ryosuke Niwa
Comment 3 2017-10-13 13:16:13 PDT
(In reply to Alexey Proskuryakov from comment #2) > Weird that this appears to be OS version dependent. I tried, and couldn't > reproduce on High Sierra indeed. > > We should probably at least land the test case skipped on 10.11. Yeah, it's super weird. I had to install El Capitan in order to reproduce this.
Ryosuke Niwa
Comment 4 2017-10-14 17:48:00 PDT
My guess is that it's something to do with the render theme of buttons because it's asserting as the editing code traverses into the button. If I add another div between the editable element and the button, the assertion goes away. In fact, that's how I worked around this in https://trac.webkit.org/r223195.
Antti Koivisto
Comment 5 2017-10-15 10:49:04 PDT
That assert is saying that results from the simple line layout path and the line box path don't match. This may be due to a bug on either path or it may be some rare case where we should not be using simple lines but are. On release something would be misrendered as a result.
Ahmad Saleem
Comment 6 2023-09-03 03:47:45 PDT
I know it might not be direct assertion link but 'FrameSelection::selectAll', Blink fixed this potential assertion: https://chromium.googlesource.com/chromium/src.git/+/526d14e61982c269e32bb2dd9869cd9185ab3da0 https://searchfox.org/wubkat/source/Source/WebCore/editing/FrameSelection.cpp#2128
zalan
Comment 7 2023-09-05 15:39:06 PDT
This is certainly not valid anymore.
Note You need to log in before you can comment on or make changes to this bug.