[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