<html>
    <head>
      <base href="https://bugs.webkit.org/" />
    </head>
    <body><span class="vcard"><a class="email" href="mailto:simon.fraser&#64;apple.com" title="Simon Fraser (smfr) &lt;simon.fraser&#64;apple.com&gt;"> <span class="fn">Simon Fraser (smfr)</span></a>
</span> changed
              <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - RTL: scrolling a div with 'overflow-x: hidden' causes content to overflow to the right instead of left"
   href="https://bugs.webkit.org/show_bug.cgi?id=169900">bug 169900</a>
        <br>
             <table border="1" cellspacing="0" cellpadding="8">
          <tr>
            <th>What</th>
            <th>Removed</th>
            <th>Added</th>
          </tr>

         <tr>
           <td style="text-align:right;">CC</td>
           <td>
               &nbsp;
           </td>
           <td>wenson_hsieh&#64;apple.com
           </td>
         </tr></table>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - RTL: scrolling a div with 'overflow-x: hidden' causes content to overflow to the right instead of left"
   href="https://bugs.webkit.org/show_bug.cgi?id=169900#c2">Comment # 2</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - RTL: scrolling a div with 'overflow-x: hidden' causes content to overflow to the right instead of left"
   href="https://bugs.webkit.org/show_bug.cgi?id=169900">bug 169900</a>
              from <span class="vcard"><a class="email" href="mailto:simon.fraser&#64;apple.com" title="Simon Fraser (smfr) &lt;simon.fraser&#64;apple.com&gt;"> <span class="fn">Simon Fraser (smfr)</span></a>
</span></b>
        <pre>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&lt;WebCore::ScrollController&gt;::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()) &gt;= 1 || fabs(delta.y()) &gt;= 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() &lt; 0 to catch this.</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>