[Webkit-unassigned] [Bug 60529] Programmatically set selection should not have direction on Mac

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Wed Aug 10 15:55:21 PDT 2011


Ryosuke Niwa <rniwa at webkit.org> changed:

           What    |Removed                     |Added
 Attachment #103518|review?                     |review-
               Flag|                            |

--- Comment #57 from Ryosuke Niwa <rniwa at webkit.org>  2011-08-10 15:55:21 PST ---
(From update of attachment 103518)
View in context: https://bugs.webkit.org/attachment.cgi?id=103518&action=review

The patch looks great!  r- due to a bug in the test but I think we're almost ready to land this patch.

> LayoutTests/editing/selection/programmatic-selection-on-mac-is-directionless.html:53
> +function runTestsAndVerify(currentNode, currentSelectionModifier, expectedDirection, expectedText) {
> +    var currentTest = makeTest(currentNode, currentSelectionModifier, expectedDirection, expectedText);

Nit: It seems odd to call arguments "current" since there's only one node touched inside this function.
I suggest rename these two arguments to be name and selectionModifier.

> LayoutTests/editing/selection/programmatic-selection-on-mac-is-directionless.html:63
> +function makeTest(currentNode, runCurrentTest, expectedDirection, expectedText) {

Nit: Ditto about currentNode.

Also, why are we calling the second argument as runCurrentTest?  That's a very general name that can mean almost anything since the entire file is a test.
Please call it selectionModifier as done elsewhere.

> LayoutTests/editing/selection/programmatic-selection-on-mac-is-directionless.html:72
> +            if (action == 'insertText' || action == 'forwardDelete')
> +                window.getSelection().modify(action, 'word');

modify only accepts "move" or "extend" for the first argument. r- because of this.  You probably meant execCommand(action, false, 'word');

But since it's always safe to pass the 3rd argument, I'd suggest you always call document.execCommand(action, false, 'word') instead.

> LayoutTests/editing/selection/programmatic-selection-on-mac-is-directionless.html:85
> +function selectTestInElement(currentNode) {

I'd move this function above runTestsAndVerify so that all 3 functions are put together.  Also I'd rename currentNode to node.

> LayoutTests/editing/selection/programmatic-selection-on-mac-is-directionless.html:94
> +function verifyResult(expectedDirection, expectedText, description) {

This function is only called in makeTest, and I'd rather see all of code inside makeTest so that I can grasp the idea of what has been tested there.

> LayoutTests/editing/selection/programmatic-selection-on-mac-is-directionless.html:114
> +function runTestsOn(currentPlatform, currentNode) {

Nit: ditto about "current" in currentPlatform and currentNode.

> LayoutTests/editing/selection/programmatic-selection-on-mac-is-directionless.html:115
> +    var backwardOnMacAndForwardOtherwise = {'mac': 'backward', 'win': 'forward', 'unix': 'forward'}[currentPlatform];

Since win and unix will always have the same results in all these tests, I'd define a local variable like macOrNonMac = platform == 'mac' ? 'non-mac'; to reduce the duplication.

> Source/WebCore/ChangeLog:10
> +        to make programmatic selection be directionless by default on mac.


> Source/WebCore/ChangeLog:12
> +        Also modified endingSelection() in two spots to preserve isDirectionality

Could you tells us where they were?

Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

More information about the webkit-unassigned mailing list