Title: [134181] branches/chromium/1312
- Revision
- 134181
- Author
- tk...@chromium.org
- Date
- 2012-11-11 17:41:50 -0800 (Sun, 11 Nov 2012)
Log Message
Merge 133860 - User can change a disabled select (drop down box)
https://bugs.webkit.org/show_bug.cgi?id=100932
Patch by Kunihiko Sakamoto <ksakam...@chromium.org> on 2012-11-08
Reviewed by Kent Tamura.
Source/WebCore:
<select> should not handle events if it's disabled.
Test: fast/forms/select/select-disabled.html
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::defaultEventHandler):
LayoutTests:
Verify that keyboard events do not change value of disabled select.
* fast/forms/select/select-disabled-expected.txt: Added.
* fast/forms/select/select-disabled.html: Added.
TBR=commit-qu...@webkit.org
Review URL: https://codereview.chromium.org/11363189
Modified Paths
Added Paths
Diff
Copied: branches/chromium/1312/LayoutTests/fast/forms/select/select-disabled-expected.txt (from rev 133860, trunk/LayoutTests/fast/forms/select/select-disabled-expected.txt) (0 => 134181)
--- branches/chromium/1312/LayoutTests/fast/forms/select/select-disabled-expected.txt (rev 0)
+++ branches/chromium/1312/LayoutTests/fast/forms/select/select-disabled-expected.txt 2012-11-12 01:41:50 UTC (rev 134181)
@@ -0,0 +1,17 @@
+Tests that user cannot change disabled select by keyboard
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS select1.value is "a"
+PASS select1.value is "b"
+PASS select1.value is "b"
+PASS select1.value is "b"
+PASS select2.value is "a"
+PASS select2.value is "b"
+PASS select2.value is "b"
+PASS select2.value is "b"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
Copied: branches/chromium/1312/LayoutTests/fast/forms/select/select-disabled.html (from rev 133860, trunk/LayoutTests/fast/forms/select/select-disabled.html) (0 => 134181)
--- branches/chromium/1312/LayoutTests/fast/forms/select/select-disabled.html (rev 0)
+++ branches/chromium/1312/LayoutTests/fast/forms/select/select-disabled.html 2012-11-12 01:41:50 UTC (rev 134181)
@@ -0,0 +1,48 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src=""
+</head>
+<body>
+
+<select id=select1 size=3>
+<option selected>a</option>
+<option>b</option>
+<option>c</option>
+</select>
+
+<select id=select2>
+<option selected>a</option>
+<option>b</option>
+<option>c</option>
+</select>
+
+<script>
+description('Tests that user cannot change disabled select by keyboard');
+
+var select1 = document.getElementById('select1');
+select1.focus();
+shouldBeEqualToString('select1.value', 'a');
+eventSender.keyDown('downArrow');
+shouldBeEqualToString('select1.value', 'b');
+select1.disabled = true;
+eventSender.keyDown('downArrow');
+shouldBeEqualToString('select1.value', 'b');
+eventSender.keyDown('c');
+shouldBeEqualToString('select1.value', 'b');
+
+var select2 = document.getElementById('select2');
+select2.focus();
+shouldBeEqualToString('select2.value', 'a');
+eventSender.keyDown('b');
+shouldBeEqualToString('select2.value', 'b');
+select2.disabled = true;
+eventSender.keyDown('downArrow');
+shouldBeEqualToString('select2.value', 'b');
+eventSender.keyDown('c');
+shouldBeEqualToString('select2.value', 'b');
+
+</script>
+<script src=""
+</body>
+</html>
Modified: branches/chromium/1312/Source/WebCore/html/HTMLSelectElement.cpp (134180 => 134181)
--- branches/chromium/1312/Source/WebCore/html/HTMLSelectElement.cpp 2012-11-12 01:40:04 UTC (rev 134180)
+++ branches/chromium/1312/Source/WebCore/html/HTMLSelectElement.cpp 2012-11-12 01:41:50 UTC (rev 134181)
@@ -1440,6 +1440,11 @@
if (!renderer())
return;
+ if (disabled()) {
+ HTMLFormControlElementWithState::defaultEventHandler(event);
+ return;
+ }
+
if (usesMenuList())
menuListDefaultEventHandler(event);
else
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes