| Differences between
and this patch
- a/Source/WebCore/ChangeLog +40 lines
Lines 1-3 a/Source/WebCore/ChangeLog_sec1
1
2014-02-18  Ryosuke Niwa  <rniwa@webkit.org>
2
3
        setSelectionRange should set selection without validation
4
        https://bugs.webkit.org/show_bug.cgi?id=128949
5
6
        Reviewed by NOBODY (OOPS!).
7
8
        Since positionForIndex in HTMLTextFormControlElement always returns a candidate Position, we don't have to
9
        validate selection in setSelectionRange.
10
11
        Also fixed various bugs uncovered by this change.
12
13
        This patch also fixes fast/forms/input-select-webkit-user-select-none.html, which used to assert wrong outcome
14
        so that WebKit's behavior matches that of Chrome and Firefox.
15
16
        Test: fast/forms/input-select-webkit-user-select-none.html
17
18
        * dom/Position.h:
19
        (WebCore::positionInParentBeforeNode): This function had a bug that when node is a child of the shadow root
20
        it would return a null Position. Allow a position anchored inside a shadow root.
21
        (WebCore::positionInParentAfterNode): Ditto.
22
23
        * editing/FrameSelection.cpp:
24
        (WebCore::FrameSelection::moveWithoutValidationTo): Renamed from moveTo and avoided selection validation.
25
        * editing/FrameSelection.h:
26
27
        * editing/htmlediting.cpp:
28
        (WebCore::updatePositionForNodeRemoval): Fixed the bug that this function doesn't update positions before
29
        or after children even if the shadow host of the anchor node is getting removed. Move the position before
30
        the shadow host to be removed in both situations.
31
32
        * html/HTMLTextFormControlElement.cpp:
33
        (WebCore::HTMLTextFormControlElement::setSelectionRange): moveTo is renamed to moveWithoutValidationTo.
34
        (WebCore::HTMLTextFormControlElement::selectionChanged): Check if the cached selection offsets are different
35
        in lieu of FrameSelection::isRange() since they're equivalent here.
36
        (WebCore::positionForIndex): Return the position inside or after the last br when there is one to match
37
        the canonicalization algorithm we have. It's probably harmless to return the last position in the inner text
38
        element anyways since most of our codebase supports that but this would avoid having to rebaseline dozens
39
        of tests and reduces the risk of this patch.
40
1
2014-02-17  ChangSeok Oh  <changseok.oh@collabora.com>
41
2014-02-17  ChangSeok Oh  <changseok.oh@collabora.com>
2
42
3
        [GTK] Build failure caused by missing jsmin module
43
        [GTK] Build failure caused by missing jsmin module
- a/Source/WebCore/dom/Position.h -3 / +3 lines
Lines 276-288 inline Position positionInParentBeforeNode(const Node* node) a/Source/WebCore/dom/Position.h_sec1
276
    // At least one caller currently hits this ASSERT though, which indicates
276
    // At least one caller currently hits this ASSERT though, which indicates
277
    // that the caller is trying to make a position relative to a disconnected node (which is likely an error)
277
    // that the caller is trying to make a position relative to a disconnected node (which is likely an error)
278
    // Specifically, editing/deleting/delete-ligature-001.html crashes with ASSERT(node->parentNode())
278
    // Specifically, editing/deleting/delete-ligature-001.html crashes with ASSERT(node->parentNode())
279
    return Position(Position::findParent(node), node->nodeIndex(), Position::PositionIsOffsetInAnchor);
279
    return Position(node->parentNode(), node->nodeIndex(), Position::PositionIsOffsetInAnchor);
280
}
280
}
281
281
282
inline Position positionInParentAfterNode(const Node* node)
282
inline Position positionInParentAfterNode(const Node* node)
283
{
283
{
284
    ASSERT(Position::findParent(node));
284
    ASSERT(node->parentNode());
285
    return Position(Position::findParent(node), node->nodeIndex() + 1, Position::PositionIsOffsetInAnchor);
285
    return Position(node->parentNode(), node->nodeIndex() + 1, Position::PositionIsOffsetInAnchor);
286
}
286
}
287
287
288
// positionBeforeNode and positionAfterNode return neighbor-anchored positions, construction is O(1)
288
// positionBeforeNode and positionAfterNode return neighbor-anchored positions, construction is O(1)
- a/Source/WebCore/editing/FrameSelection.cpp -3 / +5 lines
Lines 164-173 void FrameSelection::moveTo(const Position &base, const Position &extent, EAffin a/Source/WebCore/editing/FrameSelection.cpp_sec1
164
    setSelection(VisibleSelection(base, extent, affinity, selectionHasDirection), defaultSetSelectionOptions(userTriggered));
164
    setSelection(VisibleSelection(base, extent, affinity, selectionHasDirection), defaultSetSelectionOptions(userTriggered));
165
}
165
}
166
166
167
void FrameSelection::moveTo(const Position& base, const Position& extent, bool selectionHasDirection, bool shouldSetFocus)
167
void FrameSelection::moveWithoutValidationTo(const Position& base, const Position& extent, bool selectionHasDirection, bool shouldSetFocus)
168
{
168
{
169
    setSelection(VisibleSelection(base, extent, DOWNSTREAM, selectionHasDirection),
169
    VisibleSelection newSelection;
170
        defaultSetSelectionOptions() | (shouldSetFocus ? 0 : DoNotSetFocus));
170
    newSelection.setWithoutValidation(base, extent);
171
    newSelection.setIsDirectional(selectionHasDirection);
172
    setSelection(newSelection, defaultSetSelectionOptions() | (shouldSetFocus ? 0 : DoNotSetFocus));
171
}
173
}
172
174
173
void DragCaretController::setCaretPosition(const VisiblePosition& position)
175
void DragCaretController::setCaretPosition(const VisiblePosition& position)
- a/Source/WebCore/editing/FrameSelection.h -1 / +1 lines
Lines 140-146 public: a/Source/WebCore/editing/FrameSelection.h_sec1
140
    void moveTo(const VisiblePosition&, const VisiblePosition&, EUserTriggered = NotUserTriggered);
140
    void moveTo(const VisiblePosition&, const VisiblePosition&, EUserTriggered = NotUserTriggered);
141
    void moveTo(const Position&, EAffinity, EUserTriggered = NotUserTriggered);
141
    void moveTo(const Position&, EAffinity, EUserTriggered = NotUserTriggered);
142
    void moveTo(const Position&, const Position&, EAffinity, EUserTriggered = NotUserTriggered);
142
    void moveTo(const Position&, const Position&, EAffinity, EUserTriggered = NotUserTriggered);
143
    void moveTo(const Position&, const Position&, bool selectionHasDirection, bool shouldSetFocus);
143
    void moveWithoutValidationTo(const Position&, const Position&, bool selectionHasDirection, bool shouldSetFocus);
144
144
145
    const VisibleSelection& selection() const { return m_selection; }
145
    const VisibleSelection& selection() const { return m_selection; }
146
    void setSelection(const VisibleSelection&, SetSelectionOptions = defaultSetSelectionOptions(), CursorAlignOnScroll = AlignCursorOnScrollIfNeeded, TextGranularity = CharacterGranularity);
146
    void setSelection(const VisibleSelection&, SetSelectionOptions = defaultSetSelectionOptions(), CursorAlignOnScroll = AlignCursorOnScrollIfNeeded, TextGranularity = CharacterGranularity);
- a/Source/WebCore/editing/htmlediting.cpp -3 / +3 lines
Lines 988-999 void updatePositionForNodeRemoval(Position& position, Node* node) a/Source/WebCore/editing/htmlediting.cpp_sec1
988
        return;
988
        return;
989
    switch (position.anchorType()) {
989
    switch (position.anchorType()) {
990
    case Position::PositionIsBeforeChildren:
990
    case Position::PositionIsBeforeChildren:
991
        if (position.containerNode() == node)
991
        if (node->containsIncludingShadowDOM(position.containerNode()))
992
            position = positionInParentBeforeNode(node);
992
            position = positionInParentBeforeNode(node);
993
        break;
993
        break;
994
    case Position::PositionIsAfterChildren:
994
    case Position::PositionIsAfterChildren:
995
        if (position.containerNode() == node)
995
        if (node->containsIncludingShadowDOM(position.containerNode()))
996
            position = positionInParentAfterNode(node);
996
            position = positionInParentBeforeNode(node);
997
        break;
997
        break;
998
    case Position::PositionIsOffsetInAnchor:
998
    case Position::PositionIsOffsetInAnchor:
999
        if (position.containerNode() == node->parentNode() && static_cast<unsigned>(position.offsetInContainerNode()) > node->nodeIndex())
999
        if (position.containerNode() == node->parentNode() && static_cast<unsigned>(position.offsetInContainerNode()) > node->nodeIndex())
- a/Source/WebCore/html/HTMLTextFormControlElement.cpp -9 / +7 lines
Lines 315-321 void HTMLTextFormControlElement::setSelectionRange(int start, int end, TextField a/Source/WebCore/html/HTMLTextFormControlElement.cpp_sec1
315
    }
315
    }
316
316
317
    if (Frame* frame = document().frame())
317
    if (Frame* frame = document().frame())
318
        frame->selection().moveTo(startPosition, endPosition, direction != SelectionHasNoDirection, !hasFocus);
318
        frame->selection().moveWithoutValidationTo(startPosition, endPosition, direction != SelectionHasNoDirection, !hasFocus);
319
}
319
}
320
320
321
int HTMLTextFormControlElement::indexForVisiblePosition(const VisiblePosition& position) const
321
int HTMLTextFormControlElement::indexForVisiblePosition(const VisiblePosition& position) const
Lines 480-492 void HTMLTextFormControlElement::selectionChanged(bool shouldFireSelectEvent) a/Source/WebCore/html/HTMLTextFormControlElement.cpp_sec2
480
    // selectionStart() or selectionEnd() will return cached selection when this node doesn't have focus
480
    // selectionStart() or selectionEnd() will return cached selection when this node doesn't have focus
481
    cacheSelection(computeSelectionStart(), computeSelectionEnd(), computeSelectionDirection());
481
    cacheSelection(computeSelectionStart(), computeSelectionEnd(), computeSelectionDirection());
482
    
482
    
483
    if (!shouldFireSelectEvent)
483
    if (shouldFireSelectEvent && m_cachedSelectionStart != m_cachedSelectionEnd)
484
        return;
484
        dispatchEvent(Event::create(eventNames().selectEvent, true, false));
485
486
    if (Frame* frame = document().frame()) {
487
        if (frame->selection().isRange())
488
            dispatchEvent(Event::create(eventNames().selectEvent, true, false));
489
    }
490
}
485
}
491
486
492
void HTMLTextFormControlElement::parseAttribute(const QualifiedName& name, const AtomicString& value)
487
void HTMLTextFormControlElement::parseAttribute(const QualifiedName& name, const AtomicString& value)
Lines 556-574 String HTMLTextFormControlElement::innerTextValue() const a/Source/WebCore/html/HTMLTextFormControlElement.cpp_sec3
556
static Position positionForIndex(TextControlInnerTextElement* innerText, unsigned index)
551
static Position positionForIndex(TextControlInnerTextElement* innerText, unsigned index)
557
{
552
{
558
    unsigned remainingCharactersToMoveForward = index;
553
    unsigned remainingCharactersToMoveForward = index;
554
    Node* lastBrOrText = innerText;
559
    for (Node* node = innerText; node; node = NodeTraversal::next(node, innerText)) {
555
    for (Node* node = innerText; node; node = NodeTraversal::next(node, innerText)) {
560
        if (node->hasTagName(brTag)) {
556
        if (node->hasTagName(brTag)) {
561
            if (!remainingCharactersToMoveForward)
557
            if (!remainingCharactersToMoveForward)
562
                return positionBeforeNode(node);
558
                return positionBeforeNode(node);
563
            remainingCharactersToMoveForward--;
559
            remainingCharactersToMoveForward--;
560
            lastBrOrText = node;
564
        } else if (node->isTextNode()) {
561
        } else if (node->isTextNode()) {
565
            Text& text = toText(*node);
562
            Text& text = toText(*node);
566
            if (remainingCharactersToMoveForward < text.length())
563
            if (remainingCharactersToMoveForward < text.length())
567
                return Position(&text, remainingCharactersToMoveForward);
564
                return Position(&text, remainingCharactersToMoveForward);
568
            remainingCharactersToMoveForward -= text.length();
565
            remainingCharactersToMoveForward -= text.length();
566
            lastBrOrText = node;
569
        }
567
        }
570
    }
568
    }
571
    return lastPositionInNode(innerText);
569
    return lastPositionInOrAfterNode(lastBrOrText);
572
}
570
}
573
571
574
unsigned HTMLTextFormControlElement::indexForPosition(const Position& passedPosition) const
572
unsigned HTMLTextFormControlElement::indexForPosition(const Position& passedPosition) const
- a/LayoutTests/ChangeLog +31 lines
Lines 1-3 a/LayoutTests/ChangeLog_sec1
1
2014-02-18  Ryosuke Niwa  <rniwa@webkit.org>
2
3
        setSelectionRange should set selection without validation
4
        https://bugs.webkit.org/show_bug.cgi?id=128949
5
6
        Reviewed by NOBODY (OOPS!).
7
8
        Fixed input-select-webkit-user-select-none.html which was erroneously asserting selectionStart and selectionEnd
9
        of a text field to be zero when it has -webkit-user-select: none. This doesn't not match behaviors of Chrome
10
        and Firefox. They both retain the programatically set selection offsets since such style should not bleed into
11
        the shadow DOM of the text field in the first place.
12
13
        New behavior matches the latest Firefox and Chrome although we still have the bug that user cannot select text
14
        inside such a text field.
15
16
        Also modernized LayoutTests/editing/selection/5497643.html to make the expected results more readable and made
17
        the test more robust against changes in the node index of textarea element.
18
19
        * editing/selection/5497643-expected.txt: See above.
20
        * editing/selection/5497643.html:
21
        * fast/forms/input-select-webkit-user-select-none-expected.txt: See above.
22
        * fast/forms/input-select-webkit-user-select-none.html:
23
        * editing/deleting/delete-ligature-001-expected.txt: Progression in the editing delegate callbacks dumps.
24
        Now we set selection directly into the text node inside the inner text element.
25
        * platform/mac/platform/mac/editing/spelling/autocorrection-at-beginning-of-word-1-expected.txt: Ditto.
26
        * platform/mac/platform/mac/editing/spelling/autocorrection-at-beginning-of-word-2-expected.txt: Ditto.
27
        * platform/mac-mountainlion/platform/mac/editing/spelling/autocorrection-at-beginning-of-word-1-expected.txt:
28
        Removed.
29
        * platform/mac-mountainlion/platform/mac/editing/spelling/autocorrection-at-beginning-of-word-2-expected.txt:
30
        Removed.
31
1
2014-02-17  Radu Stavila  <stavila@adobe.com>
32
2014-02-17  Radu Stavila  <stavila@adobe.com>
2
33
3
        [CSS Regions] Make regions unsplittable
34
        [CSS Regions] Make regions unsplittable
- a/LayoutTests/editing/deleting/delete-ligature-001-expected.txt -1 / +1 lines
Lines 1-6 a/LayoutTests/editing/deleting/delete-ligature-001-expected.txt_sec1
1
EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
1
EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
2
EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
2
EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
3
EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 0 of DIV > #document-fragment to 0 of DIV > #document-fragment toDOMRange:range from 1 of #text > DIV > #document-fragment to 1 of #text > DIV > #document-fragment affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
3
EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 1 of #text > DIV > #document-fragment to 1 of #text > DIV > #document-fragment toDOMRange:range from 1 of #text > DIV > #document-fragment to 1 of #text > DIV > #document-fragment affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
4
EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
4
EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
5
EDITING DELEGATE: webViewDidChange:WebViewDidChangeNotification
5
EDITING DELEGATE: webViewDidChange:WebViewDidChangeNotification
6
EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 1 of #text > DIV > #document-fragment to 1 of #text > DIV > #document-fragment toDOMRange:range from 2 of #text > DIV > #document-fragment to 2 of #text > DIV > #document-fragment affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
6
EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 1 of #text > DIV > #document-fragment to 1 of #text > DIV > #document-fragment toDOMRange:range from 2 of #text > DIV > #document-fragment to 2 of #text > DIV > #document-fragment affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
- a/LayoutTests/editing/selection/5497643-expected.txt -1 / +7 lines
Lines 1-4 a/LayoutTests/editing/selection/5497643-expected.txt_sec1
1
ALERT: SUCCESS: Selection is set to position 2 of BODY.
1
textareaOffset = nodeIndex(textarea); textarea.setSelectionRange(0, 0); textarea.parentNode.removeChild(textarea);
2
PASS getSelection().type is 'Caret'
3
PASS getSelection().getRangeAt(0).startContainer is document.body
4
PASS getSelection().getRangeAt(0).startOffset is textareaOffset
5
PASS successfullyParsed is true
6
7
TEST COMPLETE
2
This tests to make sure that a selection inside a textarea is updated when the textarea is removed from the document.
8
This tests to make sure that a selection inside a textarea is updated when the textarea is removed from the document.
3
9
4
10
- a/LayoutTests/editing/selection/5497643.html -8 / +15 lines
Lines 1-15 a/LayoutTests/editing/selection/5497643.html_sec1
1
<!DOCTYPE html>
2
<html>
3
<body>
1
<p>This tests to make sure that a selection inside a textarea is updated when the textarea is removed from the document.</p>
4
<p>This tests to make sure that a selection inside a textarea is updated when the textarea is removed from the document.</p>
2
<textarea id="textarea"></textarea>
5
<textarea id="textarea"></textarea>
6
<script src="../../resources/js-test-pre.js"></script>
3
<script>
7
<script>
4
if (window.testRunner)
8
if (window.testRunner)
5
    window.testRunner.dumpAsText();
9
    window.testRunner.dumpAsText();
10
function nodeIndex(node) {
11
    return Array.prototype.slice.call(node.parentNode.childNodes).indexOf(node);
12
}
6
textarea = document.getElementById("textarea");
13
textarea = document.getElementById("textarea");
7
textarea.setSelectionRange(0, 0);
14
evalAndLog("textareaOffset = nodeIndex(textarea); textarea.setSelectionRange(0, 0); textarea.parentNode.removeChild(textarea);");
8
textarea.parentNode.removeChild(textarea);
15
shouldBe("getSelection().type", "'Caret'");
9
if (window.getSelection().type == 'Caret' &&
16
shouldBe("getSelection().getRangeAt(0).startContainer", "document.body");
10
    window.getSelection().getRangeAt(0).startContainer == document.body && 
17
shouldBe("getSelection().getRangeAt(0).startOffset", "textareaOffset");
11
    window.getSelection().getRangeAt(0).startOffset == 2)
18
var successfullyParsed = true;
12
    alert("SUCCESS: Selection is set to position 2 of BODY.")
13
else
14
    alert("FAILURE: The selection is not set correctly after textarea was deleted.")
15
</script>
19
</script>
20
<script src="../../resources/js-test-post.js"></script>
21
</body>
22
</html>
- a/LayoutTests/fast/forms/input-select-webkit-user-select-none-expected.txt -1 / +8 lines
Lines 1-5 a/LayoutTests/fast/forms/input-select-webkit-user-select-none-expected.txt_sec1
1
Tests behavior of select() in case "-webkit-user-select: none" attribute is specified to the input element. The field should not be selected.
1
Tests behavior of select() in case "-webkit-user-select: none" attribute is specified to the input element. The field should not be selected.
2
2
3
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
3
4
4
5
5
PASS
6
PASS input.select(); input.selectionStart is 0
7
PASS input.selectionEnd is input.value.length
8
PASS input.value.length is not 0
9
PASS successfullyParsed is true
10
11
TEST COMPLETE
12
- a/LayoutTests/fast/forms/input-select-webkit-user-select-none.html -17 / +16 lines
Lines 1-26 a/LayoutTests/fast/forms/input-select-webkit-user-select-none.html_sec1
1
<!DOCTYPE html>
1
<html>
2
<html>
2
<head>
3
<body onload="test()">
4
<script src="../../resources/js-test-pre.js"></script>
3
<script>
5
<script>
6
description("Tests behavior of select() in case &quot;-webkit-user-select: none&quot;"
7
    + " attribute is specified to the input element. The field should not be selected.");
8
4
function test() {
9
function test() {
5
    if (window.testRunner)
10
    if (window.testRunner)
6
        testRunner.dumpAsText();
11
        testRunner.dumpAsText();
7
    var tf = document.getElementById('tf');
12
    window.input = document.querySelector('input');
8
    tf.select();
13
    shouldBe("input.select(); input.selectionStart", "0");
9
    if (tf.selectionStart == 0 && tf.selectionEnd == 0) { // ;
14
    shouldBe("input.selectionEnd", "input.value.length");
10
        document.getElementById("result").innerHTML = "PASS";
15
    shouldNotBe("input.value.length", "0");
11
    } else {
16
    finishJSTest();
12
        document.getElementById("result").innerHTML = "FAIL: selection start is "
13
            + tf.selectionStart + " and end is " + tf.selectionEnd + ".";
14
    }
15
}
17
}
18
19
var successfullyParsed = true;
20
var jsTestIsAsync = true;
16
</script>
21
</script>
17
</head>
22
<script src="../../resources/js-test-post.js"></script>
18
<body onload="test()">
23
<p><input type="text" value="input text" style="-webkit-user-select: none; -moz-user-select: none;"></input></p>
19
<p>
20
Tests behavior of select() in case &quot;-webkit-user-select: none&quot;
21
attribute is specified to the input element. The field should not be selected.
22
</p>
23
<p><input type="text" id="tf" value="input text" style="-webkit-user-select: none"></input></p>
24
<p id="result">TEST NOT RUN YET</p>
25
</body>
24
</body>
26
</html>
25
</html>
- a/LayoutTests/platform/mac-mountainlion/platform/mac/editing/spelling/autocorrection-at-beginning-of-word-1-expected.txt -1 / +1 lines
Lines 1-6 a/LayoutTests/platform/mac-mountainlion/platform/mac/editing/spelling/autocorrection-at-beginning-of-word-1-expected.txt_sec1
1
EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
1
EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
2
EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
2
EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
3
EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 0 of DIV > #document-fragment to 0 of DIV > #document-fragment toDOMRange:range from 1 of #text > DIV > #document-fragment to 1 of #text > DIV > #document-fragment affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
3
EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 1 of #text > DIV > #document-fragment to 1 of #text > DIV > #document-fragment toDOMRange:range from 1 of #text > DIV > #document-fragment to 1 of #text > DIV > #document-fragment affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
4
EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
4
EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
5
EDITING DELEGATE: webViewDidChange:WebViewDidChangeNotification
5
EDITING DELEGATE: webViewDidChange:WebViewDidChangeNotification
6
EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
6
EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
- a/LayoutTests/platform/mac-mountainlion/platform/mac/editing/spelling/autocorrection-at-beginning-of-word-2-expected.txt -1 / +1 lines
Lines 1-6 a/LayoutTests/platform/mac-mountainlion/platform/mac/editing/spelling/autocorrection-at-beginning-of-word-2-expected.txt_sec1
1
EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
1
EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
2
EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
2
EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
3
EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 0 of DIV > #document-fragment to 0 of DIV > #document-fragment toDOMRange:range from 1 of #text > DIV > #document-fragment to 1 of #text > DIV > #document-fragment affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
3
EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 1 of #text > DIV > #document-fragment to 1 of #text > DIV > #document-fragment toDOMRange:range from 1 of #text > DIV > #document-fragment to 1 of #text > DIV > #document-fragment affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
4
EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
4
EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
5
EDITING DELEGATE: webViewDidChange:WebViewDidChangeNotification
5
EDITING DELEGATE: webViewDidChange:WebViewDidChangeNotification
6
EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
6
EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
- a/LayoutTests/platform/mac/platform/mac/editing/spelling/autocorrection-at-beginning-of-word-1-expected.txt -1 / +1 lines
Lines 1-6 a/LayoutTests/platform/mac/platform/mac/editing/spelling/autocorrection-at-beginning-of-word-1-expected.txt_sec1
1
EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
1
EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
2
EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
2
EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
3
EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 0 of DIV > #document-fragment to 0 of DIV > #document-fragment toDOMRange:range from 1 of #text > DIV > #document-fragment to 1 of #text > DIV > #document-fragment affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
3
EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 1 of #text > DIV > #document-fragment to 1 of #text > DIV > #document-fragment toDOMRange:range from 1 of #text > DIV > #document-fragment to 1 of #text > DIV > #document-fragment affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
4
EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
4
EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
5
EDITING DELEGATE: webViewDidChange:WebViewDidChangeNotification
5
EDITING DELEGATE: webViewDidChange:WebViewDidChangeNotification
6
EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
6
EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
- a/LayoutTests/platform/mac/platform/mac/editing/spelling/autocorrection-at-beginning-of-word-2-expected.txt -1 / +1 lines
Lines 1-6 a/LayoutTests/platform/mac/platform/mac/editing/spelling/autocorrection-at-beginning-of-word-2-expected.txt_sec1
1
EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
1
EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
2
EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
2
EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
3
EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 0 of DIV > #document-fragment to 0 of DIV > #document-fragment toDOMRange:range from 1 of #text > DIV > #document-fragment to 1 of #text > DIV > #document-fragment affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
3
EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 1 of #text > DIV > #document-fragment to 1 of #text > DIV > #document-fragment toDOMRange:range from 1 of #text > DIV > #document-fragment to 1 of #text > DIV > #document-fragment affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
4
EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
4
EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
5
EDITING DELEGATE: webViewDidChange:WebViewDidChangeNotification
5
EDITING DELEGATE: webViewDidChange:WebViewDidChangeNotification
6
EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
6
EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification

Return to Bug 128949