RESOLVED FIXED 155899
Hanging-punctuation: last crashes
https://bugs.webkit.org/show_bug.cgi?id=155899
Summary Hanging-punctuation: last crashes
Jon Lee
Reported 2016-03-25 13:08:59 PDT
Create a user stylesheet and make it the user stylesheet in the latest WebKit nightly. The stylesheet has one rule: * { hanging-punctuation: last; } Open nytimes.com. It crashes on load. Thread 0 Crashed:: Dispatch queue: com.apple.main-thread 0 com.apple.WebCore 0x00007fff8d94178b WebCore::RenderText::hangablePunctuationEndWidth(unsigned int) const + 59 1 com.apple.WebCore 0x00007fff8d845c1b WebCore::RenderBlockFlow::computeInlinePreferredLogicalWidths(WebCore::LayoutUnit&, WebCore::LayoutUnit&) const + 6923 2 com.apple.WebCore 0x00007fff8d843f6a WebCore::RenderBlockFlow::computeIntrinsicLogicalWidths(WebCore::LayoutUnit&, WebCore::LayoutUnit&) const + 58 3 com.apple.WebCore 0x00007fff8cc9eeb5 WebCore::RenderBlock::computePreferredLogicalWidths() + 309 4 com.apple.WebCore 0x00007fff8cc9d4ab WebCore::RenderBox::maxPreferredLogicalWidth() const + 27 5 com.apple.WebCore 0x00007fff8d88f43c WebCore::RenderFlexibleBox::preferredMainAxisContentExtentForChild(WebCore::RenderBox&, bool) + 380 6 com.apple.WebCore 0x00007fff8d88f5c2 WebCore::RenderFlexibleBox::computeNextFlexLine(WTF::Vector<WebCore::RenderBox*, 0ul, WTF::CrashOnOverflow, 16ul>&, WebCore::LayoutUnit&, double&, double&, WebCore::LayoutUnit&, bool&) + 306 7 com.apple.WebCore 0x00007fff8d88dcc9 WebCore::RenderFlexibleBox::layoutFlexItems(bool, WTF::Vector<WebCore::RenderFlexibleBox::LineContext, 0ul, WTF::CrashOnOverflow, 16ul>&) + 409 8 com.apple.WebCore 0x00007fff8cd07d42 WebCore::RenderFlexibleBox::layoutBlock(bool, WebCore::LayoutUnit) + 674 9 com.apple.WebCore 0x00007fff8cbdf7b6 WebCore::RenderBlock::layout() + 54 10 com.apple.WebCore 0x00007fff8d85a9b3 WebCore::RenderBlockFlow::layoutLineBoxes(bool, WebCore::LayoutUnit&, WebCore::LayoutUnit&) + 3123 11 com.apple.WebCore 0x00007fff8d84651d WebCore::RenderBlockFlow::layoutBlock(bool, WebCore::LayoutUnit) + 941 12 com.apple.WebCore 0x00007fff8cbdf7b6 WebCore::RenderBlock::layout() + 54 13 com.apple.WebCore 0x00007fff8d84836a WebCore::RenderBlockFlow::layoutBlockChild(WebCore::RenderBox&, WebCore::RenderBlockFlow::MarginInfo&, WebCore::LayoutUnit&, WebCore::LayoutUnit&) + 826 14 com.apple.WebCore 0x00007fff8d8472bc WebCore::RenderBlockFlow::layoutBlockChildren(bool, WebCore::LayoutUnit&) + 508 15 com.apple.WebCore 0x00007fff8d846505 WebCore::RenderBlockFlow::layoutBlock(bool, WebCore::LayoutUnit) + 917 16 com.apple.WebCore 0x00007fff8cbdf7b6 WebCore::RenderBlock::layout() + 54 17 com.apple.WebCore 0x00007fff8d84836a WebCore::RenderBlockFlow::layoutBlockChild(WebCore::RenderBox&, WebCore::RenderBlockFlow::MarginInfo&, WebCore::LayoutUnit&, WebCore::LayoutUnit&) + 826 18 com.apple.WebCore 0x00007fff8d8472bc WebCore::RenderBlockFlow::layoutBlockChildren(bool, WebCore::LayoutUnit&) + 508 19 com.apple.WebCore 0x00007fff8d846505 WebCore::RenderBlockFlow::layoutBlock(bool, WebCore::LayoutUnit) + 917 20 com.apple.WebCore 0x00007fff8cbdf7b6 WebCore::RenderBlock::layout() + 54 21 com.apple.WebCore 0x00007fff8d84836a WebCore::RenderBlockFlow::layoutBlockChild(WebCore::RenderBox&, WebCore::RenderBlockFlow::MarginInfo&, WebCore::LayoutUnit&, WebCore::LayoutUnit&) + 826 22 com.apple.WebCore 0x00007fff8d8472bc WebCore::RenderBlockFlow::layoutBlockChildren(bool, WebCore::LayoutUnit&) + 508 23 com.apple.WebCore 0x00007fff8d846505 WebCore::RenderBlockFlow::layoutBlock(bool, WebCore::LayoutUnit) + 917 24 com.apple.WebCore 0x00007fff8cbdf7b6 WebCore::RenderBlock::layout() + 54 25 com.apple.WebCore 0x00007fff8d847f1a WebCore::RenderBlockFlow::insertFloatingObject(WebCore::RenderBox&) + 346 26 com.apple.WebCore 0x00007fff8d8472c9 WebCore::RenderBlockFlow::layoutBlockChildren(bool, WebCore::LayoutUnit&) + 521 27 com.apple.WebCore 0x00007fff8d846505 WebCore::RenderBlockFlow::layoutBlock(bool, WebCore::LayoutUnit) + 917 28 com.apple.WebCore 0x00007fff8cbdf7b6 WebCore::RenderBlock::layout() + 54 29 com.apple.WebCore 0x00007fff8d84836a WebCore::RenderBlockFlow::layoutBlockChild(WebCore::RenderBox&, WebCore::RenderBlockFlow::MarginInfo&, WebCore::LayoutUnit&, WebCore::LayoutUnit&) + 826 30 com.apple.WebCore 0x00007fff8d8472bc WebCore::RenderBlockFlow::layoutBlockChildren(bool, WebCore::LayoutUnit&) + 508 31 com.apple.WebCore 0x00007fff8d846505 WebCore::RenderBlockFlow::layoutBlock(bool, WebCore::LayoutUnit) + 917 32 com.apple.WebCore 0x00007fff8cbdf7b6 WebCore::RenderBlock::layout() + 54 33 com.apple.WebCore 0x00007fff8d84836a WebCore::RenderBlockFlow::layoutBlockChild(WebCore::RenderBox&, WebCore::RenderBlockFlow::MarginInfo&, WebCore::LayoutUnit&, WebCore::LayoutUnit&) + 826 34 com.apple.WebCore 0x00007fff8d8472bc WebCore::RenderBlockFlow::layoutBlockChildren(bool, WebCore::LayoutUnit&) + 508 35 com.apple.WebCore 0x00007fff8d846505 WebCore::RenderBlockFlow::layoutBlock(bool, WebCore::LayoutUnit) + 917 36 com.apple.WebCore 0x00007fff8cbdf7b6 WebCore::RenderBlock::layout() + 54 37 com.apple.WebCore 0x00007fff8d84836a WebCore::RenderBlockFlow::layoutBlockChild(WebCore::RenderBox&, WebCore::RenderBlockFlow::MarginInfo&, WebCore::LayoutUnit&, WebCore::LayoutUnit&) + 826 38 com.apple.WebCore 0x00007fff8d8472bc WebCore::RenderBlockFlow::layoutBlockChildren(bool, WebCore::LayoutUnit&) + 508 39 com.apple.WebCore 0x00007fff8d846505 WebCore::RenderBlockFlow::layoutBlock(bool, WebCore::LayoutUnit) + 917 40 com.apple.WebCore 0x00007fff8cbdf7b6 WebCore::RenderBlock::layout() + 54 41 com.apple.WebCore 0x00007fff8d84836a WebCore::RenderBlockFlow::layoutBlockChild(WebCore::RenderBox&, WebCore::RenderBlockFlow::MarginInfo&, WebCore::LayoutUnit&, WebCore::LayoutUnit&) + 826 42 com.apple.WebCore 0x00007fff8d8472bc WebCore::RenderBlockFlow::layoutBlockChildren(bool, WebCore::LayoutUnit&) + 508 43 com.apple.WebCore 0x00007fff8d846505 WebCore::RenderBlockFlow::layoutBlock(bool, WebCore::LayoutUnit) + 917 44 com.apple.WebCore 0x00007fff8cbdf7b6 WebCore::RenderBlock::layout() + 54 45 com.apple.WebCore 0x00007fff8d84836a WebCore::RenderBlockFlow::layoutBlockChild(WebCore::RenderBox&, WebCore::RenderBlockFlow::MarginInfo&, WebCore::LayoutUnit&, WebCore::LayoutUnit&) + 826 46 com.apple.WebCore 0x00007fff8d8472bc WebCore::RenderBlockFlow::layoutBlockChildren(bool, WebCore::LayoutUnit&) + 508 47 com.apple.WebCore 0x00007fff8d846505 WebCore::RenderBlockFlow::layoutBlock(bool, WebCore::LayoutUnit) + 917 48 com.apple.WebCore 0x00007fff8cbdf7b6 WebCore::RenderBlock::layout() + 54 49 com.apple.WebCore 0x00007fff8d838940 WebCore::RenderBlock::layoutPositionedObject(WebCore::RenderBox&, bool, bool) + 400 50 com.apple.WebCore 0x00007fff8cbe3396 WebCore::RenderBlock::layoutPositionedObjects(bool, bool) + 102 51 com.apple.WebCore 0x00007fff8d84693d WebCore::RenderBlockFlow::layoutBlock(bool, WebCore::LayoutUnit) + 1997 52 com.apple.WebCore 0x00007fff8cbdf7b6 WebCore::RenderBlock::layout() + 54 53 com.apple.WebCore 0x00007fff8cbdf621 WebCore::RenderView::layout() + 769 54 com.apple.WebCore 0x00007fff8cbdccb8 WebCore::FrameView::layout(bool) + 2776 55 com.apple.WebCore 0x00007fff8d0435f2 WebCore::Document::updateLayoutIfDimensionsOutOfDate(WebCore::Element&, WebCore::DimensionsCheck) + 1058 56 com.apple.WebCore 0x00007fff8cca5833 WebCore::Element::offsetWidth() + 35 57 com.apple.WebCore 0x00007fff8d46fa00 WebCore::jsElementOffsetWidth(JSC::ExecState*, long long, JSC::PropertyName) + 48 58 com.apple.JavaScriptCore 0x00007fff8836769f llint_slow_path_get_by_id + 3583 59 com.apple.JavaScriptCore 0x00007fff889c31ec llint_entry + 10814 60 com.apple.JavaScriptCore 0x00007fff889c632d llint_entry + 23423 61 com.apple.JavaScriptCore 0x00007fff889c05cb vmEntryToJavaScript + 299 62 com.apple.JavaScriptCore 0x00007fff888a4fbe JSC::JITCode::execute(JSC::VM*, JSC::ProtoCallFrame*) + 158 63 com.apple.JavaScriptCore 0x00007fff881e3934 JSC::Interpreter::execute(JSC::ProgramExecutable*, JSC::ExecState*, JSC::JSObject*) + 16196 64 com.apple.JavaScriptCore 0x00007fff885659d5 JSC::evaluate(JSC::ExecState*, JSC::SourceCode const&, JSC::JSValue, WTF::NakedPtr<JSC::Exception>&) + 469 65 com.apple.WebCore 0x00007fff8d99f92e WebCore::ScriptController::evaluateInWorld(WebCore::ScriptSourceCode const&, WebCore::DOMWrapperWorld&, WebCore::ExceptionDetails*) + 318 66 com.apple.WebCore 0x00007fff8d99fb80 WebCore::ScriptController::evaluate(WebCore::ScriptSourceCode const&, WebCore::ExceptionDetails*) + 48 67 com.apple.WebCore 0x00007fff8cc21a3c WebCore::ScriptElement::executeScript(WebCore::ScriptSourceCode const&) + 556 68 com.apple.WebCore 0x00007fff8cc20afa WebCore::ScriptElement::prepareScript(WTF::TextPosition const&, WebCore::ScriptElement::LegacyTypeSupport) + 1066 69 com.apple.WebCore 0x00007fff8cc1fd02 WebCore::HTMLScriptRunner::runScript(WebCore::Element*, WTF::TextPosition const&) + 338 70 com.apple.WebCore 0x00007fff8cc1fb40 WebCore::HTMLScriptRunner::execute(WTF::PassRefPtr<WebCore::Element>, WTF::TextPosition const&) + 48 71 com.apple.WebCore 0x00007fff8cc1f9ac WebCore::HTMLDocumentParser::runScriptsForPausedTreeBuilder() + 316 72 com.apple.WebCore 0x00007fff8d2392fd WebCore::HTMLDocumentParser::pumpTokenizerLoop(WebCore::HTMLDocumentParser::SynchronousMode, bool, WebCore::PumpSession&) + 669 73 com.apple.WebCore 0x00007fff8cbb48e3 WebCore::HTMLDocumentParser::pumpTokenizer(WebCore::HTMLDocumentParser::SynchronousMode) + 115 74 com.apple.WebCore 0x00007fff8d239630 WebCore::HTMLDocumentParser::append(WTF::RefPtr<WTF::StringImpl>&&) + 480 75 com.apple.WebCore 0x00007fff8d01efe5 WebCore::DecodedDataDocumentParser::appendBytes(WebCore::DocumentWriter&, char const*, unsigned long) + 117 76 com.apple.WebCore 0x00007fff8cba8945 WebCore::DocumentLoader::commitData(char const*, unsigned long) + 1045 77 com.apple.WebKit 0x00007fff8dfb9f9a WebKit::WebFrameLoaderClient::committedLoad(WebCore::DocumentLoader*, char const*, int) + 50 78 com.apple.WebCore 0x00007fff8cc1a221 WebCore::DocumentLoader::commitLoad(char const*, int) + 145 79 com.apple.WebCore 0x00007fff8cc19ced WebCore::CachedRawResource::notifyClientsDataWasReceived(char const*, unsigned int) + 173 80 com.apple.WebCore 0x00007fff8ceea151 WebCore::CachedRawResource::addDataBuffer(WebCore::SharedBuffer&) + 145 81 com.apple.WebCore 0x00007fff8cc1977a WebCore::SubresourceLoader::didReceiveDataOrBuffer(char const*, int, WTF::PassRefPtr<WebCore::SharedBuffer>, long long, WebCore::DataPayloadType) + 218 82 com.apple.WebCore 0x00007fff8cc3861c WebCore::SubresourceLoader::didReceiveBuffer(WTF::PassRefPtr<WebCore::SharedBuffer>, long long, WebCore::DataPayloadType) + 44 83 com.apple.WebKit 0x00007fff8dfbf48e WebKit::WebResourceLoader::didReceiveResource(WebKit::ShareableResource::Handle const&, double) + 172 84 com.apple.WebKit 0x00007fff8e1d32a5 void IPC::handleMessage<Messages::WebResourceLoader::DidReceiveResource, WebKit::WebResourceLoader, void (WebKit::WebResourceLoader::*)(WebKit::ShareableResource::Handle const&, double)>(IPC::MessageDecoder&, WebKit::WebResourceLoader*, void (WebKit::WebResourceLoader::*)(WebKit::ShareableResource::Handle const&, double)) + 97 85 com.apple.WebKit 0x00007fff8e03524b IPC::Connection::dispatchMessage(std::__1::unique_ptr<IPC::MessageDecoder, std::__1::default_delete<IPC::MessageDecoder> >) + 127 86 com.apple.WebKit 0x00007fff8e0380c0 IPC::Connection::dispatchOneMessage() + 126 87 com.apple.JavaScriptCore 0x00007fff88b748a5 WTF::RunLoop::performWork() + 437 88 com.apple.JavaScriptCore 0x00007fff88b74c52 WTF::RunLoop::performWork(void*) + 34 89 com.apple.CoreFoundation 0x00007fff85eceb41 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17 90 com.apple.CoreFoundation 0x00007fff85eaf68d __CFRunLoopDoSources0 + 557 91 com.apple.CoreFoundation 0x00007fff85eaebef __CFRunLoopRun + 927 92 com.apple.CoreFoundation 0x00007fff85eae5e8 CFRunLoopRunSpecific + 296 93 com.apple.HIToolbox 0x00007fff85482bf2 RunCurrentEventLoopInMode + 240 94 com.apple.HIToolbox 0x00007fff85482a26 ReceiveNextEventCommon + 432 95 com.apple.HIToolbox 0x00007fff8548285b _BlockUntilNextEventMatchingListInModeWithFilter + 71 96 com.apple.AppKit 0x00007fff83a7635e _DPSNextEvent + 1055 97 com.apple.AppKit 0x00007fff841a0834 -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 766 98 com.apple.AppKit 0x00007fff83a6ad6f -[NSApplication run] + 926 99 com.apple.AppKit 0x00007fff83a36bb9 NSApplicationMain + 1179 100 libxpc.dylib 0x000000010cf3d9c3 _xpc_objc_main + 795 101 libxpc.dylib 0x000000010cf3c3a6 xpc_main + 494 102 com.apple.WebKit.WebContent 0x000000010cf0180f 0x10cf00000 + 6159 103 libdyld.dylib 0x00007fff99f6d499 start + 1
Attachments
user stylesheet (34 bytes, text/css)
2016-03-25 13:15 PDT, Jon Lee
no flags
Patch (5.45 KB, patch)
2016-03-28 09:36 PDT, Dave Hyatt
simon.fraser: review+
Jon Lee
Comment 1 2016-03-25 13:15:00 PDT
Created attachment 274932 [details] user stylesheet
Dave Hyatt
Comment 2 2016-03-28 09:36:19 PDT
Jon Lee
Comment 3 2016-03-29 20:55:37 PDT
cq+?
Dave Hyatt
Comment 4 2016-04-20 11:01:57 PDT
Fixed in r199777. Thought I had landed this, but I guess I never did!
Jon Lee
Comment 5 2016-04-27 18:27:08 PDT
Note You need to log in before you can comment on or make changes to this bug.