forked from mirrors/gecko-dev
		
	 1b5b46ec79
			
		
	
	
		1b5b46ec79
		
	
	
	
	
		
			
			Depends on D100172 Differential Revision: https://phabricator.services.mozilla.com/D101388
		
			
				
	
	
		
			45 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| const URL =
 | |
|   "https://example.com/browser/dom/tests/browser/prevent_return_key.html";
 | |
| 
 | |
| // Wait for alert dialog and dismiss it immediately.
 | |
| function awaitAndCloseAlertDialog() {
 | |
|   return new Promise(resolve => {
 | |
|     function onDialogShown(node) {
 | |
|       Services.obs.removeObserver(onDialogShown, "tabmodal-dialog-loaded");
 | |
|       let button = node.querySelector(".tabmodalprompt-button0");
 | |
|       button.click();
 | |
|       resolve();
 | |
|     }
 | |
|     Services.obs.addObserver(onDialogShown, "tabmodal-dialog-loaded");
 | |
|   });
 | |
| }
 | |
| 
 | |
| add_task(async function() {
 | |
|   await SpecialPowers.pushPrefEnv({
 | |
|     set: [["prompts.contentPromptSubDialog", false]],
 | |
|   });
 | |
| 
 | |
|   let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser, URL);
 | |
|   let browser = tab.linkedBrowser;
 | |
| 
 | |
|   // Focus and enter random text on input.
 | |
|   await SpecialPowers.spawn(browser, [], async function() {
 | |
|     let input = content.document.getElementById("input");
 | |
|     input.focus();
 | |
|     input.value = "abcd";
 | |
|   });
 | |
| 
 | |
|   // Send return key (cross process) to submit the form implicitly.
 | |
|   let dialogShown = awaitAndCloseAlertDialog();
 | |
|   EventUtils.synthesizeKey("KEY_Enter");
 | |
|   await dialogShown;
 | |
| 
 | |
|   // Check that the form should not have been submitted.
 | |
|   await SpecialPowers.spawn(browser, [], async function() {
 | |
|     let result = content.document.getElementById("result").innerHTML;
 | |
|     info("submit result: " + result);
 | |
|     is(result, "not submitted", "form should not have submitted");
 | |
|   });
 | |
| 
 | |
|   gBrowser.removeCurrentTab();
 | |
| });
 |