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 --- ...owser_ext_sessions_getRecentlyClosed_private.js | 93 ++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 browser/components/extensions/test/browser/browser_ext_sessions_getRecentlyClosed_private.js (limited to 'browser/components/extensions/test/browser/browser_ext_sessions_getRecentlyClosed_private.js') diff --git a/browser/components/extensions/test/browser/browser_ext_sessions_getRecentlyClosed_private.js b/browser/components/extensions/test/browser/browser_ext_sessions_getRecentlyClosed_private.js new file mode 100644 index 0000000000..45b1b34be1 --- /dev/null +++ b/browser/components/extensions/test/browser/browser_ext_sessions_getRecentlyClosed_private.js @@ -0,0 +1,93 @@ +/* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* vim: set sts=2 sw=2 et tw=80: */ +"use strict"; + +SimpleTest.requestCompleteLog(); + +loadTestSubscript("head_sessions.js"); + +async function run_test_extension(incognitoOverride) { + function background() { + browser.test.onMessage.addListener((msg, filter) => { + if (msg == "check-sessions") { + browser.sessions.getRecentlyClosed(filter).then(recentlyClosed => { + browser.test.sendMessage("recentlyClosed", recentlyClosed); + }); + } + }); + } + + let extension = ExtensionTestUtils.loadExtension({ + manifest: { + permissions: ["sessions", "tabs"], + }, + background, + incognitoOverride, + }); + + // Open a private browsing window. + let privateWin = await BrowserTestUtils.openNewBrowserWindow({ + private: true, + }); + + await extension.startup(); + + const { + Management: { + global: { windowTracker }, + }, + } = ChromeUtils.importESModule("resource://gre/modules/Extension.sys.mjs"); + let privateWinId = windowTracker.getId(privateWin); + + extension.sendMessage("check-sessions"); + let recentlyClosed = await extension.awaitMessage("recentlyClosed"); + recordInitialTimestamps(recentlyClosed.map(item => item.lastModified)); + + // Open and close two tabs in the private window + let tab = await BrowserTestUtils.openNewForegroundTab( + privateWin.gBrowser, + "http://example.com" + ); + BrowserTestUtils.removeTab(tab); + + tab = await BrowserTestUtils.openNewForegroundTab( + privateWin.gBrowser, + "http://example.com" + ); + let sessionPromise = BrowserTestUtils.waitForSessionStoreUpdate(tab); + BrowserTestUtils.removeTab(tab); + await sessionPromise; + + extension.sendMessage("check-sessions"); + recentlyClosed = await extension.awaitMessage("recentlyClosed"); + let expectedCount = + !incognitoOverride || incognitoOverride == "not_allowed" ? 0 : 2; + checkRecentlyClosed( + recentlyClosed.filter(onlyNewItemsFilter), + expectedCount, + privateWinId, + true + ); + + // Close the private window. + await BrowserTestUtils.closeWindow(privateWin); + + extension.sendMessage("check-sessions"); + recentlyClosed = await extension.awaitMessage("recentlyClosed"); + is( + recentlyClosed.filter(onlyNewItemsFilter).length, + 0, + "the closed private window info was not found in recently closed data" + ); + + await extension.unload(); +} + +add_task(async function test_sessions_get_recently_closed_default() { + await run_test_extension(); +}); + +add_task(async function test_sessions_get_recently_closed_private_incognito() { + await run_test_extension("spanning"); + await run_test_extension("not_allowed"); +}); -- cgit v1.2.3