forked from mirrors/gecko-dev
		
	 dc4988bbd0
			
		
	
	
		dc4988bbd0
		
	
	
	
	
		
			
			There's only one caller of it and it's not sound: The runnable captures a raw frame pointer etc. Instead, just do a dispatch to the main thread and call OpenMenu there. This simplifies the following patch. Differential Revision: https://phabricator.services.mozilla.com/D131082
		
			
				
	
	
		
			68 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <?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"?>
 | |
| <!--
 | |
|   XUL Widget Test for bug 557987
 | |
|   -->
 | |
| <window title="Bug 557987" width="400" height="400"
 | |
|         xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
 | |
|   <script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>  
 | |
|   <script src="chrome://mochikit/content/tests/SimpleTest/EventUtils.js"></script>
 | |
| 
 | |
|   <toolbarbutton id="button" type="menu" label="Test bug 557987"
 | |
|                                          onclick="eventReceived('click');"
 | |
|                                          oncommand="eventReceived('command');">
 | |
|     <menupopup onpopupshowing="eventReceived('popupshowing'); return false;" />
 | |
|   </toolbarbutton>
 | |
| 
 | |
|   <!-- test results are displayed in the html:body -->
 | |
|   <body xmlns="http://www.w3.org/1999/xhtml" style="height: 300px; overflow: auto;"/>
 | |
| 
 | |
| <script type="application/javascript">
 | |
| <![CDATA[
 | |
| 
 | |
| SimpleTest.waitForExplicitFinish();
 | |
| 
 | |
| SimpleTest.waitForFocus(test);
 | |
| 
 | |
| // Tests that mouse events are correctly dispatched to <toolbarbutton type="menu"/>
 | |
| // This used to test menu buttons, and was updated when this button type was removed.
 | |
| function test() {
 | |
|   disableNonTestMouseEvents(true);
 | |
| 
 | |
|   let button = $("button");
 | |
|   let rightEdge = button.getBoundingClientRect().width - 2;
 | |
|   let centerX   = button.getBoundingClientRect().width / 2;
 | |
|   let centerY   = button.getBoundingClientRect().height / 2;
 | |
| 
 | |
|   synthesizeMouse(button, rightEdge, centerY, {}, window);
 | |
|   synthesizeMouse(button, centerX, centerY, {}, window);
 | |
| 
 | |
|   synthesizeMouse(document.getElementsByTagName("body")[0], 0, 0, {}, window);
 | |
| 
 | |
|   disableNonTestMouseEvents(false);
 | |
|   SimpleTest.executeSoon(finishTest);
 | |
| 
 | |
| }
 | |
| 
 | |
| function finishTest() {
 | |
|   is(eventCount.command, 0, "Correct number of command events received");
 | |
|   is(eventCount.popupshowing, 2, "Correct number of popupshowing events received");
 | |
|   is(eventCount.click, 2, "Correct number of click events received");
 | |
| 
 | |
|   SimpleTest.finish();
 | |
| }
 | |
| 
 | |
| let eventCount = {
 | |
|   command: 0,
 | |
|   popupshowing: 0,
 | |
|   click: 0,
 | |
| };
 | |
| 
 | |
| function eventReceived(eventName) {
 | |
|   eventCount[eventName]++;
 | |
| }
 | |
| 
 | |
| ]]>
 | |
| </script>
 | |
| </window>
 |