Diff
Modified: trunk/LayoutTests/ChangeLog (182222 => 182223)
--- trunk/LayoutTests/ChangeLog 2015-04-01 06:18:30 UTC (rev 182222)
+++ trunk/LayoutTests/ChangeLog 2015-04-01 07:07:12 UTC (rev 182223)
@@ -1,3 +1,20 @@
+2015-04-01 Alexey Proskuryakov <a...@apple.com>
+
+ REGRESSION (r179820): accessibility/textarea-selected-text-range.html is flaky
+ https://bugs.webkit.org/show_bug.cgi?id=142976
+
+ Reviewed by Chris Fleizach.
+
+ * platform/mac/TestExpectations: Removed an expectation.
+
+ * accessibility/textarea-selected-text-range-expected.txt:
+ * accessibility/textarea-selected-text-range.html:
+ Don't race a timer with an internal dispatch_async.
+
+ * platform/mac/accessibility/select-element-selection-with-optgroups-expected.txt:
+ * platform/mac/accessibility/select-element-selection-with-optgroups.html:
+ This test had the same issue.
+
2015-03-31 Ryosuke Niwa <rn...@webkit.org>
ES6 class syntax should allow static setters and getters
Modified: trunk/LayoutTests/accessibility/textarea-selected-text-range-expected.txt (182222 => 182223)
--- trunk/LayoutTests/accessibility/textarea-selected-text-range-expected.txt 2015-04-01 06:18:30 UTC (rev 182222)
+++ trunk/LayoutTests/accessibility/textarea-selected-text-range-expected.txt 2015-04-01 07:07:12 UTC (rev 182223)
@@ -1,6 +1,6 @@
-PASS textArea.selectedTextRange is '{4, 0}'
-PASS textArea.selectedTextRange is '{8, 2}'
-PASS textArea.selectedTextRange is '{25, 0}'
+PASS textArea.selectedTextRange became '{4, 0}'
+PASS textArea.selectedTextRange became '{8, 2}'
+PASS textArea.selectedTextRange became '{25, 0}'
PASS successfullyParsed is true
TEST COMPLETE
Modified: trunk/LayoutTests/accessibility/textarea-selected-text-range.html (182222 => 182223)
--- trunk/LayoutTests/accessibility/textarea-selected-text-range.html 2015-04-01 06:18:30 UTC (rev 182222)
+++ trunk/LayoutTests/accessibility/textarea-selected-text-range.html 2015-04-01 07:07:12 UTC (rev 182223)
@@ -22,19 +22,13 @@
// After setting a property through accessibility, the value won't be updated immediately, so we
// must check after a timeout to re-verify the value.
- setTimeout(function() {
- shouldBe("textArea.selectedTextRange", "'{4, 0}'");
+ shouldBecomeEqual("textArea.selectedTextRange", "'{4, 0}'", function() {
textArea.setSelectedTextRange(8,2);
- setTimeout(function() {
- shouldBe("textArea.selectedTextRange", "'{8, 2}'");
+ shouldBecomeEqual("textArea.selectedTextRange", "'{8, 2}'", function() {
textArea.setSelectedTextRange(100,0);
- setTimeout(function() {
- shouldBe("textArea.selectedTextRange", "'{25, 0}'");
- finishJSTest();
- }, 1);
- }, 1);
- }, 1);
-
+ shouldBecomeEqual("textArea.selectedTextRange", "'{25, 0}'", finishJSTest);
+ });
+ });
}
</script>
<script src=""
Modified: trunk/LayoutTests/platform/mac/TestExpectations (182222 => 182223)
--- trunk/LayoutTests/platform/mac/TestExpectations 2015-04-01 06:18:30 UTC (rev 182222)
+++ trunk/LayoutTests/platform/mac/TestExpectations 2015-04-01 07:07:12 UTC (rev 182223)
@@ -45,8 +45,6 @@
# ariaControlsElementAtIndex is not implemented in mac
webkit.org/b/127908 accessibility/aria-controls.html [ Skip ]
-webkit.org/b/142976 accessibility/textarea-selected-text-range.html [ Pass Failure ]
-
# Need to add functionality to DumpRenderTree to handle error pages
fast/history/back-forward-reset-after-error-handling.html
Modified: trunk/LayoutTests/platform/mac/accessibility/select-element-selection-with-optgroups-expected.txt (182222 => 182223)
--- trunk/LayoutTests/platform/mac/accessibility/select-element-selection-with-optgroups-expected.txt 2015-04-01 06:18:30 UTC (rev 182222)
+++ trunk/LayoutTests/platform/mac/accessibility/select-element-selection-with-optgroups-expected.txt 2015-04-01 07:07:12 UTC (rev 182223)
@@ -5,11 +5,11 @@
PASS selectElement.selectedChildrenCount is 0
-PASS selectElement.selectedChildrenCount is 1
+PASS selectElement.selectedChildrenCount became 1
PASS selectElement.selectedChildAtIndex(0).isEqual(option1) is true
-PASS selectElement.selectedChildrenCount is 1
+PASS selectElement.selectedChildrenCount became 1
PASS selectElement.selectedChildAtIndex(0).isEqual(option2) is true
-PASS selectElement.selectedChildrenCount is 1
+PASS selectElement.selectedChildrenCount became 1
PASS selectElement.selectedChildAtIndex(0).isEqual(option3) is true
PASS successfullyParsed is true
Modified: trunk/LayoutTests/platform/mac/accessibility/select-element-selection-with-optgroups.html (182222 => 182223)
--- trunk/LayoutTests/platform/mac/accessibility/select-element-selection-with-optgroups.html 2015-04-01 06:18:30 UTC (rev 182222)
+++ trunk/LayoutTests/platform/mac/accessibility/select-element-selection-with-optgroups.html 2015-04-01 07:07:12 UTC (rev 182223)
@@ -1,4 +1,4 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<!DOCTYPE html>
<html>
<head>
<script src=""
@@ -22,43 +22,36 @@
<div id="console"></div>
<script>
+description("This tests that setting selection within a list box works correctly if there are optgroups");
+window.jsTestIsAsync = true;
- description("This tests that setting selection within a list box works correctly if there are optgroups");
+if (window.accessibilityController) {
+ document.getElementById("suite").focus();
+ var selectElement = accessibilityController.focusedElement;
- if (window.accessibilityController) {
- window.jsTestIsAsync = true;
+ shouldBe("selectElement.selectedChildrenCount", "0");
- document.getElementById("suite").focus();
- var selectElement = accessibilityController.focusedElement;
-
- shouldBe("selectElement.selectedChildrenCount", "0");
-
- var option1 = selectElement.childAtIndex(1);
- var option2 = selectElement.childAtIndex(2);
- var option3 = selectElement.childAtIndex(4);
+ var option1 = selectElement.childAtIndex(1);
+ var option2 = selectElement.childAtIndex(2);
+ var option3 = selectElement.childAtIndex(4);
- // Selection operations happen after a delay so they don't hang. Check the result on a timeout.
- selectElement.setSelectedChild(option1);
- setTimeout(function() {
- shouldBe("selectElement.selectedChildrenCount", "1");
- shouldBeTrue("selectElement.selectedChildAtIndex(0).isEqual(option1)");
+ // Selection operations happen after a delay so they don't hang. Check the result on a timeout.
+ selectElement.setSelectedChild(option1);
+ shouldBecomeEqual("selectElement.selectedChildrenCount", "1", function() {
+ shouldBeTrue("selectElement.selectedChildAtIndex(0).isEqual(option1)");
- selectElement.setSelectedChild(option2);
- setTimeout(function() {
- shouldBe("selectElement.selectedChildrenCount", "1");
- shouldBeTrue("selectElement.selectedChildAtIndex(0).isEqual(option2)");
+ selectElement.setSelectedChild(option2);
+ shouldBecomeEqual("selectElement.selectedChildrenCount", "1", function() {
+ shouldBeTrue("selectElement.selectedChildAtIndex(0).isEqual(option2)");
- selectElement.setSelectedChild(option3);
- setTimeout(function() {
- shouldBe("selectElement.selectedChildrenCount", "1");
- shouldBeTrue("selectElement.selectedChildAtIndex(0).isEqual(option3)");
- finishJSTest();
- }, 1);
- }, 1);
- }, 1);
-
- }
-
+ selectElement.setSelectedChild(option3);
+ shouldBecomeEqual("selectElement.selectedChildrenCount", "1", function() {
+ shouldBeTrue("selectElement.selectedChildAtIndex(0).isEqual(option3)");
+ finishJSTest();
+ });
+ });
+ });
+}
</script>
<script src=""