Title: [96278] trunk
Revision
96278
Author
simon.fra...@apple.com
Date
2011-09-28 17:45:20 -0700 (Wed, 28 Sep 2011)

Log Message

fast/dom/scroll-element-to-rect.html fails on WK1 Mac port
https://bugs.webkit.org/show_bug.cgi?id=68815

Source/WebCore:

Reviewed by Dan Bernstein.

FrameView::scrollElementToRect() was incorrectly using Element::boundsInWindowSpace(),
which is window-relative (not web view-relative), and has flipped coordinates
in WebKit1.

Change to use Node::getRect() which is what the author intended.

* dom/Element.h:
* page/FrameView.cpp:
(WebCore::FrameView::scrollElementToRect):

LayoutTests:

Reviewed by Dan Bernstein.

Fix these tests to not throw errors when window.internals is not available.

* fast/dom/scroll-element-to-rect-centered.html:
* fast/dom/scroll-element-to-rect.html:

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (96277 => 96278)


--- trunk/LayoutTests/ChangeLog	2011-09-29 00:32:26 UTC (rev 96277)
+++ trunk/LayoutTests/ChangeLog	2011-09-29 00:45:20 UTC (rev 96278)
@@ -1,3 +1,15 @@
+2011-09-28  Simon Fraser  <simon.fra...@apple.com>
+
+        fast/dom/scroll-element-to-rect.html fails on WK1 Mac port
+        https://bugs.webkit.org/show_bug.cgi?id=68815
+
+        Reviewed by Dan Bernstein.
+        
+        Fix these tests to not throw errors when window.internals is not available.
+
+        * fast/dom/scroll-element-to-rect-centered.html:
+        * fast/dom/scroll-element-to-rect.html:
+
 2011-09-28  Ryosuke Niwa  <rn...@webkit.org>
 
         Qt rebsaeline after r96257. It seems like the difference is coming from the font used in select element.

Modified: trunk/LayoutTests/fast/dom/scroll-element-to-rect-centered.html (96277 => 96278)


--- trunk/LayoutTests/fast/dom/scroll-element-to-rect-centered.html	2011-09-29 00:32:26 UTC (rev 96277)
+++ trunk/LayoutTests/fast/dom/scroll-element-to-rect-centered.html	2011-09-29 00:45:20 UTC (rev 96278)
@@ -9,10 +9,10 @@
     </body>
     <script src=""
     <script>
-      if (window.internals) {
-        var box = document.getElementById('textbox');
+      var box = document.getElementById('textbox');
+      if (window.internals)
         window.internals.scrollElementToRect(box, 50, 30, 200, 250);
-      }
+
       var rect = box.getBoundingClientRect();
       var computedLeft = 50 + Math.floor((200 - rect.width) / 2);
       var computedTop = 30 + Math.floor((250 - rect.height) / 2);

Modified: trunk/LayoutTests/fast/dom/scroll-element-to-rect.html (96277 => 96278)


--- trunk/LayoutTests/fast/dom/scroll-element-to-rect.html	2011-09-29 00:32:26 UTC (rev 96277)
+++ trunk/LayoutTests/fast/dom/scroll-element-to-rect.html	2011-09-29 00:45:20 UTC (rev 96278)
@@ -8,10 +8,10 @@
     </body>
     <script src=""
     <script>
-      if (window.internals) {
-        var box = document.getElementById('textbox');
+	  var box = document.getElementById('textbox');
+      if (window.internals)
         window.internals.scrollElementToRect(box, 0, 0, 300, 300);
-      }
+
       var rect = box.getBoundingClientRect();
       var computedLeft = Math.floor((300 - rect.width) / 2);
       var computedTop = Math.floor((300 - rect.height) / 2);

Modified: trunk/Source/WebCore/ChangeLog (96277 => 96278)


--- trunk/Source/WebCore/ChangeLog	2011-09-29 00:32:26 UTC (rev 96277)
+++ trunk/Source/WebCore/ChangeLog	2011-09-29 00:45:20 UTC (rev 96278)
@@ -1,3 +1,20 @@
+2011-09-28  Simon Fraser  <simon.fra...@apple.com>
+
+        fast/dom/scroll-element-to-rect.html fails on WK1 Mac port
+        https://bugs.webkit.org/show_bug.cgi?id=68815
+
+        Reviewed by Dan Bernstein.
+        
+        FrameView::scrollElementToRect() was incorrectly using Element::boundsInWindowSpace(),
+        which is window-relative (not web view-relative), and has flipped coordinates
+        in WebKit1.
+        
+        Change to use Node::getRect() which is what the author intended.
+
+        * dom/Element.h:
+        * page/FrameView.cpp:
+        (WebCore::FrameView::scrollElementToRect):
+
 2011-09-28  Peter Beverloo  <pe...@chromium.org>
 
         Don't clamp cubic-bezier timing functions between 0 and 1

Modified: trunk/Source/WebCore/dom/Element.h (96277 => 96278)


--- trunk/Source/WebCore/dom/Element.h	2011-09-29 00:32:26 UTC (rev 96277)
+++ trunk/Source/WebCore/dom/Element.h	2011-09-29 00:45:20 UTC (rev 96278)
@@ -166,6 +166,7 @@
     virtual int scrollWidth();
     virtual int scrollHeight();
 
+    // Note that the 'window space' has a flipped coordinate system on some platforms.
     LayoutRect boundsInWindowSpace();
 
     PassRefPtr<ClientRectList> getClientRects();

Modified: trunk/Source/WebCore/page/FrameView.cpp (96277 => 96278)


--- trunk/Source/WebCore/page/FrameView.cpp	2011-09-29 00:32:26 UTC (rev 96277)
+++ trunk/Source/WebCore/page/FrameView.cpp	2011-09-29 00:45:20 UTC (rev 96278)
@@ -1638,7 +1638,7 @@
 {
     m_frame->document()->updateLayoutIgnorePendingStylesheets();
 
-    LayoutRect bounds = element->boundsInWindowSpace();
+    LayoutRect bounds = element->getRect();
     int centeringOffsetX = (rect.width() - bounds.width()) / 2;
     int centeringOffsetY = (rect.height() - bounds.height()) / 2;
     scrollBy(IntSize(bounds.x() - centeringOffsetX - rect.x(), bounds.y() - centeringOffsetY - rect.y()));
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to