[SCM] WebKit Debian packaging branch, debian/experimental, updated. debian/1.3.8-1-1049-g2e11a8e
xji at chromium.org
xji at chromium.org
Fri Jan 21 14:55:51 UTC 2011
The following commit has been merged in the debian/experimental branch:
commit 74e0327bc94db830c7e436c4994c32606614780a
Author: xji at chromium.org <xji at chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Tue Jan 4 23:05:18 2011 +0000
2011-01-04 Xiaomei Ji <xji at chromium.org>
Reviewed by Dan Bernstein.
Implement sel.modify('move', 'left'/'right', 'lineBoundary').
https://bugs.webkit.org/show_bug.cgi?id=33435
* editing/SelectionController.cpp:
(WebCore::SelectionController::modifyMovingRight):
(WebCore::SelectionController::modifyMovingLeft):
* editing/visible_units.cpp:
(WebCore::logicalStartOfLine):
(WebCore::logicalEndOfLine):
(WebCore::leftBoundaryOfLine):
(WebCore::rightBoundaryOfLine):
* editing/visible_units.h:
2011-01-04 Xiaomei Ji <xji at chromium.org>
Implement sel.modify('move', 'left'/'right', 'lineBoundary').
https://bugs.webkit.org/show_bug.cgi?id=33435
* editing/selection/home-end-expected.txt:
* editing/selection/home-end.html:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@75018 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index f15df45..9ae0626 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,11 @@
+2011-01-04 Xiaomei Ji <xji at chromium.org>
+
+ Implement sel.modify('move', 'left'/'right', 'lineBoundary').
+ https://bugs.webkit.org/show_bug.cgi?id=33435
+
+ * editing/selection/home-end-expected.txt:
+ * editing/selection/home-end.html:
+
2011-01-04 Martin Robinson <mrobinson at igalia.com>
Reviewed by Xan Lopez.
diff --git a/LayoutTests/editing/selection/home-end-expected.txt b/LayoutTests/editing/selection/home-end-expected.txt
index 4be56bf..9d668b9 100644
--- a/LayoutTests/editing/selection/home-end-expected.txt
+++ b/LayoutTests/editing/selection/home-end-expected.txt
@@ -1,3 +1,4 @@
+Test Moving forward/backward
Test 1, LTR:
Moving forward: "\nabc ABC xyz DEF def\n"[1, 20]
Moving backward: "\nabc ABC xyz DEF def\n"[20, 1]
@@ -124,4 +125,131 @@ Test 21, LTR:
Test 21, RTL:
Moving forward: "abcdefg abcdefg abcdefg a abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg "[0, 8]
Moving backward: "abcdefg abcdefg abcdefg a abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg "[8, 0]
+Test Moving right/left
+Test 1, LTR:
+ Moving right: "\nabc ABC xyz DEF def\n"[1, 20]
+ Moving left: "\nabc ABC xyz DEF def\n"[20, 1]
+Test 1, RTL:
+ Moving left: "\nabc ABC xyz DEF def\n"[1, 20]
+ Moving right: "\nabc ABC xyz DEF def\n"[20, 1]
+Test 2, LTR:
+ Moving right: "\nABC xyz DEF def GHI\n"[1, 20]
+ Moving left: "\nABC xyz DEF def GHI\n"[20, 1]
+Test 2, RTL:
+ Moving left: "\nABC xyz DEF def GHI\n"[1, 20]
+ Moving right: "\nABC xyz DEF def GHI\n"[20, 1]
+Test 3, LTR:
+ Moving right: "\nABC DEF ABC\n"[1, 12]
+ Moving left: "\nABC DEF ABC\n"[12, 1]
+Test 3, RTL:
+ Moving left: "\nABC DEF ABC\n"[1, 12]
+ Moving right: "\nABC DEF ABC\n"[12, 1]
+Test 4, LTR:
+ Moving right: "\nabc efd dabeb\n"[1, 14]
+ Moving left: "\nabc efd dabeb\n"[14, 1]
+Test 4, RTL:
+ Moving left: "\nabc efd dabeb\n"[1, 14]
+ Moving right: "\nabc efd dabeb\n"[14, 1]
+Test 5, LTR:
+ Moving right: "Lorem "[0], " amet"[5]
+ Moving left: " amet"[5], "Lorem "[0]
+Test 5, RTL:
+ Moving left: "Lorem "[0], " amet"[5]
+ Moving right: " amet"[5], "Lorem "[0]
+Test 6, LTR:
+ Moving right: "Lorem "[0], "ipsum dolor"[11]
+ Moving left: "ipsum dolor"[11], "Lorem "[0]
+Test 6, RTL:
+ Moving left: "Lorem "[0], "ipsum dolor"[11]
+ Moving right: "ipsum dolor"[11], "Lorem "[0]
+Test 7, LTR:
+ Moving right: "Lorem "[0], " amet"[5]
+ Moving left: " amet"[5], "Lorem "[0]
+Test 7, RTL:
+ Moving left: "Lorem "[0], " amet"[5]
+ Moving right: " amet"[5], "Lorem "[0]
+Test 8, LTR:
+ Moving right: "Lorem "[0, 5]
+ Moving left: "Lorem "[5, 0]
+Test 8, RTL:
+ Moving left: "Lorem "[0, 5]
+ Moving right: "Lorem "[5, 0]
+Test 9, LTR:
+ Moving right: "Lorem "[0], " amet"[5]
+ Moving left: " amet"[5], "Lorem "[0]
+Test 9, RTL:
+ Moving left: "Lorem "[0], " amet"[5]
+ Moving right: " amet"[5], "Lorem "[0]
+Test 10, LTR:
+ Moving right: "Lorem "[0], "ipsum dolor"[11]
+ Moving left: "ipsum dolor"[11], "Lorem "[0]
+Test 10, RTL:
+ Moving left: "Lorem "[0], "ipsum dolor"[11]
+ Moving right: "ipsum dolor"[11], "Lorem "[0]
+Test 11, LTR:
+ Moving right: "Lorem "[0], " amet"[5]
+ Moving left: " amet"[5], "Lorem "[0]
+Test 11, RTL:
+ Moving left: "Lorem "[0], " amet"[5]
+ Moving right: " amet"[5], "Lorem "[0]
+Test 12, LTR:
+ Moving right: "Lorem "[0, 5]
+ Moving left: "Lorem "[5, 0]
+Test 12, RTL:
+ Moving left: "Lorem "[0, 5]
+ Moving right: "Lorem "[5, 0]
+Test 13, LTR:
+ Moving right: "\n Just\n "[2], "\n BFDX\n"[6]
+ Moving left: "\n BFDX\n"[6], "\n Just\n "[2]
+Test 13, RTL:
+ Moving left: "\n Just\n "[2], "\n BFDX\n"[6]
+ Moving right: "\n BFDX\n"[6], "\n Just\n "[2]
+Test 14, LTR:
+ Moving right: "\n Just\n "[2], "\n ever\n"[6]
+ Moving left: "\n ever\n"[6], "\n Just\n "[2]
+Test 14, RTL:
+ Moving left: "\n Just\n "[2], "\n ever\n"[6]
+ Moving right: "\n ever\n"[6], "\n Just\n "[2]
+Test 15, LTR:
+ Moving right: "car means ABC."[0, 14]
+ Moving left: "car means ABC."[14, 0]
+Test 15, RTL:
+ Moving left: "car means ABC."[0, 14]
+ Moving right: "car means ABC."[14, 0]
+Test 16, LTR:
+ Moving right: "car DEF ABC."[0, 14]
+ Moving left: "car DEF ABC."[14, 0]
+Test 16, RTL:
+ Moving left: "car DEF ABC."[0, 14]
+ Moving right: "car DEF ABC."[14, 0]
+Test 17, LTR:
+ Moving right: "he said "car DEF ABC.""[0, 24]
+ Moving left: "he said "car DEF ABC.""[24, 0]
+Test 17, RTL:
+ Moving left: "he said "car DEF ABC.""[0, 24]
+ Moving right: "he said "car DEF ABC.""[24, 0]
+Test 18, LTR:
+ Moving right: "GHI JKL MNO 'he said "car DEF ABC"'?"[0, 40]
+ Moving left: "GHI JKL MNO 'he said "car DEF ABC"'?"[40, 0]
+Test 18, RTL:
+ Moving left: "GHI JKL MNO 'he said "car DEF ABC"'?"[0, 40]
+ Moving right: "GHI JKL MNO 'he said "car DEF ABC"'?"[40, 0]
+Test 19, LTR:
+ Moving right: "ABC abc DEF"[0, 11]
+ Moving left: "ABC abc DEF"[11, 0]
+Test 19, RTL:
+ Moving left: "ABC abc DEF"[0, 11]
+ Moving right: "ABC abc DEF"[11, 0]
+Test 20, LTR:
+ Moving right: "abcdefg abcdefg abcdefg a abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg "[0, 8]
+ Moving left: "abcdefg abcdefg abcdefg a abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg "[8, 0]
+Test 20, RTL:
+ Moving left: "abcdefg abcdefg abcdefg a abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg "[0, 8]
+ Moving right: "abcdefg abcdefg abcdefg a abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg "[8, 0]
+Test 21, LTR:
+ Moving right: "abcdefg abcdefg abcdefg a abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg "[0, 8]
+ Moving left: "abcdefg abcdefg abcdefg a abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg "[8, 0]
+Test 21, RTL:
+ Moving left: "abcdefg abcdefg abcdefg a abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg "[0, 8]
+ Moving right: "abcdefg abcdefg abcdefg a abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg "[8, 0]
diff --git a/LayoutTests/editing/selection/home-end.html b/LayoutTests/editing/selection/home-end.html
index 08c0b48..e37e44b 100644
--- a/LayoutTests/editing/selection/home-end.html
+++ b/LayoutTests/editing/selection/home-end.html
@@ -71,31 +71,64 @@
var tests = document.getElementsByClassName("test");
var sel = getSelection();
+ log("Test Moving forward/backward\n");
+ for (var i = 0; i < tests.length; ++i) {
+ var positionsMovingForward;
+ var positionsMovingBackward;
+
+ log("Test " + (i + 1) + ", LTR:\n Moving forward: ");
+ sel.setPosition(tests[i], 0);
+ positionsMovingForward = positionsMovingInDirection(sel, "forward");
+ logPositions(positionsMovingForward);
+ log("\n");
+
+ log(" Moving backward: ");
+ positionsMovingBackward = positionsMovingInDirection(sel, "backward");
+ logPositions(positionsMovingBackward);
+ log("\n");
+
+ tests[i].style.direction = "rtl";
+
+ log("Test " + (i + 1) + ", RTL:\n Moving forward: ");
+ sel.setPosition(tests[i], 0);
+ positionsMovingForward = positionsMovingInDirection(sel, "forward");
+ logPositions(positionsMovingForward);
+ log("\n");
+
+ log(" Moving backward: ");
+ positionsMovingBackward = positionsMovingInDirection(sel, "backward");
+ logPositions(positionsMovingBackward);
+ log("\n");
+
+ }
+ log("Test Moving right/left\n");
for (var i = 0; i < tests.length; ++i) {
var positionsMovingRight;
var positionsMovingLeft;
+
+ tests[i].style.direction = "ltr";
- log("Test " + (i + 1) + ", LTR:\n Moving forward: ");
+ log("Test " + (i + 1) + ", LTR:\n Moving right: ");
sel.setPosition(tests[i], 0);
- positionsMovingRight = positionsMovingInDirection(sel, "forward");
+ positionsMovingRight = positionsMovingInDirection(sel, "right");
logPositions(positionsMovingRight);
log("\n");
- log(" Moving backward: ");
- positionsMovingLeft = positionsMovingInDirection(sel, "backward");
+ log(" Moving left: ");
+ positionsMovingLeft = positionsMovingInDirection(sel, "left");
logPositions(positionsMovingLeft);
log("\n");
tests[i].style.direction = "rtl";
- log("Test " + (i + 1) + ", RTL:\n Moving forward: ");
+ log("Test " + (i + 1) + ", RTL:\n Moving left: ");
sel.setPosition(tests[i], 0);
- positionsMovingLeft = positionsMovingInDirection(sel, "forward");
+ positionsMovingLeft = positionsMovingInDirection(sel, "left");
logPositions(positionsMovingLeft);
log("\n");
- log(" Moving backward: ");
- positionsMovingRight = positionsMovingInDirection(sel, "backward");
+ log(" Moving right: ");
+ positionsMovingRight = positionsMovingInDirection(sel, "right");
logPositions(positionsMovingRight);
log("\n");
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 59623ee..c40a420 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,20 @@
+2011-01-04 Xiaomei Ji <xji at chromium.org>
+
+ Reviewed by Dan Bernstein.
+
+ Implement sel.modify('move', 'left'/'right', 'lineBoundary').
+ https://bugs.webkit.org/show_bug.cgi?id=33435
+
+ * editing/SelectionController.cpp:
+ (WebCore::SelectionController::modifyMovingRight):
+ (WebCore::SelectionController::modifyMovingLeft):
+ * editing/visible_units.cpp:
+ (WebCore::logicalStartOfLine):
+ (WebCore::logicalEndOfLine):
+ (WebCore::leftBoundaryOfLine):
+ (WebCore::rightBoundaryOfLine):
+ * editing/visible_units.h:
+
2011-01-04 Martin Robinson <mrobinson at igalia.com>
Reviewed by Xan Lopez.
diff --git a/WebCore/editing/SelectionController.cpp b/WebCore/editing/SelectionController.cpp
index b2b0824..4406b41 100644
--- a/WebCore/editing/SelectionController.cpp
+++ b/WebCore/editing/SelectionController.cpp
@@ -465,12 +465,14 @@ VisiblePosition SelectionController::modifyMovingRight(TextGranularity granulari
case LineGranularity:
case ParagraphGranularity:
case SentenceBoundary:
- case LineBoundary:
case ParagraphBoundary:
case DocumentBoundary:
// FIXME: Implement all of the above.
pos = modifyMovingForward(granularity);
break;
+ case LineBoundary:
+ pos = rightBoundaryOfLine(startForPlatform(), directionOfEnclosingBlock());
+ break;
}
return pos;
}
@@ -616,12 +618,14 @@ VisiblePosition SelectionController::modifyMovingLeft(TextGranularity granularit
case LineGranularity:
case ParagraphGranularity:
case SentenceBoundary:
- case LineBoundary:
case ParagraphBoundary:
case DocumentBoundary:
// FIXME: Implement all of the above.
pos = modifyMovingBackward(granularity);
break;
+ case LineBoundary:
+ pos = leftBoundaryOfLine(startForPlatform(), directionOfEnclosingBlock());
+ break;
}
return pos;
}
diff --git a/WebCore/editing/visible_units.cpp b/WebCore/editing/visible_units.cpp
index d7343bf..7bb1515 100644
--- a/WebCore/editing/visible_units.cpp
+++ b/WebCore/editing/visible_units.cpp
@@ -1133,6 +1133,8 @@ static VisiblePosition logicalStartPositionForLine(const VisiblePosition& c)
VisiblePosition logicalStartOfLine(const VisiblePosition& c)
{
+ // TODO: this is the current behavior that might need to be fixed.
+ // Please refer to https://bugs.webkit.org/show_bug.cgi?id=49107 for detail.
VisiblePosition visPos = logicalStartPositionForLine(c);
return c.honorEditableBoundaryAtOrAfter(visPos);
@@ -1179,6 +1181,9 @@ bool inSameLogicalLine(const VisiblePosition& a, const VisiblePosition& b)
VisiblePosition logicalEndOfLine(const VisiblePosition& c)
{
+ // TODO: this is the current behavior that might need to be fixed.
+ // Please refer to https://bugs.webkit.org/show_bug.cgi?id=49107 for detail.
+
VisiblePosition visPos = logicalEndPositionForLine(c);
// Make sure the end of line is at the same line as the given input position. For a wrapping line, the logical end
@@ -1192,4 +1197,14 @@ VisiblePosition logicalEndOfLine(const VisiblePosition& c)
return c.honorEditableBoundaryAtOrBefore(visPos);
}
+VisiblePosition leftBoundaryOfLine(const VisiblePosition& c, TextDirection direction)
+{
+ return direction == LTR ? logicalStartOfLine(c) : logicalEndOfLine(c);
+}
+
+VisiblePosition rightBoundaryOfLine(const VisiblePosition& c, TextDirection direction)
+{
+ return direction == LTR ? logicalEndOfLine(c) : logicalStartOfLine(c);
+}
+
}
diff --git a/WebCore/editing/visible_units.h b/WebCore/editing/visible_units.h
index a4dd28f..167bd2c 100644
--- a/WebCore/editing/visible_units.h
+++ b/WebCore/editing/visible_units.h
@@ -59,6 +59,8 @@ bool isStartOfLine(const VisiblePosition &);
bool isEndOfLine(const VisiblePosition &);
VisiblePosition logicalStartOfLine(const VisiblePosition &);
VisiblePosition logicalEndOfLine(const VisiblePosition &);
+VisiblePosition leftBoundaryOfLine(const VisiblePosition&, TextDirection);
+VisiblePosition rightBoundaryOfLine(const VisiblePosition&, TextDirection);
// paragraphs (perhaps a misnomer, can be divided by line break elements)
VisiblePosition startOfParagraph(const VisiblePosition&, EditingBoundaryCrossingRule = CannotCrossEditingBoundary);
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list