1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
ChromeUtils.defineESModuleGetters(this, {
UrlbarTestUtils: "resource://testing-common/UrlbarTestUtils.sys.mjs",
});
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(
// eslint-disable-next-line @microsoft/sdl/no-insecure-url
UrlbarTestUtils.trimURL("http://example.org/")
),
"URL bar value should be correct, was " + gURLBar.value
);
is(
identityBox.className,
"unknownIdentity",
"Identity box should have been updated."
);
await BrowserTestUtils.removeTab(gBrowser.selectedTab);
await BrowserTestUtils.closeWindow(popup);
});
});
|