[Webkit-unassigned] [Bug 169900] RTL: scrolling a div with 'overflow-x: hidden' causes content to overflow to the right instead of left

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon Mar 20 18:57:43 PDT 2017


https://bugs.webkit.org/show_bug.cgi?id=169900

Simon Fraser (smfr) <simon.fraser at apple.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |wenson_hsieh at apple.com

--- Comment #2 from Simon Fraser (smfr) <simon.fraser at apple.com> ---
This sideways scroll is coming out of:

(lldb) bt
* thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 6.1
  * frame #0: 0x0000000112d630d0 WebCore`WebCore::RenderLayer::scrollTo(this=0x00000001215684e0, position=0x00007fff58bc9c48) at RenderLayer.cpp:2369
    frame #1: 0x0000000112d65a23 WebCore`WebCore::RenderLayer::setScrollOffset(this=0x00000001215684e0, offset=0x00007fff58bc9d00) at RenderLayer.cpp:2796
    frame #2: 0x0000000113083b9f WebCore`WebCore::ScrollableArea::scrollPositionChanged(this=0x00000001215684e0, position=0x00007fff58bc9d58) at ScrollableArea.cpp:169
    frame #3: 0x0000000113083ff5 WebCore`WebCore::ScrollableArea::setScrollOffsetFromAnimation(this=0x00000001215684e0, offset=0x00007fff58bc9d98) at ScrollableArea.cpp:232
    frame #4: 0x0000000113088c06 WebCore`WebCore::ScrollAnimator::notifyPositionChanged(this=0x00000001215bcd80, delta=0x00007fff58bc9e10) at ScrollAnimator.cpp:195
    frame #5: 0x000000011308dca6 WebCore`WebCore::ScrollAnimatorMac::notifyPositionChanged(this=0x00000001215bcd80, delta=0x00007fff58bc9e10) at ScrollAnimatorMac.mm:770
    frame #6: 0x0000000113090053 WebCore`WebCore::ScrollAnimatorMac::immediateScrollBy(this=0x00000001215bcd80, delta=0x00007fff58bc9f48) at ScrollAnimatorMac.mm:1276
    frame #7: 0x000000011308ff86 WebCore`WebCore::ScrollAnimatorMac::immediateScrollByWithoutContentEdgeConstraints(this=0x00000001215bcd80, delta=0x00007fff58bc9f48) at ScrollAnimatorMac.mm:1263
    frame #8: 0x000000011309f6d1 WebCore`WebCore::ScrollController::snapRubberBandTimerFired(this=0x00000001215bcd98) at ScrollController.mm:340
    frame #9: 0x00000001130a2bf5 WebCore`WTF::RunLoop::Timer<WebCore::ScrollController>::fired(this=0x00000001215bcdd8) at RunLoop.h:139
    frame #10: 0x000000010dcad7a1 JavaScriptCore`WTF::RunLoop::TimerBase::timerFired((null)=0x00007ff5c8709f40, context=0x00000001215bcdd8) at RunLoopCF.cpp:84

from this logic:

        FloatPoint delta(roundToDevicePixelTowardZero(elasticDeltaForTimeDelta(m_startStretch.width(), -m_origVelocity.width(), (float)timeDelta)),
            roundToDevicePixelTowardZero(elasticDeltaForTimeDelta(m_startStretch.height(), -m_origVelocity.height(), (float)timeDelta)));

        if (fabs(delta.x()) >= 1 || fabs(delta.y()) >= 1) {
            m_client.immediateScrollByWithoutContentEdgeConstraints(FloatSize(delta.x(), delta.y()) - m_client.stretchAmount());

which I assume is not RTL-friendly (doesn't know about scrollOffset vs. scrollPosition).

Break in RenderLayer::scrollTo() when position.x() < 0 to catch this.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.webkit.org/pipermail/webkit-unassigned/attachments/20170321/0ae16417/attachment.html>


More information about the webkit-unassigned mailing list