<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[198069] trunk</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/198069">198069</a></dd>
<dt>Author</dt> <dd>mmaxfield@apple.com</dd>
<dt>Date</dt> <dd>2016-03-12 13:18:25 -0800 (Sat, 12 Mar 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>[OS X] Scrollbars of overflow:scroll divs should appear on the left on RTL systems
https://bugs.webkit.org/show_bug.cgi?id=155385

Reviewed by Simon Fraser.

Source/WebCore:

There is already some existing setup for RTL scrollbars. This patch hooks up this
existing support to the OS X triggering mechanism introduced in <a href="http://trac.webkit.org/projects/webkit/changeset/197956">r197956</a>. It also
fixes up the existing support to function even when the direction of the
RTL-scrollbar div is LTR (this means the contents of the div must be pushed
over by the width of the scrollbar).

Tests: fast/scrolling/rtl-scrollbars-overflow-contents.html
       fast/scrolling/rtl-scrollbars-overflow-dir-rtl.html
       fast/scrolling/rtl-scrollbars-overflow-padding.html
       fast/scrolling/rtl-scrollbars-overflow-simple.html
       fast/scrolling/rtl-scrollbars-overflow.html

* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::addOverflowFromPositionedObjects):
(WebCore::RenderBlock::logicalLeftOffsetForContent):
(WebCore::RenderBlock::logicalRightOffsetForContent):
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::determineLogicalLeftPositionForChild):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::overflowClipRect):
(WebCore::RenderBox::layoutOverflowRectForPropagation):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::computeScrollDimensions):
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::shouldPlaceBlockDirectionScrollbarOnLogicalLeft):
* rendering/style/RenderStyle.h:

LayoutTests:

* platform/mac-wk1/TestExpectations:
* platform/mac/TestExpectations:
* platform/efl/TestExpectations:
* platform/gtk/TestExpectations:
* platform/ios-simulator/TestExpectations:
* platform/win/TestExpectations:
* fast/scrolling/rtl-scrollbars-overflow-contents-expected.html: Added.
* fast/scrolling/rtl-scrollbars-overflow-contents.html: Added.
* fast/scrolling/rtl-scrollbars-overflow-dir-rtl-expected.html: Added.
* fast/scrolling/rtl-scrollbars-overflow-dir-rtl.html: Added.
* fast/scrolling/rtl-scrollbars-overflow-expected.html: Added.
* fast/scrolling/rtl-scrollbars-overflow-padding-expected.html: Added.
* fast/scrolling/rtl-scrollbars-overflow-padding.html: Added.
* fast/scrolling/rtl-scrollbars-overflow-simple-expected-mismatch.html: Added.
* fast/scrolling/rtl-scrollbars-overflow-simple.html: Added.
* fast/scrolling/rtl-scrollbars-overflow.html: Added.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsplatformeflTestExpectations">trunk/LayoutTests/platform/efl/TestExpectations</a></li>
<li><a href="#trunkLayoutTestsplatformgtkTestExpectations">trunk/LayoutTests/platform/gtk/TestExpectations</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatorTestExpectations">trunk/LayoutTests/platform/ios-simulator/TestExpectations</a></li>
<li><a href="#trunkLayoutTestsplatformmacTestExpectations">trunk/LayoutTests/platform/mac/TestExpectations</a></li>
<li><a href="#trunkLayoutTestsplatformmacwk1TestExpectations">trunk/LayoutTests/platform/mac-wk1/TestExpectations</a></li>
<li><a href="#trunkLayoutTestsplatformwinTestExpectations">trunk/LayoutTests/platform/win/TestExpectations</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderBlockcpp">trunk/Source/WebCore/rendering/RenderBlock.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderBlockFlowcpp">trunk/Source/WebCore/rendering/RenderBlockFlow.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderBoxcpp">trunk/Source/WebCore/rendering/RenderBox.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderLayercpp">trunk/Source/WebCore/rendering/RenderLayer.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleRenderStylecpp">trunk/Source/WebCore/rendering/style/RenderStyle.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleRenderStyleh">trunk/Source/WebCore/rendering/style/RenderStyle.h</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsfastscrollingrtlscrollbarsoverflowcontentsexpectedhtml">trunk/LayoutTests/fast/scrolling/rtl-scrollbars-overflow-contents-expected.html</a></li>
<li><a href="#trunkLayoutTestsfastscrollingrtlscrollbarsoverflowcontentshtml">trunk/LayoutTests/fast/scrolling/rtl-scrollbars-overflow-contents.html</a></li>
<li><a href="#trunkLayoutTestsfastscrollingrtlscrollbarsoverflowdirrtlexpectedhtml">trunk/LayoutTests/fast/scrolling/rtl-scrollbars-overflow-dir-rtl-expected.html</a></li>
<li><a href="#trunkLayoutTestsfastscrollingrtlscrollbarsoverflowdirrtlhtml">trunk/LayoutTests/fast/scrolling/rtl-scrollbars-overflow-dir-rtl.html</a></li>
<li><a href="#trunkLayoutTestsfastscrollingrtlscrollbarsoverflowexpectedhtml">trunk/LayoutTests/fast/scrolling/rtl-scrollbars-overflow-expected.html</a></li>
<li><a href="#trunkLayoutTestsfastscrollingrtlscrollbarsoverflowpaddingexpectedhtml">trunk/LayoutTests/fast/scrolling/rtl-scrollbars-overflow-padding-expected.html</a></li>
<li><a href="#trunkLayoutTestsfastscrollingrtlscrollbarsoverflowpaddinghtml">trunk/LayoutTests/fast/scrolling/rtl-scrollbars-overflow-padding.html</a></li>
<li><a href="#trunkLayoutTestsfastscrollingrtlscrollbarsoverflowsimpleexpectedmismatchhtml">trunk/LayoutTests/fast/scrolling/rtl-scrollbars-overflow-simple-expected-mismatch.html</a></li>
<li><a href="#trunkLayoutTestsfastscrollingrtlscrollbarsoverflowsimplehtml">trunk/LayoutTests/fast/scrolling/rtl-scrollbars-overflow-simple.html</a></li>
<li><a href="#trunkLayoutTestsfastscrollingrtlscrollbarsoverflowhtml">trunk/LayoutTests/fast/scrolling/rtl-scrollbars-overflow.html</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (198068 => 198069)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2016-03-12 20:59:37 UTC (rev 198068)
+++ trunk/LayoutTests/ChangeLog        2016-03-12 21:18:25 UTC (rev 198069)
</span><span class="lines">@@ -1,3 +1,27 @@
</span><ins>+2016-03-12  Myles C. Maxfield  &lt;mmaxfield@apple.com&gt;
+
+        [OS X] Scrollbars of overflow:scroll divs should appear on the left on RTL systems
+        https://bugs.webkit.org/show_bug.cgi?id=155385
+
+        Reviewed by Simon Fraser.
+
+        * platform/mac-wk1/TestExpectations: 
+        * platform/mac/TestExpectations: 
+        * platform/efl/TestExpectations: 
+        * platform/gtk/TestExpectations: 
+        * platform/ios-simulator/TestExpectations: 
+        * platform/win/TestExpectations: 
+        * fast/scrolling/rtl-scrollbars-overflow-contents-expected.html: Added.
+        * fast/scrolling/rtl-scrollbars-overflow-contents.html: Added.
+        * fast/scrolling/rtl-scrollbars-overflow-dir-rtl-expected.html: Added.
+        * fast/scrolling/rtl-scrollbars-overflow-dir-rtl.html: Added.
+        * fast/scrolling/rtl-scrollbars-overflow-expected.html: Added.
+        * fast/scrolling/rtl-scrollbars-overflow-padding-expected.html: Added.
+        * fast/scrolling/rtl-scrollbars-overflow-padding.html: Added.
+        * fast/scrolling/rtl-scrollbars-overflow-simple-expected-mismatch.html: Added.
+        * fast/scrolling/rtl-scrollbars-overflow-simple.html: Added.
+        * fast/scrolling/rtl-scrollbars-overflow.html: Added.
+
</ins><span class="cx"> 2016-03-12  Zalan Bujtas  &lt;zalan@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [Forms: focus] focus rings around text fields do not follow contour (border-radius)
</span></span></pre></div>
<a id="trunkLayoutTestsfastscrollingrtlscrollbarsoverflowcontentsexpectedhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/scrolling/rtl-scrollbars-overflow-contents-expected.html (0 => 198069)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/rtl-scrollbars-overflow-contents-expected.html                                (rev 0)
+++ trunk/LayoutTests/fast/scrolling/rtl-scrollbars-overflow-contents-expected.html        2016-03-12 21:18:25 UTC (rev 198069)
</span><span class="lines">@@ -0,0 +1,20 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;div style=&quot;overflow: hidden; width: 684px; height: 484px; position: relative; top: 15px;&quot;&gt;
+&lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus ultrices dapibus nunc, id porttitor quam mollis id. Morbi tincidunt mi neque, eget convallis ante convallis at. Donec gravida leo lacus, sit amet cursus ex vehicula eget. Vivamus vitae elit vel felis luctus posuere at in arcu. Ut eu bibendum lectus. Aliquam erat volutpat. Nullam nisl urna, malesuada eget feugiat vitae, tempus vel diam. Curabitur venenatis finibus egestas. Sed imperdiet molestie fermentum. Nullam pulvinar ultrices justo, eu gravida lacus sodales ac. Donec efficitur porttitor nisi, sit amet aliquam libero vulputate consectetur. Sed malesuada diam at euismod aliquam. Vestibulum maximus eu purus vitae porttitor.&lt;/p&gt;
+
+&lt;p&gt;Etiam ut ipsum vitae neque malesuada accumsan. Nam sit amet turpis quis magna condimentum euismod at sed ante. Sed a metus ac tortor cursus mollis. Aenean vitae libero eu lorem egestas faucibus. Fusce eget velit sollicitudin, efficitur erat sit amet, auctor massa. Donec non est dolor. Phasellus efficitur fringilla euismod. Aliquam finibus sapien non volutpat venenatis. Maecenas id urna sit amet magna feugiat sagittis vel et ligula. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas molestie hendrerit dolor, imperdiet posuere est. Etiam molestie dictum tincidunt.&lt;/p&gt;
+
+&lt;p&gt;Cras tincidunt lorem eu nisl tempor elementum. Vivamus tempor mi eu ligula eleifend, ut posuere metus imperdiet. Nam tristique commodo commodo. Proin vitae auctor ante. Mauris ullamcorper vitae urna in lacinia. Praesent euismod scelerisque felis, nec eleifend nulla vulputate non. Mauris nec rutrum diam. Morbi vitae magna sollicitudin, pellentesque diam vitae, faucibus turpis. Sed pellentesque eros quis condimentum cursus. Ut id viverra dui. Integer convallis nulla vel ipsum pretium, eget imperdiet ligula tincidunt.&lt;/p&gt;
+
+&lt;p&gt;Sed lacus enim, pretium et sapien vel, auctor euismod ex. Nulla vestibulum nulla ut nisi tincidunt condimentum. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed lobortis id mauris dignissim vehicula. Vivamus sed ex ipsum. Vivamus suscipit neque quis ultrices posuere. Sed dignissim sapien non sapien venenatis, at lacinia felis efficitur.&lt;/p&gt;
+
+&lt;p&gt;Nunc viverra nulla eget lacus imperdiet, et ullamcorper augue viverra. Nunc maximus consectetur malesuada. Nulla eget volutpat turpis. Nulla nec cursus purus, at consectetur sem. Sed pretium ipsum eu risus bibendum lacinia. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec laoreet nunc et lacus consequat, ut malesuada tortor bibendum. Maecenas vitae erat consectetur, lacinia libero nec, placerat leo. Suspendisse rutrum nisl nec urna tempus ultricies. Cras pharetra tortor quis lorem ultrices pharetra. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Pellentesque consectetur nunc malesuada, accumsan leo vel, cursus massa. In sodales libero nec ligula maximus ullamcorper. Maecenas porttitor condimentum dignissim.&lt;/p&gt;
+
+&lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse a risus nisi. Maecenas ut metus gravida, tincidunt arcu nec, ultrices dui. Vivamus at pretium purus, in feugiat odio. Phasellus facilisis mi id condimentum congue. Aenean sollicitudin risus a accumsan facilisis. Sed ac fringilla felis. Morbi malesuada vehicula sapien.&lt;/p&gt;
+&lt;/div&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsfastscrollingrtlscrollbarsoverflowcontentshtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/scrolling/rtl-scrollbars-overflow-contents.html (0 => 198069)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/rtl-scrollbars-overflow-contents.html                                (rev 0)
+++ trunk/LayoutTests/fast/scrolling/rtl-scrollbars-overflow-contents.html        2016-03-12 21:18:25 UTC (rev 198069)
</span><span class="lines">@@ -0,0 +1,22 @@
</span><ins>+&lt;!DOCTYPE html&gt;&lt;!-- webkit-test-runner [ rtlScrollbars=true ] --&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;div style=&quot;overflow: hidden; width: 700px; height: 500px; position: relative;&quot;&gt;
+&lt;div id=&quot;element&quot; style=&quot;overflow: scroll; width: 700px; height: 500px; position: absolute; left: -15px; bottom: -15px;&quot;&gt;
+&lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus ultrices dapibus nunc, id porttitor quam mollis id. Morbi tincidunt mi neque, eget convallis ante convallis at. Donec gravida leo lacus, sit amet cursus ex vehicula eget. Vivamus vitae elit vel felis luctus posuere at in arcu. Ut eu bibendum lectus. Aliquam erat volutpat. Nullam nisl urna, malesuada eget feugiat vitae, tempus vel diam. Curabitur venenatis finibus egestas. Sed imperdiet molestie fermentum. Nullam pulvinar ultrices justo, eu gravida lacus sodales ac. Donec efficitur porttitor nisi, sit amet aliquam libero vulputate consectetur. Sed malesuada diam at euismod aliquam. Vestibulum maximus eu purus vitae porttitor.&lt;/p&gt;
+
+&lt;p&gt;Etiam ut ipsum vitae neque malesuada accumsan. Nam sit amet turpis quis magna condimentum euismod at sed ante. Sed a metus ac tortor cursus mollis. Aenean vitae libero eu lorem egestas faucibus. Fusce eget velit sollicitudin, efficitur erat sit amet, auctor massa. Donec non est dolor. Phasellus efficitur fringilla euismod. Aliquam finibus sapien non volutpat venenatis. Maecenas id urna sit amet magna feugiat sagittis vel et ligula. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas molestie hendrerit dolor, imperdiet posuere est. Etiam molestie dictum tincidunt.&lt;/p&gt;
+
+&lt;p&gt;Cras tincidunt lorem eu nisl tempor elementum. Vivamus tempor mi eu ligula eleifend, ut posuere metus imperdiet. Nam tristique commodo commodo. Proin vitae auctor ante. Mauris ullamcorper vitae urna in lacinia. Praesent euismod scelerisque felis, nec eleifend nulla vulputate non. Mauris nec rutrum diam. Morbi vitae magna sollicitudin, pellentesque diam vitae, faucibus turpis. Sed pellentesque eros quis condimentum cursus. Ut id viverra dui. Integer convallis nulla vel ipsum pretium, eget imperdiet ligula tincidunt.&lt;/p&gt;
+
+&lt;p&gt;Sed lacus enim, pretium et sapien vel, auctor euismod ex. Nulla vestibulum nulla ut nisi tincidunt condimentum. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed lobortis id mauris dignissim vehicula. Vivamus sed ex ipsum. Vivamus suscipit neque quis ultrices posuere. Sed dignissim sapien non sapien venenatis, at lacinia felis efficitur.&lt;/p&gt;
+
+&lt;p&gt;Nunc viverra nulla eget lacus imperdiet, et ullamcorper augue viverra. Nunc maximus consectetur malesuada. Nulla eget volutpat turpis. Nulla nec cursus purus, at consectetur sem. Sed pretium ipsum eu risus bibendum lacinia. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec laoreet nunc et lacus consequat, ut malesuada tortor bibendum. Maecenas vitae erat consectetur, lacinia libero nec, placerat leo. Suspendisse rutrum nisl nec urna tempus ultricies. Cras pharetra tortor quis lorem ultrices pharetra. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Pellentesque consectetur nunc malesuada, accumsan leo vel, cursus massa. In sodales libero nec ligula maximus ullamcorper. Maecenas porttitor condimentum dignissim.&lt;/p&gt;
+
+&lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse a risus nisi. Maecenas ut metus gravida, tincidunt arcu nec, ultrices dui. Vivamus at pretium purus, in feugiat odio. Phasellus facilisis mi id condimentum congue. Aenean sollicitudin risus a accumsan facilisis. Sed ac fringilla felis. Morbi malesuada vehicula sapien.&lt;/p&gt;
+&lt;/div&gt;
+&lt;/div&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsfastscrollingrtlscrollbarsoverflowdirrtlexpectedhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/scrolling/rtl-scrollbars-overflow-dir-rtl-expected.html (0 => 198069)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/rtl-scrollbars-overflow-dir-rtl-expected.html                                (rev 0)
+++ trunk/LayoutTests/fast/scrolling/rtl-scrollbars-overflow-dir-rtl-expected.html        2016-03-12 21:18:25 UTC (rev 198069)
</span><span class="lines">@@ -0,0 +1,27 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;div id=&quot;element&quot; style=&quot;overflow: hidden; width: 685px; height: 484px; position: relative; top: 15px; padding: 20px;&quot; dir=&quot;rtl&quot;&gt;
+&lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus ultrices dapibus nunc, id porttitor quam mollis id. Morbi tincidunt mi neque, eget convallis ante convallis at. Donec gravida leo lacus, sit amet cursus ex vehicula eget. Vivamus vitae elit vel felis luctus posuere at in arcu. Ut eu bibendum lectus. Aliquam erat volutpat. Nullam nisl urna, malesuada eget feugiat vitae, tempus vel diam. Curabitur venenatis finibus egestas. Sed imperdiet molestie fermentum. Nullam pulvinar ultrices justo, eu gravida lacus sodales ac. Donec efficitur porttitor nisi, sit amet aliquam libero vulputate consectetur. Sed malesuada diam at euismod aliquam. Vestibulum maximus eu purus vitae porttitor.&lt;/p&gt;
+
+&lt;p&gt;Etiam ut ipsum vitae neque malesuada accumsan. Nam sit amet turpis quis magna condimentum euismod at sed ante. Sed a metus ac tortor cursus mollis. Aenean vitae libero eu lorem egestas faucibus. Fusce eget velit sollicitudin, efficitur erat sit amet, auctor massa. Donec non est dolor. Phasellus efficitur fringilla euismod. Aliquam finibus sapien non volutpat venenatis. Maecenas id urna sit amet magna feugiat sagittis vel et ligula. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas molestie hendrerit dolor, imperdiet posuere est. Etiam molestie dictum tincidunt.&lt;/p&gt;
+
+&lt;p&gt;Cras tincidunt lorem eu nisl tempor elementum. Vivamus tempor mi eu ligula eleifend, ut posuere metus imperdiet. Nam tristique commodo commodo. Proin vitae auctor ante. Mauris ullamcorper vitae urna in lacinia. Praesent euismod scelerisque felis, nec eleifend nulla vulputate non. Mauris nec rutrum diam. Morbi vitae magna sollicitudin, pellentesque diam vitae, faucibus turpis. Sed pellentesque eros quis condimentum cursus. Ut id viverra dui. Integer convallis nulla vel ipsum pretium, eget imperdiet ligula tincidunt.&lt;/p&gt;
+
+&lt;p&gt;Sed lacus enim, pretium et sapien vel, auctor euismod ex. Nulla vestibulum nulla ut nisi tincidunt condimentum. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed lobortis id mauris dignissim vehicula. Vivamus sed ex ipsum. Vivamus suscipit neque quis ultrices posuere. Sed dignissim sapien non sapien venenatis, at lacinia felis efficitur.&lt;/p&gt;
+
+&lt;p&gt;Nunc viverra nulla eget lacus imperdiet, et ullamcorper augue viverra. Nunc maximus consectetur malesuada. Nulla eget volutpat turpis. Nulla nec cursus purus, at consectetur sem. Sed pretium ipsum eu risus bibendum lacinia. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec laoreet nunc et lacus consequat, ut malesuada tortor bibendum. Maecenas vitae erat consectetur, lacinia libero nec, placerat leo. Suspendisse rutrum nisl nec urna tempus ultricies. Cras pharetra tortor quis lorem ultrices pharetra. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Pellentesque consectetur nunc malesuada, accumsan leo vel, cursus massa. In sodales libero nec ligula maximus ullamcorper. Maecenas porttitor condimentum dignissim.&lt;/p&gt;
+
+&lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse a risus nisi. Maecenas ut metus gravida, tincidunt arcu nec, ultrices dui. Vivamus at pretium purus, in feugiat odio. Phasellus facilisis mi id condimentum congue. Aenean sollicitudin risus a accumsan facilisis. Sed ac fringilla felis. Morbi malesuada vehicula sapien.&lt;/p&gt;
+&lt;/div&gt;
+&lt;script&gt;
+var selection = window.getSelection();
+selection.removeAllRanges();
+var range = document.createRange();
+range.selectNode(document.getElementById(&quot;element&quot;));
+selection.addRange(range);
+&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsfastscrollingrtlscrollbarsoverflowdirrtlhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/scrolling/rtl-scrollbars-overflow-dir-rtl.html (0 => 198069)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/rtl-scrollbars-overflow-dir-rtl.html                                (rev 0)
+++ trunk/LayoutTests/fast/scrolling/rtl-scrollbars-overflow-dir-rtl.html        2016-03-12 21:18:25 UTC (rev 198069)
</span><span class="lines">@@ -0,0 +1,29 @@
</span><ins>+&lt;!DOCTYPE html&gt;&lt;!-- webkit-test-runner [ rtlScrollbars=true ] --&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;div style=&quot;overflow: hidden; width: 100%; height: 539px; position: relative;&quot;&gt;
+&lt;div id=&quot;element&quot; style=&quot;overflow: scroll; width: 700px; height: 500px; position: absolute; left: -15px; bottom: -16px; padding: 20px;&quot; dir=&quot;rtl&quot;&gt;
+&lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus ultrices dapibus nunc, id porttitor quam mollis id. Morbi tincidunt mi neque, eget convallis ante convallis at. Donec gravida leo lacus, sit amet cursus ex vehicula eget. Vivamus vitae elit vel felis luctus posuere at in arcu. Ut eu bibendum lectus. Aliquam erat volutpat. Nullam nisl urna, malesuada eget feugiat vitae, tempus vel diam. Curabitur venenatis finibus egestas. Sed imperdiet molestie fermentum. Nullam pulvinar ultrices justo, eu gravida lacus sodales ac. Donec efficitur porttitor nisi, sit amet aliquam libero vulputate consectetur. Sed malesuada diam at euismod aliquam. Vestibulum maximus eu purus vitae porttitor.&lt;/p&gt;
+
+&lt;p&gt;Etiam ut ipsum vitae neque malesuada accumsan. Nam sit amet turpis quis magna condimentum euismod at sed ante. Sed a metus ac tortor cursus mollis. Aenean vitae libero eu lorem egestas faucibus. Fusce eget velit sollicitudin, efficitur erat sit amet, auctor massa. Donec non est dolor. Phasellus efficitur fringilla euismod. Aliquam finibus sapien non volutpat venenatis. Maecenas id urna sit amet magna feugiat sagittis vel et ligula. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas molestie hendrerit dolor, imperdiet posuere est. Etiam molestie dictum tincidunt.&lt;/p&gt;
+
+&lt;p&gt;Cras tincidunt lorem eu nisl tempor elementum. Vivamus tempor mi eu ligula eleifend, ut posuere metus imperdiet. Nam tristique commodo commodo. Proin vitae auctor ante. Mauris ullamcorper vitae urna in lacinia. Praesent euismod scelerisque felis, nec eleifend nulla vulputate non. Mauris nec rutrum diam. Morbi vitae magna sollicitudin, pellentesque diam vitae, faucibus turpis. Sed pellentesque eros quis condimentum cursus. Ut id viverra dui. Integer convallis nulla vel ipsum pretium, eget imperdiet ligula tincidunt.&lt;/p&gt;
+
+&lt;p&gt;Sed lacus enim, pretium et sapien vel, auctor euismod ex. Nulla vestibulum nulla ut nisi tincidunt condimentum. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed lobortis id mauris dignissim vehicula. Vivamus sed ex ipsum. Vivamus suscipit neque quis ultrices posuere. Sed dignissim sapien non sapien venenatis, at lacinia felis efficitur.&lt;/p&gt;
+
+&lt;p&gt;Nunc viverra nulla eget lacus imperdiet, et ullamcorper augue viverra. Nunc maximus consectetur malesuada. Nulla eget volutpat turpis. Nulla nec cursus purus, at consectetur sem. Sed pretium ipsum eu risus bibendum lacinia. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec laoreet nunc et lacus consequat, ut malesuada tortor bibendum. Maecenas vitae erat consectetur, lacinia libero nec, placerat leo. Suspendisse rutrum nisl nec urna tempus ultricies. Cras pharetra tortor quis lorem ultrices pharetra. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Pellentesque consectetur nunc malesuada, accumsan leo vel, cursus massa. In sodales libero nec ligula maximus ullamcorper. Maecenas porttitor condimentum dignissim.&lt;/p&gt;
+
+&lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse a risus nisi. Maecenas ut metus gravida, tincidunt arcu nec, ultrices dui. Vivamus at pretium purus, in feugiat odio. Phasellus facilisis mi id condimentum congue. Aenean sollicitudin risus a accumsan facilisis. Sed ac fringilla felis. Morbi malesuada vehicula sapien.&lt;/p&gt;
+&lt;/div&gt;
+&lt;/div&gt;
+&lt;script&gt;
+var selection = window.getSelection();
+selection.removeAllRanges();
+var range = document.createRange();
+range.selectNode(document.getElementById(&quot;element&quot;));
+selection.addRange(range);
+&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsfastscrollingrtlscrollbarsoverflowexpectedhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/scrolling/rtl-scrollbars-overflow-expected.html (0 => 198069)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/rtl-scrollbars-overflow-expected.html                                (rev 0)
+++ trunk/LayoutTests/fast/scrolling/rtl-scrollbars-overflow-expected.html        2016-03-12 21:18:25 UTC (rev 198069)
</span><span class="lines">@@ -0,0 +1,24 @@
</span><ins>+&lt;!DOCTYPE html&gt;&lt;!-- webkit-test-runner [ rtlScrollbars=true ] --&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;div id=&quot;element&quot; style=&quot;overflow: scroll; width: 700px; height: 500px;&quot;&gt;
+&lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus ultrices dapibus nunc, id porttitor quam mollis id. Morbi tincidunt mi neque, eget convallis ante convallis at. Donec gravida leo lacus, sit amet cursus ex vehicula eget. Vivamus vitae elit vel felis luctus posuere at in arcu. Ut eu bibendum lectus. Aliquam erat volutpat. Nullam nisl urna, malesuada eget feugiat vitae, tempus vel diam. Curabitur venenatis finibus egestas. Sed imperdiet molestie fermentum. Nullam pulvinar ultrices justo, eu gravida lacus sodales ac. Donec efficitur porttitor nisi, sit amet aliquam libero vulputate consectetur. Sed malesuada diam at euismod aliquam. Vestibulum maximus eu purus vitae porttitor.&lt;/p&gt;
+
+&lt;p&gt;Etiam ut ipsum vitae neque malesuada accumsan. Nam sit amet turpis quis magna condimentum euismod at sed ante. Sed a metus ac tortor cursus mollis. Aenean vitae libero eu lorem egestas faucibus. Fusce eget velit sollicitudin, efficitur erat sit amet, auctor massa. Donec non est dolor. Phasellus efficitur fringilla euismod. Aliquam finibus sapien non volutpat venenatis. Maecenas id urna sit amet magna feugiat sagittis vel et ligula. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas molestie hendrerit dolor, imperdiet posuere est. Etiam molestie dictum tincidunt.&lt;/p&gt;
+
+&lt;p&gt;Cras tincidunt lorem eu nisl tempor elementum. Vivamus tempor mi eu ligula eleifend, ut posuere metus imperdiet. Nam tristique commodo commodo. Proin vitae auctor ante. Mauris ullamcorper vitae urna in lacinia. Praesent euismod scelerisque felis, nec eleifend nulla vulputate non. Mauris nec rutrum diam. Morbi vitae magna sollicitudin, pellentesque diam vitae, faucibus turpis. Sed pellentesque eros quis condimentum cursus. Ut id viverra dui. Integer convallis nulla vel ipsum pretium, eget imperdiet ligula tincidunt.&lt;/p&gt;
+
+&lt;p&gt;Sed lacus enim, pretium et sapien vel, auctor euismod ex. Nulla vestibulum nulla ut nisi tincidunt condimentum. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed lobortis id mauris dignissim vehicula. Vivamus sed ex ipsum. Vivamus suscipit neque quis ultrices posuere. Sed dignissim sapien non sapien venenatis, at lacinia felis efficitur.&lt;/p&gt;
+
+&lt;p&gt;Nunc viverra nulla eget lacus imperdiet, et ullamcorper augue viverra. Nunc maximus consectetur malesuada. Nulla eget volutpat turpis. Nulla nec cursus purus, at consectetur sem. Sed pretium ipsum eu risus bibendum lacinia. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec laoreet nunc et lacus consequat, ut malesuada tortor bibendum. Maecenas vitae erat consectetur, lacinia libero nec, placerat leo. Suspendisse rutrum nisl nec urna tempus ultricies. Cras pharetra tortor quis lorem ultrices pharetra. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Pellentesque consectetur nunc malesuada, accumsan leo vel, cursus massa. In sodales libero nec ligula maximus ullamcorper. Maecenas porttitor condimentum dignissim.&lt;/p&gt;
+
+&lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse a risus nisi. Maecenas ut metus gravida, tincidunt arcu nec, ultrices dui. Vivamus at pretium purus, in feugiat odio. Phasellus facilisis mi id condimentum congue. Aenean sollicitudin risus a accumsan facilisis. Sed ac fringilla felis. Morbi malesuada vehicula sapien.&lt;/p&gt;
+&lt;/div&gt;
+&lt;script&gt;
+var element = document.getElementById(&quot;element&quot;);
+element.scrollTop = 1000;
+&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsfastscrollingrtlscrollbarsoverflowpaddingexpectedhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/scrolling/rtl-scrollbars-overflow-padding-expected.html (0 => 198069)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/rtl-scrollbars-overflow-padding-expected.html                                (rev 0)
+++ trunk/LayoutTests/fast/scrolling/rtl-scrollbars-overflow-padding-expected.html        2016-03-12 21:18:25 UTC (rev 198069)
</span><span class="lines">@@ -0,0 +1,27 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;div id=&quot;element&quot; style=&quot;overflow: hidden; width: 685px; height: 484px; position: relative; top: 15px; padding: 20px;&quot;&gt;
+&lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus ultrices dapibus nunc, id porttitor quam mollis id. Morbi tincidunt mi neque, eget convallis ante convallis at. Donec gravida leo lacus, sit amet cursus ex vehicula eget. Vivamus vitae elit vel felis luctus posuere at in arcu. Ut eu bibendum lectus. Aliquam erat volutpat. Nullam nisl urna, malesuada eget feugiat vitae, tempus vel diam. Curabitur venenatis finibus egestas. Sed imperdiet molestie fermentum. Nullam pulvinar ultrices justo, eu gravida lacus sodales ac. Donec efficitur porttitor nisi, sit amet aliquam libero vulputate consectetur. Sed malesuada diam at euismod aliquam. Vestibulum maximus eu purus vitae porttitor.&lt;/p&gt;
+
+&lt;p&gt;Etiam ut ipsum vitae neque malesuada accumsan. Nam sit amet turpis quis magna condimentum euismod at sed ante. Sed a metus ac tortor cursus mollis. Aenean vitae libero eu lorem egestas faucibus. Fusce eget velit sollicitudin, efficitur erat sit amet, auctor massa. Donec non est dolor. Phasellus efficitur fringilla euismod. Aliquam finibus sapien non volutpat venenatis. Maecenas id urna sit amet magna feugiat sagittis vel et ligula. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas molestie hendrerit dolor, imperdiet posuere est. Etiam molestie dictum tincidunt.&lt;/p&gt;
+
+&lt;p&gt;Cras tincidunt lorem eu nisl tempor elementum. Vivamus tempor mi eu ligula eleifend, ut posuere metus imperdiet. Nam tristique commodo commodo. Proin vitae auctor ante. Mauris ullamcorper vitae urna in lacinia. Praesent euismod scelerisque felis, nec eleifend nulla vulputate non. Mauris nec rutrum diam. Morbi vitae magna sollicitudin, pellentesque diam vitae, faucibus turpis. Sed pellentesque eros quis condimentum cursus. Ut id viverra dui. Integer convallis nulla vel ipsum pretium, eget imperdiet ligula tincidunt.&lt;/p&gt;
+
+&lt;p&gt;Sed lacus enim, pretium et sapien vel, auctor euismod ex. Nulla vestibulum nulla ut nisi tincidunt condimentum. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed lobortis id mauris dignissim vehicula. Vivamus sed ex ipsum. Vivamus suscipit neque quis ultrices posuere. Sed dignissim sapien non sapien venenatis, at lacinia felis efficitur.&lt;/p&gt;
+
+&lt;p&gt;Nunc viverra nulla eget lacus imperdiet, et ullamcorper augue viverra. Nunc maximus consectetur malesuada. Nulla eget volutpat turpis. Nulla nec cursus purus, at consectetur sem. Sed pretium ipsum eu risus bibendum lacinia. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec laoreet nunc et lacus consequat, ut malesuada tortor bibendum. Maecenas vitae erat consectetur, lacinia libero nec, placerat leo. Suspendisse rutrum nisl nec urna tempus ultricies. Cras pharetra tortor quis lorem ultrices pharetra. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Pellentesque consectetur nunc malesuada, accumsan leo vel, cursus massa. In sodales libero nec ligula maximus ullamcorper. Maecenas porttitor condimentum dignissim.&lt;/p&gt;
+
+&lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse a risus nisi. Maecenas ut metus gravida, tincidunt arcu nec, ultrices dui. Vivamus at pretium purus, in feugiat odio. Phasellus facilisis mi id condimentum congue. Aenean sollicitudin risus a accumsan facilisis. Sed ac fringilla felis. Morbi malesuada vehicula sapien.&lt;/p&gt;
+&lt;/div&gt;
+&lt;script&gt;
+var selection = window.getSelection();
+selection.removeAllRanges();
+var range = document.createRange();
+range.selectNode(document.getElementById(&quot;element&quot;));
+selection.addRange(range);
+&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsfastscrollingrtlscrollbarsoverflowpaddinghtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/scrolling/rtl-scrollbars-overflow-padding.html (0 => 198069)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/rtl-scrollbars-overflow-padding.html                                (rev 0)
+++ trunk/LayoutTests/fast/scrolling/rtl-scrollbars-overflow-padding.html        2016-03-12 21:18:25 UTC (rev 198069)
</span><span class="lines">@@ -0,0 +1,29 @@
</span><ins>+&lt;!DOCTYPE html&gt;&lt;!-- webkit-test-runner [ rtlScrollbars=true ] --&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;div style=&quot;overflow: hidden; width: 100%; height: 539px; position: relative;&quot;&gt;
+&lt;div id=&quot;element&quot; style=&quot;overflow: scroll; width: 700px; height: 500px; position: absolute; left: -15px; bottom: -16px; padding: 20px;&quot;&gt;
+&lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus ultrices dapibus nunc, id porttitor quam mollis id. Morbi tincidunt mi neque, eget convallis ante convallis at. Donec gravida leo lacus, sit amet cursus ex vehicula eget. Vivamus vitae elit vel felis luctus posuere at in arcu. Ut eu bibendum lectus. Aliquam erat volutpat. Nullam nisl urna, malesuada eget feugiat vitae, tempus vel diam. Curabitur venenatis finibus egestas. Sed imperdiet molestie fermentum. Nullam pulvinar ultrices justo, eu gravida lacus sodales ac. Donec efficitur porttitor nisi, sit amet aliquam libero vulputate consectetur. Sed malesuada diam at euismod aliquam. Vestibulum maximus eu purus vitae porttitor.&lt;/p&gt;
+
+&lt;p&gt;Etiam ut ipsum vitae neque malesuada accumsan. Nam sit amet turpis quis magna condimentum euismod at sed ante. Sed a metus ac tortor cursus mollis. Aenean vitae libero eu lorem egestas faucibus. Fusce eget velit sollicitudin, efficitur erat sit amet, auctor massa. Donec non est dolor. Phasellus efficitur fringilla euismod. Aliquam finibus sapien non volutpat venenatis. Maecenas id urna sit amet magna feugiat sagittis vel et ligula. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas molestie hendrerit dolor, imperdiet posuere est. Etiam molestie dictum tincidunt.&lt;/p&gt;
+
+&lt;p&gt;Cras tincidunt lorem eu nisl tempor elementum. Vivamus tempor mi eu ligula eleifend, ut posuere metus imperdiet. Nam tristique commodo commodo. Proin vitae auctor ante. Mauris ullamcorper vitae urna in lacinia. Praesent euismod scelerisque felis, nec eleifend nulla vulputate non. Mauris nec rutrum diam. Morbi vitae magna sollicitudin, pellentesque diam vitae, faucibus turpis. Sed pellentesque eros quis condimentum cursus. Ut id viverra dui. Integer convallis nulla vel ipsum pretium, eget imperdiet ligula tincidunt.&lt;/p&gt;
+
+&lt;p&gt;Sed lacus enim, pretium et sapien vel, auctor euismod ex. Nulla vestibulum nulla ut nisi tincidunt condimentum. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed lobortis id mauris dignissim vehicula. Vivamus sed ex ipsum. Vivamus suscipit neque quis ultrices posuere. Sed dignissim sapien non sapien venenatis, at lacinia felis efficitur.&lt;/p&gt;
+
+&lt;p&gt;Nunc viverra nulla eget lacus imperdiet, et ullamcorper augue viverra. Nunc maximus consectetur malesuada. Nulla eget volutpat turpis. Nulla nec cursus purus, at consectetur sem. Sed pretium ipsum eu risus bibendum lacinia. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec laoreet nunc et lacus consequat, ut malesuada tortor bibendum. Maecenas vitae erat consectetur, lacinia libero nec, placerat leo. Suspendisse rutrum nisl nec urna tempus ultricies. Cras pharetra tortor quis lorem ultrices pharetra. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Pellentesque consectetur nunc malesuada, accumsan leo vel, cursus massa. In sodales libero nec ligula maximus ullamcorper. Maecenas porttitor condimentum dignissim.&lt;/p&gt;
+
+&lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse a risus nisi. Maecenas ut metus gravida, tincidunt arcu nec, ultrices dui. Vivamus at pretium purus, in feugiat odio. Phasellus facilisis mi id condimentum congue. Aenean sollicitudin risus a accumsan facilisis. Sed ac fringilla felis. Morbi malesuada vehicula sapien.&lt;/p&gt;
+&lt;/div&gt;
+&lt;/div&gt;
+&lt;script&gt;
+var selection = window.getSelection();
+selection.removeAllRanges();
+var range = document.createRange();
+range.selectNode(document.getElementById(&quot;element&quot;));
+selection.addRange(range);
+&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsfastscrollingrtlscrollbarsoverflowsimpleexpectedmismatchhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/scrolling/rtl-scrollbars-overflow-simple-expected-mismatch.html (0 => 198069)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/rtl-scrollbars-overflow-simple-expected-mismatch.html                                (rev 0)
+++ trunk/LayoutTests/fast/scrolling/rtl-scrollbars-overflow-simple-expected-mismatch.html        2016-03-12 21:18:25 UTC (rev 198069)
</span><span class="lines">@@ -0,0 +1,20 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;div id=&quot;element&quot; style=&quot;overflow: scroll; width: 700px; height: 500px;&quot;&gt;
+&lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus ultrices dapibus nunc, id porttitor quam mollis id. Morbi tincidunt mi neque, eget convallis ante convallis at. Donec gravida leo lacus, sit amet cursus ex vehicula eget. Vivamus vitae elit vel felis luctus posuere at in arcu. Ut eu bibendum lectus. Aliquam erat volutpat. Nullam nisl urna, malesuada eget feugiat vitae, tempus vel diam. Curabitur venenatis finibus egestas. Sed imperdiet molestie fermentum. Nullam pulvinar ultrices justo, eu gravida lacus sodales ac. Donec efficitur porttitor nisi, sit amet aliquam libero vulputate consectetur. Sed malesuada diam at euismod aliquam. Vestibulum maximus eu purus vitae porttitor.&lt;/p&gt;
+
+&lt;p&gt;Etiam ut ipsum vitae neque malesuada accumsan. Nam sit amet turpis quis magna condimentum euismod at sed ante. Sed a metus ac tortor cursus mollis. Aenean vitae libero eu lorem egestas faucibus. Fusce eget velit sollicitudin, efficitur erat sit amet, auctor massa. Donec non est dolor. Phasellus efficitur fringilla euismod. Aliquam finibus sapien non volutpat venenatis. Maecenas id urna sit amet magna feugiat sagittis vel et ligula. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas molestie hendrerit dolor, imperdiet posuere est. Etiam molestie dictum tincidunt.&lt;/p&gt;
+
+&lt;p&gt;Cras tincidunt lorem eu nisl tempor elementum. Vivamus tempor mi eu ligula eleifend, ut posuere metus imperdiet. Nam tristique commodo commodo. Proin vitae auctor ante. Mauris ullamcorper vitae urna in lacinia. Praesent euismod scelerisque felis, nec eleifend nulla vulputate non. Mauris nec rutrum diam. Morbi vitae magna sollicitudin, pellentesque diam vitae, faucibus turpis. Sed pellentesque eros quis condimentum cursus. Ut id viverra dui. Integer convallis nulla vel ipsum pretium, eget imperdiet ligula tincidunt.&lt;/p&gt;
+
+&lt;p&gt;Sed lacus enim, pretium et sapien vel, auctor euismod ex. Nulla vestibulum nulla ut nisi tincidunt condimentum. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed lobortis id mauris dignissim vehicula. Vivamus sed ex ipsum. Vivamus suscipit neque quis ultrices posuere. Sed dignissim sapien non sapien venenatis, at lacinia felis efficitur.&lt;/p&gt;
+
+&lt;p&gt;Nunc viverra nulla eget lacus imperdiet, et ullamcorper augue viverra. Nunc maximus consectetur malesuada. Nulla eget volutpat turpis. Nulla nec cursus purus, at consectetur sem. Sed pretium ipsum eu risus bibendum lacinia. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec laoreet nunc et lacus consequat, ut malesuada tortor bibendum. Maecenas vitae erat consectetur, lacinia libero nec, placerat leo. Suspendisse rutrum nisl nec urna tempus ultricies. Cras pharetra tortor quis lorem ultrices pharetra. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Pellentesque consectetur nunc malesuada, accumsan leo vel, cursus massa. In sodales libero nec ligula maximus ullamcorper. Maecenas porttitor condimentum dignissim.&lt;/p&gt;
+
+&lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse a risus nisi. Maecenas ut metus gravida, tincidunt arcu nec, ultrices dui. Vivamus at pretium purus, in feugiat odio. Phasellus facilisis mi id condimentum congue. Aenean sollicitudin risus a accumsan facilisis. Sed ac fringilla felis. Morbi malesuada vehicula sapien.&lt;/p&gt;
+&lt;/div&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsfastscrollingrtlscrollbarsoverflowsimplehtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/scrolling/rtl-scrollbars-overflow-simple.html (0 => 198069)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/rtl-scrollbars-overflow-simple.html                                (rev 0)
+++ trunk/LayoutTests/fast/scrolling/rtl-scrollbars-overflow-simple.html        2016-03-12 21:18:25 UTC (rev 198069)
</span><span class="lines">@@ -0,0 +1,20 @@
</span><ins>+&lt;!DOCTYPE html&gt;&lt;!-- webkit-test-runner [ rtlScrollbars=true ] --&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;div id=&quot;element&quot; style=&quot;overflow: scroll; width: 700px; height: 500px;&quot;&gt;
+&lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus ultrices dapibus nunc, id porttitor quam mollis id. Morbi tincidunt mi neque, eget convallis ante convallis at. Donec gravida leo lacus, sit amet cursus ex vehicula eget. Vivamus vitae elit vel felis luctus posuere at in arcu. Ut eu bibendum lectus. Aliquam erat volutpat. Nullam nisl urna, malesuada eget feugiat vitae, tempus vel diam. Curabitur venenatis finibus egestas. Sed imperdiet molestie fermentum. Nullam pulvinar ultrices justo, eu gravida lacus sodales ac. Donec efficitur porttitor nisi, sit amet aliquam libero vulputate consectetur. Sed malesuada diam at euismod aliquam. Vestibulum maximus eu purus vitae porttitor.&lt;/p&gt;
+
+&lt;p&gt;Etiam ut ipsum vitae neque malesuada accumsan. Nam sit amet turpis quis magna condimentum euismod at sed ante. Sed a metus ac tortor cursus mollis. Aenean vitae libero eu lorem egestas faucibus. Fusce eget velit sollicitudin, efficitur erat sit amet, auctor massa. Donec non est dolor. Phasellus efficitur fringilla euismod. Aliquam finibus sapien non volutpat venenatis. Maecenas id urna sit amet magna feugiat sagittis vel et ligula. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas molestie hendrerit dolor, imperdiet posuere est. Etiam molestie dictum tincidunt.&lt;/p&gt;
+
+&lt;p&gt;Cras tincidunt lorem eu nisl tempor elementum. Vivamus tempor mi eu ligula eleifend, ut posuere metus imperdiet. Nam tristique commodo commodo. Proin vitae auctor ante. Mauris ullamcorper vitae urna in lacinia. Praesent euismod scelerisque felis, nec eleifend nulla vulputate non. Mauris nec rutrum diam. Morbi vitae magna sollicitudin, pellentesque diam vitae, faucibus turpis. Sed pellentesque eros quis condimentum cursus. Ut id viverra dui. Integer convallis nulla vel ipsum pretium, eget imperdiet ligula tincidunt.&lt;/p&gt;
+
+&lt;p&gt;Sed lacus enim, pretium et sapien vel, auctor euismod ex. Nulla vestibulum nulla ut nisi tincidunt condimentum. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed lobortis id mauris dignissim vehicula. Vivamus sed ex ipsum. Vivamus suscipit neque quis ultrices posuere. Sed dignissim sapien non sapien venenatis, at lacinia felis efficitur.&lt;/p&gt;
+
+&lt;p&gt;Nunc viverra nulla eget lacus imperdiet, et ullamcorper augue viverra. Nunc maximus consectetur malesuada. Nulla eget volutpat turpis. Nulla nec cursus purus, at consectetur sem. Sed pretium ipsum eu risus bibendum lacinia. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec laoreet nunc et lacus consequat, ut malesuada tortor bibendum. Maecenas vitae erat consectetur, lacinia libero nec, placerat leo. Suspendisse rutrum nisl nec urna tempus ultricies. Cras pharetra tortor quis lorem ultrices pharetra. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Pellentesque consectetur nunc malesuada, accumsan leo vel, cursus massa. In sodales libero nec ligula maximus ullamcorper. Maecenas porttitor condimentum dignissim.&lt;/p&gt;
+
+&lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse a risus nisi. Maecenas ut metus gravida, tincidunt arcu nec, ultrices dui. Vivamus at pretium purus, in feugiat odio. Phasellus facilisis mi id condimentum congue. Aenean sollicitudin risus a accumsan facilisis. Sed ac fringilla felis. Morbi malesuada vehicula sapien.&lt;/p&gt;
+&lt;/div&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsfastscrollingrtlscrollbarsoverflowhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/scrolling/rtl-scrollbars-overflow.html (0 => 198069)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/rtl-scrollbars-overflow.html                                (rev 0)
+++ trunk/LayoutTests/fast/scrolling/rtl-scrollbars-overflow.html        2016-03-12 21:18:25 UTC (rev 198069)
</span><span class="lines">@@ -0,0 +1,29 @@
</span><ins>+&lt;!DOCTYPE html&gt;&lt;!-- webkit-test-runner [ rtlScrollbars=true ] --&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;div id=&quot;element&quot; style=&quot;overflow: scroll; width: 700px; height: 500px;&quot;&gt;
+&lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus ultrices dapibus nunc, id porttitor quam mollis id. Morbi tincidunt mi neque, eget convallis ante convallis at. Donec gravida leo lacus, sit amet cursus ex vehicula eget. Vivamus vitae elit vel felis luctus posuere at in arcu. Ut eu bibendum lectus. Aliquam erat volutpat. Nullam nisl urna, malesuada eget feugiat vitae, tempus vel diam. Curabitur venenatis finibus egestas. Sed imperdiet molestie fermentum. Nullam pulvinar ultrices justo, eu gravida lacus sodales ac. Donec efficitur porttitor nisi, sit amet aliquam libero vulputate consectetur. Sed malesuada diam at euismod aliquam. Vestibulum maximus eu purus vitae porttitor.&lt;/p&gt;
+
+&lt;p&gt;Etiam ut ipsum vitae neque malesuada accumsan. Nam sit amet turpis quis magna condimentum euismod at sed ante. Sed a metus ac tortor cursus mollis. Aenean vitae libero eu lorem egestas faucibus. Fusce eget velit sollicitudin, efficitur erat sit amet, auctor massa. Donec non est dolor. Phasellus efficitur fringilla euismod. Aliquam finibus sapien non volutpat venenatis. Maecenas id urna sit amet magna feugiat sagittis vel et ligula. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas molestie hendrerit dolor, imperdiet posuere est. Etiam molestie dictum tincidunt.&lt;/p&gt;
+
+&lt;p&gt;Cras tincidunt lorem eu nisl tempor elementum. Vivamus tempor mi eu ligula eleifend, ut posuere metus imperdiet. Nam tristique commodo commodo. Proin vitae auctor ante. Mauris ullamcorper vitae urna in lacinia. Praesent euismod scelerisque felis, nec eleifend nulla vulputate non. Mauris nec rutrum diam. Morbi vitae magna sollicitudin, pellentesque diam vitae, faucibus turpis. Sed pellentesque eros quis condimentum cursus. Ut id viverra dui. Integer convallis nulla vel ipsum pretium, eget imperdiet ligula tincidunt.&lt;/p&gt;
+
+&lt;p&gt;Sed lacus enim, pretium et sapien vel, auctor euismod ex. Nulla vestibulum nulla ut nisi tincidunt condimentum. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed lobortis id mauris dignissim vehicula. Vivamus sed ex ipsum. Vivamus suscipit neque quis ultrices posuere. Sed dignissim sapien non sapien venenatis, at lacinia felis efficitur.&lt;/p&gt;
+
+&lt;p&gt;Nunc viverra nulla eget lacus imperdiet, et ullamcorper augue viverra. Nunc maximus consectetur malesuada. Nulla eget volutpat turpis. Nulla nec cursus purus, at consectetur sem. Sed pretium ipsum eu risus bibendum lacinia. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec laoreet nunc et lacus consequat, ut malesuada tortor bibendum. Maecenas vitae erat consectetur, lacinia libero nec, placerat leo. Suspendisse rutrum nisl nec urna tempus ultricies. Cras pharetra tortor quis lorem ultrices pharetra. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Pellentesque consectetur nunc malesuada, accumsan leo vel, cursus massa. In sodales libero nec ligula maximus ullamcorper. Maecenas porttitor condimentum dignissim.&lt;/p&gt;
+
+&lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse a risus nisi. Maecenas ut metus gravida, tincidunt arcu nec, ultrices dui. Vivamus at pretium purus, in feugiat odio. Phasellus facilisis mi id condimentum congue. Aenean sollicitudin risus a accumsan facilisis. Sed ac fringilla felis. Morbi malesuada vehicula sapien.&lt;/p&gt;
+&lt;/div&gt;
+&lt;script&gt;
+if (window.eventSender) {
+        var element = document.getElementById(&quot;element&quot;);
+    eventSender.mouseMoveTo(11, 20);
+    eventSender.mouseDown();
+    eventSender.mouseMoveTo(11, element.clientHeight - 20);
+    eventSender.mouseUp();
+}
+&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsplatformeflTestExpectations"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/efl/TestExpectations (198068 => 198069)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/efl/TestExpectations        2016-03-12 20:59:37 UTC (rev 198068)
+++ trunk/LayoutTests/platform/efl/TestExpectations        2016-03-12 21:18:25 UTC (rev 198069)
</span><span class="lines">@@ -2961,3 +2961,8 @@
</span><span class="cx"> # RTL Scrollbars are only implemented on OS X
</span><span class="cx"> fast/scrolling/rtl-scrollbars.html [ ImageOnlyFailure ]
</span><span class="cx"> fast/scrolling/rtl-scrollbars-simple.html [ ImageOnlyFailure ]
</span><ins>+fast/scrolling/rtl-scrollbars-overflow-contents.html [ ImageOnlyFailure ]
+fast/scrolling/rtl-scrollbars-overflow-dir-rtl.html [ ImageOnlyFailure ]
+fast/scrolling/rtl-scrollbars-overflow-padding.html [ ImageOnlyFailure ]
+fast/scrolling/rtl-scrollbars-overflow-simple.html [ ImageOnlyFailure ]
+fast/scrolling/rtl-scrollbars-overflow.html [ ImageOnlyFailure ]
</ins></span></pre></div>
<a id="trunkLayoutTestsplatformgtkTestExpectations"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/gtk/TestExpectations (198068 => 198069)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/gtk/TestExpectations        2016-03-12 20:59:37 UTC (rev 198068)
+++ trunk/LayoutTests/platform/gtk/TestExpectations        2016-03-12 21:18:25 UTC (rev 198069)
</span><span class="lines">@@ -2707,3 +2707,8 @@
</span><span class="cx"> # RTL Scrollbars are only implemented on OS X
</span><span class="cx"> fast/scrolling/rtl-scrollbars.html [ ImageOnlyFailure ]
</span><span class="cx"> fast/scrolling/rtl-scrollbars-simple.html [ ImageOnlyFailure ]
</span><ins>+fast/scrolling/rtl-scrollbars-overflow-contents.html [ ImageOnlyFailure ]
+fast/scrolling/rtl-scrollbars-overflow-dir-rtl.html [ ImageOnlyFailure ]
+fast/scrolling/rtl-scrollbars-overflow-padding.html [ ImageOnlyFailure ]
+fast/scrolling/rtl-scrollbars-overflow-simple.html [ ImageOnlyFailure ]
+fast/scrolling/rtl-scrollbars-overflow.html [ ImageOnlyFailure ]
</ins></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatorTestExpectations"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/TestExpectations (198068 => 198069)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/TestExpectations        2016-03-12 20:59:37 UTC (rev 198068)
+++ trunk/LayoutTests/platform/ios-simulator/TestExpectations        2016-03-12 21:18:25 UTC (rev 198069)
</span><span class="lines">@@ -2993,6 +2993,11 @@
</span><span class="cx"> # RTL Scrollbars are only implemented on OS X.
</span><span class="cx"> fast/scrolling/rtl-scrollbars.html [ ImageOnlyFailure ]
</span><span class="cx"> fast/scrolling/rtl-scrollbars-simple.html [ ImageOnlyFailure ]
</span><ins>+fast/scrolling/rtl-scrollbars-overflow-contents.html [ ImageOnlyFailure ]
+fast/scrolling/rtl-scrollbars-overflow-dir-rtl.html [ ImageOnlyFailure ]
+fast/scrolling/rtl-scrollbars-overflow-padding.html [ ImageOnlyFailure ]
+fast/scrolling/rtl-scrollbars-overflow-simple.html [ ImageOnlyFailure ]
+fast/scrolling/rtl-scrollbars-overflow.html [ ImageOnlyFailure ]
</ins><span class="cx"> 
</span><span class="cx"> webkit.org/b/155372 [ Debug ] css3/masking/mask-luminance-svg.html [ Pass Crash ]
</span><span class="cx"> webkit.org/b/155372 [ Debug ] css3/masking/mask-svg-script-none-to-png.html [ Pass Crash]
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacTestExpectations"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac/TestExpectations (198068 => 198069)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/TestExpectations        2016-03-12 20:59:37 UTC (rev 198068)
+++ trunk/LayoutTests/platform/mac/TestExpectations        2016-03-12 21:18:25 UTC (rev 198069)
</span><span class="lines">@@ -1339,3 +1339,8 @@
</span><span class="cx"> # RTL Scrollbars are only implemented on certain OSes.
</span><span class="cx"> [ Yosemite ElCapitan ] fast/scrolling/rtl-scrollbars.html [ ImageOnlyFailure ]
</span><span class="cx"> [ Yosemite ElCapitan ] fast/scrolling/rtl-scrollbars-simple.html [ ImageOnlyFailure ]
</span><ins>+[ Yosemite ElCapitan ] fast/scrolling/rtl-scrollbars-overflow-contents.html [ ImageOnlyFailure ]
+[ Yosemite ElCapitan ] fast/scrolling/rtl-scrollbars-overflow-dir-rtl.html [ ImageOnlyFailure ]
+[ Yosemite ElCapitan ] fast/scrolling/rtl-scrollbars-overflow-padding.html [ ImageOnlyFailure ]
+[ Yosemite ElCapitan ] fast/scrolling/rtl-scrollbars-overflow-simple.html [ ImageOnlyFailure ]
+[ Yosemite ElCapitan ] fast/scrolling/rtl-scrollbars-overflow.html [ ImageOnlyFailure ]
</ins></span></pre></div>
<a id="trunkLayoutTestsplatformmacwk1TestExpectations"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac-wk1/TestExpectations (198068 => 198069)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac-wk1/TestExpectations        2016-03-12 20:59:37 UTC (rev 198068)
+++ trunk/LayoutTests/platform/mac-wk1/TestExpectations        2016-03-12 21:18:25 UTC (rev 198069)
</span><span class="lines">@@ -201,3 +201,8 @@
</span><span class="cx"> # RTL Scrollbars are only implemented in WK2
</span><span class="cx"> fast/scrolling/rtl-scrollbars.html [ ImageOnlyFailure ]
</span><span class="cx"> fast/scrolling/rtl-scrollbars-simple.html [ ImageOnlyFailure ]
</span><ins>+fast/scrolling/rtl-scrollbars-overflow-contents.html [ ImageOnlyFailure ]
+fast/scrolling/rtl-scrollbars-overflow-dir-rtl.html [ ImageOnlyFailure ]
+fast/scrolling/rtl-scrollbars-overflow-padding.html [ ImageOnlyFailure ]
+fast/scrolling/rtl-scrollbars-overflow-simple.html [ ImageOnlyFailure ]
+fast/scrolling/rtl-scrollbars-overflow.html [ ImageOnlyFailure ]
</ins></span></pre></div>
<a id="trunkLayoutTestsplatformwinTestExpectations"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/win/TestExpectations (198068 => 198069)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/win/TestExpectations        2016-03-12 20:59:37 UTC (rev 198068)
+++ trunk/LayoutTests/platform/win/TestExpectations        2016-03-12 21:18:25 UTC (rev 198069)
</span><span class="lines">@@ -3364,3 +3364,8 @@
</span><span class="cx"> # RTL Scrollbars are only implemented on OS X
</span><span class="cx"> fast/scrolling/rtl-scrollbars.html [ ImageOnlyFailure ]
</span><span class="cx"> fast/scrolling/rtl-scrollbars-simple.html [ ImageOnlyFailure ]
</span><ins>+fast/scrolling/rtl-scrollbars-overflow-contents.html [ ImageOnlyFailure ]
+fast/scrolling/rtl-scrollbars-overflow-dir-rtl.html [ ImageOnlyFailure ]
+fast/scrolling/rtl-scrollbars-overflow-padding.html [ ImageOnlyFailure ]
+fast/scrolling/rtl-scrollbars-overflow-simple.html [ ImageOnlyFailure ]
+fast/scrolling/rtl-scrollbars-overflow.html [ ImageOnlyFailure ]
</ins></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (198068 => 198069)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-03-12 20:59:37 UTC (rev 198068)
+++ trunk/Source/WebCore/ChangeLog        2016-03-12 21:18:25 UTC (rev 198069)
</span><span class="lines">@@ -1,3 +1,37 @@
</span><ins>+2016-03-12  Myles C. Maxfield  &lt;mmaxfield@apple.com&gt;
+
+        [OS X] Scrollbars of overflow:scroll divs should appear on the left on RTL systems
+        https://bugs.webkit.org/show_bug.cgi?id=155385
+
+        Reviewed by Simon Fraser.
+
+        There is already some existing setup for RTL scrollbars. This patch hooks up this
+        existing support to the OS X triggering mechanism introduced in r197956. It also
+        fixes up the existing support to function even when the direction of the
+        RTL-scrollbar div is LTR (this means the contents of the div must be pushed
+        over by the width of the scrollbar).
+
+        Tests: fast/scrolling/rtl-scrollbars-overflow-contents.html
+               fast/scrolling/rtl-scrollbars-overflow-dir-rtl.html
+               fast/scrolling/rtl-scrollbars-overflow-padding.html
+               fast/scrolling/rtl-scrollbars-overflow-simple.html
+               fast/scrolling/rtl-scrollbars-overflow.html
+
+        * rendering/RenderBlock.cpp:
+        (WebCore::RenderBlock::addOverflowFromPositionedObjects):
+        (WebCore::RenderBlock::logicalLeftOffsetForContent):
+        (WebCore::RenderBlock::logicalRightOffsetForContent):
+        * rendering/RenderBlockFlow.cpp:
+        (WebCore::RenderBlockFlow::determineLogicalLeftPositionForChild):
+        * rendering/RenderBox.cpp:
+        (WebCore::RenderBox::overflowClipRect):
+        (WebCore::RenderBox::layoutOverflowRectForPropagation):
+        * rendering/RenderLayer.cpp:
+        (WebCore::RenderLayer::computeScrollDimensions):
+        * rendering/style/RenderStyle.cpp:
+        (WebCore::RenderStyle::shouldPlaceBlockDirectionScrollbarOnLogicalLeft):
+        * rendering/style/RenderStyle.h:
+
</ins><span class="cx"> 2016-03-12  Zalan Bujtas  &lt;zalan@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [Forms: focus] focus rings around text fields do not follow contour (border-radius)
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderBlockcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderBlock.cpp (198068 => 198069)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderBlock.cpp        2016-03-12 20:59:37 UTC (rev 198068)
+++ trunk/Source/WebCore/rendering/RenderBlock.cpp        2016-03-12 21:18:25 UTC (rev 198069)
</span><span class="lines">@@ -1066,8 +1066,8 @@
</span><span class="cx">         // Fixed positioned elements don't contribute to layout overflow, since they don't scroll with the content.
</span><span class="cx">         if (positionedObject-&gt;style().position() != FixedPosition) {
</span><span class="cx">             LayoutUnit x = positionedObject-&gt;x();
</span><del>-            if (style().shouldPlaceBlockDirectionScrollbarOnLogicalLeft())
-                x -= verticalScrollbarWidth();
</del><ins>+            if (style().shouldPlaceBlockDirectionScrollbarOnLeft())
+                x += (style().isLeftToRightDirection() ? 1 : -1) * verticalScrollbarWidth();
</ins><span class="cx">             addOverflowFromChild(positionedObject, LayoutSize(x, positionedObject-&gt;y()));
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="lines">@@ -2285,6 +2285,8 @@
</span><span class="cx"> LayoutUnit RenderBlock::logicalLeftOffsetForContent(RenderRegion* region) const
</span><span class="cx"> {
</span><span class="cx">     LayoutUnit logicalLeftOffset = style().isHorizontalWritingMode() ? borderLeft() + paddingLeft() : borderTop() + paddingTop();
</span><ins>+    if (style().shouldPlaceBlockDirectionScrollbarOnLeft())
+        logicalLeftOffset += verticalScrollbarWidth();
</ins><span class="cx">     if (!region)
</span><span class="cx">         return logicalLeftOffset;
</span><span class="cx">     LayoutRect boxRect = borderBoxRectInRegion(region);
</span><span class="lines">@@ -2294,6 +2296,8 @@
</span><span class="cx"> LayoutUnit RenderBlock::logicalRightOffsetForContent(RenderRegion* region) const
</span><span class="cx"> {
</span><span class="cx">     LayoutUnit logicalRightOffset = style().isHorizontalWritingMode() ? borderLeft() + paddingLeft() : borderTop() + paddingTop();
</span><ins>+    if (style().shouldPlaceBlockDirectionScrollbarOnLeft())
+        logicalRightOffset += verticalScrollbarWidth();
</ins><span class="cx">     logicalRightOffset += availableLogicalWidth();
</span><span class="cx">     if (!region)
</span><span class="cx">         return logicalRightOffset;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderBlockFlowcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderBlockFlow.cpp (198068 => 198069)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderBlockFlow.cpp        2016-03-12 20:59:37 UTC (rev 198068)
+++ trunk/Source/WebCore/rendering/RenderBlockFlow.cpp        2016-03-12 21:18:25 UTC (rev 198069)
</span><span class="lines">@@ -828,8 +828,8 @@
</span><span class="cx"> void RenderBlockFlow::determineLogicalLeftPositionForChild(RenderBox&amp; child, ApplyLayoutDeltaMode applyDelta)
</span><span class="cx"> {
</span><span class="cx">     LayoutUnit startPosition = borderStart() + paddingStart();
</span><del>-    if (style().shouldPlaceBlockDirectionScrollbarOnLogicalLeft())
-        startPosition -= verticalScrollbarWidth();
</del><ins>+    if (style().shouldPlaceBlockDirectionScrollbarOnLeft())
+        startPosition += (style().isLeftToRightDirection() ? 1 : -1) * verticalScrollbarWidth();
</ins><span class="cx">     LayoutUnit totalAvailableLogicalWidth = borderAndPaddingLogicalWidth() + availableLogicalWidth();
</span><span class="cx"> 
</span><span class="cx">     // Add in our start margin.
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderBoxcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderBox.cpp (198068 => 198069)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderBox.cpp        2016-03-12 20:59:37 UTC (rev 198068)
+++ trunk/Source/WebCore/rendering/RenderBox.cpp        2016-03-12 21:18:25 UTC (rev 198069)
</span><span class="lines">@@ -1821,11 +1821,11 @@
</span><span class="cx">     clipRect.setSize(clipRect.size() - LayoutSize(borderLeft() + borderRight(), borderTop() + borderBottom()));
</span><span class="cx"> 
</span><span class="cx">     // Subtract out scrollbars if we have them.
</span><del>-     if (layer()) {
-        if (style().shouldPlaceBlockDirectionScrollbarOnLogicalLeft())
</del><ins>+    if (layer()) {
+        if (style().shouldPlaceBlockDirectionScrollbarOnLeft())
</ins><span class="cx">             clipRect.move(layer()-&gt;verticalScrollbarWidth(relevancy), 0);
</span><span class="cx">         clipRect.contract(layer()-&gt;verticalScrollbarWidth(relevancy), layer()-&gt;horizontalScrollbarHeight(relevancy));
</span><del>-     }
</del><ins>+    }
</ins><span class="cx"> 
</span><span class="cx">     return clipRect;
</span><span class="cx"> }
</span><span class="lines">@@ -4892,6 +4892,8 @@
</span><span class="cx">     flipForWritingMode(rect);
</span><span class="cx">     // Subtract space occupied by scrollbars. They are at their physical edge in this coordinate
</span><span class="cx">     // system, so order is important here: first flip, then subtract scrollbars.
</span><ins>+    if (style().shouldPlaceBlockDirectionScrollbarOnLeft() &amp;&amp; style().isLeftToRightDirection())
+        rect.move(verticalScrollbarWidth(), 0);
</ins><span class="cx">     rect.contract(verticalScrollbarWidth(), horizontalScrollbarHeight());
</span><span class="cx">     return rect;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderLayercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderLayer.cpp (198068 => 198069)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderLayer.cpp        2016-03-12 20:59:37 UTC (rev 198068)
+++ trunk/Source/WebCore/rendering/RenderLayer.cpp        2016-03-12 21:18:25 UTC (rev 198069)
</span><span class="lines">@@ -2688,7 +2688,7 @@
</span><span class="cx">     element-&gt;setMinimumSizeForResizing(minimumSize);
</span><span class="cx">     
</span><span class="cx">     LayoutSize adjustedOldOffset = LayoutSize(oldOffset.width() / zoomFactor, oldOffset.height() / zoomFactor);
</span><del>-    if (renderer-&gt;style().shouldPlaceBlockDirectionScrollbarOnLogicalLeft()) {
</del><ins>+    if (renderer-&gt;style().shouldPlaceBlockDirectionScrollbarOnLeft()) {
</ins><span class="cx">         newOffset.setWidth(-newOffset.width());
</span><span class="cx">         adjustedOldOffset.setWidth(-adjustedOldOffset.width());
</span><span class="cx">     }
</span><span class="lines">@@ -2792,7 +2792,7 @@
</span><span class="cx"> 
</span><span class="cx"> static int cornerStart(const RenderLayer* layer, int minX, int maxX, int thickness)
</span><span class="cx"> {
</span><del>-    if (layer-&gt;renderer().style().shouldPlaceBlockDirectionScrollbarOnLogicalLeft())
</del><ins>+    if (layer-&gt;renderer().style().shouldPlaceBlockDirectionScrollbarOnLeft())
</ins><span class="cx">         return minX + layer-&gt;renderer().style().borderLeftWidth();
</span><span class="cx">     return maxX - thickness - layer-&gt;renderer().style().borderRightWidth();
</span><span class="cx"> }
</span><span class="lines">@@ -2984,7 +2984,7 @@
</span><span class="cx"> LayoutUnit RenderLayer::verticalScrollbarStart(int minX, int maxX) const
</span><span class="cx"> {
</span><span class="cx">     const RenderBox* box = renderBox();
</span><del>-    if (renderer().style().shouldPlaceBlockDirectionScrollbarOnLogicalLeft())
</del><ins>+    if (renderer().style().shouldPlaceBlockDirectionScrollbarOnLeft())
</ins><span class="cx">         return minX + box-&gt;borderLeft();
</span><span class="cx">     return maxX - box-&gt;borderRight() - m_vBar-&gt;width();
</span><span class="cx"> }
</span><span class="lines">@@ -2993,7 +2993,7 @@
</span><span class="cx"> {
</span><span class="cx">     const RenderBox* box = renderBox();
</span><span class="cx">     int x = minX + box-&gt;borderLeft();
</span><del>-    if (renderer().style().shouldPlaceBlockDirectionScrollbarOnLogicalLeft())
</del><ins>+    if (renderer().style().shouldPlaceBlockDirectionScrollbarOnLeft())
</ins><span class="cx">         x += m_vBar ? m_vBar-&gt;width() : roundToInt(resizerCornerRect(this, box-&gt;borderBoxRect()).width());
</span><span class="cx">     return x;
</span><span class="cx"> }
</span><span class="lines">@@ -3258,7 +3258,7 @@
</span><span class="cx">     // Currently the resize corner is either the bottom right corner or the bottom left corner.
</span><span class="cx">     // FIXME: This assumes the location is 0, 0. Is this guaranteed to always be the case?
</span><span class="cx">     IntSize elementSize = size();
</span><del>-    if (renderer().style().shouldPlaceBlockDirectionScrollbarOnLogicalLeft())
</del><ins>+    if (renderer().style().shouldPlaceBlockDirectionScrollbarOnLeft())
</ins><span class="cx">         elementSize.setWidth(0);
</span><span class="cx">     IntPoint resizerPoint = IntPoint(elementSize);
</span><span class="cx">     IntPoint localPoint = roundedIntPoint(absoluteToContents(absolutePoint));
</span><span class="lines">@@ -3364,6 +3364,8 @@
</span><span class="cx">     m_scrollSize.setHeight(overflowBottom() - overflowTop());
</span><span class="cx"> 
</span><span class="cx">     int scrollableLeftOverflow = overflowLeft() - box-&gt;borderLeft();
</span><ins>+    if (box-&gt;style().isLeftToRightDirection() &amp;&amp; box-&gt;style().shouldPlaceBlockDirectionScrollbarOnLeft() &amp;&amp; m_vBar)
+        scrollableLeftOverflow -= m_vBar-&gt;width();
</ins><span class="cx">     int scrollableTopOverflow = overflowTop() - box-&gt;borderTop();
</span><span class="cx">     setScrollOrigin(IntPoint(-scrollableLeftOverflow, -scrollableTopOverflow));
</span><span class="cx"> }
</span><span class="lines">@@ -3656,7 +3658,7 @@
</span><span class="cx">         cornerResizerSize = resizeCornerImage-&gt;size();
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if (renderer().style().shouldPlaceBlockDirectionScrollbarOnLogicalLeft()) {
</del><ins>+    if (renderer().style().shouldPlaceBlockDirectionScrollbarOnLeft()) {
</ins><span class="cx">         context.save();
</span><span class="cx">         context.translate(resizerCornerRect.x() + cornerResizerSize.width(), resizerCornerRect.y() + resizerCornerRect.height() - cornerResizerSize.height());
</span><span class="cx">         context.scale(FloatSize(-1.0, 1.0));
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleRenderStylecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/RenderStyle.cpp (198068 => 198069)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/RenderStyle.cpp        2016-03-12 20:59:37 UTC (rev 198068)
+++ trunk/Source/WebCore/rendering/style/RenderStyle.cpp        2016-03-12 21:18:25 UTC (rev 198069)
</span><span class="lines">@@ -2042,4 +2042,15 @@
</span><span class="cx">     return m_background-&gt;outline().offset();
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+bool RenderStyle::shouldPlaceBlockDirectionScrollbarOnLeft() const
+{
+#if PLATFORM(MAC)
+    return ScrollableArea::systemLanguageIsRTL();
+#elif USE(RTL_SCROLLBAR)
+    return !isLeftToRightDirection() &amp;&amp; isHorizontalWritingMode();
+#else
+    return false;
+#endif
+}
+
</ins><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleRenderStyleh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/RenderStyle.h (198068 => 198069)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/RenderStyle.h        2016-03-12 20:59:37 UTC (rev 198068)
+++ trunk/Source/WebCore/rendering/style/RenderStyle.h        2016-03-12 21:18:25 UTC (rev 198069)
</span><span class="lines">@@ -1185,13 +1185,9 @@
</span><span class="cx">     Isolation isolation() const { return IsolationAuto; }
</span><span class="cx">     bool hasIsolation() const { return false; }
</span><span class="cx"> #endif
</span><del>- 
-#if USE(RTL_SCROLLBAR)
-    bool shouldPlaceBlockDirectionScrollbarOnLogicalLeft() const { return !isLeftToRightDirection() &amp;&amp; isHorizontalWritingMode(); }
-#else
-    bool shouldPlaceBlockDirectionScrollbarOnLogicalLeft() const { return false; }
-#endif
</del><span class="cx"> 
</span><ins>+    bool shouldPlaceBlockDirectionScrollbarOnLeft() const;
+
</ins><span class="cx"> #if ENABLE(CSS_TRAILING_WORD)
</span><span class="cx">     TrailingWord trailingWord() const { return static_cast&lt;TrailingWord&gt;(rareInheritedData-&gt;trailingWord); }
</span><span class="cx"> #endif
</span></span></pre>
</div>
</div>

</body>
</html>