Changeset 139151 in webkit


Ignore:
Timestamp:
Jan 8, 2013 8:17:46 PM (11 years ago)
Author:
tkent@chromium.org
Message:

REGRESSION(r135836): Invalid user input for input[type=number] should be cleared by input.value=""
https://bugs.webkit.org/show_bug.cgi?id=106284

Reviewed by Hajime Morita.

Source/WebCore:

No new tests. Updates fast/forms/number/number/validity-badinput.html.

  • html/NumberInputType.cpp:

(WebCore::NumberInputType::setValue):
If the new sanitized value is empty and innerTextValue is a bad input
(it means !valueChanged && !innerTextValue().isEmpty() because the new
sanitized value is empty), we need to update innerTextValue with the
empty string.

  • html/NumberInputType.h:

(NumberInputType): Declare setValue.

LayoutTests:

  • fast/forms/number/number-validity-badinput.html:

Add a test case.

  • fast/forms/number/number-validity-badinput-expected.txt:
Location:
trunk
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r139150 r139151  
     12013-01-08  Kent Tamura  <tkent@chromium.org>
     2
     3        REGRESSION(r135836): Invalid user input for input[type=number] should be cleared by input.value=""
     4        https://bugs.webkit.org/show_bug.cgi?id=106284
     5
     6        Reviewed by Hajime Morita.
     7
     8        * fast/forms/number/number-validity-badinput.html:
     9        Add a test case.
     10        * fast/forms/number/number-validity-badinput-expected.txt:
     11
    1122013-01-08  Nate Chapin  <japhet@chromium.org>
    213
  • trunk/LayoutTests/fast/forms/number/number-validity-badinput-expected.txt

    r135838 r139151  
    2727The element losts a renderer. The element state should not be changed.
    2828PASS number.style.display = "none"; number.validity.badInput is true
     29A bad input should be cleared by value="".
     30PASS number.value = ""; document.execCommand("SelectAll"); document.getSelection().toString() is ""
    2931PASS successfullyParsed is true
    3032
  • trunk/LayoutTests/fast/forms/number/number-validity-badinput.html

    r135838 r139151  
    6060shouldBeTrue('number.style.display = "none"; number.validity.badInput');
    6161
     62number.style.display = 'inline-block';
     63number.focus();
     64debug('A bad input should be cleared by value="".');
     65shouldBeEqualToString('number.value = ""; document.execCommand("SelectAll"); document.getSelection().toString()', '');
     66
    6267document.getElementById('parent').innerHTML = '';
    6368</script>
  • trunk/Source/WebCore/ChangeLog

    r139150 r139151  
     12013-01-08  Kent Tamura  <tkent@chromium.org>
     2
     3        REGRESSION(r135836): Invalid user input for input[type=number] should be cleared by input.value=""
     4        https://bugs.webkit.org/show_bug.cgi?id=106284
     5
     6        Reviewed by Hajime Morita.
     7
     8        No new tests. Updates fast/forms/number/number/validity-badinput.html.
     9
     10        * html/NumberInputType.cpp:
     11        (WebCore::NumberInputType::setValue):
     12        If the new sanitized value is empty and innerTextValue is a bad input
     13        (it means !valueChanged && !innerTextValue().isEmpty() because the new
     14        sanitized value is empty), we need to update innerTextValue with the
     15        empty string.
     16        * html/NumberInputType.h:
     17        (NumberInputType): Declare setValue.
     18
    1192013-01-08  Nate Chapin  <japhet@chromium.org>
    220
  • trunk/Source/WebCore/html/NumberInputType.cpp

    r135836 r139151  
    107107}
    108108
     109void NumberInputType::setValue(const String& sanitizedValue, bool valueChanged, TextFieldEventBehavior eventBehavior)
     110{
     111    if (!valueChanged && sanitizedValue.isEmpty() && !element()->innerTextValue().isEmpty())
     112        updateInnerTextValue();
     113    TextFieldInputType::setValue(sanitizedValue, valueChanged, eventBehavior);
     114}
     115
    109116double NumberInputType::valueAsDouble() const
    110117{
  • trunk/Source/WebCore/html/NumberInputType.h

    r135836 r139151  
    4343    NumberInputType(HTMLInputElement* element) : TextFieldInputType(element) { }
    4444    virtual const AtomicString& formControlType() const OVERRIDE;
     45    virtual void setValue(const String&, bool valueChanged, TextFieldEventBehavior) OVERRIDE;
    4546    virtual double valueAsDouble() const OVERRIDE;
    4647    virtual void setValueAsDouble(double, TextFieldEventBehavior, ExceptionCode&) const OVERRIDE;
Note: See TracChangeset for help on using the changeset viewer.