Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-39850

Assertion failure in WTF/WebCore::RenderLayer::updateLayerPositionsAfterScroll

    XMLWordPrintable

Details

    • Bug
    • Resolution: Won't Do
    • P2: Important
    • None
    • 5.3.0
    • WebKit
    • None
    • Qt 5.3.0, PyQt 5.3, new harfbuzz engine

    Description

      I got an assertion failure while browsing the Qt JIRA (or possibly when closing a QWebView-Tab in a QTabWidget) with a Qt developer build:

      ASSERTION FAILED: m_repaintRect ==
      renderer()->clippedOverflowRectForRepaint(renderer()->containerForRepaint())
      rendering/RenderLayer.cpp(809) : void
      WebCore::RenderLayer::updateLayerPositionsAfterScroll(WebCore::RenderGeometryMap*,
      WebCore::RenderLayer::UpdateLayerPositionsAfterScrollFlags)
      

      This happened in my PyQt-project, I've not attempted to reproduce it with the example browser so far.

      Full backtrace:

      # Happened when browsing on bugreports.qt-project.org
      
      ASSERTION FAILED: m_repaintRect ==
      renderer()->clippedOverflowRectForRepaint(renderer()->containerForRepaint())
      rendering/RenderLayer.cpp(809) : void
      WebCore::RenderLayer::updateLayerPositionsAfterScroll(WebCore::RenderGeometryMap*,
      WebCore::RenderLayer::UpdateLayerPositionsAfterScrollFlags)
      
      
      #0  0x00007fffeaa8ba4c in WTFCrash () at wtf/Assertions.cpp:345
      No locals.
      #1  0x00007fffea24f374 in WebCore::RenderLayer::updateLayerPositionsAfterScroll (this=this@entry=0x309b848, geometryMap=geometryMap@entry=0x7fffffffa240, flags=flags@entry=0) at rendering/RenderLayer.cpp:809
              positionChanged = <optimized out>
              __PRETTY_FUNCTION__ = "void WebCore::RenderLayer::updateLayerPositionsAfterScroll(WebCore::RenderGeometryMap*, WebCore::RenderLayer::UpdateLayerPositionsAfterScrollFlags)"
      #2  0x00007fffea24f55c in WebCore::RenderLayer::updateLayerPositionsAfterDocumentScroll (this=0x309b848) at rendering/RenderLayer.cpp:760
              __PRETTY_FUNCTION__ = "void WebCore::RenderLayer::updateLayerPositionsAfterDocumentScroll()"
              geometryMap = {m_insertionPosition = 18446744073709551615, m_nonUniformStepsCount = 0, m_transformedStepsCount = 0, m_fixedStepsCount = 0, 
                m_mapping = {<WTF::VectorBuffer<WebCore::RenderGeometryMapStep, 32ul>> = {<WTF::VectorBufferBase<WebCore::RenderGeometryMapStep>> = {m_buffer = 0x7fffffffa268, m_capacity = 32}, static m_inlineBufferSize = 1024, 
                    m_inlineBuffer = {
                      buffer = "\310\361\062\005", '\000' <repeats 24 times>, "\377\177\000\000\360\241b", '\000' <repeats 14 times>, "\313ޘѡ\235\262h\261\346\226\377\177\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\313ޘѡ\235\262", '\000' <repeats 16 times>, "\002\000\000\000\000\000\000\000\360\252\377\377\377\177\000\000\000\000\000\000\000\000\000\000\230=\236\005\000\000\000\000\070O\020\003\000\000\000\000\002\202 \352\377\177\000\000@\243\377\377\377\177\000\000\000\000\070B\000\000\070B\000\000\000\000\377\177\000\000u\314\033\352\377\177\000\000\000\000\000\000\000\000\000\000b\256\356\350\377\177\000\000\000\000\000\000\000\000\000\000"...}}, m_size = 1}, m_accumulatedOffset = {m_width = {m_value = 0}, m_height = {m_value = 0}}, m_mapCoordinatesFlags = 2}
      #3  0x00007fffe8ea989d in WebCore::ScrollView::scrollTo (this=this@entry=0x5102c10, newOffset=...) at platform/ScrollView.cpp:397
              scrollDelta = {m_width = 0, m_height = -230}
      #4  0x00007fffe8d65eef in WebCore::FrameView::scrollTo (this=0x5102c10, newOffset=...) at page/FrameView.cpp:3112
              offset = {m_width = {m_value = 0}, m_height = {m_value = 14720}}
      #5  0x00007fffe8ea5157 in WebCore::ScrollView::setScrollOffset (this=0x5102c10, offset=...) at platform/ScrollView.cpp:378
              horizontalOffset = <optimized out>
              verticalOffset = <optimized out>
              newOffset = {m_width = 0, m_height = 0}
      #6  0x00007fffe8e9f976 in WebCore::ScrollableArea::scrollPositionChanged (this=0x5102c58, position=...) at platform/ScrollableArea.cpp:145
              oldPosition = {m_x = <optimized out>, m_y = 230}
              verticalScrollbar = <optimized out>
      #7  0x00007fffe8e9fd7f in WebCore::ScrollableArea::setScrollOffsetFromAnimation (this=<optimized out>, offset=...) at platform/ScrollableArea.cpp:190
      No locals.
      #8  0x00007fffe8ea05e1 in WebCore::ScrollAnimator::notifyPositionChanged (this=<optimized out>, delta=...) at platform/ScrollAnimator.cpp:142
      No locals.
      #9  0x00007fffe8ea0580 in WebCore::ScrollAnimator::scrollToOffsetWithoutAnimation (this=<optimized out>, offset=...) at platform/ScrollAnimator.cpp:81
              delta = {m_width = 0, m_height = -230}
      #10 0x00007fffe8ea7ec4 in WebCore::ScrollView::updateScrollbars (this=this@entry=0x5102c10, desiredOffset=...) at platform/ScrollView.cpp:636
              oldScrollCornerRect = {m_location = {m_x = 0, m_y = 0}, m_size = {m_width = 0, m_height = 0}}
              hasHorizontalScrollbar = false
              hasVerticalScrollbar = <optimized out>
              hScroll = <optimized out>
              vScroll = <optimized out>
              adjustedScrollPosition = {m_x = 0, m_y = 0}
              newHasHorizontalScrollbar = <optimized out>
              newHasVerticalScrollbar = true
      #11 0x00007fffe8ea8a8f in WebCore::ScrollView::setScrollPosition (this=this@entry=0x5102c10, scrollPoint=...) at platform/ScrollView.cpp:436
              newScrollPosition = {m_x = 0, m_y = 0}
      #12 0x00007fffe8d62543 in WebCore::FrameView::setScrollPosition (this=this@entry=0x5102c10, scrollPoint=...) at page/FrameView.cpp:1985
              changeInProgrammaticScroll = {m_scopedVariable = @0x5102e59, m_originalValue = false}
      #13 0x00007fffea1e3086 in WebCore::RenderLayer::scrollRectToVisible (this=this@entry=0x309b848, rect=..., alignX=..., alignY=...) at rendering/RenderLayer.cpp:2353
              viewRect = {m_location = {m_x = {m_value = 0}, m_y = {m_value = 14720}}, m_size = {m_width = {m_value = 86272}, m_height = {m_value = 45504}}}
              visibleRectRelativeToDocument = {m_location = {m_x = {m_value = 0}, m_y = {m_value = 14720}}, m_size = {m_width = {m_value = 86272}, m_height = {m_value = 45504}}}
              ownerElement = <optimized out>
              parentLayer = <optimized out>
              restrictedByLineClamp = <optimized out>
              __PRETTY_FUNCTION__ = "void WebCore::RenderLayer::scrollRectToVisible(const WebCore::LayoutRect&, const WebCore::ScrollAlignment&, const WebCore::ScrollAlignment&)"
              newRect = {m_location = {m_x = {m_value = 0}, m_y = {m_value = 0}}, m_size = {m_width = {m_value = 2496}, m_height = {m_value = 2944}}}
              frameView = 0x5102c10
      #14 0x00007fffea1e2c59 in WebCore::RenderLayer::scrollRectToVisible (this=<optimized out>, rect=..., alignX=..., alignY=...) at rendering/RenderLayer.cpp:2369
              parentLayer = 0x309b848
              restrictedByLineClamp = <optimized out>
              __PRETTY_FUNCTION__ = "void WebCore::RenderLayer::scrollRectToVisible(const WebCore::LayoutRect&, const WebCore::ScrollAlignment&, const WebCore::ScrollAlignment&)"
              newRect = {m_location = {m_x = {m_value = 0}, m_y = {m_value = 0}}, m_size = {m_width = {m_value = 2496}, m_height = {m_value = 2944}}}
              frameView = 0x5102c10
      #15 0x00007fffea1e33ba in WebCore::RenderObject::scrollRectToVisible (this=<optimized out>, rect=..., alignX=..., alignY=...) at rendering/RenderObject.cpp:596
              enclosingLayer = <optimized out>
      #16 0x00007fffea40f10c in WebCore::Element::updateFocusAppearance (this=0x233ddb0) at dom/Element.cpp:2160
      No locals.
      #17 0x00007fffea4651f0 in WebCore::Element::focus (this=0x233ddb0, restorePreviousSelection=<optimized out>, direction=<optimized out>) at dom/Element.cpp:2138
              doc = 0x3dbf040
              protect = {m_ptr = 0x233ddb0}
      #18 0x00007fffe8d42ee6 in WebCore::FocusController::advanceFocusInDocumentOrder (this=<optimized out>, direction=<optimized out>, event=<optimized out>, initialFocus=initialFocus@entry=false) at page/FocusController.cpp:357
              __PRETTY_FUNCTION__ = "bool WebCore::FocusController::advanceFocusInDocumentOrder(WebCore::FocusDirection, WebCore::KeyboardEvent*, bool)"
              currentNode = <optimized out>
              caretBrowsing = <optimized out>
              element = {m_ptr = 0x233ddb0}
      #19 0x00007fffe8d4817c in WebCore::FocusController::advanceFocus (this=<optimized out>, direction=direction@entry=WebCore::FocusDirectionForward, event=event@entry=0x36c9160, initialFocus=initialFocus@entry=false)
          at page/FocusController.cpp:270
      No locals.
      #20 0x00007fffe8d287cc in WebCore::EventHandler::defaultTabEventHandler (this=0x5ae3410, event=0x36c9160) at page/EventHandler.cpp:3759
              focusDirection = WebCore::FocusDirectionForward
              event = 0x36c9160
              this = 0x5ae3410
      #21 0x00007fffe8d2bebb in WebCore::EventHandler::defaultKeyboardEventHandler (this=0x5ae3410, event=event@entry=0x36c9160) at page/EventHandler.cpp:3352
      No locals.
      #22 0x00007fffe8ae5ba8 in WebCore::Node::defaultEventHandler (this=0x22bb7f0, event=0x36c9160) at dom/Node.cpp:2326
              event = 0x36c9160
              this = 0x22bb7f0
      #23 0x00007fffea451ac0 in dispatchEventPostProcess (preDispatchEventHandlerResult=<optimized out>, this=<optimized out>) at dom/EventDispatcher.cpp:202
      No locals.
      #24 WebCore::EventDispatcher::dispatch (this=0x7fffffffaee0) at dom/EventDispatcher.cpp:121
              __PRETTY_FUNCTION__ = "bool WebCore::EventDispatcher::dispatch()"
              windowEventContext = {m_window = {m_ptr = 0x5ae5ea0}, m_target = {m_ptr = 0x22bb7f0}}
              cookie = {m_instrumentingAgents = {m_ptr = 0x0}, m_timelineAgentId = 0}
              preDispatchEventHandlerResult = 0x0
      #25 0x00007fffea44fd99 in WebCore::EventDispatcher::dispatchEvent (node=node@entry=0x22bb7f0, mediator=...) at dom/EventDispatcher.cpp:53
              __PRETTY_FUNCTION__ = "static bool WebCore::EventDispatcher::dispatchEvent(WebCore::Node*, WTF::PassRefPtr<WebCore::EventDispatchMediator>)"
              dispatcher = {m_eventPath = {<WTF::VectorBuffer<WTF::OwnPtr<WebCore::EventContext>, 32ul>> = {<WTF::VectorBufferBase<WTF::OwnPtr<WebCore::EventContext> >> = {m_buffer = 0x7fffffffaef0, m_capacity = 32}, 
                    static m_inlineBufferSize = 256, m_inlineBuffer = {
                      buffer = "\000\246\334\005\000\000\000\000\000\035\257\005\000\000\000\000pk\237\005", '\000' <repeats 20 times>, "\310$\234\340\377\177\000\000@\017~\000\000\000\000\000\000\313ޘѡ\235\262G\257\377\377\377\177\000\000\240\263\377\377\377\177\000\000\030\000\000\000\000\000\000\000PA\326\000\000\000\000\000\020\201f\003\000\000\000\000\240\263\377\377\377\177\000\000@\017~\000\000\000\000\000\353\036\033\341\377\177\000\000PA\326\000\000\000\000\000[\217&\366\377\177", '\000' <repeats 11 times>, "\313ޘѡ\235\262\260\257\377\377\377\177\000\000\005\000\000\000ѡ\235\262H\000\000\000\000\000\000\000\200,r\367\377\177\000\000\030\000\000\000\000\000\000\000\360\267+\002\000\000\000\000"...}}, m_size = 3}, m_node = {m_ptr = 0x22bb7f0}, m_event = {m_ptr = 0x36c9160}, m_view = {m_ptr = 0x5102c10}, m_eventDispatched = true}
      #26 0x00007fffe8ae7189 in WebCore::Node::dispatchEvent (this=0x22bb7f0, event=...) at dom/Node.cpp:2237
      No locals.
      #27 0x00007fffea4013cb in WebCore::EventTarget::dispatchEvent (this=0x22bb7f0, event=..., ec=@0x7fffffffb130: 0) at dom/EventTarget.cpp:148
              ec = @0x7fffffffb130: 0
              event = {m_ptr = 0x7fffffffb1a0}
              this = 0x22bb7f0
      #28 0x00007fffe8d2fe58 in WebCore::EventHandler::keyEvent (this=0x5ae3410, initialKeyEvent=...) at page/EventHandler.cpp:3252
              protector = {m_ptr = 0x5102c10}
              changedFocusedFrame = <optimized out>
              keydownResult = <optimized out>
              keyPressEvent = {<WebCore::PlatformEvent> = {m_type = 0, m_modifiers = 0, m_timestamp = 6.9533367411528062e-310}, m_text = {m_impl = {m_ptr = 0x7fffffffb290}}, m_unmodifiedText = {m_impl = {m_ptr = 0x12}}, 
                m_keyIdentifier = {m_impl = {m_ptr = 0x1}}, m_windowsVirtualKeyCode = 1, m_nativeVirtualKeyCode = 0, m_macCharCode = 0, m_autoRepeat = false, m_isKeypad = false, m_isSystemKey = false, 
                m_qtEvent = 0x7fffe1409273 <sipStrings_QtWebKitWidgets+2995>, m_useNativeVirtualKeyAsDOMKey = false}
              node = {m_ptr = 0x22bb7f0}
              gestureIndicator = {static s_state = WebCore::DefinitelyProcessingUserGesture, m_previousState = WebCore::DefinitelyNotProcessingUserGesture}
              keydown = {m_ptr = 0x36c9160}
              typingGestureIndicator = {m_previousProcessingUserTypingGesture = false, m_previousFocusedNode = {m_ptr = 0x0}}
              matchedAnAccessKey = <optimized out>
              keyDownEvent = {<WebCore::PlatformEvent> = {m_type = 3, m_modifiers = 0, m_timestamp = 1403673201.205816}, m_text = {m_impl = {m_ptr = 0x0}}, m_unmodifiedText = {m_impl = {m_ptr = 0x0}}, m_keyIdentifier = {m_impl = {
                    m_ptr = 0x2f2f0e0}}, m_windowsVirtualKeyCode = 9, m_nativeVirtualKeyCode = 0, m_macCharCode = 0, m_autoRepeat = false, m_isKeypad = false, m_isSystemKey = false, m_qtEvent = 0x7fffffffb2e0, 
                m_useNativeVirtualKeyAsDOMKey = false}
              keypress = <optimized out>
      #29 0x00007fffe8742631 in QWebPageAdapter::handleKeyEvent (this=this@entry=0x356a930, ev=ev@entry=0x7fffffffb2e0) at qt/WebCoreSupport/QWebPageAdapter.cpp:1373
              frame = 0x3570200
      #30 0x00007fffe11a9211 in QWebPagePrivate::keyPressEvent (this=0x356a930, ev=ev@entry=0x7fffffffb2e0) at WebKit/qt/WidgetApi/qwebpage.cpp:841
              handled = <optimized out>
      #31 0x00007fffe11b005a in QWebPage::focusNextPrevChild (this=0x579bea0, next=next@entry=true) at WebKit/qt/WidgetApi/qwebpage.cpp:2652
              ev = {<QInputEvent> = {<QEvent> = {_vptr.QEvent = 0x7ffff0702cd0 <vtable for QKeyEvent+16>, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff5de4a40 <qt_meta_stringdata_QEvent>, 
                        data = 0x7ffff5de4480 <qt_meta_data_QEvent>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}, d = 0x0, t = 6, posted = 0, spont = 0, m_accept = 1, reserved = 4234}, modState = {i = 0}, 
                  ts = 0}, txt = {static null = {<No data fields>}, d = 0x7ffff5cde3e0 <QArrayData::shared_null>}, k = 16777217, nScanCode = 0, nVirtualKey = 0, nModifiers = 0, c = 1, autor = 0}
      #32 0x00007fffe11b2181 in QWebView::focusNextPrevChild (this=0x3668110, next=true) at WebKit/qt/WidgetApi/qwebview.cpp:1009
      No locals.
      #33 0x00007fffe13ec8bc in sipQWebView::focusNextPrevChild(bool) () from /usr/lib/python3.4/site-packages/PyQt5/QtWebKitWidgets.so
      No symbol table info available.
      #34 0x00007ffff08ac7fb in QWidgetPrivate::hide_helper (this=this@entry=0x356a1d0) at kernel/qwidget.cpp:7266
              fw = <optimized out>
              isEmbedded = <optimized out>
              hideEvent = {<QEvent> = {_vptr.QEvent = 0x7ffff0702f30 <vtable for QHideEvent+16>, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff5de4a40 <qt_meta_stringdata_QEvent>, 
                      data = 0x7ffff5de4480 <qt_meta_data_QEvent>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}, d = 0x0, t = 18, posted = 0, spont = 0, m_accept = 1, reserved = 29}, <No data fields>}
      #35 0x00007ffff08b01f0 in QWidget::setVisible (this=0x3668110, visible=<optimized out>) at kernel/qwidget.cpp:7426
              hideToParentEvent = {_vptr.QEvent = 0x7, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff5de4a40 <qt_meta_stringdata_QEvent>, data = 0x7ffff5de4480 <qt_meta_data_QEvent>, static_metacall = 0x0, 
                    relatedMetaObjects = 0x0, extradata = 0x0}}, d = 0x8, t = 65104, posted = 0, spont = 1, m_accept = 1, reserved = 181}
      #36 0x00007fffe13ec76c in sipQWebView::setVisible(bool) () from /usr/lib/python3.4/site-packages/PyQt5/QtWebKitWidgets.so
      No symbol table info available.
      #37 0x00007ffff08963ee in QStackedLayout::takeAt (this=0xeac910, index=8) at kernel/qstackedlayout.cpp:293
              item = 0x5aefe50
      #38 0x00007ffff0890a8f in QLayout::removeWidget (this=0xeac910, widget=0x3668110) at kernel/qlayout.cpp:1353
              i = 8
              child = <optimized out>
      #39 0x00007ffff122ff18 in ?? () from /usr/lib/python3.4/site-packages/PyQt5/QtWidgets.so
      No symbol table info available.
      [Python stuff...]
      

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            annulen Konstantin Tokarev
            the compiler Florian Bruhin
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes