Bug 246890 - Fix assertion failure due to viewport anchor layer not being updated when updating style
Summary: Fix assertion failure due to viewport anchor layer not being updated when upd...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Layout and Rendering (show other bugs)
Version: WebKit Local Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2022-10-21 16:03 PDT by Arunsundar Kannan
Modified: 2022-10-26 10:24 PDT (History)
4 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Arunsundar Kannan 2022-10-21 16:03:14 PDT
Test case: 

<!DOCTYPE html>
<style>
  body {
    rotate: y 1turn;
  }
</style>
<script>
  onload = () => {
    document.body.offsetTop;
    document.body.style.position = 'sticky';
    scrollBy(0, 0);
  };
</script> 



ASSERTION FAILED: layer.backing()->viewportAnchorLayer()
rendering/RenderLayerCompositor.cpp(4770) : WebCore::ScrollingNodeID WebCore::RenderLayerCompositor::updateScrollingNodeForViewportConstrainedRole(WebCore::RenderLayer &, WebCore::ScrollingTreeState &, OptionSet<WebCore::RenderLayerCompositor::ScrollingNodeChangeFlags>)
1   0x280007be0 WTFCrash
2   0x2b7e5d668 WebCore::JSANGLEInstancedArrays::createPrototype(JSC::VM&, WebCore::JSDOMGlobalObject&)
3   0x2c45ce860 WebCore::RenderLayerCompositor::updateScrollingNodeForViewportConstrainedRole(WebCore::RenderLayer&, WebCore::ScrollingTreeState&, WTF::OptionSet<WebCore::RenderLayerCompositor::ScrollingNodeChangeFlags>)
4   0x2c45ac2f4 WebCore::RenderLayerCompositor::updateScrollCoordinationForLayer(WebCore::RenderLayer&, WebCore::RenderLayer const*, WebCore::ScrollingTreeState&, WTF::OptionSet<WebCore::RenderLayerCompositor::ScrollingNodeChangeFlags>)
5   0x2c45a0ca4 WebCore::RenderLayerCompositor::updateBackingAndHierarchy(WebCore::RenderLayer&, WTF::Vector<WTF::Ref<WebCore::GraphicsLayer, WTF::RawPtrTraits<WebCore::GraphicsLayer> >, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc>&, WebCore::RenderLayerCompositor::UpdateBackingTraversalState&, WebCore::ScrollingTreeState&, WTF::OptionSet<WebCore::RenderLayerCompositor::UpdateLevel>)
6   0x2c45a15d4 WebCore::RenderLayerCompositor::updateBackingAndHierarchy(WebCore::RenderLayer&, WTF::Vector<WTF::Ref<WebCore::GraphicsLayer, WTF::RawPtrTraits<WebCore::GraphicsLayer> >, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc>&, WebCore::RenderLayerCompositor::UpdateBackingTraversalState&, WebCore::ScrollingTreeState&, WTF::OptionSet<WebCore::RenderLayerCompositor::UpdateLevel>)
7   0x2c45a15d4 WebCore::RenderLayerCompositor::updateBackingAndHierarchy(WebCore::RenderLayer&, WTF::Vector<WTF::Ref<WebCore::GraphicsLayer, WTF::RawPtrTraits<WebCore::GraphicsLayer> >, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc>&, WebCore::RenderLayerCompositor::UpdateBackingTraversalState&, WebCore::ScrollingTreeState&, WTF::OptionSet<WebCore::RenderLayerCompositor::UpdateLevel>)
8   0x2c459844c WebCore::RenderLayerCompositor::updateCompositingLayers(WebCore::CompositingUpdateType, WebCore::RenderLayer*)
9   0x2c266e998 WebCore::FrameView::updateCompositingLayersAfterLayout()
10  0x2c2679628 WebCore::FrameView::didLayout(WTF::WeakPtr<WebCore::RenderElement, WTF::DefaultWeakPtrImpl>)
11  0x2c272483c WebCore::FrameViewLayoutContext::performLayout()
12  0x2c27235b0 WebCore::FrameViewLayoutContext::layout()
13  0x2c0367c90 WebCore::Document::updateLayout()
14  0x2c036b810 WebCore::Document::updateLayoutIgnorePendingStylesheets(WebCore::Document::RunPostLayoutTasks)
15  0x2c253921c WebCore::DOMWindow::scrollBy(WebCore::ScrollToOptions const&) const
16  0x2c2538fa4 WebCore::DOMWindow::scrollBy(double, double) const
17  0x2b8bee430 WebCore::jsDOMWindowInstanceFunction_scrollBy2Body(JSC::JSGlobalObject*, JSC::CallFrame*, WebCore::JSDOMWindow*)::'lambda'()::operator()() const
18  0x2b8bee200 JSC::JSValue WebCore::toJS<WebCore::IDLUndefined, WebCore::jsDOMWindowInstanceFunction_scrollBy2Body(JSC::JSGlobalObject*, JSC::CallFrame*, WebCore::JSDOMWindow*)::'lambda'()>(JSC::JSGlobalObject&, JSC::ThrowScope&, WebCore::jsDOMWindowInstanceFunction_scrollBy2Body(JSC::JSGlobalObject*, JSC::CallFrame*, WebCore::JSDOMWindow*)::'lambda'()&&)
19  0x2b8bedc2c WebCore::jsDOMWindowInstanceFunction_scrollBy2Body(JSC::JSGlobalObject*, JSC::CallFrame*, WebCore::JSDOMWindow*)
20  0x2b8becc24 WebCore::jsDOMWindowInstanceFunction_scrollByOverloadDispatcher(JSC::JSGlobalObject*, JSC::CallFrame*, WebCore::JSDOMWindow*)
21  0x2b8bec6a0 long long WebCore::IDLOperation<WebCore::JSDOMWindow>::call<&(WebCore::jsDOMWindowInstanceFunction_scrollByOverloadDispatcher(JSC::JSGlobalObject*, JSC::CallFrame*, WebCore::JSDOMWindow*)), (WebCore::CastedThisErrorBehavior)0>(JSC::JSGlobalObject&, JSC::CallFrame&, char const*)
22  0x2b8bc0018 WebCore::jsDOMWindowInstanceFunction_scrollBy(JSC::JSGlobalObject*, JSC::CallFrame*)
23  0x13cf78044 (null)
24  0x13cf68248 (null)
25  0x13cf68848 (null)
26  0x288e9f154 JSC::JITCode::execute(JSC::VM*, JSC::ProtoCallFrame*)
27  0x2876d348c JSC::Interpreter::executeCall(JSC::JSGlobalObject*, JSC::JSObject*, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
28  0x288229dc4 JSC::call(JSC::JSGlobalObject*, JSC::JSValue, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
29  0x28822a27c JSC::call(JSC::JSGlobalObject*, JSC::JSValue, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&, WTF::NakedPtr<JSC::Exception>&)
30  0x28822ad50 JSC::profiledCall(JSC::JSGlobalObject*, JSC::ProfilingReason, JSC::JSValue, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&, WTF::NakedPtr<JSC::Exception>&)
31  0x2bee0fb00 WebCore::JSExecState::profiledCall(JSC::JSGlobalObject*, JSC::ProfilingReason, JSC::JSValue, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&, WTF::NakedPtr<JSC::Exception>&)
Comment 1 Arunsundar Kannan 2022-10-21 16:09:34 PDT
<rdar://problem/99568474>
Comment 2 Arunsundar Kannan 2022-10-21 16:09:51 PDT
Pull request: https://github.com/WebKit/WebKit/pull/5658
Comment 3 EWS 2022-10-26 10:24:43 PDT
Committed 256025@main (67c0ccbbabbd): <https://commits.webkit.org/256025@main>

Reviewed commits have been landed. Closing PR #5658 and removing active labels.