Title: [140936] trunk
Revision
140936
Author
[email protected]
Date
2013-01-27 18:47:17 -0800 (Sun, 27 Jan 2013)

Log Message

Disabled input/textarea doesn't trigger selection change
https://bugs.webkit.org/show_bug.cgi?id=85244

Reviewed by Ryosuke Niwa.

Source/WebCore:

Only rootEditableNode is there in <input> or <textarea>, 'select' event is fired.
Since readonly or disabled input/textarea element does not have editable element,
'select' event was not fired.

We don't need the check.

Test: fast/forms/input-readonly-select.html

* editing/FrameSelection.cpp:
(WebCore::FrameSelection::notifyRendererOfSelectionChange):

LayoutTests:

* fast/forms/input-readonly-select-expected.txt: Added.
* fast/forms/input-readonly-select.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (140935 => 140936)


--- trunk/LayoutTests/ChangeLog	2013-01-28 02:32:10 UTC (rev 140935)
+++ trunk/LayoutTests/ChangeLog	2013-01-28 02:47:17 UTC (rev 140936)
@@ -1,3 +1,13 @@
+2013-01-27  Shinya Kawanaka  <[email protected]>
+
+        Disabled input/textarea doesn't trigger selection change
+        https://bugs.webkit.org/show_bug.cgi?id=85244
+
+        Reviewed by Ryosuke Niwa.
+
+        * fast/forms/input-readonly-select-expected.txt: Added.
+        * fast/forms/input-readonly-select.html: Added.
+
 2013-01-27  Sheriff Bot  <[email protected]>
 
         Unreviewed, rolling out r140741.

Added: trunk/LayoutTests/fast/forms/input-readonly-select-expected.txt (0 => 140936)


--- trunk/LayoutTests/fast/forms/input-readonly-select-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/fast/forms/input-readonly-select-expected.txt	2013-01-28 02:47:17 UTC (rev 140936)
@@ -0,0 +1,22 @@
+double clicking on normal input
+PASS selectEventFiredOnInput is true
+
+double clicking on readonly input
+PASS selectEventFiredOnReadonlyInput is true
+
+double clicking on disabled input
+PASS selectEventFiredOnDisabledInput is true
+
+double clicking on normal textarea
+PASS selectEventFiredOnTextarea is true
+
+double clicking on readonly textarea
+PASS selectEventFiredOnReadonlyTextarea is true
+
+double clicking on disabled textarea
+PASS selectEventFiredOnDisabledTextarea is true
+
+PASS successfullyParsed is true
+
+TEST COMPLETE
+

Added: trunk/LayoutTests/fast/forms/input-readonly-select.html (0 => 140936)


--- trunk/LayoutTests/fast/forms/input-readonly-select.html	                        (rev 0)
+++ trunk/LayoutTests/fast/forms/input-readonly-select.html	2013-01-28 02:47:17 UTC (rev 140936)
@@ -0,0 +1,90 @@
+<!DOCTYPE html>
+<html><body>
+<script src=""
+
+<div id="container">
+    <input id="input" type="text" value="something">
+    <input id="readonlyInput" type="text" readonly value="something">
+    <input id="disabledInput" type="text" disabled value="something">
+
+    <textarea id="textarea">something</textarea>
+    <textarea id="readonlyTextarea" readonly>something</textarea>
+    <textarea id="disabledTextarea" disabled>something</textarea>
+</div>
+<pre id="console"></pre>
+
+<script>
+function doubleClickOn(element)
+{
+    var x = element.offsetLeft + element.offsetWidth / 2;
+    var y = element.offsetTop + element.offsetHeight / 2;
+
+    eventSender.mouseMoveTo(x, y);
+    eventSender.mouseDown();
+    eventSender.mouseUp();
+    eventSender.mouseDown();
+    eventSender.mouseUp();
+}
+
+var selectEventFiredOnInput = false;
+var selectEventFiredOnReadonlyInput = false;
+var selectEventFiredOnDisabledInput = false;
+var selectEventFiredOnTextarea = false;
+var selectEventFiredOnReadonlyTextarea = false;
+var selectEventFiredOnDisabledTextarea = false;
+
+input.addEventListener('select', function() {
+    selectEventFiredOnInput = true;
+});
+readonlyInput.addEventListener('select', function() {
+    selectEventFiredOnReadonlyInput = true;
+});
+disabledInput.addEventListener('select', function() {
+    selectEventFiredOnDisabledInput = true;
+});
+
+textarea.addEventListener('select', function() {
+    selectEventFiredOnTextarea = true;
+});
+readonlyTextarea.addEventListener('select', function() {
+    selectEventFiredOnReadonlyTextarea = true;
+});
+disabledTextarea.addEventListener('select', function() {
+    selectEventFiredOnDisabledTextarea = true;
+});
+
+debug('double clicking on normal input');
+doubleClickOn(input);
+shouldBeTrue('selectEventFiredOnInput');
+debug('');
+
+debug('double clicking on readonly input');
+doubleClickOn(readonlyInput);
+shouldBeTrue('selectEventFiredOnReadonlyInput');
+debug('');
+
+debug('double clicking on disabled input');
+doubleClickOn(disabledInput);
+shouldBeTrue('selectEventFiredOnDisabledInput');
+debug('');
+
+debug('double clicking on normal textarea');
+doubleClickOn(textarea);
+shouldBeTrue('selectEventFiredOnTextarea');
+debug('');
+
+debug('double clicking on readonly textarea');
+doubleClickOn(readonlyTextarea);
+shouldBeTrue('selectEventFiredOnReadonlyTextarea');
+debug('');
+
+debug('double clicking on disabled textarea');
+doubleClickOn(disabledTextarea);
+shouldBeTrue('selectEventFiredOnDisabledTextarea');
+debug('');
+
+container.innerHTML = "";
+</script>
+
+<script src=""
+</body></html>

Modified: trunk/Source/WebCore/ChangeLog (140935 => 140936)


--- trunk/Source/WebCore/ChangeLog	2013-01-28 02:32:10 UTC (rev 140935)
+++ trunk/Source/WebCore/ChangeLog	2013-01-28 02:47:17 UTC (rev 140936)
@@ -1,3 +1,21 @@
+2013-01-27  Shinya Kawanaka  <[email protected]>
+
+        Disabled input/textarea doesn't trigger selection change
+        https://bugs.webkit.org/show_bug.cgi?id=85244
+
+        Reviewed by Ryosuke Niwa.
+
+        Only rootEditableNode is there in <input> or <textarea>, 'select' event is fired.
+        Since readonly or disabled input/textarea element does not have editable element,
+        'select' event was not fired.
+
+        We don't need the check.
+
+        Test: fast/forms/input-readonly-select.html
+
+        * editing/FrameSelection.cpp:
+        (WebCore::FrameSelection::notifyRendererOfSelectionChange):
+
 2013-01-27  Keishi Hattori  <[email protected]>
 
         Unreviewed, rolling out r140850.

Modified: trunk/Source/WebCore/editing/FrameSelection.cpp (140935 => 140936)


--- trunk/Source/WebCore/editing/FrameSelection.cpp	2013-01-28 02:32:10 UTC (rev 140935)
+++ trunk/Source/WebCore/editing/FrameSelection.cpp	2013-01-28 02:47:17 UTC (rev 140936)
@@ -1830,9 +1830,6 @@
 {
     m_frame->document()->updateStyleIfNeeded();
 
-    if (!rootEditableElement())
-        return;
-
     if (HTMLTextFormControlElement* textControl = enclosingTextFormControl(start()))
         textControl->selectionChanged(userTriggered == UserTriggered);
 }
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to