Title: [109193] trunk
- Revision
- 109193
- Author
- [email protected]
- Date
- 2012-02-28 22:17:09 -0800 (Tue, 28 Feb 2012)
Log Message
[Forms] Spin button sometimes ignores Indeterminate of m_upDownState
https://bugs.webkit.org/show_bug.cgi?id=79754
Patch by Yoshifumi Inoue <[email protected]> on 2012-02-28
Reviewed by Kent Tamura.
Source/WebCore:
This patch checks enum value Indeterminate before using m_upDownState. This make
sure Indeterminate state doesn't act like Down state.
m_upDownState can be Indeterminate at mousedown event if mouse pointer is on
spin button when it is displayed.
Test: fast/forms/number/spin-button-state.html
* html/shadow/TextControlInnerElements.cpp:
(WebCore::SpinButtonElement::defaultEventHandler):
(WebCore::SpinButtonElement::repeatingTimerFired):
LayoutTests:
* fast/forms/number/spin-button-state.html: Added.
* fast/forms/number/spin-button-state-expected.txt: Added.
Modified Paths
Added Paths
Diff
Modified: trunk/LayoutTests/ChangeLog (109192 => 109193)
--- trunk/LayoutTests/ChangeLog 2012-02-29 06:13:48 UTC (rev 109192)
+++ trunk/LayoutTests/ChangeLog 2012-02-29 06:17:09 UTC (rev 109193)
@@ -1,3 +1,13 @@
+2012-02-28 Yoshifumi Inoue <[email protected]>
+
+ [Forms] Spin button sometimes ignores Indeterminate of m_upDownState
+ https://bugs.webkit.org/show_bug.cgi?id=79754
+
+ Reviewed by Kent Tamura.
+
+ * fast/forms/number/spin-button-state.html: Added.
+ * fast/forms/number/spin-button-state-expected.txt: Added.
+
2012-02-27 MORITA Hajime <[email protected]>
[Refactoring] RenderSummary and RenderDetail is no longer needed.
Added: trunk/LayoutTests/fast/forms/number/spin-button-state-expected.txt (0 => 109193)
--- trunk/LayoutTests/fast/forms/number/spin-button-state-expected.txt (rev 0)
+++ trunk/LayoutTests/fast/forms/number/spin-button-state-expected.txt 2012-02-29 06:17:09 UTC (rev 109193)
@@ -0,0 +1,13 @@
+BUG 79754[Forms] Spin button sometimes ignores Indeterminate of m_upDownState
+
+
+Manualt test steps
+
+Invoke browser with specifying screen position where moust pointer on the spin button.
+Click left mouse button without moving mouse pointer.
+Value should not be changed.
+Result
+
+expect 0, actual=0
+expect 1, actual=1
+
Added: trunk/LayoutTests/fast/forms/number/spin-button-state.html (0 => 109193)
--- trunk/LayoutTests/fast/forms/number/spin-button-state.html (rev 0)
+++ trunk/LayoutTests/fast/forms/number/spin-button-state.html 2012-02-29 06:17:09 UTC (rev 109193)
@@ -0,0 +1,46 @@
+<h1>BUG <a href="" Spin button sometimes ignores Indeterminate of m_upDownState</h1>
+<div id="outer">
+<input id="num1" type="number" value="0">
+</div>
+<h2>Manualt test steps</h2>
+<ol>
+<li>Invoke browser with specifying screen position where moust pointer on the spin button.</li>
+<li>Click left mouse button without moving mouse pointer.</li>
+<li>Value should not be changed.</li>
+</ol>
+<h2>Result</h2>
+<div id="logs"></div>
+<script>
+var logs = document.getElementById("logs");
+function log(msg) { logs.innerHTML += msg + "<br>"; }
+
+function testIt() {
+ layoutTestController.dumpAsText();
+
+ var outer = document.getElementById("outer");
+
+ var num1 = document.getElementById("num1");
+ var mouseX = num1.offsetLeft + num1.offsetWidth - 5;
+ var mouseY = num1.offsetTop + 5;
+ eventSender.mouseMoveTo(mouseX, mouseY);
+
+ // Re-construct input element.
+ var ctrlHtml = outer.innerHTML;
+ outer.innerHTML = "";
+ outer.innerHTML = ctrlHtml;
+
+ var num2 = document.getElementById("num1");
+ eventSender.mouseDown();
+ log("expect 0, actual=" + num2.value);
+ eventSender.mouseUp();
+
+ // Move mouse pointer but still in spin button.
+ eventSender.mouseMoveTo(mouseX, mouseY - 1);
+ eventSender.mouseDown();
+ log("expect 1, actual=" + num2.value);
+}
+
+if (window.layoutTestController) {
+ testIt();
+}
+</script>
Modified: trunk/Source/WebCore/ChangeLog (109192 => 109193)
--- trunk/Source/WebCore/ChangeLog 2012-02-29 06:13:48 UTC (rev 109192)
+++ trunk/Source/WebCore/ChangeLog 2012-02-29 06:17:09 UTC (rev 109193)
@@ -1,3 +1,22 @@
+2012-02-28 Yoshifumi Inoue <[email protected]>
+
+ [Forms] Spin button sometimes ignores Indeterminate of m_upDownState
+ https://bugs.webkit.org/show_bug.cgi?id=79754
+
+ Reviewed by Kent Tamura.
+
+ This patch checks enum value Indeterminate before using m_upDownState. This make
+ sure Indeterminate state doesn't act like Down state.
+
+ m_upDownState can be Indeterminate at mousedown event if mouse pointer is on
+ spin button when it is displayed.
+
+ Test: fast/forms/number/spin-button-state.html
+
+ * html/shadow/TextControlInnerElements.cpp:
+ (WebCore::SpinButtonElement::defaultEventHandler):
+ (WebCore::SpinButtonElement::repeatingTimerFired):
+
2012-02-27 MORITA Hajime <[email protected]>
[Refactoring] RenderSummary and RenderDetail is no longer needed.
Modified: trunk/Source/WebCore/html/shadow/TextControlInnerElements.cpp (109192 => 109193)
--- trunk/Source/WebCore/html/shadow/TextControlInnerElements.cpp 2012-02-29 06:13:48 UTC (rev 109192)
+++ trunk/Source/WebCore/html/shadow/TextControlInnerElements.cpp 2012-02-29 06:17:09 UTC (rev 109193)
@@ -294,10 +294,11 @@
input->focus();
input->select();
if (renderer()) {
- ASSERT(m_upDownState != Indeterminate);
- input->stepUpFromRenderer(m_upDownState == Up ? 1 : -1);
- if (renderer())
- startRepeatingTimer();
+ if (m_upDownState != Indeterminate) {
+ input->stepUpFromRenderer(m_upDownState == Up ? 1 : -1);
+ if (renderer())
+ startRepeatingTimer();
+ }
}
event->setDefaultHandled();
}
@@ -365,7 +366,8 @@
void SpinButtonElement::repeatingTimerFired(Timer<SpinButtonElement>*)
{
- step(m_upDownState == Up ? 1 : -1);
+ if (m_upDownState != Indeterminate)
+ step(m_upDownState == Up ? 1 : -1);
}
void SpinButtonElement::setHovered(bool flag)
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes