Files
tubestation/toolkit/content/tests/chrome/dialog_dialogfocus.xhtml
Emilio Cobos Álvarez 415fa85473 Bug 1781434 - Clean-up dialog initial focus code. r=pbz,Gijs
Make it a bit easier to read and less prone to race conditions. Remove a
setTimeout referencing bug 103197 which I'm pretty sure it's not an
issue.

Differential Revision: https://phabricator.services.mozilla.com/D156543
2022-09-20 03:02:18 +00:00

63 lines
1.7 KiB
HTML

<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
xmlns:html="http://www.w3.org/1999/xhtml">
<dialog id="dialog-focus"
buttons="extra2,accept,cancel">
<tabbox id="tabbox" hidden="true">
<tabs>
<tab id="tab" label="Tab"/>
</tabs>
<tabpanels>
<tabpanel>
<button id="tabbutton" label="Tab Button"/>
<button id="tabbutton2" label="Tab Button 2"/>
</tabpanel>
</tabpanels>
</tabbox>
<html:input id="textbox-yes" value="textbox-yes" hidden="true"/>
<html:input id="textbox-no" value="textbox-no" noinitialfocus="true" hidden="true"/>
<button id="one" label="One"/>
<button id="two" label="Two" hidden="true"/>
<script>
if (window.arguments) {
var step = window.arguments[0];
switch (step) {
case 2:
document.getElementById("one").setAttribute("noinitialfocus", "true");
break;
case 3:
document.getElementById("one").hidden = true;
// no-fallthrough
case 4:
document.getElementById("tabbutton2").setAttribute("noinitialfocus", "true");
// no-fallthrough
case 5:
document.getElementById("tabbutton").setAttribute("noinitialfocus", "true");
// no-fallthrough
case 6:
document.getElementById("tabbox").hidden = false;
break;
case 7:
window.addEventListener("load", function() {
var two = document.getElementById("two");
two.hidden = false;
two.focus();
});
break;
case 8:
document.getElementById("textbox-yes").hidden = false;
break;
case 9:
document.getElementById("textbox-no").hidden = false;
break;
}
}
</script>
</dialog>
</window>