summaryrefslogtreecommitdiffstats
path: root/browser/base/content/test/siteIdentity/browser_about_blank_same_document_tabswitch.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/base/content/test/siteIdentity/browser_about_blank_same_document_tabswitch.js')
-rw-r--r--browser/base/content/test/siteIdentity/browser_about_blank_same_document_tabswitch.js79
1 files changed, 79 insertions, 0 deletions
diff --git a/browser/base/content/test/siteIdentity/browser_about_blank_same_document_tabswitch.js b/browser/base/content/test/siteIdentity/browser_about_blank_same_document_tabswitch.js
new file mode 100644
index 0000000000..5e58b4bedb
--- /dev/null
+++ b/browser/base/content/test/siteIdentity/browser_about_blank_same_document_tabswitch.js
@@ -0,0 +1,79 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+const TEST_PATH = getRootDirectory(gTestPath).replace(
+ "chrome://mochitests/content",
+ // eslint-disable-next-line @microsoft/sdl/no-insecure-url
+ "http://example.org"
+);
+
+const TEST_PAGE = TEST_PATH + "open-self-from-frame.html";
+
+add_task(async function test_identityBlock_inherited_blank() {
+ await BrowserTestUtils.withNewTab("https://example.com", async browser => {
+ let identityBox = document.getElementById("identity-box");
+ // Ensure we remove the 3rd party storage permission for example.org, or
+ // it'll mess up other tests:
+ let principal = browser.contentPrincipal;
+ registerCleanupFunction(() => {
+ Services.perms.removeFromPrincipal(
+ principal,
+ "3rdPartyStorage^http://example.org"
+ );
+ });
+ is(
+ identityBox.className,
+ "verifiedDomain",
+ "Should indicate a secure site."
+ );
+ // Open a popup from the web content.
+ let popupPromise = BrowserTestUtils.waitForNewWindow();
+ await SpecialPowers.spawn(browser, [TEST_PAGE], testPage => {
+ content.open(testPage, "_blank", "height=300,width=300");
+ });
+ // Open a tab back in the main window:
+ let popup = await popupPromise;
+ info("Opened popup");
+ let popupBC = popup.gBrowser.selectedBrowser.browsingContext;
+ await TestUtils.waitForCondition(
+ () => popupBC.children[0]?.currentWindowGlobal
+ );
+
+ info("Waiting for button to appear");
+ await SpecialPowers.spawn(popupBC.children[0], [], async () => {
+ await ContentTaskUtils.waitForCondition(() =>
+ content.document.querySelector("button")
+ );
+ });
+
+ info("Got frame contents.");
+
+ let otherTabPromise = BrowserTestUtils.waitForLocationChange(
+ gBrowser,
+ TEST_PAGE
+ );
+ info("Clicking button");
+ await BrowserTestUtils.synthesizeMouseAtCenter(
+ "button",
+ {},
+ popupBC.children[0]
+ );
+ info("Waiting for tab");
+ await otherTabPromise;
+
+ ok(
+ gURLBar.value.startsWith("example.org/"),
+ "URL bar value should be correct, was " + gURLBar.value
+ );
+ is(
+ identityBox.className,
+ "notSecure",
+ "Identity box should have been updated."
+ );
+
+ await BrowserTestUtils.removeTab(gBrowser.selectedTab);
+ await BrowserTestUtils.closeWindow(popup);
+ });
+});