mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
176fdc3ff9
--HG-- rename : toolkit/content/tests/widgets/frame_popupremoving_frame.xul => toolkit/content/tests/chrome/frame_popupremoving_frame.xul rename : toolkit/content/tests/widgets/popup_childframe_node.xul => toolkit/content/tests/chrome/popup_childframe_node.xul rename : toolkit/content/tests/widgets/popup_trigger.js => toolkit/content/tests/chrome/popup_trigger.js rename : toolkit/content/tests/widgets/test_bug360220.xul => toolkit/content/tests/chrome/test_bug360220.xul rename : toolkit/content/tests/widgets/test_bug365773.xul => toolkit/content/tests/chrome/test_bug365773.xul rename : toolkit/content/tests/widgets/test_bug382990.xul => toolkit/content/tests/chrome/test_bug382990.xul rename : toolkit/content/tests/widgets/test_bug457632.xul => toolkit/content/tests/chrome/test_bug457632.xul rename : toolkit/content/tests/widgets/test_bug460942.xul => toolkit/content/tests/chrome/test_bug460942.xul rename : toolkit/content/tests/widgets/test_bug509732.xul => toolkit/content/tests/chrome/test_bug509732.xul rename : toolkit/content/tests/widgets/test_bug554279.xul => toolkit/content/tests/chrome/test_bug554279.xul rename : toolkit/content/tests/widgets/test_bug557987.xul => toolkit/content/tests/chrome/test_bug557987.xul rename : toolkit/content/tests/widgets/test_bug562554.xul => toolkit/content/tests/chrome/test_bug562554.xul rename : toolkit/content/tests/widgets/test_button.xul => toolkit/content/tests/chrome/test_button.xul rename : toolkit/content/tests/widgets/test_closemenu_attribute.xul => toolkit/content/tests/chrome/test_closemenu_attribute.xul rename : toolkit/content/tests/widgets/test_colorpicker_popup.xul => toolkit/content/tests/chrome/test_colorpicker_popup.xul rename : toolkit/content/tests/widgets/test_contextmenu_list.xul => toolkit/content/tests/chrome/test_contextmenu_list.xul rename : toolkit/content/tests/widgets/test_focus_anons.xul => toolkit/content/tests/chrome/test_focus_anons.xul rename : toolkit/content/tests/widgets/test_hiddenitems.xul => toolkit/content/tests/chrome/test_hiddenitems.xul rename : toolkit/content/tests/widgets/test_hiddenpaging.xul => toolkit/content/tests/chrome/test_hiddenpaging.xul rename : toolkit/content/tests/widgets/test_menu.xul => toolkit/content/tests/chrome/test_menu.xul rename : toolkit/content/tests/widgets/test_menu_hide.xul => toolkit/content/tests/chrome/test_menu_hide.xul rename : toolkit/content/tests/widgets/test_menuitem_blink.xul => toolkit/content/tests/chrome/test_menuitem_blink.xul rename : toolkit/content/tests/widgets/test_menulist.xul => toolkit/content/tests/chrome/test_menulist.xul rename : toolkit/content/tests/widgets/test_menulist_keynav.xul => toolkit/content/tests/chrome/test_menulist_keynav.xul rename : toolkit/content/tests/widgets/test_notificationbox.xul => toolkit/content/tests/chrome/test_notificationbox.xul rename : toolkit/content/tests/widgets/test_panelfrommenu.xul => toolkit/content/tests/chrome/test_panelfrommenu.xul rename : toolkit/content/tests/widgets/test_popup_attribute.xul => toolkit/content/tests/chrome/test_popup_attribute.xul rename : toolkit/content/tests/widgets/test_popup_button.xul => toolkit/content/tests/chrome/test_popup_button.xul rename : toolkit/content/tests/widgets/test_popup_coords.xul => toolkit/content/tests/chrome/test_popup_coords.xul rename : toolkit/content/tests/widgets/test_popup_keys.xul => toolkit/content/tests/chrome/test_popup_keys.xul rename : toolkit/content/tests/widgets/test_popup_preventdefault.xul => toolkit/content/tests/chrome/test_popup_preventdefault.xul rename : toolkit/content/tests/widgets/test_popup_recreate.xul => toolkit/content/tests/chrome/test_popup_recreate.xul rename : toolkit/content/tests/widgets/test_popup_scaled.xul => toolkit/content/tests/chrome/test_popup_scaled.xul rename : toolkit/content/tests/widgets/test_popup_tree.xul => toolkit/content/tests/chrome/test_popup_tree.xul rename : toolkit/content/tests/widgets/test_popuphidden.xul => toolkit/content/tests/chrome/test_popuphidden.xul rename : toolkit/content/tests/widgets/test_popupincontent.xul => toolkit/content/tests/chrome/test_popupincontent.xul rename : toolkit/content/tests/widgets/test_popupremoving.xul => toolkit/content/tests/chrome/test_popupremoving.xul rename : toolkit/content/tests/widgets/test_popupremoving_frame.xul => toolkit/content/tests/chrome/test_popupremoving_frame.xul rename : toolkit/content/tests/widgets/test_position.xul => toolkit/content/tests/chrome/test_position.xul rename : toolkit/content/tests/widgets/test_progressmeter.xul => toolkit/content/tests/chrome/test_progressmeter.xul rename : toolkit/content/tests/widgets/test_props.xul => toolkit/content/tests/chrome/test_props.xul rename : toolkit/content/tests/widgets/test_radio.xul => toolkit/content/tests/chrome/test_radio.xul rename : toolkit/content/tests/widgets/test_richlist_direction.xul => toolkit/content/tests/chrome/test_richlist_direction.xul rename : toolkit/content/tests/widgets/test_scale.xul => toolkit/content/tests/chrome/test_scale.xul rename : toolkit/content/tests/widgets/test_scrollbar.xul => toolkit/content/tests/chrome/test_scrollbar.xul rename : toolkit/content/tests/widgets/test_sorttemplate.xul => toolkit/content/tests/chrome/test_sorttemplate.xul rename : toolkit/content/tests/widgets/test_statusbar.xul => toolkit/content/tests/chrome/test_statusbar.xul rename : toolkit/content/tests/widgets/test_tabbox.xul => toolkit/content/tests/chrome/test_tabbox.xul rename : toolkit/content/tests/widgets/test_tabindex.xul => toolkit/content/tests/chrome/test_tabindex.xul rename : toolkit/content/tests/widgets/test_textbox_emptytext.xul => toolkit/content/tests/chrome/test_textbox_emptytext.xul rename : toolkit/content/tests/widgets/test_textbox_number.xul => toolkit/content/tests/chrome/test_textbox_number.xul rename : toolkit/content/tests/widgets/test_textbox_search.xul => toolkit/content/tests/chrome/test_textbox_search.xul rename : toolkit/content/tests/widgets/test_timepicker.xul => toolkit/content/tests/chrome/test_timepicker.xul rename : toolkit/content/tests/widgets/test_toolbar.xul => toolkit/content/tests/chrome/test_toolbar.xul rename : toolkit/content/tests/widgets/test_tooltip.xul => toolkit/content/tests/chrome/test_tooltip.xul rename : toolkit/content/tests/widgets/test_tooltip_noautohide.xul => toolkit/content/tests/chrome/test_tooltip_noautohide.xul rename : toolkit/content/tests/widgets/test_tree.xul => toolkit/content/tests/chrome/test_tree.xul rename : toolkit/content/tests/widgets/test_tree_single.xul => toolkit/content/tests/chrome/test_tree_single.xul rename : toolkit/content/tests/widgets/test_tree_view.xul => toolkit/content/tests/chrome/test_tree_view.xul rename : toolkit/content/tests/widgets/window_popup_attribute.xul => toolkit/content/tests/chrome/window_popup_attribute.xul rename : toolkit/content/tests/widgets/window_popup_button.xul => toolkit/content/tests/chrome/window_popup_button.xul rename : toolkit/content/tests/widgets/xul_selectcontrol.js => toolkit/content/tests/chrome/xul_selectcontrol.js
167 lines
5.2 KiB
XML
167 lines
5.2 KiB
XML
<?xml version="1.0"?>
|
|
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
|
|
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" type="text/css"?>
|
|
|
|
<window title="Popup Removing Tests"
|
|
onload="setTimeout(nextTest, 0)"
|
|
onDOMAttrModified="modified(event)"
|
|
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
|
|
|
<!--
|
|
This test checks that popup elements can be removed in various ways without
|
|
crashing. It tests two situations, one with menus that are 'separate', and
|
|
one with menus that are 'nested'. In each case, there are four levels of menu.
|
|
|
|
The nextTest function starts the process by opening the first menu. A set of
|
|
popupshown event listeners are used to open the next menu until all four are
|
|
showing. This last one calls removePopup to remove the menu node from the
|
|
tree. This should hide the popups as they are no longer in a document.
|
|
|
|
A mutation listener is triggered when the fourth menu closes by having its
|
|
open attribute cleared. This listener hides the third popup which causes
|
|
its frame to be removed. Naturally, we want to ensure that this doesn't
|
|
crash when the third menu is removed.
|
|
-->
|
|
|
|
<script type="application/javascript" src="chrome://mochikit/content/MochiKit/packed.js"></script>
|
|
<script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
|
|
<script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/EventUtils.js"></script>
|
|
|
|
<hbox>
|
|
|
|
<menu id="nestedmenu1" label="1">
|
|
<menupopup id="nestedpopup1" onpopupshown="if (event.target == this) this.firstChild.open = true">
|
|
<menu id="nestedmenu2" label="2">
|
|
<menupopup id="nestedpopup2" onpopupshown="if (event.target == this) this.firstChild.open = true">
|
|
<menu id="nestedmenu3" label="3">
|
|
<menupopup id="nestedpopup3" onpopupshown="if (event.target == this) this.firstChild.open = true">
|
|
<menu id="nestedmenu4" label="4" onpopupshown="removePopups()">
|
|
<menupopup id="nestedpopup4">
|
|
<menuitem label="Nested 1"/>
|
|
<menuitem label="Nested 2"/>
|
|
<menuitem label="Nested 3"/>
|
|
</menupopup>
|
|
</menu>
|
|
</menupopup>
|
|
</menu>
|
|
</menupopup>
|
|
</menu>
|
|
</menupopup>
|
|
</menu>
|
|
|
|
<menu id="separatemenu1" label="1">
|
|
<menupopup id="separatepopup1" onpopupshown="$('separatemenu2').open = true">
|
|
<menuitem label="L1 One"/>
|
|
<menuitem label="L1 Two"/>
|
|
<menuitem label="L1 Three"/>
|
|
</menupopup>
|
|
</menu>
|
|
|
|
<menu id="separatemenu2" label="2">
|
|
<menupopup id="separatepopup2" onpopupshown="$('separatemenu3').open = true"
|
|
onpopuphidden="popup2Hidden()">
|
|
<menuitem label="L2 One"/>
|
|
<menuitem label="L2 Two"/>
|
|
<menuitem label="L2 Three"/>
|
|
</menupopup>
|
|
</menu>
|
|
|
|
<menu id="separatemenu3" label="3" onpopupshown="$('separatemenu4').open = true">
|
|
<menupopup id="separatepopup3">
|
|
<menuitem label="L3 One"/>
|
|
<menuitem label="L3 Two"/>
|
|
<menuitem label="L3 Three"/>
|
|
</menupopup>
|
|
</menu>
|
|
|
|
<menu id="separatemenu4" label="4" onpopupshown="removePopups()"
|
|
onpopuphidden="$('separatemenu2').open = false">
|
|
<menupopup id="separatepopup3">
|
|
<menuitem label="L4 One"/>
|
|
<menuitem label="L4 Two"/>
|
|
<menuitem label="L4 Three"/>
|
|
</menupopup>
|
|
</menu>
|
|
|
|
</hbox>
|
|
|
|
<script class="testbody" type="application/javascript">
|
|
<![CDATA[
|
|
|
|
SimpleTest.waitForExplicitFinish();
|
|
|
|
var gKey = "";
|
|
gTriggerMutation = null;
|
|
gChangeMutation = null;
|
|
|
|
function nextTest()
|
|
{
|
|
if (gKey == "") {
|
|
gKey = "separate";
|
|
}
|
|
else if (gKey == "separate") {
|
|
gKey = "nested";
|
|
}
|
|
else {
|
|
SimpleTest.finish();
|
|
return;
|
|
}
|
|
|
|
$(gKey + "menu1").open = true;
|
|
}
|
|
|
|
function modified(event)
|
|
{
|
|
// use this mutation listener to hide the third popup, destroying its frame.
|
|
// It gets triggered when the open attribute is cleared on the fourth menu.
|
|
|
|
if (event.target == gTriggerMutation &&
|
|
event.attrName == "open") {
|
|
gChangeMutation.hidden = true;
|
|
// force a layout flush
|
|
document.documentElement.boxObject.width;
|
|
gTriggerMutation = null;
|
|
gChangeMutation = null;
|
|
}
|
|
}
|
|
|
|
function removePopups()
|
|
{
|
|
var menu2 = $(gKey + "menu2");
|
|
var menu3 = $(gKey + "menu3");
|
|
is(menu2.getAttribute("open"), "true", gKey + " menu 2 open before");
|
|
is(menu3.getAttribute("open"), "true", gKey + " menu 3 open before");
|
|
|
|
gTriggerMutation = menu3;
|
|
gChangeMutation = $(gKey + "menu4");
|
|
var menu = $(gKey + "menu1");
|
|
menu.parentNode.removeChild(menu);
|
|
|
|
if (gKey == "nested") {
|
|
// the 'separate' test checks this during the popup2 hidden event handler
|
|
is(menu2.hasAttribute("open"), false, gKey + " menu 2 open after");
|
|
is(menu3.hasAttribute("open"), false, gKey + " menu 3 open after");
|
|
nextTest();
|
|
}
|
|
}
|
|
|
|
function popup2Hidden()
|
|
{
|
|
is($(gKey + "menu2").hasAttribute("open"), false, gKey + " menu 2 open after");
|
|
nextTest();
|
|
}
|
|
|
|
]]>
|
|
</script>
|
|
|
|
<body xmlns="http://www.w3.org/1999/xhtml">
|
|
<p id="display">
|
|
</p>
|
|
<div id="content" style="display: none">
|
|
</div>
|
|
<pre id="test">
|
|
</pre>
|
|
</body>
|
|
|
|
</window>
|