summaryrefslogtreecommitdiffstats
path: root/browser/base/content/test/general/browser_e10s_switchbrowser.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/base/content/test/general/browser_e10s_switchbrowser.js')
-rw-r--r--browser/base/content/test/general/browser_e10s_switchbrowser.js261
1 files changed, 0 insertions, 261 deletions
diff --git a/browser/base/content/test/general/browser_e10s_switchbrowser.js b/browser/base/content/test/general/browser_e10s_switchbrowser.js
deleted file mode 100644
index e6134f749..000000000
--- a/browser/base/content/test/general/browser_e10s_switchbrowser.js
+++ /dev/null
@@ -1,261 +0,0 @@
-requestLongerTimeout(2);
-
-const DUMMY_PATH = "browser/browser/base/content/test/general/dummy_page.html";
-
-const gExpectedHistory = {
- index: -1,
- entries: []
-};
-
-function get_remote_history(browser) {
- function frame_script() {
- let webNav = docShell.QueryInterface(Components.interfaces.nsIWebNavigation);
- let sessionHistory = webNav.sessionHistory;
- let result = {
- index: sessionHistory.index,
- entries: []
- };
-
- for (let i = 0; i < sessionHistory.count; i++) {
- let entry = sessionHistory.getEntryAtIndex(i, false);
- result.entries.push({
- uri: entry.URI.spec,
- title: entry.title
- });
- }
-
- sendAsyncMessage("Test:History", result);
- }
-
- return new Promise(resolve => {
- browser.messageManager.addMessageListener("Test:History", function listener({data}) {
- browser.messageManager.removeMessageListener("Test:History", listener);
- resolve(data);
- });
-
- browser.messageManager.loadFrameScript("data:,(" + frame_script.toString() + ")();", true);
- });
-}
-
-var check_history = Task.async(function*() {
- let sessionHistory = yield get_remote_history(gBrowser.selectedBrowser);
-
- let count = sessionHistory.entries.length;
- is(count, gExpectedHistory.entries.length, "Should have the right number of history entries");
- is(sessionHistory.index, gExpectedHistory.index, "Should have the right history index");
-
- for (let i = 0; i < count; i++) {
- let entry = sessionHistory.entries[i];
- is(entry.uri, gExpectedHistory.entries[i].uri, "Should have the right URI");
- is(entry.title, gExpectedHistory.entries[i].title, "Should have the right title");
- }
-});
-
-function clear_history() {
- gExpectedHistory.index = -1;
- gExpectedHistory.entries = [];
-}
-
-// Waits for a load and updates the known history
-var waitForLoad = Task.async(function*(uri) {
- info("Loading " + uri);
- // Longwinded but this ensures we don't just shortcut to LoadInNewProcess
- gBrowser.selectedBrowser.webNavigation.loadURI(uri, Ci.nsIWebNavigation.LOAD_FLAGS_NONE, null, null, null);
-
- yield waitForDocLoadComplete();
- gExpectedHistory.index++;
- gExpectedHistory.entries.push({
- uri: gBrowser.currentURI.spec,
- title: gBrowser.contentTitle
- });
-});
-
-// Waits for a load and updates the known history
-var waitForLoadWithFlags = Task.async(function*(uri, flags = Ci.nsIWebNavigation.LOAD_FLAGS_NONE) {
- info("Loading " + uri + " flags = " + flags);
- gBrowser.selectedBrowser.loadURIWithFlags(uri, flags, null, null, null);
-
- yield waitForDocLoadComplete();
- if (!(flags & Ci.nsIWebNavigation.LOAD_FLAGS_BYPASS_HISTORY)) {
-
- if (flags & Ci.nsIWebNavigation.LOAD_FLAGS_REPLACE_HISTORY) {
- gExpectedHistory.entries.pop();
- }
- else {
- gExpectedHistory.index++;
- }
-
- gExpectedHistory.entries.push({
- uri: gBrowser.currentURI.spec,
- title: gBrowser.contentTitle
- });
- }
-});
-
-var back = Task.async(function*() {
- info("Going back");
- gBrowser.goBack();
- yield waitForDocLoadComplete();
- gExpectedHistory.index--;
-});
-
-var forward = Task.async(function*() {
- info("Going forward");
- gBrowser.goForward();
- yield waitForDocLoadComplete();
- gExpectedHistory.index++;
-});
-
-// Tests that navigating from a page that should be in the remote process and
-// a page that should be in the main process works and retains history
-add_task(function* test_navigation() {
- let expectedRemote = gMultiProcessBrowser;
-
- info("1");
- // Create a tab and load a remote page in it
- gBrowser.selectedTab = gBrowser.addTab("about:blank", {skipAnimation: true});
- let {permanentKey} = gBrowser.selectedBrowser;
- yield waitForLoad("http://example.org/" + DUMMY_PATH);
- is(gBrowser.selectedBrowser.isRemoteBrowser, expectedRemote, "Remote attribute should be correct");
- is(gBrowser.selectedBrowser.permanentKey, permanentKey, "browser.permanentKey is still the same");
-
- info("2");
- // Load another page
- yield waitForLoad("http://example.com/" + DUMMY_PATH);
- is(gBrowser.selectedBrowser.isRemoteBrowser, expectedRemote, "Remote attribute should be correct");
- is(gBrowser.selectedBrowser.permanentKey, permanentKey, "browser.permanentKey is still the same");
- yield check_history();
-
- info("3");
- // Load a non-remote page
- yield waitForLoad("about:robots");
- is(gBrowser.selectedBrowser.isRemoteBrowser, false, "Remote attribute should be correct");
- is(gBrowser.selectedBrowser.permanentKey, permanentKey, "browser.permanentKey is still the same");
- yield check_history();
-
- info("4");
- // Load a remote page
- yield waitForLoad("http://example.org/" + DUMMY_PATH);
- is(gBrowser.selectedBrowser.isRemoteBrowser, expectedRemote, "Remote attribute should be correct");
- is(gBrowser.selectedBrowser.permanentKey, permanentKey, "browser.permanentKey is still the same");
- yield check_history();
-
- info("5");
- yield back();
- is(gBrowser.selectedBrowser.isRemoteBrowser, false, "Remote attribute should be correct");
- is(gBrowser.selectedBrowser.permanentKey, permanentKey, "browser.permanentKey is still the same");
- yield check_history();
-
- info("6");
- yield back();
- is(gBrowser.selectedBrowser.isRemoteBrowser, expectedRemote, "Remote attribute should be correct");
- is(gBrowser.selectedBrowser.permanentKey, permanentKey, "browser.permanentKey is still the same");
- yield check_history();
-
- info("7");
- yield forward();
- is(gBrowser.selectedBrowser.isRemoteBrowser, false, "Remote attribute should be correct");
- is(gBrowser.selectedBrowser.permanentKey, permanentKey, "browser.permanentKey is still the same");
- yield check_history();
-
- info("8");
- yield forward();
- is(gBrowser.selectedBrowser.isRemoteBrowser, expectedRemote, "Remote attribute should be correct");
- is(gBrowser.selectedBrowser.permanentKey, permanentKey, "browser.permanentKey is still the same");
- yield check_history();
-
- info("9");
- yield back();
- is(gBrowser.selectedBrowser.isRemoteBrowser, false, "Remote attribute should be correct");
- is(gBrowser.selectedBrowser.permanentKey, permanentKey, "browser.permanentKey is still the same");
- yield check_history();
-
- info("10");
- // Load a new remote page, this should replace the last history entry
- gExpectedHistory.entries.splice(gExpectedHistory.entries.length - 1, 1);
- yield waitForLoad("http://example.com/" + DUMMY_PATH);
- is(gBrowser.selectedBrowser.isRemoteBrowser, expectedRemote, "Remote attribute should be correct");
- is(gBrowser.selectedBrowser.permanentKey, permanentKey, "browser.permanentKey is still the same");
- yield check_history();
-
- info("11");
- gBrowser.removeCurrentTab();
- clear_history();
-});
-
-// Tests that calling gBrowser.loadURI or browser.loadURI to load a page in a
-// different process updates the browser synchronously
-add_task(function* test_synchronous() {
- let expectedRemote = gMultiProcessBrowser;
-
- info("1");
- // Create a tab and load a remote page in it
- gBrowser.selectedTab = gBrowser.addTab("about:blank", {skipAnimation: true});
- let {permanentKey} = gBrowser.selectedBrowser;
- yield waitForLoad("http://example.org/" + DUMMY_PATH);
- is(gBrowser.selectedBrowser.isRemoteBrowser, expectedRemote, "Remote attribute should be correct");
- is(gBrowser.selectedBrowser.permanentKey, permanentKey, "browser.permanentKey is still the same");
-
- info("2");
- // Load another page
- info("Loading about:robots");
- yield BrowserTestUtils.loadURI(gBrowser.selectedBrowser, "about:robots");
- is(gBrowser.selectedBrowser.isRemoteBrowser, false, "Remote attribute should be correct");
- is(gBrowser.selectedBrowser.permanentKey, permanentKey, "browser.permanentKey is still the same");
-
- yield waitForDocLoadComplete();
- is(gBrowser.selectedBrowser.isRemoteBrowser, false, "Remote attribute should be correct");
- is(gBrowser.selectedBrowser.permanentKey, permanentKey, "browser.permanentKey is still the same");
-
- info("3");
- // Load the remote page again
- info("Loading http://example.org/" + DUMMY_PATH);
- yield BrowserTestUtils.loadURI(gBrowser.selectedBrowser, "http://example.org/" + DUMMY_PATH);
- is(gBrowser.selectedBrowser.isRemoteBrowser, expectedRemote, "Remote attribute should be correct");
- is(gBrowser.selectedBrowser.permanentKey, permanentKey, "browser.permanentKey is still the same");
-
- yield waitForDocLoadComplete();
- is(gBrowser.selectedBrowser.isRemoteBrowser, expectedRemote, "Remote attribute should be correct");
- is(gBrowser.selectedBrowser.permanentKey, permanentKey, "browser.permanentKey is still the same");
-
- info("4");
- gBrowser.removeCurrentTab();
- clear_history();
-});
-
-// Tests that load flags are correctly passed through to the child process with
-// normal loads
-add_task(function* test_loadflags() {
- let expectedRemote = gMultiProcessBrowser;
-
- info("1");
- // Create a tab and load a remote page in it
- gBrowser.selectedTab = gBrowser.addTab("about:blank", {skipAnimation: true});
- yield waitForLoadWithFlags("about:robots");
- is(gBrowser.selectedBrowser.isRemoteBrowser, false, "Remote attribute should be correct");
- yield check_history();
-
- info("2");
- // Load a page in the remote process with some custom flags
- yield waitForLoadWithFlags("http://example.com/" + DUMMY_PATH, Ci.nsIWebNavigation.LOAD_FLAGS_BYPASS_HISTORY);
- is(gBrowser.selectedBrowser.isRemoteBrowser, expectedRemote, "Remote attribute should be correct");
- yield check_history();
-
- info("3");
- // Load a non-remote page
- yield waitForLoadWithFlags("about:robots");
- is(gBrowser.selectedBrowser.isRemoteBrowser, false, "Remote attribute should be correct");
- yield check_history();
-
- info("4");
- // Load another remote page
- yield waitForLoadWithFlags("http://example.org/" + DUMMY_PATH, Ci.nsIWebNavigation.LOAD_FLAGS_REPLACE_HISTORY);
- is(gBrowser.selectedBrowser.isRemoteBrowser, expectedRemote, "Remote attribute should be correct");
- yield check_history();
-
- is(gExpectedHistory.entries.length, 2, "Should end with the right number of history entries");
-
- info("5");
- gBrowser.removeCurrentTab();
- clear_history();
-});