This is discovered by DCHECK(!needsLayout()) in mapToVisualRectInAncestorSpace():
[ RUN ] All/WebViewTest.TouchDoesntSelectEmptyTextarea/0
[13092:13092:0118/052946.495175:10627008939:FATAL:LayoutBox.cpp(2332)] Check failed: !needsLayout().
#0 0x000001e565be base::debug::StackTrace::StackTrace()
#1 0x000001e6340b logging::LogMessage::~LogMessage()
#2 0x0000032101e0 blink::LayoutBox::mapToVisualRectInAncestorSpace()
#3 0x00000328b9a1 blink::LayoutObject::mapToVisualRectInAncestorSpace()
#4 0x000003467280 blink::PaintLayer::mapRectToPaintInvalidationBacking()
#5 0x000003458b51 blink::ObjectPaintInvalidator::invalidatePaintRectangle()
#6 0x00000328ac6d blink::LayoutObject::invalidatePaintRectangle()
#7 0x000002dc8992 blink::CaretBase::invalidateLocalCaretRect()
#8 0x000002db074a blink::FrameCaret::dataWillChange()
#9 0x000002c3002d blink::CharacterData::setDataAndUpdate()
#10 0x000002c2ffc4 blink::CharacterData::setData()
#11 0x000002e57aea blink::replaceChildrenWithText()
#12 0x00000302c8b7 blink::TextControlElement::setInnerEditorValue()
#13 0x00000300e305 blink::HTMLTextAreaElement::setValueCommon()
#14 0x00000300cd2b blink::HTMLTextAreaElement::setValue()
We should not synchronously invalidate caret.
Comment 1 by wangxianzhu@chromium.org
, Jan 18 2017