Changeset 86744 in webkit
- Timestamp:
- May 18, 2011 2:33:42 AM (13 years ago)
- Location:
- trunk
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r86742 r86744 1 2011-05-18 Kent Tamura <tkent@chromium.org> 2 3 Reviewed by Hajime Morita. 4 5 valueMissing validity for <select> is lame when selecting a value by a key operation 6 https://bugs.webkit.org/show_bug.cgi?id=61021 7 8 Add test cases for the bug. 9 10 * fast/forms/ValidityState-valueMissing-002-expected.txt: 11 * fast/forms/ValidityState-valueMissing-002.html: 12 1 13 2011-05-18 Kristóf Kosztyó <Kosztyo.Kristof@stud.u-szeged.hu> 2 14 -
trunk/LayoutTests/fast/forms/ValidityState-valueMissing-002-expected.txt
r73606 r86744 14 14 PASS valueMissingFor("select-with-fake-placeholder-size2-multiple") is false 15 15 PASS valueMissingFor("select-without-fake-placeholder-size2-multiple") is false 16 Updating valueMissing state by a key input: 17 PASS valueMissingFor("select-selecting-by-key") is true 18 PASS select.value is "a" 19 PASS valueMissingFor("select-selecting-by-key") is false 20 PASS valueMissingFor("select-selecting-by-key-2") is true 21 PASS select.value is "a" 22 PASS valueMissingFor("select-selecting-by-key-2") is false 16 23 PASS successfullyParsed is true 17 24 18 25 TEST COMPLETE 19 26 -
trunk/LayoutTests/fast/forms/ValidityState-valueMissing-002.html
r73606 r86744 9 9 <p id="description"></p> 10 10 <div id="console"></div> 11 <div id=parent> 11 12 <input id="input" name="victim" value="something" required/> 12 13 <textarea id="textarea" name="victim" required>something</textarea> … … 43 44 <option value="" /> 44 45 </select> 46 <select id=select-selecting-by-key required> 47 <option value="" selected/> 48 <option>a</option> 49 </select> 50 <select id=select-selecting-by-key-2 required> 51 <option value="" selected/> 52 <option accesskey="1">a</option> 53 </select> 54 </div> 45 55 <script language="JavaScript" type="text/javascript"> 46 56 function valueMissingFor(id) { … … 49 59 50 60 description("This test checks validity.valueMissing with some values or options with some values selected."); 51 52 v = document.getElementsByName("victim");53 61 54 62 shouldBeFalse('valueMissingFor("input")'); … … 63 71 shouldBeFalse('valueMissingFor("select-without-fake-placeholder-size2-multiple")'); 64 72 73 // Need to use eventSender instead of initKeyboardEvent() because we can't 74 // make an event which returns a correct value for keyCode by initKeyboardEvent(). 75 if (window.eventSender) { 76 debug("Updating valueMissing state by a key input:") 77 // Select by type-ahead. 78 var select = document.getElementById("select-selecting-by-key"); 79 shouldBeTrue('valueMissingFor("select-selecting-by-key")'); 80 select.focus(); 81 eventSender.keyDown("a"); 82 shouldBe('select.value', '"a"'); 83 shouldBeFalse('valueMissingFor("select-selecting-by-key")'); 84 85 // Select by accesskey. 86 select = document.getElementById("select-selecting-by-key-2"); 87 shouldBeTrue('valueMissingFor("select-selecting-by-key-2")'); 88 select.focus(); 89 var modifiers; 90 if (navigator.userAgent.search(/\bMac OS X\b/) != -1) 91 modifiers = ['ctrlKey', 'altKey']; 92 else 93 modifiers = ['altKey']; 94 eventSender.keyDown("1", modifiers); 95 shouldBe('select.value', '"a"'); 96 shouldBeFalse('valueMissingFor("select-selecting-by-key-2")'); 97 } else { 98 debug('There are tests using eventSender.'); 99 } 100 101 document.body.removeChild(document.getElementById('parent')); 65 102 var successfullyParsed = true; 66 103 </script> -
trunk/Source/WebCore/ChangeLog
r86743 r86744 1 2011-05-18 Kent Tamura <tkent@chromium.org> 2 3 Reviewed by Hajime Morita. 4 5 valueMissing validity for <select> is lame when selecting a value by a key operation 6 https://bugs.webkit.org/show_bug.cgi?id=61021 7 8 We missed updating validity in case that SelectElement::defaultEventHandler 9 update selections. So, SelectElement::setSelectedIndex() updates validity. 10 11 * dom/SelectElement.cpp: 12 (WebCore::SelectElement::setSelectedIndex): Call SelectElement::updateValidity(). 13 * html/HTMLSelectElement.cpp: 14 (WebCore::HTMLSelectElement::setSelectedIndex): 15 Remove unnecessary setNeedsValidityCheck() call. 16 SelectElement::setSlectedIndex() calls it. 17 (WebCore::HTMLSelectElement::setSelectedIndexByUser): ditto. 18 1 19 2011-05-17 Mikhail Naganov <mnaganov@chromium.org> 2 20 -
trunk/Source/WebCore/dom/SelectElement.cpp
r86135 r86744 396 396 } 397 397 398 toSelectElement(element)->updateValidity(); 398 399 if (Frame* frame = element->document()->frame()) 399 400 frame->page()->chrome()->client()->formStateDidChange(element); -
trunk/Source/WebCore/html/HTMLSelectElement.cpp
r80808 r86744 85 85 { 86 86 SelectElement::setSelectedIndex(m_data, this, optionIndex, deselect, false, false); 87 setNeedsValidityCheck();88 87 } 89 88 … … 108 107 109 108 SelectElement::setSelectedIndex(m_data, this, optionIndex, deselect, fireOnChangeNow, true); 110 setNeedsValidityCheck();111 109 } 112 110
Note: See TracChangeset
for help on using the changeset viewer.