forked from mirrors/gecko-dev
# ignore-this-changeset Differential Revision: https://phabricator.services.mozilla.com/D35900 --HG-- extra : source : b08f475f1140b9e650b316ee2813c13ec9947678
88 lines
2.5 KiB
JavaScript
88 lines
2.5 KiB
JavaScript
"use strict";
|
|
|
|
const TEST_PATH = getRootDirectory(gTestPath).replace(
|
|
"chrome://mochitests/content",
|
|
"http://example.com"
|
|
);
|
|
const HTML_URI = TEST_PATH + "dummy_page.html";
|
|
const VIEW_SRC_URI = "view-source:" + HTML_URI;
|
|
|
|
add_task(async function() {
|
|
info("load baseline html in new tab");
|
|
await BrowserTestUtils.withNewTab(HTML_URI, async function(aBrowser) {
|
|
is(
|
|
gBrowser.selectedBrowser.currentURI.spec,
|
|
HTML_URI,
|
|
"sanity check to make sure html loaded"
|
|
);
|
|
|
|
info("right-click -> view-source of html");
|
|
let vSrcCtxtMenu = document.getElementById("contentAreaContextMenu");
|
|
let popupPromise = BrowserTestUtils.waitForEvent(
|
|
vSrcCtxtMenu,
|
|
"popupshown"
|
|
);
|
|
BrowserTestUtils.synthesizeMouseAtCenter(
|
|
"body",
|
|
{ type: "contextmenu", button: 2 },
|
|
aBrowser
|
|
);
|
|
await popupPromise;
|
|
let tabPromise = BrowserTestUtils.waitForNewTab(gBrowser, VIEW_SRC_URI);
|
|
let vSrcItem = vSrcCtxtMenu.getElementsByAttribute(
|
|
"id",
|
|
"context-viewsource"
|
|
)[0];
|
|
vSrcItem.click();
|
|
vSrcCtxtMenu.hidePopup();
|
|
let tab = await tabPromise;
|
|
is(
|
|
gBrowser.selectedBrowser.currentURI.spec,
|
|
VIEW_SRC_URI,
|
|
"loading view-source of html succeeded"
|
|
);
|
|
|
|
info("load html file again before going .back()");
|
|
let loadPromise = BrowserTestUtils.browserLoaded(
|
|
tab.linkedBrowser,
|
|
false,
|
|
HTML_URI
|
|
);
|
|
await ContentTask.spawn(tab.linkedBrowser, HTML_URI, HTML_URI => {
|
|
content.document.location = HTML_URI;
|
|
});
|
|
await loadPromise;
|
|
is(
|
|
gBrowser.selectedBrowser.currentURI.spec,
|
|
HTML_URI,
|
|
"loading html another time succeeded"
|
|
);
|
|
|
|
info(
|
|
"click .back() to view-source of html again and make sure the history entry has a triggeringPrincipal"
|
|
);
|
|
let backCtxtMenu = document.getElementById("contentAreaContextMenu");
|
|
popupPromise = BrowserTestUtils.waitForEvent(backCtxtMenu, "popupshown");
|
|
BrowserTestUtils.synthesizeMouseAtCenter(
|
|
"body",
|
|
{ type: "contextmenu", button: 2 },
|
|
aBrowser
|
|
);
|
|
await popupPromise;
|
|
loadPromise = BrowserTestUtils.waitForContentEvent(
|
|
tab.linkedBrowser,
|
|
"pageshow"
|
|
);
|
|
let backItem = backCtxtMenu.getElementsByAttribute("id", "context-back")[0];
|
|
backItem.click();
|
|
backCtxtMenu.hidePopup();
|
|
await loadPromise;
|
|
is(
|
|
gBrowser.selectedBrowser.currentURI.spec,
|
|
VIEW_SRC_URI,
|
|
"clicking .back() to view-source of html succeeded"
|
|
);
|
|
|
|
BrowserTestUtils.removeTab(tab);
|
|
});
|
|
});
|