tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit e8d015b620ce2a5f6bbce9e68f2e9e45202b8572
parent 5c28e2ed3923f726f0b268226f5ec538a6a475c6
Author: YUKI Hiroshi <yuki@clear-code.com>
Date:   Thu, 18 Dec 2025 17:51:34 +0000

Bug 1762249 - Accept already-discarded owner tab r=Gijs,tabbrowser-reviewers,dao

Differential Revision: https://phabricator.services.mozilla.com/D142644

Diffstat:
Mbrowser/components/tabbrowser/content/tabbrowser.js | 2+-
Mbrowser/components/tabbrowser/test/browser/tabs/browser.toml | 2++
Abrowser/components/tabbrowser/test/browser/tabs/browser_openTabFromDiscardedOwner.js | 23+++++++++++++++++++++++
3 files changed, 26 insertions(+), 1 deletion(-)

diff --git a/browser/components/tabbrowser/content/tabbrowser.js b/browser/components/tabbrowser/content/tabbrowser.js @@ -3105,7 +3105,7 @@ // If we were called by frontend and don't have openWindowInfo, // but we were opened from another browser, set the cross group // opener ID: - if (openerBrowser && !openWindowInfo) { + if (openerBrowser?.browsingContext && !openWindowInfo) { b.browsingContext.crossGroupOpener = openerBrowser.browsingContext; } } diff --git a/browser/components/tabbrowser/test/browser/tabs/browser.toml b/browser/components/tabbrowser/test/browser/tabs/browser.toml @@ -372,6 +372,8 @@ skip-if = [ "os == 'linux' && os_version == '24.04' && arch == 'x86_64' && display == 'x11' && debug && socketprocess_networking", # Bug 1648512 ] +["browser_openTabFromDiscardedOwner.js"] + ["browser_openURI_background.js"] ["browser_open_newtab_start_observer_notification.js"] diff --git a/browser/components/tabbrowser/test/browser/tabs/browser_openTabFromDiscardedOwner.js b/browser/components/tabbrowser/test/browser/tabs/browser_openTabFromDiscardedOwner.js @@ -0,0 +1,23 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +"use strict"; + +add_task(async function () { + const win = await BrowserTestUtils.openNewBrowserWindow(); + + const discardedOwnerTab = BrowserTestUtils.addTab(win.gBrowser, "", { + createLazyBrowser: true, + }); + const childTab = BrowserTestUtils.addTab(win.gBrowser, "about:blank", { + ownerTab: discardedOwnerTab, + openerBrowser: discardedOwnerTab.linkedBrowser, + }); + + ok( + childTab, + "child tab is successfully opened as a child of a discarded owner" + ); + + await BrowserTestUtils.closeWindow(win); +});