56 lines
1.5 KiB
JavaScript
56 lines
1.5 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
"use strict";
|
|
|
|
// Specifically test https://bugzilla.mozilla.org/show_bug.cgi?id=1874801
|
|
|
|
const TAB_URL =
|
|
"https://example.com/browser/dom/security/test/https-only/file_bug1874801.html";
|
|
|
|
function assertImageLoaded(tab) {
|
|
return ContentTask.spawn(tab.linkedBrowser, {}, () => {
|
|
const img = content.document.getElementsByTagName("img")[0];
|
|
|
|
ok(!!img, "Image tag should exist");
|
|
ok(img.complete && img.naturalWidth > 0, "Image should have loaded ");
|
|
});
|
|
}
|
|
|
|
add_task(async function test_bug1874801() {
|
|
await SpecialPowers.pushPrefEnv({
|
|
set: [
|
|
["security.mixed_content.upgrade_display_content", false],
|
|
["dom.security.https_first", true],
|
|
["dom.security.https_only_mode", true],
|
|
],
|
|
});
|
|
|
|
// Open Tab
|
|
const tabToClose = await BrowserTestUtils.openNewForegroundTab(
|
|
gBrowser,
|
|
TAB_URL,
|
|
true
|
|
);
|
|
|
|
// Make sure the image was loaded via HTTPS
|
|
await assertImageLoaded(tabToClose);
|
|
|
|
// Close Tab
|
|
const tabClosePromise =
|
|
BrowserTestUtils.waitForSessionStoreUpdate(tabToClose);
|
|
BrowserTestUtils.removeTab(tabToClose);
|
|
await tabClosePromise;
|
|
|
|
// Restore Tab
|
|
const restoredTabPromise = BrowserTestUtils.waitForNewTab(
|
|
gBrowser,
|
|
TAB_URL,
|
|
true
|
|
);
|
|
undoCloseTab();
|
|
const restoredTab = await restoredTabPromise;
|
|
|
|
// Make sure the image was loaded via HTTPS
|
|
await assertImageLoaded(restoredTab);
|
|
});
|