[SCM] WebKit Debian packaging branch, webkit-1.1, updated. upstream/1.1.15.1-1414-gc69ee75
eric at webkit.org
eric at webkit.org
Thu Oct 29 20:43:37 UTC 2009
The following commit has been merged in the webkit-1.1 branch:
commit 5d6c8a7e41184b9ef76f4a22f430e81d75193add
Author: eric at webkit.org <eric at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Tue Oct 13 04:59:36 2009 +0000
2009-10-12 Xiaomei Ji <xji at chromium.org>
Reviewed by Sam Weinig.
Fix issue caretRangeFromPoint() returns wrong result for a zoomed and
scrolled page.
https://bugs.webkit.org/show_bug.cgi?id=30034
* fast/dom/Document/CaretRangeFromPoint/hittest-relative-to-viewport-expected.txt:
* fast/dom/Document/CaretRangeFromPoint/hittest-relative-to-viewport.html:
* fast/dom/elementFromPoint-relative-to-viewport-expected.txt:
* fast/dom/elementFromPoint-relative-to-viewport.html:
2009-10-12 Xiaomei Ji <xji at chromium.org>
Reviewed by Sam Weinig.
Fix issue caretRangeFromPoint() returns wrong result for a zoomed and
scrolled page.
https://bugs.webkit.org/show_bug.cgi?id=30034
* dom/Document.cpp:
(WebCore::Document::elementFromPoint): calculate the correct point
relative to document when the page is zoomed and scrolled.
(WebCore::Document::caretRangeFromPoint): calculate the correct point
relative to document when the page is zoomed and scrolled.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@49490 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index a21bd6a..8ac11d3 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,16 @@
+2009-10-12 Xiaomei Ji <xji at chromium.org>
+
+ Reviewed by Sam Weinig.
+
+ Fix issue caretRangeFromPoint() returns wrong result for a zoomed and
+ scrolled page.
+ https://bugs.webkit.org/show_bug.cgi?id=30034
+
+ * fast/dom/Document/CaretRangeFromPoint/hittest-relative-to-viewport-expected.txt:
+ * fast/dom/Document/CaretRangeFromPoint/hittest-relative-to-viewport.html:
+ * fast/dom/elementFromPoint-relative-to-viewport-expected.txt:
+ * fast/dom/elementFromPoint-relative-to-viewport.html:
+
2009-10-12 Fumitoshi Ukai <ukai at chromium.org>
Unreviewed. Fix 4 layout test failures by webkit r49488
diff --git a/LayoutTests/fast/dom/Document/CaretRangeFromPoint/hittest-relative-to-viewport-expected.txt b/LayoutTests/fast/dom/Document/CaretRangeFromPoint/hittest-relative-to-viewport-expected.txt
index b41c625..efdd5dc 100644
--- a/LayoutTests/fast/dom/Document/CaretRangeFromPoint/hittest-relative-to-viewport-expected.txt
+++ b/LayoutTests/fast/dom/Document/CaretRangeFromPoint/hittest-relative-to-viewport-expected.txt
@@ -21,6 +21,15 @@ PASS Range.startOffset check (got 2, expected 2)
PASS Range.startContainer check (got [object Text], expected [object Text])
PASS Range.startOffset check (got 14, expected 14)
+PASS Range.startContainer check (got [object Text], expected [object Text])
+PASS Range.startOffset check (got 1, expected 1)
+PASS Range.startContainer check (got [object Text], expected [object Text])
+PASS Range.startOffset check (got 7, expected 7)
+PASS Range.startContainer check (got [object Text], expected [object Text])
+PASS Range.startOffset check (got 3, expected 3)
+PASS Range.startContainer check (got [object Text], expected [object Text])
+PASS Range.startOffset check (got 9, expected 9)
+
PASS successfullyParsed is true
TEST COMPLETE
diff --git a/LayoutTests/fast/dom/Document/CaretRangeFromPoint/hittest-relative-to-viewport.html b/LayoutTests/fast/dom/Document/CaretRangeFromPoint/hittest-relative-to-viewport.html
index 0d0cd1f..fb21659 100644
--- a/LayoutTests/fast/dom/Document/CaretRangeFromPoint/hittest-relative-to-viewport.html
+++ b/LayoutTests/fast/dom/Document/CaretRangeFromPoint/hittest-relative-to-viewport.html
@@ -31,7 +31,7 @@
var elementTop = document.getElementById('test-top'),
elementBottom = document.getElementById('test-bottom');
- function testsWithBaseline(baselinePos, expectedContainer) {
+ function testsWithBaseline(baselinePos, expectedContainer, zoomOrNot) {
function test(expectedOffset, scrollByX, scrollByY) {
var hitPosition = { x: 15, y: 15 },
range,
@@ -64,10 +64,18 @@
window.scrollTo(baselinePos.x + x, baselinePos.y + y);
}
- test(0, 0, 0);
- test(12, 0, 25);
- test(2, 25, 0);
- test(14, 25, 25);
+ if (zoomOrNot == "zoom") {
+ test(1, 0, 0);
+ test(7, 0, 25);
+ test(3, 50, 0);
+ test(9, 50, 25);
+ } else {
+ test(0, 0, 0);
+ test(12, 0, 25);
+ test(2, 25, 0);
+ test(14, 25, 25);
+ }
+
debug(" ");
}
@@ -78,10 +86,13 @@
bottomBaseline = { x: rectBottom.left - 8, y: rectBottom.top - 8 };
// Testing inside initial containing block (top left)
- testsWithBaseline(topBaseline, elementTop.firstChild);
+ testsWithBaseline(topBaseline, elementTop.firstChild, "none");
// Testing outside initial containing block (mid-page)
- testsWithBaseline(bottomBaseline, elementBottom.firstChild);
+ testsWithBaseline(bottomBaseline, elementBottom.firstChild, "none");
+
+ eventSender.zoomPageOut();
+ testsWithBaseline(topBaseline, elementTop.firstChild, "zoom");
if (window.layoutTestController) {
var area = document.getElementById('testArea');
diff --git a/LayoutTests/fast/dom/elementFromPoint-relative-to-viewport-expected.txt b/LayoutTests/fast/dom/elementFromPoint-relative-to-viewport-expected.txt
index c88a511..add9c17 100644
--- a/LayoutTests/fast/dom/elementFromPoint-relative-to-viewport-expected.txt
+++ b/LayoutTests/fast/dom/elementFromPoint-relative-to-viewport-expected.txt
@@ -4,13 +4,17 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
PASS unscrolledBoxInitial is '0'
-PASS scrolledDownBoxInitial is '15'
+PASS scrolledDownBoxInitial is '5'
PASS scrolledRightBoxInitial is '3'
-PASS scrolledDownAndRightBoxInitial is '18'
+PASS scrolledDownAndRightBoxInitial is '8'
PASS unscrolledBoxOffscreen is '0'
-PASS scrolledDownBoxOffscreen is '15'
+PASS scrolledDownBoxOffscreen is '5'
PASS scrolledRightBoxOffscreen is '3'
-PASS scrolledDownAndRightBoxOffscreen is '18'
+PASS scrolledDownAndRightBoxOffscreen is '8'
+PASS unscrolledBoxInitial is '0'
+PASS scrolledDownBoxInitial is '5'
+PASS scrolledRightBoxInitial is '2'
+PASS scrolledDownAndRightBoxInitial is '7'
PASS successfullyParsed is true
TEST COMPLETE
diff --git a/LayoutTests/fast/dom/elementFromPoint-relative-to-viewport.html b/LayoutTests/fast/dom/elementFromPoint-relative-to-viewport.html
index 4ae3841..c173699 100644
--- a/LayoutTests/fast/dom/elementFromPoint-relative-to-viewport.html
+++ b/LayoutTests/fast/dom/elementFromPoint-relative-to-viewport.html
@@ -39,7 +39,7 @@
description('This test document.elementFromPoint is evaluated in with respect to the viewport, not the document.');
- function testElement(element, label, offsetX, offsetY) {
+ function testElement(element, label, offsetX, offsetY, zoomOrNot) {
for (var i = 0; i < 25; ++i) {
var item = document.createElement("div");
item.className = "testItem";
@@ -71,25 +71,34 @@
window[unscrolledBox] = getFromPoint(0, 0);
// Test scrolling down
- window[scrolledDownBox] = getFromPoint(0, 50);
+ window[scrolledDownBox] = getFromPoint(0, 20);
// Test scrolling right
window[scrolledRightBox] = getFromPoint(50, 0);
// Test scrolling down and right
- window[scrolledDownAndRightBox] = getFromPoint(50, 50);
+ window[scrolledDownAndRightBox] = getFromPoint(50, 20);
shouldBe(unscrolledBox, "'0'");
- shouldBe(scrolledDownBox, "'15'");
- shouldBe(scrolledRightBox, "'3'");
- shouldBe(scrolledDownAndRightBox, "'18'");
+ shouldBe(scrolledDownBox, "'5'");
+ if (zoomOrNot == "zoom") {
+ shouldBe(scrolledRightBox, "'2'");
+ shouldBe(scrolledDownAndRightBox, "'7'");
+ } else {
+ shouldBe(scrolledRightBox, "'3'");
+ shouldBe(scrolledDownAndRightBox, "'8'");
+ }
}
var elementInitial = document.getElementById('test-initial');
var elementOffscreen = document.getElementById('test-offscreen');
var offset = elementInitial.getBoundingClientRect();
- testElement(elementInitial, "Initial", offset.left, offset.top);
- testElement(elementOffscreen, "Offscreen", offset.left, offset.top + 1100);
+ testElement(elementInitial, "Initial", offset.left, offset.top, "none");
+ testElement(elementOffscreen, "Offscreen", offset.left, offset.top + 1100, "none");
+
+ eventSender.zoomPageOut();
+ testElement(elementInitial, "Initial", offset.left, offset.top, "zoom");
+
if (window.layoutTestController) {
var area = document.getElementById('testArea');
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index bffe3b4..2889dff 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,17 @@
+2009-10-12 Xiaomei Ji <xji at chromium.org>
+
+ Reviewed by Sam Weinig.
+
+ Fix issue caretRangeFromPoint() returns wrong result for a zoomed and
+ scrolled page.
+ https://bugs.webkit.org/show_bug.cgi?id=30034
+
+ * dom/Document.cpp:
+ (WebCore::Document::elementFromPoint): calculate the correct point
+ relative to document when the page is zoomed and scrolled.
+ (WebCore::Document::caretRangeFromPoint): calculate the correct point
+ relative to document when the page is zoomed and scrolled.
+
2009-10-12 Fumitoshi Ukai <ukai at chromium.org>
Reviewed by Sam Weinig.
diff --git a/WebCore/dom/Document.cpp b/WebCore/dom/Document.cpp
index 82f5bee..ef23007 100644
--- a/WebCore/dom/Document.cpp
+++ b/WebCore/dom/Document.cpp
@@ -943,7 +943,7 @@ Element* Document::elementFromPoint(int x, int y) const
return 0;
float zoomFactor = frame->pageZoomFactor();
- IntPoint point = roundedIntPoint(FloatPoint(x * zoomFactor, y * zoomFactor)) + view()->scrollOffset();
+ IntPoint point = roundedIntPoint(FloatPoint((x + view()->scrollX()) * zoomFactor, (y + view()->scrollY()) * zoomFactor));
if (!frameView->visibleContentRect().contains(point))
return 0;
@@ -973,7 +973,7 @@ PassRefPtr<Range> Document::caretRangeFromPoint(int x, int y)
return 0;
float zoomFactor = frame->pageZoomFactor();
- IntPoint point = roundedIntPoint(FloatPoint(x * zoomFactor, y * zoomFactor)) + view()->scrollOffset();
+ IntPoint point = roundedIntPoint(FloatPoint((x + view()->scrollX()) * zoomFactor, (y + view()->scrollY()) * zoomFactor));
if (!frameView->visibleContentRect().contains(point))
return 0;
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list