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