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