| Summary: | REGRESSION: ASSERTION FAILED: m_repaintRectsValid => m_repaintRects.clippedOverflowRect == renderer().clippedOverflowRectForRepaint(renderer().containerForRepaint().renderer.get()) | ||||||
|---|---|---|---|---|---|---|---|
| Product: | WebKit | Reporter: | Fujii Hironori <Hironori.Fujii> | ||||
| Component: | Compositing | Assignee: | Fujii Hironori <Hironori.Fujii> | ||||
| Status: | RESOLVED FIXED | ||||||
| Severity: | Normal | CC: | simon.fraser | ||||
| Priority: | P2 | ||||||
| Version: | WebKit Nightly Build | ||||||
| Hardware: | Unspecified | ||||||
| OS: | Unspecified | ||||||
| See Also: | https://bugs.webkit.org/show_bug.cgi?id=188122 | ||||||
| Attachments: |
|
||||||
|
Description
Fujii Hironori
2023-11-29 12:27:32 PST
GTK port is also crashing. Buildbot: builder GTK-Linux-64-bit-Debug-Tests build 11839 : 271261@main https://build.webkit.org/#/builders/63/builds/11839 ASSERTION FAILED: m_repaintRectsValid => m_repaintRects.clippedOverflowRect == renderer().clippedOverflowRectForRepaint(renderer().containerForRepaint().renderer.get()) /app/webkit/Source/WebCore/rendering/RenderLayer.cpp(1275) : void WebCore::RenderLayer::recursiveUpdateLayerPositionsAfterScroll(WebCore::RenderGeometryMap*, WTF::OptionSet<UpdateLayerPositionsAfterScrollFlag>) 1 0x7efeca54f773 WTFCrash 2 0x7efedb362a88 WebCore::RenderLayer::recursiveUpdateLayerPositionsAfterScroll(WebCore::RenderGeometryMap*, WTF::OptionSet<WebCore::RenderLayer::UpdateLayerPositionsAfterScrollFlag>) 3 0x7efedb3625ff WebCore::RenderLayer::updateLayerPositionsAfterDocumentScroll() 4 0x7efeda78fd97 WebCore::LocalFrameView::updateLayerPositionsAfterScrolling() 5 0x7efedaa32feb WebCore::ScrollView::completeUpdatesAfterScrollTo(WebCore::IntSize const&) 6 0x7efedaa32f9f WebCore::ScrollView::scrollTo(WebCore::IntPoint const&) 7 0x7efeda79529e WebCore::LocalFrameView::scrollTo(WebCore::IntPoint const&) 8 0x7efedaa32947 WebCore::ScrollView::setScrollOffset(WebCore::IntPoint const&) 9 0x7efedaa3a6c7 WebCore::ScrollableArea::scrollPositionChanged(WebCore::IntPoint const&) 10 0x7efedaa3ac1b WebCore::ScrollableArea::setScrollPositionFromAnimation(WebCore::IntPoint const&) 11 0x7efedaa25737 WebCore::ScrollAnimator::notifyPositionChanged(WebCore::FloatSize const&) 12 0x7efedaa25682 WebCore::ScrollAnimator::setCurrentPosition(WebCore::FloatPoint const&, WebCore::ScrollAnimator::NotifyScrollableArea) 13 0x7efedaa24d8d WebCore::ScrollAnimator::scrollToPositionWithoutAnimation(WebCore::FloatPoint const&, WebCore::ScrollClamping) 14 0x7efedaa3a065 WebCore::ScrollableArea::scrollToPositionWithoutAnimation(WebCore::FloatPoint const&, WebCore::ScrollClamping) 15 0x7efedaa337fd operator() 16 0x7efedaa34b33 WebCore::ScrollView::updateScrollbars(WebCore::IntPoint const&) 17 0x7efedaa33380 WebCore::ScrollView::setScrollPosition(WebCore::IntPoint const&, WebCore::ScrollPositionChangeOptions const&) 18 0x7efeda78d660 WebCore::LocalFrameView::setScrollPosition(WebCore::IntPoint const&, WebCore::ScrollPositionChangeOptions const&) 19 0x7efedaa315cf WebCore::ScrollView::setContentsScrollPosition(WebCore::IntPoint const&, WebCore::ScrollPositionChangeOptions const&) 20 0x7efeda77660e WebCore::LocalDOMWindow::scrollTo(WebCore::ScrollToOptions const&, WebCore::ScrollClamping, WebCore::ScrollSnapPointSelectionMethod, std::optional<WebCore::FloatSize>) const 21 0x7efeda77617a WebCore::LocalDOMWindow::scrollTo(double, double, WebCore::ScrollClamping) const 22 0x7efed7618a37 operator() 23 0x7efed768600c toJS<WebCore::IDLUndefined, WebCore::jsLocalDOMWindowInstanceFunction_scrollTo2Body(JSC::JSGlobalObject*, JSC::CallFrame*, IDLOperation<JSLocalDOMWindow>::ClassParameter)::<lambda()> > 24 0x7efed7618dab jsLocalDOMWindowInstanceFunction_scrollTo2Body 25 0x7efed7619046 jsLocalDOMWindowInstanceFunction_scrollToOverloadDispatcher 26 0x7efed768629c call<WebCore::jsLocalDOMWindowInstanceFunction_scrollToOverloadDispatcher> 27 0x7efed76190b8 jsLocalDOMWindowInstanceFunction_scrollTo 28 0x7efe74408038 ??? WebKitWebProcess terminated (pid 5332) for reason: crash Created attachment 468858 [details]
Patch to enable ForceCompositingMode for WinCairo
Enabling ForceCompositingMode for WinCairo resovles the assertion failure.
This seems to be the reason why Mac WK2 and WPE don't crash.
Mac WK1 doensn't crash because it skips the assertions. See bug#188122. GTK and WinCairo should do the same. Pull request: https://github.com/WebKit/WebKit/pull/21254 I am removing this assertion in https://github.com/WebKit/WebKit/pull/21241 |