- Revision
- 146399
- Author
- [email protected]
- Date
- 2013-03-20 15:36:04 -0700 (Wed, 20 Mar 2013)
Log Message
Correct coordinated scrolling for RTL iframe and overflow:scroll
https://bugs.webkit.org/show_bug.cgi?id=112088
Patch by Tien-Ren Chen <[email protected]> on 2013-03-20
Reviewed by James Robinson.
Source/WebCore:
This patch adds appropriate offset in ScrollingCoordinatorChromium to
adjust impl-side scroll position to the range [0, maxPos - minPos].
This also corrects RenderLayer to return correct scroll position for RTL,
explained below:
There are 2 commonly used scroll offset coordinate systems in WebCore.
1. The scroll offset is the amount that needs to be translated when painting
child elements in a RenderBox. The value can be negative when there is
negative overflow (for RTL). The range will be within
[overflow_top_left_corner, overflow_bottom_right_corner - client_size].
This system is mainly used for painting and layer positioning.
2. The scroll offset will be always non-negative, and the range will be within
[0, content_size - client_size]. This system is mainly used for scrollbars.
scrollOrigin is defined to convert between the two systems. scrollOrigin is always
non-negative, and equivalent to -overflow_top_left_corner.
The first system is used for ScrollableArea::scrollPosition/minimumScrollPosition/
maximumScrollPosition function family. So is it implemented in ScrollView/Frameview.
RenderLayer errorneously implemented scrollPosition in the second system,
and worse, returned minimumScrollPosition/maximumScrollPosition were totally non-sense.
This patch corrects RenderLayer to use the first coordinate system.
Test: compositing/rtl/rtl-overflow-scrolling.html
ScrollingCoordinatorChromiumTest.rtlIframe
* page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
(WebCore::ScrollingCoordinatorChromium::scrollableAreaScrollLayerDidChange):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollPosition):
(WebCore::RenderLayer::minimumScrollPosition):
(WebCore::RenderLayer::maximumScrollPosition):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
Source/WebKit/chromium:
Added test to ensure RTL iframe has appropriate impl-side scroll position.
* tests/ScrollingCoordinatorChromiumTest.cpp:
(WebKit::TEST_F):
(WebKit):
* tests/data/rtl-iframe-inner.html: Added.
* tests/data/rtl-iframe.html: Added.
LayoutTests:
This patch corrects scrollOrigin compensation for composited overflow:scroll.
compositing/rtl/rtl-overflow-scrolling.html is added to verify RTL divs
can be correctly scrolled to the left under accelerated scrolling mode.
fast/css/sticky/inline-sticky-abspos-child.html is modified to avoid sub-pixel
issue with Ahem font.
* compositing/rtl/rtl-overflow-scrolling-expected.png: Added.
* compositing/rtl/rtl-overflow-scrolling-expected.txt: Added.
* compositing/rtl/rtl-overflow-scrolling.html: Added.
* fast/css/sticky/inline-sticky-abspos-child-expected.html:
* fast/css/sticky/inline-sticky-abspos-child.html:
* platform/chromium/TestExpectations:
* platform/mac/compositing/rtl/rtl-overflow-scrolling-expected.txt: Added.
Modified Paths
Added Paths
Diff
Modified: trunk/LayoutTests/ChangeLog (146398 => 146399)
--- trunk/LayoutTests/ChangeLog 2013-03-20 22:33:17 UTC (rev 146398)
+++ trunk/LayoutTests/ChangeLog 2013-03-20 22:36:04 UTC (rev 146399)
@@ -1,3 +1,26 @@
+2013-03-20 Tien-Ren Chen <[email protected]>
+
+ Correct coordinated scrolling for RTL iframe and overflow:scroll
+ https://bugs.webkit.org/show_bug.cgi?id=112088
+
+ Reviewed by James Robinson.
+
+ This patch corrects scrollOrigin compensation for composited overflow:scroll.
+
+ compositing/rtl/rtl-overflow-scrolling.html is added to verify RTL divs
+ can be correctly scrolled to the left under accelerated scrolling mode.
+
+ fast/css/sticky/inline-sticky-abspos-child.html is modified to avoid sub-pixel
+ issue with Ahem font.
+
+ * compositing/rtl/rtl-overflow-scrolling-expected.png: Added.
+ * compositing/rtl/rtl-overflow-scrolling-expected.txt: Added.
+ * compositing/rtl/rtl-overflow-scrolling.html: Added.
+ * fast/css/sticky/inline-sticky-abspos-child-expected.html:
+ * fast/css/sticky/inline-sticky-abspos-child.html:
+ * platform/chromium/TestExpectations:
+ * platform/mac/compositing/rtl/rtl-overflow-scrolling-expected.txt: Added.
+
2013-03-20 Ryosuke Niwa <[email protected]>
Mac rebaseline after r140202.
Added: trunk/LayoutTests/compositing/rtl/rtl-overflow-scrolling-expected.png
(Binary files differ)
Property changes on: trunk/LayoutTests/compositing/rtl/rtl-overflow-scrolling-expected.png
___________________________________________________________________
Added: svn:mime-type
Added: trunk/LayoutTests/compositing/rtl/rtl-overflow-scrolling-expected.txt (0 => 146399)
--- trunk/LayoutTests/compositing/rtl/rtl-overflow-scrolling-expected.txt (rev 0)
+++ trunk/LayoutTests/compositing/rtl/rtl-overflow-scrolling-expected.txt 2013-03-20 22:36:04 UTC (rev 146399)
@@ -0,0 +1,8 @@
+layer at (0,0) size 800x600
+ RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+ RenderBlock {HTML} at (0,0) size 800x600
+ RenderBody {BODY} at (8,8) size 784x584
+layer at (8,8) size 300x300 clip at (23,8) size 285x285 scrollWidth 985 scrollHeight 1000
+ RenderBlock {DIV} at (0,0) size 300x300
+ RenderBlock {DIV} at (-700,0) size 1000x1000 [bgcolor=#008000]
Added: trunk/LayoutTests/compositing/rtl/rtl-overflow-scrolling.html (0 => 146399)
--- trunk/LayoutTests/compositing/rtl/rtl-overflow-scrolling.html (rev 0)
+++ trunk/LayoutTests/compositing/rtl/rtl-overflow-scrolling.html 2013-03-20 22:36:04 UTC (rev 146399)
@@ -0,0 +1,31 @@
+<html>
+<head>
+<script type="text/_javascript_">
+ if (window.internals)
+ window.internals.settings.setAcceleratedCompositingForOverflowScrollEnabled(true);
+
+ function runTest() {
+ document.getElementById("container").scrollLeft = 0;
+ }
+</script>
+<style>
+#container {
+ direction: rtl;
+ overflow: scroll;
+ width: 300px;
+ height: 300px;
+}
+#overflow {
+ width: 1000px;
+ height: 1000px;
+ background-color: green;
+}
+</style>
+</head>
+<body _onload_="runTest();">
+<div id="container">
+<div id="overflow">
+</div>
+</div>
+</body>
+</html>
Modified: trunk/LayoutTests/fast/css/sticky/inline-sticky-abspos-child-expected.html (146398 => 146399)
--- trunk/LayoutTests/fast/css/sticky/inline-sticky-abspos-child-expected.html 2013-03-20 22:33:17 UTC (rev 146398)
+++ trunk/LayoutTests/fast/css/sticky/inline-sticky-abspos-child-expected.html 2013-03-20 22:36:04 UTC (rev 146399)
@@ -8,7 +8,7 @@
height: 2000px;
overflow: hidden; /* hide scrollbars */
font-family: 'Ahem';
- font-size: 24px;
+ font-size: 25px;
line-height: 2;
}
@@ -59,7 +59,7 @@
<div class="group" style="top: -100px">
<div class="indicator box"></div>
<div class="container">
- XXX <span class="sticky" style="top: 172px;">XXXX</br>
+ XXX <span class="sticky" style="top: 163px;">XXXX</br>
<div class="child box"></div>
XXXX</br>XXXX</br>XXXX</br>XXXX</span> XXX
</div>
Modified: trunk/LayoutTests/fast/css/sticky/inline-sticky-abspos-child.html (146398 => 146399)
--- trunk/LayoutTests/fast/css/sticky/inline-sticky-abspos-child.html 2013-03-20 22:33:17 UTC (rev 146398)
+++ trunk/LayoutTests/fast/css/sticky/inline-sticky-abspos-child.html 2013-03-20 22:36:04 UTC (rev 146399)
@@ -8,7 +8,7 @@
height: 2000px;
overflow: hidden; /* hide scrollbars */
font-family: 'Ahem';
- font-size: 24px;
+ font-size: 25px;
line-height: 2;
}
Modified: trunk/LayoutTests/platform/chromium/TestExpectations (146398 => 146399)
--- trunk/LayoutTests/platform/chromium/TestExpectations 2013-03-20 22:33:17 UTC (rev 146398)
+++ trunk/LayoutTests/platform/chromium/TestExpectations 2013-03-20 22:36:04 UTC (rev 146399)
@@ -4331,15 +4331,15 @@
webkit.org/b/110851 platform/chromium/virtual/softwarecompositing/overflow/overflow-scaled-descendant-overlapping.html [ ImageOnlyFailure ]
webkit.org/b/110851 platform/chromium/virtual/softwarecompositing/repaint/page-scale-repaint.html [ ImageOnlyFailure ]
-# Impl-side scrolling is broken for RTL. Causing impl-side scrollbar artifacts.
-crbug.com/175926 [ Linux ] compositing/rtl/rtl-iframe-absolute-overflow-scrolled.html [ Failure ImageOnlyFailure ]
-crbug.com/175926 [ Linux Win ] compositing/rtl/rtl-iframe-absolute-overflow.html [ Pass Failure ImageOnlyFailure ]
-crbug.com/175926 [ Linux Win ] compositing/rtl/rtl-iframe-fixed-overflow-scrolled.html [ Failure ImageOnlyFailure ]
-crbug.com/175926 [ Linux Win ] compositing/rtl/rtl-iframe-fixed-overflow.html [ Failure ImageOnlyFailure ]
-crbug.com/175926 [ Linux ] platform/chromium/virtual/softwarecompositing/rtl/rtl-iframe-absolute-overflow-scrolled.html [ Failure ImageOnlyFailure ]
-crbug.com/175926 [ Linux ] platform/chromium/virtual/softwarecompositing/rtl/rtl-iframe-absolute-overflow.html [ Failure ImageOnlyFailure ]
-crbug.com/175926 [ Linux Win ] platform/chromium/virtual/softwarecompositing/rtl/rtl-iframe-fixed-overflow-scrolled.html [ Failure ImageOnlyFailure ]
-crbug.com/175926 [ Linux ] platform/chromium/virtual/softwarecompositing/rtl/rtl-iframe-fixed-overflow.html [ Failure ImageOnlyFailure ]
+# Pixel tests for RTL iframe scrollbar is erroneous. Cannot observe on actual browser.
+crbug.com/192172 [ Linux ] compositing/rtl/rtl-iframe-absolute-overflow-scrolled.html [ Failure ImageOnlyFailure ]
+crbug.com/192172 [ Linux Win ] compositing/rtl/rtl-iframe-absolute-overflow.html [ Pass Failure ImageOnlyFailure ]
+crbug.com/192172 [ Linux Win ] compositing/rtl/rtl-iframe-fixed-overflow-scrolled.html [ Failure ImageOnlyFailure ]
+crbug.com/192172 [ Linux Win ] compositing/rtl/rtl-iframe-fixed-overflow.html [ Failure ImageOnlyFailure ]
+crbug.com/192172 [ Linux ] platform/chromium/virtual/softwarecompositing/rtl/rtl-iframe-absolute-overflow-scrolled.html [ Failure ImageOnlyFailure ]
+crbug.com/192172 [ Linux ] platform/chromium/virtual/softwarecompositing/rtl/rtl-iframe-absolute-overflow.html [ Failure ImageOnlyFailure ]
+crbug.com/192172 [ Linux Win ] platform/chromium/virtual/softwarecompositing/rtl/rtl-iframe-fixed-overflow-scrolled.html [ Failure ImageOnlyFailure ]
+crbug.com/192172 [ Linux ] platform/chromium/virtual/softwarecompositing/rtl/rtl-iframe-fixed-overflow.html [ Failure ImageOnlyFailure ]
# Need rebaseline
webkit.org/b/110654 [ Mac Win ] css2.1/20110323/replaced-elements-001.htm [ Failure ]
@@ -4355,7 +4355,7 @@
webkit.org/b/110540 [ Linux ] fast/text/international/thai-line-breaks.html [ ImageOnlyFailure Pass ]
# These tests flakily reorder the scrollbars in debug, causing text failures
-# Some platforms covered above under crbug.com/175926
+# Some platforms covered above under crbug.com/192172
webkit.org/b/111199 [ Debug Mac ] compositing/rtl/rtl-iframe-absolute-overflow.html [ Pass Failure ImageOnlyFailure ]
webkit.org/b/111199 [ Debug Win Mac ] compositing/rtl/rtl-iframe-absolute-overflow-scrolled.html [ Pass Failure ImageOnlyFailure ]
webkit.org/b/111199 [ Debug Win Mac ] platform/chromium/virtual/softwarecompositing/rtl/rtl-iframe-absolute-overflow.html [ Pass Failure ImageOnlyFailure ]
Added: trunk/LayoutTests/platform/mac/compositing/rtl/rtl-overflow-scrolling-expected.txt (0 => 146399)
--- trunk/LayoutTests/platform/mac/compositing/rtl/rtl-overflow-scrolling-expected.txt (rev 0)
+++ trunk/LayoutTests/platform/mac/compositing/rtl/rtl-overflow-scrolling-expected.txt 2013-03-20 22:36:04 UTC (rev 146399)
@@ -0,0 +1,8 @@
+layer at (0,0) size 800x600
+ RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+ RenderBlock {HTML} at (0,0) size 800x600
+ RenderBody {BODY} at (8,8) size 784x584
+layer at (8,8) size 300x300 clip at (8,8) size 285x285 scrollWidth 1000 scrollHeight 1000
+ RenderBlock {DIV} at (0,0) size 300x300
+ RenderBlock {DIV} at (-715,0) size 1000x1000 [bgcolor=#008000]
Modified: trunk/Source/WebCore/ChangeLog (146398 => 146399)
--- trunk/Source/WebCore/ChangeLog 2013-03-20 22:33:17 UTC (rev 146398)
+++ trunk/Source/WebCore/ChangeLog 2013-03-20 22:36:04 UTC (rev 146399)
@@ -1,3 +1,48 @@
+2013-03-20 Tien-Ren Chen <[email protected]>
+
+ Correct coordinated scrolling for RTL iframe and overflow:scroll
+ https://bugs.webkit.org/show_bug.cgi?id=112088
+
+ Reviewed by James Robinson.
+
+ This patch adds appropriate offset in ScrollingCoordinatorChromium to
+ adjust impl-side scroll position to the range [0, maxPos - minPos].
+
+ This also corrects RenderLayer to return correct scroll position for RTL,
+ explained below:
+
+ There are 2 commonly used scroll offset coordinate systems in WebCore.
+
+ 1. The scroll offset is the amount that needs to be translated when painting
+ child elements in a RenderBox. The value can be negative when there is
+ negative overflow (for RTL). The range will be within
+ [overflow_top_left_corner, overflow_bottom_right_corner - client_size].
+ This system is mainly used for painting and layer positioning.
+
+ 2. The scroll offset will be always non-negative, and the range will be within
+ [0, content_size - client_size]. This system is mainly used for scrollbars.
+
+ scrollOrigin is defined to convert between the two systems. scrollOrigin is always
+ non-negative, and equivalent to -overflow_top_left_corner.
+
+ The first system is used for ScrollableArea::scrollPosition/minimumScrollPosition/
+ maximumScrollPosition function family. So is it implemented in ScrollView/Frameview.
+ RenderLayer errorneously implemented scrollPosition in the second system,
+ and worse, returned minimumScrollPosition/maximumScrollPosition were totally non-sense.
+ This patch corrects RenderLayer to use the first coordinate system.
+
+ Test: compositing/rtl/rtl-overflow-scrolling.html
+ ScrollingCoordinatorChromiumTest.rtlIframe
+
+ * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
+ (WebCore::ScrollingCoordinatorChromium::scrollableAreaScrollLayerDidChange):
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::scrollPosition):
+ (WebCore::RenderLayer::minimumScrollPosition):
+ (WebCore::RenderLayer::maximumScrollPosition):
+ * rendering/RenderLayerBacking.cpp:
+ (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
+
2013-03-20 Jessie Berlin <[email protected]>
REGRESSION(r145592): AutodrainedPool.h. RunLoopTimer.h, SchedulePair.h are being copied into
Modified: trunk/Source/WebCore/page/scrolling/chromium/ScrollingCoordinatorChromium.cpp (146398 => 146399)
--- trunk/Source/WebCore/page/scrolling/chromium/ScrollingCoordinatorChromium.cpp 2013-03-20 22:33:17 UTC (rev 146398)
+++ trunk/Source/WebCore/page/scrolling/chromium/ScrollingCoordinatorChromium.cpp 2013-03-20 22:36:04 UTC (rev 146399)
@@ -248,7 +248,7 @@
WebLayer* webLayer = scrollingWebLayerForScrollableArea(scrollableArea);
if (webLayer) {
webLayer->setScrollable(true);
- webLayer->setScrollPosition(scrollableArea->scrollPosition());
+ webLayer->setScrollPosition(IntPoint(scrollableArea->scrollPosition() - scrollableArea->minimumScrollPosition()));
webLayer->setMaxScrollPosition(IntSize(scrollableArea->scrollSize(HorizontalScrollbar), scrollableArea->scrollSize(VerticalScrollbar)));
}
if (WebScrollbarLayer* scrollbarLayer = getWebScrollbarLayer(scrollableArea, HorizontalScrollbar))
Modified: trunk/Source/WebCore/rendering/RenderLayer.cpp (146398 => 146399)
--- trunk/Source/WebCore/rendering/RenderLayer.cpp 2013-03-20 22:33:17 UTC (rev 146398)
+++ trunk/Source/WebCore/rendering/RenderLayer.cpp 2013-03-20 22:36:04 UTC (rev 146399)
@@ -2527,18 +2527,18 @@
IntPoint RenderLayer::scrollPosition() const
{
- return scrollOrigin() + m_scrollOffset;
+ return IntPoint(m_scrollOffset);
}
IntPoint RenderLayer::minimumScrollPosition() const
{
- return scrollOrigin();
+ return -scrollOrigin();
}
IntPoint RenderLayer::maximumScrollPosition() const
{
// FIXME: m_scrollSize may not be up-to-date if m_scrollDimensionsDirty is true.
- return scrollOrigin() + roundedIntSize(m_scrollSize) - visibleContentRect(IncludeScrollbars).size();
+ return -scrollOrigin() + roundedIntSize(m_scrollSize) - visibleContentRect(IncludeScrollbars).size();
}
IntRect RenderLayer::visibleContentRect(VisibleContentRectIncludesScrollbars scrollbarInclusion) const
Modified: trunk/Source/WebCore/rendering/RenderLayerBacking.cpp (146398 => 146399)
--- trunk/Source/WebCore/rendering/RenderLayerBacking.cpp 2013-03-20 22:33:17 UTC (rev 146398)
+++ trunk/Source/WebCore/rendering/RenderLayerBacking.cpp 2013-03-20 22:36:04 UTC (rev 146399)
@@ -804,7 +804,7 @@
ASSERT(m_scrollingContentsLayer);
RenderBox* renderBox = toRenderBox(renderer());
IntRect paddingBox(renderBox->borderLeft(), renderBox->borderTop(), renderBox->width() - renderBox->borderLeft() - renderBox->borderRight(), renderBox->height() - renderBox->borderTop() - renderBox->borderBottom());
- IntSize scrollOffset = m_owningLayer->scrolledContentOffset();
+ IntSize scrollOffset = m_owningLayer->scrollOffset();
m_scrollingLayer->setPosition(FloatPoint(paddingBox.location() - localCompositingBounds.location()));
Modified: trunk/Source/WebKit/chromium/ChangeLog (146398 => 146399)
--- trunk/Source/WebKit/chromium/ChangeLog 2013-03-20 22:33:17 UTC (rev 146398)
+++ trunk/Source/WebKit/chromium/ChangeLog 2013-03-20 22:36:04 UTC (rev 146399)
@@ -1,3 +1,18 @@
+2013-03-20 Tien-Ren Chen <[email protected]>
+
+ Correct coordinated scrolling for RTL iframe and overflow:scroll
+ https://bugs.webkit.org/show_bug.cgi?id=112088
+
+ Reviewed by James Robinson.
+
+ Added test to ensure RTL iframe has appropriate impl-side scroll position.
+
+ * tests/ScrollingCoordinatorChromiumTest.cpp:
+ (WebKit::TEST_F):
+ (WebKit):
+ * tests/data/rtl-iframe-inner.html: Added.
+ * tests/data/rtl-iframe.html: Added.
+
2013-03-20 Yufeng Shen <[email protected]>
Remove PlatformEvent::GestureDoubleTap
Modified: trunk/Source/WebKit/chromium/tests/ScrollingCoordinatorChromiumTest.cpp (146398 => 146399)
--- trunk/Source/WebKit/chromium/tests/ScrollingCoordinatorChromiumTest.cpp 2013-03-20 22:33:17 UTC (rev 146398)
+++ trunk/Source/WebKit/chromium/tests/ScrollingCoordinatorChromiumTest.cpp 2013-03-20 22:36:04 UTC (rev 146399)
@@ -281,4 +281,42 @@
#endif
}
+TEST_F(ScrollingCoordinatorChromiumTest, rtlIframe)
+{
+ registerMockedHttpURLLoad("rtl-iframe.html");
+ registerMockedHttpURLLoad("rtl-iframe-inner.html");
+ navigateTo(m_baseURL + "rtl-iframe.html");
+
+ // Verify the properties of the accelerated scrolling element starting from the RenderObject
+ // all the way to the WebLayer.
+ Element* scrollableFrame = m_webViewImpl->mainFrameImpl()->frame()->document()->getElementById("scrollable");
+ ASSERT_TRUE(scrollableFrame);
+
+ RenderObject* renderer = scrollableFrame->renderer();
+ ASSERT_TRUE(renderer);
+ ASSERT_TRUE(renderer->isWidget());
+
+ RenderWidget* renderWidget = toRenderWidget(renderer);
+ ASSERT_TRUE(renderWidget);
+ ASSERT_TRUE(renderWidget->widget());
+ ASSERT_TRUE(renderWidget->widget()->isFrameView());
+
+ FrameView* innerFrameView = static_cast<FrameView*>(renderWidget->widget());
+ RenderView* innerRenderView = innerFrameView->renderView();
+ ASSERT_TRUE(innerRenderView);
+
+ RenderLayerCompositor* innerCompositor = innerRenderView->compositor();
+ ASSERT_TRUE(innerCompositor->inCompositingMode());
+ ASSERT_TRUE(innerCompositor->scrollLayer());
+
+ GraphicsLayerChromium* scrollLayer = static_cast<GraphicsLayerChromium*>(innerCompositor->scrollLayer());
+ ASSERT_EQ(innerFrameView, scrollLayer->scrollableArea());
+
+ WebLayer* webScrollLayer = static_cast<WebLayer*>(scrollLayer->platformLayer());
+ ASSERT_TRUE(webScrollLayer->scrollable());
+
+ ASSERT_EQ(973, webScrollLayer->scrollPosition().x);
+ ASSERT_EQ(973, webScrollLayer->maxScrollPosition().width);
+}
+
} // namespace
Added: trunk/Source/WebKit/chromium/tests/data/rtl-iframe-inner.html (0 => 146399)
--- trunk/Source/WebKit/chromium/tests/data/rtl-iframe-inner.html (rev 0)
+++ trunk/Source/WebKit/chromium/tests/data/rtl-iframe-inner.html 2013-03-20 22:36:04 UTC (rev 146399)
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<html>
+<body style="direction:rtl;width:1000px;height:1000px;">
+</body>
+</html>
Added: trunk/Source/WebKit/chromium/tests/data/rtl-iframe.html (0 => 146399)
--- trunk/Source/WebKit/chromium/tests/data/rtl-iframe.html (rev 0)
+++ trunk/Source/WebKit/chromium/tests/data/rtl-iframe.html 2013-03-20 22:36:04 UTC (rev 146399)
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+<head>
+<style>
+#scrollable {
+ width: 50px;
+ height: 50px;
+}
+</style>
+</head>
+<body>
+<iframe id="scrollable" src=""
+</body>
+</html>