Bug 236464

Summary: [GPU Process] Implement GraphicsContext::drawLineForText() in terms of GraphicsContext::drawLinesForText()
Product: WebKit Reporter: Said Abou-Hallawa <sabouhallawa>
Component: Layout and RenderingAssignee: Said Abou-Hallawa <sabouhallawa>
Status: RESOLVED FIXED    
Severity: Normal CC: bfulgham, jonlee, simon.fraser, webkit-bug-importer, zalan
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on:    
Bug Blocks: 236508, 236547    
Attachments:
Description Flags
Patch
none
Patch none

Said Abou-Hallawa
Reported 2022-02-10 14:35:03 PST
Currently DisplayListRecorder has the following implementation: void drawLineForText(const FloatRect&, bool, bool, StrokeStyle) final { ASSERT_NOT_REACHED(); } This assertion fires when GPUProcess for DOM rendering is enabled: SHOULD NEVER BE REACHED /Volumes/Data/WebKit/OpenSource/WebKitBuild/Debug-iphonesimulator/WebCore.framework/PrivateHeaders/DisplayListRecorder.h(197) : virtual void WebCore::DisplayList::Recorder::drawLineForText(const WebCore::FloatRect &, bool, bool, WebCore::StrokeStyle) 1 0x769b62539 WTFCrash 2 0x74d5028ab WTFCrashWithInfo(int, char const*, char const*, int) 3 0x74f4ebe96 WebCore::DisplayList::Recorder::drawLineForText(WebCore::FloatRect const&, bool, bool, WebCore::StrokeStyle) 4 0x792665824 WebCore::TextDecorationPainter::paintLineThrough(WebCore::Color const&, float, WebCore::FloatPoint const&) 5 0x792664161 WebCore::TextDecorationPainter::paintForegroundDecorations(WebCore::FloatPoint const&) 6 0x79266289f WebCore::TextBoxPainter::paintForegroundDecorations(WebCore::TextDecorationPainter&, WebCore::FloatRect const&) 7 0x792661534 WebCore::TextBoxPainter::paintForegroundAndDecorations() 8 0x79266073f WebCore::TextBoxPainter::paint() 9 0x7917c3c85 WebCore::LayoutIntegration::LineLayout::paint(WebCore::PaintInfo&, WebCore::LayoutPoint const&) 10 0x792416094 WebCore::RenderBlockFlow::paintInlineChildren(WebCore::PaintInfo&, WebCore::LayoutPoint const&) 11 0x7923ed792 WebCore::RenderBlock::paintContents(WebCore::PaintInfo&, WebCore::LayoutPoint const&) 12 0x7923eeea2 WebCore::RenderBlock::paintObject(WebCore::PaintInfo&, WebCore::LayoutPoint const&) 13 0x7923ed0a3 WebCore::RenderBlock::paint(WebCore::PaintInfo&, WebCore::LayoutPoint const&) 14 0x7923edd14 WebCore::RenderBlock::paintChild(WebCore::RenderBox&, WebCore::PaintInfo&, WebCore::LayoutPoint const&, WebCore::PaintInfo&, bool, WebCore::RenderBlock::PaintBlockType) 15 0x7923ed950 WebCore::RenderBlock::paintChildren(WebCore::PaintInfo&, WebCore::LayoutPoint const&, WebCore::PaintInfo&, bool) 16 0x7923ed8b1 WebCore::RenderBlock::paintContents(WebCore::PaintInfo&, WebCore::LayoutPoint const&) 17 0x7923eeea2 WebCore::RenderBlock::paintObject(WebCore::PaintInfo&, WebCore::LayoutPoint const&) 18 0x7923ed0a3 WebCore::RenderBlock::paint(WebCore::PaintInfo&, WebCore::LayoutPoint const&) 19 0x7923edd14 WebCore::RenderBlock::paintChild(WebCore::RenderBox&, WebCore::PaintInfo&, WebCore::LayoutPoint const&, WebCore::PaintInfo&, bool, WebCore::RenderBlock::PaintBlockType) 20 0x7923ed950 WebCore::RenderBlock::paintChildren(WebCore::PaintInfo&, WebCore::LayoutPoint const&, WebCore::PaintInfo&, bool) 21 0x7923ed8b1 WebCore::RenderBlock::paintContents(WebCore::PaintInfo&, WebCore::LayoutPoint const&) 22 0x7923eeea2 WebCore::RenderBlock::paintObject(WebCore::PaintInfo&, WebCore::LayoutPoint const&) 23 0x7923ed0a3 WebCore::RenderBlock::paint(WebCore::PaintInfo&, WebCore::LayoutPoint const&) 24 0x79251ddda WebCore::RenderLayer::paintForegroundForFragmentsWithPhase(WebCore::PaintPhase, WTF::Vector<WebCore::LayerFragment, 1ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc> const&, WebCore::GraphicsContext&, WebCore::RenderLayer::LayerPaintingInfo const&, WTF::OptionSet<WebCore::PaintBehavior>, WebCore::RenderObject*) 25 0x79251bbb5 WebCore::RenderLayer::paintForegroundForFragments(WTF::Vector<WebCore::LayerFragment, 1ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc> const&, WebCore::GraphicsContext&, WebCore::GraphicsContext&, WebCore::LayoutRect const&, bool, WebCore::RenderLayer::LayerPaintingInfo const&, WTF::OptionSet<WebCore::PaintBehavior>, WebCore::RenderObject*) 26 0x792517493 WebCore::RenderLayer::paintLayerContents(WebCore::GraphicsContext&, WebCore::RenderLayer::LayerPaintingInfo const&, WTF::OptionSet<WebCore::RenderLayer::PaintLayerFlag>) 27 0x792516931 WebCore::RenderLayer::paintLayerContentsAndReflection(WebCore::GraphicsContext&, WebCore::RenderLayer::LayerPaintingInfo const&, WTF::OptionSet<WebCore::RenderLayer::PaintLayerFlag>) 28 0x79251585f WebCore::RenderLayer::paintLayerWithEffects(WebCore::GraphicsContext&, WebCore::RenderLayer::LayerPaintingInfo const&, WTF::OptionSet<WebCore::RenderLayer::PaintLayerFlag>) 29 0x792514bb7 WebCore::RenderLayer::paintLayer(WebCore::GraphicsContext&, WebCore::RenderLayer::LayerPaintingInfo const&, WTF::OptionSet<WebCore::RenderLayer::PaintLayerFlag>) 30 0x79251b566 WebCore::RenderLayer::paintList(WebCore::RenderLayer::LayerList, WebCore::GraphicsContext&, WebCore::RenderLayer::LayerPaintingInfo const&, WTF::OptionSet<WebCore::RenderLayer::PaintLayerFlag>) 31 0x7925175b9 WebCore::RenderLayer::paintLayerContents(WebCore::GraphicsContext&, WebCore::RenderLayer::LayerPaintingInfo const&, WTF::OptionSet<WebCore::RenderLayer::PaintLayerFlag>) com.apple.WebKit.WebContent.Development terminated (pid 39285) because the process crashed #CRASHED - com.apple.WebKit.WebContent.Development (pid 39285) LEAK: 2 WebProcessPool LEAK: 2 WebPageProxy
Attachments
Patch (3.63 KB, patch)
2022-02-10 14:56 PST, Said Abou-Hallawa
no flags
Patch (3.54 KB, patch)
2022-02-14 00:02 PST, Said Abou-Hallawa
no flags
Said Abou-Hallawa
Comment 1 2022-02-10 14:56:33 PST
Radar WebKit Bug Importer
Comment 2 2022-02-12 19:54:48 PST
Said Abou-Hallawa
Comment 3 2022-02-14 00:02:37 PST
EWS
Comment 4 2022-02-14 14:49:52 PST
Committed r289767 (247239@main): <https://commits.webkit.org/247239@main> All reviewed patches have been landed. Closing bug and clearing flags on attachment 451865 [details].
Note You need to log in before you can comment on or make changes to this bug.