Dispatch change event for Input type=range for touchEnd

Adds dispatch change event at touchEnd.

R=tkent@chromium.org, keishi1@chromium.org
BUG=361335
TEST=On touch start check input event is dispatched and on touch end check change event is dispatched

Review URL: https://codereview.chromium.org/234933002

git-svn-id: svn://svn.chromium.org/blink/trunk@171455 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent 278d24be
......@@ -24,13 +24,24 @@
eventSender.mouseMoveTo(slider.offsetLeft + 7, slider.offsetTop + 7);
eventSender.mouseDown();
eventSender.mouseUp();
// On touch events, check if change event is dispatched at touch end
var x = slider.offsetLeft;
var y = slider.offsetTop + slider.clientHeight / 2;
var w = slider.clientWidth;
eventSender.clearTouchPoints();
eventSender.addTouchPoint(x + w / 2, y);
eventSender.touchStart();
eventSender.touchMove();
eventSender.releaseTouchPoint(0);
eventSender.touchEnd();
}
}
</script>
</head>
<body onload="test()">
This tests that slider controls get the onchange event and that it is sent after the DOMInput event.<br>
<input type="range" id="slider" onchange="log('change')" oninput="log('input')" value=0>
<input type="range" id="slider" onchange="log('change')" oninput="log('input')" value=0 width=200px height=300px>
<div id="res"></div>
</body>
</html>
......@@ -166,6 +166,7 @@ void RangeInputType::handleTouchEvent(TouchEvent* event)
return;
if (event->type() == EventTypeNames::touchend) {
element().dispatchFormControlChangeEvent();
event->setDefaultHandled();
return;
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment