Title: [146399] trunk
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>
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to