Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

"use strict";
const PATH = getRootDirectory(gTestPath).replace(
);
const TEST_PAGE = PATH + "file_triggeringprincipal_oa.html";
const DUMMY_PAGE = PATH + "empty_file.html";
add_task(
async function test_principal_right_click_open_link_in_new_private_win() {
await BrowserTestUtils.withNewTab(TEST_PAGE, async function () {
let promiseNewWindow = BrowserTestUtils.waitForNewWindow({
url: DUMMY_PAGE,
});
// simulate right-click open link in new private window
BrowserTestUtils.waitForEvent(document, "popupshown", false, event => {
document.getElementById("context-openlinkprivate").doCommand();
event.target.hidePopup();
return true;
});
BrowserTestUtils.synthesizeMouseAtCenter(
"#checkPrincipalOA",
{ type: "contextmenu", button: 2 },
gBrowser.selectedBrowser
);
let privateWin = await promiseNewWindow;
await SpecialPowers.spawn(
privateWin.gBrowser.selectedBrowser,
[{ DUMMY_PAGE, TEST_PAGE }],
// eslint-disable-next-line no-shadow
async function ({ DUMMY_PAGE, TEST_PAGE }) {
// eslint-disable-line
let channel = content.docShell.currentDocumentChannel;
is(
channel.URI.spec,
DUMMY_PAGE,
"sanity check to ensure we check principal for right URI"
);
let triggeringPrincipal = channel.loadInfo.triggeringPrincipal;
ok(
triggeringPrincipal.isContentPrincipal,
"sanity check to ensure principal is a contentPrincipal"
);
is(
triggeringPrincipal.spec,
TEST_PAGE,
"test page must be the triggering page"
);
is(
triggeringPrincipal.originAttributes.privateBrowsingId,
1,
"must have correct privateBrowsingId"
);
}
);
await BrowserTestUtils.closeWindow(privateWin);
});
}
);