Title: [164367] trunk
Revision
164367
Author
[email protected]
Date
2014-02-19 09:54:31 -0800 (Wed, 19 Feb 2014)

Log Message

Do not dispatch change event twice in single step action
https://bugs.webkit.org/show_bug.cgi?id=116936
<rdar://problem/16086828>

Reviewed by Ryosuke Niwa.

Merged from Blink (patch by Kent Tamura):
https://src.chromium.org/viewvc/blink?view=rev&revision=151175

Source/WebCore:

Test: fast/forms/number/number-type-update-by-change-event.html

* html/InputType.cpp:
(WebCore::InputType::stepUpFromRenderer):

LayoutTests:

* fast/forms/number/number-type-update-by-change-event-expected.txt: Added.
* fast/forms/number/number-type-update-by-change-event.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (164366 => 164367)


--- trunk/LayoutTests/ChangeLog	2014-02-19 17:35:49 UTC (rev 164366)
+++ trunk/LayoutTests/ChangeLog	2014-02-19 17:54:31 UTC (rev 164367)
@@ -1,3 +1,17 @@
+2014-02-19  Daniel Bates  <[email protected]>
+
+        Do not dispatch change event twice in single step action
+        https://bugs.webkit.org/show_bug.cgi?id=116936
+        <rdar://problem/16086828>
+
+        Reviewed by Ryosuke Niwa.
+
+        Merged from Blink (patch by Kent Tamura):
+        https://src.chromium.org/viewvc/blink?view=rev&revision=151175
+
+        * fast/forms/number/number-type-update-by-change-event-expected.txt: Added.
+        * fast/forms/number/number-type-update-by-change-event.html: Added.
+
 2014-02-19  Piotr Grad  <[email protected]>
 
         Setting playback rate on Media Controller modifies current time.

Added: trunk/LayoutTests/fast/forms/number/number-type-update-by-change-event-expected.txt (0 => 164367)


--- trunk/LayoutTests/fast/forms/number/number-type-update-by-change-event-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/fast/forms/number/number-type-update-by-change-event-expected.txt	2014-02-19 17:54:31 UTC (rev 164367)
@@ -0,0 +1,6 @@
+PASS if not crashed in ASAN build.
+PASS changeEventCounter is 1
+PASS successfullyParsed is true
+
+TEST COMPLETE
+

Added: trunk/LayoutTests/fast/forms/number/number-type-update-by-change-event.html (0 => 164367)


--- trunk/LayoutTests/fast/forms/number/number-type-update-by-change-event.html	                        (rev 0)
+++ trunk/LayoutTests/fast/forms/number/number-type-update-by-change-event.html	2014-02-19 17:54:31 UTC (rev 164367)
@@ -0,0 +1,28 @@
+<!DOCTYPE>
+<html>
+<body>
+<script src=""
+<input type="number" _onchange_="handleChange(this);">
+<script>
+function sendKey(keyName) {
+    var event = document.createEvent('KeyboardEvent');
+    event.initKeyboardEvent('keydown', true, true, document.defaultView, keyName);
+    document.activeElement.dispatchEvent(event);
+}
+
+function handleChange(element) {
+    element.type = '';
+    ++changeEventCounter;
+}
+
+var changeEventCounter = 0;
+var numberInput = document.getElementsByTagName('input')[0];
+numberInput.focus();
+sendKey('Up');
+
+testPassed('if not crashed in ASAN build.');
+shouldBe('changeEventCounter', '1');
+</script>
+<script src=""
+</body>
+</html>

Modified: trunk/Source/WebCore/ChangeLog (164366 => 164367)


--- trunk/Source/WebCore/ChangeLog	2014-02-19 17:35:49 UTC (rev 164366)
+++ trunk/Source/WebCore/ChangeLog	2014-02-19 17:54:31 UTC (rev 164367)
@@ -1,3 +1,19 @@
+2014-02-19  Daniel Bates  <[email protected]>
+
+        Do not dispatch change event twice in single step action
+        https://bugs.webkit.org/show_bug.cgi?id=116936
+        <rdar://problem/16086828>
+
+        Reviewed by Ryosuke Niwa.
+
+        Merged from Blink (patch by Kent Tamura):
+        https://src.chromium.org/viewvc/blink?view=rev&revision=151175
+
+        Test: fast/forms/number/number-type-update-by-change-event.html
+
+        * html/InputType.cpp:
+        (WebCore::InputType::stepUpFromRenderer):
+
 2014-02-19  Brady Eidson  <[email protected]>
 
         Add FeatureDefines for image controls

Modified: trunk/Source/WebCore/html/InputType.cpp (164366 => 164367)


--- trunk/Source/WebCore/html/InputType.cpp	2014-02-19 17:35:49 UTC (rev 164366)
+++ trunk/Source/WebCore/html/InputType.cpp	2014-02-19 17:54:31 UTC (rev 164367)
@@ -64,6 +64,7 @@
 #include "RenderTheme.h"
 #include "ResetInputType.h"
 #include "RuntimeEnabledFeatures.h"
+#include "ScopedEventQueue.h"
 #include "SearchInputType.h"
 #include "ShadowRoot.h"
 #include "SubmitInputType.h"
@@ -1098,6 +1099,7 @@
     if (!stepRange.hasStep())
       return;
 
+    EventQueueScope scope;
     const Decimal step = stepRange.step();
 
     int sign;
@@ -1117,7 +1119,7 @@
             current = stepRange.minimum() - nextDiff;
         if (current > stepRange.maximum() - nextDiff)
             current = stepRange.maximum() - nextDiff;
-        setValueAsDecimal(current, DispatchInputAndChangeEvent, IGNORE_EXCEPTION);
+        setValueAsDecimal(current, DispatchNoEvent, IGNORE_EXCEPTION);
     }
     if ((sign > 0 && current < stepRange.minimum()) || (sign < 0 && current > stepRange.maximum()))
         setValueAsDecimal(sign > 0 ? stepRange.minimum() : stepRange.maximum(), DispatchInputAndChangeEvent, IGNORE_EXCEPTION);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to