mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-30 16:22:00 +00:00
Bug 1859035 - Prevent AOM tests to hit intermittent failures in a11y jobs due to Harness.popupReady clicking to panel buttons while panel state is still "showing". r=ayeddi,robwu
While investigating more the a11y intermittent failure being hit using exploratory try pushes (because the failure couldn't be hit locally), we determined that when a failure was being hit, the panel state was still "showing" (instead of "open") by the time the AccessibilityUtils were about to check if the clicked element (a panel button) was focusable. After looking into a couple other approaches to make Harness.popupReady to wait for the panel to get to the "open" state (which were not working and ended up triggering other issues, like test timeouts), I tried the approach proposed in this patch (after reading some more of the related internals and noticed that we emit a popup-shown topic from nsXULPopupShownEvent::Run right after having set the panel state to "open" a few lines before, see https://searchfox.org/mozilla-central/rev/ffdc4971dc18e1141cb2a90c2b0b776365650270/layout/xul/nsMenuPopupFrame.cpp#404,411). The push to try using that approach did pass successfully (as in "it didn't hit the a11y related failures it was hitting before"): https://treeherder.mozilla.org/jobs?repo=try&tier=1%2C2%2C3&revision=d9fd889aae3d54cf721be22c4d67459e0f946034 And the temporary debugging logs added in that try push confirmed that we were hitting the panel in the "showing" state at least a few times: https://treeherder.mozilla.org/logviewer?job_id=433768474&repo=try&lineNumber=64039 https://treeherder.mozilla.org/logviewer?job_id=433777958&repo=try&lineNumber=58787 https://treeherder.mozilla.org/logviewer?job_id=433777956&repo=try&lineNumber=61263 https://treeherder.mozilla.org/logviewer?job_id=433777874&repo=try&lineNumber=59122 Differential Revision: https://phabricator.services.mozilla.com/D191898
This commit is contained in:
parent
b94d8ddf90
commit
8735c02c0b
@ -32,7 +32,6 @@ https_first_disabled = true # Bug 1737265
|
||||
|
||||
["browser_amosigned_trigger_iframe.js"]
|
||||
https_first_disabled = true # Bug 1737265
|
||||
skip-if = ["a11y_checks"] # Bugs 1854647 and 1858037 to investigate intermittent a11y_checks results (fails on Try, passes on Autoland)
|
||||
|
||||
["browser_amosigned_url.js"]
|
||||
https_first_disabled = true # Bug 1737265
|
||||
@ -46,7 +45,6 @@ https_first_disabled = true # Bug 1737265
|
||||
|
||||
["browser_auth4.js"]
|
||||
https_first_disabled = true # Bug 1737265
|
||||
skip-if = ["a11y_checks"] # Bugs 1854647 and 1858037 to investigate intermittent a11y_checks results (fails on Try, passes on Autoland)
|
||||
|
||||
["browser_badargs.js"]
|
||||
https_first_disabled = true # Bug 1737265
|
||||
@ -64,7 +62,6 @@ skip-if = ["os == 'mac' && debug"] #Bug 1590136
|
||||
|
||||
["browser_bug540558.js"]
|
||||
https_first_disabled = true # Bug 1737265
|
||||
skip-if = ["a11y_checks"] # Bugs 1854647 and 1858037 to investigate intermittent a11y_checks results (fails on Try, passes on Autoland)
|
||||
|
||||
["browser_bug611242.js"]
|
||||
|
||||
@ -79,13 +76,11 @@ skip-if = ["true"] # disabled due to a leak. See bug 682410.
|
||||
|
||||
["browser_containers.js"]
|
||||
https_first_disabled = true # Bug 1737265
|
||||
skip-if = ["a11y_checks"] # Bugs 1854647 and 1858041 to investigate intermittent a11y_checks results (fails on Try, passes on Autoland)
|
||||
|
||||
["browser_cookies.js"]
|
||||
|
||||
["browser_cookies2.js"]
|
||||
https_first_disabled = true # Bug 1737265
|
||||
skip-if = ["a11y_checks"] # Bugs 1854647 and 1858041 to investigate intermittent a11y_checks results (fails on Autoland, passes on Try)
|
||||
|
||||
["browser_cookies3.js"]
|
||||
https_first_disabled = true # Bug 1737265
|
||||
@ -102,7 +97,6 @@ https_first_disabled = true # Bug 1737265
|
||||
https_first_disabled = true # Bug 1737265
|
||||
skip-if = [
|
||||
"os == 'win' && os_version == '10.0' && bits == 64", #Bug 1615449
|
||||
"a11y_checks", # Bugs 1854647 and 1858037 to investigate intermittent a11y_checks results (fails on Try, passes on Autoland)
|
||||
]
|
||||
|
||||
["browser_empty.js"]
|
||||
@ -111,15 +105,12 @@ skip-if = [
|
||||
|
||||
["browser_hash.js"]
|
||||
https_first_disabled = true # Bug 1737265
|
||||
skip-if = ["a11y_checks"] # Bugs 1854647 and 1858037 to investigate intermittent a11y_checks results (fails on Try, passes on Autoland)
|
||||
|
||||
["browser_hash2.js"]
|
||||
https_first_disabled = true # Bug 1737265
|
||||
skip-if = ["a11y_checks"] # Bugs 1854647 and 1858041 to investigate intermittent a11y_checks results (fails on Autoland, passes on Try)
|
||||
|
||||
["browser_httphash.js"]
|
||||
https_first_disabled = true # Bug 1737265
|
||||
skip-if = ["a11y_checks"] # Bugs 1854647 and 1858041 to investigate intermittent a11y_checks results (fails on Try, passes on Autoland)
|
||||
|
||||
["browser_httphash2.js"]
|
||||
|
||||
@ -128,18 +119,15 @@ https_first_disabled = true # Bug 1737265
|
||||
|
||||
["browser_httphash4.js"]
|
||||
https_first_disabled = true # Bug 1737265
|
||||
skip-if = ["a11y_checks"] # Bugs 1854647 and 1858037 to investigate intermittent a11y_checks results (fails on Try, passes on Autoland)
|
||||
|
||||
["browser_httphash5.js"]
|
||||
https_first_disabled = true # Bug 1737265
|
||||
skip-if = ["a11y_checks"] # Bugs 1854647 and 1858041 to investigate intermittent a11y_checks results (fails on Autoland, passes on Try)
|
||||
|
||||
["browser_httphash6.js"]
|
||||
skip-if = ["true"] # Bug 1449788
|
||||
|
||||
["browser_installchrome.js"]
|
||||
https_first_disabled = true # Bug 1737265
|
||||
skip-if = ["a11y_checks"] # Bugs 1854647 and 1858041 to investigate intermittent a11y_checks results (fails on Autoland, passes on Try)
|
||||
|
||||
["browser_localfile.js"]
|
||||
|
||||
@ -162,7 +150,6 @@ skip-if = ["debug"] # Bug 1541577 - leaks on debug
|
||||
|
||||
["browser_relative.js"]
|
||||
https_first_disabled = true # Bug 1737265
|
||||
skip-if = ["a11y_checks"] # Bugs 1854647 and 1858041 to investigate intermittent a11y_checks results (fails on Try, passes on Autoland)
|
||||
|
||||
["browser_required_useractivation.js"]
|
||||
|
||||
@ -171,7 +158,6 @@ https_first_disabled = true # Bug 1737265
|
||||
|
||||
["browser_trigger_redirect.js"]
|
||||
https_first_disabled = true # Bug 1737265
|
||||
skip-if = ["a11y_checks"] # Bugs 1854647 and 1858041 to investigate intermittent a11y_checks results (fails on Autoland, passes on Try)
|
||||
|
||||
["browser_unsigned_trigger.js"]
|
||||
https_first_disabled = true # Bug 1737265
|
||||
@ -179,17 +165,11 @@ skip-if = ["require_signing"]
|
||||
|
||||
["browser_unsigned_trigger_iframe.js"]
|
||||
https_first_disabled = true # Bug 1737265
|
||||
skip-if = [
|
||||
"require_signing",
|
||||
"a11y_checks", # Bugs 1854647 and 1858041 to investigate intermittent a11y_checks results (fails on Autoland, passes on Try)
|
||||
]
|
||||
skip-if = ["require_signing"]
|
||||
|
||||
["browser_unsigned_trigger_xorigin.js"]
|
||||
https_first_disabled = true # Bug 1737265
|
||||
|
||||
["browser_unsigned_url.js"]
|
||||
https_first_disabled = true # Bug 1737265
|
||||
skip-if = [
|
||||
"require_signing",
|
||||
"a11y_checks", # Bugs 1854647 and 1858037 to investigate intermittent a11y_checks results (fails on Try, passes on Autoland)
|
||||
]
|
||||
skip-if = ["require_signing"]
|
||||
|
@ -289,10 +289,33 @@ var Harness = {
|
||||
}
|
||||
}
|
||||
|
||||
if (!result) {
|
||||
panel.secondaryButton.click();
|
||||
const panelEl = panel.closest("panel");
|
||||
const panelState = panelEl.state;
|
||||
|
||||
const clickButton = () => {
|
||||
info(`Clicking ${result ? "primary" : "secondary"} panel button`);
|
||||
Assert.equal(
|
||||
panelEl.state,
|
||||
"open",
|
||||
"Expect panel state to be open when clicking panel buttons"
|
||||
);
|
||||
if (!result) {
|
||||
panel.secondaryButton.click();
|
||||
} else {
|
||||
panel.button.click();
|
||||
}
|
||||
};
|
||||
|
||||
if (panelState === "showing") {
|
||||
info(
|
||||
"panel is still showing, wait for 'popup-shown' topic to be notified"
|
||||
);
|
||||
BrowserUtils.promiseObserved(
|
||||
"popup-shown",
|
||||
shownPanel => shownPanel === panelEl
|
||||
).then(clickButton);
|
||||
} else {
|
||||
panel.button.click();
|
||||
clickButton();
|
||||
}
|
||||
},
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user