RESOLVED FIXED 196123
With async scrolling enabled, this MathML test asserts
https://bugs.webkit.org/show_bug.cgi?id=196123
Summary With async scrolling enabled, this MathML test asserts
Simon Fraser (smfr)
Reported 2019-03-21 18:04:16 PDT
Created attachment 365660 [details] Testcase Test triggers an assertion which only happens with an "mn" element when overflow: -webkit-paged-y is applied: ASSERTION FAILED: !m_scrollDimensionsDirty ./rendering/RenderLayer.cpp(3439) : bool WebCore::RenderLayer::hasHorizontalOverflow() const 1 0x13cb83fc9 WTFCrash 2 0x1411f497b WTFCrashWithInfo(int, char const*, char const*, int) 3 0x144524d53 WebCore::RenderLayer::hasHorizontalOverflow() const 4 0x14451d6a9 WebCore::RenderLayer::hasScrollableHorizontalOverflow() const 5 0x14451d656 WebCore::RenderLayer::hasCompositedScrollableOverflow() const 6 0x144558e0f WebCore::RenderLayerCompositor::requiresCompositingForOverflowScrolling(WebCore::RenderLayer const&, WebCore::RenderLayerCompositor::RequiresCompositingData&) const 7 0x1445533f2 WebCore::RenderLayerCompositor::requiresCompositingLayer(WebCore::RenderLayer const&, WebCore::RenderLayerCompositor::RequiresCompositingData&) const 8 0x1445526ba WebCore::RenderLayerCompositor::needsToBeComposited(WebCore::RenderLayer const&, WebCore::RenderLayerCompositor::RequiresCompositingData&) const 9 0x144550440 WebCore::RenderLayerCompositor::computeCompositingRequirements(WebCore::RenderLayer*, WebCore::RenderLayer&, WebCore::RenderLayerCompositor::OverlapMap&, WebCore::RenderLayerCompositor::CompositingState&, bool&) 10 0x144550835 WebCore::RenderLayerCompositor::computeCompositingRequirements(WebCore::RenderLayer*, WebCore::RenderLayer&, WebCore::RenderLayerCompositor::OverlapMap&, WebCore::RenderLayerCompositor::CompositingState&, bool&) 11 0x1445508db WebCore::RenderLayerCompositor::computeCompositingRequirements(WebCore::RenderLayer*, WebCore::RenderLayer&, WebCore::RenderLayerCompositor::OverlapMap&, WebCore::RenderLayerCompositor::CompositingState&, bool&) 12 0x144520bc7 WebCore::RenderLayerCompositor::updateCompositingLayers(WebCore::CompositingUpdateType, WebCore::RenderLayer*) 13 0x143d4a6d3 WebCore::FrameView::updateCompositingLayersAfterLayout() 14 0x143d4ce07 WebCore::FrameView::didLayout(WTF::WeakPtr<WebCore::RenderElement>) 15 0x143d86cb0 WebCore::FrameViewLayoutContext::layout() 16 0x143297094 WebCore::Document::implicitClose() 17 0x143b78ccb WebCore::FrameLoader::checkCallImplicitClose() 18 0x143b787a8 WebCore::FrameLoader::checkCompleted() 19 0x143b76b65 WebCore::FrameLoader::finishedParsing() 20 0x1432af60c WebCore::Document::finishedParsing() 21 0x1438513d8 WebCore::HTMLConstructionSite::finishedParsing() 22 0x143896285 WebCore::HTMLTreeBuilder::finished() 23 0x143858728 WebCore::HTMLDocumentParser::end() 24 0x143856668 WebCore::HTMLDocumentParser::attemptToRunDeferredScriptsAndEnd() 25 0x143856384 WebCore::HTMLDocumentParser::prepareToStopParsing() 26 0x14385878f WebCore::HTMLDocumentParser::attemptToEnd() 27 0x143858864 WebCore::HTMLDocumentParser::finish() 28 0x143b24eba WebCore::DocumentWriter::end() 29 0x143b23ddf WebCore::DocumentLoader::finishedLoading() 30 0x143b23a1d WebCore::DocumentLoader::notifyFinished(WebCore::CachedResource&) 31 0x143c6e78f WebCore::CachedResource::checkNotify()
Attachments
Testcase (459 bytes, text/html)
2019-03-21 18:04 PDT, Simon Fraser (smfr)
no flags
Another testcase (232 bytes, text/html)
2019-03-26 03:18 PDT, Frédéric Wang (:fredw)
no flags
Patch (13.27 KB, patch)
2019-03-26 08:00 PDT, Frédéric Wang (:fredw)
no flags
Patch (13.26 KB, patch)
2019-04-24 09:12 PDT, Frédéric Wang (:fredw)
no flags
Radar WebKit Bug Importer
Comment 1 2019-03-21 18:11:18 PDT
Frédéric Wang (:fredw)
Comment 2 2019-03-26 03:18:21 PDT
Created attachment 365955 [details] Another testcase Same as attachment 365660 [details] without using dynamic stuff or -webkit prefixed property.
Frédéric Wang (:fredw)
Comment 3 2019-03-26 03:30:51 PDT
Just took a quick look now, it seems enough to call updateScrollInfoAfterLayout() in layoutBlock like what is done in RenderBlock::simplifiedLayout(). diff --git a/Source/WebCore/rendering/mathml/RenderMathMLBlock.cpp b/Source/WebCore/rendering/mathml/RenderMathMLBlock.cpp index 8e356b6b696..e9b1118e956 100644 --- a/Source/WebCore/rendering/mathml/RenderMathMLBlock.cpp +++ b/Source/WebCore/rendering/mathml/RenderMathMLBlock.cpp @@ -252,6 +252,8 @@ void RenderMathMLBlock::layoutBlock(bool relayoutChildren, LayoutUnit) repainter.repaintAfterLayout(); + updateScrollInfoAfterLayout(); + clearNeedsLayout(); } However, we need to do that in all implementations and add test for each case. Would be similar to bug 178865 I guess.
Frédéric Wang (:fredw)
Comment 4 2019-03-26 08:00:34 PDT
Frédéric Wang (:fredw)
Comment 5 2019-04-24 09:12:14 PDT
WebKit Commit Bot
Comment 6 2019-04-24 10:19:24 PDT
Comment on attachment 368130 [details] Patch Clearing flags on attachment: 368130 Committed r244595: <https://trac.webkit.org/changeset/244595>
WebKit Commit Bot
Comment 7 2019-04-24 10:19:25 PDT
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.