From 6bf0a5cb5034a7e684dcc3500e841785237ce2dd Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 19:32:43 +0200 Subject: Adding upstream version 1:115.7.0. Signed-off-by: Daniel Baumann --- .../test/browser/browser_windowName.js | 80 ++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 browser/components/contextualidentity/test/browser/browser_windowName.js (limited to 'browser/components/contextualidentity/test/browser/browser_windowName.js') diff --git a/browser/components/contextualidentity/test/browser/browser_windowName.js b/browser/components/contextualidentity/test/browser/browser_windowName.js new file mode 100644 index 0000000000..5ba2cc0e0a --- /dev/null +++ b/browser/components/contextualidentity/test/browser/browser_windowName.js @@ -0,0 +1,80 @@ +/* Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ */ + +const USER_CONTEXTS = ["default", "personal", "work"]; + +const BASE_URI = + "http://mochi.test:8888/browser/browser/components/" + + "contextualidentity/test/browser/empty_file.html"; + +add_setup(async function () { + // make sure userContext is enabled. + await SpecialPowers.pushPrefEnv({ + set: [ + ["privacy.userContext.enabled", true], + ["browser.link.open_newwindow", 3], + ], + }); +}); + +add_task(async function test() { + info("Creating first tab..."); + let tab1 = BrowserTestUtils.addTab(gBrowser, BASE_URI + "?old", { + userContextId: 1, + }); + let browser1 = gBrowser.getBrowserForTab(tab1); + await BrowserTestUtils.browserLoaded(browser1); + await SpecialPowers.spawn(browser1, [], function (opts) { + content.window.name = "tab-1"; + }); + + info("Creating second tab..."); + let tab2 = BrowserTestUtils.addTab(gBrowser, BASE_URI + "?old", { + userContextId: 2, + }); + let browser2 = gBrowser.getBrowserForTab(tab2); + await BrowserTestUtils.browserLoaded(browser2); + await SpecialPowers.spawn(browser2, [], function (opts) { + content.window.name = "tab-2"; + }); + + // Let's try to open a window from tab1 with a name 'tab-2'. + info("Opening a window from the first tab..."); + await SpecialPowers.spawn( + browser1, + [{ url: BASE_URI + "?new" }], + async function (opts) { + await new content.window.wrappedJSObject.Promise(resolve => { + let w = content.window.wrappedJSObject.open(opts.url, "tab-2"); + w.onload = function () { + resolve(); + }; + }); + } + ); + + is(browser1.contentTitle, "?old", "Tab1 title must be 'old'"); + is(browser1.contentPrincipal.userContextId, 1, "Tab1 UCI must be 1"); + + is(browser2.contentTitle, "?old", "Tab2 title must be 'old'"); + is(browser2.contentPrincipal.userContextId, 2, "Tab2 UCI must be 2"); + + let found = false; + for (let i = 0; i < gBrowser.tabs.length; ++i) { + let tab = gBrowser.tabs[i]; + let browser = gBrowser.getBrowserForTab(tab); + if (browser.contentTitle == "?new") { + is(browser.contentPrincipal.userContextId, 1, "Tab3 UCI must be 1"); + isnot(browser, browser1, "Tab3 is not browser 1"); + isnot(browser, browser2, "Tab3 is not browser 2"); + gBrowser.removeTab(tab); + found = true; + break; + } + } + + ok(found, "We have tab3"); + + gBrowser.removeTab(tab1); + gBrowser.removeTab(tab2); +}); -- cgit v1.2.3