Bug 310596
| Summary: | [GTK] ASSERTION FAILED: !m_deferredScrollDelta in WebCore::ScrollView::scrollTo from WebKit::LayerTreeHost::commitTransientZoom | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Sebastian Krzyszkowiak <webkit> |
| Component: | WebKitGTK | Assignee: | Nobody <webkit-unassigned> |
| Status: | RESOLVED DUPLICATE | ||
| Severity: | Normal | CC: | bugs-noreply, csaavedra |
| Priority: | P2 | ||
| Version: | WebKit Nightly Build | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
Sebastian Krzyszkowiak
Triggered sometimes when using the pinch-to-zoom gesture. Relatively easily to reproduce by quickly pinching a lot for a while.
ASSERTION FAILED: !m_deferredScrollDelta
WebKit/Source/WebCore/platform/ScrollView.cpp(515) : virtual void WebCore::ScrollView::scrollTo(const WebCore::ScrollPosition&)
1 0x7f060f407b5c WebCore::ScrollView::scrollTo(WebCore::IntPoint const&)
2 0x7f060f2437dc WebCore::LocalFrameView::scrollTo(WebCore::IntPoint const&)
3 0x7f060f403e8c WebCore::ScrollView::setScrollOffset(WebCore::IntPoint const&)
4 0x7f060f40c79c WebCore::ScrollableArea::scrollPositionChanged(WebCore::IntPoint const&)
5 0x7f060f40ca33 WebCore::ScrollableArea::notifyScrollPositionChanged(WebCore::IntPoint const&)
6 0x7f060f368285 WebCore::AsyncScrollingCoordinator::reconcileScrollingState(WebCore::LocalFrameView&, WebCore::FloatPoint const&, mpark::variant<std::optional<WebCore::FloatPoint>, std::optional<WebCore::FloatRect> > const&, WebCore::ScrollType, WebCore::ViewportRectStability, WebCore::ScrollingLayerPositionAction)
7 0x7f060f364e51 WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll(WebCore::ProcessQualified<WTF::ObjectIdentifierGeneric<WebCore::ScrollingNodeIDType, WTF::ObjectIdentifierMainThreadAccessTraits<unsigned long>, unsigned long> >, WebCore::FloatPoint, std::optional<WebCore::FloatPoint>, WebCore::ScrollingLayerPositionAction, WebCore::ScrollType, WebCore::ViewportRectStability)
8 0x7f060f367eb5 WebCore::AsyncScrollingCoordinator::applyScrollPositionUpdate(WebCore::ScrollUpdate&&, WebCore::ScrollType, WebCore::ViewportRectStability)
9 0x7f060f368199 WebCore::AsyncScrollingCoordinator::applyScrollUpdate(WebCore::ScrollUpdate&&, WebCore::ScrollType, WebCore::ViewportRectStability)
10 0x7f060f3646db WebCore::AsyncScrollingCoordinator::requestScrollToPosition(WebCore::ScrollableArea&, WebCore::IntPoint const&, WebCore::ScrollPositionChangeOptions const&)
11 0x7f060f22c9a4 WebCore::LocalFrameView::requestScrollToPosition(WebCore::IntPoint const&, WebCore::ScrollPositionChangeOptions const&)
12 0x7f060f40cacb WebCore::ScrollableArea::setScrollPositionFromAnimation(WebCore::IntPoint const&)
13 0x7f060f3f87ed WebCore::ScrollAnimator::notifyPositionChanged(WebCore::FloatSize const&)
14 0x7f060f3f8b05 WebCore::ScrollAnimator::setCurrentPosition(WebCore::FloatPoint const&, WebCore::ScrollAnimator::NotifyScrollableArea)
15 0x7f060f3f8bf6 WebCore::ScrollAnimator::scrollToPositionWithoutAnimation(WebCore::FloatPoint const&, WebCore::ScrollClamping)
16 0x7f060f40441f WebCore::ScrollableArea::scrollToPositionWithoutAnimation(WebCore::FloatPoint const&, WebCore::ScrollClamping)
17 0x7f060f4045c9 WebCore::ScrollView::updateScrollbars(WebCore::IntPoint const&)::{lambda(WebCore::IntPoint)#1}::operator()(WebCore::IntPoint) const
18 0x7f060f40b427 WebCore::ScrollView::updateScrollbars(WebCore::IntPoint const&)
19 0x7f060f40b87d WebCore::ScrollView::setContentsSize(WebCore::IntSize const&)
20 0x7f060f256312 WebCore::LocalFrameView::setContentsSize(WebCore::IntSize const&)
21 0x7f060f2565ed WebCore::LocalFrameView::adjustViewSize()
22 0x7f060f261783 WebCore::LocalFrameViewLayoutContext::performLayout(bool)
23 0x7f060f26189f WebCore::LocalFrameViewLayoutContext::layout(bool)
24 0x7f060f2c22b1 WebCore::Page::setPageScaleFactor(float, WebCore::IntPoint const&, bool)
25 0x7f060cbd13bd WebKit::WebPage::didScalePage(double, WebCore::IntPoint const&)
26 0x7f060cbf352f WebKit::WebPage::scalePage(double, WebCore::IntPoint const&)
27 0x7f060cc28781 WebKit::LayerTreeHost::commitTransientZoom(double, WebCore::FloatPoint, WebCore::FloatPoint)
28 0x7f060cc1c529 WebKit::DrawingAreaCoordinatedGraphics::commitTransientZoom(double, WebCore::FloatPoint, WTF::CompletionHandler<void ()>&&)
29 0x7f060bdb5818 auto IPC::callMemberFunction<WebKit::DrawingArea, WebKit::DrawingArea, void (double, WebCore::FloatPoint, WTF::CompletionHandler<void ()>&&), std::tuple<double, WebCore::FloatPoint>, void ()>(WebKit::DrawingArea*, void (WebKit::DrawingArea::*)(double, WebCore::FloatPoint, WTF::CompletionHandler<void ()>&&), std::tuple<double, WebCore::FloatPoint>&&, WTF::CompletionHandler<void ()>&&)::{lambda((auto:1&&)...)#1}::operator()<double, WebCore::FloatPoint>(double&&, WebCore::FloatPoint&&) const
30 0x7f060bdb5861 void IPC::callMemberFunction<WebKit::DrawingArea, WebKit::DrawingArea, void (double, WebCore::FloatPoint, WTF::CompletionHandler<void ()>&&), std::tuple<double, WebCore::FloatPoint>, void ()>(WebKit::DrawingArea*, void (WebKit::DrawingArea::*)(double, WebCore::FloatPoint, WTF::CompletionHandler<void ()>&&), std::tuple<double, WebCore::FloatPoint>&&, WTF::CompletionHandler<void ()>&&)
31 0x7f060bdb676f void IPC::handleMessageAsync<Messages::DrawingArea::CommitTransientZoom, IPC::Connection, WebKit::DrawingArea, WebKit::DrawingArea, void (double, WebCore::FloatPoint, WTF::CompletionHandler<void ()>&&)>(IPC::Connection&, IPC::Decoder&, WebKit::DrawingArea*, void (WebKit::DrawingArea::*)(double, WebCore::FloatPoint, WTF::CompletionHandler<void ()>&&))
Possibly related to https://bugs.webkit.org/show_bug.cgi?id=250907. Tested on 309778@main with https://github.com/WebKit/WebKit/pull/61214 applied (otherwise is asserts way before reaching this).
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Sebastian Krzyszkowiak
Seems easier to trigger with touchscreen than touchpad (but can happen with both).
Sebastian Krzyszkowiak
In release builds, this seems to lead to layers ending up at some bad offset (potentially being placed completely offscreen) until performing the gesture again.
Claudio Saavedra
*** This bug has been marked as a duplicate of bug 250907 ***