forked from mirrors/gecko-dev
		
	I think I caught all the places in our tree that add event listeners for these events on a non-Window (and hence depend on bubbling behavior), but I'm a little worried about what happens if webextensions do bareword addEventListener() for these events... Differential Revision: https://phabricator.services.mozilla.com/D66798 --HG-- extra : moz-landing-system : lando
		
			
				
	
	
		
			39 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
/* Any copyright is dedicated to the Public Domain.
 | 
						|
 * http://creativecommons.org/publicdomain/zero/1.0/
 | 
						|
 */
 | 
						|
 | 
						|
add_task(async function() {
 | 
						|
  let firstLocation =
 | 
						|
    "http://example.org/browser/browser/base/content/test/general/dummy_page.html";
 | 
						|
  await BrowserTestUtils.openNewForegroundTab(gBrowser, firstLocation);
 | 
						|
 | 
						|
  await ContentTask.spawn(gBrowser.selectedBrowser, {}, async function() {
 | 
						|
    // Push the state before maximizing the window and clicking below.
 | 
						|
    content.history.pushState("page2", "page2", "page2");
 | 
						|
  });
 | 
						|
 | 
						|
  window.maximize();
 | 
						|
 | 
						|
  // Find where the nav-bar is vertically.
 | 
						|
  var navBar = document.getElementById("nav-bar");
 | 
						|
  var boundingRect = navBar.getBoundingClientRect();
 | 
						|
  var yPixel = boundingRect.top + Math.floor(boundingRect.height / 2);
 | 
						|
  var xPixel = 0; // Use the first pixel of the screen since it is maximized.
 | 
						|
 | 
						|
  let popStatePromise = BrowserTestUtils.waitForContentEvent(
 | 
						|
    gBrowser.selectedBrowser,
 | 
						|
    "popstate",
 | 
						|
    true
 | 
						|
  );
 | 
						|
  EventUtils.synthesizeMouseAtPoint(xPixel, yPixel, {}, window);
 | 
						|
  await popStatePromise;
 | 
						|
 | 
						|
  is(
 | 
						|
    gBrowser.selectedBrowser.currentURI.spec,
 | 
						|
    firstLocation,
 | 
						|
    "Clicking the first pixel should have navigated back."
 | 
						|
  );
 | 
						|
  window.restore();
 | 
						|
 | 
						|
  gBrowser.removeCurrentTab();
 | 
						|
});
 |