forked from mirrors/gecko-dev
		
	https://treeherder.mozilla.org/#/jobs?repo=try&revision=cd9437abac50dd7524518788cebbc5df5b389eb4 Differential Revision: https://phabricator.services.mozilla.com/D100641
		
			
				
	
	
		
			133 lines
		
	
	
	
		
			3.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			133 lines
		
	
	
	
		
			3.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
// Make sure that we can open private browsing windows
 | 
						|
 | 
						|
function test() {
 | 
						|
  waitForExplicitFinish();
 | 
						|
  var nonPrivateWin = OpenBrowserWindow();
 | 
						|
  ok(
 | 
						|
    !PrivateBrowsingUtils.isWindowPrivate(nonPrivateWin),
 | 
						|
    "OpenBrowserWindow() should open a normal window"
 | 
						|
  );
 | 
						|
  nonPrivateWin.close();
 | 
						|
 | 
						|
  var privateWin = OpenBrowserWindow({ private: true });
 | 
						|
  ok(
 | 
						|
    PrivateBrowsingUtils.isWindowPrivate(privateWin),
 | 
						|
    "OpenBrowserWindow({private: true}) should open a private window"
 | 
						|
  );
 | 
						|
 | 
						|
  nonPrivateWin = OpenBrowserWindow({ private: false });
 | 
						|
  ok(
 | 
						|
    !PrivateBrowsingUtils.isWindowPrivate(nonPrivateWin),
 | 
						|
    "OpenBrowserWindow({private: false}) should open a normal window"
 | 
						|
  );
 | 
						|
  nonPrivateWin.close();
 | 
						|
 | 
						|
  whenDelayedStartupFinished(privateWin, function() {
 | 
						|
    nonPrivateWin = privateWin.OpenBrowserWindow({ private: false });
 | 
						|
    ok(
 | 
						|
      !PrivateBrowsingUtils.isWindowPrivate(nonPrivateWin),
 | 
						|
      "privateWin.OpenBrowserWindow({private: false}) should open a normal window"
 | 
						|
    );
 | 
						|
 | 
						|
    nonPrivateWin.close();
 | 
						|
 | 
						|
    [
 | 
						|
      {
 | 
						|
        normal: "menu_newNavigator",
 | 
						|
        private: "menu_newPrivateWindow",
 | 
						|
        accesskey: true,
 | 
						|
      },
 | 
						|
      {
 | 
						|
        normal: "appmenu_newNavigator",
 | 
						|
        private: "appmenu_newPrivateWindow",
 | 
						|
        accesskey: false,
 | 
						|
      },
 | 
						|
    ].forEach(function(menu) {
 | 
						|
      let newWindow = privateWin.document.getElementById(menu.normal);
 | 
						|
      let newPrivateWindow = privateWin.document.getElementById(menu.private);
 | 
						|
      if (newWindow && newPrivateWindow) {
 | 
						|
        ok(
 | 
						|
          !newPrivateWindow.hidden,
 | 
						|
          "New Private Window menu item should be hidden"
 | 
						|
        );
 | 
						|
        isnot(
 | 
						|
          newWindow.label,
 | 
						|
          newPrivateWindow.label,
 | 
						|
          "New Window's label shouldn't be overwritten"
 | 
						|
        );
 | 
						|
        if (menu.accesskey) {
 | 
						|
          isnot(
 | 
						|
            newWindow.accessKey,
 | 
						|
            newPrivateWindow.accessKey,
 | 
						|
            "New Window's accessKey shouldn't be overwritten"
 | 
						|
          );
 | 
						|
        }
 | 
						|
        isnot(
 | 
						|
          newWindow.command,
 | 
						|
          newPrivateWindow.command,
 | 
						|
          "New Window's command shouldn't be overwritten"
 | 
						|
        );
 | 
						|
      }
 | 
						|
    });
 | 
						|
 | 
						|
    is(
 | 
						|
      privateWin.gBrowser.tabs[0].label,
 | 
						|
      "Private Browsing",
 | 
						|
      "New tabs in the private browsing windows should have 'Private Browsing' as the title."
 | 
						|
    );
 | 
						|
 | 
						|
    privateWin.close();
 | 
						|
 | 
						|
    Services.prefs.setBoolPref("browser.privatebrowsing.autostart", true);
 | 
						|
    privateWin = OpenBrowserWindow({ private: true });
 | 
						|
    whenDelayedStartupFinished(privateWin, function() {
 | 
						|
      [
 | 
						|
        {
 | 
						|
          normal: "menu_newNavigator",
 | 
						|
          private: "menu_newPrivateWindow",
 | 
						|
          accessKey: true,
 | 
						|
        },
 | 
						|
        {
 | 
						|
          normal: "appmenu_newNavigator",
 | 
						|
          private: "appmenu_newPrivateWindow",
 | 
						|
          accessKey: false,
 | 
						|
        },
 | 
						|
      ].forEach(function(menu) {
 | 
						|
        let newWindow = privateWin.document.getElementById(menu.normal);
 | 
						|
        let newPrivateWindow = privateWin.document.getElementById(menu.private);
 | 
						|
        if (newWindow && newPrivateWindow) {
 | 
						|
          ok(
 | 
						|
            newPrivateWindow.hidden,
 | 
						|
            "New Private Window menu item should be hidden"
 | 
						|
          );
 | 
						|
          is(
 | 
						|
            newWindow.label,
 | 
						|
            newPrivateWindow.label,
 | 
						|
            "New Window's label should be overwritten"
 | 
						|
          );
 | 
						|
          if (menu.accesskey) {
 | 
						|
            is(
 | 
						|
              newWindow.accessKey,
 | 
						|
              newPrivateWindow.accessKey,
 | 
						|
              "New Window's accessKey should be overwritten"
 | 
						|
            );
 | 
						|
          }
 | 
						|
          is(
 | 
						|
            newWindow.command,
 | 
						|
            newPrivateWindow.command,
 | 
						|
            "New Window's command should be overwritten"
 | 
						|
          );
 | 
						|
        }
 | 
						|
      });
 | 
						|
 | 
						|
      is(
 | 
						|
        privateWin.gBrowser.tabs[0].label,
 | 
						|
        "New Tab",
 | 
						|
        "Normal tab title is used also in the permanent private browsing mode."
 | 
						|
      );
 | 
						|
      privateWin.close();
 | 
						|
      Services.prefs.clearUserPref("browser.privatebrowsing.autostart");
 | 
						|
      finish();
 | 
						|
    });
 | 
						|
  });
 | 
						|
}
 |