forked from mirrors/gecko-dev
		
	
		
			
				
	
	
		
			54 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
/* Any copyright is dedicated to the Public Domain.
 | 
						|
   http://creativecommons.org/publicdomain/zero/1.0/ */
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
const ROOT = getRootDirectory(gTestPath).replace(
 | 
						|
  "chrome://mochitests/content",
 | 
						|
  "http://mochi.test:8888"
 | 
						|
);
 | 
						|
const URL1 = ROOT + "file_backforward_restore_scroll.html";
 | 
						|
// eslint-disable-next-line @microsoft/sdl/no-insecure-url
 | 
						|
const URL2 = "http://example.net/";
 | 
						|
 | 
						|
const SCROLL0 = 500;
 | 
						|
const SCROLL1 = 1000;
 | 
						|
 | 
						|
function promiseBrowserLoaded(url) {
 | 
						|
  return BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser, false, url);
 | 
						|
}
 | 
						|
 | 
						|
add_task(async function test() {
 | 
						|
  await BrowserTestUtils.openNewForegroundTab(gBrowser, URL1);
 | 
						|
 | 
						|
  // Scroll the 2 frames.
 | 
						|
  let children = gBrowser.selectedBrowser.browsingContext.children;
 | 
						|
  await SpecialPowers.spawn(children[0], [SCROLL0], scrollY =>
 | 
						|
    content.scrollTo(0, scrollY)
 | 
						|
  );
 | 
						|
  await SpecialPowers.spawn(children[1], [SCROLL1], scrollY =>
 | 
						|
    content.scrollTo(0, scrollY)
 | 
						|
  );
 | 
						|
 | 
						|
  // Navigate forwards then backwards.
 | 
						|
  let loaded = promiseBrowserLoaded(URL2);
 | 
						|
  BrowserTestUtils.loadURIString(gBrowser.selectedBrowser, URL2);
 | 
						|
  await loaded;
 | 
						|
 | 
						|
  loaded = promiseBrowserLoaded(URL1);
 | 
						|
  await SpecialPowers.spawn(gBrowser.selectedBrowser, [], () => {
 | 
						|
    content.history.back();
 | 
						|
  });
 | 
						|
  await loaded;
 | 
						|
 | 
						|
  // And check the results.
 | 
						|
  children = gBrowser.selectedBrowser.browsingContext.children;
 | 
						|
  await SpecialPowers.spawn(children[0], [SCROLL0], scrollY => {
 | 
						|
    Assert.equal(content.scrollY, scrollY, "frame 0 has correct scroll");
 | 
						|
  });
 | 
						|
  await SpecialPowers.spawn(children[1], [SCROLL1], scrollY => {
 | 
						|
    Assert.equal(content.scrollY, scrollY, "frame 1 has correct scroll");
 | 
						|
  });
 | 
						|
 | 
						|
  gBrowser.removeTab(gBrowser.selectedTab);
 | 
						|
});
 |