summaryrefslogtreecommitdiffstats
path: root/dom/security/test/https-only/browser_bug1874801.js
diff options
context:
space:
mode:
Diffstat (limited to 'dom/security/test/https-only/browser_bug1874801.js')
-rw-r--r--dom/security/test/https-only/browser_bug1874801.js56
1 files changed, 56 insertions, 0 deletions
diff --git a/dom/security/test/https-only/browser_bug1874801.js b/dom/security/test/https-only/browser_bug1874801.js
new file mode 100644
index 0000000000..280a072736
--- /dev/null
+++ b/dom/security/test/https-only/browser_bug1874801.js
@@ -0,0 +1,56 @@
+/* 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);
+});